- Nx 22.7 monorepo (pnpm 11.1, TypeScript 5.9, Node 24) - apps/api: NestJS 11 (CJS conforme CODING-RULES.md PGD-DB-004) - apps/web: React 19 + Vite 8 (ESM) - libs/shared/api-interface: Zod contract base - Docker Compose dev: Postgres 18, Valkey 8, MinIO, Mailpit - WDS artifacts: - design-artifacts/A-Product-Brief/ (5 docs canônicos + 16 dialogs) - design-artifacts/B-Trigger-Map/ (hub + 4 personas + feature impact) - Stack canon: STACK.md v2.2 + CODING-RULES.md v2.0 + brand.md - AGENTS.md + README.md como entrada para devs/agentes Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
3.6 KiB
name, description, outputFile
| name | description | outputFile |
|---|---|---|
| step-05-validate-and-complete | Validate ATDD outputs and summarize | {test_artifacts}/atdd-checklist-{story_key}.md |
Step 5: Validate & Complete
STEP GOAL
Validate ATDD outputs and provide a completion summary.
MANDATORY EXECUTION RULES
- 📖 Read the entire step file before acting
- ✅ Speak in
{communication_language} - ✅ Validate against the checklist
EXECUTION PROTOCOLS:
- 🎯 Follow the MANDATORY SEQUENCE exactly
- 💾 Record outputs before proceeding
- 📖 Load the next step only when instructed
CONTEXT BOUNDARIES:
- Available context: config, loaded artifacts, and knowledge fragments
- Focus: this step's goal only
- Limits: do not execute future steps
- Dependencies: prior steps' outputs (if any)
MANDATORY SEQUENCE
CRITICAL: Follow this sequence exactly. Do not skip, reorder, or improvise.
1. Validation
Use checklist.md to validate:
- Prerequisites satisfied
- Test files created correctly
- Checklist matches acceptance criteria
- Tests are generated as red-phase scaffolds and marked with
test.skip() - Story metadata and handoff paths are captured for downstream workflows
- CLI sessions cleaned up (no orphaned browsers)
- Temp artifacts stored in
{test_artifacts}/not random locations
Fix any gaps before completion.
2. Polish Output
Before finalizing, review the complete output document for quality:
- Remove duplication: Progressive-append workflow may have created repeated sections — consolidate
- Verify consistency: Ensure terminology, risk scores, and references are consistent throughout
- Check completeness: All template sections should be populated or explicitly marked N/A
- Format cleanup: Ensure markdown formatting is clean (tables aligned, headers consistent, no orphaned references)
3. Completion Summary
Report:
- Test files created
- Checklist output path
- Story key / story file handoff path
- Key risks or assumptions
- Next recommended workflow (usually
dev-story;automatecomes after implementation)
4. Save Progress
Save this step's accumulated work to {outputFile}.
-
If
{outputFile}does not exist (first save), create it with YAML frontmatter:--- stepsCompleted: ['step-05-validate-and-complete'] lastStep: 'step-05-validate-and-complete' lastSaved: '{date}' storyId: '{story_id}' storyKey: '{story_key}' storyFile: '{story_file}' atddChecklistPath: '{outputFile}' generatedTestFiles: [] ---Then write this step's output below the frontmatter.
-
If
{outputFile}already exists, update:- Add
'step-05-validate-and-complete'tostepsCompletedarray (only if not already present) - Set
lastStep: 'step-05-validate-and-complete' - Set
lastSaved: '{date}' - Ensure
storyId,storyKey,storyFile, andatddChecklistPathare present and populated - Ensure
generatedTestFilesremains populated with the deterministic list of present generated test paths - Append this step's output to the appropriate section.
- Add
🚨 SYSTEM SUCCESS/FAILURE METRICS:
✅ SUCCESS:
- Step completed in full with required outputs
❌ SYSTEM FAILURE:
- Skipped sequence steps or missing outputs Master Rule: Skipping steps is FORBIDDEN.
On Complete
Run: python3 {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --key workflow.on_complete
If the resolver succeeds and returns a non-empty workflow.on_complete, execute that value as the final terminal instruction before exiting.
If the resolver fails, returns no output, or resolves an empty value, skip the hook and exit normally.