From fable5-methodology
Maps an unfamiliar repository before editing: structure sweep, entry points, configs, test baseline, and targeted tracing. Trigger on first encounter with a new repo or subsystem.
How this skill is triggered — by the user, by Claude, or both
Slash command
/fable5-methodology:codebase-explorationThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Understand before you touch. The cost of exploration is minutes; the cost of editing on a
Understand before you touch. The cost of exploration is minutes; the cost of editing on a wrong mental model is a broken subsystem discovered later and blamed on you.
README and the manifest (package.json / Cargo.toml /
pyproject.toml / go.mod) — note language, package manager, and declared scripts..github/workflows/ (or CI config). CI encodes the REAL build/test/lint commands —
more reliably than the README, which drifts.Locate how the code actually starts: main/index/app files, the manifest's
scripts/bin entries, Dockerfile CMD, or the daemon/service definition. For a library,
locate the public surface (exports, lib.rs, __init__.py). You cannot place a change
correctly until you know what calls what from the top.
Find .env.example, config files, and feature flags. Note which behavior is config-driven —
a "bug" is often a config difference, and an edit is sometimes the wrong fix for what a config
change does properly.
Make one falsifiable prediction and check it:
/health returns {status: 'ok'}" → curl it.If the prediction fails, your model is wrong — loop back to Step 5 before editing. If you can't formulate any prediction, you haven't understood enough to edit.
Task: "Fix: CSV export drops the last row" in an unmapped Node repo.
package.json → pnpm, vitest, express; CI runs pnpm test && pnpm lint.src/server.ts mounts routes from src/routes/.pnpm test → 84 pass, 2 fail in billing.test.ts — recorded as PRE-EXISTING
before any edit.src/routes/export.ts → calls serializeRows in
src/lib/csv.ts. Read both files fully.serializeRows drops the final row when input lacks trailing newline
handling" → 3-line REPL check with a 2-row array → confirmed (returns 1 data line).csv.ts, add the regression test, re-run: 85 pass, same 2
pre-existing failures.You can state without hedging: where the change goes, what calls it and what it calls, the exact command that verifies it, and the recorded baseline test result — and every file you're about to edit has been read in full this session.
npx claudepluginhub unpaidattention/fable5-methodologyMaps unfamiliar repository structure, tech stack, entrypoints, commands, tests, risks, and safe next steps before making changes.
Maps unfamiliar codebases in phases: structure, entry points, data flow, patterns, landmines. Use before coding in new, inherited, or revisited projects.
Explores project structure, configurations, code patterns, conventions, tests, and dependencies before modifying existing code to understand context and avoid bugs.