fix(#1871): wire phase archival end-to-end (phases archive cmd + default + atomic) (#1924)

Follow-up to #1919 (archive-then-remove core). Closes the remaining #1871
acceptance criteria so phase history is preserved across the full milestone
lifecycle, not just at phases.clear:

- #2 src/milestone.cts + src/phases-command-router.cts: extract shared
  archivePhaseDirectories() helper; add cmdPhasesArchive (the previously
  half-wired phases.archive alias now routes instead of erroring Unknown).
- #4 gsd-tools.cjs + src/milestone.cts: milestone complete archives phase
  dirs by default (--no-archive-phases opts out; --archive-phases is now a
  harmless no-op). complete-milestone.md updated to drop the redundant manual
  Yes/Skip archive prompt.
- #3 gsd-core/workflows/new-milestone.md: §6 stages the archive move + source
  removal (git add .planning/milestones/ .planning/phases/) in the same commit
  as the milestone start, so the archive lands atomically — no orphaned
  uncommitted deletions, no un-archived dirs inherited.
- docs/CLI-TOOLS.md (+ ja/zh/ko/pt) + help/modes/full.md: flag accuracy.
- tests: phases archive command (#2) + milestone complete default archive /
  --no-archive-phases opt-out (#4). Goldens + workflow size baseline refreshed.

Closes #1871
This commit is contained in:
Tom Boucher
2026-07-02 11:14:01 -04:00
committed by GitHub
parent 5195a36cc5
commit 92091d71f2
30 changed files with 177 additions and 116 deletions

View File

@@ -106,7 +106,7 @@
"command/gsd-workstreams.md": "5e57eed1881c3891",
"gsd-core/VERSION": "ef0deccd81a6723c",
"gsd-core/bin/check-latest-version.cjs": "e4a224058c8f4d74",
"gsd-core/bin/gsd-tools.cjs": "74594e8bf36e5580",
"gsd-core/bin/gsd-tools.cjs": "43e6c5810defe512",
"gsd-core/bin/gsd_run": "62d9b647ede212e6",
"gsd-core/bin/shared/config-defaults.manifest.json": "517e6a7c1e9f4f16",
"gsd-core/bin/shared/config-schema.manifest.json": "7d398e94c44e5268",
@@ -274,7 +274,7 @@
"gsd-core/workflows/cleanup.md": "daca0c4f1d531a02",
"gsd-core/workflows/code-review-fix.md": "618c850533bd5c9e",
"gsd-core/workflows/code-review.md": "e362de9cce43c8fc",
"gsd-core/workflows/complete-milestone.md": "f48a1771ebb15067",
"gsd-core/workflows/complete-milestone.md": "840e524216772d8d",
"gsd-core/workflows/debug.md": "0e12f6f3589cc0ea",
"gsd-core/workflows/diagnose-issues.md": "d8c817d029ea186e",
"gsd-core/workflows/discovery-phase.md": "724408336596c50c",
@@ -312,7 +312,7 @@
"gsd-core/workflows/help.md": "5d040504b9ab35e3",
"gsd-core/workflows/help/modes/brief.md": "2e923b3ed635d495",
"gsd-core/workflows/help/modes/default.md": "b544113eb9aa54fa",
"gsd-core/workflows/help/modes/full.md": "4683429199900853",
"gsd-core/workflows/help/modes/full.md": "d43cbea8b5e6e290",
"gsd-core/workflows/help/modes/topic.md": "a404990fcf2d7df7",
"gsd-core/workflows/import.md": "46337b37d375f4da",
"gsd-core/workflows/inbox.md": "a073396097c89c01",
@@ -325,7 +325,7 @@
"gsd-core/workflows/map-codebase.md": "40624186d001658f",
"gsd-core/workflows/milestone-summary.md": "0acae8647e544018",
"gsd-core/workflows/mvp-phase.md": "efeb5d11f5b10e73",
"gsd-core/workflows/new-milestone.md": "56ae3ae36ab32cef",
"gsd-core/workflows/new-milestone.md": "08d97dcb66df7776",
"gsd-core/workflows/new-project.md": "d3c0ce0e163d5048",
"gsd-core/workflows/new-workspace.md": "cfbe1d7f60f2bfe4",
"gsd-core/workflows/next.md": "83ccac8577032cb6",