brain/
← all mechanisms
high convictionactive · updated 2026-05-13T00:00:00.000Z

The Triangulate 4-Phase Application Protocol

The triangulate newsroom applies the operational checklist from `[[JOURNALISTIC_STANDARDS]]` via four phases — Reporter → Parallel Checkers → Render-with-House-Style + Sequential Gates → Audit Log — that together produce publication-grade articles with reconstructable editorial reasoning. The protocol was validated across five Phase 0 topics spanning three editorial registers and a 0% → 95% vault-substrate range; quality stayed flat across that range. Phase 2 of the Plan codes this in `packages/orchestrator/`.

The chain
1
**Phase 1 — Reporter agent.** Reads topic + brain-vault substrate (typed entity / concept / mechanism / question pages) via the `@brain/vault` package. Identifies gaps. Optionally invokes `/autoresearch` for missing primary documents. Produces a typed **claim graph**: array of typed records `{id, text, sources[], evidence_class, subjects[], inferences[]}`.
From 2026-05-13-phase-0-retrospective: "Phase 1 — Reporter agent. Reads topic + brain-vault substrate. Identifies gaps. Optionally invokes `/autoresearch` for missing primary documents. Produces a typed claim graph: array of records `{id, text, sources, evidence_class, subjects, inferences}`."
Phase 0 evidence — five topics produced claim graphs ranging from 19 to 28 claims. The typed structure (id, text, sources, evidence_class, subjects, inferences) was consistent across registers.
Topic 5 specifically validated the production-pipeline shape: `/autoresearch --auto` built vault substrate first; Reporter then read from the populated vault. From 2026-05-13-phase-0-retrospective: "Autoresearch → newsroom handoff works end-to-end (Topic 5 validation): `/autoresearch --auto` builds substrate → `clipping-promote` routes → `ingest-pending` creates typed wiki pages → newsroom reads from the populated vault."
2
**Phase 2 — Parallel checkers on the claim graph.** F1 (objective error), F3 (misinterpretation), Section C (bias framing), Section E (proportionality), Section H (citizen-journalism specific-claim verification) run independently on claim IDs. Each emits findings: `{claim_id, finding_type, source_text, draft_text, action_required}`.
From 2026-05-13-phase-0-retrospective on aggregate catches: "Total catches across Phase 0: 27 F1 + 24 F3 = 51 documented catches. None of the topics produced fewer than 7 catches."
Phase 0 evidence — five transferable F3 patterns identified (case-conflation, OIG-vs-fraud, revisionism-overshoot, preliminary-vs-chose, anchor-roster collapse). See transferable-f3-misinterpretation-patterns.
From 2026-05-13-phase-0-retrospective: "The parallel-checker model adds clear, demonstrable value over single-shot strong-prompted drafting. Q1 is the central go/no-go and is cleared decisively."
3
**Phase 3 — Render prose from approved claim graph WITH House-Style baked in, then run sequential gates.** Section B (right-of-reply) on full draft. Section D (transparency/methodology) on methods section. Section G (harm minimization) on framing. House-Style is render-time, not post-render gate. Register class selected from topic class per editorial-register-classes.
Topic 1's v1 article (House-Style as post-render gate) produced wiki-style output that failed Q3 ("send to a friend"); Topic 1's v2 House-Style pass cleared Q3. Topics 2-5 baked House-Style into render and produced single-pass news-coded output that cleared Q3 directly.
From 2026-05-13-phase-0-retrospective: "House-Style discipline baked into render, not run as a post-render gate. Three editorial registers validated."
From 2026-05-13-phase-0-retrospective on the architectural finding: "The Plan's Phase 3 architecture is correct in its phases but the order can be improved: House-Style is not a sequential gate after render — it's a constraint *on* the render."
The three sequential gates (B / D / G) still run *after* render — but on a draft that already has House-Style conventions internalized. See editorial-register-classes.
4
**Phase 4 — Audit log.** Single deterministic pass from prior phase outputs. Per-claim catch tables (F1 / F3), source-class bias matrix, fetch-outcome appendments, gap list with follow-up actions, standards-checklist trace.
From 2026-05-13-phase-0-retrospective: "Q2 — Is the audit log reconstructable by a second reader? YES, across all five topics. The audit-log architecture (per-claim catch tables, source-class bias matrix, fetch-outcome appendments, gap list with follow-up actions, standards-checklist trace) does not need to change before any UI work."
Schema confirmed across registers (political-news, financial-thesis, serious-history). No schema rewrite required before UI work.
The audit log is the load-bearing artifact for human spot-check sampling (stratified by checklist section per the Plan's spot-check workflow).
What would falsify this
  • **Step 2**: F1/F3 don't catch errors in a future topic that single-shot drafting wouldn't have missed → drop parallel-checker model; go single-agent with strong prompting + heavy in-context exemplars. Phase 0 across five topics produced zero such cases.
  • **Step 3**: A future topic produces an article that fails Q3 even with House-Style baked into render → indicates either the topic's register isn't yet in the corpus, or render-time discipline isn't sufficient. Likely fixable by adding register exemplars; unlikely to falsify the architecture.
  • **Step 4**: A future spot-check session produces audit logs that a second reader cannot re-derive judgment from → indicates schema gap. Phase 0 produced zero such cases across five topics.
  • **Step 1 + Step 2 together**: A future topic produces a claim graph the parallel checkers cannot operate on (e.g., a topic where the typed records don't carve the truth at the right joints) → indicates the claim-graph schema needs revision. Phase 0 produced zero such cases.
Contradictions / tensions
  • The protocol assumes the user (or eventually the orchestrator) does not invoke `/autoresearch` mid-Phase-1 in a way that causes vault state to change while the claim graph is being built. Phase 0 worked around this by completing autoresearch → ingest → wait-for-stable-vault → start-newsroom; Phase 2 implementation will need to formalize the handoff timing.
  • Position-disclosure for financial-thesis articles is a publication-blocker prerequisite, not a checker output. The protocol does not currently produce a disclosure block; that's a manual addition before any external publication. See editorial-register-classes.
Implications
  • **Primary beneficiaries**: Phase 2 implementation work in `~/Projects/personal/triangulate/` packages — `agents/`, `orchestrator/`, `publication/`. The four-phase chain is the implementation target.
  • **The audit log is the trust mechanism.** Per the Plan's "AI-journalism credibility problem" failure mode: every article must link its own audit log; methodology transparency is the structural answer to the credibility problem.
  • **Vault density across topics compounds protocol output.** The protocol reads from the vault; richer substrate produces richer claim graphs. See vault-two-functions-substrate-and-methodology.
  • **Register selection by topic class.** The orchestrator's topic-class → register-class mapping is itself a tunable decision; per editorial-register-classes, some topics may span two registers.
Companies
none
Concepts
Open questions
none