180. A prompt pack is a campaign: kept as received, indexed as a kind, and cited by the records it drove
Context
ADR 0124 (proposed) split an uploaded pack's revision from its execution runs, reused the intent/milestone/issue graph and reserved 'pack' for the text-shard tool, but required a follow-up ADR to choose the ingestion noun (candidates 'artifact' or 'intake'). 'artifact' already names the generated artifacts (majordomus artifacts). The repository already has the noun: campaigns/ keeps 52 operator prompt packs (707a04c) verbatim under rule project.a-brief-is-kept-as-received.
Decision
The ingestion noun is 'campaign'. A pack is a campaign kept verbatim under campaigns/ with its manifest digest as its revision; campaign becomes a kind of the index; intents, milestones and issues may cite campaigns and the reverse relation is derived; one command adds a pack after archive-safety checks; an execution started from a campaign pins its digest. An outgoing prompt for a worker is a projection of the plan (devtask), never a campaign.
Alternatives rejected
- 'artifact' (collides with generated artifacts)
- 'intake' (a new noun for an existing thing, rule project.no-new-nouns)
- Prompt packs as hand-maintained Markdown collections outside the index
- A pack's own milestone model
Consequences
ADR 0124's point 3 is resolved; campaigns/README.md's 'nothing here is loaded by the tool' becomes 'loaded read-only, never as instructions'. A dangling campaign citation is a plan validation error.
Sources
Promoted on 2026-10-18 from the owner's ChatGPT project (workspace chatgpt-majordomus, issue I3100). The owner has not accepted it; it is proposed for the owner's decision.
chatgpt-majordomus:c245#11chatgpt-majordomus:c247#2chatgpt-majordomus:c297#9chatgpt-majordomus:c210#2