mirror of
https://github.com/affaan-m/ECC.git
synced 2026-10-14 20:25:26 +02:00
Carry forward PR #3055 at92f53c4contoef648e01, preserving contributor attribution and current main. Focused maintainer fixes reuse shared input ceilings, preserve late root context through outer bootstrap, bound frontmatter before immutable parsing, and assert real oversized input in the limits workflow.
157 lines
5.5 KiB
JSON
157 lines
5.5 KiB
JSON
{
|
|
"$schema": "../schemas/hooks-metadata.schema.json",
|
|
"entries": {
|
|
"PreToolUse": [
|
|
{
|
|
"id": "pre:bash:dispatcher",
|
|
"description": "Consolidated Bash preflight dispatcher for quality, tmux, push, and GateGuard checks",
|
|
"fingerprint": "0d30f37d2148"
|
|
},
|
|
{
|
|
"id": "pre:powershell:gateguard-fact-force",
|
|
"description": "PowerShell fact-forcing gate: inspect destructive commands without running unrelated Bash-only preflight hooks",
|
|
"fingerprint": "63877b632223"
|
|
},
|
|
{
|
|
"id": "pre:write:doc-file-warning",
|
|
"description": "Doc file warning: warn about non-standard documentation files (exit code 0; warns only)",
|
|
"fingerprint": "595406f864e2"
|
|
},
|
|
{
|
|
"id": "pre:edit-write:suggest-compact",
|
|
"description": "Suggest manual compaction at logical intervals",
|
|
"fingerprint": "d99998a8f039"
|
|
},
|
|
{
|
|
"id": "pre:observe:continuous-learning",
|
|
"description": "Capture tool use observations for continuous learning",
|
|
"fingerprint": "17f73ac2a883"
|
|
},
|
|
{
|
|
"id": "pre:governance-capture",
|
|
"description": "Capture governance events (secrets, policy violations, approval requests). Enable with ECC_GOVERNANCE_CAPTURE=1",
|
|
"fingerprint": "ffa978692652"
|
|
},
|
|
{
|
|
"id": "pre:config-protection",
|
|
"description": "Block modifications to linter/formatter config files. Steers agent to fix code instead of weakening configs.",
|
|
"fingerprint": "2b2be80bbeb3"
|
|
},
|
|
{
|
|
"id": "pre:mcp-health-check",
|
|
"description": "Check MCP server health before MCP tool execution and block unhealthy MCP calls",
|
|
"fingerprint": "a68881c27a83"
|
|
},
|
|
{
|
|
"id": "pre:edit-write:gateguard-fact-force",
|
|
"description": "Fact-forcing gate: block first Edit/Write/MultiEdit per file and demand investigation (importers, data schemas, user instruction) before allowing",
|
|
"fingerprint": "32c4a312b4c2"
|
|
},
|
|
{
|
|
"id": "pre:hookify-runtime",
|
|
"description": "Evaluate project-local Hookify rules before Bash, PowerShell, and file tools run",
|
|
"fingerprint": "65b5a5d6bbd5"
|
|
}
|
|
],
|
|
"UserPromptSubmit": [
|
|
{
|
|
"id": "prompt:hookify-runtime",
|
|
"description": "Evaluate project-local Hookify prompt rules before a user prompt is processed",
|
|
"fingerprint": "89b4809a5a7e"
|
|
}
|
|
],
|
|
"PreCompact": [
|
|
{
|
|
"id": "pre:compact",
|
|
"description": "Save state before context compaction",
|
|
"fingerprint": "5a4ef4aaa985"
|
|
}
|
|
],
|
|
"SessionStart": [
|
|
{
|
|
"id": "session:start",
|
|
"description": "Load previous context and detect package manager on new session",
|
|
"fingerprint": "3bbe414382a5"
|
|
},
|
|
{
|
|
"id": "session-start:plan-canvas-sessions",
|
|
"description": "Surface open Plan Canvas review sessions so a fresh session can resume the loop",
|
|
"fingerprint": "ad75ab423357"
|
|
}
|
|
],
|
|
"PostToolUse": [
|
|
{
|
|
"id": "post:dispatcher:sync",
|
|
"description": "Run synchronous PostToolUse hooks in one process while preserving per-hook controls",
|
|
"fingerprint": "69422cb651aa"
|
|
},
|
|
{
|
|
"id": "post:dispatcher:async",
|
|
"description": "Run background PostToolUse hooks in one process while preserving per-hook controls",
|
|
"fingerprint": "01af98da6841"
|
|
}
|
|
],
|
|
"PostToolUseFailure": [
|
|
{
|
|
"id": "post:mcp-health-check",
|
|
"description": "Track failed MCP tool calls, mark unhealthy servers, and attempt reconnect",
|
|
"fingerprint": "edbf5346288f"
|
|
},
|
|
{
|
|
"id": "post:skill:track",
|
|
"description": "Record hard Skill tool failures for skill-health telemetry",
|
|
"fingerprint": "a4dbe0729f30"
|
|
}
|
|
],
|
|
"Stop": [
|
|
{
|
|
"id": "stop:hookify-runtime",
|
|
"description": "Evaluate project-local Hookify completion rules before Claude stops",
|
|
"fingerprint": "7dd7cbc0df5f"
|
|
},
|
|
{
|
|
"id": "stop:plan-canvas-pending",
|
|
"description": "Deliver undelivered Plan Canvas browser feedback before the agent stops",
|
|
"fingerprint": "5953e0fed81c"
|
|
},
|
|
{
|
|
"id": "stop:format-typecheck",
|
|
"description": "Batch format (Biome/Prettier) and typecheck (tsc) all JS/TS files edited this response — runs once at Stop instead of after every Edit",
|
|
"fingerprint": "a9d9bb04e060"
|
|
},
|
|
{
|
|
"id": "stop:check-console-log",
|
|
"description": "Check for console.log in modified files after each response",
|
|
"fingerprint": "a675a517c549"
|
|
},
|
|
{
|
|
"id": "stop:session-end",
|
|
"description": "Persist session state after each response (Stop carries transcript_path)",
|
|
"fingerprint": "d094692bee01"
|
|
},
|
|
{
|
|
"id": "stop:evaluate-session",
|
|
"description": "Evaluate session for extractable patterns",
|
|
"fingerprint": "664eec4bb68f"
|
|
},
|
|
{
|
|
"id": "stop:cost-tracker",
|
|
"description": "Track token and cost metrics per session",
|
|
"fingerprint": "5c5fe7253e20"
|
|
},
|
|
{
|
|
"id": "stop:desktop-notify",
|
|
"description": "Send desktop notification (macOS/WSL) with task summary when Claude responds",
|
|
"fingerprint": "7a492e898bf6"
|
|
}
|
|
],
|
|
"SessionEnd": [
|
|
{
|
|
"id": "session:end:marker",
|
|
"description": "Session end lifecycle marker (non-blocking)",
|
|
"fingerprint": "9270863f2935"
|
|
}
|
|
]
|
|
}
|
|
}
|