- Transfer Claude Code hooks from internal: identity injector, email notification, auto-fix diagnostics, pre-compact recovery - Add notification sounds for tool use, stop, and alerts - Wire all hooks in .claude/settings.json - Add global system prompt (.aipass/aipass_global_prompt.md) - Add branch-local prompt placeholders for all modules - Set up CI pipeline: lint (ruff) → test matrix (3.10-3.13) → coverage - Add workflows: PyPI publish, security scanning, stale issues - Add GitHub issue templates, dependabot, editorconfig - Configure pytest norecursedirs and coverage fail-under=70 - Add *.json to gitignore — runtime JSON files constantly change - Untrack runtime JSON (registry, plans, seed bypass, module data) - Keep source JSON tracked via negation rules (json_templates, pack, spawn templates, settings, pyrightconfig) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
115 lines
2.3 KiB
JSON
115 lines
2.3 KiB
JSON
{
|
|
"permissions": {
|
|
"allow": [],
|
|
"deny": [
|
|
"Bash(git reset:*)",
|
|
"Bash(git rebase:*)",
|
|
"Bash(git config:*)",
|
|
"Bash(git push --force:*)",
|
|
"EnterPlanMode"
|
|
],
|
|
"defaultMode": "acceptEdits"
|
|
},
|
|
"hooks": {
|
|
"UserPromptSubmit": [
|
|
{
|
|
"hooks": [
|
|
{
|
|
"type": "command",
|
|
"command": "cat .aipass/aipass_global_prompt.md 2>/dev/null || true"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"hooks": [
|
|
{
|
|
"type": "command",
|
|
"command": "python3 .claude/hooks/branch_prompt_loader.py"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"hooks": [
|
|
{
|
|
"type": "command",
|
|
"command": "python3 .claude/hooks/identity_injector.py"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"hooks": [
|
|
{
|
|
"type": "command",
|
|
"command": "python3 .claude/hooks/email_notification.py"
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"PreToolUse": [
|
|
{
|
|
"matcher": "Bash|Edit|MultiEdit|Write|Read|Grep|Glob|WebSearch|WebFetch|Task",
|
|
"hooks": [
|
|
{
|
|
"type": "command",
|
|
"command": "python3 .claude/hooks/tool_use_sound.py"
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"PostToolUse": [
|
|
{
|
|
"matcher": "Edit|MultiEdit|Write|NotebookEdit",
|
|
"hooks": [
|
|
{
|
|
"type": "command",
|
|
"command": "python3 .claude/hooks/auto_fix_diagnostics.py"
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"Stop": [
|
|
{
|
|
"hooks": [
|
|
{
|
|
"type": "command",
|
|
"command": "python3 .claude/hooks/stop_sound.py"
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"Notification": [
|
|
{
|
|
"hooks": [
|
|
{
|
|
"type": "command",
|
|
"command": "python3 .claude/hooks/notification_sound.py"
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"PreCompact": [
|
|
{
|
|
"matcher": "manual",
|
|
"hooks": [
|
|
{
|
|
"type": "command",
|
|
"command": "python3 .claude/hooks/pre_compact.py",
|
|
"timeout": 60
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"matcher": "auto",
|
|
"hooks": [
|
|
{
|
|
"type": "command",
|
|
"command": "python3 .claude/hooks/pre_compact.py",
|
|
"timeout": 60
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"skipDangerousModePermissionPrompt": true
|
|
}
|