Carryover seed cleanup — relocate sprint-87-plan.md to docs/planning/
SummaryAfter completing the 5-phase blog overhaul, clean up accumulated carryover seeds. With the user-confirmed scope, relocate the non-ADR plan document sprint-87-plan.md (KR+EN) to docs/planning/ and sync the ADR count gate (128→127) and the range text. Zero behavior change.
Date
ImpactHigh
Goal
- After completing the 5-phase blog portfolio overhaul (Sprint 185~189), clean up the carryover seeds accumulated through Sprint 189.
- Of the six carryover seed candidates, the user confirmed the scope as
sprint-87-plan.mdrelocate only. This is data cleanup for a non-ADR plan document that lingered in the ADR directory — a pure file move + count gate sync with zero behavior change.
Background
- In Sprint 183,
deriveSlug(loader.ts) causedsprint-87.mdandsprint-87-plan.mdto collide on slug'87', contaminating the/adr/sprints/87/route with plan content. At the time the loader scan was narrowed to accept onlysprint-NNN.mdto block this, but the plan file itself remained indocs/adr/sprints/(plus its EN counterpart). - This file is a planning document, not an ADR (decision record); it does not follow the ADR spec and undermined ADR directory integrity (Sprint 183/184 carryover seed).
Decisions
D1. Relocate only + location (user-confirmed)
Before starting, investigation measured the effective value of each carryover seed and presented it to the user:
- blog ADR parser H3 PR tables (sprint-135/143/146): None of the three has an "Implementation / 구현" section, and only sprint-135 (
PR | Wave | ...) carries the Phase/Wave column required for PhaseStrip rendering. sprint-143 (PR | branch | files | Critic) and 146 (PR | seed | location | result) do not qualify → effective scope is just sprint-135 (1 file). Extending the parser/section-aliases carries whole-corpus ADR regression risk → excluded. filterAdjacencyunresolved edge P2: With 0 unresolved edges currently, there is no actual impact → low priority, excluded.sprint-87-plan.mdrelocate: A clear, well-defined data cleanup with low regression risk → adopted alone.
The relocate target is docs/planning/. Both the KR (sprint-87-plan.md) and EN (sprint-87-plan.en.md) plan files are moved together to keep check-adr-en-coverage KR/EN balanced.
D2. Count gate sync + range text reconcile (Critic P3)
check-adr-index-countcounts allsprints/*.md(excluding README), so the relocate changes the sprint count 128→127. Update both KR occurrences indocs/adr/README.md(ASCII tree line 18 + section header line 54). The EN README has no count declaration, so no change is needed.- Critic (Codex) P3 finding: "127개, Sprint 62
189" is internally inconsistent with the count, since 62189 is 128 numbers. The actual composition — within 62~189 the numbers 88·89·90·172 are missing + integrated single-shot notes 40·48·51 = 127. Reconcile the range text toSprint 62~189 일부 결번 + 통합 40·48·51.
Implementation
Implementation commits (2 commits, PR #333 squash → 9be2c29)
697232echore(docs) — relocatesprint-87-plan.md(KR+EN) fromdocs/adr/sprints/·docs/adr-en/sprints/→docs/planning/(tracked as git rename 100%) + README count 128→127 (2 places)2978a35docs(adr) — Critic P3 range text reconcile (note gaps + integration)
Zero-impact rationale (verified exhaustively up front)
| Gate/system | Impact | Rationale |
|---|---|---|
check-adr-index-count | sprint 128→127 | sync 2 KR occurrences in README |
| EN README | none | no count declaration |
check-adr-en-coverage | 137→136 (balanced) | KR/EN plan moved together |
check-doc-refs | none | code-span mentions stripped by stripInlineCode; bare-path requires a repo-path prefix |
check-adr-links | none | 0 markdown links pointing to the plan file |
| blog loader/build | none | loader accepts only sprint-NNN.md → out of build scope (artifact unchanged) |
Verification
- 6 gates green: index-count 127/127 · en-coverage 136/136 · doc-refs 341 files 0 broken · adr-links 1900 links 0 broken · adr-conversion 12/12 fixtures (sprint=127) · blog build all routes statically prerendered.
- Critic:
codex review --base main→ Critical/High/Medium 0, P3 1 finding (range text) → resolved by reconcile commit2978a35. - CI #333: 38 pass / 0 fail (incl. Quality — docs).
- Post-merge main check: KR+EN plan landed in
docs/planning/, 0 leftovers in ADR directories, index-count 127/127 matches.