fix: one convention for phase report filenames - #38
Merged
Conversation
Three were in use at once: phase bodies wrote phase09-report.html, the registry's optional lists said phase9-report.html, and docs/commands.md documented <slug>-report.html. 03-foundation.md alone used both the padded and unpadded forms. Two real consequences, not just untidiness. commands/sdlc-gate.md pre-checks the visual report by slug, so a team following the phase definition wrote phase09-visual.html while the gate looked for 09-monitoring-visual.html and reported it missing. And the registry's artifacts.optional entries could never match a real file under either of the other conventions, so those entries were dead. All 38 references now use <slug>-report.html / <slug>-visual.html. The slug wins because it is what generate_phase_report.py is invoked with and the only form that survives the non-numeric build and close phases. Mapping derived from the registry rather than hardcoded. Adds a check to test_registry_docs_consistency.py, proven by reintroducing a padded name and confirming it fails. 538 passed, 6 skipped. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01FEA6GZUG9NKNQYrJKyDGdb
This was referenced Aug 1, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #36.
Stacked on #37 — based on
fix/complete-fix-3-receipts, so this diff shows only its own change. Merge #37 first; GitHub will retarget this tomasterautomatically.The problem
Three naming conventions for the same generated files, shipping together:
phases/*.mdphase09-report.htmlphase-registry.yamlartifacts.optionalphase9-report.htmldocs/commands.md09-monitoring-report.html03-foundation.mdalone used both the padded and unpadded forms.Why it actually mattered
Not just untidiness — two things were broken:
commands/sdlc-gate.mdpre-checks the visual report by slug. A team following the phase definition wrotephase09-visual.html; the gate looked for09-monitoring-visual.htmland reported it missing.artifacts.optionalentries were dead. They could never match a real file produced under either of the other two conventions.The fix
All 38 references now use
<slug>-report.html/<slug>-visual.html.The slug wins because it is what
generate_phase_report.pyis actually invoked with (its own docstring example isbuild-report.html), and it is the only form that survives the non-numericbuildandclosephases —phase4-report.htmlhas no meaning.The rename was applied mechanically with the mapping derived from the registry rather than hardcoded, so it cannot silently disagree with the registry it was meant to match.
Test plan
phase\d+-(report|visual)\.htmlreferences remain anywheretest_phase_reports_use_the_registry_slug_conventionmutation-tested — reintroducedphase09-visual.html, confirmed it fails, restoredNote
Phase 2 has no
-visualcounterpart. That is deliberate, not a gap: its diagram artifact is separately named.sdlc/reports/architecture-diagrams.html. Left as-is.🤖 Generated with Claude Code