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.
- package/.gsd/extensions/gsd-hooks.ts +237 -0
- package/README.md +108 -310
- package/dist/pi-gsd-tools.js +383 -0
- package/package.json +11 -10
- package/scripts/postinstall.js +270 -220
- package/skills/gsd-add-backlog/SKILL.md +3 -3
- package/skills/gsd-add-phase/SKILL.md +2 -2
- package/skills/gsd-add-tests/SKILL.md +2 -2
- package/skills/gsd-add-todo/SKILL.md +2 -2
- package/skills/gsd-audit-milestone/SKILL.md +2 -2
- package/skills/gsd-audit-uat/SKILL.md +1 -1
- package/skills/gsd-autonomous/SKILL.md +4 -4
- package/skills/gsd-check-todos/SKILL.md +2 -2
- package/skills/gsd-cleanup/SKILL.md +2 -2
- package/skills/gsd-complete-milestone/SKILL.md +2 -2
- package/skills/gsd-debug/SKILL.md +2 -2
- package/skills/gsd-discuss-phase/SKILL.md +6 -6
- package/skills/gsd-do/SKILL.md +3 -3
- package/skills/gsd-execute-phase/SKILL.md +4 -4
- package/skills/gsd-fast/SKILL.md +2 -2
- package/skills/gsd-forensics/SKILL.md +2 -2
- package/skills/gsd-health/SKILL.md +7 -3
- package/skills/gsd-help/SKILL.md +2 -2
- package/skills/gsd-insert-phase/SKILL.md +2 -2
- package/skills/gsd-list-phase-assumptions/SKILL.md +1 -1
- package/skills/gsd-list-workspaces/SKILL.md +3 -3
- package/skills/gsd-manager/SKILL.md +4 -4
- package/skills/gsd-map-codebase/SKILL.md +1 -1
- package/skills/gsd-milestone-summary/SKILL.md +2 -2
- package/skills/gsd-new-milestone/SKILL.md +6 -6
- package/skills/gsd-new-project/SKILL.md +6 -6
- package/skills/gsd-new-workspace/SKILL.md +3 -3
- package/skills/gsd-next/SKILL.md +2 -2
- package/skills/gsd-note/SKILL.md +3 -3
- package/skills/gsd-pause-work/SKILL.md +2 -2
- package/skills/gsd-plan-milestone-gaps/SKILL.md +2 -2
- package/skills/gsd-plan-phase/SKILL.md +3 -3
- package/skills/gsd-plant-seed/SKILL.md +2 -2
- package/skills/gsd-pr-branch/SKILL.md +2 -2
- package/skills/gsd-profile-user/SKILL.md +2 -2
- package/skills/gsd-progress/SKILL.md +7 -3
- package/skills/gsd-quick/SKILL.md +2 -2
- package/skills/gsd-remove-phase/SKILL.md +2 -2
- package/skills/gsd-remove-workspace/SKILL.md +3 -3
- package/skills/gsd-research-phase/SKILL.md +3 -3
- package/skills/gsd-resume-work/SKILL.md +2 -2
- package/skills/gsd-review/SKILL.md +2 -2
- package/skills/gsd-review-backlog/SKILL.md +2 -2
- package/skills/gsd-session-report/SKILL.md +2 -2
- package/skills/gsd-set-profile/SKILL.md +1 -1
- package/skills/gsd-settings/SKILL.md +2 -2
- package/skills/gsd-setup-pi/SKILL.md +105 -0
- package/skills/gsd-ship/SKILL.md +2 -2
- package/skills/gsd-stats/SKILL.md +6 -2
- package/skills/gsd-thread/SKILL.md +2 -2
- package/skills/gsd-ui-phase/SKILL.md +3 -3
- package/skills/gsd-ui-review/SKILL.md +3 -3
- package/skills/gsd-update/SKILL.md +2 -2
- package/skills/gsd-validate-phase/SKILL.md +2 -2
- package/skills/gsd-verify-work/SKILL.md +3 -3
- package/skills/gsd-workstreams/SKILL.md +1 -1
- package/dist/gsd-tools.js +0 -380
package/README.md
CHANGED
|
@@ -1,374 +1,172 @@
|
|
|
1
1
|
# pi-gsd
|
|
2
2
|
|
|
3
|
-
> **
|
|
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
|
-
[](https://www.npmjs.com/package/pi-gsd)
|
|
6
6
|
[](LICENSE)
|
|
7
|
-
[](HOOKS_ARCHITECTURE.md)
|
|
7
|
+
[](#skills)
|
|
9
8
|
|
|
10
|
-
|
|
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
|
-
##
|
|
15
|
+
## Install
|
|
31
16
|
|
|
32
|
-
**
|
|
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
|
-
|
|
23
|
+
**Via npm (global, for multi-harness projects):**
|
|
143
24
|
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
25
|
+
```sh
|
|
26
|
+
npm install -g pi-gsd
|
|
27
|
+
```
|
|
147
28
|
|
|
148
|
-
|
|
29
|
+
After install, run your first GSD command:
|
|
149
30
|
|
|
150
31
|
```
|
|
151
|
-
/gsd-new-project
|
|
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
|
-
##
|
|
37
|
+
## What You Get
|
|
164
38
|
|
|
165
|
-
|
|
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
|
-
|
|
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
|
-
|
|
47
|
+
## The GSD Workflow
|
|
186
48
|
|
|
187
|
-
```
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
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
|
-
|
|
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
|
-
##
|
|
63
|
+
## Skills
|
|
204
64
|
|
|
205
|
-
|
|
65
|
+
All 57 GSD commands are available as pi skills the moment you install the package:
|
|
206
66
|
|
|
207
67
|
```
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
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
|
-
|
|
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
|
-
##
|
|
80
|
+
## CLI: `pi-gsd-tools`
|
|
286
81
|
|
|
287
|
-
|
|
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
|
-
```
|
|
290
|
-
#
|
|
291
|
-
|
|
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
|
-
#
|
|
294
|
-
|
|
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
|
-
|
|
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
|
-
##
|
|
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
|
-
|
|
105
|
+
GSD routes subagents to different models based on your active profile:
|
|
332
106
|
|
|
333
|
-
|
|
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
|
-
|
|
114
|
+
Switch profile: `/gsd-set-profile <profile>`
|
|
336
115
|
|
|
337
|
-
|
|
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
|
-
|
|
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
|
-
|
|
145
|
+
---
|
|
346
146
|
|
|
347
|
-
|
|
147
|
+
## Data Format Compatibility
|
|
348
148
|
|
|
349
|
-
|
|
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
|
-
|
|
151
|
+
Projects started with the original GSD work without migration.
|
|
352
152
|
|
|
353
153
|
---
|
|
354
154
|
|
|
355
|
-
##
|
|
155
|
+
## Development
|
|
356
156
|
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
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
|
-
|
|
369
|
-
|
|
370
|
-
|
|
164
|
+
# Validate integrity
|
|
165
|
+
node scripts/validate-model-profiles.cjs
|
|
166
|
+
```
|
|
371
167
|
|
|
372
168
|
---
|
|
373
169
|
|
|
374
|
-
|
|
170
|
+
## License
|
|
171
|
+
|
|
172
|
+
MIT - this is an unofficial port. Original GSD by [Get Shit Done](https://github.com/gsd-build/get-shit-done).
|