πŸ”„ Cross-Run Diff Template

May 3, 2026 Β· View on GitHub

πŸ“Œ Template Instructions β€” Copy to analysis/daily/$ARTICLE_DATE/$SUBFOLDER/cross-run-diff.md. Bayesian delta vs. the previous run of the same article type: what changed in data and assessment. See per-artifact-methodologies.md Β§cross-run-diff. N/A when this is the first ever run of its type.

🎯 Purpose β€” Track evolution of political assessment across runs. For each prior-run finding, apply Bayesian update based on new evidence to produce a posterior assessment with an explicit WEP band shift.

πŸ”„ Tradecraft Context

  • Artifact role β€” Compares the current run against the immediately previous run of the same article type to identify material changes in evidence, assessment, and confidence.
  • When to use β€” Required for every non-initial run. If this is the first ever run for the article type, mark this artifact N/A and state that no prior baseline exists.
  • Primary inputs β€” Current-run core artifacts, prior-run core artifacts, prior synthesis-summary.md, prior reference-analysis-quality.md, and any newly surfaced source evidence that materially changes the posterior judgement.
  • Analytical standard β€” Use explicit Bayesian-style updating: identify what changed, explain whether each change strengthens, weakens, or leaves unchanged the prior assessment, and record any resulting WEP band movement with concise justification.
  • Output requirement β€” Focus only on deltas that matter for editorial judgement, risk framing, or confidence. Do not restate unchanged background unless needed to explain a shift.

πŸ“ Template Contract β€” every fill of this template MUST satisfy this row.

SlotValue
Owning methodologyper-artifact-methodologies.md
Owning gate checkSupplementary Check 11 (gate-required when ANALYSIS_RUN_COUNT β‰₯ 2) β€” see 05-analysis-gate.md
Required inputsprevious run folder of same article type
Horizon bandper-run (per scripts/horizon-context.ts)
Output familyOperational Supplementary
Aggregation orderappended (alphabetical, after canonical block) (see scripts/render-lib/aggregator/order.ts)
Reader Intelligence Guiderow generated from cross-run-diff.md (see scripts/render-lib/aggregator/reader-guide.ts)
Canonical evidence anchor| claim | evidence (dok_id / vote / MP intressent_id / primary-source URL) | retrieved_at | confidence | β€” every analytical claim row uses this schema.

Cross-reference: README.md Β§Template ↔ Methodology ↔ Gate-Check Matrix.

πŸ“‹ Document Metadata

FieldValue
Report ID[REQUIRED: XRD-YYYY-MM-DD-runNN]
Current Run[REQUIRED: {type}-run{N}, YYYY-MM-DD]
Prior Run[REQUIRED: {type}-run{N-1}, YYYY-MM-DD]
Days Between Runs[REQUIRED: #]
Confidence in Delta[REQUIRED: 🟒 / 🟑 / πŸ”΄]

1️⃣ Prior-Run Header

Prior run directory β€” [REQUIRED: analysis/daily/YYYY-MM-DD/{type}-run{N-1}/]
Prior run date β€” [REQUIRED]
Prior run gate status β€” [REQUIRED: βœ… PASSED / ❌ FAILED]

Key findings from prior synthesis-summary.md:

  1. [REQUIRED: 1-line prior finding + its WEP band]
  2. [REQUIRED]
  3. [REQUIRED]
  4. [REQUIRED]
  5. [REQUIRED]

Prior scores (carry forward from prior reference-analysis-quality.md Β§Overall judgement):

MetricPrior value
Weighted quality score[#/10]
Reliability score (MCP)[#]
Coverage (core artifacts)[#]/23
P0 claims[#]
Admiralty A-rated sources[#]

2️⃣ New Evidence Since Prior Run

Evidence IDSourceDateArtifact affectedAdmiralty
[dok_id / vote ID / URL][riksdag-regering / scb / IMF / press][YYYY-MM-DD][current run artifact][A1/…]

Minimum β€” β‰₯ 3 new evidence rows when days-between β‰₯ 3; β‰₯ 1 otherwise. Zero new evidence on a multi-day gap β†’ flag prior run's stability claim.

2.1 IMF Vintage Delta

IndicatorPrior vintageCurrent vintagePrior value (year)Current value (year)Ξ” (pp)Action
WEO:NGDP_RPCHWEO-2025-10WEO-2026-04[e.g. 1.8 % (2026)][e.g. 2.1 % (2026)]+0.3[update / no-op]
WEO:GGXWDG_NGDPWEO-2025-10WEO-2026-04[e.g. 32.1 % (2027)][e.g. 32.4 % (2027)]+0.3[update]
WEO:PCPIPCHWEO-2025-10WEO-2026-04β€”β€”β€”β€”

Rule: any headline indicator whose projection shifted by > 0.5 pp across vintages gets a [VINTAGE-DELTA] annotation in the article commentary, and prior-run citations are rewritten to the current vintage. Add a sentence in Β§3 Bayesian Update explaining the methodology shift. Stale-vintage citations (> 6 months old per .github/aw/ECONOMIC_DATA_CONTRACT.md Β§ Vintage staleness rule) MUST be refreshed before publish.


3️⃣ Bayesian Update β€” Key Judgments

For each prior KJ, apply posterior ∝ prior Γ— likelihood(new evidence | KJ) and state the new WEP band.

KJ 1 β€” [REQUIRED: prior KJ headline]

  • Prior WEP β€” [e.g. Likely (55-70%), 6-month horizon]
  • New evidence β€” [list evidence IDs from Β§2 that bear on this KJ]
  • Likelihood assessment β€” [does new evidence confirm / disconfirm / condition?]
  • Posterior WEP β€” [e.g. Very Likely (70-85%), 6-month horizon]
  • Shift rationale β€” [2-3 sentences naming the evidence and its Admiralty]

(Repeat for each prior KJ.)


4️⃣ Scenario Probability Shifts

Scenario (from prior scenario-analysis.md)Prior PPosterior PΞ”Trigger evidence
[REQUIRED][%][%][Β±%][evidence ID]
[REQUIRED][%][%][Β±%][evidence ID]
[REQUIRED][%][%][Β±%][evidence ID]

Sum of posteriors must equal 100%.


5️⃣ Risk & Threat Register Deltas

Prior rowPrior LΓ—IPosterior LΓ—IΞ”New row?
[REQUIRED][score][score][Β±][n]

Rows added this run: [#]. Rows retired: [#] (with justification).


6️⃣ Stakeholder Position Changes

ActorPrior positionPosterior positionEvidence
[REQUIRED: MP + intressent_id / party / myndighet][support/oppose/ambiguous][…][speech ID / vote ID]

7️⃣ Framing Evolution

Cross-reference the longitudinal frame record in media-framing-analysis.md:

  • Prior dominant frame β€” [REQUIRED]
  • Current dominant frame β€” [REQUIRED]
  • Shift driver β€” [data / political / external event]
  • Counter-frame status β€” [emerging / stable / absorbed]

8️⃣ Methodology Drift Check

Any methodology or template version changes between the two runs? List them and their impact on comparability:

ChangePrior versionCurrent versionComparability impact
[REQUIRED][vX.Y][vX.Y][none / rescored / incomparable]

If comparability is incomparable, downgrade overall diff confidence to πŸ”΄ and flag in methodology-reflection.md.


9️⃣ Summary Table

DimensionPriorCurrentΞ”Direction
Quality score[#/10][#/10][Β±][↑/↓/=]
KJ count[#][#][Β±][…]
P0 claims[#][#][Β±][…]
Admiralty A-rated[#][#][Β±][…]
Scenario entropy[#][#][Β±][…]
Top risk LΓ—I[#][#][Β±][…]

πŸ”Ÿ Headline Posterior BLUF

One paragraph (3–5 sentences) summarising the single largest shift in assessment, with WEP band + horizon + Admiralty of the triggering evidence. This paragraph feeds directly into the next synthesis-summary.md BLUF.


πŸ”— Cross-References


Template version: v1.2 Β· Last updated: 2026-04-25


βœ… Pass-2 Self-Audit Checklist (v4.4 β€” required)

Purpose: AI-FIRST principle requires a Pass-2 read-back-and-improve. After producing this artifact in Pass 1, re-read it end-to-end and verify each item below. Document any remediation in methodology-reflection.md §"Pass-2 audit log". Any unchecked ❌ box at the end of Pass 2 forces a Pass-3 rewrite of the affected section.

  • Tradecraft anchors honoured β€” F3EAD stage matches the artifact's role; PIRs declared in the Β§Tradecraft Context block are actually addressed in the body; Admiralty grades attached to every external source; WEP band + ODNI confidence on every probabilistic judgement.
  • Source diversity floor met β€” at least the minimum number of independent MCP sources required by the artifact's tradecraft block are cited; single-source claims are explicitly labelled [SINGLE-SOURCE β€” corroboration pending].
  • Evidence specificity β€” every quantified claim cites a dok_id (Riksdag), an SCB / IMF dataflow code, or a named external source with date; no "according to data" / "studies show" hand-waves.
  • Named-actor discipline β€” every political claim names β‰₯ 1 person (party + role + dated act/quote) or labels the absence ([diffuse β€” no named actor]).
  • Counter-narrative present β€” at least one explicit competing hypothesis, dissent quote, or framed objection appears in the body; "no opposition recorded" is itself a finding to label, not silence.
  • Election 2026 lens applied β€” the Β§"Election 2026 Implications" subsection (or equivalent) addresses electoral salience, coalition pressure, and forward indicators; not boilerplate.
  • No illustrative content shipped as fact β€” every [REQUIRED] placeholder is filled OR removed; every Example: block is clearly fenced or removed; no fabricated dok_id, vote count, or quote leaks into the final artifact.
  • Cross-references resolve β€” every [link](file.md) in this artifact points to a file that exists in the run folder (analysis/daily/$ARTICLE_DATE/$SUBFOLDER/) or to a methodology / template under analysis/.
  • Mermaid renders β€” every fenced ```mermaid block parses (no missing class definitions, no orphan nodes, no >40-node graphs that overflow viewport on mobile).
  • Line-floor check β€” artifact length β‰₯ the per-artifact floor in reference-quality-thresholds.json; shorter artifacts trigger Pass-2 rewrite, never a [truncated] note.