name: oh-my-speckit description: MANDATORY workflow for GitHub Speckit projects. Enforces Spec-First → Clarify → Research → Evaluate → Design → Plan → TDD → Review, with optional Constitution and quality checks. Activates when working in projects with .github/speckit/ directory.
mcp: [context7]
Oh-My-Speckit Workflow - Specification-Driven Development
[BLOCKING] EXECUTION DIRECTIVES
These directives are NOT suggestions. They are MANDATORY execution requirements.
IMPORTANT: How to Execute Speckit Commands
Speckit commands are prompt template files. To execute them:
Read the command file from project directory:
- Primary:
.opencode/commands/speckit.{command}.md - Fallback:
.claude/commands/speckit.{command}.md
- Primary:
Process special syntax in the file:
Syntax Action $ARGUMENTSReplace with user's feature description @filepathRead that file and insert contents !commandExecute shell command, insert stdout Execute ALL instructions in the processed file exactly as written
IMMEDIATE ACTION REQUIRED
Upon loading this skill, you MUST:
- Check project structure first using Glob/Read tools
- If
.github/speckit/missing → Read and execute.opencode/commands/oms-init.md- If
.opencode/commands/oms-init.mdand.claude/commands/oms-init.mdare both missing, run global/oms-initand follow its prompts.
- If
- If constitution missing → Read and execute
.opencode/commands/speckit.constitution.md - Otherwise → Read and execute
.opencode/commands/speckit.specify.md
NO TEXT BEFORE TOOL CALLS - Start with file checks immediately.
WHAT "MUST" MEANS
| Directive | Meaning |
|---|---|
| MUST | Non-negotiable. Failure = workflow broken. |
| MUST NOT | Forbidden. Doing this = workflow broken. |
| SHOULD | Strong recommendation. Skip only with explicit user override. |
Critical Guardrails
- NO TodoWrite in Phases 0–5: These phases require user input and explicit approvals.
- Approval Gate: After Phases 0–3.6, STOP and wait for explicit user approval.
- Do NOT auto-advance: If approval is missing, do not continue to the next phase.
- Research before Evaluate: Phase 3.5 (Research) MUST complete before Phase 3.6 (Evaluate).
Workflow Overview (Hybrid)
0. Initialize → Setup Speckit structure (oms-init)
1. Constitution → (MANDATORY for new projects, first-time only)
2. Spec-First → Define WHAT (speckit.specify)
3. Clarify → Resolve unknowns (speckit.clarify)
3.5 Research → Market/competitive analysis (librarian) [NEW]
3.6 Evaluate → Feature add/remove/modify assessment (speckit-architect) [NEW]
4. Design Session → Refine HOW (brainstorming)
5. Plan → Create detailed plan (speckit.plan + writing-plans)
6. (Optional) → Analyze / Checklist quality pass
7. Tasks → speckit.tasks
8. TDD Execution → /orchestrate → parallel workers → TDD (MANDATORY)
9. Review & Update→ Verify & update spec (requesting-code-review)
When to Use This Skill
Use only when explicitly invoked by name.
DO NOT activate when:
- Simple bug fixes (use systematic-debugging instead)
- Documentation updates only
- Refactoring without behavior change
Quick Mode (OPTIONAL - User Must Enable)
When to Use Quick Mode
Quick Mode is for small features, internal tools, or time-sensitive work where full Research/Evaluate phases are overkill.
Eligible scenarios:
- Internal tools with no external users
- Bug fixes that require spec tracking
- Small features (< 1 day implementation)
- Prototypes or MVPs
- User explicitly requests "quick mode" or "빠른 모드"
NOT eligible:
- User-facing features
- Security-related changes
- Payment/financial features
- Features requiring market differentiation
How to Enable Quick Mode
User must explicitly say one of:
- "Use quick mode"
- "빠른 모드로 해줘"
- "Skip research and evaluate"
- "Research/Evaluate 생략해줘"
Quick Mode Workflow
0. Initialize → (same)
1. Constitution → (same, first-time only)
2. Spec-First → (same)
3. Clarify → (same)
3.5 Research → ⏭️ SKIPPED (Quick Mode)
3.6 Evaluate → ⏭️ SKIPPED (Quick Mode)
4. Design Session → (same)
5. Plan → (same)
6-10 → (same)
Quick Mode Spec Frontmatter
When Quick Mode is enabled, add to spec frontmatter:
---
status: clarified
mode: quick
quick_mode_reason: [user's reason for enabling quick mode]
skipped_phases: [research, evaluate]
---
Quick Mode Guardrails
Even in Quick Mode:
- ✅ Spec is STILL required
- ✅ Clarify phase is STILL required
- ✅ TDD is STILL required
- ✅ Tests are STILL required
- ❌ Cannot skip spec creation
- ❌ Cannot skip clarify (edge cases matter!)
Reverting from Quick Mode
If during implementation you discover:
- Competitors exist that should be analyzed
- Feature scope expanded beyond "small"
- Security implications found
Then: STOP and revert to full workflow
- Notify user: "This feature needs full Research/Evaluate. Reverting from Quick Mode."
- Execute Phase 3.5 and 3.6
- Continue from there
Phase 0: Initialize (MANDATORY, FIRST-TIME ONLY)
👉 EXECUTE NOW (if structure missing)
Read and execute the speckit init command file:
Read: .opencode/commands/oms-init.md (or .claude/commands/oms-init.md)
Then: Follow ALL instructions in that file
If both files are missing:
- Run global
/oms-initand follow its prompts
REQUIRED for all new projects. Setup Speckit directory structure.
Check if Speckit structure exists:
.github/speckit/directory.opencode/designs/and.opencode/plans/directories
If structure missing:
- Read
.opencode/commands/oms-init.md(or.claude/commands/oms-init.md) - Execute all instructions in that file
- If both files are missing, run global
/oms-initand follow its prompts - Get approval before proceeding to Phase 1
- Read
If structure exists:
- Verify structure is complete
- Skip to Phase 1
Phase 1: Constitution (MANDATORY, FIRST-TIME ONLY)
👉 EXECUTE NOW (if constitution missing)
Read and execute the constitution command file:
Read: .opencode/commands/speckit.constitution.md
Then: Follow ALL instructions in that file
REQUIRED for all new projects. Set guiding principles before any feature work.
Check if constitution exists:
.github/speckit/constitution.md.specify/memory/constitution.md
If constitution missing:
- Read
.opencode/commands/speckit.constitution.md - Execute all instructions in that file
- Interview user for project principles
- Get approval before proceeding to Phase 2
- Read
If constitution exists:
- Read and apply it to all feature work
- Skip to Phase 2
Phase 2: Spec-First (MANDATORY)
[BLOCKING] EXECUTION REQUIRED
MUST: Read and execute .opencode/commands/speckit.specify.md
MUST NOT: Skip reading the command file and make up your own spec format.
Phase 2A: Initial Draft
Before ANY code or design work:
Delegate to Spec Writer Agent:
task( subagent_type="speckit-spec-writer", description="Create initial spec", prompt="Read .opencode/commands/speckit.specify.md and execute it for: [user's feature request]" )Read and Execute the Speckit command file:
- Read
.opencode/commands/speckit.specify.md - Process any
@filepathreferences (read those files too) - Execute all instructions exactly as written
- Read
Create comprehensive initial draft:
- Analyze user requirements
- Review existing codebase context
- Create structured spec document following the template
- Emphasize deep reasoning and completeness
Show draft to user:
- Present the initial spec
- Collect direct feedback for refinement
Phase 2B: Iterative Refinement
Continue with Spec Writer Agent:
task( subagent_type="speckit-spec-writer", description="Refine spec", prompt="Refine spec based on user feedback: [feedback]" )Rapid feedback cycles (5-10+ rounds expected):
- Quickly incorporate user feedback
- Make focused edits and clarifications
- Favor speed and iteration over perfection
Spec approval:
- Continue cycles until user explicitly approves
- Save final draft to
.github/speckit/specs/{feature-name}/spec.md - STOP here until user approves
Phase 3: Clarify (MANDATORY)
[BLOCKING] EXECUTION REQUIRED
MUST: Read and execute .opencode/commands/speckit.clarify.md
MUST: Delegate to speckit-architect for validation.
Architect: speckit-architect
Validate and clarify the draft:
Delegate to Architect Agent:
task( subagent_type="speckit-architect", description="Validate and clarify spec", prompt="Read .opencode/commands/speckit.clarify.md and execute it for spec at: [spec path]" )Read and Execute the Speckit command file:
- Read
.opencode/commands/speckit.clarify.md - Execute all instructions exactly as written
- Read
Deep Validation:
- Find ALL edge cases not covered
- Identify ALL ambiguities
- Add missing non-functional requirements
- Perform risk analysis
- Generate clarifying questions
Refinement (1-2 rounds expected):
- Present findings to user
- Get answers to clarifying questions
- Update spec with clarifications
- Ensure spec is crystal clear
Completion:
- Ensure ALL uncertainties resolved
- Update spec status to
clarified - Proceed to Phase 3.5 (Research)
Phase 3.5: Market Research (MANDATORY)
[BLOCKING] EXECUTION REQUIRED
MUST: Execute market/competitive research before evaluation.
MUST: Use librarian agent for research (runs in background).
Research Agent: librarian
Research the market landscape for the clarified spec:
Launch Research Agent (Background):
background_task( agent="librarian", description="Market research for [feature name]", prompt="Research market landscape for this feature spec: Feature: [feature name] Spec path: [spec path] Research and report: 1. **Competitive Analysis**: What similar solutions exist? (3-5 competitors) - Their approach, strengths, weaknesses 2. **Market Trends**: Current trends in this space (2025) 3. **Best Practices**: Industry standards and patterns 4. **Potential Differentiators**: How could this feature stand out? 5. **Risks/Concerns**: Common pitfalls to avoid Output a structured research.md report." )Wait for research completion
Present research.md to user:
- Show competitive landscape
- Show market trends
- Allow user to note any irrelevant findings
- Save to
.github/speckit/specs/{feature-name}/research.md
Proceed to Evaluate phase
Phase 3.6: Feature Evaluation (MANDATORY)
[BLOCKING] EXECUTION REQUIRED
MUST: Evaluate spec against research findings.
MUST: Delegate to speckit-architect (Opus) for deep reasoning.
Architect: speckit-architect
Evaluate the spec with research context:
Delegate to Architect Agent:
task( subagent_type="speckit-architect", description="Evaluate spec against market research", prompt="Evaluate this feature spec against market research. Spec: [spec path] Research: [research.md path] Provide evaluation: 1. **Features to ADD**: What's missing that competitors have or market expects? 2. **Features to REMOVE**: What's over-engineered or unnecessary? 3. **Features to MODIFY**: What needs adjustment based on best practices? 4. **Priority Assessment**: Which features are must-have vs nice-to-have? 5. **Differentiation Strategy**: How to stand out from competitors? For each suggestion, provide: - Rationale (why) - Evidence (from research) - Impact (high/medium/low) Output structured evaluation.md report." )Present evaluation.md to user:
- Show feature recommendations (add/remove/modify)
- Show priority assessment
- Show differentiation opportunities
User Decision:
- For EACH suggestion: Accept or Reject
- User may provide reasoning for rejections
- Update spec based on accepted suggestions
Finalize Spec:
- Apply accepted changes to spec
- Update spec status to
evaluated - Save evaluation decisions to
.github/speckit/specs/{feature-name}/evaluation.md - STOP and confirm with user before proceeding to Design
Phase 4: Design Session
Architect: speckit-architect
ONLY after spec is evaluated and finalized (Phase 3.6 complete):
Delegate to Architect Agent:
task( subagent_type="speckit-architect", description="Design architecture", prompt="Design architecture for: [feature name]. Follow brainstorming skill methodology." )Design Session Questions:
- "What's the overall architecture?"
- "Which existing components/modules can be reused?"
- "What new files/components are needed?"
- "What are the key technical decisions?"
- "What could go wrong?"
Create design document:
- Save to
.opencode/designs/{feature-name}-design.md - Include:
- Architecture diagram (text-based)
- Component structure and responsibilities
- Key technical decisions with rationale
- Risk mitigation strategies
- Data flow design
- Save to
Update spec with design:
- Add "## Design" section to spec
- Link to design document
- Update status to
designed - Get user approval before proceeding
Phase 5: Implementation Plan
[BLOCKING] EXECUTION REQUIRED
MUST: Read and execute .opencode/commands/speckit.plan.md
MUST: Delegate to speckit-architect for planning.
Architect: speckit-architect
ONLY after design is approved:
Delegate to Architect Agent:
task( subagent_type="speckit-architect", description="Create implementation plan", prompt="Read .opencode/commands/speckit.plan.md and execute it for: [feature name]" )Read and Execute the Speckit command file:
- Read
.opencode/commands/speckit.plan.md - Execute all instructions exactly as written
- Read
Create Detailed Plan:
- Break design into concrete tasks
- Map task dependencies
- Define file structure
- Specify API contracts
- Plan test strategy
- Define rollout approach
Link plan to spec:
- Save to
.opencode/plans/{feature-name}-plan.md - Update spec with "## Implementation Plan" section
- Link to plan file
- Update status to
planned
- Save to
CRITICAL DECISION POINT:
- Present the plan to the user
- Ask: "Do you approve this plan? If yes, I will proceed to implement ALL tasks autonomously."
- WAIT for explicit approval
- Once approved, DO NOT STOP until Phase 9 is complete
Phase 6: (Optional) Analyze / Checklist
Optional quality pass before task execution:
Run analysis (if needed):
- Read
.opencode/commands/speckit.analyze.md - Execute all instructions in that file
- Read
Run checklist (if needed):
- Read
.opencode/commands/speckit.checklist.md - Execute all instructions in that file
- Read
Skip to Phase 7 if not needed
Phase 7: Tasks (AUTO-EXECUTE)
[BLOCKING] EXECUTION REQUIRED
MUST: Read and execute .opencode/commands/speckit.tasks.md
Main Sisyphus
Triggered IMMEDIATELY after Plan approval:
Announce autonomous execution mode:
- "Engaging autonomous implementation. Stand by for completion."
Read and Execute the Speckit tasks command:
- Read
.opencode/commands/speckit.tasks.md - Execute all instructions exactly as written
- Read
Skill Mapping (Smart Context):
- Review the generated
tasks.md /speckit.taskscommand now auto-generates skill tags (see.opencode/command/speckit.tasks.md)- Verify skill tags are present:
→ /skill-nameat end of task descriptions - Common skill mappings:
Task Type Skill Tag Browser/E2E testing → /playwrightUI/UX components → /frontend-ui-uxQuality checks → /speckit.checklistComplex debugging → /systematic-debugging - Optional: add dependencies with
(id: X)and(depends_on: A,B)
중요: Phase 8에서 태스크 실행 시,
→ /skill-name표기를 만나면:- Read
.opencode/commands/{skill-name}.md또는 해당 스킬 파일 - Execute 그 파일의 지시사항을 따름
- Review the generated
Proceed to Phase 8 immediately
Phase 8: TDD Execution via Orchestration (AUTO-EXECUTE, MANDATORY)
[BLOCKING] PARALLEL EXECUTION REQUIRED
MUST use /orchestrate for ALL task execution. No sequential fallback.
⛔ FORBIDDEN ACTIONS
- ❌ Implementing tasks directly without /orchestrate
- ❌ Calling task(subagent_type="speckit-developer") directly for implementation
- ❌ Writing code yourself in this phase
- ❌ Skipping orchestration "because it's simpler"
✅ REQUIRED ACTION
IMMEDIATELY execute this command:
/orchestrate execute .opencode/plans/<feature-name>-plan.md
If /orchestrate skill is not loaded, first load it:
Read: ~/.claude/skills/orchestrate/SKILL.md
Then execute the orchestration command above
Orchestration Flow
Spawn parallel workers via
/orchestrate:/orchestrate execute .opencode/plans/<feature-name>-plan.md- LLM analyzes tasks and groups them dynamically
- Each worker group spawns as tmux session
- Workers execute in parallel
Each Worker calls appropriate subagent:
Worker → task() → speckit-developer (or other agent based on domain)speckit-developer handles task (with sub-delegation):
Developer가 태스크를 받으면 도메인에 따라:
- UI/Frontend →
task()→frontend-ui-ux-engineer - Documentation →
task()→document-writer - Complex Analysis →
task()→oracle - Backend/API/Testing → 직접 TDD 구현
하나의 태스크에서 여러 서브에이전트 호출 가능. 예: "로그인 기능" = UI(위임) + API(직접) + 문서(위임)
- UI/Frontend →
TDD Cycle (for direct implementation):
- Load Skill: 태스크에
→ /skill-name이 있으면:- Read 해당 스킬의 command 파일 또는 SKILL.md
- Follow 그 파일의 지시사항
- RED: Write failing test
- GREEN: Write minimal code to pass
- REFACTOR: Clean up while keeping tests green
- Mark Complete: Check
[x]intasks.md
- Load Skill: 태스크에
Result Collection:
- Orchestrator collects results from all workers
- Synthesizes and detects conflicts
- Reports completion
Why Mandatory Orchestration?
- 일관된 실행 모델: 항상 같은 방식으로 동작
- 병렬 처리: 태스크가 1개여도 worker 1개로 실행
- 서브에이전트 체인 활용: Worker → Developer → 전문 에이전트
- 토큰 폴백 지원: 각 에이전트별 모델 폴백 설정 적용
Phase 8.5: Global Refactoring (AUTO-EXECUTE)
Optimizer: speckit-optimizer
Project-Wide Cleanup:
Delegate to Optimizer Agent:
task( subagent_type="speckit-optimizer", description="Global refactoring", prompt="Perform global refactoring after implementation. DRY, cleanup, optimize." )Execute Cleanup (leveraging 400k context):
- DRY: Extract duplicated logic from multiple files into shared helpers
- Structure: Verify file organization and move files if needed
- Clean: Remove unused imports, console logs, and dead code
- Style: Ensure consistent naming conventions across modules
- Performance: Optimize algorithms and queries where beneficial
Verify Integrity:
- Run full test suite (
npm test) - Must pass 100% before proceeding
- Verify no regressions introduced
- Run full test suite (
Phase 9: Review & Update (AUTO-EXECUTE)
Developer: speckit-developer
Triggered IMMEDIATELY after refactoring complete:
Delegate to Developer Agent:
task( subagent_type="speckit-developer", description="Review and update spec", prompt="Review implementation against spec and update status to 'implemented'" )Self-review checklist:
- All acceptance criteria met (from spec)
- All tests pass
- Code follows project conventions
- No unrelated changes
- Plan tasks all completed
Update spec status:
- Change status to
implemented - Add implementation date
- Link to PR (if created)
- Add actual implementation notes
- Change status to
Phase 10: Systematic Verification & Quality Score (AUTO-EXECUTE)
Step 10.1: E2E Testing (Conditional)
If project has E2E tests or UI components:
Delegate to E2E Runner Agent:
task( subagent_type="e2e-runner", description="Run E2E tests", prompt="Run E2E tests for implemented features using Playwright" )E2E Runner Responsibilities:
- Run Playwright tests for critical user flows
- Validate UI interactions work correctly
- Check for visual regressions
- Report flaky tests
Skip if: No E2E tests exist or feature is backend-only
Step 10.2: Security Review (Conditional - SaaS/Auth)
If feature involves: auth, payments, user data, API endpoints:
Delegate to Security Reviewer Agent:
task( subagent_type="security-reviewer", description="Security audit", prompt="Security audit for: [feature name]. Check OWASP Top 10." )Security Review Checklist (OWASP Top 10):
- No SQL/NoSQL injection vulnerabilities
- Input sanitization on all user inputs
- No hardcoded secrets/credentials
- Proper authentication checks
- Authorization on all endpoints
- XSS prevention (output encoding)
- CSRF protection
- Secure session management
Critical Vulnerability Protocol:
- 🔴 CRITICAL found → STOP, fix immediately, re-review
- 🟠 HIGH found → Fix before completion
- 🟡 MEDIUM found → Document, fix in follow-up
- 🟢 LOW/None → Proceed
Skip if: Feature has no security implications (pure UI, docs, etc.)
Step 10.3: Quality Scoring
Optimizer: speckit-optimizer
Final Quality Gate with Scoring:
Delegate to Optimizer Agent:
task( subagent_type="speckit-optimizer", description="Quality verification", prompt="Final verification, quality scoring, and debugging if needed" )Run Full Test Suite:
- Ensure no regressions
- Verify all tests pass
Calculate Quality Score (0-100):
Category Max Points Criteria Unit Tests 25 Pass rate: (passed/total) * 25 Code Coverage 25 Coverage %: (coverage/100) * 25 Integration Tests 15 Pass rate: (passed/total) * 15 E2E/Browser Tests 15 Pass rate: (passed/total) * 15 Spec Compliance 10 All acceptance criteria met: 10, partial: 5 Code Quality 10 No lint errors: 5, No type errors: 5 Minimum Passing Score: 80/100
Quality Score Calculation Script:
# Run tests and capture results TEST_RESULT=$(npm test 2>&1) PASSED=$(echo "$TEST_RESULT" | grep -oP '\d+(?= passed)' | head -1 || echo 0) FAILED=$(echo "$TEST_RESULT" | grep -oP '\d+(?= failed)' | head -1 || echo 0) TOTAL=$((PASSED + FAILED)) # Calculate unit test score if [ $TOTAL -gt 0 ]; then UNIT_SCORE=$((PASSED * 25 / TOTAL)) else UNIT_SCORE=0 fi # Get coverage (if available) COVERAGE=$(npm run coverage 2>&1 | grep -oP 'All files[^\d]*\K\d+' || echo 0) COVERAGE_SCORE=$((COVERAGE * 25 / 100)) # Calculate total TOTAL_SCORE=$((UNIT_SCORE + COVERAGE_SCORE)) echo "Quality Score: $TOTAL_SCORE/100"Score Actions:
- Score >= 80: Proceed to completion
- Score 60-79: Warning, ask user if acceptable
- Score < 60: BLOCK completion, require fixes
If bugs found:
- Use systematic debugging (scientific method)
- Fix root causes, not symptoms
- Add tests to prevent recurrence
- Re-calculate quality score
Report Completion:
- ONLY NOW stop and report to user
- Include quality score breakdown
- Provide summary of changes
- List test results
- Note any deviations from plan
Example Output:
## Implementation Complete **Quality Score: 87/100** - Unit Tests: 23/25 (92% pass rate) - Coverage: 21/25 (84% coverage) - Integration: 15/15 (100%) - E2E: 13/15 (87%) - Spec Compliance: 10/10 - Code Quality: 5/10 (minor lint warnings) All acceptance criteria met. Ready for review.
[BLOCKING] Subagent Delegation Rules
MUST delegate to specialized subagents. Direct execution is FORBIDDEN.
Mandatory Agent Assignments
| Phase | Agent | Invocation | MUST Use |
|---|---|---|---|
| Phase 2 (Spec) | speckit-spec-writer |
task(subagent_type="speckit-spec-writer", ...) |
YES |
| Phase 3 (Clarify) | speckit-architect |
task(subagent_type="speckit-architect", ...) |
YES |
| Phase 3.5 (Research) | librarian |
background_task(agent="librarian", ...) |
YES |
| Phase 3.6 (Evaluate) | speckit-architect |
task(subagent_type="speckit-architect", ...) |
YES |
| Phase 4-5 (Design/Plan) | speckit-architect |
task(subagent_type="speckit-architect", ...) |
YES |
| Phase 8-9 (TDD/Review) | speckit-developer |
task(subagent_type="speckit-developer", ...) |
YES |
| Phase 8.5, 10.3 (Refactor/Verify) | speckit-optimizer |
task(subagent_type="speckit-optimizer", ...) |
YES |
| Phase 10.1 (E2E) | e2e-runner |
task(subagent_type="e2e-runner", ...) |
Conditional |
| Phase 10.2 (Security) | security-reviewer |
task(subagent_type="security-reviewer", ...) |
Conditional |
Domain-Specific Delegation (via speckit-developer)
When speckit-developer receives a task, it auto-delegates based on domain:
| Task Domain | Keywords | Delegate To |
|---|---|---|
| Frontend/UI | UI, styling, component, layout, animation, CSS | frontend-ui-ux-engineer |
| Database/Schema | database, schema, migration, SQL, model design | speckit-architect |
| Documentation | docs, README, API docs, guide | document-writer |
| Complex Analysis | architecture, security audit, performance analysis | oracle |
| Backend/API/Testing | (default - developer handles) | Self |
Note: This delegation happens automatically within speckit-developer. You don't need to call these agents directly from the main workflow.
Why Delegation is MANDATORY
- Token Limit Fallback: Subagents have automatic model fallback configured
- Domain Optimization: Each agent uses a model optimized for its domain
- Context Isolation: Prevents context pollution between phases
- Parallel Execution: Multiple subagents can run concurrently
FORBIDDEN Actions (Main Agent)
- MUST NOT: Write spec content directly (delegate to spec-writer)
- MUST NOT: Create design documents directly (delegate to architect)
- MUST NOT: Write implementation code directly (delegate to developer)
- MUST NOT: Perform refactoring directly (delegate to optimizer)
ALLOWED Actions (Main Agent)
- MAY: Read files for context
- MAY: Run bash commands for status checks
- MAY: Coordinate between subagents
- MAY: Verify subagent output quality
- MAY: Update todo lists and progress tracking
Agent Location: ~/.config/opencode/agents/ or ~/.claude/agents/
Skill Tags in Tasks
Tasks in tasks.md may have skill tags at the end:
- [ ] T007 [US1] Create login page → /playwright
Execution Rule: When encountering → /skill-name:
- Parse the skill name (e.g.,
playwright) - Read the skill's command file:
.opencode/commands/{skill-name}.mdor~/.claude/skills/{skill-name}/SKILL.md - Execute the task following that file's instructions
Available Skills for Task Mapping
| Skill | Purpose | How to Execute |
|---|---|---|
/playwright |
Browser automation, E2E tests | Read .opencode/commands/playwright.md |
/frontend-ui-ux |
UI component design | task(subagent_type="frontend-ui-ux-engineer", ...) |
/speckit.checklist |
Quality validation | Read .opencode/commands/speckit.checklist.md |
/systematic-debugging |
Complex debugging | Read ~/.claude/skills/systematic-debugging/SKILL.md |
/orchestrate |
Parallel worker execution | Read ~/.claude/skills/orchestrate/SKILL.md |
Critical Rules
NEVER:
- ❌ Skip spec creation
- ❌ Skip clarify before design
- ❌ Skip tasks before TDD
- ❌ Start coding before spec approval
- ❌ Write code before tests (except when TDD doesn't apply)
- ❌ Mark task complete without verification
- ❌ Change spec status without completing phase
ALWAYS:
- ✅ Ask before proceeding to next phase
- ✅ Update spec at each phase
- ✅ Run tests after every change
- ✅ Commit after each task
- ✅ Show progress to user
- ✅ Prefer scripts for deterministic data extraction to reduce context cost
- ✅ Archive reusable prompts in
prompts/(or.opencode/prompts/) and reference them
Verification Before Completion
Before declaring "done", verify:
# 1. All tests pass
npm test # or appropriate test command
# 2. Spec is updated
grep "status: implemented" .github/speckit/specs/{feature-name}/spec.md
# 3. Plan is complete
grep "\[x\]" .opencode/plans/{feature-name}-plan.md | wc -l
# 4. No uncommitted changes
git status
Example Session
User: "Add user authentication"
You:
- ✅
/oms-init(first-time only - setup structure) - ✅
/speckit.constitution(first-time only - project principles) - ✅
/speckit.specify→ spec created/updated - ✅
/speckit.clarify→ clarifications recorded - ✅
/speckit.research→ market/competitive research completed - ✅
/speckit.evaluate→ feature evaluation, accept/reject decisions - ✅ Use
superpowers:brainstorming→ Design session - ✅ Create
.opencode/designs/user-auth-design.md - ✅
/speckit.plan→ plan created - ✅ (Optional)
superpowers:writing-plansenhancement - ✅ (Optional)
/speckit.analyze//speckit.checklist - ✅
/speckit.tasks→ tasks approved - ✅ Use
superpowers:test-driven-development - ✅ Execute each task: RED → GREEN → REFACTOR
- ✅ Use
superpowers:requesting-code-review - ✅ Update spec status to
implemented - ✅ Done!
File Structure
project/
├── .github/
│ └── speckit/
│ ├── specs/
│ │ ├── user-auth/
│ │ │ ├── spec.md ← WHAT (requirements)
│ │ │ ├── research.md ← Market/competitive research
│ │ │ └── evaluation.md ← Feature evaluation decisions
│ │ └── payment/
│ │ └── spec.md
│ ├── decisions/
│ │ └── auth-strategy.md
│ └── constitution.md ← optional, first-time only
│
├── .opencode/
│ ├── designs/
│ │ └── user-auth-design.md ← HOW (architecture)
│ └── plans/
│ └── user-auth-plan.md ← TASKS (implementation)
│
├── src/
│ └── ... (code)
└── tests/
└── ... (tests)
Troubleshooting
"User wants to skip clarify" → Explain: "Clarify is required before design to avoid rework."
"Feature is too small for full workflow" → Still create minimal spec. If truly trivial (1-2 line change), keep phases compact.
"Spec already exists but is outdated" → Update spec first, then re-run clarify.
"User wants to code immediately" → Firmly but politely insist: "Let me create a quick spec first. It will save time."
Integration with Superpowers
This skill orchestrates other Superpowers skills:
oh-my-speckit (meta-skill)
├─ uses: oms-init (initialization)
├─ uses: brainstorming (design)
├─ uses: writing-plans (planning)
├─ uses: test-driven-development (implementation)
├─ uses: requesting-code-review (review)
├─ uses: systematic-debugging (verification)
├─ uses: spec-cache (optimization)
└─ manages: Spec lifecycle
Priority: This skill takes precedence over individual skills when Speckit directory is present.
Status Lifecycle
draft → clarified → researched → evaluated → designed → planned → tasked → implemented → verified
Track status in spec frontmatter. Never skip statuses.