Skip to content

I3168 — An intent, milestone or issue cites the campaign that drove it, and a campaign answers which records cite it

Accept a campaign:<id>[/<path>] reference in the one provenance.derived_from of intent, milestone and issue records (ADR 0211), refuse a dangling one with the same finding in both plan engines, and derive the reverse relation on the campaign object.

BLOCKED wave 1 · p2 · implementation profile · parallel safe

Part of campaigns-are-read-as-provenance — A prompt pack is a campaign the index serves and the plan cites.

Blocked. This issue cannot start until I3167 is done. The status is derived from that, not declared.

Objective

Accept a campaign:<id>[/<path>] reference in the one provenance.derived_from of intent, milestone and issue records (ADR 0211), refuse a dangling one with the same finding in both plan engines, and derive the reverse relation on the campaign object.

Why

Owner, 2026-10-13: intent <=> prompt pack <=> milestones/issues reflected everywhere; ADR 0124: a derived item links back to the revision and section that justified it. Proposed in ADR 0180 (A prompt pack is a campaign: kept as received, indexed as a kind, and cited by the records it drove) (proposed; it carries no authority until the owner accepts it). Sources: chatgpt-majordomus:c245#9.

Current state

No reference type; packs and records are joined by nobody; plan validate dispatches to the shell engine and case 99_plan_capabilities compares both engines' findings.

Desired state

Citations validated both ways.

Scope

  • share/schemas/majordomus/intent
  • share/schemas/majordomus/milestone
  • share/schemas/majordomus/issue
  • apps/majordomus-cli/src/plan.rs
  • apps/majordomus-cli/src/graph.rs

Out of scope

  • The drag-and-drop upload view (ui-surfaces)

Dependencies

What waits on this

Acceptance criteria

  • A dangling citation is refused
  • The campaign lists citing records
  • Each new case named here takes its number from `scripts/case-numbers next` and is announced on the board before the file is written (ADR 0053); a case number written in this record before that is provisional

Validation

  • majordomus plan validate
  • bash test/run.sh 99_plan_capabilities

Evidence required

  • case_record_cites_campaign

Evidence

None recorded. Every token above needs a command or an artifact behind it before this issue can be completed; narrative is refused.

Timeline

started
—
verified
—
completed
—

Those three fields, the evidence above and the state of the dependencies are all the status is made of. There is no status field to disagree with them.

Canonical record: .ai/repo/project/issues/I3168.yaml. Read it back with majordomus plan show I3168.

Searches the titles and descriptions of every page this site publishes.