Files
BMAD-METHOD/bmad-core/workflows/greenfield-service.yml

144 lines
6.1 KiB
YAML

workflow:
id: greenfield-service
name: Greenfield Service/API Development
description: >-
Agent workflow for building backend services from concept to development.
Supports both comprehensive planning for complex services and rapid prototyping for simple APIs.
type: greenfield
project_types:
- rest-api
- graphql-api
- microservice
- backend-service
- api-prototype
- simple-service
# For Complex Services (Production APIs, Multiple Endpoints)
complex_service_sequence:
- agent: analyst
creates: project-brief.md
optional_steps:
- brainstorming_session
- market_research_prompt
notes: "Can do brainstorming first, then optional deep research before creating project brief. SAVE OUTPUT: Copy final project-brief.md to your project's docs/ folder."
- agent: pm
creates: prd.md
requires: project-brief.md
notes: "Creates PRD from project brief using prd-tmpl, focused on API/service requirements. SAVE OUTPUT: Copy final prd.md to your project's docs/ folder."
- agent: architect
creates: architecture.md
requires: prd.md
optional_steps:
- technical_research_prompt
notes: "Creates backend/service architecture using architecture-tmpl. May suggest changes to PRD stories or new stories. SAVE OUTPUT: Copy final architecture.md to your project's docs/ folder."
- agent: pm
updates: prd.md (if needed)
requires: architecture.md
condition: architecture_suggests_prd_changes
notes: "If architect suggests story changes, update PRD and re-export the complete unredacted prd.md to docs/ folder."
- agent: po
validates: all_artifacts
uses: po-master-checklist
notes: "Validates all documents for consistency and completeness. May require updates to any document."
- agent: various
updates: any_flagged_documents
condition: po_checklist_issues
notes: "If PO finds issues, return to relevant agent to fix and re-export updated documents to docs/ folder."
- workflow_end:
action: move_to_ide
notes: "All planning artifacts complete. Move to IDE environment to begin development. Explain to the user the IDE Development Workflow next steps: data#bmad-kb:IDE Development Workflow"
# For Simple Services (Simple APIs, Single Purpose Services)
simple_service_sequence:
- step: service_scope
action: assess complexity
notes: "First, assess if this needs full planning (use complex_service_sequence) or can be a simple API/service."
- agent: analyst
creates: project-brief.md
optional_steps:
- brainstorming_session
notes: "Creates focused project brief for simple service. SAVE OUTPUT: Copy final project-brief.md to your project's docs/ folder."
- agent: pm
creates: simple_epic OR single_story
uses: create-epic OR create-story
requires: project-brief.md
notes: "Create simple epic or story for API endpoints instead of full PRD for rapid development."
- workflow_end:
action: move_to_ide
notes: "Simple service defined. Move to IDE environment to begin development. Explain to the user the IDE Development Workflow next steps: data#bmad-kb:IDE Development Workflow"
flow_diagram: |
```mermaid
graph TD
A[Start: Service Development] --> B{Service Complexity?}
B -->|Complex/Production| C[analyst: project-brief.md]
B -->|Simple/Prototype| D[analyst: focused project-brief.md]
C --> E[pm: prd.md]
E --> F[architect: architecture.md]
F --> G{Architecture suggests PRD changes?}
G -->|Yes| H[pm: update prd.md]
G -->|No| I[po: validate all artifacts]
H --> I
I --> J{PO finds issues?}
J -->|Yes| K[Return to relevant agent for fixes]
J -->|No| L[Move to IDE Environment]
K --> I
D --> M[pm: simple epic or story]
M --> N[Move to IDE Environment]
C -.-> C1[Optional: brainstorming]
C -.-> C2[Optional: market research]
F -.-> F1[Optional: technical research]
D -.-> D1[Optional: brainstorming]
style L fill:#90EE90
style N fill:#90EE90
style C fill:#FFE4B5
style E fill:#FFE4B5
style F fill:#FFE4B5
style D fill:#FFB6C1
style M fill:#FFB6C1
```
decision_guidance:
use_complex_sequence_when:
- Building production APIs or microservices
- Multiple endpoints and complex business logic
- Need comprehensive documentation and testing
- Multiple team members will be involved
- Long-term maintenance expected
- Enterprise or external-facing APIs
use_simple_sequence_when:
- Building simple APIs or single-purpose services
- Few endpoints with straightforward logic
- Prototyping or proof-of-concept APIs
- Solo developer or small team
- Internal tools or utilities
- Learning or experimental projects
handoff_prompts:
# Complex sequence prompts
analyst_to_pm: "Project brief is complete. Save it as docs/project-brief.md in your project, then create the PRD."
pm_to_architect: "PRD is ready. Save it as docs/prd.md in your project, then create the service architecture."
architect_review: "Architecture complete. Save it as docs/architecture.md. Do you suggest any changes to the PRD stories or need new stories added?"
architect_to_pm: "Please update the PRD with the suggested story changes, then re-export the complete prd.md to docs/."
updated_to_po: "All documents ready in docs/ folder. Please validate all artifacts for consistency."
po_issues: "PO found issues with [document]. Please return to [agent] to fix and re-save the updated document."
complex_complete: "All planning artifacts validated and saved in docs/ folder. Move to IDE environment to begin development."
# Simple sequence prompts
simple_analyst_to_pm: "Focused project brief complete. Save it as docs/project-brief.md, then create simple epic or story for API development."
simple_complete: "Simple service defined. Move to IDE environment to begin development."