How it works
The picture in prose is in “What is Redazione Zero?”. What is Redazione Zero?
Every box opens below
Uno documentarian Can block: No
- Sees
-
- the web, through search (16 searches per edition, 8 more on column days; 8 and 10 in the two breaking-news passes)
- the boundaries of the sections and, on column days, the widened search brief
- in breaking news, the flashes already out in the last hours, so as not to repeat them
- the instruction to search in the language of the country it writes about (with lingue_fase_2 also Arabic, Chinese, Japanese, Korean)
multilingua.istruzione_lingua· on today - the list of claims withdrawn by correction, as a negative constraint
memoria.iniezione_tre· on today - on the follow-up channel, the thread the paper is following — title, last dated fact, open questions
follow_up.mattino· on today
- Does not see
-
- the charter
- the texts already written
- previous editions
- Quattro's stories
- the memory threads outside the follow-up channel
- Produces
-
a strict-schema JSON dossier, no prose; if the block is unreadable, a redelivery with no new searches; if a section stays under its minimum of stories, a second targeted pass in a fresh context
- Can block
- No
- Model
-
Anthropic ·
claude-sonnet-5(last recorded call on 17 September 2026, 16:31)
newsroom default claude-opus-5; automatic fallback above 95% of the monthly cap claude-sonnet-5 - Cost
-
$607.69 over 570 calls · $1.07 per call · 59.5% of spend
from the ledger, 7 August 2026–17 September 2026- of which
A · documentarista: $417.15 · 253 - of which
A · follow-up: $160.66 · 283 - of which
A2 · integrazione: $25.36 · 31 - of which
A · seconda occhiata: $4.52 · 3
- of which
- Rules
-
The charter does not go into this stage's prompt.
- Code
-
-
scripts/genera_edizione.py#stadio_a_documentarista -
scripts/genera_edizione.py#stadio_a_integrazione -
scripts/genera_edizione.py#stadio_a_follow_up -
scripts/genera_ultimora.py#stadio_a -
scripts/genera_ultimora.py#stadio_a_seconda_occhiata
repository not yet public
-
Quattro frontier documentarian Can block: No
controcanto.documentarista_mattino · on today controcanto.documentarista_pomeriggio · on today
- Sees
-
- the web (up to 12 searches)
- the list of the paper's sections
- in the afternoon, the headlines of the morning edition already published — a story already out comes back only as a development
controcanto.pomeriggio_vede_il_mattino· on today
- Does not see
-
- Uno's dossier
- the charter
- the editorial memory
- the texts already written
- Produces
-
up to 6 stories, blind to Uno, plus its own ranking of the three stories it would open with; its stories go through the same path as every other — filter, checks, Tre — and from there on nobody knows any more which documentarian they came from
- Can block
- No
- Model
-
OpenAI ·
gpt-5.6-terra(last recorded call on 17 September 2026, 16:31)
fixed, from redazione/config/controcanto.yaml - Cost
-
$11.65 over 37 calls · $0.31 per call · 1.1% of spend
from the ledger, 7 August 2026–17 September 2026 - Rules
-
The charter does not go into this stage's prompt.
- Code
-
-
scripts/controcanto.py#ricognizione_due
repository not yet public
-
Due writer Can block: No
- Sees
-
- the filtered dossier — summaries, facts, quotes, sources with URL and provenance, independent origins — without knowing which documentarian each story came from
- the whole charter and the manifesto
- the memory of the last seven editions, that is the archivist's summaries
- the withdrawals to be dealt with
- in the afternoon, the whole morning edition
- on Sundays, the week's readership data and the week's real costs, for the Logbook. They go into the prompt once a week, for that one piece; rule 18 concerns the memory, and they do not enter the memory
- in breaking news, the round's material, this morning's memory and the recent flashes
- the memory's ongoing threads, for the callbacks (up to 4000 characters)
memoria.iniezione_due· on today - the module on translated quotes
multilingua.istruzione_lingua· on today - on the follow-up channel, the story already told (for callbacks only) and the new material gathered by Uno
follow_up.mattino· on today
- Does not see
-
- the web
- sources beyond the dossier
- which documentarian a story came from
- Produces
-
the edition's texts — lead, analyses, Briefs, the day's column, the Logbook on Sundays — and the breaking-news flashes or the declared silence; never the editorial
- Can block
- No
- Model
-
Anthropic ·
claude-sonnet-5(last recorded call on 17 September 2026, 16:31)
newsroom default claude-opus-5; automatic fallback above 95% of the monthly cap claude-sonnet-5 - Cost
-
$101.22 over 329 calls · $0.31 per call · 9.9% of spend
from the ledger, 7 August 2026–17 September 2026- of which
B · redattore: $93.22 · 242 - of which
follow-up: $8.00 · 87
- of which
- Rules
-
All the rules of the charter go in full into this stage's prompt.
- Code
-
-
scripts/genera_edizione.py#stadio_b_redattore -
scripts/genera_edizione.py#costruisci_system_redattore -
scripts/genera_edizione.py#genera_follow_up -
scripts/genera_ultimora.py#stadio_b
repository not yet public
-
Tre fact-checker Can block: Yes
- Sees
-
- the text of the piece, up to 14,000 characters
- the evidence extracts of the stories linked to the piece only — facts and quotes, up to 14,000 characters — not the URLs, not the other stories
- a clean context, one piece at a time; in breaking news every flash, after the automatic checks
- the published corrections and the withdrawn claims, for check V4 (in editions only, not in breaking news)
memoria.iniezione_tre· on today
- Does not see
-
- the web
- the charter
- the other pieces of the edition
- the other editions
- Produces
-
a verdict for every claim — mandatory on accusations, numbers, casualties, statements and economic data, sampled on the rest. A negative verdict blocks in those five categories and on withdrawn claims; in breaking news it blocks with no retry
- Can block
- Yes
- Model
-
Anthropic ·
claude-sonnet-5(last recorded call on 17 September 2026, 16:31)
newsroom default claude-opus-5; automatic fallback above 95% of the monthly cap claude-sonnet-5 - Cost
-
$99.33 over 2,108 calls · $0.05 per call · 9.7% of spend
from the ledger, 7 August 2026–17 September 2026 - Rules
-
The charter does not go into this stage's prompt.
- Code
-
-
scripts/genera_edizione.py#stadio_c_verificatore
repository not yet public
-
second opinion Can block: Yes
- Sees
-
- a single claim, up to 600 characters, and the reason for suspicion
- the web, with 3 searches
- Does not see
-
- the piece
- the dossier
- the sources
- the rest of the edition
- When it steps in
-
- a claim rejected by Tre in one piece but present in another that passed
- a lead or analysis whose headline rests on a single-source story
- at most 6 per edition; never in breaking news
- Produces
-
confirmed, refuted or unverifiable; on refuted or unverifiable the piece is withdrawn before publication; if the checker does not answer, it is published with a notice
- Can block
- Yes
- the home voice (Anthropic): Yes
- the counterpoint (OpenAI): In shadow: it records its verdict, it does not decide — same question and same prompt as the home voice, 3 searches; its verdict is recorded next to the other, with a note when they diverge
controcanto.c2_ombra· on todaycontrocanto.c2_vincolante· off today
- Model
-
- the home voice: Anthropic ·
claude-sonnet-5(last recorded call on 17 September 2026, 16:31)
newsroom default claude-opus-5; automatic fallback above 95% of the monthly cap claude-sonnet-5 - the counterpoint: OpenAI ·
gpt-5.6-terra(last recorded call on 17 September 2026, 16:31)
fixed, from redazione/config/controcanto.yaml
- the home voice: Anthropic ·
- Cost
-
- the home voice: $23.21 over 159 calls · $0.15 per call · 2.3% of spend
- the counterpoint: $4.31 over 69 calls · $0.06 per call · 0.4% of spend
- from the ledger, 7 August 2026–17 September 2026
- Rules
-
The charter does not go into this stage's prompt.
- Code
-
-
scripts/genera_edizione.py#stadio_c2_secondo_parere -
scripts/genera_edizione.py#pezzi_da_ricontrollare -
scripts/controcanto.py#verifica_incrociata -
scripts/controcanto.py#composizione
repository not yet public
-
automatic checks Can block: Yes
- Sees
-
- every generated piece, before publication
- the dossier, for the allowed URLs and the original quotes
- Tre's verdicts
- the corrections
- the register of state sources
- Does not see
-
- the web
- the source pages — it checks that the URLs are the dossier's, it does not open them
- the merits — it measures what can be counted, and for the rest there is Tre
- Produces
-
pass or block, per piece; then a targeted retry, a replacement piece on another topic, or a shorter edition declared in the editorial
- Can block
- Yes
- Rules
-
No model, no cost: it is deterministic code.
The checks, one by one:
- rule 1 · Every factual statement has a linked source
: sources mandatory, one per brief, dossier URLs only, claims unsupported according to Tre
scripts/genera_edizione.py#valida_bloccanti - rule 4 · Crime and court reporting: suspended
: minors made identifiable
scripts/sanifica.py#violazioni_minori - rule 5 · Never health data about identifiable people
: health data of identifiable people
scripts/sanifica.py#violazioni_dati_sanitari - rule 6 · Quotations under 15 words, one per source, always attributed
: quotes over 15 words, or a second quote from the same source
scripts/genera_edizione.py#violazioni_regola_6 - rule 7 · Uncertainty is declared in the text, not hidden
: in breaking news, a toll that goes down without saying so
scripts/genera_ultimora.py#cintura_regressione - rule 12 · Curtain lines and dramatic closings are forbidden
: dramatic closing lines
scripts/sanifica.py#violazioni_chiusure - rule 13 · Guaranteed coverage
: uncovered section not declared in the editorial
scripts/genera_edizione.py#scoperte_dichiarate - rule 15 · Pure Italian
: foreign words outside proper names and technical terms
scripts/sanifica.py#violazioni_lingua - rule 16 · Never paraphrase too closely from the sources
: tracing of sources — 26 words in a row, 12 from a quote, structure beyond 80%
scripts/sanifica.py#violazioni_similarita - rule 17 · Health
: health content — advice, efficacy without a source, study limits left unsaid
scripts/sanifica.py#violazioni_salute - rule 18 · Memory is not a source of facts
: a withdrawn claim restated, verbatim or in Tre's judgement
scripts/memoria_run.py#v4_testuale - rule 19 · State sources
: a state source used as a standalone source of a fact
scripts/multilingua.py#violazioni_m1 - rule 20 · Translated quotations
: translated quotes beyond the limit, language and country of sources missing
scripts/multilingua.py#violazioni_m2 - no rule number
: mutilated or truncated piece, invalid type or section, suspended column
scripts/sanifica.py#violazioni_troncamento - no rule number
: the same story in two pieces of the same edition — across editions it stays in shadow
scripts/genera_edizione.py#doppioni_in_edizione
- rule 1 · Every factual statement has a linked source
: sources mandatory, one per brief, dossier URLs only, claims unsupported according to Tre
- Code
-
-
scripts/genera_edizione.py#valida_bloccanti -
scripts/genera_edizione.py#pota_brevi -
scripts/genera_ultimora.py#main
repository not yet public
-
Zero editor-in-chief Can block: No
- Sees
-
- the whole charter, with the publisher's priorities
- the inventory of the closed edition — pieces with type and headline, uncovered sections, column and Briefs present or not, discarded pieces with their final outcome
- the opening of every piece, 900 characters
- Does not see
-
- the web
- the dossier
- the readership data
- Produces
-
the editorial, written last, on the established facts; in the afternoon it says which sections the second edition updated. The editorial is itself under a coherence judge — up to three attempts, then a fixed text goes out in its place
- Can block
- No
- Model
-
Anthropic ·
claude-sonnet-5(last recorded call on 17 September 2026, 16:31)
newsroom default claude-opus-5; automatic fallback above 95% of the monthly cap claude-sonnet-5 - Cost
-
$9.24 over 174 calls · $0.05 per call · 0.9% of spend
from the ledger, 7 August 2026–17 September 2026- of which
E · editoriale: $7.55 · 91 - of which
E · coerenza editoriale: $1.70 · 83
- of which
- Rules
-
All the rules of the charter go in full into this stage's prompt.
- Code
-
-
scripts/genera_edizione.py#stadio_e_editoriale -
scripts/genera_edizione.py#verifica_coerenza_editoriale
repository not yet public
-
archivist Can block: No
- Sees
-
- the final pieces of the edition just written, with declared cuts beyond 9,000 characters per piece and 80,000 in all
- the headlines of the unused dossier stories
- the rejections from the validations
- Does not see
-
- the web
- the charter
- the readership data
- previous editions
- Produces
-
the edition's memory, which Due rereads for seven days; the behind-the-scenes, unpublished; the register of promises
- for every piece entities, thematic keys, open questions and summary, from which the nightly compaction — a script with no model — builds the threads
memoria.scrittura_eventi· on today
- for every piece entities, thematic keys, open questions and summary, from which the nightly compaction — a script with no model — builds the threads
- Can block
- No
- Model
-
Anthropic ·
claude-sonnet-5(last recorded call on 17 September 2026, 16:31)
newsroom default claude-opus-5; automatic fallback above 95% of the monthly cap claude-sonnet-5 - Cost
-
$20.50 over 85 calls · $0.24 per call · 2% of spend
from the ledger, 7 August 2026–17 September 2026 - Rules
-
The charter does not go into this stage's prompt.
- Code
-
-
scripts/genera_edizione.py#stadio_d_memoria -
scripts/memoria_run.py#blocco_estrazione_per_d -
scripts/memoria_selezione.py#seleziona_fili -
scripts/memoria_compatta.py#esegui
repository not yet public
-
translator Can block: No
traduzione.inglese · on today traduzione.spagnolo · on today
- Sees
-
- the text fields of one published item at a time, in Italian
- Does not see
-
- the web
- the dossier
- the charter
- the memory
- Produces
-
the English and Spanish twins, with a deterministic check of its own — language, markdown, links — and one redelivery; withdrawn items with a fixed text, no call
- Can block
- No
- Model
-
Anthropic ·
claude-sonnet-5(last recorded call on 17 September 2026, 17:07)
fixed, from redazione/config/traduzione.yaml - Cost
-
$60.39 over 2,533 calls · $0.02 per call · 5.9% of spend
from the ledger, 7 August 2026–17 September 2026 - Rules
-
The charter does not go into this stage's prompt.
- Code
-
-
scripts/traduci.py#traduci_pezzo -
scripts/traduzione.py#prompt_sistema -
scripts/traduzione.py#valida_traduzione
repository not yet public
-
When something does not pass
A rejected piece does not stop the edition. These steps only run when a check fails; like Due they have the whole charter in the prompt, and they go through every check again.
-
retry— the targeted rewrite of the piece with the list of violations, and the redelivery of Uno's dossier
$57.66 over 625 calls · $0.09 per call · 5.6% of spend ·scripts/genera_edizione.py#rigenera_pezzo -
sostitutivo— a piece on another topic, when the retry is not enough
$7.13 over 80 calls · $0.09 per call · 0.7% of spend ·scripts/genera_edizione.py#rigenera_pezzo -
copertura— the analysis a daily section of the morning is missing (rule 13)
$7.79 over 78 calls · $0.10 per call · 0.8% of spend ·scripts/genera_edizione.py#genera_analisi_mancante -
riempimento— the same thing in the afternoon, on a section the morning already covered
$5.97 over 71 calls · $0.08 per call · 0.6% of spend ·scripts/genera_edizione.py#genera_analisi_mancante -
recupero— the Briefs or the Logbook redone when they did not arrive
$2.23 over 11 calls · $0.20 per call · 0.2% of spend ·scripts/genera_edizione.py#genera_brevi_mancanti -
rubrica— the column written on its own — rejected, out of schedule, or requested by the publisher
$3.14 over 17 calls · $0.18 per call · 0.3% of spend ·scripts/genera_edizione.py#genera_rubrica_singola
from the ledger, 7 August 2026–17 September 2026