No project bootloader existed: a new session/agent booted with only the static CLAUDE.md router and had to manually dig for current state. Adds a SessionStart hook (session-orient.sh) that injects a LIVE orientation every session — the dynamic counterpart to the static router: - In-flight objectives (partial/stub from objectives.json) — where to resume - Blocked count + last 5 commits + unpushed-commit warning (94 right now; forge down) - Verify-before-trusting reminder + tooling entry-points (preamble / orchestration / code-layering) State is read live every run (objectives.json + git) — never embedded, so it can't go stale (the same anti-drift principle the agent tooling enforces). Read-only, <2s, never breaks the session (any error → exits 0). Dual-mode: hook JSON by default, `--human` prints markdown for manual mid-session re-orientation (`bash .claude/hooks/session-orient.sh --human`). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
91 lines
2 KiB
JSON
91 lines
2 KiB
JSON
{
|
|
"enableAllProjectMcpServers": true,
|
|
"permissions": {
|
|
"allow": [
|
|
"Bash(*)",
|
|
"Read(*)",
|
|
"Write(*)",
|
|
"Edit(*)",
|
|
"Agent(*)",
|
|
"TaskCreate(*)",
|
|
"TaskUpdate(*)",
|
|
"TaskList(*)",
|
|
"TaskGet(*)",
|
|
"TaskOutput(*)",
|
|
"TaskStop(*)",
|
|
"TeamCreate(*)",
|
|
"TeamDelete(*)",
|
|
"SendMessage(*)",
|
|
"WebFetch(*)",
|
|
"WebSearch(*)",
|
|
"Skill(*)",
|
|
"ScheduleWakeup(*)",
|
|
"Monitor(*)",
|
|
"NotebookEdit(*)",
|
|
"LSP(*)",
|
|
"ToolSearch(*)",
|
|
"SendUserFile(*)",
|
|
"AskUserQuestion(*)",
|
|
"ExitPlanMode(*)",
|
|
"EnterPlanMode(*)",
|
|
"ShareOnboardingGuide(*)",
|
|
"CronCreate(*)",
|
|
"CronList(*)",
|
|
"CronDelete(*)",
|
|
"PushNotification(*)",
|
|
"RemoteTrigger(*)",
|
|
"mcp__*"
|
|
],
|
|
"deny": [
|
|
"Bash(git worktree *)",
|
|
"Bash(EnterWorktree*)",
|
|
"Bash(git stash *)",
|
|
"Bash(pkill node*)",
|
|
"Bash(killall node*)",
|
|
"Bash(wall *)",
|
|
"Bash(write *)",
|
|
"Bash(rm -rf /*)",
|
|
"Bash(git push --force *)",
|
|
"Bash(*--no-verify*)"
|
|
]
|
|
},
|
|
"hooks": {
|
|
"PreToolUse": [
|
|
{
|
|
"matcher": "Write|Edit",
|
|
"hooks": [
|
|
{
|
|
"type": "command",
|
|
"command": ".claude/hooks/enforce-structure.sh",
|
|
"timeout": 5,
|
|
"statusMessage": "Checking project structure..."
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"matcher": "Bash|Agent|EnterWorktree",
|
|
"hooks": [
|
|
{
|
|
"type": "command",
|
|
"command": "~/.claude/hooks/block-worktree.sh",
|
|
"timeout": 5,
|
|
"statusMessage": "Blocking worktree usage (multi-agent repo)"
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"SessionStart": [
|
|
{
|
|
"matcher": "",
|
|
"hooks": [
|
|
{
|
|
"type": "command",
|
|
"command": ".claude/hooks/session-orient.sh",
|
|
"timeout": 10,
|
|
"statusMessage": "Loading live session orientation..."
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
}
|