build-fix — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited build-fix (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
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.
Build errors block everything. Fix them fast, fix them small, fix nothing else.
Core principle: Fix ONLY what is broken. A build fix is not an opportunity to refactor, add features, or improve architecture. Touch the minimum lines required to restore a passing build.
Violating the letter of this process is violating the spirit of build fixing.
MINIMAL DIFF, NO ARCHITECTURE CHANGES — FIX WHAT'S BROKEN, NOTHING MOREIf your diff touches lines unrelated to the error, you are not build-fixing. You are refactoring. Stop.
No exceptions:
Use for ANY build/compilation failure:
tsc --noEmit failures)Use this ESPECIALLY when:
Do NOT use when:
systematic-debuggingrefactoringbrainstorming + TDDerror-analysisFirst, classify the build error:
| Class | Symptoms | Typical Minimal Fix |
|---|---|---|
| TypeScript Error | TS2345, TS2339, TS7006, TS2532 | Add type annotation, null check, or correct type |
| Import Error | Cannot find module, has no exported member | Fix path, add missing export, correct import name |
| Dependency Error | Version mismatch, missing peer dep, lockfile conflict | Align version, install missing package |
| Config Error | tsconfig.json invalid, env var missing, wrong target | Fix config value, add missing variable |
| Syntax Error | Unexpected token, missing bracket | Fix syntax at reported location |
You MUST complete each phase before proceeding to the next.
BEFORE attempting ANY fix:
TS2345)Find the MINIMUM change needed:
git diff HEAD~1 # What changed?
git log --oneline -5 # Recent commitspackage.json versions.Apply the SMALLEST possible change:
// TypeScript: TS2345 - Type mismatch
// BAD: Rewrite the function with new types
// GOOD: Add the correct type annotation or assertion
const value = data as ExpectedType;
// TypeScript: TS2532 - Possibly undefined
// BAD: Refactor to eliminate the possibility
// GOOD: Add null check or optional chaining
const name = user?.name ?? 'default';
// Import: Cannot find module
// BAD: Restructure the module system
// GOOD: Fix the import path
import { Thing } from './correct/path';
// Dependency: Missing peer dependency
// BAD: Upgrade the entire dependency tree
// GOOD: Install the specific missing package
// $ yarn add missing-package@^required.versionConfirm the build passes:
# Run the same command that failed
yarn build # or npm run build
tsc --noEmit # TypeScript check yarn test # or npm test git diffIf you catch yourself thinking:
| Thought | Reality |
|---|---|
| "While I'm fixing this, I'll also..." | Build fix. Nothing else. |
| "This function should really be..." | File an issue. Fix the build. |
| "The types are all wrong, let me redesign..." | Fix the ONE type error. Not all types. |
| "I need to add a new abstraction..." | No new abstractions in a build fix. |
| "Let me upgrade this dependency to latest..." | Only change the version if it fixes the error. |
| "This code is messy, let me clean up..." | Messy code that compiles > clean code in a broken build. |
| "The architecture caused this, so I should..." | Architecture changes are not build fixes. |
ALL of these mean: STOP. You are no longer build-fixing.
| Excuse | Reality |
|---|---|
| "The refactor prevents future build errors" | Future prevention is a separate task. Fix now. |
| "It's just a small improvement" | Small improvements compound into large diffs. |
| "The code is already open in my editor" | Being convenient doesn't make it a build fix. |
| "No one will review a 1-line PR" | 1-line PRs are the BEST PRs. Ship it. |
| "I need to understand the whole module" | You need to understand the error. Not the module. |
| "The dependency is outdated anyway" | Outdated but compiling > updated and broken. |
Before committing, verify your changes pass the scope guard:
For EACH changed line, ask:
"Would the build fail without this specific change?"
YES → Keep it
NO → Revert itIf any changed line fails the scope guard, you have scope creep. Remove it.
| Phase | Key Activity | Success Criteria |
|---|---|---|
| 1. Read | Read full error, classify, count | Know WHAT is broken |
| 2. Identify | Check changes, trace source | Know WHERE and WHY |
| 3. Fix | Smallest possible change | Minimal diff applied |
| 4. Verify | Build passes, tests pass, diff is clean | Build green, no extras |
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.