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>
46 lines
1.8 KiB
Markdown
46 lines
1.8 KiB
Markdown
---
|
|
name: gsd:from-gsd2
|
|
description: Import a GSD-2 (.gsd/) project back to GSD v1 (.planning/) format
|
|
argument-hint: "[--path <dir>] [--force]"
|
|
allowed-tools:
|
|
- Read
|
|
- Write
|
|
- Bash
|
|
type: prompt
|
|
---
|
|
|
|
<objective>
|
|
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.
|
|
</objective>
|
|
|
|
<process>
|
|
|
|
1. **Locate the .gsd/ directory** — check the current working directory (or `--path` argument):
|
|
```bash
|
|
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:
|
|
```bash
|
|
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.
|
|
|
|
</process>
|
|
|
|
<notes>
|
|
- The migration is non-destructive: `.gsd/` is never modified or removed.
|
|
- Pass `--path <dir>` 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.
|
|
</notes>
|