Repository navigation
Expand file tree
/
Copy pathhooks.metadata.json
More file actions
139 lines (139 loc) · 4.91 KB
/
Copy pathhooks.metadata.json
File metadata and controls
139 lines (139 loc) · 4.91 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
{
"$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"
}
],
"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: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"
}
]
}
}