speckit-retrospective-analyze
Perform a post-implementation retrospective analysis measuring spec adherence, implementation deviations, and lessons learned.
SKILL.md.claude/skills/speckit-retrospective-analyze/SKILL.md
GitHubUser Input
$ARGUMENTS
Consider user input before proceeding (if not empty).
Goal
Analyze completed implementation against spec.md, plan.md, and tasks.md to measure spec adherence and drift. Generate actionable insights for future SDD cycles.
Constraints
- Output: Generates and saves
retrospective.mdreport to FEATURE_DIR - Post-Implementation: Run after implementation complete; warn if <80% tasks done, confirm before proceeding if <50%
- Human Gate for spec changes: before any action that modifies
spec.md(including/speckit.specifyhandoff), explicitly ask for user confirmation and stop if not approved - Confirmation policy: default is NO. Only explicit approvals (
y,yes,si,s,sí) count as consent
Execution Steps
1. Initialize Context
Run {SCRIPT} from repo root. Parse JSON for FEATURE_DIR and AVAILABLE_DOCS. Derive paths: SPEC, PLAN, TASKS = FEATURE_DIR/{spec,plan,tasks}.md. Abort if missing.
For single quotes in args like "I'm Groot", use escape syntax: e.g 'I'''m Groot' (or double-quote if possible: "I'm Groot").
2. Validate Completeness
total_tasks=$(grep -c '^- \[[ Xx]\]' "$TASKS" || echo 0)
completed_tasks=$(grep -c '^- \[[Xx]\]' "$TASKS" || echo 0)
if [ "$total_tasks" -eq 0 ]; then
echo "No tasks found in $TASKS" && exit 1
fi
completion_rate=$((completed_tasks * 100 / total_tasks))
Completion thresholds:
=80%: Proceed with full retrospective
- 50-79%: Warn about incomplete implementation, continue with partial analysis
- <50%: STOP and confirm before continuing
3. Load Artifacts
spec.md: FR-XXX, NFR-XXX, SC-XXX, user stories, assumptions, edge casesplan.md: Architecture, data model, phases, constraints, dependenciestasks.md: All tasks with status, file paths, blockers- constitution:
/memory/constitution.md(if exists)
4. Discover Implementation
- Extract file paths from completed tasks plus recent git history
- Inventory: Models, APIs, Services, Tests, Config changes
- Audit: Libraries, frameworks, integrations actually used
5. Spec Drift Analysis
Perform:
- Requirement coverage (implemented, partial, not implemented, modified, unspecified)
- Success criteria validation
- Architecture drift against plan
- Task fidelity (completed/modified/added/dropped)
- Timeline and blockers (if available)
Calculate:
Spec Adherence % = ((IMPLEMENTED + MODIFIED + (PARTIAL * 0.5)) / (Total Requirements - UNSPECIFIED)) * 100
Where Total Requirements is the count of all FR-XXX, NFR-XXX, SC-XXX from spec.md.
6. Severity Classification
Classify findings as:
- CRITICAL (core functionality or constitution violations)
- SIGNIFICANT (deviations that affect UX/performance/operations)
- MINOR (small or cosmetic variations)
- POSITIVE (improvements over spec)
7. Innovation Opportunities
For positive deviations, document:
- What improved
- Why it is better
- Reusability potential
- Whether it is a constitution candidate
8. Root Cause Analysis
For key deviations capture:
- Discovery point (planning/implementation/testing/review)
- Cause (spec gap, tech constraint, scope evolution, misunderstanding, improvement, process skip)
- Prevention recommendation
9. Constitution Compliance
Check each constitution article against implementation. Treat violations as CRITICAL.
10. Generate Report
Create retrospective.md with:
- YAML frontmatter (feature, branch, date, completion_rate, spec_adherence, counts)
- Executive summary
- Proposed Spec Changes (explicit list of intended
spec.mdedits, grouped by FR/NFR/SC and rationale) - Requirement coverage matrix
- Success criteria assessment
- Architecture drift table
- Significant deviations
- Innovations and best practices
- Constitution compliance
- Unspecified implementations
- Task execution analysis
- Lessons learned and recommendations
- File traceability appendix
11. Self-Assessment Checklist (Required)
Before finalizing output, run this checklist and mark each item as PASS/FAIL:
- Evidence completeness:
- Every major deviation includes concrete evidence (file/task/behavior).
- Coverage integrity:
- FR/NFR/SC coverage is complete with no missing requirement IDs.
- Metrics sanity:
completion_rateandspec_adherenceformulas are applied correctly.
- Severity consistency:
- CRITICAL/SIGNIFICANT/MINOR/POSITIVE labels match stated impact.
- Constitution review:
- Constitution violations are explicitly listed (or
Noneis stated).
- Constitution violations are explicitly listed (or
- Human Gate readiness:
- If spec changes are proposed,
Proposed Spec Changesis populated and ready for user confirmation.
- If spec changes are proposed,
- Actionability:
- Recommendations are specific, prioritized, and directly tied to findings.
Blocking rule:
- If any of these fail:
Coverage integrity,Metrics sanity,Human Gate readiness(when applicable), orConstitution review, do not finalize the report. Fix the gaps first.
12. Save Report
- Write to
FEATURE_DIR/retrospective.md - Optionally commit with:
feat(retrospective): add spec adherence report (adherence X%, completion X%)
- Confirm:
Retrospective saved | Adherence: X% | Critical findings: X
13. Human Gate Before Spec Changes
If retrospective findings recommend updating or regenerating the spec:
- Present a short summary of the proposed
spec.mdchanges, referencing theProposed Spec Changessection. - Ask explicitly:
Do you want me to modify spec.md now? (y/N) - Treat any response other than
y,yes,si,s, orsías NO. - Require a separate confirmation for each spec-modifying action (for example, each
/speckit.specifyrun or directspec.mdedit). - If declined or no response, do not modify spec and continue with report-only recommendations.
Treat launching /speckit.specify as a spec-modifying action that requires this gate.
14. Follow-up Actions
Prioritize:
- CRITICAL: constitution violations, breaking changes, security issues
- HIGH: significant drift and process improvements
- MEDIUM: best practices and constitution candidates
- LOW: minor optimizations
Follow-up commands:
/speckit.constitutionfor violations/speckit.specifyfor spec updates/speckit.checklistfor new checklists
Guidelines
Count as Drift
Features differing from spec, dropped requirements, scope creep, or changes in technical approach.
Not Drift
Implementation details, bounded optimizations, bug fixes, refactoring, and test improvements.
Principles
- Facts over judgments
- Process over blame
- Positive deviations are learning opportunities
- Keep report concise and actionable