{ 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) ", }