{
  "version": 2,
  "description": "Content Manifest (#1821 / #1875): structural source of truth classifying repository entries into one of four buckets and enforcing the post-move LOCATION INVARIANT. Since #1875 every shippable `content` entry physically lives under the `content/` root (which the C1 flatten deposits to `.deft/core/<x>`), with the three named harness-entry files (AGENTS.md / main.md / SKILL.md) the only content-classified exceptions that remain at the repo root (`harnessEntry: true`). The deterministic gate `task verify:content-manifest` (packages/core/src/verify-source/content-manifest.ts, exposed via `deft-ts verify-content-manifest`) fails CI when a `content` entry is not under `content/`, when a non-`content` entry lives under `content/`, when a git-tracked `content/` child has no manifest entry (or a manifest content child is stale), when a bucket value is invalid, or when a path is listed twice. Refs #1821 (manifest v1 + gate), #1669 (epic / Wave-1 LockedDecisions D2/C1/C2/C3/C4), #1875 (content/ move).",
  "buckets": [
    {
      "id": "content",
      "label": "Content",
      "description": "Framework knowledge/guidance/assets that a consumer consumes. Since #1875 these live under the `content/` root and deposit (C1 flatten) into the consumer's `.deft/core/`: standards docs, skills, templates, packs, conventions prose, core/framework docs, and deposited scaffolds. The three named harness-entry files (AGENTS.md / main.md / SKILL.md) are content-classified but root-resident (`harnessEntry: true`)."
    },
    {
      "id": "engine",
      "label": "Engine",
      "description": "Executable framework runtime -- the code that enforces and runs deft. In the #1669 model this ships as the CLI package (npm/pip), not as editable deposited content: the TS packages, the Go installer, the Python scripts, the Taskfile + task fragments, the `run` CLI launchers, and the deposited git hooks."
    },
    {
      "id": "harness",
      "label": "Harness",
      "description": "Build / test / language toolchain configuration required to build and test the engine inside THIS repo. Not shipped as-is; needed to produce the engine + content artifacts: package/lockfiles, compiler/linter/test config, and the framework's own test suite."
    },
    {
      "id": "repo-dev",
      "label": "Repo-dev",
      "description": "Maintainer-only / repository artifacts that are neither shippable content nor engine runtime: CI config, git plumbing, planning docs, history/incident records, the maintainer's own vBRIEF lifecycle, framework spec fixtures, and the deft project's own product/release docs."
    }
  ],
  "straddlePolicy": "C3 straddle policy (#1669 Wave-1 LockedDecisions): straddles are now PHYSICALLY RESOLVED by the #1875 content/ move -- the directories that previously straddled (vbrief/, meta/, incidents/, docs/, core/) were split so the shippable half lives under content/ and the maintainer-only half stays at the repo root. The remaining `straddle: true` markers (LICENSE.md, content/conventions) flag entries whose directory still carries a minority of differently-purposed files that travel together by necessity (e.g. content/conventions co-locates engine-consumed gate JSON with conventions prose). The gate enforces the location invariant over content/ children; it does not descend further into directories.",
  "entries": [
    {
      "path": "content/.agents",
      "bucket": "content",
      "note": "Dogfood deposit of the deft skills (.agents/skills/) the deft repo's own agents load; consumer .agents/ is generated by the installer from embedded pointers, not copied from here."
    },
    {
      "path": "content/LICENSE.md",
      "bucket": "content",
      "note": "Travels with the deposited payload; the engine CLI package also bundles its own copy at publish time.",
      "straddle": true
    },
    {
      "path": "content/QUICK-START.md",
      "bucket": "content",
      "note": "Consumer-facing onboarding doc; the AGENTS.md managed-section points consumers at .deft/core/QUICK-START.md for idempotent refresh."
    },
    {
      "path": "content/UPGRADING.md",
      "bucket": "content",
      "note": "Consumer-facing upgrade guide cited by the doctor and install surfaces."
    },
    {
      "path": "content/coding",
      "bucket": "content",
      "note": "Coding standards docs (coding.md, testing.md, security.md, review.md, hygiene.md, debugging.md, build-output.md, toolchain.md, holzmann.md)."
    },
    {
      "path": "content/commands.md",
      "bucket": "content",
      "note": "Framework commands reference doc."
    },
    {
      "path": "content/context",
      "bucket": "content",
      "note": "Context-engineering standards docs."
    },
    {
      "path": "content/contracts",
      "bucket": "content",
      "note": "Framework contract docs (boundary-maps, deterministic-questions, hierarchy)."
    },
    {
      "path": "content/conventions",
      "bucket": "content",
      "note": "Conventions prose docs ship as content; co-located structured data files (rule-ownership.json, content-manifest.json) are engine-consumed gate inputs that travel with the same directory.",
      "straddle": true
    },
    {
      "path": "content/ci-cd",
      "bucket": "content",
      "note": "Optional CI/CD provider guidance (Blacksmith runner tiers, migration prompts, examples). Parallel to deployments/; lazy-load only (#448)."
    },
    {
      "path": "content/deployments",
      "bucket": "content",
      "note": "Per-platform deployment guidance docs (aws, azure, gcp, fly-io, cloudflare, ...)."
    },
    {
      "path": "content/docs",
      "bucket": "content",
      "note": "Consumer-facing concept/guide docs promoted from the maintainer docs/ tree (BROWNFIELD.md, getting-started.md, good-agents-md.md) per #1669 Wave-1 C3."
    },
    {
      "path": "content/doctor",
      "bucket": "content",
      "note": "Doctor operator microcopy pack (session-coda.json) for optional interactive session coda (#2712). Human TTY only; never AGENTS/skills/JSON."
    },
    {
      "path": "content/events",
      "bucket": "content",
      "note": "Event-driven framework docs and JSON schemas (event-record.schema.json, registry.schema.json)."
    },
    {
      "path": "content/glossary.md",
      "bucket": "content",
      "note": "Canonical framework glossary -- the former core/glossary.md merged with the unique vBRIEF-lifecycle terms from the former top-level glossary.md (#1875 dedup)."
    },
    {
      "path": "content/incidents",
      "bucket": "content",
      "note": "Incident postmortem convention scaffold (_template.md + README.md); specific incident records stay at the maintainer-only root incidents/."
    },
    {
      "path": "content/interfaces",
      "bucket": "content",
      "note": "Interface-design standards docs (cli, rest, tui, web)."
    },
    {
      "path": "content/languages",
      "bucket": "content",
      "note": "Per-language standards docs (python, go, typescript, rust, ...)."
    },
    {
      "path": "content/meta",
      "bucket": "content",
      "note": "Meta docs that ship: SOUL.md / code-field.md / morals.md / philosophy.md / security.md plus the former core/ docs (project.md, ralph.md, versioning.md). Repo-dev meta (ideas/suggestions/lessons/policy-changes.log) stays at root meta/."
    },
    {
      "path": "content/packs",
      "bucket": "content",
      "note": "Versioned content packs (lessons, etc.) loaded via the packs:slice surface."
    },
    {
      "path": "content/patterns",
      "bucket": "content",
      "note": "Pattern docs (goal-gate-determinism, build-model-ahead, generator-verifier-loop, ...)."
    },
    {
      "path": "content/platforms",
      "bucket": "content",
      "note": "Platform-specific guidance docs (unity, 2600, ...)."
    },
    {
      "path": "content/references",
      "bucket": "content",
      "note": "Reference docs (cost-models, ip-risk, plain-english-ux, ...)."
    },
    {
      "path": "content/resilience",
      "bucket": "content",
      "note": "Resilience/session-continuity standards docs (continue-here.md, ...)."
    },
    {
      "path": "content/scm",
      "bucket": "content",
      "note": "Source-control standards docs (git.md, github.md)."
    },
    {
      "path": "content/secrets",
      "bucket": "content",
      "note": "Deposited secrets-handling scaffold directory (.gitkeep placeholder)."
    },
    {
      "path": "content/skills",
      "bucket": "content",
      "note": "The deft skill library (deft-directive-*); the primary shipped guidance surface."
    },
    {
      "path": "content/strategies",
      "bucket": "content",
      "note": "Strategy docs (delegate, interview, ...)."
    },
    {
      "path": "content/swarm",
      "bucket": "content",
      "note": "Swarm orchestration standards docs (the swarm runtime lives in packages/ + tasks/swarm.yml)."
    },
    {
      "path": "content/templates",
      "bucket": "content",
      "note": "Framework templates (agents-entry.md, agent-prompt-preamble.md, ...)."
    },
    {
      "path": "content/tools",
      "bucket": "content",
      "note": "Tooling standards docs (taskfile.md, ...)."
    },
    {
      "path": "content/vbrief",
      "bucket": "content",
      "note": "Shipped vBRIEF surface: schemas/, vbrief.md. The lifecycle folders + PROJECT-DEFINITION live at the maintainer-only root vbrief/. The framework's own migration RESULT artifacts (LEGACY-REPORT.md / RECONCILIATION.md / safety-manifest.json) are repo-dev and live at root vbrief/migration/ -- they are this repo's migration output, not a consumer convention, so they are not shipped (refines C3: migration/ held only framework-result records, not migration conventions)."
    },
    {
      "path": "content/verification",
      "bucket": "content",
      "note": "Verification standards docs (stub detection, legacy-code detection)."
    },
    {
      "path": "AGENTS.md",
      "bucket": "content",
      "harnessEntry": true,
      "note": "Installer-managed framework guidance entry; the managed-section is rendered from content/templates/agents-entry.md and deposited to consumers. Harness-entry: stays at the repo root, not under content/ (#1669 D2)."
    },
    {
      "path": "main.md",
      "bucket": "content",
      "harnessEntry": true,
      "note": "The full framework guidelines -- the canonical entry doc consumers read. Harness-entry: stays at the repo root, not under content/ (#1669 D2)."
    },
    {
      "path": "SKILL.md",
      "bucket": "content",
      "harnessEntry": true,
      "note": "Top-level deft skill entry (the `deft` skill); part of the shipped skills surface. Harness-entry: stays at the repo root, not under content/ (#1669 D2)."
    },
    {
      "path": ".githooks",
      "bucket": "engine",
      "note": "Deposited pre-commit/pre-push hooks (#1463) that invoke the gate scripts -- executable enforcement installed by `task setup` / the installer."
    },
    {
      "path": "cmd",
      "bucket": "engine",
      "note": "Go installer (cmd/deft-install) -- the canonical bootstrap/upgrade binary."
    },
    {
      "path": "packages",
      "bucket": "engine",
      "note": "TypeScript engine monorepo (@deftai/cli, @deftai/core, @deftai/types) -- the gate + lifecycle runtime."
    },
    {
      "path": "run",
      "bucket": "engine",
      "note": "POSIX `run` CLI launcher shim."
    },
    {
      "path": "run.bat",
      "bucket": "engine",
      "note": "Windows `run` CLI launcher shim."
    },
    {
      "path": "run.py",
      "bucket": "engine",
      "note": "Python `run` CLI entrypoint dispatched by the run shims."
    },
    {
      "path": "scripts",
      "bucket": "engine",
      "note": "Python engine scripts (gate oracles, lifecycle, triage, release) invoked by the Taskfile and TS dispatcher."
    },
    {
      "path": "tasks",
      "bucket": "engine",
      "note": "Taskfile fragments (verify, scope, triage, pr, ...) that orchestrate the engine verbs."
    },
    {
      "path": "Taskfile.yml",
      "bucket": "engine",
      "note": "Root task runner manifest that orchestrates the engine gates and lifecycle verbs."
    },
    {
      "path": ".nvmrc",
      "bucket": "harness",
      "note": "Node version pin used to build the TS engine."
    },
    {
      "path": "biome.json",
      "bucket": "harness",
      "note": "Biome formatter/linter config for the TS engine."
    },
    {
      "path": "go.mod",
      "bucket": "harness",
      "note": "Go module definition for the installer build."
    },
    {
      "path": "package.json",
      "bucket": "harness",
      "note": "Root pnpm workspace manifest for the TS engine build/test."
    },
    {
      "path": "pnpm-lock.yaml",
      "bucket": "harness",
      "note": "pnpm dependency lockfile for the TS engine."
    },
    {
      "path": "pnpm-workspace.yaml",
      "bucket": "harness",
      "note": "pnpm workspace package globs for the TS engine."
    },
    {
      "path": "pyproject.toml",
      "bucket": "harness",
      "note": "Python project + pytest/ruff/mypy config for the Python engine scripts and their tests."
    },
    {
      "path": "tests",
      "bucket": "harness",
      "note": "The framework's own test suite (Python); pruned from the consumer deposit (#1474)."
    },
    {
      "path": "tsconfig.base.json",
      "bucket": "harness",
      "note": "Shared TypeScript compiler base config."
    },
    {
      "path": "tsconfig.json",
      "bucket": "harness",
      "note": "Root TypeScript project references config."
    },
    {
      "path": "uv.lock",
      "bucket": "harness",
      "note": "uv dependency lockfile for the Python engine scripts."
    },
    {
      "path": "vitest.config.ts",
      "bucket": "harness",
      "note": "Vitest config for the TS engine test suite."
    },
    {
      "path": ".gitattributes",
      "bucket": "repo-dev",
      "note": "Git attributes (linguist/vendored markers, EOL); repository plumbing."
    },
    {
      "path": ".github",
      "bucket": "repo-dev",
      "note": "GitHub Actions workflows, issue/PR templates, CODEOWNERS; maintainer CI only."
    },
    {
      "path": ".gitignore",
      "bucket": "repo-dev",
      "note": "Git ignore rules; repository plumbing."
    },
    {
      "path": ".planning",
      "bucket": "repo-dev",
      "note": "Maintainer planning artifacts (e.g. generated codebase MAP projection); never ships."
    },
    {
      "path": "CHANGELOG.md",
      "bucket": "repo-dev",
      "note": "Maintainer changelog; promoted into GitHub release bodies at release time."
    },
    {
      "path": "CONTRIBUTING.md",
      "bucket": "repo-dev",
      "note": "Maintainer contributor guide for the deft repo itself."
    },
    {
      "path": "PRD.md",
      "bucket": "repo-dev",
      "note": "The deft project's own product requirements doc; not consumer framework content."
    },
    {
      "path": "PROJECT.md",
      "bucket": "repo-dev",
      "note": "The deft project's own project doc (deprecation redirect / generated export); not consumer content."
    },
    {
      "path": "README.md",
      "bucket": "repo-dev",
      "note": "GitHub-facing repository readme for the deft project."
    },
    {
      "path": "REFERENCES.md",
      "bucket": "repo-dev",
      "note": "Maintainer-only Skills Index and lazy-load guide. Audience boundary (bucket repo-dev). Consumers use npx deft packs:slice skills list (#3601 / #3899). Do not reclassify as content."
    },
    {
      "path": "ROADMAP.md",
      "bucket": "repo-dev",
      "note": "The deft project's own roadmap; updated at release time."
    },
    {
      "path": "SPECIFICATION.md",
      "bucket": "repo-dev",
      "note": "The deft project's own generated specification export / deprecation redirect; not consumer content."
    },
    {
      "path": "docs",
      "bucket": "repo-dev",
      "note": "Predominantly maintainer/repo docs (FILES.md, RELEASING.md, analysis/, audits, incident smoke records); the consumer-facing concept guides were promoted to content/docs/ (#1875 C3)."
    },
    {
      "path": "history",
      "bucket": "repo-dev",
      "note": "Archived task/vBRIEF state preserved byte-for-byte as a forensic record; never ships."
    },
    {
      "path": "incidents",
      "bucket": "repo-dev",
      "note": "The deft project's own incident postmortem records; the _template.md + README convention were promoted to content/incidents/ (#1875 C3)."
    },
    {
      "path": "meta",
      "bucket": "repo-dev",
      "note": "Repo-dev meta: ideas.md, suggestions.md, lessons.md (pack projection target), policy-changes.log. The shippable meta docs were promoted to content/meta/ (#1875 C3)."
    },
    {
      "path": "specs",
      "bucket": "repo-dev",
      "note": "The deft project's own framework spec fixtures/examples (strategy-chaining, testbed); repo-dev per #1669 Wave-1 C3 (not shipped)."
    },
    {
      "path": "vbrief",
      "bucket": "repo-dev",
      "note": "The maintainer's own vBRIEF scope lifecycle (proposed/pending/active/completed/cancelled + PROJECT-DEFINITION) plus the framework's own migration RESULT artifacts at vbrief/migration/ (LEGACY-REPORT.md / RECONCILIATION.md / safety-manifest.json). The shippable vBRIEF surface (schemas/, vbrief.md) was promoted to content/vbrief/ (#1875 C3); the migration result records stay repo-dev (this repo's own migration output, not a consumer convention)."
    }
  ]
}
