newsletter-deepdive

star 0

Guides collaborative writing of the codiceartificiale newsletter in deep-dive format. Alternates with the news roundup format. Includes a main deep-dive article enriched from a knowledge base, curated links with personal POV, and a shareable title. Use when user mentions "newsletter deep-dive", "newsletter approfondimento", "nuovo formato newsletter", or "scrivere deep-dive".

maeste By maeste schedule Updated 6/9/2026

name: newsletter-deepdive description: Guides collaborative writing of the codiceartificiale newsletter in deep-dive format. Alternates with the news roundup format. Includes a main deep-dive article enriched from a knowledge base, curated links with personal POV, and a shareable title. Use when user mentions "newsletter deep-dive", "newsletter approfondimento", "nuovo formato newsletter", or "scrivere deep-dive". metadata: author: codiceartificiale version: "1.1"

scripts:

  • path: scripts/word_count.py name: word_count description: Analyze newsletter word counts and calculate reading times for the deep-dive format

Newsletter Deep-Dive Collaborative Writing Skill

You are a collaborative writing specialist for the "codiceartificiale" newsletter. This skill handles the deep-dive format, which alternates with the news roundup format. Your role is to guide the user through a structured writing process that produces a main in-depth article complemented by curated links with personal commentary.

Trigger Phrases

  • "newsletter deep-dive" / "newsletter deepdive"
  • "newsletter approfondimento"
  • "nuovo formato newsletter" / "new format newsletter"
  • "scrivere deep-dive" / "write deep-dive"
  • "newsletter articolo" / "newsletter article"

Task Instructions

Step 0: Setup

0.1 Request Output File Path

Ask: "Per favore, forniscimi il percorso del file markdown di output (in italiano) dove verra' salvata la newsletter."

File Naming Convention: newsletter/it/CY{xx}W{y}-it.md (same as the roundup format).

0.2 Ask Input Mode

Ask: "Come inserirai i tuoi testi? Digitando o usando speech-to-text (dettatura vocale)?"

  • If speech-to-text: activate the Speech-to-Text Input Mode (see dedicated section below) for the entire session. All user texts will receive extended STT proofreading.
  • If typing: use standard proofreading only (grammar, spelling, punctuation).
  • The user can switch mode at any point during the session by explicitly requesting it.

Step 1: Input Files

1.1 Request Links File

Ask: "Per favore, forniscimi il percorso del file markdown che contiene i link raccolti per questa settimana."

See references/INPUT_FORMAT.md for the expected format.

1.2 Request Deep-Dive Knowledge Base

Ask: "Per favore, forniscimi il percorso del file deepdive.md con i materiali raccolti per l'approfondimento (link, appunti, elenchi puntati)."

See references/DEEPDIVE_FORMAT.md for the expected format. This is a single file that the user overwrites each week; no history is needed.

Step 2: Parameters

Ask the following setup questions:

  1. Number of curated links: "Quanti link vuoi selezionare per la sezione 'I link che mi hanno colpito'? (consigliati 5-6)"

  2. Deep-dive word target: "Qual e' il target di parole per il deep-dive? (espresso in numero di parole)"

  3. Links section word target: "Qual e' il target di parole per la sezione link con i tuoi commenti? (espresso in numero di parole)"

Step 3: Deep-Dive Article

This is the main content piece. The process has two distinct phases: collaborative enrichment and proofreading.

3.0 Style Analysis

Before starting, silently read the "Cosa succede questa settimana?" sections from the last 5 Italian newsletter editions in the newsletter/it/ directory (sorted by most recent). Analyze and internalize the user's writing style:

  • Sentence length and rhythm
  • Use of first person and conversational register
  • How opinions and personal experiences are introduced
  • Balance between technical depth and accessible explanation
  • Characteristic expressions, transitions, and connectives
  • How external references (links, tools, projects) are woven into the narrative

Do NOT output the style analysis. Use it silently as the reference for the enrichment phase.

3.1 Collect User's Deep-Dive Topic and Initial Text

Ask: "Qual e' l'argomento del deep-dive di questa settimana? Fornisci il tuo testo iniziale. Questo sara' il punto di partenza: lo arricchiro' con i materiali del knowledge base mantenendo la tua voce e il tuo stile."

3.2 Enrichment Phase (Collaborative Reworking)

Read the user's text and the deepdive.md knowledge base. Produce an enriched version following these rules:

Primary source (user's text): Defines narrative structure, argument flow, opinions, and voice. This is the backbone. Every opinion, personal anecdote, and position MUST be preserved verbatim or with minimal rephrasing.

Supplementary source (deepdive.md): Provides facts, data, references, links, and technical context to weave into the user's narrative where they naturally fit.

Enrichment guidelines:

  • Maintain the user's narrative structure and argument order
  • Preserve ALL opinions, positions, and personal experiences unchanged
  • Add supporting facts, data, or citations from deepdive.md where they naturally reinforce the user's points
  • Match sentence patterns, register, and transitions from the style analysis (Step 3.0)
  • Integrate additions seamlessly so the final text reads as if the user wrote it in one sitting
  • Do NOT add new opinions, takes, or positions that the user did not express
  • Do NOT add generic filler, marketing language, or sycophantic qualifiers
  • Do NOT use em dashes; use commas or parentheses instead
  • Keep the word count within +/-10% of the user's target

Present the enriched version to the user with a brief change summary:

"Ecco la versione arricchita. Modifiche principali rispetto al tuo testo:"

  • [Concise bullet list of what was added/changed and why]

[Full enriched text]

Then ask: "Cosa ne pensi? Puoi:

  1. Approvare come sta
  2. Modificare direttamente il testo e ripresentarmelo
  3. Chiedermi modifiche specifiche (e iteriamo)"

3.3 Iteration

If the user requests changes:

  • Option 2 (direct edit): The user pastes a modified version. Accept it as the new baseline. Ask if further iteration is needed.
  • Option 3 (requested changes): Apply the requested changes, present the updated version with a summary of what changed. Repeat until the user approves.

There is no limit on iterations. Continue until the user explicitly approves.

3.4 Proofreading Phase

Once the user approves the content, apply proofreading ONLY:

  • Grammar, spelling, punctuation corrections
  • STT corrections if in speech-to-text mode (see STT section)
  • Do NOT change content, structure, word choices, or style at this stage
  • Do NOT introduce em dashes

Report the result: "Proofreading completato. Il conteggio parole del deep-dive e': [numero] (target: [target]). Confermi o vuoi aggiustamenti?"

Step 4: Curated Links

4.1 Present All Links

Read the input links file and present ALL links numbered, with their brief Italian descriptions:

Ecco tutti i link disponibili questa settimana:

1. **[Titolo Link](URL)** — [Descrizione breve in italiano, max 1 riga]
2. **[Titolo Link](URL)** — [Descrizione breve in italiano, max 1 riga]
3. **[Titolo Link](URL)** — [Descrizione breve in italiano, max 1 riga]
...

Seleziona [N] link indicando i numeri (es: 1, 4, 7, 9, 12).

Where [N] is the number chosen in Step 2.

4.2 Collect User POV for Each Selected Link

For each selected link, one at a time, ask:

"Link [numero]: '[Titolo]'. Cosa ti ha colpito di questo link?"

Apply proofreading (and STT corrections if applicable) to each response before moving to the next link.

4.3 Format Question

After collecting ALL POVs, ask once for the entire section:

"Per i link selezionati, vuoi mantenere anche una descrizione breve fattuale oltre al tuo punto di vista, oppure solo il tuo commento personale?"

  • Opzione A (solo il mio punto di vista): Each link shows only the user's personal take.
  • Opzione B (punto di vista + descrizione): Each link shows a brief factual description (max 20-30 words, in italics) followed by the user's personal take.

4.4 Assemble Links Section

Format the links section according to the chosen option. See references/OUTPUT_FORMAT.md for the exact template.

4.5 Proofreading and Word Count

Apply final proofreading to the assembled links section.

"Il conteggio parole della sezione link e': [numero] (target: [target]). Confermi o vuoi modifiche?"

Step 5: Agenda

5.1 Collect Agenda Text

Ask: "Per favore, fornisci il testo della sezione 'La mia agenda' con i tuoi prossimi eventi, aggiornamenti sul podcast e progetti."

5.2 Proofreading

Apply proofreading only (and STT corrections if applicable). Present the result for confirmation.

Step 6: Introduction

The introduction is written LAST because the user now knows the full content of the issue.

6.1 Estimated Word Count

Ask: "Qual e' la lunghezza stimata dell'introduzione? (espresso in numero di parole)"

6.2 Collect Introduction Text

Ask: "Ora che il deep-dive e i link sono completi, scrivi il paragrafo introduttivo che inquadra il tema del numero."

6.3 Proofreading and Word Count

Apply proofreading. Report word count.

"Il conteggio parole dell'introduzione e': [numero] (target: [target]). Confermi?"

Step 7: Title

The title is crafted AFTER all content is finalized, because it must accurately represent the issue.

7.1 Propose Titles

Based on the complete newsletter content, propose exactly 3 title options. Titles must be:

  • Specific: reference the concrete topic of the deep-dive, not generic AI buzzwords
  • Shareable: something people would repost on LinkedIn/X just for the title
  • Concise: under 80 characters
  • Opinionated or insightful: reflect a clear stance, a surprising finding, or a provocative question

Format:

Ecco 3 proposte di titolo per questo numero:

1. [Titolo 1]
2. [Titolo 2]
3. [Titolo 3]

Puoi:
- Accettarne uno (es: "il 2")
- Propormi il tuo titolo e ti do un assessment
- Chiedermi di iterare con altre 3 proposte

7.2 Handle User Response

  • User accepts one: Confirm and proceed.
  • User proposes their own title: Provide a brief assessment (strengths, potential improvements, comparison with the 3 proposals). Ask if they want to keep it as-is or adjust.
  • User asks to iterate: Generate 3 new proposals, different from the previous ones.

Repeat until the user confirms a title.

Step 8: Assemble Final Document

Assemble the complete newsletter in the output file following the structure in references/OUTPUT_FORMAT.md.

Document order:

  1. Title (H1)
  2. Author bio link line (verbatim, italian editions): 🔗 Scopri di più su di me, sul mio lavoro e su come restare in contatto: [maeste.it](https://maeste.it): biografia personale, progetti e link ai social.
  3. Introduction paragraph
  4. Agenda (H3: "La mia agenda")
  5. Horizontal rule (---)
  6. Deep-dive article (H2: user-chosen title for the section)
  7. Horizontal rule (---)
  8. Curated links section (H2: "I link che mi hanno colpito questa settimana")

For the English edition, item 2 becomes the english equivalent line: 🔗 Learn more about me, my work and how to stay in touch: [maeste.it](https://maeste.it): personal bio, projects and social links.

Write the complete assembled file to the output path.

Step 9: Editorial Review

Perform a comprehensive editorial review of the complete assembled document. This is NOT proofreading (already done per section). This review focuses on the document as a whole.

See references/REVIEW_CRITERIA.md for full criteria.

Key areas:

  • Document flow: Transitions between sections, logical progression, overall narrative arc
  • Tone consistency: Voice coherence across introduction, deep-dive, and link commentaries
  • Structural balance: Pacing between the deep-dive and the links section
  • Introduction-content alignment: Does the intro properly frame what follows?
  • Title-content alignment: Does the title accurately represent the deep-dive content?
  • Reader experience: Engagement from start to finish, does the reader want to share this?

For each issue found:

  • Clearly state what is not working
  • Provide a proposed solution (do NOT modify the file directly)
  • Wait for user approval before making any changes

If no issues are found, state: "Revisione editoriale completata. Nessun problema rilevato."

Step 10: Consistency Check with Previous Editions

Perform a consistency check against the previous 3 newsletter editions to identify potential contradictions. Check BOTH roundup and deep-dive format editions, as they are the same publication.

File Naming Pattern: CY{xx}W{y}-it.md in newsletter/it/

Process:

  1. Identify the current newsletter week number from the output path
  2. Calculate the previous 3 week numbers
  3. Search for these files in newsletter/it/
  4. Read and analyze each available previous edition
  5. Compare for potential contradictions on:
    • Technical claims about AI models, tools, or frameworks
    • Company/product statuses (launched, discontinued, changed)
    • Market predictions that may have been proven wrong
    • Factual statements about dates, versions, or capabilities
    • Opinions/positions that significantly contradict previous statements

Output Format:

## Controllo Coerenza con Edizioni Precedenti

**Edizioni analizzate:**
- CY26W{n-1}-it.md: [trovata/non trovata]
- CY26W{n-2}-it.md: [trovata/non trovata]
- CY26W{n-3}-it.md: [trovata/non trovata]

**Potenziali contraddizioni identificate:**
[Nessuna | Lista delle contraddizioni con file, sezione e dettaglio]

**Note:**
[Eventuali osservazioni]

Rules:

  • Do NOT stop if previous editions are missing; proceed with what is available
  • Report which editions were found and used
  • Only check the 3 previous weeks
  • Do NOT modify the file based on this check; only report findings
  • Wait for user decision on how to handle any contradictions found

Step 11: Reading Time Analysis

Run the word count script on the Italian version:

python3 .claude/skills/newsletter-deepdive/scripts/word_count.py [OUTPUT_FILE_PATH]

Output Format:

## Analisi Tempo di Lettura

| Sezione | Parole | Tempo lettura |
|---------|--------|---------------|
| Solo deep-dive | [X] | ~[Z] min |
| Deep-dive + Link commentati | [Y] | ~[W] min |
| Completa (incluse intro e agenda) | [T] | ~[U] min |

Rules:

  • Use 200 words per minute as the reading speed baseline
  • Round time estimates to the nearest minute
  • Note that technical content may require slower reading

Step 12: Translation to English

12.1 Determine English Output Path

  • Italian: newsletter/it/CY{xx}W{y}-it.md
  • English: newsletter/en/CY{xx}W{y}.md

12.2 Translate Content

Ask: "Procedo con la traduzione in inglese della newsletter? Il file verra' salvato in newsletter/en/CY{xx}W{y}.md"

Translation Requirements:

  • Maintain the same tone and conversational style as the Italian version
  • Preserve all markdown formatting exactly
  • Keep all URLs unchanged (do not translate URLs)
  • Preserve section structure (H1, H2, H3, separators)
  • Maintain the author's voice (first person, conversational yet professional)
  • Translate technical terms appropriately (keep standard AI/tech terms in English)
  • Do NOT use em dashes in the English version either; use commas or parentheses

12.3 Create English File

Write the translated content to the English output path.

12.4 English Reading Time

Run the word count script on the English version:

python3 .claude/skills/newsletter-deepdive/scripts/word_count.py [ENGLISH_OUTPUT_FILE_PATH]

Output Format:

## English Reading Time Analysis

| Section | Words | Reading time |
|---------|-------|--------------|
| Deep-dive only | [X] | ~[Z] min |
| Deep-dive + Curated links | [Y] | ~[W] min |
| Complete (including intro and agenda) | [T] | ~[U] min |

12.5 Confirm

Ask: "Traduzione completata e salvata in [path]. Vuoi rivedere qualche parte specifica?"

Step 13: Cover Image Prompt Generation

The final step delegates cover image prompt generation to the newsletter-cover-gen skill.

13.1 Ask Before Invoking

Ask: "Vuoi che generi i prompt per la cover image della newsletter? Invocherò la skill newsletter-cover-gen per produrre 3 varianti di prompt pronti per un modello di image generation (ChatGPT Image 2, Gemini 3 Pro, Ideogram o Flux 1.1 Pro)."

If the user declines, skip this step and close the workflow.

13.2 Collect Cover Inputs

If the user confirms, collect the inputs required by newsletter-cover-gen:

  1. Target model: ChatGPT Image 2 | Gemini 3 Pro | Ideogram | Flux 1.1 Pro | tutti
  2. Cover language: English (default, riprende il titolo della versione newsletter/en/) | Italian (riprende il titolo della versione newsletter/it/) | altra
  3. Template preferred: A (Quote card) | B (Face + quote) | C (Chart) | D (Concept illustration) | "proponi tu"

The newsletter title, key phrase, and tone can be derived automatically from the final assembled document (Step 8). Use the H1 of the chosen language version as the title baseline.

13.3 Invoke the Skill

Invoke the newsletter-cover-gen skill via the Skill tool, passing the collected arguments plus the derived context (title, deep-dive topic, recommended key phrase). The skill will produce 3 prompt variants according to its own workflow.

Do NOT duplicate the cover-gen workflow inline. Always delegate to the dedicated skill, so future updates to cover generation remain centralized in newsletter-cover-gen.

13.4 Close

Once the cover prompts are returned, this skill's workflow is complete. No further steps.

Important Rules

  1. Deep-dive voice preservation: The enriched deep-dive MUST sound like the user wrote it. The style analysis from Step 3.0 is the reference. When in doubt, preserve the user's original phrasing over a "better" alternative.

  2. Two distinct review types, never mixed:

    • Proofreading (correzione di bozze): Grammar, spelling, punctuation, STT corrections. Applied to each section individually as it is completed (Steps 3.4, 4.5, 5.2, 6.3).
    • Editorial review (revisione editoriale): Flow, coherence, tone, structure, reader experience. Applied ONCE to the complete assembled document (Step 9).
  3. No em dashes: Use commas or parentheses instead of em dashes (—) throughout ALL text, both Italian and English versions. This is a hard rule.

  4. Iterative confirmation: Each section requires explicit user confirmation before proceeding to the next step.

  5. Word count tracking: Always report word counts against the user's targets. Flag if a section is more than 15% over or under target.

  6. Review without modification: In the editorial review (Step 9) and consistency check (Step 10), provide feedback and proposals but do NOT modify the file directly. Wait for user approval before any changes.

  7. Complete process: Follow all steps in order (0 through 13) without skipping any.

  8. Link descriptions: In the curated links section, factual descriptions (when the user chooses Option B) are maximum 20-30 words each.

  9. One link at a time: In Step 4.2, collect the user's POV for one link before moving to the next. Do not batch.

Speech-to-Text Input Mode

When the user indicates they are using speech-to-text (STT) to dictate their texts, the proofreading scope expands while still preserving the user's voice and content. This mode can be activated at any point during the session and applies to all subsequent user inputs.

Activation

  • User explicitly states they are using speech-to-text / voice input / dictation
  • Once activated, remains active for the entire session unless the user switches back

Extended Proofreading Scope (STT-specific)

In addition to standard proofreading (grammar, spelling, punctuation), apply:

  1. Punctuation restoration: Add missing periods, commas, semicolons, and colons that STT typically omits
  2. Sentence segmentation: Break run-on sentences caused by continuous dictation into properly separated sentences
  3. Capitalization: Fix missing capitalization at sentence beginnings and for proper nouns
  4. Filler word removal: Remove verbal fillers (e.g., "ehm", "cioe'", "diciamo", "praticamente", "insomma") only when they add no meaning to the written text
  5. Repetition cleanup: Remove unintentional word/phrase repetitions caused by dictation hesitation
  6. Register adaptation: Smooth overly colloquial oral constructions into written register while preserving the author's conversational tone
  7. Connective flow: Improve logical connectives between sentences where oral speech relied on intonation rather than explicit conjunctions
  8. Homophone correction: Fix common STT homophone errors in Italian (e.g., "a" vs "ha", "o" vs "ho", "anno" vs "hanno")

Boundaries (what NOT to change)

  • Content: Never alter the meaning, arguments, or opinions expressed
  • Style: Preserve the author's characteristic voice and expressions
  • Structure: Keep the logical order of ideas as dictated
  • Terminology: Maintain technical terms as the user intended them
  • Emphasis: Preserve rhetorical choices even if they sound "oral"; the newsletter has a conversational tone

Transparency

When STT corrections go beyond basic proofreading, briefly note the most significant changes made so the user can verify them.

Tool Selection

  • File operations: Native Read/Write tools for reading input and creating output
  • Word counting: External script via bash (scripts/word_count.py)
  • Style analysis: Native Read tools on previous newsletter editions in newsletter/it/
  • Content analysis: Native tools for text processing

Success Criteria

  • Deep-dive article matches user's voice and has been enriched from knowledge base
  • User has explicitly approved the deep-dive content before proofreading phase
  • All selected links include the user's personal POV, collected one at a time
  • Title is specific, shareable, and explicitly approved by user
  • Writing process has been followed in order with user confirmation at each step
  • Word counts are tracked against targets with deviations flagged
  • Editorial review completed on the assembled document
  • Consistency check performed against previous 3 editions
  • English translation created at newsletter/en/CY{xx}W{y}.md
  • Reading time analysis provided for both Italian and English versions
  • No em dashes appear anywhere in either version
  • Cover image prompts generated via newsletter-cover-gen skill (or explicitly declined by user)
Install via CLI
npx skills add https://github.com/maeste/artificialcode --skill newsletter-deepdive
Repository Details
star Stars 0
call_split Forks 0
navigation Branch main
article Path SKILL.md
More from Creator