skill-forge
The skill of skills, for skills. Builds new ones, refines existing ones, and mines chat transcripts for what to build next.
When to invoke
Three modes. Pick by what the user says.
| Mode | Triggers | What it does |
|---|---|---|
| forge | "skill-forge a thing that does X", "forge a skill that ...", "build me a skill for ..." | Ask 2-3 clarifying questions, scaffold ~/.claude/skills/<name>/SKILL.md from the template, open PR to mphinance/alpha-skills. |
| audit | "skill-forge audit", "skill audit", "/skill-forge", "what skills should I build" | Run the miner over ~/.claude/projects/**/*.jsonl, present reports/latest.md, ask which candidates to forge or refine. |
| refine | "refine my skills", "skill-forge refine ", "improve the skill" | Propose additive-only changes (new trigger phrase, new example, new section) to an existing skill. Opens PR with diff. |
Flow
forge mode
- Ask the user 2-3 questions max: skill name (kebab-case), one-sentence purpose, primary trigger phrase. Don't over-interview.
- Run the scaffolder.
The scaffolder readspython scripts/forge_new.py --name <name> --brief "<one-sentence purpose>"templates/SKILL.md.tmpland substitutes{{name}},{{description}},{{title}},{{when_to_invoke}},{{flow}},{{hard_rules}}. - Open the freshly written
~/.claude/skills/<name>/SKILL.md. Review with the user. Tighten copy if needed. - Publish.
This clonespython scripts/publish.py <name>mphinance/alpha-skillsinto~/.cache/skill-forge/alpha-skillsif missing, branchesskill-forge/<name>-<short-ts>, commits, pushes, opens PR. Prints PR URL. Stop there. User reviews and merges.
audit mode
- Run the miner.
python scripts/mine_chats.py --days 30 - Read
reports/latest.mdaloud (the markdown report) andreports/latest.json(structured candidates). - Present the three sections: new-skill candidates, refinement candidates, pain points. Ask which to act on.
- For each chosen new-skill candidate, drop into forge mode with
publish.py --from-auditso the PR body cites the mined evidence. - For each chosen refinement candidate, drop into refine mode.
refine mode
- Read the target skill's existing SKILL.md in full. You are not allowed to remove or restructure anything.
- Propose additions only: new trigger phrase in the frontmatter description, new example, new "When NOT to use" bullet, new flow step.
- Write the proposed change to
proposals/<skill-name>/CHANGES.difffirst. Confirm with the user. - Apply the additive edit to
~/.claude/skills/<skill-name>/SKILL.md. - Publish.
Commit message starts with "Refine skill: ". PR body explains the addition and links the mined evidence.python scripts/publish.py <skill-name>
Hard rules
- Never auto-merge PRs.
publish.pyopens the PR. User merges. Nogh pr mergeever. - Never restructure existing skills in refine mode. Additive-only. If a skill needs a rewrite, that's a new forge, not a refine.
- Refinements are additive-only. No removed lines beyond pure whitespace.
publish.pyenforces this in refine mode. - Never mine recursively on skill-forge's own sessions. The miner already filters self-references. Don't disable it.
- Skip SSH transcripts. Project paths starting with
ssh-or cwd under/home/are remote work and not mined. - No em dashes. Use en dash with spaces or commas. No emojis in forged skills.
- stdlib only. Forged skills and skill-forge scripts use Python stdlib, no pip installs.
- Always go through PR. Never edit files in
~/.cache/skill-forge/alpha-skills/skills/directly.
Scheduling
The audit is the part you want on a cron. Two options:
Preferred – use the
/scheduleskill./schedule weekly /skill-forge auditRuns the audit weekly, writes
reports/latest.md, notifies you next session.Free-tier alternative for the miner alone. Wire Windows Task Scheduler to run
python C:\Users\mphan\.claude\skills\skill-forge\scripts\mine_chats.py --days 7on a weekly trigger. Zero tokens spent. You readreports/latest.mdwhen you feel like it, then invokeskill-forge auditinteractively to act on candidates.
Forge and refine modes are interactive by design. Don't schedule those.
Out of scope
- Auto-merging PRs. User merges, always.
- In-place edits to skills in
~/.claude/skills/during refine mode. Always go through PR againstmphinance/alpha-skills. - Mining transcripts from machines other than this one.
- Forging non-markdown skills (binary plugins, MCP servers, anything that isn't a SKILL.md plus optional scripts).
- Rewriting or restructuring existing skills. Refinements are additive-only.