Module: Aidp::Execute::Steps

Defined in:
lib/aidp/execute/steps.rb

Constant Summary collapse

SPEC =

Simplified step specifications with fewer gates Templates are now organized by purpose (planning/, analysis/, implementation/) and named with action verbs for clarity Skills define WHO the agent is, templates define WHAT task to do

{
  "00_LLM_STYLE_GUIDE" => {
    "templates" => ["planning/generate_llm_style_guide.md"],
    "description" => "Generate project-specific LLM Style Guide",
    "outs" => ["docs/LLM_STYLE_GUIDE.md"],
    "gate" => false,
    "interactive" => false
  },
  "00_PRD" => {
    "skill" => "product_strategist",
    "templates" => ["planning/create_prd.md"],
    "description" => "Generate Product Requirements Document",
    "outs" => ["docs/prd.md"],
    "gate" => false, # Now auto-generated from user input
    "interactive" => true # Uses collected user input
  },
  "01_NFRS" => {
    "templates" => ["planning/define_nfrs.md"],
    "description" => "Define Non-Functional Requirements",
    "outs" => ["docs/nfrs.md"],
    "gate" => false # Auto-generated
  },
  "02_ARCHITECTURE" => {
    "templates" => ["planning/design_architecture.md"],
    "description" => "Design System Architecture",
    "outs" => ["docs/architecture.md"],
    "gate" => false # Auto-generated
  },
  "02A_ARCH_GATE_QUESTIONS" => {
    "templates" => ["planning/ask_architecture_questions.md"],
    "description" => "Architecture Gate Questions",
    "outs" => ["docs/arch_gate_questions.md"],
    "gate" => true
  },
  "03_ADR_FACTORY" => {
    "templates" => ["planning/generate_adrs.md"],
    "description" => "Generate Architecture Decision Records",
    "outs" => ["docs/adr/*.md"],
    "gate" => false
  },
  "04_DOMAIN_DECOMPOSITION" => {
    "templates" => ["planning/decompose_domain.md"],
    "description" => "Decompose Domain into Components",
    "outs" => ["docs/domain_decomposition.md"],
    "gate" => false # Auto-generated
  },
  "05_API_DESIGN" => {
    "templates" => ["planning/design_apis.md"],
    "description" => "Design APIs and Interfaces",
    "outs" => ["docs/api_design.md"],
    "gate" => false # Auto-generated
  },
  "06_DATA_MODEL" => {
    "templates" => ["planning/design_data_model.md"],
    "description" => "Design Data Model",
    "outs" => ["docs/data_model.md"],
    "gate" => true
  },
  "07_SECURITY_REVIEW" => {
    "templates" => ["planning/plan_testing.md"],
    "description" => "Security Review and Threat Model",
    "outs" => ["docs/security_review.md"],
    "gate" => true
  },
  "08_PERFORMANCE_REVIEW" => {
    "templates" => ["planning/create_tasks.md"],
    "description" => "Performance Review and Optimization",
    "outs" => ["docs/performance_review.md"],
    "gate" => true
  },
  "09_RELIABILITY_REVIEW" => {
    "templates" => ["implementation/setup_scaffolding.md"],
    "description" => "Reliability Review and SLOs",
    "outs" => ["docs/reliability_review.md"],
    "gate" => true
  },
  "10_TESTING_STRATEGY" => {
    "templates" => ["implementation/implement_features.md"],
    "description" => "Define Testing Strategy",
    "outs" => ["docs/testing_strategy.md"],
    "gate" => false # Auto-generated
  },
  "11_STATIC_ANALYSIS" => {
    "templates" => ["implementation/configure_static_analysis.md"],
    "description" => "Static Code Analysis",
    "outs" => ["docs/static_analysis.md"],
    "gate" => false
  },
  "12_OBSERVABILITY_SLOS" => {
    "templates" => ["planning/plan_observability.md"],
    "description" => "Define Observability and SLOs",
    "outs" => ["docs/observability_slos.md"],
    "gate" => true
  },
  "13_DELIVERY_ROLLOUT" => {
    "templates" => ["implementation/plan_delivery.md"],
    "description" => "Plan Delivery and Rollout",
    "outs" => ["docs/delivery_rollout.md"],
    "gate" => true
  },
  "14_DOCS_PORTAL" => {
    "templates" => ["implementation/create_documentation_portal.md"],
    "description" => "Documentation Portal",
    "outs" => ["docs/docs_portal.md"],
    "gate" => false
  },
  "15_POST_RELEASE" => {
    "templates" => ["implementation/review_post_release.md"],
    "description" => "Post-Release Review",
    "outs" => ["docs/post_release.md"],
    "gate" => false # Auto-generated
  },
  # New implementation step for actual development work
  "16_IMPLEMENTATION" => {
    "templates" => ["implementation/implement_features.md"], # Reuse existing implementation template
    "description" => "Execute Implementation Tasks",
    "outs" => ["implementation_log.md"],
    "gate" => false,
    "implementation" => true # Special step that runs development tasks
  },
  # Simple task execution - for one-off commands and simple fixes
  "99_SIMPLE_TASK" => {
    "templates" => ["implementation/simple_task.md"],
    "description" => "Execute Simple Task (one-off commands, quick fixes, linting; emit NEXT_UNIT when more tooling is needed)",
    "outs" => [],
    "gate" => false,
    "simple" => true # Special step for simple, focused tasks
  }
}.freeze