whipforaweeb-skills
v0.7.0
Published
WhipForAWeeb Claude Code Skills Pack — graphify-link, codegraph-link, codegraph-affected, mistake-learning, skill-router
Maintainers
Readme
WhipForAWeeb Skills Pack
Five Claude Code skills packaged as a plugin.
Included Skills
| Skill | What it does |
|-------|-------------|
| graphify-link | Links a project to a graphify knowledge graph. Manages graphify-roots.json, installs fast-path drivers (graphify-build.py, graphify-update.py), starts graphify watch. |
| codegraph-link | Wires a project to the CodeGraph MCP (@colbymchenry/codegraph). Writes/removes the managed role-split block in CLAUDE.md. |
| codegraph-affected | Runs only the tests impacted by a change. Maps changed source files → impacted test files via codegraph affected, then runs just those (hands off to existing runner skills). Requires a CodeGraph index. |
| mistake-learning | Stop hook that reads the session transcript directly (no CLV2 dependency), detects known syntactic mistake patterns, and increments (xN) counters in ~/.claude/rules/mistakes-index.md. Bundles a mistakes-sweep.py health/auto-archive script and seeds the rules/mistakes-*.md files on install. |
| skill-router | UserPromptSubmit hook that scores every installed skill/command against your prompt (local TF-IDF cosine, no AI) and injects only high-confidence matches, so the model picks the right skill without you naming it. Surfaces dormant nested skills (e.g. skills/ecc/*) the harness does not list. Silent below threshold → ~0 tokens on unrelated prompts. Index auto-rebuilds when skills are added/removed/edited. |
Requirements
- Python 3 —
pylauncher (Windows) orpython3(macOS/Linux) graphifyCLI —graphify-linkskill onlycodegraphCLI —codegraph-linkskill only~/.claude/rules/mistakes-*.md—mistake-learningskill auto-seeds these on install if missing (existing files are never overwritten)
PowerShell is not required. All hooks are pure Python.
Installation
Claude Code plugin marketplace (/plugin)
Installs skills and hooks natively — no copy step, no manual settings.json edit.
/plugin marketplace add VVeb1250/WhipForAWeeb-skills
/plugin install whipforaweeb-skills@whipforaweeb-skillsThe five skills auto-discover, and the skill-router (UserPromptSubmit),
mistake-learning (Stop + SessionStart), and graphify (PreToolUse) hooks
register automatically.
Requires
nodeonPATH. The hooks are Python, but thepy(Windows) vspython3(macOS/Linux) launcher cannot be expressed in a single plugin hook command — so every hook is routed throughplugins/hooks/run.js, a tiny Node launcher that picks the right interpreter at runtime. Node ships with Claude Code, so this is normally already satisfied.Prefer the npm installer if you want hooks written into your own
~/.claude/settings.json(it prints OS-correctpy/python3snippets) rather than scoped to the plugin.
npx (no install needed)
npx whipforaweeb-skillsnpm global
npm install -g whipforaweeb-skills
whipforaweeb-skillsScript (from cloned repo)
# macOS / Linux
git clone https://github.com/VVeb1250/WhipForAWeeb-skills.git
cd WhipForAWeeb-skills
bash install.sh# Windows
git clone https://github.com/VVeb1250/WhipForAWeeb-skills.git
cd WhipForAWeeb-skills
pwsh install.ps1Manual
Copy the skill directories you want into ~/.claude/skills/:
# Windows
Copy-Item -Recurse "plugins\skills\graphify-link" "$env:USERPROFILE\.claude\skills\"
Copy-Item -Recurse "plugins\skills\codegraph-link" "$env:USERPROFILE\.claude\skills\"
Copy-Item -Recurse "plugins\skills\codegraph-affected" "$env:USERPROFILE\.claude\skills\"
Copy-Item -Recurse "plugins\skills\mistake-learning" "$env:USERPROFILE\.claude\skills\"
Copy-Item -Recurse "plugins\skills\skill-router" "$env:USERPROFILE\.claude\skills\"# macOS / Linux
cp -r plugins/skills/graphify-link ~/.claude/skills/
cp -r plugins/skills/codegraph-link ~/.claude/skills/
cp -r plugins/skills/codegraph-affected ~/.claude/skills/
cp -r plugins/skills/mistake-learning ~/.claude/skills/
cp -r plugins/skills/skill-router ~/.claude/skills/Registering hooks in ~/.claude/settings.json
mistake-learning Stop hook — Windows:
{
"hooks": {
"Stop": [
{
"command": "py \"%USERPROFILE%\\.claude\\skills\\mistake-learning\\hooks\\stop-hook.py\"",
"description": "Increment mistake counters on session end"
}
]
}
}mistake-learning Stop hook — macOS / Linux:
{
"hooks": {
"Stop": [
{
"command": "python3 \"$HOME/.claude/skills/mistake-learning/hooks/stop-hook.py\"",
"description": "Increment mistake counters on session end"
}
]
}
}mistake-learning sweep (health + auto-archive) — SessionStart, Windows:
{
"hooks": {
"SessionStart": [
{
"command": "py \"%USERPROFILE%\\.claude\\skills\\mistake-learning\\hooks\\mistakes-sweep.py\" --fix-safe --quiet; exit 0",
"description": "Budget check + auto-archive FIXED entries"
}
]
}
}mistake-learning sweep — SessionStart, macOS / Linux:
{
"hooks": {
"SessionStart": [
{
"command": "python3 \"$HOME/.claude/skills/mistake-learning/hooks/mistakes-sweep.py\" --fix-safe --quiet; exit 0",
"description": "Budget check + auto-archive FIXED entries"
}
]
}
}Make Claude log mistakes proactively. The Stop hook only auto-counts the 3 syntactic patterns. For Claude to record new mistakes, add this line to your
~/.claude/CLAUDE.mdso the trigger is always in context:## Mistakes `rules/mistakes-index.md` auto-loaded. New mistake → write entry immediately. [HIGH] pattern → warn first.
graphify intercept hook — Windows:
{
"hooks": {
"PreToolUse": [
{
"matcher": "graphify",
"command": "py \"%USERPROFILE%\\.claude\\skills\\graphify-link\\hooks\\intercept-graphify-skill.py\"",
"description": "Fast-path graphify driver"
}
]
}
}graphify intercept hook — macOS / Linux:
{
"hooks": {
"PreToolUse": [
{
"matcher": "graphify",
"command": "python3 \"$HOME/.claude/skills/graphify-link/hooks/intercept-graphify-skill.py\"",
"description": "Fast-path graphify driver"
}
]
}
}skill-router UserPromptSubmit hook — Windows:
{
"hooks": {
"UserPromptSubmit": [
{
"command": "py \"%USERPROFILE%\\.claude\\skills\\skill-router\\hooks\\skill-router.py\"",
"description": "Suggest high-confidence skill matches for the prompt"
}
]
}
}skill-router UserPromptSubmit hook — macOS / Linux:
{
"hooks": {
"UserPromptSubmit": [
{
"command": "python3 \"$HOME/.claude/skills/skill-router/hooks/skill-router.py\"",
"description": "Suggest high-confidence skill matches for the prompt"
}
]
}
}Testing manually
mistake-learning:
# Windows
py "$env:USERPROFILE\.claude\skills\mistake-learning\hooks\stop-hook.py"# macOS / Linux
python3 ~/.claude/skills/mistake-learning/hooks/stop-hook.pymistake-learning sweep (health report):
# Windows
py "$env:USERPROFILE\.claude\skills\mistake-learning\hooks\mistakes-sweep.py"# macOS / Linux
python3 ~/.claude/skills/mistake-learning/hooks/mistakes-sweep.pygraphify intercept:
# Windows
py "$env:USERPROFILE\.claude\skills\graphify-link\hooks\intercept-graphify-skill.py" "$env:USERPROFILE\.claude\skills\graphify-link"# macOS / Linux
python3 ~/.claude/skills/graphify-link/hooks/intercept-graphify-skill.py ~/.claude/skills/graphify-linkskill-router (pipe a fake prompt; prints injected context or nothing):
# Windows
'{"prompt":"review my uncommitted changes for bugs"}' | py "$env:USERPROFILE\.claude\skills\skill-router\hooks\skill-router.py"# macOS / Linux
echo '{"prompt":"review my uncommitted changes for bugs"}' | python3 ~/.claude/skills/skill-router/hooks/skill-router.pyNotes
graphify-build.pyandgraphify-update.pycarry a# graphify-driver-version: Nstamp at line 1. Keep it at line 1 — tooling uses it to decide when to upgrade project-local copies.graphify-linkstores graph registry at~/.claude/graphify-roots.jsonand session marker at~/.claude/graphify.marker.mistake-learningderives the home directory fromUSERPROFILE(Windows) orHOME(Unix) — no hardcoded paths.skill-routerwrites its index cache (.skill-index.json) next to the script and derives all source paths from~— no hardcoded paths. The cache is generated at runtime and is git-ignored. Missing source dirs (e.g.~/.agents/skills) are skipped silently.hooks/intercept-graphify-skill.ps1is a thin shim for existing configs that point to the.ps1; new installs should useintercept-graphify-skill.pydirectly.
License
Local packaging of internal skill files for personal use. Follow existing repository licensing for redistribution.
