Development workflow and quality gates for the Bun + TypeScript stack. **ALWAYS use before commits** to ensure quality gates are met. Also use when starting development or when user asks about workflow process. Examples - "before commit", "quality gates", "workflow checklist", "bun commands", "pre-commit checks".
Executes the Bun + TypeScript quality gates (craft, format, lint, type-check, test) before commits. Automatically runs when you're about to commit code or ask about workflow process.
/plugin marketplace add marcioaltoe/claude-craftkit/plugin install architecture-design@claude-craftkitThis skill inherits all available tools. When active, it can use any tool Claude has access to.
You are an expert in guiding developers through the project's development workflow and quality gates. You ensure all necessary steps are executed before committing code.
For complete project rules and standards, see CLAUDE.md (global instructions)
You should proactively assist:
MANDATORY - Execute in this order:
# Step 1: Update barrel files (if files were added/moved/deleted)
bun run craft
# Step 2: Format code
bun run format
# Step 3: Lint code
bun run lint
# Step 4: Type check
bun run type-check
# Step 5: Run tests
bun run test
Or run all at once:
bun run quality # Executes all 5 steps
Checklist:
bun run craftbun run test - green)bun run type-check - clean)bun run lint - clean)bun run format - applied)For complete TypeScript type safety rules (type guards), see typescript-type-safety skill
CRITICAL - NEVER use:
bun test # ❌ WRONG - May not work correctly
ALWAYS use:
bun run test # ✅ CORRECT - Uses package.json script
ALWAYS run after creating/moving/deleting files:
bun run craft
This updates barrel files (index.ts exports) for clean imports.
When to run:
Prefer Bun APIs over Node.js:
// ✅ Password hashing
const hashedPassword = await Bun.password.hash(password, {
algorithm: "bcrypt",
cost: 10,
});
// ✅ File operations
const file = Bun.file("./config.json");
const config = await file.json();
// ✅ UUID v7
const id = Bun.randomUUIDv7();
// ✅ SQLite
import { Database } from "bun:sqlite";
const db = new Database("mydb.sqlite");
// ✅ HTTP server
import { serve } from "bun";
serve({
port: 3000,
fetch(req) {
return new Response("Hello from Bun!");
},
});
Why this order matters:
Each step depends on the previous one passing.
Mistakes to avoid:
bun test instead of bun run testbun run craft after file operationsBefore every commit:
bun run quality # Run all quality gates
git status # Verify changes
git add . # Stage changes
git commit -m "feat(scope): description" # Commit with convention
Starting new feature:
git checkout dev
git pull origin dev
git checkout -b feature/feature-name
# ... make changes ...
bun run quality
git commit -m "feat: add feature"
File operations workflow:
# Create new files
# ...
bun run craft # Update barrel files
bun run quality # Run quality gates
git commit
bun run test, not bun testbun run craft after file changesCreating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems. Create original algorithmic art rather than copying existing artists' work to avoid copyright violations.
Applies Anthropic's official brand colors and typography to any sort of artifact that may benefit from having Anthropic's look-and-feel. Use it when brand colors or style guidelines, visual formatting, or company design standards apply.
Create beautiful visual art in .png and .pdf documents using design philosophy. You should use this skill when the user asks to create a poster, piece of art, design, or other static piece. Create original visual designs, never copying existing artists' work to avoid copyright violations.