architectural-decision…
Use when encountering questions about WHY code is built a certain way, when about to make architectural changes (new patterns, restructuring, choosing between…
Use when reviewing a set of changes before they merge — a PR, a branch diff, or the working-tree changes you just made — in a Repowise-indexed codebase (.repowise/ directory exists). Activates for "review this PR", "is this safe to merge", "what's the blast radius of these
$ npx -y skills add repowise-dev/repowise --skill change-review --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/change-reviewContext preview
The summary Claude sees to decide when to auto-load this skill.
Use when reviewing a set of changes before they merge — a PR, a branch diff, or the working-tree changes you just made — in a Repowise-indexed codebase (.repowise/ directory exists). Activates for "review this PR", "is this safe to merge", "what's the blast radius of these
name: change-review description: > Use when reviewing a set of changes before they merge — a PR, a branch diff, or the working-tree changes you just made — in a Repowise-indexed codebase (.repowise/ directory exists). Activates for "review this PR", "is this safe to merge", "what's the blast radius of these changes", "did I miss anything", or "what else should change with this". user-invocable: false
When a diff is on the table, Repowise turns "what files changed" into "what does this change put at risk" — fusing git history (churn, ownership, co-change) with graph topology (dependents, impact surface), test gaps, security signals, and the architectural decisions that govern the touched code.
Two complementary risk signals, use both:
commit or a `base..head` range) from its diff shape: a single 0-10 defect-risk score with drivers (lines added/deleted, files, directories, subsystems, change entropy, author familiarity). No LLM, no network. Prefer this in-MCP tool; it takes a revspec and diffs server-side, so you never shell out. Lead with `directive` and `health_delta` — what the change actually made worse. Then `risk_percentile` (this change ranked against sampled recent commits), summarized by `review_priority` and `classification`. `score` is calibrated per single commit, so a PR-sized change reads high by construction, and `fallback_band` appears only when there was no baseline to rank against. Omit `revspec` to score uncommitted work. This is the pre-merge gate: "how risky is this change overall?" The `repowise risk <revspec>` CLI is the identical scorer for when you are already in a terminal.
`directive` block, the specific things to check inside the diff.
get_change_risk(revspec="main..HEAD") # HEAD, a commit SHA, or base..head
Read `directive` first: `status`, a `headline` naming what got worse, the `reasons` behind it and `next_actions` to run. `health_delta` carries the findings the change introduced or resolved. Then `risk_percentile` and the top drivers: a high score from large diffusion (many dirs/subsystems) or low author familiarity tells you where to look hardest. `extensions=[".py", ".ts"]` counts only certain file types; `exclude_patterns=["tests/"]` omits paths. A `warning` field, or a `directive.status` of `unknown`, means the revspec or filters matched no files, so an all-zero score there is not a clean bill of health. The equivalent from a terminal is `repowise risk <revspec>` (add `--ext .py,.ts` or `--format json`).
Call `get_risk` in **PR mode** by passing the changed files:
get_risk(targets=<changed files>, changed_files=<same changed files>)
The response carries its own `directive` block, per file rather than per change (distinct from `get_change_risk`'s) — read it first, it's a few short lists:
*not* in the diff. Reachability, not a diff: it says these depend on the changed files, not that the thing they use changed. Check each one.
changed files but were left untouched. Often a forgotten update.
exercise the changed files. Recommend running these to validate the change. Read **`tests_to_run_basis`** with it: `measured` means a coverage map proves those tests execute the changed files (pytest-runnable ids); `inferred` means the call graph shows those test *files* reaching the change, with the import graph filling in where it is silent, which needs no coverage ingest but is a candidate list, so say so rather than presenting it as proof; `none` with an empty list is "unknown", never "no tests exist".
`pr_blast_radius` holds the fuller dossier behind those lists (including the per-changed-file `guarding_tests` breakdown behind `tests_to_run`).
For the line-precise version from a terminal, `repowise impacted-tests <revspec>` maps each changed line to the tests whose recorded coverage touches it, then prints the ids (`--format list | xargs pytest` runs exactly them). It is honest about gaps: a changed file with no coverage rows is a labelled filename guess, and a brand-new file is "unknown, run the full suite", never "no tests needed".
1. **Why does this code exist?** For any non-trivial changed file, call `get_why(query="<file>")` — don't let a change silently contradict a recorded architectural decision. Surface `conflicts_with` / `supersedes` hits. 2. **Did the change make health worse?** `get_health(targets=<changed files>, include=["biomarkers"])` — call out new complexity, deep nesting, or duplication the diff introduced. 3. **Who should review?** `get_risk` ownership + co-change signals suggest the people with the most context on the touched code.
for defect risk directly.
Lead with a risk level and the `directive` findings, each tied to a concrete file. Distinguish **"may break"** (a dependent outside the diff) from **"worth a look"** (a co-change or health regression). Don't pad with findings the tools didn't support.
If `get_risk` errors or returns nothing, the MCP server may be down or the repo unindexed — say so and revie
Codebase intelligence for AI and humans: code health scores, auto-generated docs, git analytics, dead code detection, and architectural decisions via MCP.
Repo: repowise-dev/repowise
Use when encountering questions about WHY code is built a certain way, when about to make architectural changes (new patterns, restructuring, choosing between…
Use when the user asks about code health, code quality, complexity, technical debt, which files are risky or hard to maintain, what to refactor next, untested…
Use when exploring, understanding, or answering questions about a codebase that has Repowise indexed (a .repowise/ directory in the project root). Activates…
Use when the user asks about cleanup, removing unused code, refactoring, reducing bundle size, or identifying dead code in a Repowise-indexed codebase…
Use before modifying, refactoring, or deleting files in a codebase that has Repowise indexed (indicated by a .repowise/ directory). Activates when Claude is…
Use before modifying, refactoring, moving, or deleting files in a Repowise-indexed repository, especially shared utilities, core modules, public APIs, or files…