Skip to content
Development
Skill

/pre-modification

Use before modifying, refactoring, or deleting files in a codebase that has Repowise indexed (indicated by a .repowise/ directory). Activates when Claude is about to edit code, especially shared utilities, core modules, or files the user didn't explicitly mention. Helps assess

From plugin
repowise
5.1k12 skills12 commands1 MCP
Install
$ npx -y skills add repowise-dev/repowise --skill pre-modification --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/pre-modification

Context preview

The summary Claude sees to decide when to auto-load this skill.

Use before modifying, refactoring, or deleting files in a codebase that has Repowise indexed (indicated by a .repowise/ directory). Activates when Claude is about to edit code, especially shared utilities, core modules, or files the user didn't explicitly mention. Helps assess

SKILL.md

pre-modification.SKILL.md
name: pre-modification-check
description: >
  Use before modifying, refactoring, or deleting files in a codebase that has Repowise indexed
  (indicated by a .repowise/ directory). Activates when Claude is about to edit code, especially
  shared utilities, core modules, or files the user didn't explicitly mention. Helps assess
  impact and avoid breaking things.
user-invocable: false

Pre-Modification Check with Repowise

Before modifying files in a Repowise-indexed codebase, assess the impact.

Before editing a file

Call `get_risk(targets=["path/to/file.py"])`. Per file it returns `hotspot_score`, `trend`, `risk_type`, `impact_surface` (top 3), `dependents_count`, `co_change_partners`, `primary_owner`, `bus_factor`, `test_gap`, and `security_signals`. Read it for:

  • **Bug-fix history** (`defect_profile`) — present only on files with counted

fixes: `fix_count` over the trailing 6 months, `last_fix_days_ago`, a `bug_magnet` flag for sustained recent fix pressure, and `top_symbols` (the per-symbol counts are approximate — read them as "mostly here"). A file that keeps getting fixed is the strongest single signal that the next edit breaks something; lead with it.

  • **Hotspot status** (`hotspot_score`, `trend`) — high-churn × complex? Extra care needed.
  • **Dependents** (`dependents_count`, `impact_surface`) — how wide is the blast radius?
  • **Co-change partners** — files that change together with this one (often without an import link); you may need to update them too.
  • **Ownership / bus factor** — who owns it, and whether a single author maintains it.
  • **Test gap & security signals** — flag untested or security-sensitive files before touching them.

When modifying multiple files

Batch all targets into one call: `get_risk(targets=["file1.py", "file2.py", "module/"])`.

When to warn the user

If `get_risk` shows:

  • A `defect_profile` with `bug_magnet` set — say so plainly: this file has been fixed repeatedly and recently
  • Hotspot score above 90th percentile — mention this is a frequently-changed, high-risk file
  • More than 10 dependents — list the top dependents; API changes here will break consumers
  • Bus factor of 1 — note that a single person maintains this code
  • Risk type is "bug-prone" or "high-coupling" — flag explicitly before making changes

Before refactoring or moving code

Call `get_context(targets=["file.py"])` first to understand the full context: what uses this file, what decisions govern it, and why it's structured this way. This prevents accidentally violating architectural decisions.

For a heavy refactor, also call `get_health(targets=["file.py"])` — the marker findings (complexity, deep nesting, low cohesion, duplication) tell you *what* to improve while you're in there, and give you a before/after score.

Error handling

If `get_risk` returns a tool error, the MCP server may not be running. Proceed with the modification but note that risk assessment was unavailable.

Read more
Ships withrepowise

Codebase intelligence for AI and humans: code health scores, auto-generated docs, git analytics, dead code detection, and architectural decisions via MCP.

Get the whole plugin

Other skills on repowise.