pi-gsd 1.0.7 → 1.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. package/.gsd/extensions/gsd-hooks.ts +237 -0
  2. package/README.md +108 -310
  3. package/dist/pi-gsd-tools.js +383 -0
  4. package/package.json +11 -10
  5. package/scripts/postinstall.js +270 -220
  6. package/skills/gsd-add-backlog/SKILL.md +3 -3
  7. package/skills/gsd-add-phase/SKILL.md +2 -2
  8. package/skills/gsd-add-tests/SKILL.md +2 -2
  9. package/skills/gsd-add-todo/SKILL.md +2 -2
  10. package/skills/gsd-audit-milestone/SKILL.md +2 -2
  11. package/skills/gsd-audit-uat/SKILL.md +1 -1
  12. package/skills/gsd-autonomous/SKILL.md +4 -4
  13. package/skills/gsd-check-todos/SKILL.md +2 -2
  14. package/skills/gsd-cleanup/SKILL.md +2 -2
  15. package/skills/gsd-complete-milestone/SKILL.md +2 -2
  16. package/skills/gsd-debug/SKILL.md +2 -2
  17. package/skills/gsd-discuss-phase/SKILL.md +6 -6
  18. package/skills/gsd-do/SKILL.md +3 -3
  19. package/skills/gsd-execute-phase/SKILL.md +4 -4
  20. package/skills/gsd-fast/SKILL.md +2 -2
  21. package/skills/gsd-forensics/SKILL.md +2 -2
  22. package/skills/gsd-health/SKILL.md +7 -3
  23. package/skills/gsd-help/SKILL.md +2 -2
  24. package/skills/gsd-insert-phase/SKILL.md +2 -2
  25. package/skills/gsd-list-phase-assumptions/SKILL.md +1 -1
  26. package/skills/gsd-list-workspaces/SKILL.md +3 -3
  27. package/skills/gsd-manager/SKILL.md +4 -4
  28. package/skills/gsd-map-codebase/SKILL.md +1 -1
  29. package/skills/gsd-milestone-summary/SKILL.md +2 -2
  30. package/skills/gsd-new-milestone/SKILL.md +6 -6
  31. package/skills/gsd-new-project/SKILL.md +6 -6
  32. package/skills/gsd-new-workspace/SKILL.md +3 -3
  33. package/skills/gsd-next/SKILL.md +2 -2
  34. package/skills/gsd-note/SKILL.md +3 -3
  35. package/skills/gsd-pause-work/SKILL.md +2 -2
  36. package/skills/gsd-plan-milestone-gaps/SKILL.md +2 -2
  37. package/skills/gsd-plan-phase/SKILL.md +3 -3
  38. package/skills/gsd-plant-seed/SKILL.md +2 -2
  39. package/skills/gsd-pr-branch/SKILL.md +2 -2
  40. package/skills/gsd-profile-user/SKILL.md +2 -2
  41. package/skills/gsd-progress/SKILL.md +7 -3
  42. package/skills/gsd-quick/SKILL.md +2 -2
  43. package/skills/gsd-remove-phase/SKILL.md +2 -2
  44. package/skills/gsd-remove-workspace/SKILL.md +3 -3
  45. package/skills/gsd-research-phase/SKILL.md +3 -3
  46. package/skills/gsd-resume-work/SKILL.md +2 -2
  47. package/skills/gsd-review/SKILL.md +2 -2
  48. package/skills/gsd-review-backlog/SKILL.md +2 -2
  49. package/skills/gsd-session-report/SKILL.md +2 -2
  50. package/skills/gsd-set-profile/SKILL.md +1 -1
  51. package/skills/gsd-settings/SKILL.md +2 -2
  52. package/skills/gsd-setup-pi/SKILL.md +105 -0
  53. package/skills/gsd-ship/SKILL.md +2 -2
  54. package/skills/gsd-stats/SKILL.md +6 -2
  55. package/skills/gsd-thread/SKILL.md +2 -2
  56. package/skills/gsd-ui-phase/SKILL.md +3 -3
  57. package/skills/gsd-ui-review/SKILL.md +3 -3
  58. package/skills/gsd-update/SKILL.md +2 -2
  59. package/skills/gsd-validate-phase/SKILL.md +2 -2
  60. package/skills/gsd-verify-work/SKILL.md +3 -3
  61. package/skills/gsd-workstreams/SKILL.md +1 -1
  62. package/dist/gsd-tools.js +0 -380
package/README.md CHANGED
@@ -1,374 +1,172 @@
1
1
  # pi-gsd
2
2
 
3
- > **A reverse-engineered, fully-documented snapshot of [Get Shit Done](https://github.com/get-shit-done-cc/get-shit-done) v1.30.0 across all 8 AI harnesses.**
3
+ > **Unofficial port of [Get Shit Done](https://github.com/gsd-build/get-shit-done) v1.30.0 for [pi](https://github.com/mariozechner/pi-coding-agent)**
4
4
 
5
- [![version: 1.30.0](https://img.shields.io/badge/gsd-v1.30.0-blue.svg)](https://github.com/get-shit-done-cc/get-shit-done)
5
+ [![npm version](https://img.shields.io/npm/v/pi-gsd.svg)](https://www.npmjs.com/package/pi-gsd)
6
6
  [![license: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)
7
- [![harnesses: 8](https://img.shields.io/badge/harnesses-8-green.svg)](#harness-directory-map)
8
- [![hooks: 5](https://img.shields.io/badge/hooks-5-orange.svg)](HOOKS_ARCHITECTURE.md)
7
+ [![skills: 57](https://img.shields.io/badge/skills-57-orange.svg)](#skills)
9
8
 
10
- This repository holds a snapshot of GSD as installed across eight AI coding harnesses - Claude Code, Gemini CLI, OpenCode, Codex, Cursor, Windsurf, GitHub Copilot, and the generic `.agent` harness - captured on 2026-04-03. It exists to document and audit cross-harness consistency, expose every intentional and accidental divergence, and serve as a reference for contributors and tooling authors.
9
+ GSD is a structured software-delivery framework for AI coding agents. It wraps any AI coding session with a six-step phase lifecycle, 57 slash commands, 18 specialized subagents, background hooks, and model profiles - all backed by a git-committed `.planning/` directory that survives context resets.
11
10
 
12
- ---
13
-
14
- ## Table of Contents
15
-
16
- 1. [What Is GSD?](#1-what-is-gsd)
17
- 2. [What Is This Repo?](#2-what-is-this-repo)
18
- 3. [Harness Directory Map](#3-harness-directory-map)
19
- 4. [Cross-Harness Consistency Model](#4-cross-harness-consistency-model)
20
- 5. [Command Prefix Reference](#5-command-prefix-reference)
21
- 6. [Hook System](#6-hook-system)
22
- 7. [Directory Structure Deep-Dive](#7-directory-structure-deep-dive)
23
- 8. [Audit & Validation Scripts](#8-audit--validation-scripts)
24
- 9. [Known Divergences](#9-known-divergences)
25
- 10. [Reference Documents](#10-reference-documents)
26
- 11. [License](#11-license)
11
+ This package installs GSD into your project for pi (and optionally Claude Code, Gemini CLI, Cursor, Windsurf, OpenCode, Codex, and GitHub Copilot) automatically on `npm install`.
27
12
 
28
13
  ---
29
14
 
30
- ## 1. What Is GSD?
15
+ ## Install
31
16
 
32
- **Get Shit Done** (`get-shit-done-cc`) is a structured software-delivery framework for AI coding agents. It wraps any AI coding session with a six-step phase lifecycle:
17
+ **Via pi (recommended):**
33
18
 
19
+ ```sh
20
+ pi install npm:pi-gsd
34
21
  ```
35
- discuss ──► research ──► plan ──► execute ──► verify ──► validate
36
- ```
37
-
38
- Key characteristics:
39
-
40
- - **57+ slash commands** - `/gsd-new-project`, `/gsd-plan-phase <N>`, `/gsd-execute-phase <N>`, and more
41
- - **18 specialized subagents** - planner, executor, verifier, debugger, codebase-mapper, and others
42
- - **5 background hooks** - context monitor, prompt guard, workflow guard, update checker, statusline
43
- - **4 model profiles** - `quality`, `balanced` (default), `budget`, `inherit`
44
- - **Works across 8 harnesses** - single canonical command set regardless of which AI tool you use
45
- - **Zero runtime dependencies** - all hooks and tooling run on Node.js built-ins only
46
-
47
- For full usage documentation, see [`.agent/README.md`](.agent/README.md), which is the canonical per-install README.
48
-
49
- ---
50
-
51
- ## 2. What Is This Repo?
52
-
53
- This repository (`pi-gsd`) is **not** the GSD npm package. It is a post-install snapshot:
54
-
55
- | What | Detail |
56
- | ------------ | ---------------------------------------------------------------------------------------------- |
57
- | **Source** | `npx get-shit-done-cc` installed into each of the 8 harness directories |
58
- | **Version** | `1.30.0` (all harnesses) |
59
- | **Captured** | 2026-04-03 (`.agent` + `.opencode` at 09:57 UTC; others at 08:46 UTC) |
60
- | **Purpose** | Cross-harness audit, documentation, and drift analysis |
61
- | **Upstream** | [github.com/get-shit-done-cc/get-shit-done](https://github.com/get-shit-done-cc/get-shit-done) |
62
-
63
- ### What is and isn't here
64
-
65
- **Included:**
66
- - All workflow `.md` files for every harness
67
- - All compiled binary modules (`gsd-tools.cjs` and all `lib/*.cjs`)
68
- - All hook files (hardlinked - see [§6](#6-hook-system))
69
- - All agent definition files (`agents/gsd-*.md`)
70
- - All skill definitions (`skills/gsd-*/SKILL.md`)
71
- - All reference docs (`references/*.md`)
72
- - Audit and validation scripts (`scripts/`)
73
- - Cross-harness analysis reports (`HARNESS_DIFF.md`, `COMMAND_PREFIX_MAP.md`, `HOOKS_ARCHITECTURE.md`)
74
-
75
- **Not included:**
76
- - The upstream GSD npm package source
77
- - Node.js `node_modules/` (there are none - GSD is dependency-free)
78
- - User-specific `.planning/` project state files
79
- - Session history or profile data
80
-
81
- ---
82
-
83
- ## 3. Harness Directory Map
84
-
85
- Each top-level dotted directory is a complete GSD install for one AI coding tool:
86
-
87
- | Directory | AI Tool | Hooks | Skills | Agents | Command prefix |
88
- | ---------------- | --------------------------------------------------------- | :---: | :----: | :----: | -------------- |
89
- | **`.agent/`** | Generic / catch-all harness | ✅ 5 | ✅ 57 | ✅ 18 | `/gsd-<cmd>` |
90
- | **`.claude/`** | [Claude Code](https://claude.ai/code) | ✅ 5 | ❌ | ✅ 18 | `/gsd-<cmd>` |
91
- | **`.codex/`** | [OpenAI Codex](https://openai.com/codex) | ❌ | ✅ 57 | ✅ 18 | `/gsd-<cmd>` |
92
- | **`.cursor/`** | [Cursor](https://cursor.sh) | ❌ | ✅ 57 | ✅ 18 | `/gsd-<cmd>` |
93
- | **`.gemini/`** | [Gemini CLI](https://github.com/google-gemini/gemini-cli) | ✅ 5 | ❌ | ✅ 18 | `/gsd-<cmd>` |
94
- | **`.github/`** | [GitHub Copilot](https://github.com/features/copilot) | ❌ | ✅ 57 | ❌ | `/gsd-<cmd>` |
95
- | **`.opencode/`** | [OpenCode](https://opencode.ai) | ✅ 5 | ✅ 57 | ✅ 18 | `/gsd-<cmd>` |
96
- | **`.windsurf/`** | [Windsurf](https://codeium.com/windsurf) | ❌ | ✅ 57 | ✅ 18 | `/gsd-<cmd>` |
97
-
98
- ### Additional directories
99
-
100
- | Directory | Purpose |
101
- | --------------- | ------------------------------------------------------------------------------------------------------------------ |
102
- | **`.gsd/`** | Canonical hook source (`hooks/`) + compiled binary copies (`bin/`); used as the hardlink anchor for all hook files |
103
- | **`.pi/`** | pi package manager metadata |
104
- | **`.pi-lens/`** | pi lens configuration |
105
- | **`scripts/`** | Audit and validation scripts for cross-harness integrity checks |
106
-
107
- > **Note on `.claude/` and `.gemini/` skills:** These two harnesses intentionally omit all 57 `skills/gsd-*/SKILL.md` files. Claude Code and Gemini CLI expose GSD capabilities through their native workflow/command mechanism rather than SKILL-based dispatch.
108
-
109
- > **Note on `.github/` agents:** GitHub Copilot does not support agent definitions, so the `agents/` directory is absent from `.github/`.
110
-
111
- ---
112
-
113
- ## 4. Cross-Harness Consistency Model
114
-
115
- GSD maintains a **two-tier consistency model**:
116
-
117
- ### Tier 1 - Must be byte-identical across all harnesses
118
-
119
- These 10 binary modules contain shared logic with no harness-specific variation:
120
-
121
- `frontmatter.cjs` · `milestone.cjs` · `model-profiles.cjs` · `roadmap.cjs` · `security.cjs` · `state.cjs` · `template.cjs` · `uat.cjs` · `init.cjs` · (core library logic)
122
-
123
- All 10 pass the byte-identity check in this snapshot. ✅
124
-
125
- ### Tier 2 - Harness-specific (intentionally different)
126
-
127
- These 8 modules contain per-harness substitutions:
128
-
129
- | Module | What varies |
130
- | ---------------------- | ---------------------------------------------------------------------------- |
131
- | `commands.cjs` | Command prefix in generated scaffold content |
132
- | `config.cjs` | Command prefix in documentation strings |
133
- | `core.cjs` | JSDoc type annotations (`.agent` only); runtime branching flags |
134
- | `phase.cjs` | Command prefix in ROADMAP phase entries |
135
- | `profile-output.cjs` | Branding (Claude.md vs GEMINI.md vs .cursor/rules/); profiling question text |
136
- | `profile-pipeline.cjs` | Session history search path (`.agent/projects` vs `~/.claude/projects`) |
137
- | `verify.cjs` | Command prefix in error messages |
138
- | `workstream.cjs` | Command prefix in error messages |
139
-
140
- ### Hook files - hardlinked (single inode)
141
22
 
142
- All 5 hook files in `.agent/hooks/`, `.claude/hooks/`, `.gemini/hooks/`, `.opencode/hooks/`, and `.gsd/hooks/` share a single OS inode. They are not copies. See [§6](#6-hook-system) and [`HOOKS_ARCHITECTURE.md`](HOOKS_ARCHITECTURE.md) for details.
23
+ **Via npm (global, for multi-harness projects):**
143
24
 
144
- ---
145
-
146
- ## 5. Command Prefix Reference
25
+ ```sh
26
+ npm install -g pi-gsd
27
+ ```
147
28
 
148
- All user-facing GSD commands use the **`/gsd-<name>`** slash-hyphen prefix across every harness:
29
+ After install, run your first GSD command:
149
30
 
150
31
  ```
151
- /gsd-new-project /gsd-plan-phase <N> /gsd-execute-phase <N>
152
- /gsd-discuss-phase <N> /gsd-verify-work <N> /gsd-validate-phase <N>
153
- /gsd-next /gsd-progress /gsd-autonomous
154
- /gsd-do <text> /gsd-quick <task> /gsd-help
32
+ /gsd-new-project
155
33
  ```
156
34
 
157
- The `/gsd:<cmd>` colon-form (e.g. `/gsd:discuss-phase`) appears **only** inside Claude Code and Gemini CLI workflow `.md` files as an internal harness dispatch mechanism - it is never emitted into generated files or error messages. Full details and the complete command inventory are in:
158
-
159
- 📄 **[COMMAND_PREFIX_MAP.md](COMMAND_PREFIX_MAP.md)**
160
-
161
35
  ---
162
36
 
163
- ## 6. Hook System
37
+ ## What You Get
164
38
 
165
- GSD ships 5 background hooks that run automatically on harness events:
39
+ | Artifact | Count | Description |
40
+ | ---------- | ----: | ----------------------------------------------------------------- |
41
+ | Skills | 57 | pi skill definitions (`/gsd-*`) loaded automatically |
42
+ | CLI binary | 1 | `pi-gsd-tools` - state management, scaffolding, model routing |
43
+ | Hooks | 5 | Background hooks (context monitor, workflow guard, statusline, …) |
166
44
 
167
- | Hook | Trigger | Purpose |
168
- | ------------------------ | --------------------------- | ---------------------------------------------------------- |
169
- | `gsd-statusline.js` | `StatusLine` | Terminal context bar showing model + active task |
170
- | `gsd-context-monitor.js` | `PostToolUse` / `AfterTool` | Advisory warnings at 35% / 25% remaining context |
171
- | `gsd-prompt-guard.js` | `PreToolUse` / `BeforeTool` | Scans `.planning/` writes for 13 prompt-injection patterns |
172
- | `gsd-check-update.js` | `SessionStart` | Background npm version check; cached result |
173
- | `gsd-workflow-guard.js` | `PreToolUse` / `BeforeTool` | Nudge to use `/gsd-fast` for ad-hoc edits |
174
-
175
- ### Harness hook coverage
176
-
177
- | Harness | Hooks |
178
- | ----------------------------------------------- | -------------------- |
179
- | `.claude/`, `.gemini/`, `.opencode/`, `.agent/` | ✅ All 5 (hardlinked) |
180
- | `.codex/` | ❌ No hook API |
181
- | `.cursor/`, `.windsurf/`, `.github/` | ❌ No hook API |
182
-
183
- ### The hardlink model
45
+ ---
184
46
 
185
- All five hook files in `.agent/hooks/`, `.claude/hooks/`, `.gemini/hooks/`, `.opencode/hooks/`, and `.gsd/hooks/` share a **single inode** on disk. Editing any one of them instantly edits all of them - no sync step, no drift.
47
+ ## The GSD Workflow
186
48
 
187
- ```bash
188
- # Verify: all lines should show the same inode number
189
- stat -c "%i %h %n" \
190
- .gsd/hooks/gsd-statusline.js \
191
- .agent/hooks/gsd-statusline.js \
192
- .claude/hooks/gsd-statusline.js \
193
- .gemini/hooks/gsd-statusline.js \
194
- .opencode/hooks/gsd-statusline.js
49
+ ```
50
+ /gsd-new-project
51
+ └─► /gsd-discuss-phase <N>
52
+ └─► /gsd-plan-phase <N>
53
+ └─► /gsd-execute-phase <N>
54
+ └─► /gsd-verify-work <N>
55
+ └─► /gsd-validate-phase <N>
56
+ └─► (next phase or /gsd-complete-milestone)
195
57
  ```
196
58
 
197
- Full architecture, install pipeline, runtime self-detection, contributor rules, and re-link commands are documented in:
198
-
199
- 📄 **[HOOKS_ARCHITECTURE.md](HOOKS_ARCHITECTURE.md)**
59
+ All project state lives in `.planning/` - committed to git, survives `/clear` and context resets.
200
60
 
201
61
  ---
202
62
 
203
- ## 7. Directory Structure Deep-Dive
63
+ ## Skills
204
64
 
205
- ### Each harness directory layout
65
+ All 57 GSD commands are available as pi skills the moment you install the package:
206
66
 
207
67
  ```
208
- .<harness>/
209
- ├── get-shit-done/
210
- ├── VERSION ← "1.30.0"
211
- │ ├── bin/
212
- │ │ ├── gsd-tools.cjs ← CLI entry point (all commands)
213
- │ │ └── lib/
214
- │ │ ├── commands.cjs ← harness-specific (command prefix)
215
- │ │ ├── config.cjs ← harness-specific (command prefix in docs)
216
- │ │ ├── core.cjs ← harness-specific (+ JSDoc in .agent only)
217
- │ │ ├── frontmatter.cjs ← IDENTICAL across all 8 harnesses
218
- │ │ ├── init.cjs ← IDENTICAL across all 8 harnesses
219
- │ │ ├── milestone.cjs ← IDENTICAL across all 8 harnesses
220
- │ │ ├── model-profiles.cjs ← shared model routing data
221
- │ │ ├── phase.cjs ← harness-specific (command prefix)
222
- │ │ ├── profile-output.cjs ← harness-specific (branding)
223
- │ │ ├── profile-pipeline.cjs← harness-specific (session paths)
224
- │ │ ├── roadmap.cjs ← IDENTICAL across all 8 harnesses
225
- │ │ ├── security.cjs ← IDENTICAL across all 8 harnesses
226
- │ │ ├── state.cjs ← IDENTICAL across all 8 harnesses
227
- │ │ ├── template.cjs ← IDENTICAL across all 8 harnesses
228
- │ │ ├── uat.cjs ← IDENTICAL across all 8 harnesses
229
- │ │ ├── verify.cjs ← harness-specific (command prefix)
230
- │ │ └── workstream.cjs ← harness-specific (command prefix)
231
- │ ├── workflows/
232
- │ │ └── *.md ← 53 workflow files (harness path + prefix substituted)
233
- │ ├── agents/
234
- │ │ └── gsd-*.md ← 18 agent definitions (absent from .github/)
235
- │ ├── skills/
236
- │ │ └── gsd-*/SKILL.md ← 57 skill definitions (absent from .claude/, .gemini/)
237
- │ └── references/
238
- │ └── *.md ← model-profiles, checkpoints, verification-patterns, etc.
239
- ├── hooks/ ← present in .agent/, .claude/, .gemini/, .opencode/ only
240
- │ ├── gsd-check-update.js ← hardlinked (same inode as .gsd/hooks/)
241
- │ ├── gsd-context-monitor.js ← hardlinked
242
- │ ├── gsd-prompt-guard.js ← hardlinked
243
- │ ├── gsd-statusline.js ← hardlinked
244
- │ └── gsd-workflow-guard.js ← hardlinked
245
- ├── settings.json ← hook registration (.agent, .claude, .gemini); {} for .opencode
246
- ├── package.json ← present in .agent/ only (pi package manifest)
247
- ├── gsd-file-manifest.json ← SHA-256 content hashes for all installed files
248
- └── README.md ← present in .agent/ only (canonical usage docs)
68
+ /gsd-new-project /gsd-new-milestone /gsd-discuss-phase <N>
69
+ /gsd-plan-phase <N> /gsd-execute-phase <N> /gsd-verify-work <N>
70
+ /gsd-validate-phase <N> /gsd-next /gsd-progress
71
+ /gsd-autonomous /gsd-quick <task> /gsd-fast <task>
72
+ /gsd-do <text> /gsd-debug /gsd-health
73
+ /gsd-stats /gsd-help …and 40 more
249
74
  ```
250
75
 
251
- ### `.gsd/` canonical hook source
252
-
253
- ```
254
- .gsd/
255
- ├── hooks/
256
- │ ├── gsd-check-update.js ← canonical hardlink anchor
257
- │ ├── gsd-context-monitor.js
258
- │ ├── gsd-prompt-guard.js
259
- │ ├── gsd-statusline.js
260
- │ └── gsd-workflow-guard.js
261
- ├── bin/
262
- │ ├── agent/ ← binary copies keyed by harness
263
- │ ├── claude/
264
- │ ├── codex/
265
- │ ├── cursor/
266
- │ ├── gemini/
267
- │ ├── github/
268
- │ ├── opencode/
269
- │ └── windsurf/
270
- └── JS_MODULE_ARCHITECTURE.md ← full module dependency graph + data flows
271
- ```
272
-
273
- ### `scripts/` audit tooling
274
-
275
- ```
276
- scripts/
277
- ├── audit-harness-sync.cjs ← cross-harness file hash comparison
278
- ├── validate-harness-sync.cjs ← full 5-check integrity suite (CJS, workflows, filesets, VERSION, manifests)
279
- ├── validate-model-profiles.cjs ← confirms model-profiles.md is in sync with model-profiles.cjs
280
- └── model-profiles-maintenance.md ← instructions for updating model profile docs
281
- ```
76
+ Run `/gsd-help` for the full list with descriptions.
282
77
 
283
78
  ---
284
79
 
285
- ## 8. Audit & Validation Scripts
80
+ ## CLI: `pi-gsd-tools`
286
81
 
287
- Run from the repo root (`/home/fulgidus/Documents/pi-gsd`):
82
+ The `pi-gsd-tools` binary is the runtime backbone called by GSD workflow files. It manages all `.planning/` state. You rarely need to call it directly, but it's available:
288
83
 
289
- ```bash
290
- # Full cross-harness integrity suite (5 checks)
291
- node scripts/validate-harness-sync.cjs
84
+ ```sh
85
+ pi-gsd-tools state json # dump current STATE.md as JSON
86
+ pi-gsd-tools state update <field> <value> # update a state field
87
+ pi-gsd-tools find-phase <N> # locate a phase directory
88
+ pi-gsd-tools roadmap analyze # analyse ROADMAP.md structure
89
+ pi-gsd-tools validate health --repair # check and auto-repair .planning/
90
+ pi-gsd-tools stats json # project statistics
91
+ pi-gsd-tools progress json # progress summary
92
+ pi-gsd-tools commit "message" --files a b c # commit with GSD tracking
292
93
 
293
- # Cross-harness file hash comparison
294
- node scripts/audit-harness-sync.cjs
295
-
296
- # Confirm model-profiles.md matches model-profiles.cjs source across all 8 harnesses
297
- node scripts/validate-model-profiles.cjs
94
+ # Output formatting (pi-native)
95
+ pi-gsd-tools state json --output toon # pretty-print with toon renderer
96
+ pi-gsd-tools state json --pick phase # extract a single field
298
97
  ```
299
98
 
300
- ### Latest audit results (2026-04-03)
301
-
302
- | Check | Result |
303
- | ------------------------------------- | -------------------------------------------------------- |
304
- | CJS binary identity (10 strict files) | ✅ All identical |
305
- | VERSION consistency | ✅ All at v1.30.0 |
306
- | model-profiles.md sync | ✅ All 8 harnesses in sync |
307
- | File-set completeness | ⚠️ `.opencode` missing 57 skills on disk |
308
- | Manifest integrity | ⚠️ 6 harnesses have stale manifests (older install era) |
309
- | Workflow diffs | ℹ️ 349 diffs - all are expected path/prefix substitutions |
310
- | Hook hardlinks | ✅ 5 hooks × 5 harnesses share single inode |
311
-
312
- Full diff analysis is in: 📄 **[HARNESS_DIFF.md](HARNESS_DIFF.md)**
99
+ Run `pi-gsd-tools --help` for the full command reference.
313
100
 
314
101
  ---
315
102
 
316
- ## 9. Known Divergences
317
-
318
- These differences between harnesses are **intentional by design**:
319
-
320
- ### 9a. Command prefix in workflow files
321
-
322
- | Prefix style | Harnesses |
323
- | ------------- | -------------------------------------------------------- |
324
- | `/gsd-<name>` | `.agent`, `.cursor`, `.github`, `.opencode`, `.windsurf` |
325
- | `/gsd:<name>` | `.claude`, `.gemini` (internal workflow dispatch only) |
326
-
327
- The colon-form `/gsd:<name>` is a Claude Code / Gemini CLI internal mechanism. It **must not** appear in generated artefacts (CONTEXT.md scaffolds, error messages). See [`COMMAND_PREFIX_MAP.md`](COMMAND_PREFIX_MAP.md).
328
-
329
- ### 9b. Skills directory absent from `.claude/` and `.gemini/`
103
+ ## Model Profiles
330
104
 
331
- Claude Code and Gemini CLI use their native workflow/command pattern for capability dispatch. The 57 `skills/gsd-*/SKILL.md` files are not needed and are intentionally excluded.
105
+ GSD routes subagents to different models based on your active profile:
332
106
 
333
- ### 9c. Agents directory absent from `.github/`
107
+ | Profile | Description |
108
+ | ---------- | ----------------------------------------------------- |
109
+ | `quality` | Maximum reasoning - Opus/Pro for all decision agents |
110
+ | `balanced` | Default - Sonnet/Flash tier, good cost/quality ratio |
111
+ | `budget` | Cheapest available model per agent |
112
+ | `inherit` | Use the session's currently selected model everywhere |
334
113
 
335
- GitHub Copilot has no agent definition API. All 18 `agents/gsd-*.md` files are intentionally excluded from `.github/`.
114
+ Switch profile: `/gsd-set-profile <profile>`
336
115
 
337
- ### 9d. Hook files absent from `.codex/`, `.cursor/`, `.windsurf/`, `.github/`
338
-
339
- These four harnesses have no hook execution API. Hooks only run in harnesses that support `PostToolUse`/`SessionStart`-style events.
340
-
341
- ### 9e. `profile-output.cjs` branding per harness
116
+ ---
342
117
 
343
- Each harness's binary correctly names its own profile target file (e.g. `CLAUDE.md` for Claude Code, `.cursor/rules/` for Cursor). This is an intentional per-harness substitution.
118
+ ## Comparison with GSD v1.30.0
119
+
120
+ | Feature | gsd v1.30 | pi-gsd | Details |
121
+ | -----------------------------------: | :-------: | :----: | :--------------------------------------------------------------------------------------------------- |
122
+ | `.planning/` data format | ✔️ | ✔️ | 100% compatible - projects are portable across tools |
123
+ | Workstreams | ✔️ | ✔️ | Full workstream isolation |
124
+ | 4 model profiles | ✔️ | ✔️ | quality / balanced / budget / inherit |
125
+ | 18 subagents | ✔️ | ✔️ | Identical agent definitions |
126
+ | 57 GSD skills | ✔️ | ✔️ | All commands available via pi ~~skill system~~ prompt dispatcher (_more details below_) |
127
+ | Different skills paths for pi | ✔️ | ⚡ | All 57 skills moved to `.pi/gsd/` to allow for advanced `pi-gsd-tools` usage (_more details below_) |
128
+ | pi harness (`.pi/`) | ❌ | ✔️ | New - GSD installs into pi's config dir |
129
+ | Background hooks (pi) | ❌ | ✔️ | TypeScript extension (`gsd-hooks.ts`) installed via postinstall |
130
+ | Pi session history ingestion | ❌ | ✔️ | `/gsd-profile-user` reads pi JSONL sessions from `~/.pi/agent/sessions/` |
131
+ | `/gsd-setup-pi` onboarding | ❌ | ✔️ | Setup skill for `bun install` where postinstall is skipped (default untrusted behavior) |
132
+ | `gsd-tools` →`pi-gsd-tools` CLI | ✔️ | ⚡ | Same commands basic signatures as original (`gsd-tools`) but enhanced |
133
+ | `[-o\|--output] [toon\|json]` output | ❌ | ⚡ | Token-efficient toon renderer output (or json, if LLM absolutely needs it...) |
134
+ | `[-p\|--pick] {JSONPath}` extraction | ❌ | ⚡ | Field extraction from CLI output |
135
+ | TypeScript source | ❌ | ⚡ | Full TS port of gsd-tools (~9k lines) |
136
+ | Compile-time type safety | ❌ | ⚡ | Fully typed - no `any`, only Zod-inferred types |
137
+ | Runtime validation (Zod) | ❌ | ⚡ | Schema-driven `validate health` with field-path errors |
138
+ | Smarter `--repair` | ❌ | ⚡ | Zod schema defaults fill all missing/invalid fields at once |
139
+ | Instant commands (no LLM cost) | ❌ | 🚧 | `/gsd-progress`, `/gsd-stats`, `/gsd-help`, `/gsd-health` via pi extension commands |
140
+ | Prompt-dispatch for all skills | ❌ | 🚧 | Pi prompt templates replace skill dispatch - clean autocomplete + arg hints |
141
+
142
+ <!-- | Pi harness config entry | ❌ | ✔️ | `HARNESS_CONFIG` pi entry - generates `AGENTS.md` via `/gsd-profile-user` | -->
143
+ <!-- | Toon output in skills | ❌ | ✔️ | `gsd-progress`, `gsd-stats`, `gsd-health` use `--output toon` | -->
344
144
 
345
- ### 9f. `profile-pipeline.cjs` session history path
145
+ ---
346
146
 
347
- `.agent` and `.opencode` use a local `.agent/projects` path for session history. `.claude`, `.codex`, `.gemini` use `~/.claude/projects`. `.cursor` uses a Cursor-specific session path.
147
+ ## Data Format Compatibility
348
148
 
349
- ### 9g. `gsd-tools.cjs` two versions
149
+ This package is a **faithful port** of GSD v1.30.0. The `.planning/` directory layout, all file formats (`STATE.md`, `ROADMAP.md`, `REQUIREMENTS.md`, `PLAN.md`, `SUMMARY.md`, `UAT.md`), frontmatter schemas, and `pi-gsd-tools` command signatures are **byte-compatible** with the original `get-shit-done-cc` package.
350
150
 
351
- `.agent` and `.opencode` have a newer build of the entry binary (installed 09:57 UTC); the other 6 harnesses have the older build (08:46 UTC). Functionality is equivalent at v1.30.0.
151
+ Projects started with the original GSD work without migration.
352
152
 
353
153
  ---
354
154
 
355
- ## 10. Reference Documents
155
+ ## Development
356
156
 
357
- | Document | What it covers |
358
- | ---------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ |
359
- | 📄 [`COMMAND_PREFIX_MAP.md`](COMMAND_PREFIX_MAP.md) | Complete command inventory, prefix semantics per harness, divergences found and fixed |
360
- | 📄 [`HOOKS_ARCHITECTURE.md`](HOOKS_ARCHITECTURE.md) | Hardlink model, hook inventory, install pipeline (3 stages), runtime self-detection, contributor rules, verification commands |
361
- | 📄 [`HARNESS_DIFF.md`](HARNESS_DIFF.md) | Full cross-harness diff analysis: binary modules, workflow divergences, validation script results, action items |
362
- | 📄 [`.agent/README.md`](.agent/README.md) | Full GSD usage documentation: installation, quick start, phase lifecycle, all 57 commands, model profiles, agent roster, hook system |
363
- | 📄 [`.gsd/JS_MODULE_ARCHITECTURE.md`](.gsd/JS_MODULE_ARCHITECTURE.md) | Module dependency graph, per-module function references, key data flows, file system layout, config schema, frontmatter schemas |
364
- | 📄 [`scripts/model-profiles-maintenance.md`](scripts/model-profiles-maintenance.md) | Procedure for updating model profiles across all harnesses |
157
+ ```sh
158
+ # Type-check
159
+ npm run typecheck
365
160
 
366
- ---
161
+ # Build CLI (TypeScript → dist/pi-gsd-tools.js)
162
+ npm run build
367
163
 
368
- ## 11. License
369
-
370
- MIT © [get-shit-done-cc](https://github.com/get-shit-done-cc/get-shit-done)
164
+ # Validate integrity
165
+ node scripts/validate-model-profiles.cjs
166
+ ```
371
167
 
372
168
  ---
373
169
 
374
- *GSD v1.30.0 snapshot · Captured 2026-04-03 · 8 harnesses · 57 commands · 18 agents · 5 hooks*
170
+ ## License
171
+
172
+ MIT - this is an unofficial port. Original GSD by [Get Shit Done](https://github.com/gsd-build/get-shit-done).