refactor-break-bw-compat — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited refactor-break-bw-compat (Agent Skill) and scored it 96/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 1 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 1 flagged
The text {match} tells the agent to skip the normal "ask the user first" gate. Used adversarially it removes the human-in-the-loop check before destructive or sensitive actions, turning a normally-gated agent into a fire-and-forget executor.
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Backward compatibility is the tax the present pays to the past. This skill stops paying. Every compat shim, every legacy adapter, every "v1 still supported" branch is debt that compounds against the reader. Tear it all out. Break everything. Rebuild the system as if the old shape never existed.
There is no migration plan. There is no deprecation window. There is the old shape, and there is the right shape, and the only acceptable end state is the right shape with zero residue of the old.
if legacy: — collapse to the winning branch and erase the fork entirely. Version control is the only museum.Hunt these down with ast-grep / rg and rip out every hit:
@deprecated / #[deprecated] / warnings.warn — kill the marker and the thing it marks.if version >= X, #[cfg(feature = "legacy")], capability checks) — collapse to the new branch.oneof fallbacks) — keep one format, drop the reader/writer for the rest.ast-grep / rg. This is the demolition manifest, not a veto list.| Gate | Condition |
|---|---|
| Blast radius mapped | Every caller of the old shape enumerated as a demolition manifest |
| Old path deleted | Compat layers, adapters, flags, and legacy branches removed — not disabled |
| All callers migrated | Every reference now targets the new contract; project compiles/typechecks |
| Tests on new contract | Legacy-behavior tests rewritten or deleted; new behavior covered |
| Zero residue | ast-grep / rg for old API names, flags, formats, and import paths returns zero hits |
| No dead weight | No unused imports, packages, types, or files left by the old path |
| Code | Meaning |
|---|---|
| 0 | Clean demolition — old shape erased, every caller on the new contract, tests green on new behavior, zero residue |
| 1 | Residue remains — old references survive in code, tests, docs, or config |
| 2 | Build/tests broken — migration incomplete, callers or assertions not yet on the new shape |
| 3 | Migration stalled mid-flight — codebase is half old, half new (the forbidden state); finish or revert, never ship |
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.