Skip to content

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

Part of intent-intake — A received brief is a campaign revision whose requirements are reconciled into the one plan.

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

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.

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