221 lines
5.9 KiB
Markdown
221 lines
5.9 KiB
Markdown
# Standalone Workflow Builder Architecture
|
|
|
|
This document describes the architecture of the standalone workflow builder system - a pure markdown approach to creating structured workflows.
|
|
|
|
## Core Architecture Principles
|
|
|
|
### 1. Micro-File Design
|
|
|
|
Each workflow consists of multiple focused, self-contained files:
|
|
|
|
```
|
|
workflow-folder/
|
|
├── workflow.md # Main workflow configuration
|
|
├── steps/ # Step instruction files (focused, self-contained)
|
|
│ ├── step-01-init.md
|
|
│ ├── step-02-profile.md
|
|
│ └── step-N-[name].md
|
|
├── templates/ # Content templates
|
|
│ ├── profile-section.md
|
|
│ └── [other-sections].md
|
|
└── data/ # Optional data files
|
|
└── [data-files].csv/.json
|
|
```
|
|
|
|
### 2. Just-In-Time (JIT) Loading
|
|
|
|
- **Single File in Memory**: Only the current step file is loaded
|
|
- **No Future Peeking**: Step files must not reference future steps
|
|
- **Sequential Processing**: Steps execute in strict order
|
|
- **On-Demand Loading**: Templates load only when needed
|
|
|
|
### 3. State Management
|
|
|
|
- **Frontmatter Tracking**: Workflow state stored in output document frontmatter
|
|
- **Progress Array**: `stepsCompleted` tracks completed steps
|
|
- **Last Step Marker**: `lastStep` indicates where to resume
|
|
- **Append-Only Building**: Documents grow by appending content
|
|
|
|
### 4. Execution Model
|
|
|
|
```
|
|
1. Load workflow.md → Read configuration
|
|
2. Execute step-01-init.md → Initialize or detect continuation
|
|
3. For each step:
|
|
a. Load step file completely
|
|
b. Execute instructions sequentially
|
|
c. Wait for user input at menu points
|
|
d. Only proceed with 'C' (Continue)
|
|
e. Update document/frontmatter
|
|
f. Load next step
|
|
```
|
|
|
|
## Key Components
|
|
|
|
### Workflow File (workflow.md)
|
|
|
|
- **Purpose**: Entry point and configuration
|
|
- **Content**: Role definition, goal, architecture rules
|
|
- **Action**: Points to step-01-init.md
|
|
|
|
### Step Files (step-NN-[name].md)
|
|
|
|
- **Size**: Focused and concise (typically 5-10KB)
|
|
- **Structure**: Frontmatter + sequential instructions
|
|
- **Features**: Self-contained rules, menu handling, state updates
|
|
|
|
### Frontmatter Variables
|
|
|
|
Standard variables in step files:
|
|
|
|
```yaml
|
|
workflow_path: '{project-root}/{*bmad_folder*}/bmb/reference/workflows/[workflow-name]'
|
|
thisStepFile: '{workflow_path}/steps/step-[N]-[name].md'
|
|
nextStepFile: '{workflow_path}/steps/step-[N+1]-[name].md'
|
|
workflowFile: '{workflow_path}/workflow.md'
|
|
outputFile: '{output_folder}/[output-name]-{project_name}.md'
|
|
```
|
|
|
|
## Execution Flow
|
|
|
|
### Fresh Workflow
|
|
|
|
```
|
|
workflow.md
|
|
↓
|
|
step-01-init.md (creates document)
|
|
↓
|
|
step-02-[name].md
|
|
↓
|
|
step-03-[name].md
|
|
↓
|
|
...
|
|
↓
|
|
step-N-[final].md (completes workflow)
|
|
```
|
|
|
|
### Continuation Workflow
|
|
|
|
```
|
|
workflow.md
|
|
↓
|
|
step-01-init.md (detects existing document)
|
|
↓
|
|
step-01b-continue.md (analyzes state)
|
|
↓
|
|
step-[appropriate-next].md
|
|
```
|
|
|
|
## Menu System
|
|
|
|
### Standard Menu Pattern
|
|
|
|
```
|
|
Display: **Select an Option:** [A] [Action] [P] Party Mode [C] Continue
|
|
|
|
#### Menu Handling Logic:
|
|
- IF A: Execute {advancedElicitationTask}
|
|
- IF P: Execute {partyModeWorkflow}
|
|
- IF C: Save content, update frontmatter, load next step
|
|
```
|
|
|
|
### Menu Rules
|
|
|
|
- **Halt Required**: Always wait for user input
|
|
- **Continue Only**: Only proceed with 'C' selection
|
|
- **State Persistence**: Save before loading next step
|
|
- **Loop Back**: Return to menu after other actions
|
|
|
|
## Collaborative Dialogue Model
|
|
|
|
### Not Command-Response
|
|
|
|
- **Facilitator Role**: AI guides, user decides
|
|
- **Equal Partnership**: Both parties contribute
|
|
- **No Assumptions**: Don't assume user wants next step
|
|
- **Explicit Consent**: Always ask for input
|
|
|
|
### Example Pattern
|
|
|
|
```
|
|
AI: "Tell me about your dietary preferences."
|
|
User: [provides information]
|
|
AI: "Thank you. Now let's discuss your cooking habits."
|
|
[Continue conversation]
|
|
AI: **Menu Options**
|
|
```
|
|
|
|
## CSV Intelligence (Optional)
|
|
|
|
### Data-Driven Behavior
|
|
|
|
- Configuration in CSV files
|
|
- Dynamic menu options
|
|
- Variable substitution
|
|
- Conditional logic
|
|
|
|
### Example Structure
|
|
|
|
```csv
|
|
variable,type,value,description
|
|
cooking_frequency,choice,"daily|weekly|occasionally","How often user cooks"
|
|
meal_type,multi,"breakfast|lunch|dinner|snacks","Types of meals to plan"
|
|
```
|
|
|
|
## Best Practices
|
|
|
|
### File Size Limits
|
|
|
|
- **Step Files**: Keep focused and reasonably sized (5-10KB typical)
|
|
- **Templates**: Keep focused and reusable
|
|
- **Workflow File**: Keep lean, no implementation details
|
|
|
|
### Sequential Enforcement
|
|
|
|
- **Numbered Steps**: Use sequential numbering (1, 2, 3...)
|
|
- **No Skipping**: Each step must complete
|
|
- **State Updates**: Mark completion in frontmatter
|
|
|
|
### Error Prevention
|
|
|
|
- **Path Variables**: Use frontmatter variables, never hardcode
|
|
- **Complete Loading**: Always read entire file before execution
|
|
- **Menu Halts**: Never proceed without 'C' selection
|
|
|
|
## Migration from XML
|
|
|
|
### Advantages
|
|
|
|
- **No Dependencies**: Pure markdown, no XML parsing
|
|
- **Human Readable**: Files are self-documenting
|
|
- **Git Friendly**: Clean diffs and merges
|
|
- **Flexible**: Easier to modify and extend
|
|
|
|
### Key Differences
|
|
|
|
| XML Workflows | Standalone Workflows |
|
|
| ----------------- | ----------------------- |
|
|
| Single large file | Multiple micro-files |
|
|
| Complex structure | Simple sequential steps |
|
|
| Parser required | Any markdown viewer |
|
|
| Rigid format | Flexible organization |
|
|
|
|
## Implementation Notes
|
|
|
|
### Critical Rules
|
|
|
|
- **NEVER** load multiple step files
|
|
- **ALWAYS** read complete step file first
|
|
- **NEVER** skip steps or optimize
|
|
- **ALWAYS** update frontmatter of the output file when a step is complete
|
|
- **NEVER** proceed without user consent
|
|
|
|
### Success Metrics
|
|
|
|
- Documents created correctly
|
|
- All steps completed sequentially
|
|
- User satisfied with collaborative process
|
|
- Clean, maintainable file structure
|
|
|
|
This architecture ensures disciplined, predictable workflow execution while maintaining flexibility for different use cases.
|