8.8 KiB
| title |
|---|
| Epic Chain Execution Report Generator - Proposal |
Epic Chain Execution Report Generator - Proposal
Overview
This proposal describes how to automatically generate a comprehensive Epic Chain Execution Report at the end of each epic chain run, similar to the sample epic-chain-execution-report.md.
1. Report Generation Strategy
When to Generate
The report should be generated as Phase 5 of the epic-chain workflow, after all epics complete:
Epic 1 → Epic 2 → ... → Epic N → [Report Generation] → [Optional: UAT Gate]
Data Sources
The report aggregates data from multiple sources created during execution:
| Source | Location | Data Extracted |
|---|---|---|
| Chain Plan | {sprint_artifacts}/chain-plan.yaml |
Epic order, dependencies, total stories |
| Execution Logs | {sprint_artifacts}/epic-{id}-execution.md |
Per-epic timing, status, issues |
| Story Files | docs/stories/*.md |
Story count, completion status |
| UAT Documents | docs/uat/epic-{id}-uat.md |
UAT generation confirmation |
| Git Log | git log --oneline |
Commit count per epic |
| Handoffs | docs/handoffs/*.md |
Cross-epic context transfers |
2. Workflow Integration
Option A: Add Phase to Epic Chain (Recommended)
Modify epic-chain/workflow.yaml to include a report generation step:
# In workflow.yaml variables section
variables:
# ... existing variables ...
# Report configuration
chain_report_file: "{sprint_artifacts}/chain-execution-report.md"
generate_report: true
report_detail_level: "full" # summary | standard | full
# Add step reference
steps:
# ... existing steps ...
- step: generate-report
file: step-06-generate-report.md
when: "chain_complete"
outputs:
- "{chain_report_file}"
Option B: Separate Workflow (Alternative)
Create epic-chain-report/workflow.yaml triggered post-chain:
name: epic-chain-report
description: "Generate execution report from completed epic chain"
trigger: "post-chain"
input_file_patterns:
chain_plan:
path: "{sprint_artifacts}/chain-plan.yaml"
required: true
execution_logs:
pattern: "{sprint_artifacts}/epic-*-execution.md"
load_strategy: "FULL_LOAD"
3. Report Template Structure
Proposed Template: chain-report-template.md
# {project_name} - Epic Chain Execution Report
## Executive Summary
**Project:** {project_name}
**Execution Method:** BMAD Epic Chain (automated AI-driven development)
**Status:** {chain_status}
| Metric | Value |
|--------|-------|
| Total Epics | {epic_count} |
| Total Stories | {story_count} |
| Start Time | {start_time} |
| End Time | {end_time} |
| Total Duration | {duration} |
| Average per Story | {avg_story_time} |
---
## Timeline
### Epic Execution Duration
| Epic | Name | Stories | Duration | Status |
|------|------|---------|----------|--------|
{epic_timeline_rows}
| **Total** | | **{story_count}** | **{duration}** | **{completion_pct}%** |
---
## Dependency Graph
{dependency_graph_mermaid}
### Explicit Dependencies
| Epic | Depends On | Reason |
|------|------------|--------|
{dependency_table_rows}
---
## What Was Built
{per_epic_summary}
---
## Issues Encountered
{issues_section}
---
## Artifacts Generated
| Artifact | Location | Description |
|----------|----------|-------------|
| Story Files | `docs/stories/` | {story_count} completed stories |
| UAT Documents | `docs/uat/` | {epic_count} UAT test documents |
| Epic Files | `docs/epics/` | {epic_count} epic definitions |
| Handoffs | `docs/handoffs/` | Cross-epic context documents |
| Chain Plan | `{chain_plan_file}` | Execution plan with dependencies |
---
## Metrics
### Estimated Token Usage
| Epic | Stories | Est. Calls | Est. Input | Est. Output | Est. Total |
|------|---------|------------|------------|-------------|------------|
{token_estimate_rows}
### Cost Estimates
| Model | Input Cost | Output Cost | Total |
|-------|------------|-------------|-------|
| Claude Sonnet 3.5 | ~${sonnet_input} | ~${sonnet_output} | ~${sonnet_total} |
| Claude Opus | ~${opus_input} | ~${opus_output} | ~${opus_total} |
---
## UAT Validation Status
| Epic | UAT Doc | Automatable | Auto-Passed | Manual Required | Status |
|------|---------|-------------|-------------|-----------------|--------|
{uat_status_rows}
---
## Next Steps
1. **Review UAT Documents** - Review the {epic_count} UAT documents in `docs/uat/`
2. **Execute UAT Validation** - Run `/uat-validator` for automated scenario testing
3. **Manual Acceptance Testing** - Execute manual test scenarios
4. **Code Review** - Review generated code for refinements
5. **Deploy to Staging** - Deploy complete system to staging environment
---
*Report generated: {generation_timestamp}*
*BMAD Method v{bmad_version}*
4. Data Collection During Execution
Metrics to Track Per Epic
Add to epic-execute workflow to collect data for the report:
# Proposed: epic-metrics.yaml (created per epic)
epic_id: 1
epic_name: "Foundation, CLI & Deployment"
stories:
total: 7
completed: 7
failed: 0
skipped: 0
timing:
start_time: "2026-01-02T13:40:00Z"
end_time: "2026-01-02T15:10:00Z"
duration_seconds: 5400
avg_story_seconds: 771
issues:
- story: "1-3"
type: "signaling_mismatch"
description: "Completed but didn't output expected phrase"
resolution: "manual_status_update"
dependencies:
requires: []
enables: ["2", "5"]
artifacts:
stories_created: 7
uat_generated: true
commits: 7
Collection Script Enhancement
The orchestration script (epic-chain.sh) should:
- Start timer at chain initialization
- Per epic: Record start/end times, story counts, issues
- Write metrics to
{sprint_artifacts}/epic-{id}-metrics.yaml - On completion: Trigger report generation step
5. UAT Validation Integration
Gate Check Before Next Epic (Optional)
# In epic-chain workflow
chain_mode: "dependency-aware"
uat_gate:
enabled: true
mode: "quick" # quick | full | skip
blocking: false # If true, stops chain on UAT failure
# After each epic completes:
# 1. Generate UAT doc (already in epic-execute)
# 2. Run uat-quick validation
# 3. Record results in metrics
# 4. Continue or halt based on blocking setting
Validation Flow
Epic Complete
│
▼
Generate UAT Doc
│
▼
Run UAT Quick ──────┐
(automatable only) │
│ │
▼ ▼
PASS FAIL
│ │
▼ ▼
Continue blocking=true? ──► HALT CHAIN
│
▼ (blocking=false)
Log Warning
│
▼
Continue
6. Implementation Phases
Phase 1: Metrics Collection
- Add timing instrumentation to
epic-execute.sh - Create
epic-metrics.yamloutput per epic - Store in
{sprint_artifacts}/metrics/
Phase 2: Report Generation
- Create
step-06-generate-report.mdfor epic-chain - Build
chain-report-template.mdtemplate - Add report generation to workflow.yaml
Phase 3: UAT Integration
- Create UAT Validator agent (see
uat-validator.agent.yaml) - Add
uat-validate/workflow.yaml - Integrate gate check into epic-chain
Phase 4: Visualization
- Add Mermaid dependency graph generation
- Add timeline visualization
- Consider HTML report option
7. Report Generation Agent Action
For the SM agent or a dedicated Report Generator, add this action:
- trigger: CR or fuzzy match on chain-report
action: |
Generate Epic Chain Execution Report:
1. Load chain-plan.yaml for epic list and dependencies
2. For each epic, load epic-{id}-metrics.yaml
3. Aggregate timing, story counts, issues
4. Generate dependency graph (Mermaid format)
5. Calculate token/cost estimates
6. Load UAT validation results if available
7. Render template with collected data
8. Output to {sprint_artifacts}/chain-execution-report.md
description: "[CR] Generate comprehensive execution report for completed epic chain"
8. Sample Output
See /epic-chain-execution-report.md for a complete example of the target output format. Key sections:
- Executive summary with totals
- Timeline table with per-epic duration
- Dependency graph (ASCII or Mermaid)
- What was built (per epic)
- Issues encountered
- Artifacts generated
- Token/cost estimates
- Next steps
Questions for Decision
- Report timing: Generate after each epic (incremental) or only at chain end?
- UAT gate: Should failed UAT block the chain or just warn?
- Token tracking: Actual counts (requires API integration) or estimates?
- Report format: Markdown only, or also HTML/PDF export?
- Integration with SM: Add to SM agent menu, or create dedicated reporter agent?