pi-gsd 1.0.3
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/LICENSE +21 -0
- package/README.md +374 -0
- package/dist/gsd-tools.js +380 -0
- package/package.json +72 -0
- package/scripts/postinstall.js +272 -0
- package/skills/gsd-add-backlog/SKILL.md +78 -0
- package/skills/gsd-add-phase/SKILL.md +39 -0
- package/skills/gsd-add-tests/SKILL.md +28 -0
- package/skills/gsd-add-todo/SKILL.md +42 -0
- package/skills/gsd-audit-milestone/SKILL.md +29 -0
- package/skills/gsd-audit-uat/SKILL.md +20 -0
- package/skills/gsd-autonomous/SKILL.md +34 -0
- package/skills/gsd-check-todos/SKILL.md +40 -0
- package/skills/gsd-cleanup/SKILL.md +19 -0
- package/skills/gsd-complete-milestone/SKILL.md +122 -0
- package/skills/gsd-debug/SKILL.md +178 -0
- package/skills/gsd-discuss-phase/SKILL.md +55 -0
- package/skills/gsd-do/SKILL.md +26 -0
- package/skills/gsd-execute-phase/SKILL.md +53 -0
- package/skills/gsd-fast/SKILL.md +22 -0
- package/skills/gsd-forensics/SKILL.md +51 -0
- package/skills/gsd-health/SKILL.md +17 -0
- package/skills/gsd-help/SKILL.md +24 -0
- package/skills/gsd-insert-phase/SKILL.md +28 -0
- package/skills/gsd-join-discord/SKILL.md +19 -0
- package/skills/gsd-list-phase-assumptions/SKILL.md +41 -0
- package/skills/gsd-list-workspaces/SKILL.md +17 -0
- package/skills/gsd-manager/SKILL.md +33 -0
- package/skills/gsd-map-codebase/SKILL.md +64 -0
- package/skills/gsd-milestone-summary/SKILL.md +45 -0
- package/skills/gsd-new-milestone/SKILL.md +39 -0
- package/skills/gsd-new-project/SKILL.md +37 -0
- package/skills/gsd-new-workspace/SKILL.md +41 -0
- package/skills/gsd-next/SKILL.md +19 -0
- package/skills/gsd-note/SKILL.md +30 -0
- package/skills/gsd-pause-work/SKILL.md +35 -0
- package/skills/gsd-plan-milestone-gaps/SKILL.md +28 -0
- package/skills/gsd-plan-phase/SKILL.md +38 -0
- package/skills/gsd-plant-seed/SKILL.md +21 -0
- package/skills/gsd-pr-branch/SKILL.md +20 -0
- package/skills/gsd-profile-user/SKILL.md +38 -0
- package/skills/gsd-progress/SKILL.md +19 -0
- package/skills/gsd-quick/SKILL.md +38 -0
- package/skills/gsd-reapply-patches/SKILL.md +126 -0
- package/skills/gsd-remove-phase/SKILL.md +26 -0
- package/skills/gsd-remove-workspace/SKILL.md +22 -0
- package/skills/gsd-research-phase/SKILL.md +200 -0
- package/skills/gsd-resume-work/SKILL.md +35 -0
- package/skills/gsd-review/SKILL.md +31 -0
- package/skills/gsd-review-backlog/SKILL.md +62 -0
- package/skills/gsd-session-report/SKILL.md +16 -0
- package/skills/gsd-set-profile/SKILL.md +9 -0
- package/skills/gsd-settings/SKILL.md +32 -0
- package/skills/gsd-ship/SKILL.md +16 -0
- package/skills/gsd-stats/SKILL.md +16 -0
- package/skills/gsd-thread/SKILL.md +133 -0
- package/skills/gsd-ui-phase/SKILL.md +24 -0
- package/skills/gsd-ui-review/SKILL.md +24 -0
- package/skills/gsd-update/SKILL.md +35 -0
- package/skills/gsd-validate-phase/SKILL.md +26 -0
- package/skills/gsd-verify-work/SKILL.md +30 -0
- package/skills/gsd-workstreams/SKILL.md +72 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Alessio Corsi
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,374 @@
|
|
|
1
|
+
# pi-gsd
|
|
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.**
|
|
4
|
+
|
|
5
|
+
[](https://github.com/get-shit-done-cc/get-shit-done)
|
|
6
|
+
[](LICENSE)
|
|
7
|
+
[](#harness-directory-map)
|
|
8
|
+
[](HOOKS_ARCHITECTURE.md)
|
|
9
|
+
|
|
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.
|
|
11
|
+
|
|
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)
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## 1. What Is GSD?
|
|
31
|
+
|
|
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:
|
|
33
|
+
|
|
34
|
+
```
|
|
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
|
+
|
|
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.
|
|
143
|
+
|
|
144
|
+
---
|
|
145
|
+
|
|
146
|
+
## 5. Command Prefix Reference
|
|
147
|
+
|
|
148
|
+
All user-facing GSD commands use the **`/gsd-<name>`** slash-hyphen prefix across every harness:
|
|
149
|
+
|
|
150
|
+
```
|
|
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
|
|
155
|
+
```
|
|
156
|
+
|
|
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
|
+
---
|
|
162
|
+
|
|
163
|
+
## 6. Hook System
|
|
164
|
+
|
|
165
|
+
GSD ships 5 background hooks that run automatically on harness events:
|
|
166
|
+
|
|
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
|
|
184
|
+
|
|
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.
|
|
186
|
+
|
|
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
|
|
195
|
+
```
|
|
196
|
+
|
|
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)**
|
|
200
|
+
|
|
201
|
+
---
|
|
202
|
+
|
|
203
|
+
## 7. Directory Structure Deep-Dive
|
|
204
|
+
|
|
205
|
+
### Each harness directory layout
|
|
206
|
+
|
|
207
|
+
```
|
|
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)
|
|
249
|
+
```
|
|
250
|
+
|
|
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
|
+
```
|
|
282
|
+
|
|
283
|
+
---
|
|
284
|
+
|
|
285
|
+
## 8. Audit & Validation Scripts
|
|
286
|
+
|
|
287
|
+
Run from the repo root (`/home/fulgidus/Documents/pi-gsd`):
|
|
288
|
+
|
|
289
|
+
```bash
|
|
290
|
+
# Full cross-harness integrity suite (5 checks)
|
|
291
|
+
node scripts/validate-harness-sync.cjs
|
|
292
|
+
|
|
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
|
|
298
|
+
```
|
|
299
|
+
|
|
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)**
|
|
313
|
+
|
|
314
|
+
---
|
|
315
|
+
|
|
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/`
|
|
330
|
+
|
|
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.
|
|
332
|
+
|
|
333
|
+
### 9c. Agents directory absent from `.github/`
|
|
334
|
+
|
|
335
|
+
GitHub Copilot has no agent definition API. All 18 `agents/gsd-*.md` files are intentionally excluded from `.github/`.
|
|
336
|
+
|
|
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
|
|
342
|
+
|
|
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.
|
|
344
|
+
|
|
345
|
+
### 9f. `profile-pipeline.cjs` session history path
|
|
346
|
+
|
|
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.
|
|
348
|
+
|
|
349
|
+
### 9g. `gsd-tools.cjs` two versions
|
|
350
|
+
|
|
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.
|
|
352
|
+
|
|
353
|
+
---
|
|
354
|
+
|
|
355
|
+
## 10. Reference Documents
|
|
356
|
+
|
|
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 |
|
|
365
|
+
|
|
366
|
+
---
|
|
367
|
+
|
|
368
|
+
## 11. License
|
|
369
|
+
|
|
370
|
+
MIT © [get-shit-done-cc](https://github.com/get-shit-done-cc/get-shit-done)
|
|
371
|
+
|
|
372
|
+
---
|
|
373
|
+
|
|
374
|
+
*GSD v1.30.0 snapshot · Captured 2026-04-03 · 8 harnesses · 57 commands · 18 agents · 5 hooks*
|