Files
msd-core/commands/gsd/from-gsd2.md
Tom Boucher 96eef85c40 feat(import): add /gsd-from-gsd2 reverse migration from GSD-2 to v1 (#2072)
Adds a new command and CLI subcommand that converts a GSD-2 `.gsd/`
project back to GSD v1 `.planning/` format — the reverse of the forward
migration GSD-2 ships.

Closes #2069

Maps GSD-2's Milestone → Slice → Task hierarchy to v1's flat
Milestone sections → Phase → Plan structure. Slices are numbered
sequentially across all milestones; tasks become numbered plans within
their phase. Completion state, research files, and summaries are
preserved.

New files:
- `get-shit-done/bin/lib/gsd2-import.cjs` — parser, transformer, writer
- `commands/gsd/from-gsd2.md` — slash command definition
- `tests/gsd2-import.test.cjs` — 41 tests, 99.21% statement coverage

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-10 21:30:13 -04:00

1.8 KiB

name, description, argument-hint, allowed-tools, type
name description argument-hint allowed-tools type
gsd:from-gsd2 Import a GSD-2 (.gsd/) project back to GSD v1 (.planning/) format [--path <dir>] [--force]
Read
Write
Bash
prompt
Reverse-migrate a GSD-2 project (`.gsd/` directory) back to GSD v1 (`.planning/`) format.

Maps the GSD-2 hierarchy (Milestone → Slice → Task) to the GSD v1 hierarchy (Milestone sections in ROADMAP.md → Phase → Plan), preserving completion state, research files, and summaries.

  1. Locate the .gsd/ directory — check the current working directory (or --path argument):

    node "$HOME/.claude/get-shit-done/bin/gsd-tools.cjs" from-gsd2 --dry-run
    

    If no .gsd/ is found, report the error and stop.

  2. Show the dry-run preview — present the full file list and migration statistics to the user. Ask for confirmation before writing anything.

  3. Run the migration after confirmation:

    node "$HOME/.claude/get-shit-done/bin/gsd-tools.cjs" from-gsd2
    

    Use --force if .planning/ already exists and the user has confirmed overwrite.

  4. Report the result — show the filesWritten count, planningDir path, and the preview summary.

- The migration is non-destructive: `.gsd/` is never modified or removed. - Pass `--path ` to migrate a project at a different path than the current directory. - Slices are numbered sequentially across all milestones (M001/S01 → phase 01, M001/S02 → phase 02, M002/S01 → phase 03, etc.). - Tasks within each slice become plans (T01 → plan 01, T02 → plan 02, etc.). - Completed slices and tasks carry their done state into ROADMAP.md checkboxes and SUMMARY.md files. - GSD-2 cost/token ledger, database state, and VS Code extension state cannot be migrated.