40 lines
2.0 KiB
Plaintext
40 lines
2.0 KiB
Plaintext
|
|
{
|
||
|
|
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)
|
||
|
|
",
|
||
|
|
}
|