Domain extension system (ADR-012): bash-layer dispatch activates repo_kind-conditional CLI domains. install.nu copies domains/ tree; short_alias wrappers generated (personal, prov). ore help and describe capabilities domain-aware. personal domain (PersonalOntology): career skills/talks/publications/positioning, CFP pipeline (Watching→Delivered), opportunities lifecycle, content pipeline, Sessionize integration. Daemon pages: /career, /personal. provisioning domain (DevWorkspace/Mixed): FSM state, next transitions, connections graph, gates, workspace card, capabilities, backlog. Daemon page: /provisioning. VCS abstraction layer (ADR-013): reflection/modules/vcs.nu — uniform jj/git API via filesystem detection (.jj/ vs .git/). opmode.nu and git-event.nu migrated off ^git. reflection/bin/jjw.nu — jj + ontoref + Radicle agent workspace lifecycle. jjw-ncl-merge.nu registered as jj merge tool for .ontology/ NCL conflicts. init-repo.nu for new_project mode. jj/rad not in ontoref requirements — belong in orchestration project manifests. 'Framework RepoKind: ontology/schemas/manifest.ncl gains 'Framework variant; ontoref self-identifies as framework — no domain activates for the protocol itself. Web presence: personal.html and provisioning.html domain subpages. index.html gains "Project Types — Domain Extensions" section with type cards and subpage links. Nav compacted (Arch/Prov labels, solid backdrop-filter background). on+re: vcs-abstraction (adrs: adr-013) and agent-workspace-orchestration Practice nodes; 21 manifest capabilities; state.ncl catalysts updated.
44 lines
2.1 KiB
Text
44 lines
2.1 KiB
Text
{
|
|
id = "0011",
|
|
slug = "manifest-coverage-hooks",
|
|
description = "Add pre-commit hook for manifest capability coverage and SessionStart hook showing manifest health. Prevents incomplete manifests from being committed and ensures agents see gaps at session start.",
|
|
check = {
|
|
tag = "NuCmd",
|
|
cmd = "let root = $env.ONTOREF_PROJECT_ROOT; let pcf = $\"($root)/.pre-commit-config.yaml\"; let hook = $\"($root)/.claude/hooks/session-context.sh\"; let has_manifest_hook = if ($pcf | path exists) { (open --raw $pcf | str contains 'manifest-coverage') } else { false }; let has_session_audit = if ($hook | path exists) { (open --raw $hook | str contains 'manifest-check') } else { false }; if $has_manifest_hook and $has_session_audit { exit 0 } else { exit 1 }",
|
|
expect_exit = 0,
|
|
},
|
|
instructions = "
|
|
Two hooks ensure manifest completeness is enforced and visible:
|
|
|
|
## 1. Pre-commit hook (blocks commits when manifest has Hard failures)
|
|
|
|
Add to .pre-commit-config.yaml in the local hooks section:
|
|
|
|
- id: manifest-coverage
|
|
name: Manifest capability completeness
|
|
entry: bash -c 'ONTOREF_PROJECT_ROOT=\"$(pwd)\" ontoref sync manifest-check'
|
|
language: system
|
|
files: (\\.ontology/|reflection/modes/|reflection/forms/).*\\.ncl$
|
|
pass_filenames: false
|
|
stages: [pre-commit]
|
|
|
|
This fires when .ontology/, reflection/modes/, or reflection/forms/ NCL files change.
|
|
It blocks on Hard failures (no capabilities declared at all) and warns on Soft issues.
|
|
|
|
## 2. SessionStart hook (shows manifest health at session start)
|
|
|
|
Add to .claude/hooks/session-context.sh before the final line:
|
|
|
|
# quick manifest/ontology health check
|
|
HEALTH_OUT=$(cd \"$REPO_ROOT\" && ONTOREF_PROJECT_ROOT=\"$REPO_ROOT\" \\
|
|
ontoref sync manifest-check 2>/dev/null || true)
|
|
|
|
if [[ -n \"$HEALTH_OUT\" ]]; then
|
|
echo \"Manifest Coverage\"
|
|
echo \"$HEALTH_OUT\"
|
|
fi
|
|
|
|
This ensures every Claude Code session starts with visibility into manifest completeness.
|
|
Agents see immediately if capabilities are missing and avoid reinventing existing functionality.
|
|
",
|
|
}
|