I3167 — A campaign is a kind of the index: every pack under campaigns/ is an object with its manifest digest, served read-only
Make campaign a kind of the index through a tracked YAML index outside campaigns/ (one member per pack: id, path, date, origin, revision digest) read by the existing members mechanism of share/kinds.yaml, so every pack rides the index onto CLI, MCP, HTTP and OpenAPI; the revision digest is defined from campaigns/MANIFEST.sha256; the site keeps not publishing pack bodies.
PŘIPRAVENO vlna 0 · p2 · profil implementation · bezpečné souběžně
Part of campaigns-are-read-as-provenance — A prompt pack is a campaign the index serves and the plan cites.
Připraveno. Všechny závislosti jsou hotové, takže majordomus plan start I3167 bude přijato.
Cíl
Make campaign a kind of the index through a tracked YAML index outside campaigns/ (one member per pack: id, path, date, origin, revision digest) read by the existing members mechanism of share/kinds.yaml, so every pack rides the index onto CLI, MCP, HTTP and OpenAPI; the revision digest is defined from campaigns/MANIFEST.sha256; the site keeps not publishing pack bodies.
Proč
campaigns/README.md: 'Nothing here is loaded by the tool'. Owner, 2026-10-10: better integrate tracking of prompt packs and uploads. 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:c297#9.
Aktuální stav
52 packs (ls -d campaigns/*/ | wc -l at 707a04c), one campaigns/MANIFEST.sha256 for all of them, scripts/ci/campaigns-check and case 340; no kind; share/kinds.yaml reads one file per object or the members of one YAML list.
Cílový stav
majordomus://campaign/<id> for every pack.
Rozsah
- share/kinds.yaml
- campaigns/README.md
- share/allow
- .ai/repo/knowledge/sources.yaml
- apps/majordomus-cli/src/metadata/mod.rs
- docs/SCHEMAS.md
- test/cases/340_a_brief_is_kept_as_received.sh
Mimo rozsah
- Publishing pack bodies
Závislosti
Žádné. Tento úkol je kořenem grafu.
Co na tom čeká
- I3168BLOCKED An intent, milestone or issue cites the campaign that drove it, and a campaign answers which records cite it
- I3169BLOCKED A new pack enters campaigns/ through one command that checks the archive before writing a byte
- I3272BLOCKED A received brief is a campaign revision pinned by its manifest digest, and the same bytes again are the same revision
Kritéria přijetí
- Every pack resolves by id with its digest
- A pack missing from the manifest is a finding, as campaigns-check already holds
Validace
- bin/majordomus-cli generate --check
- bash test/run.sh 340_a_brief_is_kept_as_received
Požadované důkazy
- test_campaign_kind
Důkazy
Nic nezaznamenáno. Za každým tokenem výše musí stát příkaz nebo artefakt, než lze tento úkol dokončit; vyprávění se odmítá.
Časová osa
- zahájeno
- —
- ověřeno
- —
- dokončeno
- —
Tato tři pole, důkazy výše a stav závislostí jsou vše, z čeho se stav skládá. Neexistuje žádné pole stavu, které by s nimi mohlo být v rozporu.
Canonical record: .ai/repo/project/issues/I3167.yaml. Read it back with majordomus plan show I3167.