--- name: foreman-spec description: Multi-role requirement analysis and task breakdown workflow using 4 specialized AI agents (PM, UX, Tech, QA). Each agent conducts web research before analysis to gather industry best practices, case studies, and current trends. Supports Quick Mode (parallel, ~3 min, one Q&A session) and Deep Mode (serial, ~8 min, Q&A after EACH agent so answers inform subsequent analysis). Triggers on 'foreman-spec', 'spec feature', 'break down requirement', 'define tasks', 'spec this'. allowed-tools: [Read, Write, Glob, Grep, AskUserQuestion, Bash, Task] user-invocable: true --- # Spec Workflow (V8 - Research-Enhanced) Multi-role requirement analysis using 4 specialized AI agents, each equipped with web research capabilities. ## Overview Transform a high-level requirement into fine-grained, implementable tasks through multi-perspective analysis. **Key Feature: Research-First Approach** Each agent conducts web research BEFORE analysis to: - Gather industry best practices and standards - Find case studies and competitor implementations - Discover current trends and proven patterns - Ground recommendations in real-world data **Agents** (all equipped with WebSearch): - agent-foreman:pm (Product Manager) - Clarifies WHAT and WHY, researches market/industry - agent-foreman:ux (UX/UI Designer) - Designs HOW users interact, researches UX patterns - agent-foreman:tech (Technical Architect) - Architects HOW to build, researches frameworks/security - agent-foreman:qa (QA Manager) - Plans HOW to verify, researches testing strategies **Modes**: - Quick Mode (parallel) - ~3-4 min, includes research, one combined Q&A session at the end - Deep Mode (serial) - ~8-10 min, comprehensive research, Q&A after EACH agent (4 sessions, each answer informs subsequent agents) --- ## Phase 0: Mode Selection Before any analysis, detect project state and ask user to choose mode. ### Step 1: Scan Codebase Use Glob to detect project state: ``` Check if ai/tasks/ exists → EXISTING_PROJECT Check if package.json or pyproject.toml exists → EXISTING_PROJECT Otherwise → NEW_PROJECT ``` ### Step 2: Analyze Requirement Complexity - Count features mentioned in requirement - Detect uncertainty words ("maybe", "or", "not sure", "possibly") - If >3 features OR uncertainty words → COMPLEX - Otherwise → SIMPLE ### Step 3: Determine Recommendation ``` IF NEW_PROJECT OR COMPLEX: recommendation = "Deep Mode" ELSE: recommendation = "Quick Mode" ``` ### Step 4: Ask User Use AskUserQuestion tool: ```json { "question": "How would you like to analyze this requirement?", "header": "Mode", "options": [ { "label": "Quick Mode (Recommended)" or "Quick Mode", "description": "4 experts analyze in parallel, ~3 min, one combined Q&A at the end. Best for clear requirements." }, { "label": "Deep Mode (Recommended)" or "Deep Mode", "description": "4 experts analyze sequentially, ~8 min, Q&A after EACH expert (answers inform next expert). Best for complex/new projects." } ], "multiSelect": false } ``` Place "(Recommended)" on the recommended mode based on Step 3. --- ## Phase 1: Codebase Scan Scan the project to understand existing patterns. ### Actions 1. Use Glob to find key files: - `README.md`, `ARCHITECTURE.md`, `CLAUDE.md` - `package.json`, `pyproject.toml`, `go.mod` - `src/**/*.ts`, `src/**/*.py`, `src/**/*.go` (sample files) 2. Read project configuration to detect: - Language and framework - Testing patterns - Existing conventions 3. Create context summary for agents: - Project type (web app, CLI, API, etc.) - Tech stack (language, framework, database) - Existing patterns to follow --- ## Phase 1.5: Research Context (NEW) Before launching agents, prepare research context based on the requirement. ### Research Domains Identify which areas need research based on the requirement: | Requirement Type | Research Focus | |-----------------|----------------| | New product | Market analysis, competitor products, industry trends | | New feature | Similar implementations, UX patterns, technical approaches | | Integration | API documentation, security best practices, compatibility | | Performance | Benchmarks, optimization techniques, scalability patterns | ### Generate Research Keywords Extract keywords from the requirement for targeted searches: ``` Requirement: "Build a real-time chat application with end-to-end encryption" Research keywords: - "real-time chat architecture 2024 2025" - "WebSocket vs Server-Sent Events comparison" - "end-to-end encryption implementation best practices" - "chat application UX patterns" - "Signal Protocol implementation guide" ``` ### Pass Research Context to Agents Include research keywords in agent prompts: ``` research_context = { "domain": "[product domain]", "keywords": ["keyword1", "keyword2", "keyword3"], "tech_stack": "[detected or proposed stack]", "competitors": ["competitor1", "competitor2"] } ``` **IMPORTANT**: Each agent will conduct its own targeted research using these keywords. The research phase is built into each agent's workflow, not a separate step. --- ## Phase 2: Analysis (Mode-Dependent) ### Quick Mode (Parallel) Launch all 4 agents IN PARALLEL using Task tool. Each agent will conduct web research before analysis: ``` Task(subagent_type="agent-foreman:pm", prompt="Analyze requirement: {requirement}. Project context: {codebase_context}. Research context: {research_context}. IMPORTANT: Use WebSearch to research industry best practices before analysis.") Task(subagent_type="agent-foreman:ux", prompt="Design UX for: {requirement}. Project context: {codebase_context}. Research context: {research_context}. IMPORTANT: Use WebSearch to research UX patterns before design.") Task(subagent_type="agent-foreman:tech", prompt="Design architecture for: {requirement}. Project context: {codebase_context}. Research context: {research_context}. IMPORTANT: Use WebSearch to research framework best practices before architecture.") Task(subagent_type="agent-foreman:qa", prompt="Define QA strategy for: {requirement}. Project context: {codebase_context}. Research context: {research_context}. IMPORTANT: Use WebSearch to research testing strategies before planning.") ``` Wait for all to complete (~30-60 seconds). **Then**: Merge questions from all 4 agents: - Remove duplicates (similar questions from different roles) - Group by topic - Prioritize: blocking questions first - Limit: max 10-12 questions total **Then**: Present merged questions to user in one AskUserQuestion call. ### Deep Mode (Serial with Immediate Q&A) Launch agents ONE AT A TIME. **CRITICAL: After each agent completes, immediately collect their questions, ask the user, and write answers to the spec file BEFORE launching the next agent.** This ensures: - Each agent's questions are answered immediately - Subsequent agents can see previous answers in the spec files - User maintains focus on one perspective at a time **Step 2A: Product Manager** ``` Task(subagent_type="agent-foreman:pm", prompt="Analyze requirement: {requirement}. Project context: {codebase_context}. Research context: {research_context}. CRITICAL: Use WebSearch FIRST to research industry best practices, market trends, and competitor approaches before starting your analysis.") ``` Wait for completion. PM will: 1. Conduct web research on industry/market 2. Write analysis to `ai/tasks/spec/PM.md` 3. Output questions using `---QUESTIONS FOR USER---` format **→ SKILL Orchestrator Actions (MANDATORY):** 1. Parse PM's `---QUESTIONS FOR USER---` output 2. Use AskUserQuestion to present PM's questions to user 3. Write Q&A section to `ai/tasks/spec/PM.md` 4. **Only then proceed to Step 2B** **Step 2B: UX Designer** ``` Task(subagent_type="agent-foreman:ux", prompt="Design UX for: {requirement}. IMPORTANT: First read ai/tasks/spec/PM.md to see PM's analysis AND user's answers to PM questions. Research context: {research_context}. CRITICAL: Use WebSearch FIRST to research UX patterns before starting your design.") ``` Wait for completion. UX will: 1. Read PM.md (including Q&A section with user answers) 2. Conduct UX-specific research 3. Write analysis to `ai/tasks/spec/UX.md` 4. Output questions using `---QUESTIONS FOR USER---` format **→ SKILL Orchestrator Actions (MANDATORY):** 1. Parse UX's `---QUESTIONS FOR USER---` output 2. Use AskUserQuestion to present UX's questions to user 3. Write Q&A section to `ai/tasks/spec/UX.md` 4. **Only then proceed to Step 2C** **Step 2C: Technical Architect** ``` Task(subagent_type="agent-foreman:tech", prompt="Design architecture for: {requirement}. IMPORTANT: First read ai/tasks/spec/PM.md and ai/tasks/spec/UX.md to see previous analyses AND user's answers. Research context: {research_context}. CRITICAL: Use WebSearch FIRST to research framework best practices before starting your design.") ``` Wait for completion. Tech will: 1. Read PM.md and UX.md (including Q&A sections) 2. Conduct tech-specific research 3. Write analysis to `ai/tasks/spec/TECH.md` 4. Output questions using `---QUESTIONS FOR USER---` format **→ SKILL Orchestrator Actions (MANDATORY):** 1. Parse Tech's `---QUESTIONS FOR USER---` output 2. Use AskUserQuestion to present Tech's questions to user 3. Write Q&A section to `ai/tasks/spec/TECH.md` 4. **Only then proceed to Step 2D** **Step 2D: QA Manager** ``` Task(subagent_type="agent-foreman:qa", prompt="Define QA strategy for: {requirement}. IMPORTANT: First read all spec files (PM.md, UX.md, TECH.md) including their Q&A sections. Research context: {research_context}. CRITICAL: Use WebSearch FIRST to research testing strategies before defining your strategy.") ``` Wait for completion. QA will: 1. Read all previous spec files (including Q&A sections) 2. Conduct QA-specific research 3. Write analysis to `ai/tasks/spec/QA.md` 4. Output questions using `---QUESTIONS FOR USER---` format **→ SKILL Orchestrator Actions (MANDATORY):** 1. Parse QA's `---QUESTIONS FOR USER---` output 2. Use AskUserQuestion to present QA's questions to user (if any) 3. Write Q&A section to `ai/tasks/spec/QA.md` 4. **Proceed to Phase 3 (Create Overview)** --- ## Phase 2.5: Question Collection & User Interaction **This phase applies ONLY to Quick Mode.** In Deep Mode, questions are handled inline after each agent (see above). ### Quick Mode Question Flow After all 4 agents complete in parallel, handle questions: ### Step 1: Extract Questions Each agent outputs questions using this format (NOT written to file): ``` ---QUESTIONS FOR USER--- 1. **[Question text]** - Why: [reason] - Options: A) ... B) ... C) ... - Recommend: [option] because [rationale] ---END QUESTIONS--- ``` Parse each agent's output and extract questions from the `---QUESTIONS FOR USER---` section. ### Step 2: Merge and Deduplicate 1. **Remove duplicates** - Similar questions from different roles (e.g., both PM and Tech asking about auth method) 2. **Group by topic** - Organize related questions together 3. **Prioritize blocking questions first** - Questions that block other roles' work 4. **Limit total** - Max 10-12 questions to avoid overwhelming user ### Step 3: Ask User Use `AskUserQuestion` tool to present merged questions interactively: ```json { "questions": [ { "question": "[Merged question text]", "header": "[Topic - max 12 chars]", "options": [ {"label": "[Option A] (Recommended)", "description": "[Why recommended]"}, {"label": "[Option B]", "description": "[What this means]"} ], "multiSelect": false } ] } ``` ### Step 4: Write Answers to Files After user answers, append Q&A section to EACH relevant spec file: ```markdown ## Questions & Answers ### Q1: [Question text] **Answer**: [User's selected option] **Impact**: [How this affects this role's analysis] ### Q2: [Question text] **Answer**: [User's selected option] **Impact**: [How this affects this role's analysis] ``` For each file, only include questions relevant to that role: - `PM.md`: Business/scope questions - `UX.md`: Design/flow questions - `TECH.md`: Architecture/implementation questions - `QA.md`: Testing/quality questions --- ## Phase 3: Create Overview & Breakdown Tasks (DELEGATED) **After Phase 2.5 (Q&A) completes, delegate to breakdown-writer agent.** Phase 3 requires significant context (reading 4 spec files, creating N+2 task files). Delegating to a subagent preserves main session context for subsequent interactions. ### Step 1: Compile Q&A Decisions Collect all Q&A from Phase 2/2.5 into a formatted summary: ``` qa_decisions = """ ### Scope Decisions - Q: [Question from PM] → A: [User answer] - Q: [Question from PM] → A: [User answer] ### UX Decisions - Q: [Question from UX] → A: [User answer] ### Technical Decisions - Q: [Question from Tech] → A: [User answer] ### Quality Decisions - Q: [Question from QA] → A: [User answer] """ ``` ### Step 2: Delegate to Breakdown Writer Launch the breakdown-writer agent: ``` Task( subagent_type="agent-foreman:breakdown-writer", prompt=""" SPEC BREAKDOWN TASK ## Context - Requirement: {requirement} - Mode: {quick|deep} - Date: {YYYY-MM-DD} - Project: {codebase_context} ## Q&A Decisions {qa_decisions} ## Your Mission 1. Read all spec files (PM.md, UX.md, TECH.md, QA.md) 2. Create OVERVIEW.md with executive summaries 3. Create BREAKDOWN tasks for all modules (devops first, integration last) 4. Run `agent-foreman status` to verify index update 5. Return structured result ## Output Format Return result block at END: ---BREAKDOWN RESULT--- overview_created: true|false modules_created: [devops, module1, ..., integration] tasks_created: N index_updated: true|false status: success|partial|failed errors: [] notes: "summary" ---END BREAKDOWN RESULT--- """ ) ``` ### Step 3: Parse Result Parse `---BREAKDOWN RESULT---` from agent output: ``` If status == "success": → Display success message with modules_created → Continue to Phase 4 If status == "partial": → Display warning with errors → Continue to Phase 4 (partial results may be usable) If status == "failed": → Display error message → Show errors list → Stop workflow, user must investigate ``` ### Step 4: Confirm to User After successful delegation, output: ``` Spec breakdown complete! Created: - ai/tasks/spec/OVERVIEW.md (executive summaries) - ai/tasks/devops/BREAKDOWN.md (priority: 0) - ai/tasks/{module}/BREAKDOWN.md (priority: N) - ... - ai/tasks/integration/BREAKDOWN.md (priority: 999999) Total: {tasks_created} BREAKDOWN tasks registered. ``` ### Why Delegate? 1. **Context preservation** - Main session only sees prompt + result (~1.5KB vs ~20KB) 2. **File reading isolated** - Agent reads 4 large spec files in its own context 3. **Error handling** - Agent handles errors autonomously, returns structured result 4. **Files are persistent** - Agent writes directly, files survive context limits ### Fallback: Manual Execution If delegation fails, you can manually execute Phase 3 by: 1. Reading spec files (PM.md, UX.md, TECH.md, QA.md) 2. Creating OVERVIEW.md with the template from breakdown-writer agent 3. Creating BREAKDOWN files for each module 4. Running `agent-foreman status` to verify index update --- ## Phase 4: Module Breakdown (User-Driven) After spec generation, guide the user to process all BREAKDOWN tasks. ### Next Steps Output (CONSOLE ONLY - NOT IN OVERVIEW.md) **⚠️ IMPORTANT: This output is displayed to the user in the console/terminal. It is NOT written to any file.** Display the following guidance to the user: ```markdown ## Next Steps To process all BREAKDOWN tasks and create fine-grained implementation tasks: /agent-foreman:run Alternatively, to process a specific module: /agent-foreman:run {module}.BREAKDOWN ``` ### What Happens During Run The `/agent-foreman:run` command uses the standard Bash workflow for each task: ```bash # For each BREAKDOWN task, executes: agent-foreman next # 1. Get task details # ... implement task ... # 2. Create implementation tasks agent-foreman check # 3. Verify agent-foreman done # 4. Complete + commit # Loop to next BREAKDOWN ``` For each BREAKDOWN task, the AI will: 1. Run `agent-foreman next` to get task details and spec context 2. Read all spec documents from `ai/tasks/spec/` (PM.md, UX.md, TECH.md, QA.md, OVERVIEW.md) 3. Create fine-grained implementation tasks in `ai/tasks/{module}/` 4. Run `agent-foreman check` and `agent-foreman done` to verify and complete 5. Automatically continue to the next BREAKDOWN --- ## Phase 5: Validation > **Note**: The `done` command automatically triggers validation instructions when all BREAKDOWNs complete. After all BREAKDOWN tasks are complete, run validation: ```bash agent-foreman validate ``` This spawns 4 validators in parallel to check task quality. --- ## Task Output Conventions All generated tasks MUST follow agent-foreman format. ### Task ID Patterns - BREAKDOWN tasks: `{module}.BREAKDOWN` (e.g., `auth.BREAKDOWN`) - Implementation tasks: `{module}.{task-name}` (e.g., `auth.oauth-google`) ### Task Markdown Format ```markdown --- id: module.task-name module: module-name priority: N status: failing version: 1 origin: spec-workflow dependsOn: [] tags: [] testRequirements: unit: required: false pattern: "tests/{module}/**/*.test.*" --- # Task Title ## Context [Brief context from spec documents] ## Acceptance Criteria 1. [Specific, testable criterion] 2. [Specific, testable criterion] 3. [Error handling criterion] ## Technical Notes - Reference: [From spec/OVERVIEW.md] - UX: [From spec/UX.md] - Test: [From spec/QA.md] ``` ### Markdown Formatting Rules **CRITICAL**: Always include blank lines: - Before EVERY `##` heading (blank line required) - After EVERY `##` heading (blank line required) - Between list items and headings ### Granularity Break into SMALLEST implementable units. Each task should be: - **Atomic**: One focused piece of work - **Independent**: Can be implemented without waiting (except explicit deps) - **Testable**: Has clear, verifiable acceptance criteria - **Completable**: 1-3 hours of work --- ## Rules 1. **Agents write their own files** - Each agent writes directly to `ai/tasks/spec/{ROLE}.md` 2. **Agents read previous files** - UX reads PM.md, Tech reads PM.md+UX.md, QA reads all 3. **No conversation context reliance** - Always read files explicitly 4. **Research first** - Every agent conducts web research before analysis 5. **Mode first** - Ask user to choose Quick/Deep mode 6. **Bookend modules** - Always create `devops` (first) and `integration` (last) 7. **OVERVIEW is summary only** - Don't duplicate detailed analysis in OVERVIEW.md 8. **Questions output separately** - Agents write analysis to file, but output questions directly using `---QUESTIONS FOR USER---` format 9. **Q&A timing differs by mode**: - **Quick Mode**: Collect all questions after all agents complete, merge duplicates, ask once - **Deep Mode**: Ask questions IMMEDIATELY after each agent completes (PM→Q&A→UX→Q&A→Tech→Q&A→QA→Q&A), so subsequent agents can use answers 10. **Deep Mode sequential dependency** - In Deep Mode, NEVER launch the next agent until the previous agent's Q&A is complete and written to file 11. **No "Next Steps" in OVERVIEW.md** - OVERVIEW.md is a reference document that ends with "Module Roadmap". The "Next Steps" guidance is console output ONLY (Phase 4), never written to OVERVIEW.md or any spec file --- ## Research Best Practices ### Effective Search Queries Use specific, targeted queries: | Agent | Good Query Examples | |-------|---------------------| | PM | `"[industry] product metrics KPIs 2024"`, `"[product type] market size trends"` | | UX | `"[component] UX pattern best practices"`, `"WCAG 2.2 [element] accessibility"` | | Tech | `"[framework] architecture patterns"`, `"OWASP [vulnerability] prevention"` | | QA | `"[framework] testing best practices"`, `"[tool] performance benchmarks"` | ### Research Synthesis Each agent should: 1. Conduct 2-4 targeted web searches 2. Extract key findings with sources 3. Apply findings to the specific requirement 4. Include citations in the Research Findings section ### When to Research More - New/unfamiliar domain → More PM research - Complex UI requirements → More UX research - Novel tech stack → More Tech research - High-risk project → More QA research