Skip to content
Back to skills

Build Fix

ASecurity

Expert skill for resolving build errors with minimal change principle. Use for build failures, type errors, compile errors. Keywords: build, fix, error, compile, typescript, type, resolve.

  • 14 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added June 6, 2026
ai-agentstypescriptgobashreactrefactoringapici/cdsecurityperformance

Works with

  • api

Security analysis

A100/100

Scanned June 6, 2026

npx -y skills add excatt/superclaude-plusplus --skill build-fix --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Build Fix?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Build Fix
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/excatt-build-fix/badge)](https://www.skillsdirectory.com/skills/excatt-build-fix)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: build-fix
description: Expert skill for resolving build errors with minimal change principle. Use for build failures, type errors, compile errors. Keywords: build, fix, error, compile, typescript, type, resolve.
---

## Dynamic Context

Last build output:
!`cat .claude/state/last-build-error.log 2>/dev/null | tail -20 || echo "No cached build error"`

# Build Fix Skill

## Purpose
Resolve build/compile errors with **minimal changes**. Target only build passing - no architecture changes, refactoring, or feature additions.

**Core Principle**: Minimal change → Build passes → Done. Nothing more.

## Activation Triggers
- Build failure (`npm run build` fails)
- TypeScript compilation error (`tsc --noEmit` fails)
- Multiple type errors occurring
- CI/CD pipeline build failure
- User explicit request: `/build-fix`, `fix build`, `compile error`

---

## Scope Definition

### ✅ DO Fix (Targets for fixing)
| Category | Examples |
|----------|----------|
| **Type annotations** | Missing types, incorrect types |
| **Null/Undefined handling** | Optional chaining, nullish coalescing |
| **Import/Export** | Missing imports, incorrect paths |
| **Type definitions** | Add/modify interface, type |
| **Dependency issues** | Missing packages, version conflicts |
| **Config files** | tsconfig, eslint configuration errors |

### ❌ DON'T Change (Don't touch)
| Category | Reason |
|----------|--------|
| **Unrelated code** | Out of scope |
| **Architecture** | Requires separate work |
| **Variable/function names** | Refactoring area |
| **Logic flow** | Risk of functionality change |
| **Performance optimization** | Separate optimization work |
| **Test code** | Test fixes are separate |

---

## Workflow

### Step 1: Collect Errors
```bash
# TypeScript
npx tsc --noEmit 2>&1 | head -100

# Build
npm run build 2>&1

# ESLint (errors only)
npx eslint src/ --quiet
```

### Step 2: Classify Errors
```
/build-fix

🔍 Analyzing errors...
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

📊 Error Summary
┌──────────────────────┬───────┐
│ Category             │ Count │
├──────────────────────┼───────┤
│ Type Inference       │ 5     │
│ Missing Types        │ 3     │
│ Import Errors        │ 2     │
│ Null/Undefined       │ 4     │
│ Config Issues        │ 1     │
└──────────────────────┴───────┘
Total: 15 errors

🎯 Resolution Order:
1. Config Issues (blocks others)
2. Import Errors (dependency chain)
3. Missing Types (foundation)
4. Type Inference (detail)
5. Null/Undefined (safety)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
```

### Step 3: Apply Minimal Fixes
```
🔧 Fixing errors...
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

[1/15] src/api/user.ts:45
  Error: Property 'id' does not exist on type '{}'
  Fix: Add type annotation

  - const user = {}
  + const user: User = {} as User

[2/15] src/utils/format.ts:12
  Error: Parameter 'date' implicitly has 'any' type
  Fix: Add parameter type

  - function formatDate(date) {
  + function formatDate(date: Date): string {

... (continued)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
```

### Step 4: Verify
```
✅ Verification
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Build:     ✅ PASS
TypeCheck: ✅ PASS (0 errors)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

📋 Changes Summary:
- Files modified: 8
- Lines changed: +23, -15
- No architectural changes
- No logic changes

🎯 Build fixed with minimal changes!
```

---

## Common Error Patterns

### 1. Type Inference Failures
```typescript
// ❌ Error: Type 'string' is not assignable to type 'number'
const count = "5";  // inferred as string

// ✅ Fix: Explicit type or conversion
const count: number = 5;
// or
const count = Number("5");
```

### 2. Null/Undefined Handling
```typescript
// ❌ Error: Object is possibly 'undefined'
const name = user.profile.name;

// ✅ Fix: Optional chaining
const name = user?.profile?.name;

// ✅ Fix: Nullish coalescing
const name = user?.profile?.name ?? "Unknown";
```

### 3. Missing Properties
```typescript
// ❌ Error: Property 'email' is missing
const user: User = { name: "John" };

// ✅ Fix: Add missing property
const user: User = { name: "John", email: "" };

// ✅ Fix: Make optional in type
interface User {
  name: string;
  email?: string;  // optional
}
```

### 4. Import Errors
```typescript
// ❌ Error: Module not found
import { utils } from "./util";

// ✅ Fix: Correct path
import { utils } from "./utils";

// ✅ Fix: Add missing export
// In utils.ts: export { utils };
```

### 5. Generic Constraints
```typescript
// ❌ Error: Type 'T' is not assignable to constraint
function process<T>(item: T) {
  return item.id;  // Error: Property 'id' doesn't exist
}

// ✅ Fix: Add constraint
function process<T extends { id: string }>(item: T) {
  return item.id;
}
```

### 6. React Hook Violations
```typescript
// ❌ Error: React Hook is called conditionally
if (condition) {
  const [state, setState] = useState();
}

// ✅ Fix: Move hook outside condition
const [state, setState] = useState();
if (condition) {
  // use state here
}
```

### 7. Async/Await Issues
```typescript
// ❌ Error: 'await' only allowed in async function
function fetchData() {
  const data = await api.get();
}

// ✅ Fix: Add async
async function fetchData() {
  const data = await api.get();
}
```

### 8. Module Resolution
```typescript
// ❌ Error: Cannot find module '@/components'

// ✅ Fix: Check tsconfig.json paths
{
  "compilerOptions": {
    "paths": {
      "@/*": ["./src/*"]
    }
  }
}
```

---

## Fix Strategies

### Strategy 1: Type Assertion (Quick but risky)
```typescript
// Quick fix - use sparingly
const data = response as UserData;
```

### Strategy 2: Type Guard (Safe)
```typescript
// Safer approach
function isUser(obj: unknown): obj is User {
  return obj !== null && typeof obj === 'object' && 'id' in obj;
}
```

### Strategy 3: Type Narrowing (Recommended)
```typescript
// Best practice
if (user && user.profile) {
  // TypeScript knows user.profile exists here
}
```

---

## When NOT to Use

| Situation | Use Instead |
|-----------|-------------|
| Test failures | `/verify` → Fix tests |
| Performance issues | `/perf-optimize` |
| Security vulnerabilities | `/security-audit` |
| Refactoring needed | `/refactoring` |
| Architecture change | `/architecture` |
| Add new feature | `/feature-planner` |

---

## Integration

### With `/verify`
```
/build-fix → Build passes
/verify quick → Confirm Build + Type
/verify full → Full quality verification
```

### With `/checkpoint`
```
/checkpoint create "before-build-fix"
/build-fix
/verify quick
# If issues: /checkpoint restore "before-build-fix"
```

### CI/CD Integration
```yaml
# Auto-fix attempt on build failure
- name: Build
  run: npm run build
  continue-on-error: true

- name: Auto Fix
  if: failure()
  run: claude build-fix --auto
```

---

## Commands

| Command | Description |
|---------|-------------|
| `/build-fix` | Analyze and fix build errors |
| `/build-fix --dry-run` | Preview fixes (don't apply) |
| `/build-fix --auto` | Auto-fix (no confirmation) |
| `/build-fix <file>` | Fix specific file only |

---

## Output Format

### Success
```
╔══════════════════════════════════════════════════════╗
║              🔧 BUILD FIX COMPLETE                   ║
╠══════════════════════════════════════════════════════╣
║ Errors Fixed: 15/15                                  ║
║ Files Modified: 8                                    ║
║ Lines Changed: +23, -15                              ║
║                                                      ║
║ Build Status: ✅ PASSING                             ║
║ Type Check: ✅ PASSING                               ║
║                                                      ║
║ ⚠️  Reminder: Run /verify for full quality check    ║
╚══════════════════════════════════════════════════════╝
```

### Partial Success
```
╔══════════════════════════════════════════════════════╗
║              🔧 BUILD FIX PARTIAL                    ║
╠══════════════════════════════════════════════════════╣
║ Errors Fixed: 12/15                                  ║
║ Remaining: 3                                         ║
║                                                      ║
║ ⚠️  Manual intervention needed:                     ║
║ 1. src/complex/module.ts:89 - Circular dependency   ║
║ 2. src/legacy/old.ts:45 - Deprecated API usage      ║
║ 3. src/types/index.ts:12 - Conflicting declarations ║
║                                                      ║
║ 💡 Suggestions:                                      ║
║ - Consider refactoring circular dependency          ║
║ - Update deprecated API calls                       ║
╚══════════════════════════════════════════════════════╝
```

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.