12 KiB
Workflow Audit Report
Workflow: tech-spec Audit Date: 2025-10-21 Auditor: Audit Workflow (BMAD v6) Workflow Type: Document (template-based) Workflow Path: /Users/brianmadison/dev/BMAD-METHOD/src/modules/bmm/workflows/4-implementation/epic-tech-context
Executive Summary
Overall Status: ⚠️ ISSUES FOUND - Requires fixes before production use
Issue Breakdown:
- Critical Issues: 2
- Important Issues: 1
- Cleanup Recommendations: 4
Primary Concerns:
- Web bundle missing critical workflow dependencies
- Output path hardcoded instead of using config variable
- Configuration bloat (40% unused variables)
1. Standard Config Block Validation
✅ Status: PASS
All required standard config variables are present and correctly formatted:
Required Variables:
- ✅
config_source: "{project-root}/bmad/bmm/config.yaml" - ✅
output_folder: "{config_source}:output_folder" - ✅
user_name: "{config_source}:user_name" - ✅
communication_language: "{config_source}:communication_language" - ✅
date: system-generated
Additional Config Variables Found:
- ⚠️
document_output_language(non-standard, potentially unused) - ⚠️
user_skill_level(non-standard, potentially unused)
Recommendation: Verify usage of additional config variables or remove if unused.
2. YAML/Instruction/Template Alignment
❌ Issues Found: Configuration Bloat
Variables Analyzed: 5 custom fields Used in Instructions: 3 Used in Template: N/A (config variables) Unused (Bloat): 2
Unused Variables (BLOAT):
-
document_output_language- Location: workflow.yaml line 10
- Status: Defined but never referenced in instructions.md or template.md
- Impact: Configuration bloat
- Action Required: Remove from yaml
-
user_skill_level- Location: workflow.yaml line 11
- Status: Defined but never referenced in instructions.md or template.md
- Impact: Configuration bloat
- Action Required: Remove from yaml
Properly Used Variables:
- ✅
output_folder→ Used in instructions.md (lines 12, 129) - ✅
user_name→ Used in instructions.md (lines 143, 166) and template.md (line 4) - ✅
communication_language→ Used in instructions.md (line 6) - ✅
date→ Used in template.md (line 3) and output file naming - ✅
non_interactive→ Used in instructions.md (lines 8, 66, 68)
Bloat Metrics:
- Total custom yaml fields: 5
- Used fields: 3
- Unused fields: 2
- Bloat Percentage: 40%
3. Config Variable Usage
Overall Status: ⚠️ IMPORTANT ISSUE FOUND
Communication Language:
- ✅ Properly used on line 6:
Communicate all responses in {communication_language} - ✅ No inappropriate usage in template headers
- Status: CORRECT
User Name:
- ✅ Used for personalization on lines 143, 166
- ✅ Optional metadata usage in template (line 4)
- Status: CORRECT
Output Folder:
- ✅ Properly used for file searches (lines 12, 129)
- ❌ ISSUE:
default_output_filehardcodes path instead of using variable- Current:
"{project-root}/docs/tech-spec-epic-{{epic_id}}.md" - Should be:
"{output_folder}/tech-spec-epic-{{epic_id}}.md" - Impact: Ignores user's configured output folder preference
- Severity: IMPORTANT
- Current:
Date:
- ✅ System-generated and available
- ✅ Used in template metadata (line 3)
- ✅ Used in output file naming
- Status: CORRECT
Action Required:
Fix default_output_file in workflow.yaml:
# Current (line 29):
default_output_file: "{project-root}/docs/tech-spec-epic-{{epic_id}}.md"
# Should be:
default_output_file: "{output_folder}/tech-spec-epic-{{epic_id}}.md"
4. Web Bundle Validation
🚨 Status: CRITICAL ISSUES FOUND
Current Web Bundle Configuration:
web_bundle:
name: 'tech-spec'
description: '...'
author: 'BMAD BMM'
web_bundle_files:
- 'bmad/bmm/workflows/4-implementation/epic-tech-context/template.md'
- 'bmad/bmm/workflows/4-implementation/epic-tech-context/instructions.md'
- 'bmad/bmm/workflows/4-implementation/epic-tech-context/checklist.md'
Path Validation:
- ✅ All paths use bmad/-relative format (NOT {project-root})
- ✅ No {config_source} variables in web_bundle section
- ✅ Paths match actual file locations
Completeness Check:
- ✅ instructions.md listed
- ✅ template.md listed (document workflow)
- ✅ checklist.md listed
🚨 Critical Issues:
Issue 1: Missing Workflow Dependency
- Severity: CRITICAL
- Location: instructions.md line 133
- Problem: Workflow invokes
workflow-statusbut dependency not in web_bundle_files - Invocation:
<invoke-workflow path="{project-root}/bmad/bmm/workflows/workflow-status"> - Missing files:
bmad/bmm/workflows/workflow-status/workflow.yamlbmad/bmm/workflows/workflow-status/instructions.md(if exists)
Issue 2: Missing existing_workflows Field
- Severity: CRITICAL
- Problem: When
<invoke-workflow>calls exist, web_bundle MUST includeexisting_workflowsfield - Current: Field not present
- Required: Mapping of workflow variables to paths
Required Fix:
web_bundle:
name: 'tech-spec'
description: 'Generate a comprehensive Technical Specification from PRD and Architecture with acceptance criteria and traceability mapping'
author: 'BMAD BMM'
existing_workflows:
- workflow_status: 'bmad/bmm/workflows/workflow-status/workflow.yaml'
web_bundle_files:
- 'bmad/bmm/workflows/4-implementation/epic-tech-context/template.md'
- 'bmad/bmm/workflows/4-implementation/epic-tech-context/instructions.md'
- 'bmad/bmm/workflows/4-implementation/epic-tech-context/checklist.md'
- 'bmad/bmm/workflows/workflow-status/workflow.yaml'
- 'bmad/bmm/workflows/workflow-status/instructions.md'
Web Bundle Status:
- Web Bundle Present: ✅ Yes
- Files Listed: 3
- Missing Files: 2+
- Completeness: ❌ INCOMPLETE
5. Bloat Detection
Bloat Summary
Unused YAML Fields: 2
-
document_output_language- Type: Config variable
- Usage: Not referenced anywhere
- Recommendation: Remove
-
user_skill_level- Type: Config variable
- Usage: Not referenced anywhere
- Recommendation: Remove
Hardcoded Values: 1
default_output_filepath- Current:
{project-root}/docs/tech-spec-epic-{{epic_id}}.md - Should use:
{output_folder} - Impact: Ignores user configuration
- Recommendation: Fix to use {output_folder}
- Current:
Redundant Configuration: 3 fields
- Metadata duplication between top-level and web_bundle:
nameappears on yaml line 1 AND web_bundle line 36descriptionappears on yaml line 2 AND web_bundle line 37authorappears on yaml line 3 AND web_bundle line 38- Recommendation: Remove duplication (keep in one location)
Bloat Metrics:
- Total custom yaml fields analyzed: 5
- Used fields: 3
- Unused fields: 2
- Bloat Percentage: 40%
- Redundant metadata fields: 3
- Cleanup Potential: HIGH (~30% configuration reduction possible)
6. Template Variable Mapping
✅ Status: EXCELLENT - No Issues
Template Variables: 20 Mapped via template-output: 15 Config Variables: 2 Runtime Variables: 3 Missing Mappings: 0 Orphaned Outputs: 0
All Template Variables Accounted For:
Generated via template-output (15):
- overview, objectives_scope, system_arch_alignment
- services_modules, data_models, apis_interfaces, workflows_sequencing
- nfr_performance, nfr_security, nfr_reliability, nfr_observability
- dependencies_integrations
- acceptance_criteria, traceability_mapping
- risks_assumptions_questions, test_strategy
Standard Config Variables (2):
- date (system-generated)
- user_name (from config)
Runtime/Extracted Variables (3):
- epic_title (extracted from PRD)
- epic_id (extracted from PRD)
Validation:
- ✅ All variables use snake_case naming
- ✅ Variable names are descriptive and clear
- ✅ Logical grouping in template-output sections
- ✅ No orphaned template-output tags
- ✅ Complete 1:1 mapping coverage
No action required - Template variable mapping is exemplary.
Recommendations
🚨 Critical (Fix Immediately)
Priority 1: Fix Web Bundle Dependencies
- Add
existing_workflowsfield to web_bundle section - Include workflow-status workflow files in web_bundle_files
- Impact: Without this, workflow cannot be bundled for web use
- File:
workflow.yamllines 35-43
Priority 2: Add Missing Workflow Files
- Include:
bmad/bmm/workflows/workflow-status/workflow.yaml - Include:
bmad/bmm/workflows/workflow-status/instructions.md(if exists) - Impact: Web bundle incomplete, workflow invocations will fail
- File:
workflow.yamlweb_bundle_files section
⚠️ Important (Address Soon)
Priority 3: Fix Output Path Configuration
- Change
default_output_fileto use{output_folder}variable - Current:
{project-root}/docs/tech-spec-epic-{{epic_id}}.md - Fixed:
{output_folder}/tech-spec-epic-{{epic_id}}.md - Impact: Respects user's configured output preferences
- File:
workflow.yamlline 29
🧹 Cleanup (Nice to Have)
Priority 4: Remove Unused Config Variables
- Remove:
document_output_language(line 10) - Remove:
user_skill_level(line 11) - Impact: Reduces configuration bloat by 40%
- File:
workflow.yamlconfig section
Priority 5: Eliminate Metadata Duplication
- Remove duplicate
name,description,authorfrom either top-level or web_bundle - Keep metadata in one location only
- Impact: Cleaner configuration, easier maintenance
- File:
workflow.yamllines 1-3 or 36-38
Validation Checklist
Use this checklist to verify fixes:
- Web Bundle: existing_workflows field added with workflow_status mapping
- Web Bundle: workflow-status/workflow.yaml added to web_bundle_files
- Config: default_output_file uses {output_folder} instead of hardcoded path
- Bloat: document_output_language removed from yaml
- Bloat: user_skill_level removed from yaml
- Redundancy: Metadata duplication eliminated
- Re-test: Workflow executes successfully after fixes
- Re-audit: Run audit-workflow again to verify all issues resolved
Workflow Structure Assessment
Strengths:
- ✅ Excellent template variable mapping (20 variables, 0 orphans)
- ✅ Proper use of standard config variables
- ✅ Clear step-by-step instructions with proper XML structure
- ✅ Good integration with workflow-status for progress tracking
- ✅ Comprehensive validation checklist
- ✅ Non-interactive mode support (#yolo mode)
Areas for Improvement:
- ❌ Web bundle configuration incomplete (missing dependencies)
- ❌ Output path doesn't respect user configuration
- ⚠️ Configuration bloat (40% unused variables)
- ⚠️ Metadata duplication
Next Steps
Immediate Actions:
-
Fix Critical Issues (Est. 15 minutes)
- Add existing_workflows field to web_bundle
- Add workflow-status files to web_bundle_files
- Verify workflow-status workflow exists at specified path
-
Fix Important Issues (Est. 5 minutes)
- Update default_output_file to use {output_folder}
- Test output file creation with different config values
-
Cleanup Configuration (Est. 10 minutes)
- Remove document_output_language from yaml
- Remove user_skill_level from yaml
- Eliminate metadata duplication
-
Verify Fixes (Est. 10 minutes)
- Re-run audit-workflow to confirm all issues resolved
- Test workflow execution end-to-end
- Verify web bundle generation works
Recommended Testing:
# After fixes, test the workflow
/bmad:bmm:workflows:tech-spec
# Re-audit to verify
/bmad:bmb:agents:bmad-builder -> *audit-workflow
Conclusion
The tech-spec workflow has a solid foundation with excellent template variable mapping and proper instruction structure. However, critical web bundle issues must be resolved before production use, and the hardcoded output path should be fixed to respect user configuration.
Estimated Fix Time: 30-40 minutes
Recommended Priority: HIGH - Address critical issues before next release
Audit Complete ✅ Generated by: audit-workflow v1.0 Powered by: BMAD Core v6-alpha