Skip to main content

skill-factory

Analyze session work and automatically convert reusable patterns into Claude Code skills. Use when: "세션을 스킬로", "스킬 만들어", "이거 스킬로", "skill factory", "이 작업 자동화해", "스킬 추출", "make this a skill", "extract skill", "convert to skill", "스킬 팩토리", "자동 스킬 생성". Differs from skill-creator (archived) and manage-skills (drift detection): this skill actively analyzes sessions, checks for duplicates, and creates skills via Agent Teams.

Aller à l'installation

Informations de source

Dépôt
sangrokjung/claude-forge
Dernière activité de la source
23 février 2026 à 07:55
Langue détectée de SKILL.md
anglais
Étoiles
837
Forks
177

Options d'installation

Le prompt qui vérifie d'abord la source est sélectionné par défaut. Vous pouvez passer à une commande directe ou télécharger une copie locale.

Vérifiez les fichiers source

Lisez SKILL.md et les fichiers associés affichés par SkillsMP avant de décider de l'installer.

Explorateur de fichiers
7 fichiers

Affichage de SKILL.md

SKILL.md
Instructions source · Aperçu en lecture seule
name
skill-factory
description
Analyze session work and automatically convert reusable patterns into Claude Code skills. Use when: "세션을 스킬로", "스킬 만들어", "이거 스킬로", "skill factory", "이 작업 자동화해", "스킬 추출", "make this a skill", "extract skill", "convert to skill", "스킬 팩토리", "자동 스킬 생성". Differs from skill-creator (archived) and manage-skills (drift detection): this skill actively analyzes sessions, checks for duplicates, and creates skills via Agent Teams.
disable-model-invocation
true
argument-hint
[--dry-run] [--no-team] [--target name] [--scope global|project]
# Skill Factory Automated pipeline: session analysis -> duplicate check -> skill creation. Requires: Python 3.8+, bash, git. Agent Teams path requires `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1`. | Existing Skill | Role | skill-factory Difference | |----------------|------|--------------------------| | skill-creator (archived) | Manual 6-step guide | Automated pipeline | | manage-skills | Drift detection (verify-* skills) | Proactive skill generation (manage-skills verifies existing; skill-factory creates new) | | continuous-learning | Passive pattern extraction | On-demand + team execution | ## Parameter Parsing Parse `$ARGUMENTS` for flags: | Flag | Default | Description | |------|---------|-------------| | `--dry-run` | false | Analyze and report only, no file creation | | `--no-team` | false | Run sequentially without Agent Teams | | `--target` | (auto) | Specific pattern name to extract | | `--scope` | global | `global` (~/. claude/skills/) or `project` (.claude/skills/) | If no arguments, run full auto-detection pipeline. ## Phase 1: Session Analysis Collect what happened in this session: ```bash # Uncommitted changes git diff HEAD --name-only 2>/dev/null # Recent commits on current branch git log --oneline -20 2>/dev/null # Branch diff from main git diff main...HEAD --name-only 2>/dev/null ``` From collected changes, identify **candidate patterns** - repeatable workflows that appeared: 1. **Multi-step sequences** - 3+ actions performed in consistent order 2. **Tool combinations** - Specific tools used together (e.g., Grep + Read + Edit) 3. **Domain procedures** - File types or directories accessed with specific operations 4. **Repeated transformations** - Same type of change applied to multiple files If `--target` is specified, focus analysis on that named pattern only. For each candidate, produce a JSON entry (internal, not shown to user): ```json { "name": "pattern-name", "description": "What was done repeatedly", "files": ["path/a.ts", "path/b.ts"], "steps": ["Step1", "Step2", "Step3"], "step_count": 3 } ``` Present findings to user: ``` Session Analysis Complete Candidate Patterns Found: N 1. [pattern-name] - "Description of what was done repeatedly" Files: path/a.ts, path/b.ts (N files) Steps: Step1 -> Step2 -> Step3 2. [pattern-name] - "Description" ... Which patterns should become skills? (select or 'all') ``` Wait for user selection before proceeding. ## Phase 2: Similarity Check For each selected pattern, check against existing inventory. **Step 1: Scan inventory** ```bash bash $HOME/.claude/skills/skill-factory/scripts/scan-inventory.sh --scope all > /tmp/sf-manifest.json ``` **Step 2: Score similarity** ```bash python3 $HOME/.claude/skills/skill-factory/scripts/similarity-scorer.py \ --candidate "<pattern description>" \ --candidate-name "<pattern-name>" \ --manifest /tmp/sf-manifest.json \ --top 3 ``` **Step 3: Apply decision logic** (see [references/decision-tree.md](references/decision-tree.md)) Present results to user: ``` Similarity Check Results Pattern: "pdf-batch-edit" Top match: nano-pdf (score: 0.72) -> MERGE Recommendation: Extend nano-pdf with batch operations Pattern: "config-updater" Top match: init-project (score: 0.45) -> UPDATE Recommendation: Add config-update subsection to init-project Pattern: "api-load-test" Top match: e2e (score: 0.24) -> CREATE Recommendation: Create new skill Action for each pattern? (CREATE / UPDATE / MERGE / SKIP) ``` Wait for user decision per pattern. ## Phase 3: Blueprint For each CREATE/UPDATE/MERGE decision, design the skill structure. ### CREATE Blueprint Select template type from [references/skill-templates.md](references/skill-templates.md): - **Workflow** for sequential processes - **Task/Tool** for operation collections - **Reference** for domain knowledge - **Verification** for automated checks Generate blueprint: ``` Blueprint: api-load-test Type: Workflow Scope: global (~/.claude/skills/) Structure: api-load-test/ ├── SKILL.md (~200 lines) │ ├── Frontmatter: name, description with triggers │ ├── Overview │ ├── Prerequisites │ ├── Workflow (4 steps) │ └── Output Format └── scripts/ └── run-load-test.sh Key sections: 1. Target URL configuration 2. Load profile definition 3. Test execution 4. Results analysis Approve this blueprint? (y/n/edit) ``` Wait for user approval. ### UPDATE Blueprint For UPDATE verdicts (score 0.3-0.6), plan a lightweight addition to the existing skill: ``` UPDATE Blueprint: config-updater -> init-project Target skill: ~/.claude/skills/init-project/SKILL.md Action: Add subsection "## Config Update" with steps Estimated diff: +20-40 lines in existing SKILL.md ``` ### MERGE Blueprint For MERGE verdicts (score 0.6-0.8), plan a significant extension of the existing skill: ``` MERGE Blueprint: pdf-batch-edit -> nano-pdf Target skill: ~/.claude/skills/nano-pdf/SKILL.md Sections to add: "## Batch Operations" (new workflow section) Scripts to add: scripts/batch-process.sh Estimated diff: +60-100 lines in SKILL.md, +1 script ``` ## Phase 4: Execution Two paths based on `--no-team` flag and Agent Teams availability. Check Agent Teams availability: ```bash [ "${CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS:-0}" = "1" ] && echo "teams" || echo "no-team" ``` If `--no-team` is set or env var is missing/0, use Path B automatically. ### Path A: Agent Teams (default) Read [references/team-composition.md](references/team-composition.md) for full team details. **Team: 3 teammates (tami, jiwon, duri)** ``` TeamCreate -> "skill-factory-run" TaskCreate -> tami's analysis tasks (T1-T6) TaskCreate -> jiwon's creation tasks (T7-T12, blocked by T6) TaskCreate -> duri's validation tasks (T13-T18, blocked by T12) Task -> tami (Explore, sonnet, blue) "Analyze session, run scan-inventory.sh, run similarity-scorer.py, report findings" Task -> jiwon (general-purpose, sonnet, green) "For CREATE: read skill-templates.md, create SKILL.md + resources based on blueprint" "For UPDATE/MERGE: read target skill, apply diff from blueprint, add new sections/scripts" Task -> duri (general-purpose, sonnet, yellow) "Run validate-skill.sh, verify triggers, register skill" ``` Pipeline: 1. **tami** completes analysis -> reports to lead 2. Lead confirms with user (Checkpoint 1-2) 3. **jiwon** creates skill files -> reports to lead 4. Lead confirms with user (Checkpoint 3) 5. **duri** validates and registers -> reports to lead 6. Lead confirms with user (Checkpoint 4) 7. Shutdown all teammates, TeamDelete ### Path B: Sequential (--no-team) Execute the same phases inline without Agent Teams: 1. Run `scan-inventory.sh` and `similarity-scorer.py` directly 2. **Checkpoint 1-2**: Present similarity results, ask user for CREATE/UPDATE/MERGE/SKIP per pattern 3. Design blueprint based on template selection 4. **Checkpoint 3**: Present blueprint, wait for user approval 5. Create/update skill directory and files based on approved blueprint 6. Run `validate-skill.sh` to verify 7. **Checkpoint 4**: Present validation results, ask user to register or edit 8. Register and log ### --dry-run Mode Stop after Phase 3 (blueprint). Print the blueprint and exit without creating files: ``` DRY RUN COMPLETE Patterns analyzed: N Decisions: X CREATE, Y MERGE, Z SKIP Blueprints generated: X No files were created. Remove --dry-run to execute. ``` ## Phase 5: Registration After validation passes: 1. **Log creation** - Append to `~/.claude/skill-factory.log`: ``` [2026-02-18T14:30:00] CREATED api-load-test (global) from session patterns [2026-02-18T14:30:00] MERGED batch-operations into nano-pdf ``` 2. **Scope placement**: - `--scope global`: `~/.claude/skills/<name>/` - `--scope project`: `.claude/skills/<name>/` 3. **Optional CLAUDE.md update**: If project-scoped, offer to add skill reference to project CLAUDE.md. ## Output Format Final report after all patterns are processed: ``` Skill Factory Report Session: <branch-name or "main"> Patterns found: N Patterns processed: M Results: CREATED: api-load-test (global) - 4 files, 180 lines MERGED: batch-ops into nano-pdf - 2 sections added SKIPPED: data-transform (0.85 match with data-research) Files created/modified: ~/.claude/skills/api-load-test/SKILL.md ~/.claude/skills/api-load-test/scripts/run-load-test.sh ~/.claude/skills/nano-pdf/SKILL.md (updated) Validation: ALL PASS Log: ~/.claude/skill-factory.log Next steps: Test the new skill: /api-load-test Review: cat ~/.claude/skills/api-load-test/SKILL.md ``` ## Error Handling | Situation | Action | |-----------|--------| | No git history | Analyze only staged/unstaged changes | | No patterns found | "No reusable patterns detected. Try after a more complex session." | | scan-inventory.sh fails | Fall back to manual inventory (glob SKILL.md files) | | similarity-scorer.py fails | Skip similarity check, default to CREATE | | Agent Teams unavailable | Auto-fallback to `--no-team` mode | | validate-skill.sh fails | Show errors, let user fix or cancel | | User cancels at checkpoint | Abort gracefully, no partial files left | ## Related Files | File | Purpose | When to Read | |------|---------|--------------| | [scripts/scan-inventory.sh](scripts/scan-inventory.sh) | Scan all skills/commands/agents to JSON | Phase 2 - always | | [scripts/similarity-scorer.py](scripts/similarity-scorer.py) | 4-dim similarity scoring | Phase 2 - per pattern | | [scripts/validate-skill.sh](scripts/validate-skill.sh) | Validate created skill structure | Phase 5 - after creation | | [references/decision-tree.md](references/decision-tree.md) | CREATE/UPDATE/MERGE/SKIP logic | Phase 2 - for decisions | | [references/team-composition.md](references/team-composition.md) | tami/jiwon/duri team setup | Phase 4 - Agent Teams path | | [references/skill-templates.md](references/skill-templates.md) | Skill type templates | Phase 3 - blueprint design |
Voir sur GitHub