2.7 KiB
2.7 KiB
Step 1: Load UAT Document
Purpose
Load and validate the UAT document for the specified epic, extracting all test scenarios for classification and execution.
Inputs
| Input | Source | Required |
|---|---|---|
| epic_id | CLI argument | Yes |
| uat_dir | Configuration | Yes (default: docs/uat) |
Process
1.1 Locate UAT Document
Search for UAT document using these patterns in order:
{uat_dir}/epic-{epic_id}-uat.md{uat_dir}/epic-0{epic_id}-uat.md(zero-padded){uat_dir}/{epic_id}-uat.md
If not found: Exit with error code 1 and message:
UAT document not found for Epic {epic_id}
Searched in: {uat_dir}
Expected: epic-{epic_id}-uat.md
1.2 Validate Document Structure
Confirm document contains at least one of these sections:
## Test Scenarios## Acceptance Criteria## Scenarios## Success Criteria
Warning if missing: Log warning but continue (scenarios may be inline)
1.3 Parse Scenarios
Extract scenario blocks by detecting:
- Headers starting with
###(individual scenario titles) - Numbered items
1.,2., etc. under scenario sections - Checkbox items
- [ ]in criteria sections
For each scenario, extract:
- Scenario ID: Numeric index or explicit ID
- Scenario Name: Title text
- Steps: Given/When/Then or numbered steps
- Verification Command: Code block or CLI reference (if present)
- Expected Result: Success criteria text
1.4 Build Scenario List
Create structured list of scenarios:
scenarios:
- id: 1
name: "Project Initialization"
steps:
- "Run npx heimdall init"
- "Verify config file created"
verification_command: "npx heimdall --version"
expected_result: "displays a version number"
raw_content: |
### 1. Project Initialization
...
Outputs
| Output | Location | Description |
|---|---|---|
| scenario_list | Memory/State | Array of parsed scenario objects |
| scenario_count | Console | Total number of scenarios found |
| uat_file_path | State | Path to loaded UAT document |
Completion Signal
UAT_LOADED: {scenario_count} scenarios from {uat_file_path}
Error Handling
| Error | Action |
|---|---|
| File not found | Exit 1 with clear error message |
| Empty file | Exit 1 with "UAT document is empty" |
| No scenarios detected | Log warning, return empty list (gate passes by default) |
| Parse error | Log warning for specific section, continue with partial results |
Example Output
[UAT] Loading UAT document for Epic 1
[UAT] Found: docs/uat/epic-1-uat.md
[UAT] Parsed 9 scenarios
UAT_LOADED: 9 scenarios from docs/uat/epic-1-uat.md