Work with Obsidian vaults (plain Markdown notes) and automate via obsidian-cli.
npx skills add michaelboeding/skills --skill "parallel-builder"
Install specific skill from multi-skill repository
# Description
Divide-and-conquer implementation from specs/plans. Decomposes a reference document into independent tasks, assigns each to a builder agent, executes in parallel waves respecting dependencies, then integrates results. Use when you have a spec, PRD, plan, or large feature to implement quickly with parallel execution.
# SKILL.md
name: parallel-builder
description: Divide-and-conquer implementation from specs/plans. Decomposes a reference document into independent tasks, assigns each to a builder agent, executes in parallel waves respecting dependencies, then integrates results. Use when you have a spec, PRD, plan, or large feature to implement quickly with parallel execution.
Parallel Builder: Divide-and-Conquer Implementation
Decomposes a plan/spec into independent tasks, spawns builder agents to implement each piece in parallel, and integrates the results. Unlike feature-council (same task, diverse approaches), this skill gives each agent a different piece of the work for maximum speed.
Use this when you have a spec, PRD, or plan and want fast parallel implementation.
When to Use
β
Use parallel-builder for:
- Implementing a PRD or spec document
- Large features that can be decomposed into parts
- When speed matters more than approach diversity
- Building from a reference file or detailed plan
- Multi-file implementations with clear boundaries
β Don't use for:
- Bugs (use debug-council)
- Features where you want diverse approaches (use feature-council)
- Tasks that can't be parallelized
- Simple single-file changes
Where Parallel-Builder Shines
π Maximum Speedup: Multi-File Specs
Parallel-builder is fastest when your spec produces multiple independent files:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β IDEAL: Each agent owns different files β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β Wave 2: TRUE PARALLEL EXECUTION β
β βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ
β β Agent 1 β β Agent 2 β β Agent 3 ββ
β β userService.ts β β authService.ts β β apiClient.ts ββ
β βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ
β β β β β
β [PARALLEL - All 3 run simultaneously] β
β β
β Speedup: ~3Γ faster than sequential β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Great use cases:
- Full-stack features (types + services + routes + UI components)
- Microservice implementations (multiple independent services)
- CRUD APIs (each resource in its own files)
- Plugin/module systems (each module independent)
- Test suites (test files for different modules)
β οΈ Falls Back to Sequential: Single-File Specs
When multiple tasks modify the same file, parallel execution would cause conflicts. The skill automatically falls back to sequential:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β LIMITED: All agents modify same file β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β Wave 3: SEQUENTIAL (conflict avoidance) β
β βββββββββββββββββββ β
β β Agent 1 β β modifies BG600L.cpp β
β ββββββββββ¬βββββββββ β
β β β
β βββββββββββββββββββ β
β β Agent 2 β β modifies BG600L.cpp β
β ββββββββββ¬βββββββββ β
β β β
β βββββββββββββββββββ β
β β Agent 3 β β modifies BG600L.cpp β
β βββββββββββββββββββ β
β β
β No speedup, but still provides organized task breakdown β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Still useful for:
- Organized task breakdown and tracking
- Clear separation of concerns
- Systematic implementation of complex single-file changes
Speedup Estimate
| Spec Type | Parallel Potential | Expected Speedup |
|---|---|---|
| Multi-file, independent modules | High | 50-80% faster |
| Multi-file, some shared | Medium | 30-50% faster |
| Few files, many functions | Low | 10-20% faster |
| Single file, many changes | Minimal | ~0% (sequential) |
The skill will show you the estimated speedup in the execution plan before you confirm.
Step 0: Accept Plan Input
First, get the plan from the user. Accept one of:
- File path: User provides path to a spec, PRD, or plan file
- Inline description: User describes what to build
- Reference file: User points to existing code to replicate/extend
What would you like me to build? You can provide:
- A file path to a spec/PRD/plan
- A description of the feature
- A reference file to work from
I'll decompose it into parallel tasks for fast implementation.
Step 1: Analyze & Decompose
Read the plan and identify work units. For each unit, determine:
- Independence: Can it be built without waiting for others?
- Dependencies: What must exist before this can be built?
- Outputs: What files/interfaces does this create?
- Complexity: Rough estimate (small/medium/large)
Decomposition Rules
| Rule | Description |
|---|---|
| File boundaries | One agent per file or closely related file group |
| Feature boundaries | One agent per distinct feature/capability |
| Layer boundaries | Separate by layer (types, services, API, UI) |
| Minimize coupling | Tasks should have minimal interface dependencies |
Create Dependency Graph
Identify three categories:
WAVE 1 (Foundation - No Dependencies):
- Shared types/interfaces
- Configuration
- Constants
- Base utilities
WAVE 2 (Core - Depends on Wave 1):
- Services
- Business logic
- Data access
- Core components
WAVE 3+ (Integration - Depends on Previous):
- API routes that use services
- UI that uses components
- Integration code
- Tests
Step 2: Define Shared Contracts
CRITICAL: Before spawning agents, define the contracts they share.
Create a shared context that ALL agents receive:
## Shared Contracts
### Interfaces
[Define all shared types/interfaces that multiple agents need]
### File Ownership
[Map which agent owns which files - no overlaps]
### Naming Conventions
[Consistent naming across all agents' work]
### Import Paths
[How agents should import from each other's domains]
This prevents conflicts and ensures pieces fit together.
Step 3: Present Execution Plan to User
Show the decomposition and get confirmation:
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
PARALLEL BUILD PLAN
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
π Source: [file path or "inline description"]
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
TASK BREAKDOWN
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
## Wave 1: Foundation (3 agents in parallel)
| Task | Agent | Files | Complexity |
|------|-------|-------|------------|
| Create shared types | builder-solver-1 | types/*.ts | Small |
| Database schema | builder-solver-2 | schema.prisma | Medium |
| Config & constants | builder-solver-3 | config/*.ts | Small |
## Wave 2: Core (2 agents in parallel, after Wave 1)
| Task | Agent | Files | Depends On |
|------|-------|-------|------------|
| User service | builder-solver-4 | services/user.ts | Wave 1 types |
| Auth service | builder-solver-5 | services/auth.ts | Wave 1 types |
## Wave 3: Integration (1 agent, after Wave 2)
| Task | Agent | Files | Depends On |
|------|-------|-------|------------|
| API routes + wiring | builder-solver-6 | routes/*.ts, index.ts | Wave 1, 2 |
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
SUMMARY
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Total Tasks: 6
Total Waves: 3
Parallel Agents: Up to 3 concurrent
Estimated Speedup: ~50-60% faster than sequential
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Proceed with this plan? (y/n/modify)
If user says "modify", let them adjust task boundaries or wave assignments.
Step 4: Execute Wave by Wave
For Each Wave
- Prepare agent prompts with:
- Their specific task
- Shared contracts (from Step 2)
- Outputs from previous waves (if any)
-
Files they own (and must NOT touch others)
-
Spawn agents IN PARALLEL:
Task(agent: "builder-solver-1", prompt: "[TASK 1 PROMPT]")
Task(agent: "builder-solver-2", prompt: "[TASK 2 PROMPT]")
Task(agent: "builder-solver-3", prompt: "[TASK 3 PROMPT]")
... (all in the SAME batch - parallel execution)
- Track progress:
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
WAVE 1 PROGRESS
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β builder-solver-1 - Complete (types/*.ts)
β builder-solver-2 - Complete (schema.prisma)
β builder-solver-3 - Working... (config/*.ts)
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
-
Collect outputs when wave completes
-
Pass context to next wave - Include relevant outputs from completed waves
Step 5: Agent Prompt Template
Each builder-solver agent receives a structured prompt:
# Builder Task: [TASK NAME]
## Your Assignment
[SPECIFIC DESCRIPTION OF WHAT TO BUILD]
## Files You Own
You are responsible for creating/modifying ONLY these files:
- [file1.ts]
- [file2.ts]
β οΈ DO NOT modify any other files.
## Shared Contracts
[PASTE SHARED INTERFACES/TYPES FROM STEP 2]
## Context from Previous Waves
[PASTE RELEVANT OUTPUTS FROM EARLIER WAVES, IF ANY]
## Requirements
1. [Requirement 1]
2. [Requirement 2]
3. [Requirement 3]
## Expected Output
Create the files listed above with complete, production-ready implementations.
Follow the shared contracts exactly.
Step 6: Integration & Verification
After all waves complete:
6.1 Apply All Changes
Agents propose changes - orchestrator applies them to the codebase.
6.2 Check for Conflicts
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
CONFLICT CHECK
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
No file conflicts (agents stayed in their lanes)
β
Interface contracts honored
β
Import paths valid
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
If conflicts exist, resolve them:
- Prefer later wave's version for integration files
- Merge compatible changes
- Flag incompatible changes for user decision
6.3 Run Verification
# Type check
npm run typecheck # or equivalent
# Lint
npm run lint
# Tests (if any)
npm run test
Fix any issues found.
Step 7: Report Results
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
PARALLEL BUILD COMPLETE
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
## π Execution Summary
| Wave | Agents | Tasks | Status |
|------|--------|-------|--------|
| 1 | 3 | Foundation | β
Complete |
| 2 | 2 | Core Services | β
Complete |
| 3 | 1 | Integration | β
Complete |
Total Time: [X seconds]
Sequential Estimate: [Y seconds]
Speedup: [Z%]
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
## π Files Created/Modified
### Wave 1 Output
| Agent | Files Created |
|-------|--------------|
| builder-solver-1 | types/user.ts, types/auth.ts |
| builder-solver-2 | prisma/schema.prisma |
| builder-solver-3 | config/index.ts, config/constants.ts |
### Wave 2 Output
| Agent | Files Created |
|-------|--------------|
| builder-solver-4 | services/user.ts |
| builder-solver-5 | services/auth.ts |
### Wave 3 Output
| Agent | Files Created |
|-------|--------------|
| builder-solver-6 | routes/user.ts, routes/auth.ts, index.ts |
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
## β
Verification
- Type Check: β
Passed
- Lint: β
Passed
- Tests: β
Passed (or N/A)
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
## π What Each Agent Built
### builder-solver-1: Shared Types
- Created User, AuthToken, Session interfaces
- Defined validation schemas
### builder-solver-2: Database Schema
- Created User, Session, Token models
- Set up relations and indexes
... (for each agent)
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
## π Implementation from Spec
| Spec Requirement | Status | Implemented By |
|------------------|--------|----------------|
| User registration | β
| builder-solver-4, 6 |
| Authentication | β
| builder-solver-5, 6 |
| Session management | β
| builder-solver-5 |
| API endpoints | β
| builder-solver-6 |
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Error Handling
Agent Failure
If an agent fails:
- Retry once with the same prompt
- If still fails, report to user with error details
- Ask if user wants to:
- Skip this task and continue
- Provide guidance and retry
- Abort the build
Dependency Failure
If Wave N fails and Wave N+1 depends on it:
- Block dependent waves
- Report the blocker
- Offer options: fix and continue, or abort
Configuration Options
| Option | Default | Description |
|---|---|---|
| Max parallel agents | 5 | Maximum agents running simultaneously |
| Agent timeout | 5 min | Max time per agent |
| Auto-verify | true | Run type check/lint after completion |
| Show progress | true | Display progress updates |
User can specify: parallel-builder with 3 max agents
Agents
10 builder solver agents in agents/ directory:
- builder-solver-1 through builder-solver-10
All agents:
- Same instructions (focused on implementing their assigned piece)
- Lower temperature (0.4) for consistency
- Full tool access (Read, Write, Grep, Glob, LS, Shell)
- Respect file ownership boundaries
- Follow shared contracts exactly
Difference from Other Skills
| Aspect | debug-council | feature-council | parallel-builder |
|---|---|---|---|
| Input | Bug to fix | Feature to build | Spec/plan to implement |
| Agent task | Same problem | Same feature | Different pieces |
| Goal | Find correct fix | Diverse approaches | Fast parallel execution |
| Selection | Majority vote | Synthesis/merge | Integration |
| Speed | N agents, 1 problem | N agents, 1 feature | N pieces, ~NΓ speedup |
Examples
Example 1: From PRD File
User: parallel-builder from docs/auth-prd.md
Orchestrator:
1. Reads docs/auth-prd.md
2. Decomposes into: types, user-service, auth-service, middleware, routes
3. Creates 3 waves
4. Executes in parallel
5. Integrates and verifies
Example 2: From Description
User: parallel-builder a full CRUD API for a blog with posts, comments, and users
Orchestrator:
1. Decomposes: types, 3 services, 3 route files, integration
2. Wave 1: types (1 agent)
3. Wave 2: 3 services in parallel (3 agents)
4. Wave 3: 3 route files in parallel (3 agents)
5. Wave 4: integration (1 agent)
Example 3: From Reference
User: parallel-builder something like src/features/users but for products
Orchestrator:
1. Reads src/features/users to understand pattern
2. Creates parallel tasks to replicate for products
3. Executes maintaining same architecture
# Supported AI Coding Agents
This skill is compatible with the SKILL.md standard and works with all major AI coding agents:
Learn more about the SKILL.md standard and how to use these skills with your preferred AI coding agent.