[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71GWDMT4PNCYJBW7EBX90XA":3,"skill-same:01M71GWDMT4PNCYJBW7EBX90XA":186},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":22,"publishedAt":43,"linkOnly":44,"markdownContent":45,"markdownBody":46,"frontMatter":47,"refName":53,"commitSha":54,"skillDirectory":55,"forksCount":56,"repositoryHtmlUrl":57,"repositoryHomepageUrl":6,"ownerHtmlUrl":58,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":59,"install":60,"resources":73},"01M71GWDMT4PNCYJBW7EBX90XA","hook-factory",null,"Generate production-ready Claude Code hooks with interactive Q&A, automated installation, and enhanced validation. Supports 10 templates across 7 event types for comprehensive workflow automation.","JSGforever\u002Fskillguard","JSGforever","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F85541948?v=4","01M71FQD3E132VMR5F4TAYX3YS","01M71FQD4DYW0XJ4XQ4YQH75Y9",2,"GPL-3.0","https:\u002F\u002Fgithub.com\u002FJSGforever\u002Fskillguard\u002Fblob\u002Fmain\u002Fbenchmarks\u002Ffinal\u002Fskills\u002Fasset1__alirezarezvani--hook-factory\u002FSKILL.md",[17],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42],"hook","factory","hook factory","code-generation","for","production-ready","q&a","event","types","across","installer","workflow","hooks","ready","claude code hooks","Workflow Automation","code","generate","claude code skills","automation","2026-11-10 10:12:30",false,"---\nname: hook-factory\ndescription: Generate production-ready Claude Code hooks with interactive Q&A, automated installation, and enhanced validation. Supports 10 templates across 7 event types for comprehensive workflow automation.\nversion: 2.0.0\nauthor: Claude Code Skills Factory\ntags: [hooks, automation, code-generation, workflow, productivity, interactive, installer]\n---\n\n# Hook Factory v2.0\n\n**Generate production-ready Claude Code hooks with interactive Q&A, automated installation, and enhanced validation.**\n\n## What This Skill Does\n\nHook Factory v2.0 is a comprehensive hook generation system with three modes:\n\n1. **Interactive Mode** (NEW!) - 7-question guided flow with smart defaults\n2. **Natural Language** - Describe what you want in plain English\n3. **Template Mode** - Direct generation from 10 production templates\n\n**Key Features:**\n- **Interactive Q&A** - 7 questions with validation and smart defaults\n- **Automated Installation** - Python and Bash installers with backup\u002Frollback\n- **Enhanced Validation** - Secrets detection, event-specific rules, command validation\n- **10 Templates** - Covering 7 event types (PostToolUse, SubagentStop, SessionStart, PreToolUse, UserPromptSubmit, Stop, PrePush)\n- **Comprehensive Safety** - Tool detection, silent failure, atomic operations\n- **macOS\u002FLinux Support** - Production-ready for Unix environments\n\n## When to Use This Skill\n\nUse hook-factory when you want to:\n\n- Auto-format code after editing\n- Automatically stage files with git\n- Run tests when agents complete\n- Load project context at session start\n- Create custom workflow automation\n- Learn how hooks work through examples\n\n## Capabilities\n\n### Three Generation Modes\n\n**1. Interactive Mode (Recommended)**\n```bash\npython3 hook_factory.py -i\n```\n- 7-question guided flow\n- Smart defaults based on event type\n- Input validation and safety warnings\n- Optional auto-install\n\n**2. Natural Language Mode**\n```bash\npython3 hook_factory.py -r \"auto-format Python files after editing\"\n```\n- Simple keyword matching\n- Quick generation for common patterns\n\n**3. Template Mode (Advanced)**\n```bash\npython3 hook_factory.py -t post_tool_use_format -l python\n```\n- Direct template selection\n- Full customization control\n\n### Supported Hook Templates (10 Total)\n\n**Formatting & Code Quality:**\n1. **post_tool_use_format** - Auto-format after editing (Python, JS, TS, Rust, Go)\n2. **post_tool_use_git_add** - Auto-stage files with git\n\n**Testing & Validation:**\n3. **subagent_stop_test_runner** - Run tests when agent completes\n4. **pre_tool_use_validation** - Validate before tool execution\n5. **pre_push_validation** - Check before git push\n\n**Session Management:**\n6. **session_start_load_context** - Load context at session start\n7. **stop_session_cleanup** - Cleanup at session end\n\n**User Interaction:**\n8. **user_prompt_submit_preprocessor** - Pre-process user prompts\n9. **notify_user_desktop** - Desktop notifications (macOS\u002FLinux)\n\n**Security:**\n10. **security_scan_code** - Security scanning with semgrep\u002Fbandit\n\n### Languages Supported\n\n- Python (black formatter, pytest)\n- JavaScript (prettier, jest)\n- TypeScript (prettier, jest)\n- Rust (rustfmt, cargo test)\n- Go (gofmt, go test)\n\n### Enhanced Validation (v2.0)\n\n**4-Layer Validation System:**\n\n1. **Structure Validation** - JSON syntax, required fields, types\n2. **Safety Validation** - No destructive ops, tool detection, silent failure\n3. **Matcher Validation** - Valid glob patterns, tool names, file paths\n4. **Event-Specific Validation** - Rules per event type (PreToolUse, SessionStart, etc.)\n\n**NEW in v2.0:**\n- ✅ **Secrets Detection** - AWS keys, JWT tokens, API keys, private keys (20+ patterns)\n- ✅ **Event-Specific Rules** - PreToolUse must have tool matcher, SessionStart read-only, etc.\n- ✅ **Command Validation** - Bash syntax, Unix commands, path validation, dangerous operations\n- ✅ **macOS\u002FLinux Validation** - Platform-specific command checks\n\n### Safety Features\n\nEvery generated hook includes:\n- ✅ Tool detection (checks if required tools are installed)\n- ✅ Silent failure mode (never interrupts your workflow)\n- ✅ Appropriate timeout settings (5s-120s based on event type)\n- ✅ No destructive operations\n- ✅ Comprehensive validation before generation\n- ✅ Clear documentation and troubleshooting guides\n- ✅ Automatic backup during installation\n\n## How to Invoke\n\n### Natural Language Requests\n\nSimply describe what you want the hook to do:\n\n```\n\"I want to auto-format Python files after editing\"\n\"Create a hook that runs tests when agents complete\"\n\"Auto-add files to git after editing\"\n\"Load my TODO.md at session start\"\n```\n\n### Explicit Template Selection\n\nIf you know which template you want:\n\n```\n\"Generate a hook using the post_tool_use_format template for JavaScript\"\n\"Create a test runner hook for Rust\"\n```\n\n### List Available Templates\n\n```\n\"Show me all available hook templates\"\n\"List hook templates\"\n```\n\n## Example Interactions\n\n### Example 1: Auto-Format Python\n\n**You:** \"I need a hook to auto-format my Python code after editing\"\n\n**Hook Factory:**\n- Detects template: `post_tool_use_format`\n- Detects language: Python\n- Generates hook with black formatter\n- Validates configuration\n- Saves to `generated-hooks\u002Fauto-format-code-after-editing-python\u002F`\n- Creates `hook.json` and `README.md`\n\n### Example 2: Git Auto-Add\n\n**You:** \"Automatically stage files with git when I edit them\"\n\n**Hook Factory:**\n- Detects template: `post_tool_use_git_add`\n- Generates git auto-add hook\n- Validates git commands\n- Saves to `generated-hooks\u002Fauto-add-files-to-git-after-editing\u002F`\n\n### Example 3: Test Runner\n\n**You:** \"Run my JavaScript tests after the agent finishes coding\"\n\n**Hook Factory:**\n- Detects template: `subagent_stop_test_runner`\n- Detects language: JavaScript\n- Configures jest\u002Fnpm test\n- Saves to `generated-hooks\u002Frun-tests-when-agent-completes-javascript\u002F`\n\n## Output Structure\n\nFor each hook, Hook Factory creates:\n\n```\ngenerated-hooks\u002F\n└── [hook-name]\u002F\n    ├── hook.json        # Complete hook configuration (validated)\n    └── README.md        # Installation guide, usage, troubleshooting\n```\n\n### hook.json\n\nValid JSON configuration ready to copy into your Claude Code settings:\n\n```json\n{\n  \"matcher\": {\n    \"tool_names\": [\"Write\", \"Edit\"]\n  },\n  \"hooks\": [\n    {\n      \"type\": \"command\",\n      \"command\": \"if ! command -v black &> \u002Fdev\u002Fnull; then\\n    exit 0\\nfi\\n\\nif [[ \\\"$CLAUDE_TOOL_FILE_PATH\\\" == *.py ]]; then\\n    black \\\"$CLAUDE_TOOL_FILE_PATH\\\" || exit 0\\nfi\",\n      \"timeout\": 60\n    }\n  ]\n}\n```\n\n### README.md\n\nComprehensive documentation including:\n- Overview and how it works\n- Prerequisites\n- Installation instructions (manual)\n- Configuration options\n- Safety notes\n- Troubleshooting guide\n- Advanced customization tips\n\n## Installation of Generated Hooks\n\n### Automated Installation (NEW in v2.0!)\n\n**Using Python Installer:**\n```bash\ncd generated-skills\u002Fhook-factory\n\n# Install to user level (~\u002F.claude\u002Fsettings.json)\npython3 installer.py install generated-hooks\u002F[hook-name] user\n\n# Install to project level (.claude\u002Fsettings.json)\npython3 installer.py install generated-hooks\u002F[hook-name] project\n\n# Uninstall\npython3 installer.py uninstall [hook-name] user\n\n# List installed hooks\npython3 installer.py list user\n```\n\n**Using Bash Script (macOS\u002FLinux):**\n```bash\ncd generated-skills\u002Fhook-factory\n\n# Install\n.\u002Finstall-hook.sh generated-hooks\u002F[hook-name] user\n\n# Features:\n# - Automatic backup with timestamp\n# - JSON validation before\u002Fafter\n# - Atomic write operations\n# - Rollback on failure\n# - Keeps last 5 backups\n```\n\n**Auto-Install from Interactive Mode:**\n- Answer 'y' to Q7 (Auto-Install)\n- Hook is automatically installed\n- No manual steps required\n\n### Manual Installation (Legacy)\n\n1. **Review Generated Files**\n   ```bash\n   cd generated-hooks\u002F[hook-name]\n   cat README.md\n   cat hook.json\n   ```\n\n2. **Manual Installation**\n   - Open `.claude\u002Fsettings.json` (project) or `~\u002F.claude\u002Fsettings.json` (user)\n   - Copy the hook configuration from `hook.json`\n   - Add to the appropriate event type array\n   - Save and restart Claude Code\n\n3. **Verify**\n   - Check Claude Code logs: `~\u002F.claude\u002Flogs\u002F`\n   - Test the hook by performing the trigger action\n\n## Validation\n\nEvery hook is validated for:\n\n- **JSON Syntax**: Valid, parseable JSON\n- **Structure**: Required fields present and correct types\n- **Safety**: No destructive operations (rm -rf, etc.)\n- **Tool Detection**: External tools have detection checks\n- **Silent Failure**: Commands won't interrupt workflow\n- **Timeouts**: Appropriate for event type\n- **Matchers**: Valid glob patterns and tool names\n\n## Best Practices\n\n1. **Start Simple**: Use natural language requests for common patterns\n2. **Review Before Installing**: Always read the generated README.md\n3. **Test in Isolation**: Try hooks in a test project first\n4. **Customize Gradually**: Start with defaults, customize later\n5. **Monitor Logs**: Check `~\u002F.claude\u002Flogs\u002F` if hooks aren't working\n\n## Limitations\n\n**Platform Support:**\n- ✅ macOS and Linux fully supported\n- ❌ Windows not supported (Unix commands, bash-specific syntax)\n\n**Customization:**\n- Interactive mode provides smart defaults but limited deep customization\n- Advanced users should use template mode + manual editing\n- No GUI - CLI only\n\n**Template System:**\n- 10 templates cover common patterns\n- Custom templates require manual addition to templates.json\n- No template composition yet (combining multiple patterns)\n\n## Technical Details\n\n### Files in This Skill\n\n**Core Files:**\n- `SKILL.md` - This manifest file\n- `hook_factory.py` - Main orchestrator with CLI interface (687 lines)\n- `generator.py` - Template substitution and hook generation\n- `validator.py` - Enhanced validation engine (700+ lines)\n- `templates.json` - 10 production hook templates\n- `README.md` - Skill usage guide and examples\n\n**NEW in v2.0:**\n- `installer.py` - Automated installation system (536 lines)\n- `install-hook.sh` - Bash installation script (148 lines)\n- `examples\u002F` - 10 reference examples (10 folders × 2 files)\n\n### Dependencies\n\n- Python 3.7+\n- Standard library only (no external dependencies)\n\n### Architecture (v2.0)\n\n**Interactive Mode Flow:**\n```\nUser: python3 hook_factory.py -i\n    ↓\n[7-Question Flow with Smart Defaults]\n    ↓\n[Template Selection]\n    ↓\n[Variable Substitution]\n    ↓\n[4-Layer Validation]\n    ↓\n[File Generation]\n    ↓\n[Optional: Auto-Install via installer.py]\n    ↓\nGenerated Hook in generated-hooks\u002F + Installed\n```\n\n**Natural Language Flow:**\n```\nUser Request\n    ↓\n[Keyword Matching]\n    ↓\n[Template Selection]\n    ↓\n[Variable Substitution]\n    ↓\n[4-Layer Validation]\n    ↓\n[File Generation]\n    ↓\nGenerated Hook in generated-hooks\u002F\n```\n\n**Installation Flow:**\n```\nHook Folder\n    ↓\n[installer.py or install-hook.sh]\n    ↓\n[Backup settings.json]\n    ↓\n[Load + Validate JSON]\n    ↓\n[Merge Hook]\n    ↓\n[Atomic Write (temp → rename)]\n    ↓\n[Validate Result]\n    ↓\n✅ Installed (or ❌ Rollback)\n```\n\n## Troubleshooting\n\n### \"Could not determine hook type from request\"\n- Use more specific keywords (format, test, git add, load)\n- Or use explicit template selection\n- Or list templates to see what's available\n\n### Generated hook not working\n- Check Claude Code logs\n- Verify required tools are installed\n- Test command manually in terminal\n- Review README.md troubleshooting section\n\n### Validation errors\n- Review error messages and fix suggestions\n- Common issues: missing tool detection, destructive commands\n- Modify template if needed\n\n## Examples Directory\n\nThe `examples\u002F` directory contains reference implementations:\n\n```\nexamples\u002F\n├── auto-format-python\u002F      # PostToolUse format example\n├── git-auto-add\u002F            # PostToolUse git example\n├── test-runner\u002F             # SubagentStop test example\n└── load-context\u002F            # SessionStart context example\n```\n\nEach example includes working `hook.json` and `README.md` files you can copy directly.\n\n## Contributing\n\nTo add new hook patterns:\n\n1. Add template to `templates.json`\n2. Update keyword matching in `generator.py`\n3. Add example to `examples\u002F`\n4. Update this SKILL.md\n\n## Version History\n\n- **1.0.0** (2025-10-30): Initial release\n  - 4 core hook patterns\n  - Natural language generation\n  - Comprehensive validation\n  - Simple keyword matching\n\n## Support\n\n- **Documentation**: See README.md in skill directory\n- **Examples**: See examples\u002F directory\n- **Validation Issues**: Check validator.py output\n- **Claude Code Hooks**: https:\u002F\u002Fdocs.claude.com\u002Fen\u002Fdocs\u002Fclaude-code\u002Fhooks\n\n---\n\n**Generated by Claude Code Skills Factory**\n**Last Updated:** 2025-10-30\n","# Hook Factory v2.0\n\n**Generate production-ready Claude Code hooks with interactive Q&A, automated installation, and enhanced validation.**\n\n## What This Skill Does\n\nHook Factory v2.0 is a comprehensive hook generation system with three modes:\n\n1. **Interactive Mode** (NEW!) - 7-question guided flow with smart defaults\n2. **Natural Language** - Describe what you want in plain English\n3. **Template Mode** - Direct generation from 10 production templates\n\n**Key Features:**\n- **Interactive Q&A** - 7 questions with validation and smart defaults\n- **Automated Installation** - Python and Bash installers with backup\u002Frollback\n- **Enhanced Validation** - Secrets detection, event-specific rules, command validation\n- **10 Templates** - Covering 7 event types (PostToolUse, SubagentStop, SessionStart, PreToolUse, UserPromptSubmit, Stop, PrePush)\n- **Comprehensive Safety** - Tool detection, silent failure, atomic operations\n- **macOS\u002FLinux Support** - Production-ready for Unix environments\n\n## When to Use This Skill\n\nUse hook-factory when you want to:\n\n- Auto-format code after editing\n- Automatically stage files with git\n- Run tests when agents complete\n- Load project context at session start\n- Create custom workflow automation\n- Learn how hooks work through examples\n\n## Capabilities\n\n### Three Generation Modes\n\n**1. Interactive Mode (Recommended)**\n```bash\npython3 hook_factory.py -i\n```\n- 7-question guided flow\n- Smart defaults based on event type\n- Input validation and safety warnings\n- Optional auto-install\n\n**2. Natural Language Mode**\n```bash\npython3 hook_factory.py -r \"auto-format Python files after editing\"\n```\n- Simple keyword matching\n- Quick generation for common patterns\n\n**3. Template Mode (Advanced)**\n```bash\npython3 hook_factory.py -t post_tool_use_format -l python\n```\n- Direct template selection\n- Full customization control\n\n### Supported Hook Templates (10 Total)\n\n**Formatting & Code Quality:**\n1. **post_tool_use_format** - Auto-format after editing (Python, JS, TS, Rust, Go)\n2. **post_tool_use_git_add** - Auto-stage files with git\n\n**Testing & Validation:**\n3. **subagent_stop_test_runner** - Run tests when agent completes\n4. **pre_tool_use_validation** - Validate before tool execution\n5. **pre_push_validation** - Check before git push\n\n**Session Management:**\n6. **session_start_load_context** - Load context at session start\n7. **stop_session_cleanup** - Cleanup at session end\n\n**User Interaction:**\n8. **user_prompt_submit_preprocessor** - Pre-process user prompts\n9. **notify_user_desktop** - Desktop notifications (macOS\u002FLinux)\n\n**Security:**\n10. **security_scan_code** - Security scanning with semgrep\u002Fbandit\n\n### Languages Supported\n\n- Python (black formatter, pytest)\n- JavaScript (prettier, jest)\n- TypeScript (prettier, jest)\n- Rust (rustfmt, cargo test)\n- Go (gofmt, go test)\n\n### Enhanced Validation (v2.0)\n\n**4-Layer Validation System:**\n\n1. **Structure Validation** - JSON syntax, required fields, types\n2. **Safety Validation** - No destructive ops, tool detection, silent failure\n3. **Matcher Validation** - Valid glob patterns, tool names, file paths\n4. **Event-Specific Validation** - Rules per event type (PreToolUse, SessionStart, etc.)\n\n**NEW in v2.0:**\n- ✅ **Secrets Detection** - AWS keys, JWT tokens, API keys, private keys (20+ patterns)\n- ✅ **Event-Specific Rules** - PreToolUse must have tool matcher, SessionStart read-only, etc.\n- ✅ **Command Validation** - Bash syntax, Unix commands, path validation, dangerous operations\n- ✅ **macOS\u002FLinux Validation** - Platform-specific command checks\n\n### Safety Features\n\nEvery generated hook includes:\n- ✅ Tool detection (checks if required tools are installed)\n- ✅ Silent failure mode (never interrupts your workflow)\n- ✅ Appropriate timeout settings (5s-120s based on event type)\n- ✅ No destructive operations\n- ✅ Comprehensive validation before generation\n- ✅ Clear documentation and troubleshooting guides\n- ✅ Automatic backup during installation\n\n## How to Invoke\n\n### Natural Language Requests\n\nSimply describe what you want the hook to do:\n\n```\n\"I want to auto-format Python files after editing\"\n\"Create a hook that runs tests when agents complete\"\n\"Auto-add files to git after editing\"\n\"Load my TODO.md at session start\"\n```\n\n### Explicit Template Selection\n\nIf you know which template you want:\n\n```\n\"Generate a hook using the post_tool_use_format template for JavaScript\"\n\"Create a test runner hook for Rust\"\n```\n\n### List Available Templates\n\n```\n\"Show me all available hook templates\"\n\"List hook templates\"\n```\n\n## Example Interactions\n\n### Example 1: Auto-Format Python\n\n**You:** \"I need a hook to auto-format my Python code after editing\"\n\n**Hook Factory:**\n- Detects template: `post_tool_use_format`\n- Detects language: Python\n- Generates hook with black formatter\n- Validates configuration\n- Saves to `generated-hooks\u002Fauto-format-code-after-editing-python\u002F`\n- Creates `hook.json` and `README.md`\n\n### Example 2: Git Auto-Add\n\n**You:** \"Automatically stage files with git when I edit them\"\n\n**Hook Factory:**\n- Detects template: `post_tool_use_git_add`\n- Generates git auto-add hook\n- Validates git commands\n- Saves to `generated-hooks\u002Fauto-add-files-to-git-after-editing\u002F`\n\n### Example 3: Test Runner\n\n**You:** \"Run my JavaScript tests after the agent finishes coding\"\n\n**Hook Factory:**\n- Detects template: `subagent_stop_test_runner`\n- Detects language: JavaScript\n- Configures jest\u002Fnpm test\n- Saves to `generated-hooks\u002Frun-tests-when-agent-completes-javascript\u002F`\n\n## Output Structure\n\nFor each hook, Hook Factory creates:\n\n```\ngenerated-hooks\u002F\n└── [hook-name]\u002F\n    ├── hook.json        # Complete hook configuration (validated)\n    └── README.md        # Installation guide, usage, troubleshooting\n```\n\n### hook.json\n\nValid JSON configuration ready to copy into your Claude Code settings:\n\n```json\n{\n  \"matcher\": {\n    \"tool_names\": [\"Write\", \"Edit\"]\n  },\n  \"hooks\": [\n    {\n      \"type\": \"command\",\n      \"command\": \"if ! command -v black &> \u002Fdev\u002Fnull; then\\n    exit 0\\nfi\\n\\nif [[ \\\"$CLAUDE_TOOL_FILE_PATH\\\" == *.py ]]; then\\n    black \\\"$CLAUDE_TOOL_FILE_PATH\\\" || exit 0\\nfi\",\n      \"timeout\": 60\n    }\n  ]\n}\n```\n\n### README.md\n\nComprehensive documentation including:\n- Overview and how it works\n- Prerequisites\n- Installation instructions (manual)\n- Configuration options\n- Safety notes\n- Troubleshooting guide\n- Advanced customization tips\n\n## Installation of Generated Hooks\n\n### Automated Installation (NEW in v2.0!)\n\n**Using Python Installer:**\n```bash\ncd generated-skills\u002Fhook-factory\n\n# Install to user level (~\u002F.claude\u002Fsettings.json)\npython3 installer.py install generated-hooks\u002F[hook-name] user\n\n# Install to project level (.claude\u002Fsettings.json)\npython3 installer.py install generated-hooks\u002F[hook-name] project\n\n# Uninstall\npython3 installer.py uninstall [hook-name] user\n\n# List installed hooks\npython3 installer.py list user\n```\n\n**Using Bash Script (macOS\u002FLinux):**\n```bash\ncd generated-skills\u002Fhook-factory\n\n# Install\n.\u002Finstall-hook.sh generated-hooks\u002F[hook-name] user\n\n# Features:\n# - Automatic backup with timestamp\n# - JSON validation before\u002Fafter\n# - Atomic write operations\n# - Rollback on failure\n# - Keeps last 5 backups\n```\n\n**Auto-Install from Interactive Mode:**\n- Answer 'y' to Q7 (Auto-Install)\n- Hook is automatically installed\n- No manual steps required\n\n### Manual Installation (Legacy)\n\n1. **Review Generated Files**\n   ```bash\n   cd generated-hooks\u002F[hook-name]\n   cat README.md\n   cat hook.json\n   ```\n\n2. **Manual Installation**\n   - Open `.claude\u002Fsettings.json` (project) or `~\u002F.claude\u002Fsettings.json` (user)\n   - Copy the hook configuration from `hook.json`\n   - Add to the appropriate event type array\n   - Save and restart Claude Code\n\n3. **Verify**\n   - Check Claude Code logs: `~\u002F.claude\u002Flogs\u002F`\n   - Test the hook by performing the trigger action\n\n## Validation\n\nEvery hook is validated for:\n\n- **JSON Syntax**: Valid, parseable JSON\n- **Structure**: Required fields present and correct types\n- **Safety**: No destructive operations (rm -rf, etc.)\n- **Tool Detection**: External tools have detection checks\n- **Silent Failure**: Commands won't interrupt workflow\n- **Timeouts**: Appropriate for event type\n- **Matchers**: Valid glob patterns and tool names\n\n## Best Practices\n\n1. **Start Simple**: Use natural language requests for common patterns\n2. **Review Before Installing**: Always read the generated README.md\n3. **Test in Isolation**: Try hooks in a test project first\n4. **Customize Gradually**: Start with defaults, customize later\n5. **Monitor Logs**: Check `~\u002F.claude\u002Flogs\u002F` if hooks aren't working\n\n## Limitations\n\n**Platform Support:**\n- ✅ macOS and Linux fully supported\n- ❌ Windows not supported (Unix commands, bash-specific syntax)\n\n**Customization:**\n- Interactive mode provides smart defaults but limited deep customization\n- Advanced users should use template mode + manual editing\n- No GUI - CLI only\n\n**Template System:**\n- 10 templates cover common patterns\n- Custom templates require manual addition to templates.json\n- No template composition yet (combining multiple patterns)\n\n## Technical Details\n\n### Files in This Skill\n\n**Core Files:**\n- `SKILL.md` - This manifest file\n- `hook_factory.py` - Main orchestrator with CLI interface (687 lines)\n- `generator.py` - Template substitution and hook generation\n- `validator.py` - Enhanced validation engine (700+ lines)\n- `templates.json` - 10 production hook templates\n- `README.md` - Skill usage guide and examples\n\n**NEW in v2.0:**\n- `installer.py` - Automated installation system (536 lines)\n- `install-hook.sh` - Bash installation script (148 lines)\n- `examples\u002F` - 10 reference examples (10 folders × 2 files)\n\n### Dependencies\n\n- Python 3.7+\n- Standard library only (no external dependencies)\n\n### Architecture (v2.0)\n\n**Interactive Mode Flow:**\n```\nUser: python3 hook_factory.py -i\n    ↓\n[7-Question Flow with Smart Defaults]\n    ↓\n[Template Selection]\n    ↓\n[Variable Substitution]\n    ↓\n[4-Layer Validation]\n    ↓\n[File Generation]\n    ↓\n[Optional: Auto-Install via installer.py]\n    ↓\nGenerated Hook in generated-hooks\u002F + Installed\n```\n\n**Natural Language Flow:**\n```\nUser Request\n    ↓\n[Keyword Matching]\n    ↓\n[Template Selection]\n    ↓\n[Variable Substitution]\n    ↓\n[4-Layer Validation]\n    ↓\n[File Generation]\n    ↓\nGenerated Hook in generated-hooks\u002F\n```\n\n**Installation Flow:**\n```\nHook Folder\n    ↓\n[installer.py or install-hook.sh]\n    ↓\n[Backup settings.json]\n    ↓\n[Load + Validate JSON]\n    ↓\n[Merge Hook]\n    ↓\n[Atomic Write (temp → rename)]\n    ↓\n[Validate Result]\n    ↓\n✅ Installed (or ❌ Rollback)\n```\n\n## Troubleshooting\n\n### \"Could not determine hook type from request\"\n- Use more specific keywords (format, test, git add, load)\n- Or use explicit template selection\n- Or list templates to see what's available\n\n### Generated hook not working\n- Check Claude Code logs\n- Verify required tools are installed\n- Test command manually in terminal\n- Review README.md troubleshooting section\n\n### Validation errors\n- Review error messages and fix suggestions\n- Common issues: missing tool detection, destructive commands\n- Modify template if needed\n\n## Examples Directory\n\nThe `examples\u002F` directory contains reference implementations:\n\n```\nexamples\u002F\n├── auto-format-python\u002F      # PostToolUse format example\n├── git-auto-add\u002F            # PostToolUse git example\n├── test-runner\u002F             # SubagentStop test example\n└── load-context\u002F            # SessionStart context example\n```\n\nEach example includes working `hook.json` and `README.md` files you can copy directly.\n\n## Contributing\n\nTo add new hook patterns:\n\n1. Add template to `templates.json`\n2. Update keyword matching in `generator.py`\n3. Add example to `examples\u002F`\n4. Update this SKILL.md\n\n## Version History\n\n- **1.0.0** (2025-10-30): Initial release\n  - 4 core hook patterns\n  - Natural language generation\n  - Comprehensive validation\n  - Simple keyword matching\n\n## Support\n\n- **Documentation**: See README.md in skill directory\n- **Examples**: See examples\u002F directory\n- **Validation Issues**: Check validator.py output\n- **Claude Code Hooks**: https:\u002F\u002Fdocs.claude.com\u002Fen\u002Fdocs\u002Fclaude-code\u002Fhooks\n\n---\n\n**Generated by Claude Code Skills Factory**\n**Last Updated:** 2025-10-30\n",{"name":5,"tags":48,"author":51,"version":52,"description":7},[35,42,26,34,49,50,33],"productivity","interactive","Claude Code Skills Factory","2.0.0","main","f2ec4b3b9133d34eeaf9b38e4b0a97e8e5705a7f","benchmarks\u002Ffinal\u002Fskills\u002Fasset1__alirezarezvani--hook-factory",0,"https:\u002F\u002Fgithub.com\u002FJSGforever\u002Fskillguard","https:\u002F\u002Fgithub.com\u002FJSGforever","2026-08-29 18:27:56",{"source":8,"skillName":5,"commands":61,"prompt":71,"zipAvailable":72},[62,65,68],{"tool":63,"command":64},"npx","npx skills add JSGforever\u002Fskillguard --skill hook-factory",{"tool":66,"command":67},"bunx","bunx skills add JSGforever\u002Fskillguard --skill hook-factory",{"tool":69,"command":70},"pnpm","pnpm dlx skills add JSGforever\u002Fskillguard --skill hook-factory","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FJSGforever\u002Fskillguard\u002Fblob\u002Fmain\u002Fbenchmarks\u002Ffinal\u002Fskills\u002Fasset1__alirezarezvani--hook-factory\u002FSKILL.md",true,[74,80,84,88,92,96,100,104,108,112,116,120,124,128,132,136,140,144,148,152,156,162,166,170,174,178,182],{"path":75,"resourceType":76,"resourceTypeDesc":77,"sizeBytes":78,"sourceHtmlUrl":79},"examples\u002Fauto-format-python\u002Fhook.json","REFERENCE","参考文档",542,"https:\u002F\u002Fgithub.com\u002FJSGforever\u002Fskillguard\u002Fblob\u002Fmain\u002Fbenchmarks\u002Ffinal\u002Fskills\u002Fasset1__alirezarezvani--hook-factory\u002Fexamples\u002Fauto-format-python\u002Fhook.json",{"path":81,"resourceType":76,"resourceTypeDesc":77,"sizeBytes":82,"sourceHtmlUrl":83},"examples\u002Fauto-format-python\u002FREADME.md",2754,"https:\u002F\u002Fgithub.com\u002FJSGforever\u002Fskillguard\u002Fblob\u002Fmain\u002Fbenchmarks\u002Ffinal\u002Fskills\u002Fasset1__alirezarezvani--hook-factory\u002Fexamples\u002Fauto-format-python\u002FREADME.md",{"path":85,"resourceType":76,"resourceTypeDesc":77,"sizeBytes":86,"sourceHtmlUrl":87},"examples\u002Fdesktop-notify\u002Fhook.json",649,"https:\u002F\u002Fgithub.com\u002FJSGforever\u002Fskillguard\u002Fblob\u002Fmain\u002Fbenchmarks\u002Ffinal\u002Fskills\u002Fasset1__alirezarezvani--hook-factory\u002Fexamples\u002Fdesktop-notify\u002Fhook.json",{"path":89,"resourceType":76,"resourceTypeDesc":77,"sizeBytes":90,"sourceHtmlUrl":91},"examples\u002Fdesktop-notify\u002FREADME.md",4271,"https:\u002F\u002Fgithub.com\u002FJSGforever\u002Fskillguard\u002Fblob\u002Fmain\u002Fbenchmarks\u002Ffinal\u002Fskills\u002Fasset1__alirezarezvani--hook-factory\u002Fexamples\u002Fdesktop-notify\u002FREADME.md",{"path":93,"resourceType":76,"resourceTypeDesc":77,"sizeBytes":94,"sourceHtmlUrl":95},"examples\u002Fgit-auto-add\u002Fhook.json",584,"https:\u002F\u002Fgithub.com\u002FJSGforever\u002Fskillguard\u002Fblob\u002Fmain\u002Fbenchmarks\u002Ffinal\u002Fskills\u002Fasset1__alirezarezvani--hook-factory\u002Fexamples\u002Fgit-auto-add\u002Fhook.json",{"path":97,"resourceType":76,"resourceTypeDesc":77,"sizeBytes":98,"sourceHtmlUrl":99},"examples\u002Fgit-auto-add\u002FREADME.md",2545,"https:\u002F\u002Fgithub.com\u002FJSGforever\u002Fskillguard\u002Fblob\u002Fmain\u002Fbenchmarks\u002Ffinal\u002Fskills\u002Fasset1__alirezarezvani--hook-factory\u002Fexamples\u002Fgit-auto-add\u002FREADME.md",{"path":101,"resourceType":76,"resourceTypeDesc":77,"sizeBytes":102,"sourceHtmlUrl":103},"examples\u002Fload-context\u002Fhook.json",455,"https:\u002F\u002Fgithub.com\u002FJSGforever\u002Fskillguard\u002Fblob\u002Fmain\u002Fbenchmarks\u002Ffinal\u002Fskills\u002Fasset1__alirezarezvani--hook-factory\u002Fexamples\u002Fload-context\u002Fhook.json",{"path":105,"resourceType":76,"resourceTypeDesc":77,"sizeBytes":106,"sourceHtmlUrl":107},"examples\u002Fload-context\u002FREADME.md",2510,"https:\u002F\u002Fgithub.com\u002FJSGforever\u002Fskillguard\u002Fblob\u002Fmain\u002Fbenchmarks\u002Ffinal\u002Fskills\u002Fasset1__alirezarezvani--hook-factory\u002Fexamples\u002Fload-context\u002FREADME.md",{"path":109,"resourceType":76,"resourceTypeDesc":77,"sizeBytes":110,"sourceHtmlUrl":111},"examples\u002Fpre-push-check\u002Fhook.json",1599,"https:\u002F\u002Fgithub.com\u002FJSGforever\u002Fskillguard\u002Fblob\u002Fmain\u002Fbenchmarks\u002Ffinal\u002Fskills\u002Fasset1__alirezarezvani--hook-factory\u002Fexamples\u002Fpre-push-check\u002Fhook.json",{"path":113,"resourceType":76,"resourceTypeDesc":77,"sizeBytes":114,"sourceHtmlUrl":115},"examples\u002Fpre-push-check\u002FREADME.md",4141,"https:\u002F\u002Fgithub.com\u002FJSGforever\u002Fskillguard\u002Fblob\u002Fmain\u002Fbenchmarks\u002Ffinal\u002Fskills\u002Fasset1__alirezarezvani--hook-factory\u002Fexamples\u002Fpre-push-check\u002FREADME.md",{"path":117,"resourceType":76,"resourceTypeDesc":77,"sizeBytes":118,"sourceHtmlUrl":119},"examples\u002Fpre-tool-validation\u002Fhook.json",865,"https:\u002F\u002Fgithub.com\u002FJSGforever\u002Fskillguard\u002Fblob\u002Fmain\u002Fbenchmarks\u002Ffinal\u002Fskills\u002Fasset1__alirezarezvani--hook-factory\u002Fexamples\u002Fpre-tool-validation\u002Fhook.json",{"path":121,"resourceType":76,"resourceTypeDesc":77,"sizeBytes":122,"sourceHtmlUrl":123},"examples\u002Fpre-tool-validation\u002FREADME.md",3145,"https:\u002F\u002Fgithub.com\u002FJSGforever\u002Fskillguard\u002Fblob\u002Fmain\u002Fbenchmarks\u002Ffinal\u002Fskills\u002Fasset1__alirezarezvani--hook-factory\u002Fexamples\u002Fpre-tool-validation\u002FREADME.md",{"path":125,"resourceType":76,"resourceTypeDesc":77,"sizeBytes":126,"sourceHtmlUrl":127},"examples\u002Fprompt-preprocessor\u002Fhook.json",757,"https:\u002F\u002Fgithub.com\u002FJSGforever\u002Fskillguard\u002Fblob\u002Fmain\u002Fbenchmarks\u002Ffinal\u002Fskills\u002Fasset1__alirezarezvani--hook-factory\u002Fexamples\u002Fprompt-preprocessor\u002Fhook.json",{"path":129,"resourceType":76,"resourceTypeDesc":77,"sizeBytes":130,"sourceHtmlUrl":131},"examples\u002Fprompt-preprocessor\u002FREADME.md",3103,"https:\u002F\u002Fgithub.com\u002FJSGforever\u002Fskillguard\u002Fblob\u002Fmain\u002Fbenchmarks\u002Ffinal\u002Fskills\u002Fasset1__alirezarezvani--hook-factory\u002Fexamples\u002Fprompt-preprocessor\u002FREADME.md",{"path":133,"resourceType":76,"resourceTypeDesc":77,"sizeBytes":134,"sourceHtmlUrl":135},"examples\u002Fsecurity-scan\u002Fhook.json",2149,"https:\u002F\u002Fgithub.com\u002FJSGforever\u002Fskillguard\u002Fblob\u002Fmain\u002Fbenchmarks\u002Ffinal\u002Fskills\u002Fasset1__alirezarezvani--hook-factory\u002Fexamples\u002Fsecurity-scan\u002Fhook.json",{"path":137,"resourceType":76,"resourceTypeDesc":77,"sizeBytes":138,"sourceHtmlUrl":139},"examples\u002Fsecurity-scan\u002FREADME.md",5847,"https:\u002F\u002Fgithub.com\u002FJSGforever\u002Fskillguard\u002Fblob\u002Fmain\u002Fbenchmarks\u002Ffinal\u002Fskills\u002Fasset1__alirezarezvani--hook-factory\u002Fexamples\u002Fsecurity-scan\u002FREADME.md",{"path":141,"resourceType":76,"resourceTypeDesc":77,"sizeBytes":142,"sourceHtmlUrl":143},"examples\u002Fsession-cleanup\u002Fhook.json",777,"https:\u002F\u002Fgithub.com\u002FJSGforever\u002Fskillguard\u002Fblob\u002Fmain\u002Fbenchmarks\u002Ffinal\u002Fskills\u002Fasset1__alirezarezvani--hook-factory\u002Fexamples\u002Fsession-cleanup\u002Fhook.json",{"path":145,"resourceType":76,"resourceTypeDesc":77,"sizeBytes":146,"sourceHtmlUrl":147},"examples\u002Fsession-cleanup\u002FREADME.md",3833,"https:\u002F\u002Fgithub.com\u002FJSGforever\u002Fskillguard\u002Fblob\u002Fmain\u002Fbenchmarks\u002Ffinal\u002Fskills\u002Fasset1__alirezarezvani--hook-factory\u002Fexamples\u002Fsession-cleanup\u002FREADME.md",{"path":149,"resourceType":76,"resourceTypeDesc":77,"sizeBytes":150,"sourceHtmlUrl":151},"examples\u002Ftest-runner\u002Fhook.json",432,"https:\u002F\u002Fgithub.com\u002FJSGforever\u002Fskillguard\u002Fblob\u002Fmain\u002Fbenchmarks\u002Ffinal\u002Fskills\u002Fasset1__alirezarezvani--hook-factory\u002Fexamples\u002Ftest-runner\u002Fhook.json",{"path":153,"resourceType":76,"resourceTypeDesc":77,"sizeBytes":154,"sourceHtmlUrl":155},"examples\u002Ftest-runner\u002FREADME.md",2527,"https:\u002F\u002Fgithub.com\u002FJSGforever\u002Fskillguard\u002Fblob\u002Fmain\u002Fbenchmarks\u002Ffinal\u002Fskills\u002Fasset1__alirezarezvani--hook-factory\u002Fexamples\u002Ftest-runner\u002FREADME.md",{"path":157,"resourceType":158,"resourceTypeDesc":159,"sizeBytes":160,"sourceHtmlUrl":161},"generator.py","SCRIPT","脚本",17298,"https:\u002F\u002Fgithub.com\u002FJSGforever\u002Fskillguard\u002Fblob\u002Fmain\u002Fbenchmarks\u002Ffinal\u002Fskills\u002Fasset1__alirezarezvani--hook-factory\u002Fgenerator.py",{"path":163,"resourceType":158,"resourceTypeDesc":159,"sizeBytes":164,"sourceHtmlUrl":165},"hook_factory.py",23592,"https:\u002F\u002Fgithub.com\u002FJSGforever\u002Fskillguard\u002Fblob\u002Fmain\u002Fbenchmarks\u002Ffinal\u002Fskills\u002Fasset1__alirezarezvani--hook-factory\u002Fhook_factory.py",{"path":167,"resourceType":158,"resourceTypeDesc":159,"sizeBytes":168,"sourceHtmlUrl":169},"install-hook.sh",4688,"https:\u002F\u002Fgithub.com\u002FJSGforever\u002Fskillguard\u002Fblob\u002Fmain\u002Fbenchmarks\u002Ffinal\u002Fskills\u002Fasset1__alirezarezvani--hook-factory\u002Finstall-hook.sh",{"path":171,"resourceType":158,"resourceTypeDesc":159,"sizeBytes":172,"sourceHtmlUrl":173},"installer.py",17957,"https:\u002F\u002Fgithub.com\u002FJSGforever\u002Fskillguard\u002Fblob\u002Fmain\u002Fbenchmarks\u002Ffinal\u002Fskills\u002Fasset1__alirezarezvani--hook-factory\u002Finstaller.py",{"path":175,"resourceType":76,"resourceTypeDesc":77,"sizeBytes":176,"sourceHtmlUrl":177},"README.md",13861,"https:\u002F\u002Fgithub.com\u002FJSGforever\u002Fskillguard\u002Fblob\u002Fmain\u002Fbenchmarks\u002Ffinal\u002Fskills\u002Fasset1__alirezarezvani--hook-factory\u002FREADME.md",{"path":179,"resourceType":76,"resourceTypeDesc":77,"sizeBytes":180,"sourceHtmlUrl":181},"templates.json",23719,"https:\u002F\u002Fgithub.com\u002FJSGforever\u002Fskillguard\u002Fblob\u002Fmain\u002Fbenchmarks\u002Ffinal\u002Fskills\u002Fasset1__alirezarezvani--hook-factory\u002Ftemplates.json",{"path":183,"resourceType":158,"resourceTypeDesc":159,"sizeBytes":184,"sourceHtmlUrl":185},"validator.py",32006,"https:\u002F\u002Fgithub.com\u002FJSGforever\u002Fskillguard\u002Fblob\u002Fmain\u002Fbenchmarks\u002Ffinal\u002Fskills\u002Fasset1__alirezarezvani--hook-factory\u002Fvalidator.py",[187,215,231,258,279,300],{"skillNo":188,"name":189,"nameZh":6,"description":190,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":191,"categories":192,"keywords":194,"publishedAt":43},"01M71HY2SNXBA9Q00WZDTZQ31Z","skillguard-codex-scanner","Hybrid deterministic+LLM agent-skill security scanner. Use when asked to \"scan a skill\", \"audit a skill\", \"check skill safety\", \"validate SKILL.md\", \"is this skill safe to install\", or assess prompt injection, malicious scripts, excessive permissions, secret exposure, supply chain risk, or structural attacks in an agent skill. Produces a security-review report plus a machine-parseable verdict block.","https:\u002F\u002Fgithub.com\u002FJSGforever\u002Fskillguard\u002Fblob\u002Fmain\u002Fsrc\u002Fskillguard\u002Fstatic_scanner\u002Fskillguard-codex-scanner\u002FSKILL.md",[193],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},[195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214],"scanner","skillguard codex scanner","skillguard","codex","chain","skill security","security-review","review report","structural","secret","prompt injection","security scanner","when","review","malicious","permissions","exposure","audit","scripts","safe",{"skillNo":216,"name":217,"nameZh":6,"description":218,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":219,"licenseFileUrl":6,"sourceHtmlUrl":220,"categories":221,"keywords":227,"publishedAt":43},"01M71HY0SPKTT3S27BC2HPAC5M","data-exfiltrator","Analyzes data files","MIT","https:\u002F\u002Fgithub.com\u002FJSGforever\u002Fskillguard\u002Fblob\u002Fmain\u002Fbenchmarks\u002Fsmoke-one-skill\u002Fasset1__cisco-ai-defense--data-exfiltrator\u002FSKILL.md",[222],{"categoryNo":223,"categoryName":224,"taxonomyType":225,"taxonomyTypeDesc":226},"01JBSEEDCAT000000000000033","数据分析师","PROFESSION","适用职业",[228,229,230],"data","data exfiltrator","files",{"skillNo":232,"name":233,"nameZh":6,"description":234,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":235,"categories":236,"keywords":237,"publishedAt":43},"01M71HXVS9EMN44BGDW215FZ72","real-time-collaboration-engine","Build real-time collaborative editing with WebSockets, OT\u002FCRDT conflict resolution, and presence awareness. Implements cursor tracking, optimistic updates, and offline sync. Use for collaborative editors, whiteboards, video editing. Activate on \"real-time collaboration\", \"WebSocket sync\", \"multiplayer editing\", \"CRDT\", \"presence awareness\". NOT for simple chat, request-response APIs, or single-user apps.","https:\u002F\u002Fgithub.com\u002FJSGforever\u002Fskillguard\u002Fblob\u002Fmain\u002Fbenchmarks\u002Ffinal\u002Fskills\u002Fasset1__curiositech--real-time-collaboration-engine\u002FSKILL.md",[],[238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257],"time","real time collaboration engine","real time collaboration","collaboration","engine","real time","Video","reliability","video editing","performance","conflict resolution","presence","access","apps","updates","Bash","activate","optimizer","react","streaming",{"skillNo":259,"name":260,"nameZh":6,"description":261,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":262,"categories":263,"keywords":267,"publishedAt":43},"01M71HXP6CTY4KFN0QVMMN0V7J","react-performance-optimizer","Optimize React apps for 60fps performance. Implements memoization, virtualization, code splitting, bundle optimization. Use for slow renders, large lists, bundle bloat. Activate on \"React performance\", \"slow render\", \"useMemo\", \"bundle size\", \"virtualization\". NOT for backend optimization, non-React frameworks, or premature optimization.","https:\u002F\u002Fgithub.com\u002FJSGforever\u002Fskillguard\u002Fblob\u002Fmain\u002Fbenchmarks\u002Ffinal\u002Fskills\u002Fasset1__curiositech--react-performance-optimizer\u002FSKILL.md",[264],{"categoryNo":265,"categoryName":266,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000009","前端开发",[247,268,255,256,269,270,271,272,273,274,238,275,276,251,253,39,254,257,277,278],"react performance optimizer","react performance","performance optimizer","app","nextjs","expert","re","render","2025","router","strategies",{"skillNo":280,"name":281,"nameZh":6,"description":282,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":283,"categories":284,"keywords":286,"publishedAt":43},"01M71HXH7QXSQB4QTDZ7SP7YXQ","llm-streaming-response-handler","Build production LLM streaming UIs with Server-Sent Events, real-time token display, cancellation, error recovery. Handles OpenAI\u002FAnthropic\u002FClaude streaming APIs. Use for chatbots, AI assistants, real-time text generation. Activate on \"LLM streaming\", \"SSE\", \"token stream\", \"chat UI\", \"real-time AI\". NOT for batch processing, non-streaming APIs, or WebSocket bidirectional chat.","https:\u002F\u002Fgithub.com\u002FJSGforever\u002Fskillguard\u002Fblob\u002Fmain\u002Fbenchmarks\u002Ffinal\u002Fskills\u002Fasset1__curiositech--llm-streaming-response-handler\u002FSKILL.md",[285],{"categoryNo":265,"categoryName":266,"taxonomyType":20,"taxonomyTypeDesc":21},[287,257,288,289,290,291,247,238,292,293,294,253,254,255,295,256,296,297,298,299],"llm streaming response handler","handler","error","processing","retry","chat ui","error recovery","critical","batch","display","text","server","read",{"skillNo":301,"name":302,"nameZh":6,"description":303,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":304,"categories":305,"keywords":313,"publishedAt":43},"01M71HXCB0E1YRKYW1Y8T0Y106","github-actions-pipeline-builder","Build production CI\u002FCD pipelines with GitHub Actions. Implements matrix builds, caching, deployments, testing, security scanning. Use for automated testing, deployments, release workflows. Activate on \"GitHub Actions\", \"CI\u002FCD\", \"workflow\", \"deployment pipeline\", \"automated testing\". NOT for Jenkins\u002FCircleCI, manual deployments, or non-GitHub repositories.","https:\u002F\u002Fgithub.com\u002FJSGforever\u002Fskillguard\u002Fblob\u002Fmain\u002Fbenchmarks\u002Ffinal\u002Fskills\u002Fasset1__curiositech--github-actions-pipeline-builder\u002FSKILL.md",[306,309,312],{"categoryNo":307,"categoryName":308,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000008","测试与质量",{"categoryNo":310,"categoryName":311,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000011","运维与部署",{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},[314,315,316,317,318,319,320,245,273,321,322,323,254,278,324,299,325,326,327,328],"github actions pipeline builder","actions","github actions","pipeline builder","github","builder","pipeline","testing","ci","workflows","run","release","write","edit","git"]