create-agent-rig 0.6.0 → 0.6.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/CHANGELOG.md +78 -0
  2. package/README.md +1 -1
  3. package/package.json +3 -1
  4. package/templates/agent-os/init/AGENTS.md +4 -2
  5. package/templates/agent-os/init/CLAUDE.md +4 -2
  6. package/templates/agent-os/universal/.agents/skills/loop/SKILL.md +46 -10
  7. package/templates/agent-os/universal/.claude/agents/prose-reviewer.md +10 -5
  8. package/templates/agent-os/universal/.claude/hooks/block-no-verify.mjs +3 -7
  9. package/templates/agent-os/universal/.claude/hooks/gate-stop-dod.mjs +20 -23
  10. package/templates/agent-os/universal/.claude/hooks/guard-bash.mjs +6 -8
  11. package/templates/agent-os/universal/.claude/hooks/guard-core-purity.mjs +3 -7
  12. package/templates/agent-os/universal/.claude/hooks/guard-rulebook.mjs +100 -31
  13. package/templates/agent-os/universal/.claude/hooks/guard-secret-file.mjs +75 -72
  14. package/templates/agent-os/universal/.claude/hooks/guard-web-boundary.mjs +3 -7
  15. package/templates/agent-os/universal/.claude/hooks/inject-rules.mjs +3 -6
  16. package/templates/agent-os/universal/.claude/hooks/lib/edit-input.mjs +11 -1
  17. package/templates/agent-os/universal/.claude/hooks/lib/hook-input.mjs +55 -0
  18. package/templates/agent-os/universal/.claude/rules/autonomy.md +7 -5
  19. package/templates/agent-os/universal/.claude/rules/invariants.md +14 -16
  20. package/templates/agent-os/universal/.claude/scripts/decision-router.mjs +1 -0
  21. package/templates/agent-os/universal/.claude/scripts/doctor.mjs +4 -1
  22. package/templates/agent-os/universal/.claude/scripts/git-env.mjs +1 -0
  23. package/templates/agent-os/universal/.claude/scripts/lib/revalidation-points.mjs +1 -0
  24. package/templates/agent-os/universal/.claude/scripts/lib/secrets.mjs +4 -1
  25. package/templates/agent-os/universal/.claude/scripts/queue/index.mjs +144 -4
  26. package/templates/agent-os/universal/.claude/scripts/queue/jira.mjs +21 -8
  27. package/templates/agent-os/universal/.claude/scripts/revalidate.mjs +1 -0
  28. package/templates/agent-os/universal/.claude/scripts/revalidation-report.mjs +1 -0
  29. package/templates/agent-os/universal/.claude/scripts/unattended-flag.mjs +269 -58
  30. package/templates/agent-os/universal/.claude/skills/loop/SKILL.md +46 -10
  31. package/templates/agent-os/universal/.codex/agents/prose-reviewer.toml +1 -1
  32. package/templates/agent-os/universal/.codex/hooks.json +16 -16
  33. package/templates/agent-os/universal/docs/decisions/spacing-rations-mechanisms.md +15 -0
  34. package/templates/agent-os/universal/layers.json +1 -0
  35. package/templates/hash-history.json +158 -43
  36. package/templates/release-ledger.json +3 -1
  37. package/templates/skeleton/aws-serverless/gitignore +2 -0
  38. package/templates/skeleton/node-service/gitignore +2 -0
@@ -7,23 +7,23 @@
7
7
  "hooks": [
8
8
  {
9
9
  "type": "command",
10
- "command": "node \"$(git rev-parse --show-toplevel)/.claude/hooks/guard-core-purity.mjs\"",
11
- "commandWindows": "powershell.exe -NoProfile -NonInteractive -EncodedCommand JAByAGUAcABvAFIAbwBvAHQAIAA9ACAAZwBpAHQAIAByAGUAdgAtAHAAYQByAHMAZQAgAC0ALQBzAGgAbwB3AC0AdABvAHAAbABlAHYAZQBsADsAIABpAGYAIAAoACQATABBAFMAVABFAFgASQBUAEMATwBEAEUAIAAtAG4AZQAgADAAKQAgAHsAIABlAHgAaQB0ACAAJABMAEEAUwBUAEUAWABJAFQAQwBPAEQARQAgAH0AOwAgACQAaABvAG8AawBQAGEAdABoACAAPQAgAEoAbwBpAG4ALQBQAGEAdABoACAAJAByAGUAcABvAFIAbwBvAHQAIAAnAC4AYwBsAGEAdQBkAGUALwBoAG8AbwBrAHMALwBnAHUAYQByAGQALQBjAG8AcgBlAC0AcAB1AHIAaQB0AHkALgBtAGoAcwAnADsAIAAmACAAbgBvAGQAZQAgACQAaABvAG8AawBQAGEAdABoADsAIABlAHgAaQB0ACAAJABMAEEAUwBUAEUAWABJAFQAQwBPAEQARQA="
10
+ "command": "repoRoot=\"$(git rev-parse --show-toplevel)\" && CLAUDE_PROJECT_DIR=\"$repoRoot\" node \"$repoRoot/.claude/hooks/guard-core-purity.mjs\"",
11
+ "commandWindows": "powershell.exe -NoProfile -NonInteractive -EncodedCommand JABFAHIAcgBvAHIAQQBjAHQAaQBvAG4AUAByAGUAZgBlAHIAZQBuAGMAZQAgAD0AIAAnAFMAdABvAHAAJwA7ACAAJAByAGUAcABvAFIAbwBvAHQAIAA9ACAAZwBpAHQAIAByAGUAdgAtAHAAYQByAHMAZQAgAC0ALQBzAGgAbwB3AC0AdABvAHAAbABlAHYAZQBsADsAIABpAGYAIAAoACQATABBAFMAVABFAFgASQBUAEMATwBEAEUAIAAtAG4AZQAgADAAKQAgAHsAIABlAHgAaQB0ACAAJABMAEEAUwBUAEUAWABJAFQAQwBPAEQARQAgAH0AOwAgACQAZQBuAHYAOgBDAEwAQQBVAEQARQBfAFAAUgBPAEoARQBDAFQAXwBEAEkAUgAgAD0AIAAkAHIAZQBwAG8AUgBvAG8AdAA7ACAAJABoAG8AbwBrAFAAYQB0AGgAIAA9ACAASgBvAGkAbgAtAFAAYQB0AGgAIAAkAHIAZQBwAG8AUgBvAG8AdAAgACcALgBjAGwAYQB1AGQAZQAvAGgAbwBvAGsAcwAvAGcAdQBhAHIAZAAtAGMAbwByAGUALQBwAHUAcgBpAHQAeQAuAG0AagBzACcAOwAgACQAcwB0AGEAcgB0AEkAbgBmAG8AIAA9ACAATgBlAHcALQBPAGIAagBlAGMAdAAgAFMAeQBzAHQAZQBtAC4ARABpAGEAZwBuAG8AcwB0AGkAYwBzAC4AUAByAG8AYwBlAHMAcwBTAHQAYQByAHQASQBuAGYAbwA7ACAAJABzAHQAYQByAHQASQBuAGYAbwAuAEYAaQBsAGUATgBhAG0AZQAgAD0AIAAnAG4AbwBkAGUAJwA7ACAAJABzAHQAYQByAHQASQBuAGYAbwAuAEEAcgBnAHUAbQBlAG4AdABzACAAPQAgACcAIgAnACAAKwAgACQAaABvAG8AawBQAGEAdABoACAAKwAgACcAIgAnADsAIAAkAHMAdABhAHIAdABJAG4AZgBvAC4AVQBzAGUAUwBoAGUAbABsAEUAeABlAGMAdQB0AGUAIAA9ACAAJABmAGEAbABzAGUAOwAgACQAcwB0AGEAcgB0AEkAbgBmAG8ALgBSAGUAZABpAHIAZQBjAHQAUwB0AGEAbgBkAGEAcgBkAEkAbgBwAHUAdAAgAD0AIAAkAHQAcgB1AGUAOwAgACQAYwBoAGkAbABkACAAPQAgAFsAUwB5AHMAdABlAG0ALgBEAGkAYQBnAG4AbwBzAHQAaQBjAHMALgBQAHIAbwBjAGUAcwBzAF0AOgA6AFMAdABhAHIAdAAoACQAcwB0AGEAcgB0AEkAbgBmAG8AKQA7ACAAWwBDAG8AbgBzAG8AbABlAF0AOgA6AE8AcABlAG4AUwB0AGEAbgBkAGEAcgBkAEkAbgBwAHUAdAAoACkALgBDAG8AcAB5AFQAbwAoACQAYwBoAGkAbABkAC4AUwB0AGEAbgBkAGEAcgBkAEkAbgBwAHUAdAAuAEIAYQBzAGUAUwB0AHIAZQBhAG0AKQA7ACAAJABjAGgAaQBsAGQALgBTAHQAYQBuAGQAYQByAGQASQBuAHAAdQB0AC4AQwBsAG8AcwBlACgAKQA7ACAAJABjAGgAaQBsAGQALgBXAGEAaQB0AEYAbwByAEUAeABpAHQAKAApADsAIABlAHgAaQB0ACAAJABjAGgAaQBsAGQALgBFAHgAaQB0AEMAbwBkAGUA"
12
12
  },
13
13
  {
14
14
  "type": "command",
15
- "command": "node \"$(git rev-parse --show-toplevel)/.claude/hooks/guard-web-boundary.mjs\"",
16
- "commandWindows": "powershell.exe -NoProfile -NonInteractive -EncodedCommand JAByAGUAcABvAFIAbwBvAHQAIAA9ACAAZwBpAHQAIAByAGUAdgAtAHAAYQByAHMAZQAgAC0ALQBzAGgAbwB3AC0AdABvAHAAbABlAHYAZQBsADsAIABpAGYAIAAoACQATABBAFMAVABFAFgASQBUAEMATwBEAEUAIAAtAG4AZQAgADAAKQAgAHsAIABlAHgAaQB0ACAAJABMAEEAUwBUAEUAWABJAFQAQwBPAEQARQAgAH0AOwAgACQAaABvAG8AawBQAGEAdABoACAAPQAgAEoAbwBpAG4ALQBQAGEAdABoACAAJAByAGUAcABvAFIAbwBvAHQAIAAnAC4AYwBsAGEAdQBkAGUALwBoAG8AbwBrAHMALwBnAHUAYQByAGQALQB3AGUAYgAtAGIAbwB1AG4AZABhAHIAeQAuAG0AagBzACcAOwAgACYAIABuAG8AZABlACAAJABoAG8AbwBrAFAAYQB0AGgAOwAgAGUAeABpAHQAIAAkAEwAQQBTAFQARQBYAEkAVABDAE8ARABFAA=="
15
+ "command": "repoRoot=\"$(git rev-parse --show-toplevel)\" && CLAUDE_PROJECT_DIR=\"$repoRoot\" node \"$repoRoot/.claude/hooks/guard-web-boundary.mjs\"",
16
+ "commandWindows": "powershell.exe -NoProfile -NonInteractive -EncodedCommand JABFAHIAcgBvAHIAQQBjAHQAaQBvAG4AUAByAGUAZgBlAHIAZQBuAGMAZQAgAD0AIAAnAFMAdABvAHAAJwA7ACAAJAByAGUAcABvAFIAbwBvAHQAIAA9ACAAZwBpAHQAIAByAGUAdgAtAHAAYQByAHMAZQAgAC0ALQBzAGgAbwB3AC0AdABvAHAAbABlAHYAZQBsADsAIABpAGYAIAAoACQATABBAFMAVABFAFgASQBUAEMATwBEAEUAIAAtAG4AZQAgADAAKQAgAHsAIABlAHgAaQB0ACAAJABMAEEAUwBUAEUAWABJAFQAQwBPAEQARQAgAH0AOwAgACQAZQBuAHYAOgBDAEwAQQBVAEQARQBfAFAAUgBPAEoARQBDAFQAXwBEAEkAUgAgAD0AIAAkAHIAZQBwAG8AUgBvAG8AdAA7ACAAJABoAG8AbwBrAFAAYQB0AGgAIAA9ACAASgBvAGkAbgAtAFAAYQB0AGgAIAAkAHIAZQBwAG8AUgBvAG8AdAAgACcALgBjAGwAYQB1AGQAZQAvAGgAbwBvAGsAcwAvAGcAdQBhAHIAZAAtAHcAZQBiAC0AYgBvAHUAbgBkAGEAcgB5AC4AbQBqAHMAJwA7ACAAJABzAHQAYQByAHQASQBuAGYAbwAgAD0AIABOAGUAdwAtAE8AYgBqAGUAYwB0ACAAUwB5AHMAdABlAG0ALgBEAGkAYQBnAG4AbwBzAHQAaQBjAHMALgBQAHIAbwBjAGUAcwBzAFMAdABhAHIAdABJAG4AZgBvADsAIAAkAHMAdABhAHIAdABJAG4AZgBvAC4ARgBpAGwAZQBOAGEAbQBlACAAPQAgACcAbgBvAGQAZQAnADsAIAAkAHMAdABhAHIAdABJAG4AZgBvAC4AQQByAGcAdQBtAGUAbgB0AHMAIAA9ACAAJwAiACcAIAArACAAJABoAG8AbwBrAFAAYQB0AGgAIAArACAAJwAiACcAOwAgACQAcwB0AGEAcgB0AEkAbgBmAG8ALgBVAHMAZQBTAGgAZQBsAGwARQB4AGUAYwB1AHQAZQAgAD0AIAAkAGYAYQBsAHMAZQA7ACAAJABzAHQAYQByAHQASQBuAGYAbwAuAFIAZQBkAGkAcgBlAGMAdABTAHQAYQBuAGQAYQByAGQASQBuAHAAdQB0ACAAPQAgACQAdAByAHUAZQA7ACAAJABjAGgAaQBsAGQAIAA9ACAAWwBTAHkAcwB0AGUAbQAuAEQAaQBhAGcAbgBvAHMAdABpAGMAcwAuAFAAcgBvAGMAZQBzAHMAXQA6ADoAUwB0AGEAcgB0ACgAJABzAHQAYQByAHQASQBuAGYAbwApADsAIABbAEMAbwBuAHMAbwBsAGUAXQA6ADoATwBwAGUAbgBTAHQAYQBuAGQAYQByAGQASQBuAHAAdQB0ACgAKQAuAEMAbwBwAHkAVABvACgAJABjAGgAaQBsAGQALgBTAHQAYQBuAGQAYQByAGQASQBuAHAAdQB0AC4AQgBhAHMAZQBTAHQAcgBlAGEAbQApADsAIAAkAGMAaABpAGwAZAAuAFMAdABhAG4AZABhAHIAZABJAG4AcAB1AHQALgBDAGwAbwBzAGUAKAApADsAIAAkAGMAaABpAGwAZAAuAFcAYQBpAHQARgBvAHIARQB4AGkAdAAoACkAOwAgAGUAeABpAHQAIAAkAGMAaABpAGwAZAAuAEUAeABpAHQAQwBvAGQAZQA="
17
17
  },
18
18
  {
19
19
  "type": "command",
20
- "command": "node \"$(git rev-parse --show-toplevel)/.claude/hooks/guard-secret-file.mjs\"",
21
- "commandWindows": "powershell.exe -NoProfile -NonInteractive -EncodedCommand JAByAGUAcABvAFIAbwBvAHQAIAA9ACAAZwBpAHQAIAByAGUAdgAtAHAAYQByAHMAZQAgAC0ALQBzAGgAbwB3AC0AdABvAHAAbABlAHYAZQBsADsAIABpAGYAIAAoACQATABBAFMAVABFAFgASQBUAEMATwBEAEUAIAAtAG4AZQAgADAAKQAgAHsAIABlAHgAaQB0ACAAJABMAEEAUwBUAEUAWABJAFQAQwBPAEQARQAgAH0AOwAgACQAaABvAG8AawBQAGEAdABoACAAPQAgAEoAbwBpAG4ALQBQAGEAdABoACAAJAByAGUAcABvAFIAbwBvAHQAIAAnAC4AYwBsAGEAdQBkAGUALwBoAG8AbwBrAHMALwBnAHUAYQByAGQALQBzAGUAYwByAGUAdAAtAGYAaQBsAGUALgBtAGoAcwAnADsAIAAmACAAbgBvAGQAZQAgACQAaABvAG8AawBQAGEAdABoADsAIABlAHgAaQB0ACAAJABMAEEAUwBUAEUAWABJAFQAQwBPAEQARQA="
20
+ "command": "repoRoot=\"$(git rev-parse --show-toplevel)\" && CLAUDE_PROJECT_DIR=\"$repoRoot\" node \"$repoRoot/.claude/hooks/guard-secret-file.mjs\"",
21
+ "commandWindows": "powershell.exe -NoProfile -NonInteractive -EncodedCommand JABFAHIAcgBvAHIAQQBjAHQAaQBvAG4AUAByAGUAZgBlAHIAZQBuAGMAZQAgAD0AIAAnAFMAdABvAHAAJwA7ACAAJAByAGUAcABvAFIAbwBvAHQAIAA9ACAAZwBpAHQAIAByAGUAdgAtAHAAYQByAHMAZQAgAC0ALQBzAGgAbwB3AC0AdABvAHAAbABlAHYAZQBsADsAIABpAGYAIAAoACQATABBAFMAVABFAFgASQBUAEMATwBEAEUAIAAtAG4AZQAgADAAKQAgAHsAIABlAHgAaQB0ACAAJABMAEEAUwBUAEUAWABJAFQAQwBPAEQARQAgAH0AOwAgACQAZQBuAHYAOgBDAEwAQQBVAEQARQBfAFAAUgBPAEoARQBDAFQAXwBEAEkAUgAgAD0AIAAkAHIAZQBwAG8AUgBvAG8AdAA7ACAAJABoAG8AbwBrAFAAYQB0AGgAIAA9ACAASgBvAGkAbgAtAFAAYQB0AGgAIAAkAHIAZQBwAG8AUgBvAG8AdAAgACcALgBjAGwAYQB1AGQAZQAvAGgAbwBvAGsAcwAvAGcAdQBhAHIAZAAtAHMAZQBjAHIAZQB0AC0AZgBpAGwAZQAuAG0AagBzACcAOwAgACQAcwB0AGEAcgB0AEkAbgBmAG8AIAA9ACAATgBlAHcALQBPAGIAagBlAGMAdAAgAFMAeQBzAHQAZQBtAC4ARABpAGEAZwBuAG8AcwB0AGkAYwBzAC4AUAByAG8AYwBlAHMAcwBTAHQAYQByAHQASQBuAGYAbwA7ACAAJABzAHQAYQByAHQASQBuAGYAbwAuAEYAaQBsAGUATgBhAG0AZQAgAD0AIAAnAG4AbwBkAGUAJwA7ACAAJABzAHQAYQByAHQASQBuAGYAbwAuAEEAcgBnAHUAbQBlAG4AdABzACAAPQAgACcAIgAnACAAKwAgACQAaABvAG8AawBQAGEAdABoACAAKwAgACcAIgAnADsAIAAkAHMAdABhAHIAdABJAG4AZgBvAC4AVQBzAGUAUwBoAGUAbABsAEUAeABlAGMAdQB0AGUAIAA9ACAAJABmAGEAbABzAGUAOwAgACQAcwB0AGEAcgB0AEkAbgBmAG8ALgBSAGUAZABpAHIAZQBjAHQAUwB0AGEAbgBkAGEAcgBkAEkAbgBwAHUAdAAgAD0AIAAkAHQAcgB1AGUAOwAgACQAYwBoAGkAbABkACAAPQAgAFsAUwB5AHMAdABlAG0ALgBEAGkAYQBnAG4AbwBzAHQAaQBjAHMALgBQAHIAbwBjAGUAcwBzAF0AOgA6AFMAdABhAHIAdAAoACQAcwB0AGEAcgB0AEkAbgBmAG8AKQA7ACAAWwBDAG8AbgBzAG8AbABlAF0AOgA6AE8AcABlAG4AUwB0AGEAbgBkAGEAcgBkAEkAbgBwAHUAdAAoACkALgBDAG8AcAB5AFQAbwAoACQAYwBoAGkAbABkAC4AUwB0AGEAbgBkAGEAcgBkAEkAbgBwAHUAdAAuAEIAYQBzAGUAUwB0AHIAZQBhAG0AKQA7ACAAJABjAGgAaQBsAGQALgBTAHQAYQBuAGQAYQByAGQASQBuAHAAdQB0AC4AQwBsAG8AcwBlACgAKQA7ACAAJABjAGgAaQBsAGQALgBXAGEAaQB0AEYAbwByAEUAeABpAHQAKAApADsAIABlAHgAaQB0ACAAJABjAGgAaQBsAGQALgBFAHgAaQB0AEMAbwBkAGUA"
22
22
  },
23
23
  {
24
24
  "type": "command",
25
- "command": "node \"$(git rev-parse --show-toplevel)/.claude/hooks/guard-rulebook.mjs\"",
26
- "commandWindows": "powershell.exe -NoProfile -NonInteractive -EncodedCommand JAByAGUAcABvAFIAbwBvAHQAIAA9ACAAZwBpAHQAIAByAGUAdgAtAHAAYQByAHMAZQAgAC0ALQBzAGgAbwB3AC0AdABvAHAAbABlAHYAZQBsADsAIABpAGYAIAAoACQATABBAFMAVABFAFgASQBUAEMATwBEAEUAIAAtAG4AZQAgADAAKQAgAHsAIABlAHgAaQB0ACAAJABMAEEAUwBUAEUAWABJAFQAQwBPAEQARQAgAH0AOwAgACQAaABvAG8AawBQAGEAdABoACAAPQAgAEoAbwBpAG4ALQBQAGEAdABoACAAJAByAGUAcABvAFIAbwBvAHQAIAAnAC4AYwBsAGEAdQBkAGUALwBoAG8AbwBrAHMALwBnAHUAYQByAGQALQByAHUAbABlAGIAbwBvAGsALgBtAGoAcwAnADsAIAAmACAAbgBvAGQAZQAgACQAaABvAG8AawBQAGEAdABoADsAIABlAHgAaQB0ACAAJABMAEEAUwBUAEUAWABJAFQAQwBPAEQARQA="
25
+ "command": "repoRoot=\"$(git rev-parse --show-toplevel)\" && CLAUDE_PROJECT_DIR=\"$repoRoot\" node \"$repoRoot/.claude/hooks/guard-rulebook.mjs\"",
26
+ "commandWindows": "powershell.exe -NoProfile -NonInteractive -EncodedCommand JABFAHIAcgBvAHIAQQBjAHQAaQBvAG4AUAByAGUAZgBlAHIAZQBuAGMAZQAgAD0AIAAnAFMAdABvAHAAJwA7ACAAJAByAGUAcABvAFIAbwBvAHQAIAA9ACAAZwBpAHQAIAByAGUAdgAtAHAAYQByAHMAZQAgAC0ALQBzAGgAbwB3AC0AdABvAHAAbABlAHYAZQBsADsAIABpAGYAIAAoACQATABBAFMAVABFAFgASQBUAEMATwBEAEUAIAAtAG4AZQAgADAAKQAgAHsAIABlAHgAaQB0ACAAJABMAEEAUwBUAEUAWABJAFQAQwBPAEQARQAgAH0AOwAgACQAZQBuAHYAOgBDAEwAQQBVAEQARQBfAFAAUgBPAEoARQBDAFQAXwBEAEkAUgAgAD0AIAAkAHIAZQBwAG8AUgBvAG8AdAA7ACAAJABoAG8AbwBrAFAAYQB0AGgAIAA9ACAASgBvAGkAbgAtAFAAYQB0AGgAIAAkAHIAZQBwAG8AUgBvAG8AdAAgACcALgBjAGwAYQB1AGQAZQAvAGgAbwBvAGsAcwAvAGcAdQBhAHIAZAAtAHIAdQBsAGUAYgBvAG8AawAuAG0AagBzACcAOwAgACQAcwB0AGEAcgB0AEkAbgBmAG8AIAA9ACAATgBlAHcALQBPAGIAagBlAGMAdAAgAFMAeQBzAHQAZQBtAC4ARABpAGEAZwBuAG8AcwB0AGkAYwBzAC4AUAByAG8AYwBlAHMAcwBTAHQAYQByAHQASQBuAGYAbwA7ACAAJABzAHQAYQByAHQASQBuAGYAbwAuAEYAaQBsAGUATgBhAG0AZQAgAD0AIAAnAG4AbwBkAGUAJwA7ACAAJABzAHQAYQByAHQASQBuAGYAbwAuAEEAcgBnAHUAbQBlAG4AdABzACAAPQAgACcAIgAnACAAKwAgACQAaABvAG8AawBQAGEAdABoACAAKwAgACcAIgAnADsAIAAkAHMAdABhAHIAdABJAG4AZgBvAC4AVQBzAGUAUwBoAGUAbABsAEUAeABlAGMAdQB0AGUAIAA9ACAAJABmAGEAbABzAGUAOwAgACQAcwB0AGEAcgB0AEkAbgBmAG8ALgBSAGUAZABpAHIAZQBjAHQAUwB0AGEAbgBkAGEAcgBkAEkAbgBwAHUAdAAgAD0AIAAkAHQAcgB1AGUAOwAgACQAYwBoAGkAbABkACAAPQAgAFsAUwB5AHMAdABlAG0ALgBEAGkAYQBnAG4AbwBzAHQAaQBjAHMALgBQAHIAbwBjAGUAcwBzAF0AOgA6AFMAdABhAHIAdAAoACQAcwB0AGEAcgB0AEkAbgBmAG8AKQA7ACAAWwBDAG8AbgBzAG8AbABlAF0AOgA6AE8AcABlAG4AUwB0AGEAbgBkAGEAcgBkAEkAbgBwAHUAdAAoACkALgBDAG8AcAB5AFQAbwAoACQAYwBoAGkAbABkAC4AUwB0AGEAbgBkAGEAcgBkAEkAbgBwAHUAdAAuAEIAYQBzAGUAUwB0AHIAZQBhAG0AKQA7ACAAJABjAGgAaQBsAGQALgBTAHQAYQBuAGQAYQByAGQASQBuAHAAdQB0AC4AQwBsAG8AcwBlACgAKQA7ACAAJABjAGgAaQBsAGQALgBXAGEAaQB0AEYAbwByAEUAeABpAHQAKAApADsAIABlAHgAaQB0ACAAJABjAGgAaQBsAGQALgBFAHgAaQB0AEMAbwBkAGUA"
27
27
  }
28
28
  ]
29
29
  },
@@ -32,13 +32,13 @@
32
32
  "hooks": [
33
33
  {
34
34
  "type": "command",
35
- "command": "node \"$(git rev-parse --show-toplevel)/.claude/hooks/block-no-verify.mjs\"",
36
- "commandWindows": "powershell.exe -NoProfile -NonInteractive -EncodedCommand JAByAGUAcABvAFIAbwBvAHQAIAA9ACAAZwBpAHQAIAByAGUAdgAtAHAAYQByAHMAZQAgAC0ALQBzAGgAbwB3AC0AdABvAHAAbABlAHYAZQBsADsAIABpAGYAIAAoACQATABBAFMAVABFAFgASQBUAEMATwBEAEUAIAAtAG4AZQAgADAAKQAgAHsAIABlAHgAaQB0ACAAJABMAEEAUwBUAEUAWABJAFQAQwBPAEQARQAgAH0AOwAgACQAaABvAG8AawBQAGEAdABoACAAPQAgAEoAbwBpAG4ALQBQAGEAdABoACAAJAByAGUAcABvAFIAbwBvAHQAIAAnAC4AYwBsAGEAdQBkAGUALwBoAG8AbwBrAHMALwBiAGwAbwBjAGsALQBuAG8ALQB2AGUAcgBpAGYAeQAuAG0AagBzACcAOwAgACYAIABuAG8AZABlACAAJABoAG8AbwBrAFAAYQB0AGgAOwAgAGUAeABpAHQAIAAkAEwAQQBTAFQARQBYAEkAVABDAE8ARABFAA=="
35
+ "command": "repoRoot=\"$(git rev-parse --show-toplevel)\" && CLAUDE_PROJECT_DIR=\"$repoRoot\" node \"$repoRoot/.claude/hooks/block-no-verify.mjs\"",
36
+ "commandWindows": "powershell.exe -NoProfile -NonInteractive -EncodedCommand JABFAHIAcgBvAHIAQQBjAHQAaQBvAG4AUAByAGUAZgBlAHIAZQBuAGMAZQAgAD0AIAAnAFMAdABvAHAAJwA7ACAAJAByAGUAcABvAFIAbwBvAHQAIAA9ACAAZwBpAHQAIAByAGUAdgAtAHAAYQByAHMAZQAgAC0ALQBzAGgAbwB3AC0AdABvAHAAbABlAHYAZQBsADsAIABpAGYAIAAoACQATABBAFMAVABFAFgASQBUAEMATwBEAEUAIAAtAG4AZQAgADAAKQAgAHsAIABlAHgAaQB0ACAAJABMAEEAUwBUAEUAWABJAFQAQwBPAEQARQAgAH0AOwAgACQAZQBuAHYAOgBDAEwAQQBVAEQARQBfAFAAUgBPAEoARQBDAFQAXwBEAEkAUgAgAD0AIAAkAHIAZQBwAG8AUgBvAG8AdAA7ACAAJABoAG8AbwBrAFAAYQB0AGgAIAA9ACAASgBvAGkAbgAtAFAAYQB0AGgAIAAkAHIAZQBwAG8AUgBvAG8AdAAgACcALgBjAGwAYQB1AGQAZQAvAGgAbwBvAGsAcwAvAGIAbABvAGMAawAtAG4AbwAtAHYAZQByAGkAZgB5AC4AbQBqAHMAJwA7ACAAJABzAHQAYQByAHQASQBuAGYAbwAgAD0AIABOAGUAdwAtAE8AYgBqAGUAYwB0ACAAUwB5AHMAdABlAG0ALgBEAGkAYQBnAG4AbwBzAHQAaQBjAHMALgBQAHIAbwBjAGUAcwBzAFMAdABhAHIAdABJAG4AZgBvADsAIAAkAHMAdABhAHIAdABJAG4AZgBvAC4ARgBpAGwAZQBOAGEAbQBlACAAPQAgACcAbgBvAGQAZQAnADsAIAAkAHMAdABhAHIAdABJAG4AZgBvAC4AQQByAGcAdQBtAGUAbgB0AHMAIAA9ACAAJwAiACcAIAArACAAJABoAG8AbwBrAFAAYQB0AGgAIAArACAAJwAiACcAOwAgACQAcwB0AGEAcgB0AEkAbgBmAG8ALgBVAHMAZQBTAGgAZQBsAGwARQB4AGUAYwB1AHQAZQAgAD0AIAAkAGYAYQBsAHMAZQA7ACAAJABzAHQAYQByAHQASQBuAGYAbwAuAFIAZQBkAGkAcgBlAGMAdABTAHQAYQBuAGQAYQByAGQASQBuAHAAdQB0ACAAPQAgACQAdAByAHUAZQA7ACAAJABjAGgAaQBsAGQAIAA9ACAAWwBTAHkAcwB0AGUAbQAuAEQAaQBhAGcAbgBvAHMAdABpAGMAcwAuAFAAcgBvAGMAZQBzAHMAXQA6ADoAUwB0AGEAcgB0ACgAJABzAHQAYQByAHQASQBuAGYAbwApADsAIABbAEMAbwBuAHMAbwBsAGUAXQA6ADoATwBwAGUAbgBTAHQAYQBuAGQAYQByAGQASQBuAHAAdQB0ACgAKQAuAEMAbwBwAHkAVABvACgAJABjAGgAaQBsAGQALgBTAHQAYQBuAGQAYQByAGQASQBuAHAAdQB0AC4AQgBhAHMAZQBTAHQAcgBlAGEAbQApADsAIAAkAGMAaABpAGwAZAAuAFMAdABhAG4AZABhAHIAZABJAG4AcAB1AHQALgBDAGwAbwBzAGUAKAApADsAIAAkAGMAaABpAGwAZAAuAFcAYQBpAHQARgBvAHIARQB4AGkAdAAoACkAOwAgAGUAeABpAHQAIAAkAGMAaABpAGwAZAAuAEUAeABpAHQAQwBvAGQAZQA="
37
37
  },
38
38
  {
39
39
  "type": "command",
40
- "command": "node \"$(git rev-parse --show-toplevel)/.claude/hooks/guard-bash.mjs\"",
41
- "commandWindows": "powershell.exe -NoProfile -NonInteractive -EncodedCommand JAByAGUAcABvAFIAbwBvAHQAIAA9ACAAZwBpAHQAIAByAGUAdgAtAHAAYQByAHMAZQAgAC0ALQBzAGgAbwB3AC0AdABvAHAAbABlAHYAZQBsADsAIABpAGYAIAAoACQATABBAFMAVABFAFgASQBUAEMATwBEAEUAIAAtAG4AZQAgADAAKQAgAHsAIABlAHgAaQB0ACAAJABMAEEAUwBUAEUAWABJAFQAQwBPAEQARQAgAH0AOwAgACQAaABvAG8AawBQAGEAdABoACAAPQAgAEoAbwBpAG4ALQBQAGEAdABoACAAJAByAGUAcABvAFIAbwBvAHQAIAAnAC4AYwBsAGEAdQBkAGUALwBoAG8AbwBrAHMALwBnAHUAYQByAGQALQBiAGEAcwBoAC4AbQBqAHMAJwA7ACAAJgAgAG4AbwBkAGUAIAAkAGgAbwBvAGsAUABhAHQAaAA7ACAAZQB4AGkAdAAgACQATABBAFMAVABFAFgASQBUAEMATwBEAEUA"
40
+ "command": "repoRoot=\"$(git rev-parse --show-toplevel)\" && CLAUDE_PROJECT_DIR=\"$repoRoot\" node \"$repoRoot/.claude/hooks/guard-bash.mjs\"",
41
+ "commandWindows": "powershell.exe -NoProfile -NonInteractive -EncodedCommand JABFAHIAcgBvAHIAQQBjAHQAaQBvAG4AUAByAGUAZgBlAHIAZQBuAGMAZQAgAD0AIAAnAFMAdABvAHAAJwA7ACAAJAByAGUAcABvAFIAbwBvAHQAIAA9ACAAZwBpAHQAIAByAGUAdgAtAHAAYQByAHMAZQAgAC0ALQBzAGgAbwB3AC0AdABvAHAAbABlAHYAZQBsADsAIABpAGYAIAAoACQATABBAFMAVABFAFgASQBUAEMATwBEAEUAIAAtAG4AZQAgADAAKQAgAHsAIABlAHgAaQB0ACAAJABMAEEAUwBUAEUAWABJAFQAQwBPAEQARQAgAH0AOwAgACQAZQBuAHYAOgBDAEwAQQBVAEQARQBfAFAAUgBPAEoARQBDAFQAXwBEAEkAUgAgAD0AIAAkAHIAZQBwAG8AUgBvAG8AdAA7ACAAJABoAG8AbwBrAFAAYQB0AGgAIAA9ACAASgBvAGkAbgAtAFAAYQB0AGgAIAAkAHIAZQBwAG8AUgBvAG8AdAAgACcALgBjAGwAYQB1AGQAZQAvAGgAbwBvAGsAcwAvAGcAdQBhAHIAZAAtAGIAYQBzAGgALgBtAGoAcwAnADsAIAAkAHMAdABhAHIAdABJAG4AZgBvACAAPQAgAE4AZQB3AC0ATwBiAGoAZQBjAHQAIABTAHkAcwB0AGUAbQAuAEQAaQBhAGcAbgBvAHMAdABpAGMAcwAuAFAAcgBvAGMAZQBzAHMAUwB0AGEAcgB0AEkAbgBmAG8AOwAgACQAcwB0AGEAcgB0AEkAbgBmAG8ALgBGAGkAbABlAE4AYQBtAGUAIAA9ACAAJwBuAG8AZABlACcAOwAgACQAcwB0AGEAcgB0AEkAbgBmAG8ALgBBAHIAZwB1AG0AZQBuAHQAcwAgAD0AIAAnACIAJwAgACsAIAAkAGgAbwBvAGsAUABhAHQAaAAgACsAIAAnACIAJwA7ACAAJABzAHQAYQByAHQASQBuAGYAbwAuAFUAcwBlAFMAaABlAGwAbABFAHgAZQBjAHUAdABlACAAPQAgACQAZgBhAGwAcwBlADsAIAAkAHMAdABhAHIAdABJAG4AZgBvAC4AUgBlAGQAaQByAGUAYwB0AFMAdABhAG4AZABhAHIAZABJAG4AcAB1AHQAIAA9ACAAJAB0AHIAdQBlADsAIAAkAGMAaABpAGwAZAAgAD0AIABbAFMAeQBzAHQAZQBtAC4ARABpAGEAZwBuAG8AcwB0AGkAYwBzAC4AUAByAG8AYwBlAHMAcwBdADoAOgBTAHQAYQByAHQAKAAkAHMAdABhAHIAdABJAG4AZgBvACkAOwAgAFsAQwBvAG4AcwBvAGwAZQBdADoAOgBPAHAAZQBuAFMAdABhAG4AZABhAHIAZABJAG4AcAB1AHQAKAApAC4AQwBvAHAAeQBUAG8AKAAkAGMAaABpAGwAZAAuAFMAdABhAG4AZABhAHIAZABJAG4AcAB1AHQALgBCAGEAcwBlAFMAdAByAGUAYQBtACkAOwAgACQAYwBoAGkAbABkAC4AUwB0AGEAbgBkAGEAcgBkAEkAbgBwAHUAdAAuAEMAbABvAHMAZQAoACkAOwAgACQAYwBoAGkAbABkAC4AVwBhAGkAdABGAG8AcgBFAHgAaQB0ACgAKQA7ACAAZQB4AGkAdAAgACQAYwBoAGkAbABkAC4ARQB4AGkAdABDAG8AZABlAA=="
42
42
  }
43
43
  ]
44
44
  }
@@ -48,9 +48,9 @@
48
48
  "hooks": [
49
49
  {
50
50
  "type": "command",
51
- "command": "node \"$(git rev-parse --show-toplevel)/.claude/hooks/gate-stop-dod.mjs\"",
51
+ "command": "repoRoot=\"$(git rev-parse --show-toplevel)\" && CLAUDE_PROJECT_DIR=\"$repoRoot\" node \"$repoRoot/.claude/hooks/gate-stop-dod.mjs\"",
52
52
  "timeout": 900,
53
- "commandWindows": "powershell.exe -NoProfile -NonInteractive -EncodedCommand JAByAGUAcABvAFIAbwBvAHQAIAA9ACAAZwBpAHQAIAByAGUAdgAtAHAAYQByAHMAZQAgAC0ALQBzAGgAbwB3AC0AdABvAHAAbABlAHYAZQBsADsAIABpAGYAIAAoACQATABBAFMAVABFAFgASQBUAEMATwBEAEUAIAAtAG4AZQAgADAAKQAgAHsAIABlAHgAaQB0ACAAJABMAEEAUwBUAEUAWABJAFQAQwBPAEQARQAgAH0AOwAgACQAaABvAG8AawBQAGEAdABoACAAPQAgAEoAbwBpAG4ALQBQAGEAdABoACAAJAByAGUAcABvAFIAbwBvAHQAIAAnAC4AYwBsAGEAdQBkAGUALwBoAG8AbwBrAHMALwBnAGEAdABlAC0AcwB0AG8AcAAtAGQAbwBkAC4AbQBqAHMAJwA7ACAAJgAgAG4AbwBkAGUAIAAkAGgAbwBvAGsAUABhAHQAaAA7ACAAZQB4AGkAdAAgACQATABBAFMAVABFAFgASQBUAEMATwBEAEUA"
53
+ "commandWindows": "powershell.exe -NoProfile -NonInteractive -EncodedCommand JABFAHIAcgBvAHIAQQBjAHQAaQBvAG4AUAByAGUAZgBlAHIAZQBuAGMAZQAgAD0AIAAnAFMAdABvAHAAJwA7ACAAJAByAGUAcABvAFIAbwBvAHQAIAA9ACAAZwBpAHQAIAByAGUAdgAtAHAAYQByAHMAZQAgAC0ALQBzAGgAbwB3AC0AdABvAHAAbABlAHYAZQBsADsAIABpAGYAIAAoACQATABBAFMAVABFAFgASQBUAEMATwBEAEUAIAAtAG4AZQAgADAAKQAgAHsAIABlAHgAaQB0ACAAJABMAEEAUwBUAEUAWABJAFQAQwBPAEQARQAgAH0AOwAgACQAZQBuAHYAOgBDAEwAQQBVAEQARQBfAFAAUgBPAEoARQBDAFQAXwBEAEkAUgAgAD0AIAAkAHIAZQBwAG8AUgBvAG8AdAA7ACAAJABoAG8AbwBrAFAAYQB0AGgAIAA9ACAASgBvAGkAbgAtAFAAYQB0AGgAIAAkAHIAZQBwAG8AUgBvAG8AdAAgACcALgBjAGwAYQB1AGQAZQAvAGgAbwBvAGsAcwAvAGcAYQB0AGUALQBzAHQAbwBwAC0AZABvAGQALgBtAGoAcwAnADsAIAAkAHMAdABhAHIAdABJAG4AZgBvACAAPQAgAE4AZQB3AC0ATwBiAGoAZQBjAHQAIABTAHkAcwB0AGUAbQAuAEQAaQBhAGcAbgBvAHMAdABpAGMAcwAuAFAAcgBvAGMAZQBzAHMAUwB0AGEAcgB0AEkAbgBmAG8AOwAgACQAcwB0AGEAcgB0AEkAbgBmAG8ALgBGAGkAbABlAE4AYQBtAGUAIAA9ACAAJwBuAG8AZABlACcAOwAgACQAcwB0AGEAcgB0AEkAbgBmAG8ALgBBAHIAZwB1AG0AZQBuAHQAcwAgAD0AIAAnACIAJwAgACsAIAAkAGgAbwBvAGsAUABhAHQAaAAgACsAIAAnACIAJwA7ACAAJABzAHQAYQByAHQASQBuAGYAbwAuAFUAcwBlAFMAaABlAGwAbABFAHgAZQBjAHUAdABlACAAPQAgACQAZgBhAGwAcwBlADsAIAAkAHMAdABhAHIAdABJAG4AZgBvAC4AUgBlAGQAaQByAGUAYwB0AFMAdABhAG4AZABhAHIAZABJAG4AcAB1AHQAIAA9ACAAJAB0AHIAdQBlADsAIAAkAGMAaABpAGwAZAAgAD0AIABbAFMAeQBzAHQAZQBtAC4ARABpAGEAZwBuAG8AcwB0AGkAYwBzAC4AUAByAG8AYwBlAHMAcwBdADoAOgBTAHQAYQByAHQAKAAkAHMAdABhAHIAdABJAG4AZgBvACkAOwAgAFsAQwBvAG4AcwBvAGwAZQBdADoAOgBPAHAAZQBuAFMAdABhAG4AZABhAHIAZABJAG4AcAB1AHQAKAApAC4AQwBvAHAAeQBUAG8AKAAkAGMAaABpAGwAZAAuAFMAdABhAG4AZABhAHIAZABJAG4AcAB1AHQALgBCAGEAcwBlAFMAdAByAGUAYQBtACkAOwAgACQAYwBoAGkAbABkAC4AUwB0AGEAbgBkAGEAcgBkAEkAbgBwAHUAdAAuAEMAbABvAHMAZQAoACkAOwAgACQAYwBoAGkAbABkAC4AVwBhAGkAdABGAG8AcgBFAHgAaQB0ACgAKQA7ACAAZQB4AGkAdAAgACQAYwBoAGkAbABkAC4ARQB4AGkAdABDAG8AZABlAA=="
54
54
  }
55
55
  ]
56
56
  }
@@ -60,8 +60,8 @@
60
60
  "hooks": [
61
61
  {
62
62
  "type": "command",
63
- "command": "node \"$(git rev-parse --show-toplevel)/.claude/hooks/inject-rules.mjs\"",
64
- "commandWindows": "powershell.exe -NoProfile -NonInteractive -EncodedCommand JAByAGUAcABvAFIAbwBvAHQAIAA9ACAAZwBpAHQAIAByAGUAdgAtAHAAYQByAHMAZQAgAC0ALQBzAGgAbwB3AC0AdABvAHAAbABlAHYAZQBsADsAIABpAGYAIAAoACQATABBAFMAVABFAFgASQBUAEMATwBEAEUAIAAtAG4AZQAgADAAKQAgAHsAIABlAHgAaQB0ACAAJABMAEEAUwBUAEUAWABJAFQAQwBPAEQARQAgAH0AOwAgACQAaABvAG8AawBQAGEAdABoACAAPQAgAEoAbwBpAG4ALQBQAGEAdABoACAAJAByAGUAcABvAFIAbwBvAHQAIAAnAC4AYwBsAGEAdQBkAGUALwBoAG8AbwBrAHMALwBpAG4AagBlAGMAdAAtAHIAdQBsAGUAcwAuAG0AagBzACcAOwAgACYAIABuAG8AZABlACAAJABoAG8AbwBrAFAAYQB0AGgAOwAgAGUAeABpAHQAIAAkAEwAQQBTAFQARQBYAEkAVABDAE8ARABFAA=="
63
+ "command": "repoRoot=\"$(git rev-parse --show-toplevel)\" && CLAUDE_PROJECT_DIR=\"$repoRoot\" node \"$repoRoot/.claude/hooks/inject-rules.mjs\"",
64
+ "commandWindows": "powershell.exe -NoProfile -NonInteractive -EncodedCommand JABFAHIAcgBvAHIAQQBjAHQAaQBvAG4AUAByAGUAZgBlAHIAZQBuAGMAZQAgAD0AIAAnAFMAdABvAHAAJwA7ACAAJAByAGUAcABvAFIAbwBvAHQAIAA9ACAAZwBpAHQAIAByAGUAdgAtAHAAYQByAHMAZQAgAC0ALQBzAGgAbwB3AC0AdABvAHAAbABlAHYAZQBsADsAIABpAGYAIAAoACQATABBAFMAVABFAFgASQBUAEMATwBEAEUAIAAtAG4AZQAgADAAKQAgAHsAIABlAHgAaQB0ACAAJABMAEEAUwBUAEUAWABJAFQAQwBPAEQARQAgAH0AOwAgACQAZQBuAHYAOgBDAEwAQQBVAEQARQBfAFAAUgBPAEoARQBDAFQAXwBEAEkAUgAgAD0AIAAkAHIAZQBwAG8AUgBvAG8AdAA7ACAAJABoAG8AbwBrAFAAYQB0AGgAIAA9ACAASgBvAGkAbgAtAFAAYQB0AGgAIAAkAHIAZQBwAG8AUgBvAG8AdAAgACcALgBjAGwAYQB1AGQAZQAvAGgAbwBvAGsAcwAvAGkAbgBqAGUAYwB0AC0AcgB1AGwAZQBzAC4AbQBqAHMAJwA7ACAAJABzAHQAYQByAHQASQBuAGYAbwAgAD0AIABOAGUAdwAtAE8AYgBqAGUAYwB0ACAAUwB5AHMAdABlAG0ALgBEAGkAYQBnAG4AbwBzAHQAaQBjAHMALgBQAHIAbwBjAGUAcwBzAFMAdABhAHIAdABJAG4AZgBvADsAIAAkAHMAdABhAHIAdABJAG4AZgBvAC4ARgBpAGwAZQBOAGEAbQBlACAAPQAgACcAbgBvAGQAZQAnADsAIAAkAHMAdABhAHIAdABJAG4AZgBvAC4AQQByAGcAdQBtAGUAbgB0AHMAIAA9ACAAJwAiACcAIAArACAAJABoAG8AbwBrAFAAYQB0AGgAIAArACAAJwAiACcAOwAgACQAcwB0AGEAcgB0AEkAbgBmAG8ALgBVAHMAZQBTAGgAZQBsAGwARQB4AGUAYwB1AHQAZQAgAD0AIAAkAGYAYQBsAHMAZQA7ACAAJABzAHQAYQByAHQASQBuAGYAbwAuAFIAZQBkAGkAcgBlAGMAdABTAHQAYQBuAGQAYQByAGQASQBuAHAAdQB0ACAAPQAgACQAdAByAHUAZQA7ACAAJABjAGgAaQBsAGQAIAA9ACAAWwBTAHkAcwB0AGUAbQAuAEQAaQBhAGcAbgBvAHMAdABpAGMAcwAuAFAAcgBvAGMAZQBzAHMAXQA6ADoAUwB0AGEAcgB0ACgAJABzAHQAYQByAHQASQBuAGYAbwApADsAIABbAEMAbwBuAHMAbwBsAGUAXQA6ADoATwBwAGUAbgBTAHQAYQBuAGQAYQByAGQASQBuAHAAdQB0ACgAKQAuAEMAbwBwAHkAVABvACgAJABjAGgAaQBsAGQALgBTAHQAYQBuAGQAYQByAGQASQBuAHAAdQB0AC4AQgBhAHMAZQBTAHQAcgBlAGEAbQApADsAIAAkAGMAaABpAGwAZAAuAFMAdABhAG4AZABhAHIAZABJAG4AcAB1AHQALgBDAGwAbwBzAGUAKAApADsAIAAkAGMAaABpAGwAZAAuAFcAYQBpAHQARgBvAHIARQB4AGkAdAAoACkAOwAgAGUAeABpAHQAIAAkAGMAaABpAGwAZAAuAEUAeABpAHQAQwBvAGQAZQA="
65
65
  }
66
66
  ]
67
67
  }
@@ -116,6 +116,21 @@ with no refusal, and then **holds** the elevated item with `causes: ["spacing"]`
116
116
  It holds because `core.mjs` is the layer that reads every unrecognised value
117
117
  restrictively — the same layer that holds when `selectNext` is called directly.
118
118
 
119
+ ## A board switch does not reset repository risk
120
+
121
+ `lastCompletedTier` is intentionally checkout-global, not board-scoped. Boards
122
+ partition ownership and selection; they do not partition the repository a merge
123
+ changes. If switching the selector chose a fresh tier slot, a run could land an
124
+ unreviewed mechanism from one board, switch to an independent queue, and land a
125
+ second mechanism in the same checkout — exactly the back-to-back chain the
126
+ ration exists to stop.
127
+
128
+ The selector therefore changes only the adapter options. The tier stays in the
129
+ one `.claude/queue.state.json` paired with the checkout's config, and the next
130
+ selection reads it whichever board is active. This is pinned in the generator's
131
+ `test/template/queue-board.test.ts` (absent in a generated rig) › "keeps
132
+ completed-tier spacing repository-global when the active board switches".
133
+
119
134
  ## What this does not fix
120
135
 
121
136
  The livelock where *every* remaining item is elevated-by-mechanism still exists —
@@ -17,6 +17,7 @@
17
17
  ".claude/hooks/guard-secret-file.mjs",
18
18
  ".claude/hooks/guard-rulebook.mjs",
19
19
  ".claude/hooks/lib/edit-input.mjs",
20
+ ".claude/hooks/lib/hook-input.mjs",
20
21
  ".claude/skills/pr-ship/SKILL.md",
21
22
  ".claude/skills/loop/SKILL.md",
22
23
  ".claude/skills/check-premises/SKILL.md",
@@ -5,19 +5,24 @@
5
5
  "0.3.1",
6
6
  "0.3.2",
7
7
  "0.4.0",
8
- "0.5.0"
8
+ "0.5.0",
9
+ "0.6.0",
10
+ "0.6.1"
9
11
  ],
10
12
  "files": {
11
13
  ".agents/skills/check-premises/SKILL.md": {
12
14
  "since": "0.5.0",
13
15
  "hashes": [
14
- "e228eaebcd1dfa0e490f8f4260e349040bd742fdb6d2313698fd7925f8a7b058"
16
+ "e228eaebcd1dfa0e490f8f4260e349040bd742fdb6d2313698fd7925f8a7b058",
17
+ "403f26470ec0a9c853aa69fe8a114fbc3dfb3bf6e6094eecb8a836f153aa1a37"
15
18
  ]
16
19
  },
17
20
  ".agents/skills/loop/SKILL.md": {
18
21
  "since": "0.5.0",
19
22
  "hashes": [
20
- "eb52ef41269018107534d8dc2f552c57698e1677a1e76b5e666b5d09c007cac0"
23
+ "eb52ef41269018107534d8dc2f552c57698e1677a1e76b5e666b5d09c007cac0",
24
+ "47922b182915cb92696f851174f2e88c4ae8c67dc119ef39a3a597ef1300fab5",
25
+ "57f6add0504db45e7577474f97705fe474310e4cd3310cdb348a2c64eabe88cd"
21
26
  ]
22
27
  },
23
28
  ".agents/skills/new-invariant/SKILL.md": {
@@ -41,13 +46,15 @@
41
46
  ".agents/skills/post-deploy-verify/SKILL.md": {
42
47
  "since": "0.5.0",
43
48
  "hashes": [
44
- "20c919cefc0b2c351c6e03d18f465b0f99f8a192c8ef0a0f78eeceb0499f2fbc"
49
+ "20c919cefc0b2c351c6e03d18f465b0f99f8a192c8ef0a0f78eeceb0499f2fbc",
50
+ "cf447d7d052060289d7db750ee8566d79f44a25a5a8c000cf0d4c4779341b0b7"
45
51
  ]
46
52
  },
47
53
  ".agents/skills/pr-ship/SKILL.md": {
48
54
  "since": "0.5.0",
49
55
  "hashes": [
50
- "a2fb0d03c65701af9d2d69cbcb2582ae573f097b1e1071eb2916e5e4f7832b37"
56
+ "a2fb0d03c65701af9d2d69cbcb2582ae573f097b1e1071eb2916e5e4f7832b37",
57
+ "9616e4767942b2021e34ab7bb76eec9a5c280cc608a0756abb02743741d5fc8a"
51
58
  ]
52
59
  },
53
60
  ".agents/skills/ro-debug/SKILL.md": {
@@ -66,7 +73,8 @@
66
73
  "since": "0.2.0",
67
74
  "hashes": [
68
75
  "2286fbc01c0342b9bac9909890876c079615db5b398e3499a0f2fddb1a334098",
69
- "4c6241da56060b44e77f9b5f7a8cde7d2923bd605b8b9bae70d00329784c35be"
76
+ "4c6241da56060b44e77f9b5f7a8cde7d2923bd605b8b9bae70d00329784c35be",
77
+ "03f87fbc976d8d65287b032ae3612511fc8f7e57772470b2282b660343fc32db"
70
78
  ]
71
79
  },
72
80
  ".claude/agents/code-reviewer.md": {
@@ -75,21 +83,25 @@
75
83
  "58969edc0820463298002c618b6ec49913e1cb3aa90dec4aed2aec14c7bcfd3b",
76
84
  "be3d2992d1f278dde46b555df1840b02f91403db1ec2fd4d489fb5efa940f019",
77
85
  "ec403373ef6bc0575d61c6ca11f82792817b272221fad8317ef6c45388b52628",
78
- "f125cfbce848cdaa91fd81e961808b4dbde452287959ec2cf10b905ee3ede789"
86
+ "f125cfbce848cdaa91fd81e961808b4dbde452287959ec2cf10b905ee3ede789",
87
+ "8ede9297480c889ec6d6caf8d076e7d69111fb472933dcf5a48b9a8425fe50c2"
79
88
  ]
80
89
  },
81
90
  ".claude/agents/prose-reviewer.md": {
82
91
  "since": "0.3.2",
83
92
  "hashes": [
84
93
  "8d5762849afd328fdc1aabf053ad207f2e306e013665e3ff934b06cbb1bbda38",
85
- "0e4307cd9cf8ef723d79e98b1af46a34c6912a6aa925e2179d939cb83c8f2a44"
94
+ "0e4307cd9cf8ef723d79e98b1af46a34c6912a6aa925e2179d939cb83c8f2a44",
95
+ "7e8eaa2b4af9d65e1d10bf50c32c1d138fb2f8b9ba6e6d0880cade0524324d9d",
96
+ "ed1c05d3938c0b4f277f1bf4af8641460def830569049ff0697c9bda14518b78"
86
97
  ]
87
98
  },
88
99
  ".claude/agents/security-scanner.md": {
89
100
  "since": "0.2.0",
90
101
  "hashes": [
91
102
  "43e5d59315483e369ad19f3070175f146e88deabd3a12dc09339ac4fac0f2aee",
92
- "e01467a38a0183be46ba45b05d44f663fbf4b139ceaecb91b5d096f3286a3fcd"
103
+ "e01467a38a0183be46ba45b05d44f663fbf4b139ceaecb91b5d096f3286a3fcd",
104
+ "844e215af7d80bd85f62ca937c79bea59c8d8cd7c97353937ce62f7747eb9df7"
93
105
  ]
94
106
  },
95
107
  ".claude/agents/test-writer.md": {
@@ -116,14 +128,17 @@
116
128
  "hashes": [
117
129
  "de1f331eaf93bad6ef0e1734789fd3c4ab07550a85ed2d8ff8888bc6f0bcfb0f",
118
130
  "9fb8fad4d95756fb2424a97550aa85dfab0ca8dbcf91e6d0385263ba3b929135",
119
- "7852205961cb1647b49de5f7e79820c1735b4be897adcf8f5bc3eeb49318ff78"
131
+ "7852205961cb1647b49de5f7e79820c1735b4be897adcf8f5bc3eeb49318ff78",
132
+ "33edb11904e5c4f88626b41c7e649b85d20957a11ff7e1062538917647c3e7f0",
133
+ "19202a28355dac1d7a95d29411668cf970006b3044d89a772768ce21793931aa"
120
134
  ]
121
135
  },
122
136
  ".claude/hooks/guard-bash.mjs": {
123
137
  "since": "0.3.0",
124
138
  "hashes": [
125
139
  "4d396f412fc53094188b14348c5af4e79c7542a182630c20c4687d79899c5b0e",
126
- "e7a513216ebbceaa7f11ec8fb611de8bb5d5925dfdfd75b779dcb7c0ee6e83cc"
140
+ "e7a513216ebbceaa7f11ec8fb611de8bb5d5925dfdfd75b779dcb7c0ee6e83cc",
141
+ "78047f42dda65076dd2cdb73ad530553db3d4a6f3ea7f0729590ac7286323cb1"
127
142
  ]
128
143
  },
129
144
  ".claude/hooks/guard-core-purity.mjs": {
@@ -133,10 +148,18 @@
133
148
  "282faa364c2d152808cd92ff7e39da26fd0549a5b2d0af9711d3453be2c666eb"
134
149
  ]
135
150
  },
151
+ ".claude/hooks/guard-rulebook.mjs": {
152
+ "since": "0.6.0",
153
+ "hashes": [
154
+ "4524d715f2e41f4cfdd3d0f9c858817f913aaca5192bda97dff876b4d8c51f19",
155
+ "f9e3e4b7c22c4a64f521402419707ff382b05c8deb6310f62e5545db87f7cb4f"
156
+ ]
157
+ },
136
158
  ".claude/hooks/guard-secret-file.mjs": {
137
159
  "since": "0.5.0",
138
160
  "hashes": [
139
- "f6b81cb7640924d2e56aced58e6b48f65df6638fb5a9099985fe5d673245c3ad"
161
+ "f6b81cb7640924d2e56aced58e6b48f65df6638fb5a9099985fe5d673245c3ad",
162
+ "8c333879dba1f2bf87bbb8e7b257ac51315a74a4cb45252408ca615e2a42d7b5"
140
163
  ]
141
164
  },
142
165
  ".claude/hooks/guard-web-boundary.mjs": {
@@ -156,7 +179,9 @@
156
179
  ".claude/hooks/lib/edit-input.mjs": {
157
180
  "since": "0.5.0",
158
181
  "hashes": [
159
- "4f836bc3ff75a868ffe035b179ac9e7dc1ad7715d520677ff9f6aa5bfdb200eb"
182
+ "4f836bc3ff75a868ffe035b179ac9e7dc1ad7715d520677ff9f6aa5bfdb200eb",
183
+ "0c191d326a7bb0bbfc110e2210f44b4aa39276e8db3779aaa4545cffd4e11863",
184
+ "572c671f8f2cad190fe2f144071954ac4d3b1357cab80a19bad584dd3b3768c8"
160
185
  ]
161
186
  },
162
187
  ".claude/queue.json": {
@@ -176,7 +201,9 @@
176
201
  "hashes": [
177
202
  "c3aa6ea4487adf6d542174f491bf469d8f8563ec7c8c4de63fcd82d6a5ca4fba",
178
203
  "ce2104ce697d3e5ed9210e85fe0daeb66b432a36868493f06fec54073a5fff31",
179
- "530f63a4b29a5cc67867fa7b23575db81d42609ae401bfc4089b05194c586c21"
204
+ "530f63a4b29a5cc67867fa7b23575db81d42609ae401bfc4089b05194c586c21",
205
+ "a7359408d56e6bdbf268019ad9193d5fbf4a872385a65ba08564204e6a8f5b5f",
206
+ "619999500386b3d2867bbd4799f86a800fe7e168083c6e35fb2e629a2c926c5f"
180
207
  ]
181
208
  },
182
209
  ".claude/rules/aws-cdk.md": {
@@ -192,13 +219,16 @@
192
219
  "hashes": [
193
220
  "b24bbf3e596033719eff463d317ba1e933d0661e48bfa8eafba8d6dca1453a59",
194
221
  "518d9b3d7cbae50f30c86d33b2b4bbea11ab3ba6cfef270876e92604b2af5f50",
195
- "389484f0846c3dd8207c0f41bd56409103fbcc7f58b94b1bf4bd1d81b5af0e87"
222
+ "389484f0846c3dd8207c0f41bd56409103fbcc7f58b94b1bf4bd1d81b5af0e87",
223
+ "a2e10499a0bcd2cdc32f3986d27b59077c86e524d40323faabb2e5d78afc002c",
224
+ "c94c33d7ccbd46f191948325dfc7f68ce13b0d3a9470215de1de3f06b1499111"
196
225
  ]
197
226
  },
198
227
  ".claude/rules/node-ts.md": {
199
228
  "since": "0.2.0",
200
229
  "hashes": [
201
- "3db68a4280cc30655be56fed9385179c378f560f3df55e21952a24066427e845"
230
+ "3db68a4280cc30655be56fed9385179c378f560f3df55e21952a24066427e845",
231
+ "be3b7bf901ef250b5957a37815b9a339083f7a8c4ecc866aeb12e3a0797c3c09"
202
232
  ]
203
233
  },
204
234
  ".claude/rules/workflow.md": {
@@ -212,7 +242,9 @@
212
242
  ".claude/scripts/decision-router.mjs": {
213
243
  "since": "0.5.0",
214
244
  "hashes": [
215
- "783b5b455a56c6a3e3723f3c6da861e0a945562acb686b86ab9d0e16dbd552a6"
245
+ "783b5b455a56c6a3e3723f3c6da861e0a945562acb686b86ab9d0e16dbd552a6",
246
+ "c7a045d3687429c5047f09b4033ffffcecfede2edba736106f5e1048eb3cf27f",
247
+ "8e9fe877949955e8f698701f969784b288bc95943c3bcea3bd4368db82e8e43e"
216
248
  ]
217
249
  },
218
250
  ".claude/scripts/detect-missed-gate.mjs": {
@@ -223,22 +255,45 @@
223
255
  "120ee3b90497b9023528a7f8b4e7f48c30a578fad62d94d55d1d280240e5e3a2"
224
256
  ]
225
257
  },
258
+ ".claude/scripts/doctor.mjs": {
259
+ "since": "0.6.0",
260
+ "hashes": [
261
+ "eb31d2726ab95d6b8fd091b1daf8a21f403a46c801590baf4fecee5c1bec64b9",
262
+ "5154ad9abdcb37fea58b0da78fd71842c705774ffe48fd8050c302da17e73913"
263
+ ]
264
+ },
226
265
  ".claude/scripts/git-env.mjs": {
227
266
  "since": "0.5.0",
228
267
  "hashes": [
229
- "ff9f3c848a3881b67a8f795a4d172f407d896447e21dd3a9c4903365977d4519"
268
+ "ff9f3c848a3881b67a8f795a4d172f407d896447e21dd3a9c4903365977d4519",
269
+ "b022399f287cdce1bcb07329c0aab44bf99714b5f0515f274c962f41ea072b86"
270
+ ]
271
+ },
272
+ ".claude/scripts/lib/gate-coverage.mjs": {
273
+ "since": "0.6.0",
274
+ "hashes": [
275
+ "1ef7f355071a747d8a8d9cd5e2072a19fe3d8c11a0e2a5f884d95a33fb95f12d"
276
+ ]
277
+ },
278
+ ".claude/scripts/lib/revalidation-points.mjs": {
279
+ "since": "0.6.0",
280
+ "hashes": [
281
+ "41c4f70e5914636bccec7995172c322c875774027e0c626abb7c593c43fddd65",
282
+ "b48e4959862906e279eca481f484f07a7fd4aa082f2778224a6574a7871bc9d8"
230
283
  ]
231
284
  },
232
285
  ".claude/scripts/lib/secrets.mjs": {
233
286
  "since": "0.5.0",
234
287
  "hashes": [
235
- "dc4a300646f12459c0c37e380b325451474e1ec113482381e0fad80aceb88049"
288
+ "dc4a300646f12459c0c37e380b325451474e1ec113482381e0fad80aceb88049",
289
+ "60fab2cc9f2028bccf6139e6a744406b4a86a9039d1367f3cef409902e9b327d"
236
290
  ]
237
291
  },
238
292
  ".claude/scripts/lib/verdict.mjs": {
239
293
  "since": "0.5.0",
240
294
  "hashes": [
241
- "4d33a07a53a502277fcc6e5d7f9a89738b75e1d672dd1e6985c058bb4c35c0de"
295
+ "4d33a07a53a502277fcc6e5d7f9a89738b75e1d672dd1e6985c058bb4c35c0de",
296
+ "51ef5185da289cfd883422e7ac51500e527a19c7780721af9cecf4f845a368f3"
242
297
  ]
243
298
  },
244
299
  ".claude/scripts/preflight.mjs": {
@@ -246,13 +301,21 @@
246
301
  "hashes": [
247
302
  "21083ff7baeebf8aedbdf85679a353f671276a9e0201a58a8235ae63f55f081c",
248
303
  "ceb6d35fa028f9c5e5e2d5965c627095d5ba80c37191a584627b4bc645b6be15",
249
- "efa193dc543237d82dcb371fa1df6483ccd43c1db88d0e218f5d89769564974c"
304
+ "efa193dc543237d82dcb371fa1df6483ccd43c1db88d0e218f5d89769564974c",
305
+ "bed44df40412a7edac96914de21edc796df604ddc275ff1a02764dfcc4d4ede7"
306
+ ]
307
+ },
308
+ ".claude/scripts/queue/as-of.mjs": {
309
+ "since": "0.6.0",
310
+ "hashes": [
311
+ "d889888dd2004d53b544b870fdf97ccaba48c243e63f1222cac2a5ddee6dd407"
250
312
  ]
251
313
  },
252
314
  ".claude/scripts/queue/checkout.mjs": {
253
315
  "since": "0.5.0",
254
316
  "hashes": [
255
- "635db278182c7a2a4edcf8effadbfb0837cfceb8dc78bae4cc15d5d101e07fa6"
317
+ "635db278182c7a2a4edcf8effadbfb0837cfceb8dc78bae4cc15d5d101e07fa6",
318
+ "1b80b2abe4375e0d25868cf114543f0863c22ab02a3a0133f5155433aecdb835"
256
319
  ]
257
320
  },
258
321
  ".claude/scripts/queue/core.mjs": {
@@ -260,7 +323,8 @@
260
323
  "hashes": [
261
324
  "214f36e39f3809da5a121f404005d16a694280ca672ed10150b1b07d47912f6a",
262
325
  "d8a5916bae71efcc6a21978af713112c9ec33a7554fd07f5978bdf2c3633b560",
263
- "1804c2351a4f3042dc6a3fb4203f96e98ae12bec32569b99bda77d002d6ba5f2"
326
+ "1804c2351a4f3042dc6a3fb4203f96e98ae12bec32569b99bda77d002d6ba5f2",
327
+ "b81ae3181e02b9c1c3f0e954688490ab3db3961381c2dc397c47c651c9d07f88"
264
328
  ]
265
329
  },
266
330
  ".claude/scripts/queue/gate-rounds.mjs": {
@@ -274,14 +338,17 @@
274
338
  "hashes": [
275
339
  "f473f0ee5fc469f47b2b21ee601310944faa1abed21942e97ed251aba826cd5d",
276
340
  "86489ac7fcd06e43e31fb3d0ac9ab23174ef9c95196b08f127f1ae74da620c0c",
277
- "f84148fee47109a388a248c51d3eb40919ce341785b561dd4135b69c6fedabf3"
341
+ "f84148fee47109a388a248c51d3eb40919ce341785b561dd4135b69c6fedabf3",
342
+ "5ab8f741f17efb935b11caf245edf2b562cb887020c2a43d45464158342c933a"
278
343
  ]
279
344
  },
280
345
  ".claude/scripts/queue/index.mjs": {
281
346
  "since": "0.3.0",
282
347
  "hashes": [
283
348
  "cd149245dc29ef7489ae0e5394fa5a063dea2cc017bd3cbbface1ace6f8d7b46",
284
- "7db3c17b781e6876b4822afd09e6affa97e46607b63d443975d987daf1f14464"
349
+ "7db3c17b781e6876b4822afd09e6affa97e46607b63d443975d987daf1f14464",
350
+ "9edd70b5960f367958e8e7500150b4edd285c99869cca803e40e0537d2d347b0",
351
+ "4cf917ac06708e1068dfe9f8bbebc9376c4748526bd669b9bea32929ba996d0a"
285
352
  ]
286
353
  },
287
354
  ".claude/scripts/queue/jira.mjs": {
@@ -289,7 +356,9 @@
289
356
  "hashes": [
290
357
  "13e187a4005136a9a1fae5fb5a3d2a61c3cf5dc097b467c12622ad82a0fd5d52",
291
358
  "86591a48b9264d641c2530238ea3720705f12e17af2ec8dccecabfa3a742a2e7",
292
- "13c301f828d4402fcf81e7e0b2b1d22472cbdb50f6fd606770056af4ec215e51"
359
+ "13c301f828d4402fcf81e7e0b2b1d22472cbdb50f6fd606770056af4ec215e51",
360
+ "b8be5855809c0d44ece94858456098663296c17c5ad9abb1ea2cf1a8f48ca491",
361
+ "3fc8ff9a06a2e22355a660a31e2943a97f50869f7e5726f768a7931d17b64b5b"
293
362
  ]
294
363
  },
295
364
  ".claude/scripts/queue/plan-md.mjs": {
@@ -297,7 +366,8 @@
297
366
  "hashes": [
298
367
  "d137dad23f263b1a12b04b46625247fea648ded36d0fea7c5b4e4f2211a142eb",
299
368
  "07eab69bd86b19b7a1f01eb14efe4f8c007481806cbe029d4014fe9bf0703000",
300
- "27d7ae3832a32219d5c0ab136bc542388eb686e9f34053c3058104cdeea1574d"
369
+ "27d7ae3832a32219d5c0ab136bc542388eb686e9f34053c3058104cdeea1574d",
370
+ "1320909605824b2cd1ff57878e463ef360463b2b175d2152638eda2dff72f5ea"
301
371
  ]
302
372
  },
303
373
  ".claude/scripts/queue/state.mjs": {
@@ -312,6 +382,20 @@
312
382
  "a326acd64ea19a50d093c91e711ad0234eb05c76d00066db5657c22f4355c190"
313
383
  ]
314
384
  },
385
+ ".claude/scripts/revalidate.mjs": {
386
+ "since": "0.6.0",
387
+ "hashes": [
388
+ "32f847a2a3a5136cabcb42f6447da9f8cf98e2d20512212ee5201461128d7798",
389
+ "b62348a27bcaa1d62a0e4ddd53873fab6cb75f9af8e8c69d24f6ce81c592c4e3"
390
+ ]
391
+ },
392
+ ".claude/scripts/revalidation-report.mjs": {
393
+ "since": "0.6.0",
394
+ "hashes": [
395
+ "b99a3537158c2851698bfac027f7061811d7d428c3eea57f3ce0f58ea75dc249",
396
+ "78adac5c8f696f2c9cc86f404abf1d55604ccb10f11dd612501c14d4cf5935b1"
397
+ ]
398
+ },
315
399
  ".claude/scripts/run-journal.mjs": {
316
400
  "since": "0.5.0",
317
401
  "hashes": [
@@ -321,19 +405,29 @@
321
405
  ".claude/scripts/run-state.mjs": {
322
406
  "since": "0.5.0",
323
407
  "hashes": [
324
- "5682b4ef1e63b83e1398da4959d8b34f52aede38f896557c041687d101df015f"
408
+ "5682b4ef1e63b83e1398da4959d8b34f52aede38f896557c041687d101df015f",
409
+ "82c83fe9a66ff1a48c9e23fdfe84eef7da0de337c420e8d870085e7078d6f5e2"
325
410
  ]
326
411
  },
327
412
  ".claude/scripts/stop-flag.mjs": {
328
413
  "since": "0.3.0",
329
414
  "hashes": [
330
- "ff4c8edbb715e7b552e8b5a5299e151871e85416568ce20ff8d8a0b4300a78a8"
415
+ "ff4c8edbb715e7b552e8b5a5299e151871e85416568ce20ff8d8a0b4300a78a8",
416
+ "e31d7e6c437bc010d8e144fba64bb401fc6404401ca21bcb48d6a4634796b39a"
417
+ ]
418
+ },
419
+ ".claude/scripts/unattended-flag.mjs": {
420
+ "since": "0.6.0",
421
+ "hashes": [
422
+ "060b001927d8b471f1c1a8c8851fbb4266d3b2edd674cccbd6c16c44b57b91dd",
423
+ "7721ee19fd1bcf6902be3d359def40742d79b88f5d83e7e3ca22ba45ca3211aa"
331
424
  ]
332
425
  },
333
426
  ".claude/scripts/verdict.mjs": {
334
427
  "since": "0.5.0",
335
428
  "hashes": [
336
- "a85ab47b6ab9a67e79ba77b47bd6bdfba4c03b66709dcb9784d4f244bed8f76a"
429
+ "a85ab47b6ab9a67e79ba77b47bd6bdfba4c03b66709dcb9784d4f244bed8f76a",
430
+ "adee6247553172d26962612c983f70ad42531eff4e4442a5c1c48a0a58c7eb42"
337
431
  ]
338
432
  },
339
433
  ".claude/settings.json": {
@@ -341,14 +435,16 @@
341
435
  "hashes": [
342
436
  "48212660b2823725c2c9ee785ad739701e4c0e4733b275201a544df1abba28d0",
343
437
  "55a6938b4d9967291a26e93301e34e5ffdef74a88f8c773a4d11b5d87d864fff",
344
- "713718fbb2cda132f05665b29b8f1108a6305729b5e7c789d2053d117c13e08e"
438
+ "713718fbb2cda132f05665b29b8f1108a6305729b5e7c789d2053d117c13e08e",
439
+ "e588ab05bee707a099c80c9ea399008be31488e616f3db3c0598f66f3d1b3a52"
345
440
  ]
346
441
  },
347
442
  ".claude/skills/check-premises/SKILL.md": {
348
443
  "since": "0.3.2",
349
444
  "hashes": [
350
445
  "d69396da276f748c89ca0284fcd606ce70da8a791defafe9c9b27ce5f8ffd29e",
351
- "e228eaebcd1dfa0e490f8f4260e349040bd742fdb6d2313698fd7925f8a7b058"
446
+ "e228eaebcd1dfa0e490f8f4260e349040bd742fdb6d2313698fd7925f8a7b058",
447
+ "403f26470ec0a9c853aa69fe8a114fbc3dfb3bf6e6094eecb8a836f153aa1a37"
352
448
  ]
353
449
  },
354
450
  ".claude/skills/loop/SKILL.md": {
@@ -358,7 +454,9 @@
358
454
  "e14318a1bf4cbb19edaaabadcf14482bc70bcdcfdc2057231b15685d149db550",
359
455
  "8f687f92fa60d4cc679fa13bff997cec92227f6bc0b90c1dc5b8a5400f2abef0",
360
456
  "e442ca58c4249ac10d5759bba2d8360544642e03b2b158e6253e71f5be3767fb",
361
- "eb52ef41269018107534d8dc2f552c57698e1677a1e76b5e666b5d09c007cac0"
457
+ "eb52ef41269018107534d8dc2f552c57698e1677a1e76b5e666b5d09c007cac0",
458
+ "47922b182915cb92696f851174f2e88c4ae8c67dc119ef39a3a597ef1300fab5",
459
+ "57f6add0504db45e7577474f97705fe474310e4cd3310cdb348a2c64eabe88cd"
362
460
  ]
363
461
  },
364
462
  ".claude/skills/new-invariant/SKILL.md": {
@@ -383,7 +481,8 @@
383
481
  "since": "0.2.0",
384
482
  "hashes": [
385
483
  "321ae18feff82f1f8a64e19a6170056dc9b18a71e6f2a80d46293510b9748a46",
386
- "20c919cefc0b2c351c6e03d18f465b0f99f8a192c8ef0a0f78eeceb0499f2fbc"
484
+ "20c919cefc0b2c351c6e03d18f465b0f99f8a192c8ef0a0f78eeceb0499f2fbc",
485
+ "cf447d7d052060289d7db750ee8566d79f44a25a5a8c000cf0d4c4779341b0b7"
387
486
  ]
388
487
  },
389
488
  ".claude/skills/pr-ship/SKILL.md": {
@@ -391,7 +490,8 @@
391
490
  "hashes": [
392
491
  "368a50be809f7be865d6d29ab3e54b9d69acd2ea3ba7929c0edeef161c2521b7",
393
492
  "75adb84414a330db621ff4f1363b3926f537133199236a9e25bb9880b935e02e",
394
- "a2fb0d03c65701af9d2d69cbcb2582ae573f097b1e1071eb2916e5e4f7832b37"
493
+ "a2fb0d03c65701af9d2d69cbcb2582ae573f097b1e1071eb2916e5e4f7832b37",
494
+ "9616e4767942b2021e34ab7bb76eec9a5c280cc608a0756abb02743741d5fc8a"
395
495
  ]
396
496
  },
397
497
  ".claude/skills/ro-debug/SKILL.md": {
@@ -409,25 +509,30 @@
409
509
  ".codex/agents/cdk-diff-reviewer.toml": {
410
510
  "since": "0.5.0",
411
511
  "hashes": [
412
- "902dbace9532ec8e7a3c0cfd6ea0934227f087e345c0619923ec03512b26ba3e"
512
+ "902dbace9532ec8e7a3c0cfd6ea0934227f087e345c0619923ec03512b26ba3e",
513
+ "55778d7fb9f778a33213590cc0a2dcf8e01026a1a93eed1c0f811ba4f1070721"
413
514
  ]
414
515
  },
415
516
  ".codex/agents/code-reviewer.toml": {
416
517
  "since": "0.5.0",
417
518
  "hashes": [
418
- "e0e3475404c95402f33d77ebb14001e289d26bb429205a0a73bdcef99b4a62c7"
519
+ "e0e3475404c95402f33d77ebb14001e289d26bb429205a0a73bdcef99b4a62c7",
520
+ "9ec92775791907f068d85ba58489236bd2bee69a8d769554ac530e8eadd5e374"
419
521
  ]
420
522
  },
421
523
  ".codex/agents/prose-reviewer.toml": {
422
524
  "since": "0.5.0",
423
525
  "hashes": [
424
- "80b4631502d95c619ad060ce02cc8702b12574758ba7df8337ed63efa15d764d"
526
+ "80b4631502d95c619ad060ce02cc8702b12574758ba7df8337ed63efa15d764d",
527
+ "cfd516f72acdfd197c59ac3cbdd39d7b175976dbd3d9eef52825dfdc4f1e5b60",
528
+ "8687eacf0ad707a4f887e0714e82fca23fd005fa9ec8824faedfe99ca46333e1"
425
529
  ]
426
530
  },
427
531
  ".codex/agents/security-scanner.toml": {
428
532
  "since": "0.5.0",
429
533
  "hashes": [
430
- "9ee408789f237a0b55aac6a2472682a08f8696e1d1ff4918ea72766ac8535499"
534
+ "9ee408789f237a0b55aac6a2472682a08f8696e1d1ff4918ea72766ac8535499",
535
+ "bc9aacca1ca3ed4ceac485f7cd1c6ff5a5405ac7be83419d6145499cc560ee91"
431
536
  ]
432
537
  },
433
538
  ".codex/agents/test-writer.toml": {
@@ -439,13 +544,15 @@
439
544
  ".codex/hooks.json": {
440
545
  "since": "0.5.0",
441
546
  "hashes": [
442
- "c676647d585ec87427545a391598706ecaa74dfe413a7e05877e336bf8942874"
547
+ "c676647d585ec87427545a391598706ecaa74dfe413a7e05877e336bf8942874",
548
+ "89d999c068ef5b6e48913c15a165359e66b1f505b9f97c145d8c730cbf42d09a"
443
549
  ]
444
550
  },
445
551
  "AGENTS.md": {
446
552
  "since": "0.5.0",
447
553
  "hashes": [
448
- "616ab573d3cf4b603bb4bfbc5e7631d17ebaa696af16474845fdaf35f41d0a97"
554
+ "616ab573d3cf4b603bb4bfbc5e7631d17ebaa696af16474845fdaf35f41d0a97",
555
+ "406c9a0a0e58e78788a10186b9e10b48f4ed215b6d68504a4fbb71e5ee506f85"
449
556
  ]
450
557
  },
451
558
  "CLAUDE.md": {
@@ -454,7 +561,8 @@
454
561
  "955c7f7952ba63429eaebc58c7d6d0559f56c279ce32076b4ff19bd36389a839",
455
562
  "8a4f5fab7cbaf3ba2482035f7ddb3cf6e3a3a3313596d25a856506e970d55db7",
456
563
  "a247fdd1d198777f4963da42ccc10dfd9c372f4bb0488d2c0201a49d6bfd1910",
457
- "616ab573d3cf4b603bb4bfbc5e7631d17ebaa696af16474845fdaf35f41d0a97"
564
+ "616ab573d3cf4b603bb4bfbc5e7631d17ebaa696af16474845fdaf35f41d0a97",
565
+ "406c9a0a0e58e78788a10186b9e10b48f4ed215b6d68504a4fbb71e5ee506f85"
458
566
  ]
459
567
  },
460
568
  "PLAN.md": {
@@ -484,6 +592,12 @@
484
592
  "9408b59fdb7a0e93d8e6762bf5d76f1afd6d4b0942d9395155dab4cb42c1bf80"
485
593
  ]
486
594
  },
595
+ "docs/decisions/gate-coverage.md": {
596
+ "since": "0.6.0",
597
+ "hashes": [
598
+ "ce5f093c19a8f9de700541bc1ac9031391dca46906dad15eb589a0fb5a021533"
599
+ ]
600
+ },
487
601
  "docs/decisions/review-lanes.md": {
488
602
  "since": "0.5.0",
489
603
  "hashes": [
@@ -511,7 +625,8 @@
511
625
  "docs/decisions/two-empty-endings.md": {
512
626
  "since": "0.5.0",
513
627
  "hashes": [
514
- "312cfccb609f35f4ba42f8aabc9ac939cfc01f5c109a123d3087fce5d248b636"
628
+ "312cfccb609f35f4ba42f8aabc9ac939cfc01f5c109a123d3087fce5d248b636",
629
+ "e771888074498adc2d52e1f50f222056fd95433c4bb9c7e8aa0f3a730da449bd"
515
630
  ]
516
631
  },
517
632
  "journal/README.md": {
@@ -5,5 +5,7 @@
5
5
  "0.3.1": "ce9437de8a734d04d65292b37356f47214238bde",
6
6
  "0.3.2": "bbcb24fd8ff5290826ee3b152b5130f6bd4697da",
7
7
  "0.4.0": "c77c6c3e5d991a55b733a05a3b5ae01e2a55e578",
8
- "0.5.0": "d78d0e77307a2be128de46ff4f64e3c146b5df2b"
8
+ "0.5.0": "d78d0e77307a2be128de46ff4f64e3c146b5df2b",
9
+ "0.6.0": "29ca0543368e922349945e52541a92b46ddcc5bd",
10
+ "0.6.1": "f1d1e3dbd2161545d77ee5e7f90fa8e74b8a9f3e"
9
11
  }
@@ -14,6 +14,8 @@ next-env.d.ts
14
14
  # per-checkout queue state: the tier the last close recorded. The queue CONFIG
15
15
  # is composed and tracked; this is runtime state and must never be committed.
16
16
  .claude/queue.state.json
17
+ # per-checkout board selector (`queue/index.mjs board <name>`); the boards are in the config
18
+ .claude/queue.board
17
19
  # gate rounds, one count per branch
18
20
  .claude/gate-rounds.json
19
21
  # per-run machine trace (.claude/scripts/run-journal.mjs): forensics that churn
@@ -12,6 +12,8 @@ dist/
12
12
  # per-checkout queue state: the tier the last close recorded. The queue CONFIG
13
13
  # is composed and tracked; this is runtime state and must never be committed.
14
14
  .claude/queue.state.json
15
+ # per-checkout board selector (`queue/index.mjs board <name>`); the boards are in the config
16
+ .claude/queue.board
15
17
  # gate rounds, one count per branch
16
18
  .claude/gate-rounds.json
17
19
  # per-run machine trace (.claude/scripts/run-journal.mjs): forensics that churn