campaigns-are-read-as-provenance — A prompt pack is a campaign the index serves and the plan cites
campaign is a kind; records cite campaigns through provenance and campaigns list what cites them; one command adds a pack safely; an execution of a record that cites a campaign pins the revision it ran.
PLÁNOVÁNO 0 ze 4 úkolů hotovo
- připraveno
- 1
- blokováno
- 3
- aktivní
- 0
- verify
- 0
- hotovo
- 0
- zrušeno
- 0
Problém
campaigns/ keeps 52 packs verbatim (ls -d campaigns/*/ | wc -l at 707a04c) with campaigns/MANIFEST.sha256, held by scripts/ci/campaigns-check and case 340, but its README says nothing loads them, share/kinds.yaml has no campaign kind, no intent, milestone or issue cites the pack that drove it, a new pack is copied in by hand, and ADR 0124 (proposed) leaves the ingestion noun open. 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#11.
Výsledek
campaign is a kind; records cite campaigns through provenance and campaigns list what cites them; one command adds a pack safely; an execution of a record that cites a campaign pins the revision it ran.
Aktuální stav
Verified on master 707a04c: rule project.a-brief-is-kept-as-received is blocking; ADR 0124 status proposed; no ingestion command exists; majordomus pack is the text-shard tool (reserved by ADR 0124).
Cílový stav
I3167-I3170 landed under the campaign ADR.
Rozsah
- kampaně
- share/kinds.yaml
- share/schemas/majordomus
- share/schemas/majordomus/issue
- share/schemas/majordomus/intent
- apps/majordomus-cli/src/capability/builtin
- scripts/ci/campaigns-check
- docs/PLANNING.md
Mimo rozsah
- Publishing pack bodies on the site
- Executing anything a pack contains
- The /ui drag-and-drop pack view (ui-surfaces domain)
Kritéria přijetí
- Every pack resolves as majordomus://campaign/<id>
- A dangling campaign citation is refused
- An unsafe archive is refused before any write
Validace
- majordomus plan validate
Rizika
- The campaign ADR must be accepted before code lands (ADR 0124 point 3)
- ADR 0194 decides the same noun as 'intake'; the owner chooses one before I3167 starts
Úkoly
Každý z nich je prováděcí kontrakt s vlastními kritérii přijetí, validačním příkazem a požadovanými důkazy. Sloupec wave je vrstva grafu závislostí, v níž úkol leží.
| issue | status | vlna | závisí na | název |
|---|---|---|---|---|
| I3167 | PŘIPRAVENO | 0 | — | A campaign is a kind of the index: every pack under campaigns/ is an object with its manifest digest, served read-only |
| I3168 | BLOKOVÁNO | 1 | I3167 | An intent, milestone or issue cites the campaign that drove it, and a campaign answers which records cite it |
| I3169 | BLOKOVÁNO | 1 | I3167 | A new pack enters campaigns/ through one command that checks the archive before writing a byte |
| I3170 | BLOKOVÁNO | 2 | I3168 | An execution of a record that cites a campaign pins the revision it ran, and a later revision changes nothing about it |
Graf
flowchart LR
I3167["I3167<br/>A campaign is a kind of the index: every pack under campaigns/ is an object with its manifest digest, served read-only"]:::ready
I3168["I3168<br/>An intent, milestone or issue cites the campaign that drove it, and a campaign answers which records cite it"]:::blocked
I3169["I3169<br/>A new pack enters campaigns/ through one command that checks the archive before writing a byte"]:::blocked
I3170["I3170<br/>An execution of a record that cites a campaign pins the revision it ran, and a later revision changes nothing about it"]:::blocked
I3167 --> I3168
I3167 --> I3169
I3168 --> I3170
classDef done stroke:#16a34a,fill:#dcfce7,color:#14532d,stroke-width:2px
classDef active stroke:#2563eb,fill:#eff6ff,color:#1e3a8a,stroke-width:2px
classDef verify stroke:#7c3aed,fill:#f5f3ff,color:#4c1d95,stroke-width:2px
classDef ready stroke:#0891b2,fill:#ecfeff,color:#164e63,stroke-width:2px
classDef planned stroke:#0891b2,fill:#ecfeff,color:#164e63,stroke-width:2px
classDef blocked stroke:#b45309,fill:#fffbeb,color:#78350f,stroke-width:2px
classDef cancelled stroke:#6b7280,fill:#f9fafb,color:#374151,stroke-width:2px
classDef superseded stroke:#6b7280,fill:#f9fafb,color:#374151,stroke-width:2pxOdkazuje z tohoto diagramu (4)
- I3167 A campaign is a kind of the index: every pack under campaigns/ is an object with its manifest digest, served read-only
- I3168 An intent, milestone or issue cites the campaign that drove it, and a campaign answers which records cite it
- I3169 A new pack enters campaigns/ through one command that checks the archive before writing a byte
- I3170 An execution of a record that cites a campaign pins the revision it ran, and a later revision changes nothing about it
Canonical record: .ai/repo/project/milestones/campaigns-are-read-as-provenance.yaml. Read it back with majordomus plan show campaigns-are-read-as-provenance.