{
  id          = "0010",
  slug        = "manifest-capability-completeness",
  description = "Ensure manifest.ncl declares capabilities[] covering all project functionality — not just ontology structure. Without capabilities, agents see a partial view of the project via describe capabilities.",
  check       = {
    tag         = "NuCmd",
    cmd         = "let root = $env.ONTOREF_PROJECT_ROOT; let manifest = $\"($root)/.ontology/manifest.ncl\"; if not ($manifest | path exists) { exit 1 }; let caps = (nickel export --format json $manifest | from json | get capabilities? | default []); if ($caps | length) >= 3 { exit 0 } else { exit 1 }",
    expect_exit = 0,
  },
  instructions = "
Your project's .ontology/manifest.ncl must declare capabilities[] that describe what the project
DOES — not just what it IS. Each capability should have:

  id, name, summary (>30 chars), rationale, how, artifacts[], nodes[]

Without capabilities, `describe capabilities` shows an incomplete view and agents will miss
functionality that exists in the codebase.

1. Run `ontoref sync audit` and check for 'Manifest capability gaps':
   - Practice nodes not referenced by any capability's nodes[]
   - Reflection modes not referenced by any capability's artifacts[]

2. For each gap, either:
   a. Add the missing node/artifact reference to an existing capability, OR
   b. Create a new capability entry if the functionality is distinct

3. Verify with: nickel export .ontology/manifest.ncl | from json | get capabilities | length
   Should return >= 3 (most real projects have 5-15 capabilities).

4. Run `ontoref sync audit` again — 'Manifest capability gaps' section should not appear.

Common capabilities to declare:
  - Each major crate or module with distinct functionality
  - Each daemon UI feature (compose, actions, notifications)
  - Each CLI subsystem (backlog, forms, sync, coder)
  - Each integration point (MCP, NATS, API catalog)
  - Each operational workflow (migration, validation, onboarding)
",
}
