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.md relocate 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) caused sprint-87.md and sprint-87-plan.md to collide on slug '87', contaminating the /adr/sprints/87/ route with plan content. At the time the loader scan was narrowed to accept only sprint-NNN.md to block this, but the plan file itself remained in docs/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.
  • filterAdjacency unresolved edge P2: With 0 unresolved edges currently, there is no actual impact → low priority, excluded.
  • sprint-87-plan.md relocate: 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-count counts all sprints/*.md (excluding README), so the relocate changes the sprint count 128→127. Update both KR occurrences in docs/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 62189" 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 to Sprint 62~189 일부 결번 + 통합 40·48·51.

Implementation

Implementation commits (2 commits, PR #333 squash → 9be2c29)

  • 697232e chore(docs) — relocate sprint-87-plan.md (KR+EN) from docs/adr/sprints/·docs/adr-en/sprints/docs/planning/ (tracked as git rename 100%) + README count 128→127 (2 places)
  • 2978a35 docs(adr) — Critic P3 range text reconcile (note gaps + integration)

Zero-impact rationale (verified exhaustively up front)

Gate/systemImpactRationale
check-adr-index-countsprint 128→127sync 2 KR occurrences in README
EN READMEnoneno count declaration
check-adr-en-coverage137→136 (balanced)KR/EN plan moved together
check-doc-refsnonecode-span mentions stripped by stripInlineCode; bare-path requires a repo-path prefix
check-adr-linksnone0 markdown links pointing to the plan file
blog loader/buildnoneloader 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 commit 2978a35.
  • 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.