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:
5
.changeset/plucky-bears-snooze.md
Normal file
5
.changeset/plucky-bears-snooze.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
type: Fixed
|
||||
pr: 1924
|
||||
---
|
||||
**Phase archival is now wired end-to-end across the milestone lifecycle** — finishes the #1871 follow-up: `phases archive` is now a real command (the half-wired alias is routed, no longer errors Unknown), `milestone complete` archives phase dirs by default (`--no-archive-phases` opts out), and `new-milestone` §6 stages the archive move + source removal in the same commit so history is preserved atomically rather than left as orphaned uncommitted deletions. (#1871)
|
||||
@@ -444,7 +444,7 @@ if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi
|
||||
|
||||
```bash
|
||||
# Archive milestone
|
||||
node gsd-tools.cjs milestone complete <version> [--name <name>] [--archive-phases]
|
||||
node gsd-tools.cjs milestone complete <version> [--name <name>] [--no-archive-phases]
|
||||
|
||||
# Mark requirements as complete
|
||||
node gsd-tools.cjs requirements mark-complete <ids>
|
||||
|
||||
@@ -322,7 +322,7 @@ if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi
|
||||
|
||||
```bash
|
||||
# マイルストーンをアーカイブ
|
||||
node gsd-tools.cjs milestone complete <version> [--name <name>] [--archive-phases]
|
||||
node gsd-tools.cjs milestone complete <version> [--name <name>] [--no-archive-phases]
|
||||
|
||||
# 要件を完了としてマーク
|
||||
node gsd-tools.cjs requirements mark-complete <ids>
|
||||
|
||||
@@ -322,7 +322,7 @@ if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi
|
||||
|
||||
```bash
|
||||
# 마일스톤 아카이브
|
||||
node gsd-tools.cjs milestone complete <version> [--name <name>] [--archive-phases]
|
||||
node gsd-tools.cjs milestone complete <version> [--name <name>] [--no-archive-phases]
|
||||
|
||||
# 요구사항을 완료로 표시
|
||||
node gsd-tools.cjs requirements mark-complete <ids>
|
||||
|
||||
@@ -324,7 +324,7 @@ if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi
|
||||
|
||||
```bash
|
||||
# Arquiva milestone
|
||||
node gsd-tools.cjs milestone complete <version> [--name <name>] [--archive-phases]
|
||||
node gsd-tools.cjs milestone complete <version> [--name <name>] [--no-archive-phases]
|
||||
|
||||
# Marca requisitos como concluídos
|
||||
node gsd-tools.cjs requirements mark-complete <ids>
|
||||
|
||||
@@ -322,7 +322,7 @@ if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi
|
||||
|
||||
```bash
|
||||
# 归档里程碑
|
||||
node gsd-tools.cjs milestone complete <version> [--name <name>] [--archive-phases]
|
||||
node gsd-tools.cjs milestone complete <version> [--name <name>] [--no-archive-phases]
|
||||
|
||||
# 将需求标记为完成
|
||||
node gsd-tools.cjs requirements mark-complete <ids>
|
||||
|
||||
@@ -57,7 +57,7 @@
|
||||
* Milestone Operations:
|
||||
* milestone complete <version> Archive milestone, create MILESTONES.md
|
||||
* [--name <name>]
|
||||
* [--archive-phases] Move phase dirs to milestones/vX.Y-phases/
|
||||
* [--no-archive-phases] Skip moving phase dirs to milestones/vX.Y-phases/ (archived by default)
|
||||
*
|
||||
* User Story Validation:
|
||||
* user-story validate --story "..." Validate "As a / I want to / so that" format
|
||||
@@ -1453,7 +1453,9 @@ async function runCommand(command, args, cwd, raw, defaultValue, originalCommand
|
||||
const subcommand = args[1];
|
||||
if (subcommand === 'complete') {
|
||||
const milestoneName = parseMultiwordArg(args, 'name');
|
||||
const archivePhases = args.includes('--archive-phases');
|
||||
// #1871: archive phase dirs by default on milestone complete so the next
|
||||
// new-milestone never inherits un-archived dirs. --no-archive-phases opts out.
|
||||
const archivePhases = !args.includes('--no-archive-phases');
|
||||
const force = args.includes('--force');
|
||||
milestone.cmdMilestoneComplete(cwd, args[2], { name: milestoneName, archivePhases, force }, raw);
|
||||
} else {
|
||||
|
||||
@@ -453,21 +453,17 @@ Extract from result: `version`, `date`, `phases`, `plans`, `tasks`, `accomplishm
|
||||
|
||||
Verify: `✅ Milestone archived to .planning/milestones/`
|
||||
|
||||
**Phase archival (optional):** After archival completes, ask the user:
|
||||
**Phase archival (default-on):** `milestone complete` archives phase directories to `milestones/v[X.Y]-phases/` by default (#1871), so the next `/gsd:new-milestone` never inherits un-archived dirs. No manual `mkdir`/`mv` or `--archive-phases` flag is needed.
|
||||
|
||||
If the user explicitly wants to keep phase directories in place as raw execution history, invoke `milestone complete` with `--no-archive-phases`:
|
||||
|
||||
```bash
|
||||
gsd_run query milestone complete v[X.Y] --no-archive-phases
|
||||
```
|
||||
|
||||
Verify after a default (archived) completion: `✅ Phase directories archived to .planning/milestones/v[X.Y]-phases/`
|
||||
|
||||
**Text mode (`workflow.text_mode: true` in config or `--text` flag):** Set `TEXT_MODE=true` if `--text` is present in `$ARGUMENTS` OR `text_mode` from init JSON is `true`. When TEXT_MODE is active, replace every `AskUserQuestion` call with a plain-text numbered list and ask the user to type their choice number. This is required for non-Claude runtimes (OpenAI Codex, Gemini CLI, etc.) where `AskUserQuestion` is not available.
|
||||
AskUserQuestion(header="Archive Phases", question="Archive phase directories to milestones/?", options: "Yes — move to milestones/v[X.Y]-phases/" | "Skip — keep phases in place")
|
||||
|
||||
If "Yes": move phase directories to the milestone archive:
|
||||
```bash
|
||||
mkdir -p .planning/milestones/v[X.Y]-phases
|
||||
# For each phase directory in .planning/phases/:
|
||||
mv .planning/phases/{phase-dir} .planning/milestones/v[X.Y]-phases/
|
||||
```
|
||||
Verify: `✅ Phase directories archived to .planning/milestones/v[X.Y]-phases/`
|
||||
|
||||
If "Skip": Phase directories remain in `.planning/phases/` as raw execution history. Use `/gsd:cleanup` later to archive retroactively.
|
||||
|
||||
After archival, the AI still handles:
|
||||
- Reorganizing ROADMAP.md with milestone grouping (requires judgment) — overwrite in place after extracting Backlog section
|
||||
|
||||
@@ -673,7 +673,7 @@ These six skills exist primarily for the model to perform two-stage hierarchical
|
||||
├── milestones/
|
||||
│ ├── v1.0-ROADMAP.md # Archived roadmap snapshot
|
||||
│ ├── v1.0-REQUIREMENTS.md # Archived requirements
|
||||
│ └── v1.0-phases/ # Archived phase dirs (via /gsd:cleanup or --archive-phases)
|
||||
│ └── v1.0-phases/ # Archived phase dirs (via /gsd:cleanup or milestone complete, which archives by default)
|
||||
│ ├── 01-foundation/
|
||||
│ └── 02-core-features/
|
||||
├── codebase/ # Codebase map (brownfield projects)
|
||||
|
||||
@@ -212,6 +212,12 @@ Clear leftover phase directories from the previous milestone:
|
||||
gsd_run query phases.clear --confirm
|
||||
```
|
||||
|
||||
Stage the phase archive move + source removal so they land in the same commit as the milestone start (atomic — no orphaned uncommitted deletions, no un-archived dirs carried forward). `phases.clear` archives each non-999 dir to `milestones/<version>-phases/`; staging both dirs captures the new archive and the removals together (#1871).
|
||||
|
||||
```bash
|
||||
git add .planning/milestones/ .planning/phases/ 2>/dev/null || true
|
||||
```
|
||||
|
||||
```bash
|
||||
gsd_run query commit "docs: start milestone v[X.Y] [Name]" --files .planning/PROJECT.md .planning/STATE.md
|
||||
```
|
||||
|
||||
@@ -341,7 +341,8 @@ function cmdMilestoneComplete(cwd: string, version: string, options: MilestoneCo
|
||||
|
||||
// Archive phase directories if requested
|
||||
let phasesArchived = false;
|
||||
if (options.archivePhases) {
|
||||
// #1871: archive phase dirs by default on milestone complete (opt out via --no-archive-phases).
|
||||
if (options.archivePhases !== false) {
|
||||
try {
|
||||
const phaseArchiveDir = path.join(archiveDir, `${version}-phases`);
|
||||
platformEnsureDir(phaseArchiveDir);
|
||||
@@ -440,32 +441,8 @@ function cmdPhasesClear(cwd: string, raw: boolean, args: string[]): void {
|
||||
}
|
||||
|
||||
try {
|
||||
// #1871: archive phase directories instead of destroying them. Move each
|
||||
// non-999 dir to milestones/<version>-phases/ so browsable phase history
|
||||
// survives the milestone switch (previously rmSync hard-deleted committed
|
||||
// dirs, leaving orphaned uncommitted deletions and no archive).
|
||||
let archiveVersion: string | null = null;
|
||||
try {
|
||||
archiveVersion = getMilestoneInfo(cwd).version ?? null;
|
||||
} catch {
|
||||
/* ROADMAP/STATE unreadable — fall back to a dated label */
|
||||
}
|
||||
if (!archiveVersion) {
|
||||
archiveVersion = `archived-${new Date().toISOString().replace(/[-:T]/g, '').slice(0, 8)}`;
|
||||
}
|
||||
const archivePhasesDir = path.join(planningPaths(cwd).planning, 'milestones', `${archiveVersion}-phases`);
|
||||
platformEnsureDir(archivePhasesDir);
|
||||
for (const entry of dirs) {
|
||||
const src = path.join(phasesDir, entry.name);
|
||||
// Collision-safe: if a same-named archive entry exists (re-run), suffix it.
|
||||
let dest = path.join(archivePhasesDir, entry.name);
|
||||
let n = 1;
|
||||
while (fs.existsSync(dest)) {
|
||||
dest = path.join(archivePhasesDir, `${entry.name}.${n++}`);
|
||||
}
|
||||
retryRenameSync(src, dest);
|
||||
cleared++;
|
||||
}
|
||||
// #1871: archive phase directories instead of destroying them (shared helper).
|
||||
cleared = archivePhaseDirectories(cwd, phasesDir, dirs).archived;
|
||||
} catch (e) {
|
||||
const message = e instanceof Error ? e.message : String(e);
|
||||
error('Failed to clear phases directory: ' + message);
|
||||
@@ -475,6 +452,40 @@ function cmdPhasesClear(cwd: string, raw: boolean, args: string[]): void {
|
||||
output({ cleared }, raw, `${cleared} phase director${cleared === 1 ? 'y' : 'ies'} cleared`);
|
||||
}
|
||||
|
||||
/**
|
||||
* #1871: move each non-999 phase directory under `phasesDir` into
|
||||
* `milestones/<version>-phases/` (collision-safe; version from getMilestoneInfo,
|
||||
* timestamp fallback). Shared by `phases clear` (archive-then-remove) and the
|
||||
* internal milestone.complete phase archival so phase history survives a
|
||||
* milestone switch instead of being hard-deleted.
|
||||
*/
|
||||
function archivePhaseDirectories(cwd: string, phasesDir: string, dirs: ReadonlyArray<{ name: string }>): { archiveDir: string; archived: number } {
|
||||
let archiveVersion: string | null = null;
|
||||
try {
|
||||
archiveVersion = getMilestoneInfo(cwd).version ?? null;
|
||||
} catch {
|
||||
/* ROADMAP/STATE unreadable — fall back to a dated label */
|
||||
}
|
||||
if (!archiveVersion) {
|
||||
archiveVersion = `archived-${new Date().toISOString().replace(/[-:T]/g, '').slice(0, 8)}`;
|
||||
}
|
||||
const archivePhasesDir = path.join(planningPaths(cwd).planning, 'milestones', `${archiveVersion}-phases`);
|
||||
platformEnsureDir(archivePhasesDir);
|
||||
let archived = 0;
|
||||
for (const entry of dirs) {
|
||||
const src = path.join(phasesDir, entry.name);
|
||||
// Collision-safe: if a same-named archive entry exists (re-run), suffix it.
|
||||
let dest = path.join(archivePhasesDir, entry.name);
|
||||
let n = 1;
|
||||
while (fs.existsSync(dest)) {
|
||||
dest = path.join(archivePhasesDir, `${entry.name}.${n++}`);
|
||||
}
|
||||
retryRenameSync(src, dest);
|
||||
archived++;
|
||||
}
|
||||
return { archiveDir: archivePhasesDir, archived };
|
||||
}
|
||||
|
||||
export = {
|
||||
cmdRequirementsMarkComplete,
|
||||
cmdMilestoneComplete,
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
* Keeps gsd-tools.cjs thin while preserving current CJS semantics.
|
||||
*
|
||||
* Unsupported in this router (treated as unknown):
|
||||
* - archive: `phases archive` is excluded from the subcommands list so it
|
||||
* falls through to the unknown-subcommand error path.
|
||||
* - archive: `phases archive` is excluded (#2684) — it is an internal
|
||||
* subcommand that milestone.complete forwards to, not a public surface.
|
||||
*
|
||||
* ADR-457 build-at-publish: the hand-written bin/lib/phases-command-router.cjs
|
||||
* collapsed to a TypeScript source of truth. Behaviour is preserved byte-for-behaviour
|
||||
@@ -46,7 +46,8 @@ interface RoutePhasesCommandOptions {
|
||||
function routePhasesCommand({ phase, milestone, args, cwd, raw, error }: RoutePhasesCommandOptions): void {
|
||||
routeCjsCommandFamily({
|
||||
args,
|
||||
// Exclude 'archive' so it hits the unknownMessage path.
|
||||
// #2684: `phases archive` is deliberately excluded — it is an internal
|
||||
// subcommand that milestone.complete forwards to, not a public surface.
|
||||
subcommands: PHASES_SUBCOMMANDS.filter((s) => s !== 'archive'),
|
||||
error,
|
||||
unknownMessage: (_subcommand: string, available: string[]) => `Unknown phases subcommand. Available: ${available.join(', ')}`,
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
"agents/gsd-verifier.md": "d2bd23b62f95a64f",
|
||||
"gsd-core/VERSION": "ef0deccd81a6723c",
|
||||
"gsd-core/bin/check-latest-version.cjs": "e4a224058c8f4d74",
|
||||
"gsd-core/bin/gsd-tools.cjs": "5cf26d5f9e588cf8",
|
||||
"gsd-core/bin/gsd-tools.cjs": "775a6f3d86f8e5e3",
|
||||
"gsd-core/bin/gsd_run": "62d9b647ede212e6",
|
||||
"gsd-core/bin/shared/config-defaults.manifest.json": "517e6a7c1e9f4f16",
|
||||
"gsd-core/bin/shared/config-schema.manifest.json": "7d398e94c44e5268",
|
||||
@@ -205,7 +205,7 @@
|
||||
"gsd-core/workflows/cleanup.md": "53aa20672fe253bd",
|
||||
"gsd-core/workflows/code-review-fix.md": "715d98a6ff5931e2",
|
||||
"gsd-core/workflows/code-review.md": "d3d22e8705ab8323",
|
||||
"gsd-core/workflows/complete-milestone.md": "74ca982730c7d735",
|
||||
"gsd-core/workflows/complete-milestone.md": "f3fd3c8fc7bd1616",
|
||||
"gsd-core/workflows/debug.md": "5ec71cc100973523",
|
||||
"gsd-core/workflows/diagnose-issues.md": "4d80e23ab8adf2d7",
|
||||
"gsd-core/workflows/discovery-phase.md": "3de990caffdde4f8",
|
||||
@@ -243,7 +243,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": "200a42681ef05a29",
|
||||
"gsd-core/workflows/help/modes/full.md": "3c3b67b4eb28cd82",
|
||||
"gsd-core/workflows/help/modes/topic.md": "a404990fcf2d7df7",
|
||||
"gsd-core/workflows/import.md": "3cbe85643922fd3b",
|
||||
"gsd-core/workflows/inbox.md": "a448220c548f27bc",
|
||||
@@ -256,7 +256,7 @@
|
||||
"gsd-core/workflows/map-codebase.md": "ea0ad99dd10c3d1c",
|
||||
"gsd-core/workflows/milestone-summary.md": "6af78ebf0ba7546b",
|
||||
"gsd-core/workflows/mvp-phase.md": "cd39027462579233",
|
||||
"gsd-core/workflows/new-milestone.md": "5abba9fb6c9c3252",
|
||||
"gsd-core/workflows/new-milestone.md": "f13199a8e199298f",
|
||||
"gsd-core/workflows/new-project.md": "b8dc0226e885ea9c",
|
||||
"gsd-core/workflows/new-workspace.md": "70dec4f25df02d64",
|
||||
"gsd-core/workflows/next.md": "c45606fc89965aed",
|
||||
|
||||
@@ -106,7 +106,7 @@
|
||||
"commands/gsd-workstreams.md": "52ab9c585d3a00f3",
|
||||
"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": "5cf0772521c192a4",
|
||||
"gsd-core/workflows/code-review-fix.md": "b442c670f8c1fe93",
|
||||
"gsd-core/workflows/code-review.md": "1bfa3bf542e30c5e",
|
||||
"gsd-core/workflows/complete-milestone.md": "8a4cfb41a4de5a99",
|
||||
"gsd-core/workflows/complete-milestone.md": "337d177126f1bd67",
|
||||
"gsd-core/workflows/debug.md": "da62e7a62c113b29",
|
||||
"gsd-core/workflows/diagnose-issues.md": "a5f15332b3833a80",
|
||||
"gsd-core/workflows/discovery-phase.md": "3ba7cfb89fb1e761",
|
||||
@@ -312,7 +312,7 @@
|
||||
"gsd-core/workflows/help.md": "5d040504b9ab35e3",
|
||||
"gsd-core/workflows/help/modes/brief.md": "5fe077fbbdb5d9f7",
|
||||
"gsd-core/workflows/help/modes/default.md": "cc8ef97de634c995",
|
||||
"gsd-core/workflows/help/modes/full.md": "39703b79d77bf691",
|
||||
"gsd-core/workflows/help/modes/full.md": "5d60d11d63089892",
|
||||
"gsd-core/workflows/help/modes/topic.md": "d7c60d488810fbd6",
|
||||
"gsd-core/workflows/import.md": "97861d522319d56e",
|
||||
"gsd-core/workflows/inbox.md": "437f981ef9ae7b26",
|
||||
@@ -325,7 +325,7 @@
|
||||
"gsd-core/workflows/map-codebase.md": "582bddef590de9c6",
|
||||
"gsd-core/workflows/milestone-summary.md": "f956783f7d063963",
|
||||
"gsd-core/workflows/mvp-phase.md": "bfa668107be972ed",
|
||||
"gsd-core/workflows/new-milestone.md": "6d07ca2fc7aec3a4",
|
||||
"gsd-core/workflows/new-milestone.md": "23d2135a555e95df",
|
||||
"gsd-core/workflows/new-project.md": "e6855b300fcac71e",
|
||||
"gsd-core/workflows/new-workspace.md": "fdd63a9adf030cb1",
|
||||
"gsd-core/workflows/next.md": "48bd4b5d54f0d1f8",
|
||||
|
||||
@@ -36,7 +36,7 @@
|
||||
"agents/gsd-verifier.md": "d62ffb1f520520c0",
|
||||
"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",
|
||||
@@ -204,7 +204,7 @@
|
||||
"gsd-core/workflows/cleanup.md": "5cf0772521c192a4",
|
||||
"gsd-core/workflows/code-review-fix.md": "a416c764425cbb61",
|
||||
"gsd-core/workflows/code-review.md": "3999e5bc9ce9171e",
|
||||
"gsd-core/workflows/complete-milestone.md": "6778d5f383d6f2f3",
|
||||
"gsd-core/workflows/complete-milestone.md": "49a005d4a9521477",
|
||||
"gsd-core/workflows/debug.md": "d5856f61f3a1ff84",
|
||||
"gsd-core/workflows/diagnose-issues.md": "363684618298aecd",
|
||||
"gsd-core/workflows/discovery-phase.md": "6161c60d752d0058",
|
||||
@@ -242,7 +242,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": "b909d41bada51a6d",
|
||||
"gsd-core/workflows/help/modes/full.md": "a731f1b3a744be08",
|
||||
"gsd-core/workflows/help/modes/topic.md": "bd2e4cc8e460f5bd",
|
||||
"gsd-core/workflows/import.md": "b40557b17ca31024",
|
||||
"gsd-core/workflows/inbox.md": "91aac6360e1a8672",
|
||||
@@ -255,7 +255,7 @@
|
||||
"gsd-core/workflows/map-codebase.md": "27c356aa00fb022a",
|
||||
"gsd-core/workflows/milestone-summary.md": "5bf68a980d8b5590",
|
||||
"gsd-core/workflows/mvp-phase.md": "bfa668107be972ed",
|
||||
"gsd-core/workflows/new-milestone.md": "74753bc968621017",
|
||||
"gsd-core/workflows/new-milestone.md": "7c957068b523ff47",
|
||||
"gsd-core/workflows/new-project.md": "4184d47a8797dd4e",
|
||||
"gsd-core/workflows/new-workspace.md": "668cd5038c76c771",
|
||||
"gsd-core/workflows/next.md": "ef1b4c60ea3ddbc9",
|
||||
|
||||
@@ -40,7 +40,7 @@
|
||||
"agents/gsd-verifier.md": "5645dfb20b787f01",
|
||||
"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",
|
||||
@@ -208,7 +208,7 @@
|
||||
"gsd-core/workflows/cleanup.md": "869f953fb25e57a7",
|
||||
"gsd-core/workflows/code-review-fix.md": "40d723ec1c6b45d1",
|
||||
"gsd-core/workflows/code-review.md": "4aee640e6e6951ce",
|
||||
"gsd-core/workflows/complete-milestone.md": "c3a489ca30f8bccb",
|
||||
"gsd-core/workflows/complete-milestone.md": "512494b0d8c17777",
|
||||
"gsd-core/workflows/debug.md": "1d138ad68a5f94dd",
|
||||
"gsd-core/workflows/diagnose-issues.md": "ed74414bee6a146f",
|
||||
"gsd-core/workflows/discovery-phase.md": "3ba7cfb89fb1e761",
|
||||
@@ -246,7 +246,7 @@
|
||||
"gsd-core/workflows/help.md": "5d040504b9ab35e3",
|
||||
"gsd-core/workflows/help/modes/brief.md": "5fe077fbbdb5d9f7",
|
||||
"gsd-core/workflows/help/modes/default.md": "77c34f4a77dec02c",
|
||||
"gsd-core/workflows/help/modes/full.md": "6924f9cf169175e0",
|
||||
"gsd-core/workflows/help/modes/full.md": "a123dd946319a258",
|
||||
"gsd-core/workflows/help/modes/topic.md": "d7c60d488810fbd6",
|
||||
"gsd-core/workflows/import.md": "64c8031374b39376",
|
||||
"gsd-core/workflows/inbox.md": "437f981ef9ae7b26",
|
||||
@@ -259,7 +259,7 @@
|
||||
"gsd-core/workflows/map-codebase.md": "893f13a40162ce23",
|
||||
"gsd-core/workflows/milestone-summary.md": "dd87dcdecb0b069d",
|
||||
"gsd-core/workflows/mvp-phase.md": "e6a902c3308345f2",
|
||||
"gsd-core/workflows/new-milestone.md": "ff7a75c9d7e863eb",
|
||||
"gsd-core/workflows/new-milestone.md": "2804d6f976923412",
|
||||
"gsd-core/workflows/new-project.md": "f5799451fb7c1983",
|
||||
"gsd-core/workflows/new-workspace.md": "277c868dc684ad05",
|
||||
"gsd-core/workflows/next.md": "e64c75922be6d8e2",
|
||||
|
||||
@@ -106,7 +106,7 @@
|
||||
"commands/gsd-workstreams.md": "884b6c8d648422c7",
|
||||
"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": "5cf0772521c192a4",
|
||||
"gsd-core/workflows/code-review-fix.md": "b442c670f8c1fe93",
|
||||
"gsd-core/workflows/code-review.md": "1bfa3bf542e30c5e",
|
||||
"gsd-core/workflows/complete-milestone.md": "8a4cfb41a4de5a99",
|
||||
"gsd-core/workflows/complete-milestone.md": "337d177126f1bd67",
|
||||
"gsd-core/workflows/debug.md": "da62e7a62c113b29",
|
||||
"gsd-core/workflows/diagnose-issues.md": "690c523df07f2ea7",
|
||||
"gsd-core/workflows/discovery-phase.md": "3ba7cfb89fb1e761",
|
||||
@@ -312,7 +312,7 @@
|
||||
"gsd-core/workflows/help.md": "5d040504b9ab35e3",
|
||||
"gsd-core/workflows/help/modes/brief.md": "5fe077fbbdb5d9f7",
|
||||
"gsd-core/workflows/help/modes/default.md": "cc8ef97de634c995",
|
||||
"gsd-core/workflows/help/modes/full.md": "1e95876d570df64b",
|
||||
"gsd-core/workflows/help/modes/full.md": "de202c9910773a1d",
|
||||
"gsd-core/workflows/help/modes/topic.md": "d7c60d488810fbd6",
|
||||
"gsd-core/workflows/import.md": "97861d522319d56e",
|
||||
"gsd-core/workflows/inbox.md": "437f981ef9ae7b26",
|
||||
@@ -325,7 +325,7 @@
|
||||
"gsd-core/workflows/map-codebase.md": "582bddef590de9c6",
|
||||
"gsd-core/workflows/milestone-summary.md": "f956783f7d063963",
|
||||
"gsd-core/workflows/mvp-phase.md": "bfa668107be972ed",
|
||||
"gsd-core/workflows/new-milestone.md": "6d07ca2fc7aec3a4",
|
||||
"gsd-core/workflows/new-milestone.md": "23d2135a555e95df",
|
||||
"gsd-core/workflows/new-project.md": "2fa5ddc0fe749b28",
|
||||
"gsd-core/workflows/new-workspace.md": "fdd63a9adf030cb1",
|
||||
"gsd-core/workflows/next.md": "48bd4b5d54f0d1f8",
|
||||
|
||||
@@ -72,7 +72,7 @@
|
||||
"config.toml": "a34316b9ac61a620",
|
||||
"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",
|
||||
@@ -240,7 +240,7 @@
|
||||
"gsd-core/workflows/cleanup.md": "b990139192ab7c08",
|
||||
"gsd-core/workflows/code-review-fix.md": "3311f5fa61f8a90b",
|
||||
"gsd-core/workflows/code-review.md": "937aeabfff8963b3",
|
||||
"gsd-core/workflows/complete-milestone.md": "d203f68731d9d325",
|
||||
"gsd-core/workflows/complete-milestone.md": "c0eab93d97dd298e",
|
||||
"gsd-core/workflows/debug.md": "e8367cffd3dfa758",
|
||||
"gsd-core/workflows/diagnose-issues.md": "b6766f3830f5b130",
|
||||
"gsd-core/workflows/discovery-phase.md": "71a4b78ff876a854",
|
||||
@@ -278,7 +278,7 @@
|
||||
"gsd-core/workflows/help.md": "08e1349950c5602a",
|
||||
"gsd-core/workflows/help/modes/brief.md": "becceb85b25dca89",
|
||||
"gsd-core/workflows/help/modes/default.md": "18c7dc50066f5cd6",
|
||||
"gsd-core/workflows/help/modes/full.md": "9fec66a5a4eb8389",
|
||||
"gsd-core/workflows/help/modes/full.md": "072c20fe275d54df",
|
||||
"gsd-core/workflows/help/modes/topic.md": "fc6697bdb47df8b3",
|
||||
"gsd-core/workflows/import.md": "8b8c3a25526c0d41",
|
||||
"gsd-core/workflows/inbox.md": "61b8b10e7a74b2e9",
|
||||
@@ -291,7 +291,7 @@
|
||||
"gsd-core/workflows/map-codebase.md": "320d5bfc9df29013",
|
||||
"gsd-core/workflows/milestone-summary.md": "121ecb40504caf10",
|
||||
"gsd-core/workflows/mvp-phase.md": "9a9b8b58d59a893f",
|
||||
"gsd-core/workflows/new-milestone.md": "923f10697d743555",
|
||||
"gsd-core/workflows/new-milestone.md": "e7329ba10b6d8182",
|
||||
"gsd-core/workflows/new-project.md": "f69c90cee1d7952d",
|
||||
"gsd-core/workflows/new-workspace.md": "cc9660e79d5ba7b4",
|
||||
"gsd-core/workflows/next.md": "ede3f6183e513000",
|
||||
|
||||
@@ -38,7 +38,7 @@
|
||||
"copilot-instructions.md": "1fb04111759f1645",
|
||||
"gsd-core/VERSION": "ef0deccd81a6723c",
|
||||
"gsd-core/bin/check-latest-version.cjs": "e4a224058c8f4d74",
|
||||
"gsd-core/bin/gsd-tools.cjs": "5cf26d5f9e588cf8",
|
||||
"gsd-core/bin/gsd-tools.cjs": "775a6f3d86f8e5e3",
|
||||
"gsd-core/bin/gsd_run": "62d9b647ede212e6",
|
||||
"gsd-core/bin/shared/config-defaults.manifest.json": "517e6a7c1e9f4f16",
|
||||
"gsd-core/bin/shared/config-schema.manifest.json": "7d398e94c44e5268",
|
||||
@@ -206,7 +206,7 @@
|
||||
"gsd-core/workflows/cleanup.md": "a67cfbd98eca5b86",
|
||||
"gsd-core/workflows/code-review-fix.md": "84d5f91b2856a1f2",
|
||||
"gsd-core/workflows/code-review.md": "fd8cd5c87ab977c2",
|
||||
"gsd-core/workflows/complete-milestone.md": "f1a93edd3480bcf7",
|
||||
"gsd-core/workflows/complete-milestone.md": "172f380eaa4ffe85",
|
||||
"gsd-core/workflows/debug.md": "d9a9d4c858da1314",
|
||||
"gsd-core/workflows/diagnose-issues.md": "3810d5329109a87e",
|
||||
"gsd-core/workflows/discovery-phase.md": "8e99da61fb2b7074",
|
||||
@@ -244,7 +244,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": "bb4ee969b98be538",
|
||||
"gsd-core/workflows/help/modes/full.md": "6985d700bbb1cbe5",
|
||||
"gsd-core/workflows/help/modes/topic.md": "a404990fcf2d7df7",
|
||||
"gsd-core/workflows/import.md": "0e4a8880126d196b",
|
||||
"gsd-core/workflows/inbox.md": "a448220c548f27bc",
|
||||
@@ -257,7 +257,7 @@
|
||||
"gsd-core/workflows/map-codebase.md": "576d06b03edff8db",
|
||||
"gsd-core/workflows/milestone-summary.md": "20d93b795568d970",
|
||||
"gsd-core/workflows/mvp-phase.md": "803ddbd575f86311",
|
||||
"gsd-core/workflows/new-milestone.md": "34888afc152da98e",
|
||||
"gsd-core/workflows/new-milestone.md": "4e252aa59b46d88f",
|
||||
"gsd-core/workflows/new-project.md": "d0af61f0e5f99485",
|
||||
"gsd-core/workflows/new-workspace.md": "e61ad52a17e7570a",
|
||||
"gsd-core/workflows/next.md": "a4cb2a110e0bce2c",
|
||||
|
||||
@@ -106,7 +106,7 @@
|
||||
"commands/gsd-workstreams.md": "112660ceb663c750",
|
||||
"gsd-core/VERSION": "ef0deccd81a6723c",
|
||||
"gsd-core/bin/check-latest-version.cjs": "e4a224058c8f4d74",
|
||||
"gsd-core/bin/gsd-tools.cjs": "5cf26d5f9e588cf8",
|
||||
"gsd-core/bin/gsd-tools.cjs": "775a6f3d86f8e5e3",
|
||||
"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": "2bd6ad5f107fe439",
|
||||
"gsd-core/workflows/code-review-fix.md": "c62547be55f13dcd",
|
||||
"gsd-core/workflows/code-review.md": "fcb3f24e4cecc737",
|
||||
"gsd-core/workflows/complete-milestone.md": "023cc8aa729b8987",
|
||||
"gsd-core/workflows/complete-milestone.md": "36221b9fc6bce09e",
|
||||
"gsd-core/workflows/debug.md": "2e3c29ded1ce0d28",
|
||||
"gsd-core/workflows/diagnose-issues.md": "fa7ae5bb16f424a4",
|
||||
"gsd-core/workflows/discovery-phase.md": "7dcf150998559c11",
|
||||
@@ -312,7 +312,7 @@
|
||||
"gsd-core/workflows/help.md": "08e1349950c5602a",
|
||||
"gsd-core/workflows/help/modes/brief.md": "2e923b3ed635d495",
|
||||
"gsd-core/workflows/help/modes/default.md": "37c5149aae232e61",
|
||||
"gsd-core/workflows/help/modes/full.md": "58d35e918fb1f868",
|
||||
"gsd-core/workflows/help/modes/full.md": "b893a940160dbcb9",
|
||||
"gsd-core/workflows/help/modes/topic.md": "9f00f5f94c5497aa",
|
||||
"gsd-core/workflows/import.md": "791424ae67c9cf32",
|
||||
"gsd-core/workflows/inbox.md": "797c287852eb8957",
|
||||
@@ -325,7 +325,7 @@
|
||||
"gsd-core/workflows/map-codebase.md": "d43dffe5098a8684",
|
||||
"gsd-core/workflows/milestone-summary.md": "40e3049e42ecde63",
|
||||
"gsd-core/workflows/mvp-phase.md": "542d898e0e9b928f",
|
||||
"gsd-core/workflows/new-milestone.md": "9912521d111bdd22",
|
||||
"gsd-core/workflows/new-milestone.md": "514a66fe7d07c0f3",
|
||||
"gsd-core/workflows/new-project.md": "559e93f61313311b",
|
||||
"gsd-core/workflows/new-workspace.md": "7045e17f5dbdc204",
|
||||
"gsd-core/workflows/next.md": "6c3900ed84f03670",
|
||||
|
||||
@@ -106,7 +106,7 @@
|
||||
"commands/gsd/workstreams.toml": "95f0c349b808a84c",
|
||||
"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": "e73b3969f5c10dcf",
|
||||
"gsd-core/workflows/code-review-fix.md": "b442c670f8c1fe93",
|
||||
"gsd-core/workflows/code-review.md": "1bfa3bf542e30c5e",
|
||||
"gsd-core/workflows/complete-milestone.md": "262c6bf1691b1ec9",
|
||||
"gsd-core/workflows/complete-milestone.md": "d768b744210ef4bc",
|
||||
"gsd-core/workflows/debug.md": "1c137aaa9ffac0dc",
|
||||
"gsd-core/workflows/diagnose-issues.md": "dfd26bce63e52b00",
|
||||
"gsd-core/workflows/discovery-phase.md": "100b931f0f40bf1c",
|
||||
@@ -312,7 +312,7 @@
|
||||
"gsd-core/workflows/help.md": "5d040504b9ab35e3",
|
||||
"gsd-core/workflows/help/modes/brief.md": "5fe077fbbdb5d9f7",
|
||||
"gsd-core/workflows/help/modes/default.md": "cc8ef97de634c995",
|
||||
"gsd-core/workflows/help/modes/full.md": "d15ffdcd90ff06b1",
|
||||
"gsd-core/workflows/help/modes/full.md": "c7068334fba84dd8",
|
||||
"gsd-core/workflows/help/modes/topic.md": "d7c60d488810fbd6",
|
||||
"gsd-core/workflows/import.md": "c740cfabacf7b70a",
|
||||
"gsd-core/workflows/inbox.md": "41371f790ef06101",
|
||||
@@ -325,7 +325,7 @@
|
||||
"gsd-core/workflows/map-codebase.md": "582bddef590de9c6",
|
||||
"gsd-core/workflows/milestone-summary.md": "f956783f7d063963",
|
||||
"gsd-core/workflows/mvp-phase.md": "6cb2d9d97bd239b3",
|
||||
"gsd-core/workflows/new-milestone.md": "7fbdbad9b2c38215",
|
||||
"gsd-core/workflows/new-milestone.md": "86959fbb6f5e8893",
|
||||
"gsd-core/workflows/new-project.md": "72b2c17e9f9cb79d",
|
||||
"gsd-core/workflows/new-workspace.md": "226482083477bc43",
|
||||
"gsd-core/workflows/next.md": "48bd4b5d54f0d1f8",
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
"agents/gsd-verifier.md": "c5916e463df6306e",
|
||||
"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",
|
||||
@@ -205,7 +205,7 @@
|
||||
"gsd-core/workflows/cleanup.md": "6380894e67d2435d",
|
||||
"gsd-core/workflows/code-review-fix.md": "5090840d834ec31a",
|
||||
"gsd-core/workflows/code-review.md": "29046f7fa6a9d40a",
|
||||
"gsd-core/workflows/complete-milestone.md": "96db03239ff95208",
|
||||
"gsd-core/workflows/complete-milestone.md": "7bd066db127dc274",
|
||||
"gsd-core/workflows/debug.md": "5840a39f14a029c4",
|
||||
"gsd-core/workflows/diagnose-issues.md": "b350281a56ee5832",
|
||||
"gsd-core/workflows/discovery-phase.md": "6161c60d752d0058",
|
||||
@@ -243,7 +243,7 @@
|
||||
"gsd-core/workflows/help.md": "5d040504b9ab35e3",
|
||||
"gsd-core/workflows/help/modes/brief.md": "2e923b3ed635d495",
|
||||
"gsd-core/workflows/help/modes/default.md": "bb6876c976996dbd",
|
||||
"gsd-core/workflows/help/modes/full.md": "eba05fd7c355b65f",
|
||||
"gsd-core/workflows/help/modes/full.md": "2df924dd3815ff0e",
|
||||
"gsd-core/workflows/help/modes/topic.md": "bd2e4cc8e460f5bd",
|
||||
"gsd-core/workflows/import.md": "da7ca19f487c6b60",
|
||||
"gsd-core/workflows/inbox.md": "91aac6360e1a8672",
|
||||
@@ -256,7 +256,7 @@
|
||||
"gsd-core/workflows/map-codebase.md": "23fae66ceef58e1c",
|
||||
"gsd-core/workflows/milestone-summary.md": "5cc04210fea41834",
|
||||
"gsd-core/workflows/mvp-phase.md": "5ce3c326ef0f6e27",
|
||||
"gsd-core/workflows/new-milestone.md": "13f278af2e696d8b",
|
||||
"gsd-core/workflows/new-milestone.md": "97750332c52a9ef7",
|
||||
"gsd-core/workflows/new-project.md": "40c94cfb81bde99b",
|
||||
"gsd-core/workflows/new-workspace.md": "af3397e97cec7d0b",
|
||||
"gsd-core/workflows/next.md": "e044321fdd6b5e9c",
|
||||
|
||||
@@ -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": "d124682912dab9f6",
|
||||
"gsd-core/workflows/code-review-fix.md": "a416c764425cbb61",
|
||||
"gsd-core/workflows/code-review.md": "3999e5bc9ce9171e",
|
||||
"gsd-core/workflows/complete-milestone.md": "cb9a1ad0d611c765",
|
||||
"gsd-core/workflows/complete-milestone.md": "d0f7e0599ab54dca",
|
||||
"gsd-core/workflows/debug.md": "0fa12d266c29d9d4",
|
||||
"gsd-core/workflows/diagnose-issues.md": "af98c318e0aa27bf",
|
||||
"gsd-core/workflows/discovery-phase.md": "ca7b2be46e59e862",
|
||||
@@ -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": "737a6396e998929e",
|
||||
"gsd-core/workflows/help/modes/full.md": "89044c816457cf48",
|
||||
"gsd-core/workflows/help/modes/topic.md": "a404990fcf2d7df7",
|
||||
"gsd-core/workflows/import.md": "95734bf6d48ef776",
|
||||
"gsd-core/workflows/inbox.md": "a073396097c89c01",
|
||||
@@ -325,7 +325,7 @@
|
||||
"gsd-core/workflows/map-codebase.md": "fcc2796ebf8ea2c7",
|
||||
"gsd-core/workflows/milestone-summary.md": "423287cd509b7774",
|
||||
"gsd-core/workflows/mvp-phase.md": "3935c0d9969e3e84",
|
||||
"gsd-core/workflows/new-milestone.md": "c4ff690cd48a52db",
|
||||
"gsd-core/workflows/new-milestone.md": "9abdd85c65989620",
|
||||
"gsd-core/workflows/new-project.md": "0dce9298c090bdb4",
|
||||
"gsd-core/workflows/new-workspace.md": "074efbc589061182",
|
||||
"gsd-core/workflows/next.md": "0a9b4e23ac0bf7ea",
|
||||
|
||||
@@ -73,7 +73,7 @@
|
||||
"agents/subagents/gsd-verifier.yaml": "2d2bd6b37626f382",
|
||||
"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",
|
||||
@@ -241,7 +241,7 @@
|
||||
"gsd-core/workflows/cleanup.md": "5cf0772521c192a4",
|
||||
"gsd-core/workflows/code-review-fix.md": "b442c670f8c1fe93",
|
||||
"gsd-core/workflows/code-review.md": "1bfa3bf542e30c5e",
|
||||
"gsd-core/workflows/complete-milestone.md": "8a4cfb41a4de5a99",
|
||||
"gsd-core/workflows/complete-milestone.md": "337d177126f1bd67",
|
||||
"gsd-core/workflows/debug.md": "da62e7a62c113b29",
|
||||
"gsd-core/workflows/diagnose-issues.md": "b1fd597cb9420c33",
|
||||
"gsd-core/workflows/discovery-phase.md": "3ba7cfb89fb1e761",
|
||||
@@ -279,7 +279,7 @@
|
||||
"gsd-core/workflows/help.md": "5d040504b9ab35e3",
|
||||
"gsd-core/workflows/help/modes/brief.md": "5fe077fbbdb5d9f7",
|
||||
"gsd-core/workflows/help/modes/default.md": "cc8ef97de634c995",
|
||||
"gsd-core/workflows/help/modes/full.md": "26b7c72f1a12a80f",
|
||||
"gsd-core/workflows/help/modes/full.md": "d7432c8631f3cae8",
|
||||
"gsd-core/workflows/help/modes/topic.md": "d7c60d488810fbd6",
|
||||
"gsd-core/workflows/import.md": "97861d522319d56e",
|
||||
"gsd-core/workflows/inbox.md": "437f981ef9ae7b26",
|
||||
@@ -292,7 +292,7 @@
|
||||
"gsd-core/workflows/map-codebase.md": "582bddef590de9c6",
|
||||
"gsd-core/workflows/milestone-summary.md": "f956783f7d063963",
|
||||
"gsd-core/workflows/mvp-phase.md": "bfa668107be972ed",
|
||||
"gsd-core/workflows/new-milestone.md": "6d07ca2fc7aec3a4",
|
||||
"gsd-core/workflows/new-milestone.md": "23d2135a555e95df",
|
||||
"gsd-core/workflows/new-project.md": "69d356f41ea36aa2",
|
||||
"gsd-core/workflows/new-workspace.md": "fdd63a9adf030cb1",
|
||||
"gsd-core/workflows/next.md": "48bd4b5d54f0d1f8",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
"agents/gsd-verifier.md": "7286d42f73e54be1",
|
||||
"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",
|
||||
@@ -205,7 +205,7 @@
|
||||
"gsd-core/workflows/cleanup.md": "804c5d481279f008",
|
||||
"gsd-core/workflows/code-review-fix.md": "7d6caed073170b2a",
|
||||
"gsd-core/workflows/code-review.md": "ca4a87c143bb2d55",
|
||||
"gsd-core/workflows/complete-milestone.md": "d72e6131a14244da",
|
||||
"gsd-core/workflows/complete-milestone.md": "35a311ed5cea3599",
|
||||
"gsd-core/workflows/debug.md": "6000ef61c0a67d84",
|
||||
"gsd-core/workflows/diagnose-issues.md": "1aa7b1f3c4cbe15d",
|
||||
"gsd-core/workflows/discovery-phase.md": "6161c60d752d0058",
|
||||
@@ -243,7 +243,7 @@
|
||||
"gsd-core/workflows/help.md": "5d040504b9ab35e3",
|
||||
"gsd-core/workflows/help/modes/brief.md": "2e923b3ed635d495",
|
||||
"gsd-core/workflows/help/modes/default.md": "cef457f954a9991e",
|
||||
"gsd-core/workflows/help/modes/full.md": "c4e359b86de6b99d",
|
||||
"gsd-core/workflows/help/modes/full.md": "8f70d84fd3549aa0",
|
||||
"gsd-core/workflows/help/modes/topic.md": "bd2e4cc8e460f5bd",
|
||||
"gsd-core/workflows/import.md": "5c0e3e97b0a59a06",
|
||||
"gsd-core/workflows/inbox.md": "91aac6360e1a8672",
|
||||
@@ -256,7 +256,7 @@
|
||||
"gsd-core/workflows/map-codebase.md": "8ce1e33f45827202",
|
||||
"gsd-core/workflows/milestone-summary.md": "886ec00825fb1442",
|
||||
"gsd-core/workflows/mvp-phase.md": "b3561a8ab1b26a4c",
|
||||
"gsd-core/workflows/new-milestone.md": "8ec6c5fbc26d8227",
|
||||
"gsd-core/workflows/new-milestone.md": "3f2875618897718b",
|
||||
"gsd-core/workflows/new-project.md": "6c1440959e637d2d",
|
||||
"gsd-core/workflows/new-workspace.md": "9b41c1b5c0196936",
|
||||
"gsd-core/workflows/next.md": "80f2feb243818c90",
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
"agents/gsd-verifier.md": "2fef6afe676b0e34",
|
||||
"gsd-core/VERSION": "ef0deccd81a6723c",
|
||||
"gsd-core/bin/check-latest-version.cjs": "e4a224058c8f4d74",
|
||||
"gsd-core/bin/gsd-tools.cjs": "5cf26d5f9e588cf8",
|
||||
"gsd-core/bin/gsd-tools.cjs": "775a6f3d86f8e5e3",
|
||||
"gsd-core/bin/gsd_run": "62d9b647ede212e6",
|
||||
"gsd-core/bin/shared/config-defaults.manifest.json": "517e6a7c1e9f4f16",
|
||||
"gsd-core/bin/shared/config-schema.manifest.json": "7d398e94c44e5268",
|
||||
@@ -205,7 +205,7 @@
|
||||
"gsd-core/workflows/cleanup.md": "78080ff25ba43f8c",
|
||||
"gsd-core/workflows/code-review-fix.md": "4eebfb7f1612b441",
|
||||
"gsd-core/workflows/code-review.md": "7630639b5f2f9ff2",
|
||||
"gsd-core/workflows/complete-milestone.md": "0bbdd56c4251797d",
|
||||
"gsd-core/workflows/complete-milestone.md": "5f7dbe9842b23e57",
|
||||
"gsd-core/workflows/debug.md": "87c20def8d313e45",
|
||||
"gsd-core/workflows/diagnose-issues.md": "a0b3fee49d516c0b",
|
||||
"gsd-core/workflows/discovery-phase.md": "b32b6197b66c9a13",
|
||||
@@ -243,7 +243,7 @@
|
||||
"gsd-core/workflows/help.md": "08e1349950c5602a",
|
||||
"gsd-core/workflows/help/modes/brief.md": "2e923b3ed635d495",
|
||||
"gsd-core/workflows/help/modes/default.md": "1b3c315342701265",
|
||||
"gsd-core/workflows/help/modes/full.md": "ffb3e525818ed5bc",
|
||||
"gsd-core/workflows/help/modes/full.md": "6d4aacaec9858e28",
|
||||
"gsd-core/workflows/help/modes/topic.md": "5419498effee148f",
|
||||
"gsd-core/workflows/import.md": "47cc99b635e45f82",
|
||||
"gsd-core/workflows/inbox.md": "e9ea37b2d46dc5b4",
|
||||
@@ -256,7 +256,7 @@
|
||||
"gsd-core/workflows/map-codebase.md": "f90d0577d254c38e",
|
||||
"gsd-core/workflows/milestone-summary.md": "b50a5d4369d29978",
|
||||
"gsd-core/workflows/mvp-phase.md": "1d2292f3c444c13d",
|
||||
"gsd-core/workflows/new-milestone.md": "28d4d2b571cae752",
|
||||
"gsd-core/workflows/new-milestone.md": "f69e9ccc51ab956b",
|
||||
"gsd-core/workflows/new-project.md": "d1a0070ed292c25a",
|
||||
"gsd-core/workflows/new-workspace.md": "555689ccf58bafdb",
|
||||
"gsd-core/workflows/next.md": "569c68513fd94ea7",
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
"agents/gsd-verifier.md": "b16b34a580941124",
|
||||
"gsd-core/VERSION": "ef0deccd81a6723c",
|
||||
"gsd-core/bin/check-latest-version.cjs": "e4a224058c8f4d74",
|
||||
"gsd-core/bin/gsd-tools.cjs": "5cf26d5f9e588cf8",
|
||||
"gsd-core/bin/gsd-tools.cjs": "775a6f3d86f8e5e3",
|
||||
"gsd-core/bin/gsd_run": "62d9b647ede212e6",
|
||||
"gsd-core/bin/shared/config-defaults.manifest.json": "517e6a7c1e9f4f16",
|
||||
"gsd-core/bin/shared/config-schema.manifest.json": "7d398e94c44e5268",
|
||||
@@ -205,7 +205,7 @@
|
||||
"gsd-core/workflows/cleanup.md": "edc0bc375acdb563",
|
||||
"gsd-core/workflows/code-review-fix.md": "aa750f6d1abd3b9f",
|
||||
"gsd-core/workflows/code-review.md": "20c76ddd702e7cd5",
|
||||
"gsd-core/workflows/complete-milestone.md": "6706e0dc3e95acd0",
|
||||
"gsd-core/workflows/complete-milestone.md": "921f9197b4d7f5fd",
|
||||
"gsd-core/workflows/debug.md": "9679214d9472e213",
|
||||
"gsd-core/workflows/diagnose-issues.md": "7c0b8debfc906ca0",
|
||||
"gsd-core/workflows/discovery-phase.md": "7dcf150998559c11",
|
||||
@@ -243,7 +243,7 @@
|
||||
"gsd-core/workflows/help.md": "08e1349950c5602a",
|
||||
"gsd-core/workflows/help/modes/brief.md": "2e923b3ed635d495",
|
||||
"gsd-core/workflows/help/modes/default.md": "91509fe03bad9795",
|
||||
"gsd-core/workflows/help/modes/full.md": "fec340660fa7b2ff",
|
||||
"gsd-core/workflows/help/modes/full.md": "8fb3c93df5883f56",
|
||||
"gsd-core/workflows/help/modes/topic.md": "9f00f5f94c5497aa",
|
||||
"gsd-core/workflows/import.md": "f5b3826c4cfb2682",
|
||||
"gsd-core/workflows/inbox.md": "797c287852eb8957",
|
||||
@@ -256,7 +256,7 @@
|
||||
"gsd-core/workflows/map-codebase.md": "6c89a16e0d9fddfe",
|
||||
"gsd-core/workflows/milestone-summary.md": "1ced13b54a1fab0b",
|
||||
"gsd-core/workflows/mvp-phase.md": "bcc8037866fa1d4d",
|
||||
"gsd-core/workflows/new-milestone.md": "763c096ead93de90",
|
||||
"gsd-core/workflows/new-milestone.md": "b43ff95a594bd688",
|
||||
"gsd-core/workflows/new-project.md": "d6709238a3ada30c",
|
||||
"gsd-core/workflows/new-workspace.md": "8a9ab30eac218190",
|
||||
"gsd-core/workflows/next.md": "3ebbf30622521e76",
|
||||
|
||||
@@ -759,3 +759,43 @@ describe('#1911 — milestone complete --ws archives to the workstream', () => {
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
// ─────────────────────────────────────────────────────────────────────────────
|
||||
// #1871: milestone complete archives phase dirs by default
|
||||
// ─────────────────────────────────────────────────────────────────────────────
|
||||
|
||||
describe('#1871 — milestone complete archives phase dirs by default', () => {
|
||||
let tmpDir;
|
||||
|
||||
beforeEach(() => { tmpDir = createTempProject(); });
|
||||
afterEach(() => cleanup(tmpDir));
|
||||
|
||||
function seedCompletableMilestone() {
|
||||
writeRoadmap(tmpDir, '# Roadmap v1.0 MVP\n\n### Phase 1: Foundation\n**Goal:** Setup\n');
|
||||
fs.writeFileSync(path.join(tmpDir, '.planning', 'REQUIREMENTS.md'), '# Requirements\n- [ ] x\n');
|
||||
writeState(tmpDir);
|
||||
mkPhaseDir(tmpDir, '01-foundation', { oneLiner: 'Set up project infrastructure' });
|
||||
}
|
||||
|
||||
test('archives phase dirs by default (no --archive-phases flag needed)', () => {
|
||||
seedCompletableMilestone();
|
||||
const result = runGsdTools('milestone complete v1.0 --name MVP', tmpDir);
|
||||
assert.ok(result.success, `Command failed: ${result.error}`);
|
||||
const out = JSON.parse(result.output);
|
||||
assert.ok(out.archived.phases, 'phases should be archived by default');
|
||||
assert.ok(
|
||||
fs.existsSync(path.join(tmpDir, '.planning', 'milestones', 'v1.0-phases', '01-foundation')),
|
||||
'phase dir should be archived under milestones/v1.0-phases/',
|
||||
);
|
||||
});
|
||||
|
||||
test('--no-archive-phases opts out of default archiving', () => {
|
||||
seedCompletableMilestone();
|
||||
const phaseDir = path.join(tmpDir, '.planning', 'phases', '01-foundation');
|
||||
const result = runGsdTools('milestone complete v1.0 --name MVP --no-archive-phases', tmpDir);
|
||||
assert.ok(result.success, `Command failed: ${result.error}`);
|
||||
const out = JSON.parse(result.output);
|
||||
assert.ok(!out.archived.phases, 'phases should NOT be archived with --no-archive-phases');
|
||||
assert.ok(fs.existsSync(phaseDir), 'phase dir should remain in place with --no-archive-phases');
|
||||
});
|
||||
});
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
"cleanup.md": 9897,
|
||||
"code-review-fix.md": 23890,
|
||||
"code-review.md": 31602,
|
||||
"complete-milestone.md": 31134,
|
||||
"complete-milestone.md": 31027,
|
||||
"debug.md": 13505,
|
||||
"diagnose-issues.md": 12820,
|
||||
"discovery-phase.md": 8651,
|
||||
@@ -44,7 +44,7 @@
|
||||
"map-codebase.md": 20789,
|
||||
"milestone-summary.md": 11774,
|
||||
"mvp-phase.md": 13582,
|
||||
"new-milestone.md": 32422,
|
||||
"new-milestone.md": 32844,
|
||||
"new-project.md": 66138,
|
||||
"new-workspace.md": 11254,
|
||||
"next.md": 20094,
|
||||
|
||||
Reference in New Issue
Block a user