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".
View on GitHubmarcioaltoe/claude-craftkit
architecture-design
January 21, 2026
Select agents to install to:
npx add-skill https://github.com/marcioaltoe/claude-craftkit/blob/main/plugins/architecture-design/skills/project-workflow/SKILL.md -a claude-code --skill project-workflowInstallation paths:
.claude/skills/project-workflow/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)**
## When to Engage
You should proactively assist:
- **Before committing code** (most important)
- When user asks about workflow or process
- When setting up quality gates
- When troubleshooting Bun-specific issues
## Pre-Commit Checklist
**MANDATORY - Execute in this order:**
```bash
# 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:**
```bash
bun run quality # Executes all 5 steps
```
**Checklist:**
- [ ] Files added/moved/deleted? Run `bun run craft`
- [ ] All tests passing? (`bun run test` - green)
- [ ] No TypeScript errors? (`bun run type-check` - clean)
- [ ] No linting errors? (`bun run lint` - clean)
- [ ] Code formatted? (`bun run format` - applied)
- [ ] Committed to feature branch? (not main/dev)
- [ ] Commit message follows conventions?
**For complete TypeScript type safety rules (type guards), see `typescript-type-safety` skill**
## Bun-Specific Commands
### Testing Commands
**CRITICAL - NEVER use:**
```bash
bun test # ❌ WRONG - May not work correctly
```
**ALWAYS use:**
```bash
bun run test # ✅ CORRECT - Uses package.json script
```
### Barrel Files
**ALWAYS run after creating/moving/deleting files:**
```bash
bun run craft
```
This updates barrel files (index.ts exports) for clean imports.
**When to run:**
- After creating new files
- After moving/renaming files
- After deleting files
- Before committing changes
## Bun Runtime APIs
**Prefer Bun APIs over Node.js:**
```typescript
// ✅ Password hashing
const hashedPassword = await Bun.password.hash(password, {
algorithm: "bcrypt