Initial commit

This commit is contained in:
Zhongwei Li
2025-11-30 08:49:04 +08:00
commit 050ffe1915
4 changed files with 253 additions and 0 deletions

View File

@@ -0,0 +1,11 @@
{
"name": "hook-workflow",
"description": "Comprehensive workflow automation using Claude Code hooks for session management, code quality enforcement, security scanning, token tracking, and git validation",
"version": "1.0.1",
"author": {
"name": "Rafael Calleja"
},
"hooks": [
"./settings.json"
]
}

3
README.md Normal file
View File

@@ -0,0 +1,3 @@
# hook-workflow
Comprehensive workflow automation using Claude Code hooks for session management, code quality enforcement, security scanning, token tracking, and git validation

45
plugin.lock.json Normal file
View File

@@ -0,0 +1,45 @@
{
"$schema": "internal://schemas/plugin.lock.v1.json",
"pluginId": "gh:rafaelcalleja/claude-market-place:plugins/hook-workflow",
"normalized": {
"repo": null,
"ref": "refs/tags/v20251128.0",
"commit": "7c798276e6e8aa96b3f79a871c53271526db7302",
"treeHash": "f5eba284985c3bb4a16e1bea731a96956b1974bf2f385eb6297206a2f1f675ba",
"generatedAt": "2025-11-28T10:27:44.768781Z",
"toolVersion": "publish_plugins.py@0.2.0"
},
"origin": {
"remote": "git@github.com:zhongweili/42plugin-data.git",
"branch": "master",
"commit": "aa1497ed0949fd50e99e70d6324a29c5b34f9390",
"repoRoot": "/Users/zhongweili/projects/openmind/42plugin-data"
},
"manifest": {
"name": "hook-workflow",
"description": "Comprehensive workflow automation using Claude Code hooks for session management, code quality enforcement, security scanning, token tracking, and git validation",
"version": "1.0.1"
},
"content": {
"files": [
{
"path": "settings.json",
"sha256": "6ec0d849d403e89f62130381b66733192d290d79007b55dc8810d212f35ac29c"
},
{
"path": "README.md",
"sha256": "b5c33c49cb16ffb2c417a13934eb631a4f212e72e4b266c8a386c549fad8ff0c"
},
{
"path": ".claude-plugin/plugin.json",
"sha256": "75183e62d243c21fc3431186493ae42b11f01d25bc8120d0091bebf4c7003bd8"
}
],
"dirSha256": "f5eba284985c3bb4a16e1bea731a96956b1974bf2f385eb6297206a2f1f675ba"
},
"security": {
"scannedAt": null,
"scannerVersion": null,
"flags": []
}
}

194
settings.json Normal file
View File

@@ -0,0 +1,194 @@
{
"hooks": {
"SessionStart": [
{
"matcher": "startup",
"hooks": [
{
"type": "command",
"command": "python3 ${CLAUDE_PLUGIN_ROOT}/hook_scripts/session_start.py",
"timeout": 30
}
]
},
{
"matcher": "resume",
"hooks": [
{
"type": "command",
"command": "python3 ${CLAUDE_PLUGIN_ROOT}/hook_scripts/context_recovery_helper.py",
"timeout": 30
}
]
},
{
"matcher": "clear",
"hooks": [
{
"type": "command",
"command": "python3 ${CLAUDE_PLUGIN_ROOT}/hook_scripts/pre_session_hook.py",
"timeout": 30
}
]
},
{
"matcher": "compact",
"hooks": [
{
"type": "command",
"command": "python3 ${CLAUDE_PLUGIN_ROOT}/hook_scripts/session_start.py",
"timeout": 30
}
]
}
],
"SessionEnd": [
{
"hooks": [
{
"type": "command",
"command": "python3 ${CLAUDE_PLUGIN_ROOT}/hook_scripts/post_session_hook.py",
"timeout": 30
}
]
}
],
"UserPromptSubmit": [
{
"hooks": [
{
"type": "command",
"command": "python3 ${CLAUDE_PLUGIN_ROOT}/hook_scripts/detect_session_finish.py",
"timeout": 10
}
]
}
],
"PreCompact": [
{
"matcher": "auto",
"hooks": [
{
"type": "command",
"command": "python3 ${CLAUDE_PLUGIN_ROOT}/hook_scripts/auto_compact.py",
"timeout": 360
}
]
},
{
"matcher": "manual",
"hooks": [
{
"type": "command",
"command": "python3 ${CLAUDE_PLUGIN_ROOT}/hook_scripts/auto_compact.py",
"timeout": 360
}
]
}
],
"PreToolUse": [
{
"matcher": ".*",
"hooks": [
{
"type": "command",
"command": "python3 ${CLAUDE_PLUGIN_ROOT}/hook_scripts/token_manager.py check",
"timeout": 10
}
]
},
{
"matcher": "Write|Edit",
"hooks": [
{
"type": "command",
"command": "python3 ${CLAUDE_PLUGIN_ROOT}/hook_scripts/command_restrictor.py",
"timeout": 10
},
{
"type": "command",
"command": "python3 ${CLAUDE_PLUGIN_ROOT}/hook_scripts/pattern_enforcer.py",
"timeout": 10
},
{
"type": "command",
"command": "python3 ${CLAUDE_PLUGIN_ROOT}/hook_scripts/no_mock_code.py",
"timeout": 10
},
{
"type": "command",
"command": "python3 ${CLAUDE_PLUGIN_ROOT}/hook_scripts/secret_scanner.py",
"timeout": 10
},
{
"type": "command",
"command": "python3 ${CLAUDE_PLUGIN_ROOT}/hook_scripts/timestamp_validator.py",
"timeout": 10
}
]
},
{
"matcher": "Update",
"hooks": [
{
"type": "command",
"command": "python3 ${CLAUDE_PLUGIN_ROOT}/hook_scripts/no_mock_code.py",
"timeout": 10
},
{
"type": "command",
"command": "python3 ${CLAUDE_PLUGIN_ROOT}/hook_scripts/secret_scanner.py",
"timeout": 10
}
]
},
{
"matcher": "Bash",
"hooks": [
{
"type": "command",
"command": "python3 ${CLAUDE_PLUGIN_ROOT}/hook_scripts/command_restrictor.py",
"timeout": 10
},
{
"type": "command",
"command": "python3 ${CLAUDE_PLUGIN_ROOT}/hook_scripts/validate_git_commit.py",
"timeout": 10
}
]
},
{
"matcher": "WebFetch|WebSearch",
"hooks": [
{
"type": "command",
"command": "python3 ${CLAUDE_PLUGIN_ROOT}/hook_scripts/command_restrictor.py",
"timeout": 10
}
]
}
],
"PostToolUse": [
{
"matcher": "Bash|Read|Write|Edit|Grep|Glob|Task|TodoWrite|AskUserQuestion|mcp__.*",
"hooks": [
{
"type": "command",
"command": "python3 ${CLAUDE_PLUGIN_ROOT}/hook_scripts/token_manager.py extract",
"timeout": 180
}
]
},
{
"matcher": ".*",
"hooks": [
{
"type": "command",
"command": "python3 ${CLAUDE_PLUGIN_ROOT}/hook_scripts/post_tool_use_compact_progress.py",
"timeout": 5
}
]
}
]
}
}