원클릭으로
technology-name-feature-name
Create a new technique plugin for a technology (language, tool, framework, or validation)
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Create a new technique plugin for a technology (language, tool, framework, or validation)
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Use when building modular Angular applications requiring dependency injection with providers, injectors, and services.
Use when handling async operations in Angular applications with observables, operators, and subjects.
Use when building Angular 16+ applications requiring fine-grained reactive state management and zone-less change detection.
Guides end-to-end feature development through 8 phases: discover requirements, explore codebase patterns, clarify ambiguities with the user, design architecture, implement with TDD, run multi-agent code review, validate all quality gates, and write a blog post. Use when asked to add a feature, implement a new capability, build functionality, or develop a feature end-to-end.
Use when creating or modifying Han plugins. Covers plugin structure, configuration, hooks, skills, and best practices.
Minimize token consumption through efficient tool usage patterns
| description | Create a new technique plugin for a technology (language, tool, framework, or validation) |
Create a new technique plugin for: $ARGUMENTS
Technique plugins provide validation hooks that automatically enforce quality standards for specific technologies. They watch for tool usage and validate the results. They live under plugins/ organized by category.
Create the following directory structure under the appropriate category:
plugins/{category}/{name}/
├── .claude-plugin/
│ └── plugin.json # Plugin metadata (ONLY plugin.json goes here)
├── han-plugin.yml # Han hook configurations (at plugin root)
├── hooks/
│ └── hooks.json # Claude Code hooks
├── skills/
│ └── {skill-name}/
│ └── SKILL.md # Skill documentation
└── README.md # Plugin documentation
| Category | For | Examples |
|---|---|---|
languages/ | Programming languages | typescript, python, rust |
frameworks/ | Frameworks | react, nextjs, relay |
tools/ | Build/dev tools | bun, playwright, mise |
validation/ | Linters/formatters | biome, eslint, prettier |
patterns/ | Development patterns | tdd, bdd, git-storytelling |
IMPORTANT:
plugin.json goes inside .claude-plugin/hooks.json goes in the hooks/ directoryhan-plugin.yml stays at the plugin root (NOT in hooks/)Create .claude-plugin/plugin.json:
{
"name": "{technology-name}",
"version": "1.0.0",
"description": "Validation and quality enforcement for {Technology Name} projects.",
"author": {
"name": "The Bushido Collective",
"url": "https://thebushido.co"
},
"homepage": "https://github.com/thebushidocollective/han",
"repository": "https://github.com/thebushidocollective/han",
"license": "MIT",
"keywords": [
"{technology}",
"validation",
"{tool-name}",
"quality",
"enforcement"
]
}
Create han-plugin.yml at the plugin root with hook definitions:
# {technology-name} plugin configuration
# This plugin provides validation hooks for {Technology Name} projects
# Hook definitions (managed by Han orchestrator)
hooks:
{hook-name}:
command: "{validation-command}"
dirsWith:
- "{marker-file}"
ifChanged:
- "{glob-patterns}"
# No MCP server for technique plugins (they use hooks, not MCP)
mcp: null
# Memory provider (optional)
memory: null
# typescript plugin configuration
# This plugin provides TypeScript validation hooks
hooks:
typecheck:
command: "npx -y --package typescript tsc --noEmit"
dirsWith:
- tsconfig.json
ifChanged:
- "**/*.ts"
- "**/*.tsx"
- "tsconfig.json"
mcp: null
memory: null
# rust plugin configuration
hooks:
check:
command: "cargo check"
dirsWith:
- Cargo.toml
ifChanged:
- "**/*.rs"
- "Cargo.toml"
- "Cargo.lock"
clippy:
command: "cargo clippy -- -D warnings"
dirsWith:
- Cargo.toml
ifChanged:
- "**/*.rs"
test:
command: "cargo test"
dirsWith:
- Cargo.toml
ifChanged:
- "**/*.rs"
- "Cargo.toml"
mcp: null
memory: null
Create hooks/hooks.json to register the hook with Claude Code events:
{
"hooks": {
"Stop": [
{
"hooks": [
{
"type": "command",
"command": "han hook run {technology-name} {hook-name} --fail-fast --cached",
"timeout": 120
}
]
}
]
}
}
package.jsonpyproject.toml or requirements.txtCargo.tomlgo.modGemfilepom.xml or build.gradle*.csprojmix.exsFor each major concept/feature of the technology, create a skill:
---
name: {technology-name}-{feature-name}
description: Use when {specific scenario requiring this skill}. {What this skill helps accomplish}.
allowed-tools:
- Read
- Write
- Edit
- Bash
- Grep
- Glob
---
# {Technology Name} - {Feature Name}
{Brief overview of this skill and when to use it}
## Key Concepts
## Best Practices
## Examples
## Common Patterns
## Anti-Patterns
# {Technology Name}
{Brief description of what this plugin validates}
## What This Plugin Provides
### Validation Hooks
- **{Technology} Validation**: Runs {validation tool} to ensure code quality
### Skills
- **{skill-1}**: {brief description}
- **{skill-2}**: {brief description}
## Installation
\`\`\`bash
han plugin install {technology-name}
\`\`\`
Add your plugin to .claude-plugin/marketplace.json:
{
"name": "{technology-name}",
"description": "Validation and quality enforcement for {Technology Name} projects.",
"source": "./plugins/{category}/{technology-name}",
"category": "Technique",
"keywords": [
"{technology}",
"validation",
"quality",
"enforcement"
]
}
See the Han documentation or ask in GitHub Discussions.