From praxis
Enforces a mandatory comprehension protocol before modifying existing code: trace entry points, data flow, blast radius, and at-risk consumers.
How this skill is triggered — by the user, by Claude, or both
Slash command
/praxis:codebase-comprehensionThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
EXTREMELY_IMPORTANT: This is a MANDATORY protocol, not a suggestion. Follow every step.
EXTREMELY_IMPORTANT: This is a MANDATORY protocol, not a suggestion. Follow every step. Do not skip steps. Do not combine steps. Do not summarize. Work through each gate in order.
The expensive bugs are not in the line you change — they are in the caller three files away that depended on the behavior you just changed. This protocol forces you to map the blast radius before you touch anything.
Identify how execution reaches the code you intend to change: who calls it, from where, and under what conditions. If you cannot say how the code is reached, you cannot predict what your change affects.
Follow the actual values through the code you will touch: what comes in, what is read or mutated, what goes out, and in what units/shape/type. State it explicitly — do not assume the values are what the names suggest.
List everything that depends on the current behavior or shape: callers, subscribers, tests, serialized formats, anything downstream. This set IS the blast radius. "It's just a small change" is a claim about this list — so produce the list.
From the blast radius, state a concrete failure the change could cause OUTSIDE the code you are editing — a specific caller that passes values differently, a consumer relying on the old shape. "Nothing else is affected" is allowed only after STEP 3 produced an empty consumer set and you say so.
COMPREHENSION: [code to change]
├── Entry points: [how execution reaches it]
├── Data flow: [in → transform → out, with shapes/units]
├── Blast radius: [every consumer of current behavior/shape]
├── At-risk elsewhere: [≥1 concrete off-site failure the change could cause]
└── Confidence: [HIGH / MEDIUM / LOW]
Confidence: HIGH — full call graph and data flow traced, blast radius complete. MEDIUM — main paths traced, some dynamic/indirect callers unverified. LOW — the code is reached by paths you cannot fully see; widen the trace before editing.
Do NOT propose an edit until: - The entry points reaching the change site are named - The data flow through the change site is traced with shapes/units, not assumed - Every consumer of the current behavior/shape is listed (the blast radius) - At least one concrete off-site risk is named — or the consumer set is verified emptyProposing an edit to unfamiliar code with no blast-radius trace is a protocol violation, even if the change "obviously just does one thing".
Red flags that this skill catches:
Once the blast radius is mapped, make the edit, then verify each at-risk consumer. If the
trace reveals a failing behavior, hand off to diagnostic-reasoning; if it reveals a
structural problem, to architecture-reasoning.
npx claudepluginhub xd4o/praxis --plugin praxisAnalyzes blast radius and dependency impact of code changes. Maps references, dependent files, test coverage, and provides structured risk assessment for safe refactoring.
Use when implementing any substantial feature, multi-file modification, or architectural change - produces a plain-language walkthrough of every alteration so the developer can verify genuine understanding before committing, preventing the accumulation of cognitive debt where code ships faster than comprehension
Analyzes code change impact and blast radius using OntoIndex. Answers what will break before editing, with dependency depth and risk assessment.