Part of the plugin-conformance program — epic #313 (dimensions 9 + 10 of its matrix).
Shared root cause — fix once in the synced hook library: the fleet's hook-utils.sh telemetry-only skip path makes a missing optional CLI a silent no-op in the default no-sink configuration. Doctrine: absence must be surfaced to both the agent and the user; a silently skipped feature is a defect. Land the visible-skip mechanism (e.g. additionalContext note) in the library source and resync all hook plugins.
Silent-skip / undeclared-prereq FAILs (dim 9): actionlint (CLI + jq silent no-op), bash-format (shellcheck skip invisible), desktop-notification (jq ungated), docs-hygiene (markdownlint-cli2 ship gate undeclared + absent-binary unclassified), eol-normalizer (jq disables hook silently), kindle-dedrm (gh undeclared, no fallback), ruff-format (ruff/jq silent), source-control (jq + unzip missing from README), work-items (jq undeclared), review (agents hard-require gh, README has no prerequisites section), biome-format (jq undeclared — noted).
Cross-platform declaration FAILs (dim 10): actionlint, mcp-tools, work-items (bash/jq requirement unstated), ai-briefing, education, prototype (unconditional Bash helper, no Windows path), code-tidying, knowledge (PowerShell gap), event-storming (unconditional rm -rf teardown), repo-hygiene (bare .sh hook command instead of interpreter-named exec form — real Windows spawn risk).
Acceptance: every runtime prerequisite declared at point of use and in the README; absence classified per doctrine (required→stop with remediation, optional→visible warn + skip, N/A→quiet); shell requirements stated with a Windows path; version bump + CHANGELOG per plugin; contract gate green.
🤖 Generated with Claude Code
Part of the plugin-conformance program — epic #313 (dimensions 9 + 10 of its matrix).
Shared root cause — fix once in the synced hook library: the fleet's
hook-utils.shtelemetry-only skip path makes a missing optional CLI a silent no-op in the default no-sink configuration. Doctrine: absence must be surfaced to both the agent and the user; a silently skipped feature is a defect. Land the visible-skip mechanism (e.g.additionalContextnote) in the library source and resync all hook plugins.Silent-skip / undeclared-prereq FAILs (dim 9): actionlint (CLI + jq silent no-op), bash-format (shellcheck skip invisible), desktop-notification (jq ungated), docs-hygiene (markdownlint-cli2 ship gate undeclared + absent-binary unclassified), eol-normalizer (jq disables hook silently), kindle-dedrm (
ghundeclared, no fallback), ruff-format (ruff/jq silent), source-control (jq + unzip missing from README), work-items (jq undeclared), review (agents hard-requiregh, README has no prerequisites section), biome-format (jq undeclared — noted).Cross-platform declaration FAILs (dim 10): actionlint, mcp-tools, work-items (bash/jq requirement unstated), ai-briefing, education, prototype (unconditional Bash helper, no Windows path), code-tidying, knowledge (PowerShell gap), event-storming (unconditional
rm -rfteardown), repo-hygiene (bare.shhook command instead of interpreter-named exec form — real Windows spawn risk).Acceptance: every runtime prerequisite declared at point of use and in the README; absence classified per doctrine (required→stop with remediation, optional→visible warn + skip, N/A→quiet); shell requirements stated with a Windows path; version bump + CHANGELOG per plugin; contract gate green.
🤖 Generated with Claude Code