Background
Per docs/spec.md §9.2, a richer claims?: ClaimProvenance[] field on SynthesizedArticle is a proposed additive field that would surface per-claim provenance on the wire.
Current state
ClaimProvenance and ProvenanceMap are defined in src/provenance.ts (internal only).
buildProvenance() builds the per-claim map and isFullyGrounded() gates on it internally in the synthesizer.
- The wire contract (
contracts.ts) does NOT include claims? yet.
- Per-claim provenance IS enforced internally (ungrounded claims degrade the article) — the wire just doesn't expose it.
What needs to happen
- Ratify the type across all 4 repos — additive fields need lockstep changes to
contracts.ts in:
ardur-news-aggregator
ardur-ranking-engine
ardur-top10-engine
ardur-article-synthesizer (this repo)
- Bump
SCHEMA_VERSION? Additive = backward-compatible, so no schema-version bump required per ARCHITECTURE.md §5, but it should be coordinated.
- Expose the field in
SynthesizedArticle and wire buildProvenance() output into assembleArticle().
Notes
- The field should be typed as
claims?: ClaimProvenance[] (optional, not required, for backward compat).
- The
ClaimProvenance type from provenance.ts should move to or be mirrored in contracts.ts.
- This is a cross-repo change — do not add it unilaterally.
Background
Per
docs/spec.md §9.2, a richerclaims?: ClaimProvenance[]field onSynthesizedArticleis a proposed additive field that would surface per-claim provenance on the wire.Current state
ClaimProvenanceandProvenanceMapare defined insrc/provenance.ts(internal only).buildProvenance()builds the per-claim map andisFullyGrounded()gates on it internally in the synthesizer.contracts.ts) does NOT includeclaims?yet.What needs to happen
contracts.tsin:ardur-news-aggregatorardur-ranking-engineardur-top10-engineardur-article-synthesizer(this repo)SCHEMA_VERSION? Additive = backward-compatible, so no schema-version bump required perARCHITECTURE.md §5, but it should be coordinated.SynthesizedArticleand wirebuildProvenance()output intoassembleArticle().Notes
claims?: ClaimProvenance[](optional, not required, for backward compat).ClaimProvenancetype fromprovenance.tsshould move to or be mirrored incontracts.ts.