home / skills / phrazzld / claude-config / bun

bun skill

/skills/bun

This skill orchestrates Bun adoption by auditing, planning migration scope, executing fixes, and verifying success across the full lifecycle.

npx playbooks add skill phrazzld/claude-config --skill bun

Review the files below or copy the command above to add this skill to your agents.

Files (1)
SKILL.md
4.8 KB
---
name: bun
description: |
  Complete Bun lifecycle management. Audits current state, plans migration,
  executes changes, verifies success. Full orchestrator for Bun adoption.
  Invoke for: migrate to bun, adopt bun, bun migration, switch to bun.
effort: high
---

# /bun

Complete Bun lifecycle management. Audit → Plan → Execute → Verify.

## What This Does

1. Run comprehensive Bun compatibility audit
2. Determine migration scope (full, hybrid, or skip)
3. Execute migration steps via `/fix-bun` iterations
4. Verify complete migration
5. Benchmark performance improvement
6. Update documentation

## Process

### 1. Assess Current State

Run `/check-bun` to get full audit:

```
/check-bun
```

Review the output for:
- **P0 Blockers**: If any exist, recommend SKIP or HYBRID
- **P1 Essential**: Must fix before migration
- **Migration complexity**: LOW, MEDIUM, or HIGH
- **Recommendation**: PROCEED, HYBRID, or SKIP

### 2. Determine Migration Scope

**PROCEED (Full Migration)**
- No blockers
- Platform supports Bun
- Team ready for Bun

**HYBRID (Partial Migration)**
- Platform limitations (Expo, Vercel serverless)
- Keep pnpm for production apps
- Use Bun for internal tools/scripts

**SKIP (Not Recommended)**
- Critical blockers exist
- Platform doesn't support Bun
- Migration cost exceeds benefit

### 3. Interview (If Needed)

Use `AskUserQuestion` to clarify:
- Migration scope preference (full vs hybrid)
- Timeline constraints
- Specific concerns about Bun

### 4. Create Migration Branch

```bash
git checkout -b chore/bun-migration
```

### 5. Execute Migration

**For PROCEED scope:**

```
# Fix issues in priority order
/fix-bun  # P1: Lockfile cleanup
/fix-bun  # P1: CI migration
/fix-bun  # P1: Workspace migration
/fix-bun  # P2: Script updates
/fix-bun  # P2: Test runner
```

**For HYBRID scope:**

Keep pnpm for apps, set up Bun for tools:
```bash
# Main monorepo stays pnpm
# Add Bun for specific directories
mkdir -p tools/scripts
cd tools/scripts && bun init
```

### 6. Verification Checklist

After migration, verify everything works:

```bash
# 1. Clean install
rm -rf node_modules
bun install

# 2. Type checking
bun run typecheck  # or tsc --noEmit

# 3. Linting
bun run lint

# 4. Tests pass
bun test

# 5. Build succeeds
bun run build

# 6. Dev server works
bun run dev &
sleep 10
curl -f http://localhost:3000 > /dev/null && echo "✓ Dev server works"
kill %1
```

### 7. Performance Benchmark

Compare against pnpm baseline:

```bash
# Baseline (before migration, on main branch)
git stash
time pnpm install --force 2>&1 | tail -1
time pnpm run build 2>&1 | tail -1
time pnpm test 2>&1 | tail -1
git stash pop

# Bun (on migration branch)
time bun install --force 2>&1 | tail -1
time bun run build 2>&1 | tail -1
time bun test 2>&1 | tail -1
```

### 8. Update Documentation

**Update README.md:**
```markdown
## Development

This project uses [Bun](https://bun.sh) for package management and script execution.

### Prerequisites
- Bun 1.1.0+ (install: `curl -fsSL https://bun.sh/install | bash`)

### Setup
\`\`\`bash
bun install
bun run dev
\`\`\`
```

**Update CONTRIBUTING.md (if exists):**
```markdown
## Package Manager
This project uses Bun. Do not commit pnpm-lock.yaml or package-lock.json.

\`\`\`bash
bun install --frozen-lockfile
bun test
\`\`\`
```

### 9. Commit and PR

```bash
git add -A
git commit -m "chore: migrate to Bun package manager

- Replace pnpm with Bun for package management
- Update CI to use oven-sh/setup-bun
- Migrate workspace configuration to package.json
- Update documentation

Performance improvement:
- Install: Xms → Yms (Z% faster)
- Build: Xms → Yms (Z% faster)
- Test: Xms → Yms (Z% faster)

Co-Authored-By: Claude <[email protected]>"
```

## Output Report

```markdown
## Bun Migration Complete

### Scope
[FULL/HYBRID]

### Changes Made
- ✓ Removed pnpm-lock.yaml, added bun.lock
- ✓ Updated CI to use oven-sh/setup-bun
- ✓ Migrated workspace config to package.json
- ✓ Updated scripts to use bun run
- ✓ Updated documentation

### Performance Results
| Operation | Before (pnpm) | After (Bun) | Improvement |
|-----------|---------------|-------------|-------------|
| Install   | Xms           | Yms         | Z% faster   |
| Build     | Xms           | Yms         | Z% faster   |
| Test      | Xms           | Yms         | Z% faster   |

### Verification
- ✓ Clean install succeeds
- ✓ Type checking passes
- ✓ Linting passes
- ✓ All tests pass
- ✓ Build succeeds
- ✓ Dev server works

### Next Steps
1. Review and merge PR
2. Update any external CI/CD configs
3. Notify team of tooling change
```

## Rollback Procedure

If migration fails:

```bash
# Revert to pnpm
git checkout main
rm -rf node_modules bun.lock bun.lockb
pnpm install
```

## Related

- `/check-bun` - Audit for Bun compatibility
- `/fix-bun` - Fix one Bun issue at a time
- `/bun-best-practices` - When to use Bun (reference)

Overview

This skill provides complete Bun lifecycle management: audit, plan, execute, and verify a migration to Bun. It orchestrates compatibility checks, scoped migration decisions (full, hybrid, skip), stepwise fixes, verification, benchmarking, and documentation updates. Use it to reliably adopt Bun across monorepos, apps, or tooling.

How this skill works

The skill runs a comprehensive compatibility audit to surface P0 blockers and P1 essentials, then recommends a migration scope: PROCEED, HYBRID, or SKIP. For approved scopes it creates a migration branch, applies prioritized fixes iteratively, and runs a verification checklist. Finally, it benchmarks Bun against pnpm and updates developer docs and CI configuration.

When to use it

  • You want to migrate a repository from pnpm/npm to Bun for package management and scripts.
  • You need a reproducible audit to decide full vs hybrid migration in a monorepo or platform-limited environment.
  • You require an automated, prioritized fix plan to remove blockers and migrate CI and workspaces.
  • You want to verify functionality, run benchmarks, and produce a clear migration report for review.
  • You need a safe rollback plan if Bun causes regressions or breaks CI/platform constraints.

Best practices

  • Run /check-bun first to identify P0 blockers and P1 essentials before any changes.
  • Prefer HYBRID when platform or hosting (e.g., Expo, Vercel serverless) limits Bun adoption.
  • Migrate on a feature branch (chore/bun-migration) and commit small, reviewable changes.
  • Update CI to oven-sh/setup-bun and remove pnpm lockfiles only after verification passes.
  • Benchmark install, build, and test times against a pnpm baseline to quantify benefits.

Example use cases

  • Full migration of a backend monorepo to Bun when no blockers are present and the platform supports it.
  • Hybrid setup: keep pnpm for production apps but adopt Bun for internal scripts and developer tools.
  • CI migration: update workflows to use oven-sh/setup-bun and validate tests/builds on Bun.
  • Performance validation: compare install/build/test durations before and after migrating to Bun.
  • Rollback scenario: revert to pnpm with a documented rollback procedure if issues appear post-merge.

FAQ

What if the audit finds P0 blockers?

If P0 blockers exist, the skill recommends SKIP or HYBRID; do not proceed with a full migration until blockers are resolved.

How do I measure improvement after migration?

Run time measurements for install, build, and test on the main branch (pnpm) and on the migration branch (Bun) and report before/after timings and percent improvement.