{
  id          = "0003",
  slug        = "manifest-self-interrogation",
  description = "Populate capabilities[], requirements[], and critical_deps[] in manifest.ncl",
  check       = {
    tag         = "NuCmd",
    cmd         = "let f = $\"($env.ONTOREF_PROJECT_ROOT)/.ontology/manifest.ncl\"; if not ($f | path exists) { exit 1 }; let r = (do { ^nickel export --format json --import-path $env.NICKEL_IMPORT_PATH $f } | complete); if $r.exit_code != 0 { exit 1 }; let m = ($r.stdout | from json); if (($m.capabilities? | default [] | length) > 0) and (($m.requirements? | default [] | length) > 0) { exit 0 } else { exit 1 }",
    expect_exit = 0,
  },
  instructions = "
Open .ontology/manifest.ncl and populate three arrays.

capabilities[] — what the project offers (2-6 entries, audience-facing):
  m.make_capability {
    id        = \"kebab-id\",
    name      = \"Short Name\",
    summary   = \"One line: what this does.\",
    rationale = \"Why it exists. What was rejected.\",
    how       = \"Key patterns, entry points, data flows.\",
    artifacts = [\"crates/foo/\", \"GET /api/foo\"],
    adrs      = [],   # ADR IDs that formalize decisions here
    nodes     = [],   # node IDs from .ontology/core.ncl
  }

requirements[] — prerequisites to run (one per tool/service/envvar):
  m.make_requirement {
    id        = \"kebab-id\",
    name      = \"Human Name\",
    env       = 'Both,     # 'Production | 'Development | 'Both
    kind      = 'Tool,     # 'Tool | 'Service | 'EnvVar | 'Infrastructure
    version   = \"\",
    required  = true,
    impact    = \"What breaks if absent.\",
    provision = \"How to install or set.\",
  }

critical_deps[] — load-bearing external deps with documented blast radius:
  m.make_critical_dep {
    id             = \"kebab-id\",
    name           = \"crate-or-service\",
    ref            = \"crates.io: foo\",
    used_for       = \"Which capabilities depend on this.\",
    failure_impact = \"What breaks if this dep disappears.\",
    mitigation     = \"Feature flags, fallback builds, alternatives.\",
  }

Verify:
  nickel export --import-path \"$NICKEL_IMPORT_PATH\" .ontology/manifest.ncl \\
    | jq '{capabilities: (.capabilities|length), requirements: (.requirements|length), critical_deps: (.critical_deps|length)}'
",
}
