Skip to content

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.

READY wave 0 · p2 · implementation profile · parallel safe

Part of campaigns-are-read-as-provenance — A prompt pack is a campaign the index serves and the plan cites.

Ready. Every dependency is done, so majordomus plan start I3167 will be accepted.

Objective

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.

Why

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.

Current state

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.

Desired state

majordomus://campaign/<id> for every pack.

Scope

  • 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

Out of scope

  • Publishing pack bodies

Dependencies

None. This issue is a root of the graph.

What waits on this

Acceptance criteria

  • Every pack resolves by id with its digest
  • A pack missing from the manifest is a finding, as campaigns-check already holds

Validation

  • bin/majordomus-cli generate --check
  • bash test/run.sh 340_a_brief_is_kept_as_received

Evidence required

  • test_campaign_kind

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/I3167.yaml. Read it back with majordomus plan show I3167.

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