git clone https://github.com/ComeOnOliver/skillshub
T=$(mktemp -d) && git clone --depth=1 https://github.com/ComeOnOliver/skillshub "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/michaelboeding/skills/feature-council" ~/.claude/skills/comeonoliver-skillshub-feature-council && rm -rf "$T"
skills/michaelboeding/skills/feature-council/SKILL.mdFeature Council: Multi-Agent Feature Implementation
Spawns multiple agents to implement the same feature independently, then synthesizes the best parts from each. Unlike code-council (majority voting for bugs), this skill merges strengths because features have multiple valid approaches.
Use this for complex features where you want diverse implementations and comprehensive coverage.
Step 0: Ask User How Many Agents
Before doing anything else, ask the user how many solver agents to use:
How many solver agents would you like me to use? (3-10) Recommendations: - 3 agents: Faster, good for straightforward features - 5 agents: Good balance of diversity and speed - 7 agents: Comprehensive coverage - 10 agents: Maximum diversity (complex features) Note: Each agent will independently implement the entire feature. More agents = more diverse approaches and edge case coverage.
Wait for the user's response. If they specified a number (e.g., "feature council of 5"), use that.
Minimum: 3 agents | Maximum: 10 agents
CRITICAL: Pure Independence
What This Means
- NO orchestrator exploration - Do NOT read files or gather context before spawning agents
- Raw user prompt to all agents - Each agent gets the user's original request, unchanged
- Each agent explores independently - Agents discover the codebase themselves
- Each agent implements fully - Complete, working implementations
Why This Matters
Independent implementations mean:
- Different architectural choices to compare
- Different edge cases discovered
- Different error handling approaches
- More comprehensive final solution
Workflow
Step 1: Capture the Raw User Prompt
Take the user's request exactly as stated. Do NOT:
- ❌ Read files first
- ❌ Explore the codebase
- ❌ Add context
- ❌ Rephrase or enhance the prompt
Just capture what the user said.
Step 2: Spawn Agents IN PARALLEL with RAW PROMPT
Spawn ALL agents simultaneously. Each gets the exact same raw prompt:
Task(agent: "feature-solver-1", prompt: "[USER'S EXACT WORDS]") Task(agent: "feature-solver-2", prompt: "[USER'S EXACT WORDS]") Task(agent: "feature-solver-3", prompt: "[USER'S EXACT WORDS]") ... (all in the SAME batch - parallel execution)
DO NOT modify the prompt. DO NOT add context. Raw user words only.
Step 3: Agents Work Independently
Each agent will:
- Read and understand the user's feature request
- Explore the codebase to understand existing patterns
- Design their approach
- Implement the complete feature
- Handle edge cases they identify
- Verify their implementation
Each agent works in complete isolation.
Step 4: Track Progress & Collect Solutions
As agents complete, show progress to the user:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ AGENT PROGRESS ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ☑ Agent 1 - Complete ☑ Agent 2 - Complete ☑ Agent 3 - Complete ☐ Agent 4 - Working... ☐ Agent 5 - Working... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Collect all outputs when complete.
Step 5: Analyze & Compare Implementations
DO NOT use majority voting. Instead, analyze each implementation for:
| Category | What to Look For |
|---|---|
| Architecture | Design patterns, code organization, modularity |
| Edge Cases | What edge cases did each agent handle? |
| Error Handling | How robust is the error handling? |
| Type Safety | Type definitions, null checks, validation |
| Performance | Efficiency, caching, optimization |
| Maintainability | Readability, documentation, testability |
| Codebase Fit | How well does it match existing patterns? |
Create a comparison matrix:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ IMPLEMENTATION COMPARISON ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ | Aspect | Agent 1 | Agent 2 | Agent 3 | Agent 4 | Agent 5 | |-----------------|---------|---------|---------|---------|---------| | Architecture | MVC | Service | MVC | MVC | Modular | | Edge Cases | 3 | 5 | 4 | 3 | 6 | | Error Handling | Basic | Robust | Good | Basic | Robust | | Type Safety | ✓ | ✓✓ | ✓ | ✓ | ✓✓ | | Codebase Match | 90% | 75% | 95% | 85% | 80% | ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Step 6: Synthesize Best Solution
Combine the best elements from each agent:
- Select base implementation - Choose the one that best matches codebase patterns
- Incorporate edge cases - Add edge cases from other agents the base missed
- Enhance error handling - Use the most robust error handling approach
- Improve type safety - Merge type definitions and validations
- Document sources - Track which elements came from which agent
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ SYNTHESIS DECISION ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Base: Agent 3 (best codebase pattern match) Incorporating from other agents: ├─ Agent 2: Robust error handling pattern ├─ Agent 5: Edge cases for [empty input, concurrent access] ├─ Agent 2: Type definitions for [UserInput, ValidationResult] └─ Agent 4: Caching optimization ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Step 7: Create Finalized Implementation Plan
Before implementing, create a detailed execution plan from the synthesized solution:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 📋 IMPLEMENTATION PLAN ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ## Files to Create | # | File Path | Purpose | Source | |---|-----------|---------|--------| | 1 | path/to/NewService.ts | Main service class | Agent 3 base | | 2 | path/to/types.ts | Type definitions | Agent 2 | | 3 | path/to/utils.ts | Helper functions | Agent 5 | ## Files to Modify | # | File Path | Changes | Source | |---|-----------|---------|--------| | 1 | path/to/index.ts | Add export | Agent 3 | | 2 | path/to/config.ts | Add config entry | Agent 4 | | 3 | path/to/app.ts | Register service | Agent 3 | ## Implementation Order 1. **Create types.ts** (no dependencies) - Define interfaces and types - From: Agent 2 2. **Create utils.ts** (depends on types) - Add helper functions - From: Agent 5 3. **Create NewService.ts** (depends on types, utils) - Main implementation - From: Agent 3 + Agent 2 error handling 4. **Modify config.ts** (no dependencies) - Add configuration - From: Agent 4 5. **Modify index.ts** (depends on NewService) - Export new service - From: Agent 3 6. **Modify app.ts** (depends on all above) - Register and initialize - From: Agent 3 ## Edge Cases to Handle | Edge Case | How Handled | Source | |-----------|-------------|--------| | Empty input | Return early with default | Agent 5 | | Null values | Null coalescing + validation | Agent 2 | | Concurrent access | Mutex lock | Agent 5 | | Network timeout | Retry with backoff | Agent 4 | ## Error Handling Strategy - Pattern: [from Agent 2] - Logging: [approach] - Recovery: [approach] ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
This plan ensures:
- Correct dependency order
- All edge cases addressed
- Clear traceability to source agents
Step 8: Execute Implementation Plan
Follow the plan step-by-step. For each step:
- Create/modify the file as specified
- Verify it matches the synthesized approach
- Move to next step
Step 9: Report Results
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ FEATURE COUNCIL RESULTS ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ## 📊 Implementation Comparison | Agent | Architecture | Edge Cases | Error Handling | Codebase Fit | |-------|--------------|------------|----------------|--------------| | 1 | [approach] | [count] | [quality] | [%] | | 2 | [approach] | [count] | [quality] | [%] | | ... | ... | ... | ... | ... | ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ## 🔍 What Each Agent Contributed ### Agent 1 - Approach: [brief description] - Unique strength: [what this agent did best] - Used in final: [what was incorporated] ### Agent 2 - Approach: [brief description] - Unique strength: [what this agent did best] - Used in final: [what was incorporated] ... (for each agent) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ## 📋 Implementation Plan Executed | Step | File | Action | Status | |------|------|--------|--------| | 1 | path/to/types.ts | Created | ✅ | | 2 | path/to/utils.ts | Created | ✅ | | 3 | path/to/Service.ts | Created | ✅ | | 4 | path/to/config.ts | Modified | ✅ | | 5 | path/to/index.ts | Modified | ✅ | ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ## 🧬 Synthesis Breakdown | Element | Source Agent | Reason | |---------|--------------|--------| | Base architecture | Agent 3 | Best codebase pattern match (95%) | | Error handling | Agent 2 | Most comprehensive try/catch + logging | | Edge case: empty input | Agent 5 | Only agent that handled this | | Edge case: concurrent | Agent 5 | Race condition prevention | | Type definitions | Agent 2 | Strictest typing | | Caching layer | Agent 4 | Performance optimization | ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ## 📈 Final Solution Quality - **Edge Cases Covered**: [total unique from all agents] - **Error Handling**: [description] - **Codebase Fit**: [% and explanation] - **Type Safety**: [description] ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ## ✅ Implemented Solution [The synthesized implementation] ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ## 📁 Files Created/Modified [List of all files with brief descriptions] ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Configuration
| Mode | Agents | Use Case |
|---|---|---|
| 3 | Simple features, faster |
| 5 | Good balance |
| 7 | Complex features |
| 10 | Maximum coverage |
If user just says
feature council, ask them to choose.
Difference from Code Council
| Aspect | Code Council | Feature Council |
|---|---|---|
| Purpose | Bug fixes, algorithms | Feature implementation |
| Selection | Majority voting | Synthesis/merge |
| Output | Single winning solution | Best-of-all combined |
| Metric | Correctness consensus | Comprehensiveness |
Agents
10 feature solver agents in
agents/ directory:
throughfeature-solver-1feature-solver-10
All agents:
- Same instructions (focused on feature implementation)
- Same temperature (0.7)
- Same tools (Read, Grep, Glob, LS)
- Use ultrathink (extended thinking)
- Emphasize codebase pattern matching and edge case coverage
Why Synthesis > Voting for Features
With bugs, there's ONE correct answer. With features:
- Multiple valid architectures exist
- One agent might catch edge cases others miss
- Error handling approaches can be combined
- Type safety can be merged
Synthesis captures the union of good ideas rather than picking one.
When to Use
✅ Use feature-council for:
- Complex features with many edge cases
- Features where you're unsure of best approach
- High-stakes production code
- When you want comprehensive coverage
❌ Don't use for:
- Simple CRUD operations
- Bug fixes (use code-council instead)
- When speed matters more than coverage