I3272 — A received brief is a campaign revision pinned by its manifest digest, and the same bytes again are the same revision
Reconcile proposed ADR 0194 onto proposed ADR 0180's noun (campaign): 0194 cites 0180 and keeps only the reconciliation decision, or is withdrawn. A revision is a campaign under campaigns/ with its MANIFEST.sha256 digest, made a kind by I3167 and written by I3169's campaign add; prove through that command that the same bytes added twice change no byte, and rebind the criteria of a-brief-is-reconciled-into-the-plan to their tests. Gated on the owner accepting ADR 0180.
BLOCKED wave 2 · p3 · implementation profile · parallel safe
Blocked. This issue cannot start until I3167, I3169, milestone:intent-intake are done. The status is derived from that, not declared.
Objective
Reconcile proposed ADR 0194 onto proposed ADR 0180's noun (campaign): 0194 cites 0180 and keeps only the reconciliation decision, or is withdrawn. A revision is a campaign under campaigns/ with its MANIFEST.sha256 digest, made a kind by I3167 and written by I3169's campaign add; prove through that command that the same bytes added twice change no byte, and rebind the criteria of a-brief-is-reconciled-into-the-plan to their tests. Gated on the owner accepting ADR 0180.
Why
Owner standing orders 2026-10-10 and 2026-10-13; ADR 0124 asks for the noun before any code, and two proposed ADRs on this branch (0180 campaign, 0194 intake) pick opposite nouns. Proposed in ADR 0180 (A prompt pack is a campaign: kept as received, indexed as a kind, and cited by the records it drove); ADR 0194 (An ingested brief is an intake revision, and its requirements are reconciled into the existing plan) (proposed; it carries no authority until the owner accepts it). Sources: chatgpt-majordomus:c245#11.
Current state
campaigns/ on master keeps packs as received under MANIFEST.sha256 (scripts/ci/campaigns-check, case 340, rule project.a-brief-is-kept-as-received); proposed ADRs 0180 (campaign) and 0194 (intake) pick opposite nouns on this branch; I3167 and I3169 are staged, not landed.
Desired state
One noun (campaign), one store (campaigns/), one writer (campaign add); no record kind, schema or capability is added.
Scope
- .ai/repo/adrs/0194-an-ingested-brief-is-an-intake-revision-and-its-requirements-are.md
- .ai/repo/adrs/0180-a-prompt-pack-is-a-campaign-kept-as-received-indexed-as-a-kind-a.md
- .ai/repo/project/intents
- campaigns/README.md
Out of scope
- A majordomus.intake/v1 schema, an intake store, or the noun 'intake' in any kind, command or capability name (ADR 0180, project.no-new-nouns)
- A record store under .ai/repo/ beside campaigns/
- Linking a received brief to the prompt kind, which is an outgoing prompt (ADR 0180)
- Keeping any conversation export's bytes under .ai/repo/ or campaigns/ (project.never-store-transcripts)
- ZIP limits, which I3169 carries
Dependencies
- I3167READY A campaign is a kind of the index: every pack under campaigns/ is an object with its manifest digest, served read-only
- I3169BLOCKED A new pack enters campaigns/ through one command that checks the archive before writing a byte
What waits on this
Acceptance criteria
- ADR 0194 no longer decides a noun: it cites ADR 0180 ('campaign') and keeps only the reconciliation decision, or it is withdrawn. No proposed ADR on the branch names 'intake' as the ingestion noun
- A revision is a campaign under campaigns/ with its MANIFEST.sha256 digest (I3167). No record is added under .ai/repo/ and nothing links to majordomus.prompt/v1
- The same bytes twice are one revision, proven through I3169's campaign add: re-adding an identical pack changes no byte
- No capability that writes the repository is added. The pin the_capabilities_that_write_the_repository_are_these in capability/builtin/mod.rs is unchanged
- Each criterion of a-brief-is-reconciled-into-the-plan declares evidence: test, with ref apps/majordomus-cli/tests/intake.rs (the first three) or apps/majordomus-cli/tests/ui_intent.rs (an-intent-shows-its-sources), and the named functions equal the serving issues' evidence_required
Validation
- majordomus plan validate
- majordomus intent validate
Evidence required
- test_a_campaign_revision_is_pinned
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/I3272.yaml. Read it back with majordomus plan show I3272.