gsdd-cli 0.1.0 → 0.3.1
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/README.md +38 -20
- package/agents/DISTILLATION.md +116 -3
- package/agents/README.md +9 -0
- package/agents/approach-explorer.md +361 -0
- package/agents/planner.md +20 -5
- package/bin/adapters/claude.mjs +41 -11
- package/bin/adapters/codex.mjs +20 -1
- package/bin/adapters/opencode.mjs +37 -11
- package/bin/gsdd.mjs +44 -34
- package/bin/lib/init-flow.mjs +220 -0
- package/bin/lib/init-prompts.mjs +308 -0
- package/bin/lib/init-runtime.mjs +224 -0
- package/bin/lib/init.mjs +20 -379
- package/bin/lib/models.mjs +27 -10
- package/distilled/DESIGN.md +366 -7
- package/distilled/README.md +173 -169
- package/distilled/templates/agents.block.md +5 -3
- package/distilled/templates/approach.md +232 -0
- package/distilled/templates/delegates/approach-explorer.md +25 -0
- package/distilled/templates/delegates/plan-checker.md +11 -1
- package/distilled/workflows/audit-milestone.md +2 -0
- package/distilled/workflows/map-codebase.md +10 -5
- package/distilled/workflows/new-project.md +26 -21
- package/distilled/workflows/pause.md +2 -0
- package/distilled/workflows/plan.md +83 -12
- package/distilled/workflows/quick.md +163 -4
- package/package.json +11 -3
package/README.md
CHANGED
|
@@ -32,7 +32,7 @@ GSDD is a distilled fork of GSD. It preserves the high-leverage parts of long-ho
|
|
|
32
32
|
- **Milestone audit** — cross-phase integration, requirements coverage, E2E flows
|
|
33
33
|
- **Session management** — pause work with checkpoint, resume with context restoration and routing
|
|
34
34
|
|
|
35
|
-
What it strips: GSD's broader operator surface (32 workflows, 11 agents, discovery modes, sprint ceremony, a settings flow, and additional operator ergonomics). GSDD has 10 workflows and
|
|
35
|
+
What it strips: GSD's broader operator surface (32 workflows, 11 agents, discovery modes, sprint ceremony, a settings flow, and additional operator ergonomics). GSDD has 10 workflows and 10 roles.
|
|
36
36
|
|
|
37
37
|
**Target user:** Developer or small team that wants a spec-driven long-horizon kernel, not full operator comfort.
|
|
38
38
|
|
|
@@ -48,17 +48,27 @@ This creates:
|
|
|
48
48
|
|
|
49
49
|
1. `.planning/` — durable workspace with templates, role contracts, and config
|
|
50
50
|
2. `.agents/skills/gsdd-*` — portable workflow entrypoints
|
|
51
|
-
3. Tool-specific adapters
|
|
51
|
+
3. Tool-specific adapters you choose in the install wizard (Claude skills/commands/agents, OpenCode commands/agents, Codex agents, optional governance)
|
|
52
52
|
|
|
53
53
|
Then run the new-project workflow to produce `.planning/SPEC.md` and `.planning/ROADMAP.md`.
|
|
54
54
|
|
|
55
|
+
In a terminal, `gsdd init` now opens a guided install wizard:
|
|
56
|
+
|
|
57
|
+
- Step 1: select the runtimes/vendors you want to support
|
|
58
|
+
- Step 2: decide separately whether repo-wide `AGENTS.md` governance is worth installing
|
|
59
|
+
- Step 3: configure planning defaults in the same guided flow
|
|
60
|
+
|
|
61
|
+
Portable `.agents/skills/gsdd-*` skills are always generated. The wizard controls extra native adapters and optional governance, not the portable baseline.
|
|
62
|
+
|
|
55
63
|
### Quickstart (after init)
|
|
56
64
|
|
|
57
65
|
Your tool determines how you invoke workflows:
|
|
58
66
|
|
|
59
|
-
- **Claude Code / OpenCode:** Use slash commands directly — `/gsdd-new-project`, `/gsdd-plan`, etc.
|
|
67
|
+
- **Claude Code / OpenCode / Cursor / Copilot / Gemini:** Use slash commands directly — `/gsdd-new-project`, `/gsdd-plan`, etc.
|
|
60
68
|
- **Codex CLI:** Use skill references — `$gsdd-new-project`, `$gsdd-plan`, etc.
|
|
61
|
-
- **
|
|
69
|
+
- **Other AI tools:** Open `.agents/skills/gsdd-<workflow>/SKILL.md` and follow the instructions.
|
|
70
|
+
|
|
71
|
+
If you generate the root `AGENTS.md` block, it adds GSDD behavioral governance. For Cursor, Copilot, and Gemini, that governance is optional discipline on top of native skill discovery — not the mechanism that makes workflows discoverable.
|
|
62
72
|
|
|
63
73
|
First workflow to run: **new-project** — it asks about your goals, audits the codebase (if brownfield), and produces `.planning/SPEC.md` + `.planning/ROADMAP.md`.
|
|
64
74
|
|
|
@@ -67,11 +77,12 @@ First workflow to run: **new-project** — it asks about your goals, audits the
|
|
|
67
77
|
GSDD generates adapters for whichever tools you use:
|
|
68
78
|
|
|
69
79
|
```bash
|
|
70
|
-
npx gsdd-cli init #
|
|
80
|
+
npx gsdd-cli init # Guided install wizard (detected runtimes preselected)
|
|
71
81
|
npx gsdd-cli init --tools claude # Claude Code: .claude/skills + commands + agents
|
|
72
82
|
npx gsdd-cli init --tools opencode # OpenCode: .opencode/commands + agents
|
|
73
83
|
npx gsdd-cli init --tools codex # Codex CLI: portable gsdd-plan skill + .codex/agents checker
|
|
74
84
|
npx gsdd-cli init --tools agents # Root AGENTS.md fallback
|
|
85
|
+
npx gsdd-cli init --tools cursor # Backward-compatible AGENTS.md governance alias
|
|
75
86
|
npx gsdd-cli init --tools all # All of the above
|
|
76
87
|
```
|
|
77
88
|
|
|
@@ -81,7 +92,8 @@ npx gsdd-cli init --tools all # All of the above
|
|
|
81
92
|
| **Claude Code** | Native | `.claude/skills/`, `.claude/commands/`, `.claude/agents/` — slash commands work immediately |
|
|
82
93
|
| **OpenCode** | Native | `.opencode/commands/`, `.opencode/agents/` — slash commands work immediately |
|
|
83
94
|
| **Codex CLI** | Native | `.codex/agents/gsdd-plan-checker.toml` — skill reference `$gsdd-plan` works immediately |
|
|
84
|
-
| **Cursor / Copilot / Gemini** |
|
|
95
|
+
| **Cursor / Copilot / Gemini** | Skills-native runtime + optional governance | Native slash-command discovery from `.agents/skills/`; optional root `AGENTS.md` block adds behavioral governance |
|
|
96
|
+
| **Other AI tools** | Open standard fallback | Open `.agents/skills/gsdd-*/SKILL.md` directly |
|
|
85
97
|
|
|
86
98
|
### Updating
|
|
87
99
|
|
|
@@ -102,10 +114,13 @@ npx gsdd-cli init --auto --tools claude --brief path/to/PRD.md
|
|
|
102
114
|
|
|
103
115
|
`--auto` skips interactive prompts, uses smart defaults (`autoAdvance: true` in config). `--brief` copies a project document to `.planning/PROJECT_BRIEF.md` for `new-project` to consume.
|
|
104
116
|
|
|
117
|
+
If you already know exactly what to generate, `--tools ...` remains the manual path. The wizard is the primary onboarding UX; flags remain the advanced/headless contract.
|
|
118
|
+
|
|
105
119
|
### Team Use
|
|
106
120
|
|
|
107
121
|
- **Shared state:** Set `commitDocs: true` (default) — `.planning/` is tracked in git. Everyone sees the same spec, roadmap, and phase plans.
|
|
108
122
|
- **Onboarding:** After cloning, run `npx gsdd-cli init` to generate tool-specific adapters. `.planning/` is already tracked — no re-initialization needed.
|
|
123
|
+
- **Governance is explicit:** The wizard asks separately whether to install repo-wide `AGENTS.md` rules, and explains why you may care before writing to the repo root.
|
|
109
124
|
- **Session handoff:** Use `gsdd-pause` / `gsdd-resume` to hand off work. The checkpoint (`.planning/.continue-here.md`) captures context for the next person.
|
|
110
125
|
- **Adapter isolation:** Each developer runs `gsdd init --tools <their-tool>`. Adapter files don't conflict across tools.
|
|
111
126
|
|
|
@@ -192,7 +207,8 @@ When all phases are done, run `gsdd-audit-milestone` to verify:
|
|
|
192
207
|
|
|
193
208
|
- `Claude Code / OpenCode`: `/gsdd-quick`
|
|
194
209
|
- `Codex CLI`: `$gsdd-quick`
|
|
195
|
-
- `Cursor / Copilot / Gemini
|
|
210
|
+
- `Cursor / Copilot / Gemini`: `/gsdd-quick`
|
|
211
|
+
- `Other AI tools`: open `.agents/skills/gsdd-quick/SKILL.md`
|
|
196
212
|
|
|
197
213
|
For sub-hour tasks that don't need the full phase cycle:
|
|
198
214
|
|
|
@@ -231,7 +247,8 @@ Workflows are agent skills or commands, not plain shell utilities. How you invok
|
|
|
231
247
|
| Claude Code | `/gsdd-plan` (slash command, works immediately after init) |
|
|
232
248
|
| OpenCode | `/gsdd-plan` (slash command, works immediately after init) |
|
|
233
249
|
| Codex CLI | `$gsdd-plan` (skill reference, works immediately after init) |
|
|
234
|
-
| Cursor / Copilot / Gemini |
|
|
250
|
+
| Cursor / Copilot / Gemini | `/gsdd-plan` (skills-native slash command). If the root `AGENTS.md` block is present, it adds governance, not workflow discovery. |
|
|
251
|
+
| Other AI tools | Open `.agents/skills/gsdd-plan/SKILL.md` and paste or reference its content. |
|
|
235
252
|
|
|
236
253
|
## CLI Commands
|
|
237
254
|
|
|
@@ -250,9 +267,9 @@ Workflows are agent skills or commands, not plain shell utilities. How you invok
|
|
|
250
267
|
|
|
251
268
|
## Architecture
|
|
252
269
|
|
|
253
|
-
### Roles (
|
|
270
|
+
### Roles (10 canonical)
|
|
254
271
|
|
|
255
|
-
GSDD consolidates GSD's agent surface into
|
|
272
|
+
GSDD consolidates GSD's agent surface into 10 roles with durable contracts:
|
|
256
273
|
|
|
257
274
|
| Role | Responsibility |
|
|
258
275
|
|------|---------------|
|
|
@@ -271,7 +288,7 @@ GSDD consolidates GSD's agent surface into 9 roles with durable contracts:
|
|
|
271
288
|
- **Role contracts** (`agents/*.md`) — durable, contain the full behavioral specification
|
|
272
289
|
- **Delegates** (`distilled/templates/delegates/*.md`) — thin wrappers that reference roles and provide task-specific context
|
|
273
290
|
|
|
274
|
-
|
|
291
|
+
11 delegates: 4 mapper, 4 researcher, 1 synthesizer, 1 plan-checker, 1 approach-explorer. Workflows use `<delegate>` blocks to dispatch work. For detailed GSD-to-GSDD role distillation rationale, see [`agents/DISTILLATION.md`](agents/DISTILLATION.md).
|
|
275
292
|
|
|
276
293
|
### Adapter Architecture
|
|
277
294
|
|
|
@@ -279,14 +296,15 @@ GSDD generates vendor-specific files from vendor-agnostic markdown — it does n
|
|
|
279
296
|
|
|
280
297
|
| Adapter | Kind | Strategy |
|
|
281
298
|
|---------|------|----------|
|
|
282
|
-
| **Claude Code** | `native_capable` | Skill-primary plan surface (stays in main context to spawn checker subagent), thin command alias, native `gsdd-plan-checker` agent |
|
|
283
|
-
| **OpenCode** | `native_capable` | Specialized `/gsdd-plan` command (`subtask: false`), hidden `gsdd-plan-checker` subagent (`mode: subagent`) |
|
|
284
|
-
| **Codex CLI** | `native_capable` | Portable skill as entry surface, `.codex/agents/gsdd-plan-checker.toml` (read-only, high reasoning effort) |
|
|
285
|
-
| **Cursor / Copilot / Gemini** | `governance_only` |
|
|
299
|
+
| **Claude Code** | `native_capable` adapter + skills-native runtime | Skill-primary plan surface (stays in main context to spawn checker subagent), thin command alias, native `gsdd-plan-checker` agent |
|
|
300
|
+
| **OpenCode** | `native_capable` adapter + skills-native runtime | Specialized `/gsdd-plan` command (`subtask: false`), hidden `gsdd-plan-checker` subagent (`mode: subagent`) |
|
|
301
|
+
| **Codex CLI** | `native_capable` adapter + skills-native runtime | Portable skill as entry surface, `.codex/agents/gsdd-plan-checker.toml` (read-only, high reasoning effort) |
|
|
302
|
+
| **Cursor / Copilot / Gemini** | skills-native runtime + `governance_only` adapter | Runtime discovers `.agents/skills/` natively; optional root `AGENTS.md` block adds behavioral governance only |
|
|
303
|
+
| **agents** (`--tools agents`) | `governance_only` adapter | Root `AGENTS.md` block for tools that benefit from governance or need open-standard fallback guidance |
|
|
286
304
|
|
|
287
305
|
All adapters render the plan-checker from a single source (`distilled/templates/delegates/plan-checker.md`). Each adapter shapes the output to its platform's native mechanics, and the portable skill remains the shared workflow source.
|
|
288
306
|
|
|
289
|
-
Cursor, Copilot, and Gemini CLI generate the same root `AGENTS.md` governance block as `--tools agents
|
|
307
|
+
Cursor, Copilot, and Gemini CLI generate the same root `AGENTS.md` governance block as `--tools agents`, but that file is governance only. Those runtimes already discover `.agents/skills/` natively and surface the workflows as slash commands.
|
|
290
308
|
|
|
291
309
|
Model IDs pass through a two-layer injection guard: a regex whitelist (`/^[a-zA-Z0-9._\/:@-]+$/`) at the CLI boundary, plus format-specific escaping (TOML string escaping, triple-quote break prevention) at the adapter layer.
|
|
292
310
|
|
|
@@ -410,11 +428,11 @@ For detailed troubleshooting and recovery procedures, see the [User Guide](docs/
|
|
|
410
428
|
|
|
411
429
|
## Design Decisions
|
|
412
430
|
|
|
413
|
-
GSDD makes
|
|
431
|
+
GSDD makes 36 documented design decisions relative to GSD, each with evidence from source files and external research. See [`distilled/DESIGN.md`](distilled/DESIGN.md) for the full rationale.
|
|
414
432
|
|
|
415
433
|
Key choices:
|
|
416
434
|
- **4-file codebase standard** — drop state that rots (STRUCTURE, INTEGRATIONS, TESTING), keep rules that don't
|
|
417
|
-
- **Agent consolidation** —
|
|
435
|
+
- **Agent consolidation** — 10 roles from GSD's 11, with explicit reduced-assurance mode when independent checking isn't available
|
|
418
436
|
- **Adapter generation over conversion** — generate vendor-specific files from vendor-agnostic markdown instead of converting from Claude-first
|
|
419
437
|
- **Advisory git** — repo conventions over framework defaults
|
|
420
438
|
- **Context isolation** — summaries up, documents to disk
|
|
@@ -436,8 +454,8 @@ Structural contracts that prevent drift between roles, delegates, workflows, and
|
|
|
436
454
|
|
|
437
455
|
| Suite | What it guards |
|
|
438
456
|
|-------|---------------|
|
|
439
|
-
| **I1** | Delegate-role reference integrity —
|
|
440
|
-
| **I2** | Role section structure —
|
|
457
|
+
| **I1** | Delegate-role reference integrity — 11 delegates resolve to existing role contracts |
|
|
458
|
+
| **I2** | Role section structure — 10 roles have role def, scope, output format, success criteria |
|
|
441
459
|
| **I3** | Delegate thinness — no leaked role-contract sections in delegates |
|
|
442
460
|
| **I3-gate** | New-project approval gates — required human checkpoints present |
|
|
443
461
|
| **I4** | Workflow references — 10 workflows, all delegate/role refs resolve |
|
package/agents/DISTILLATION.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# GSDD Role Distillation Ledger
|
|
2
2
|
|
|
3
|
-
Evidence map from each of the
|
|
3
|
+
Evidence map from each of the 10 canonical GSDD roles to their GSD sources, with keep/strip/why rationale. This ledger documents why each role exists in its current form and what GSD content was distilled or merged.
|
|
4
4
|
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -54,7 +54,7 @@ Evidence map from each of the 9 canonical GSDD roles to their GSD sources, with
|
|
|
54
54
|
- Explicit "Scope" table showing scope × trigger × focus × output location
|
|
55
55
|
- Clear statement: "Same algorithm, different scope. The scope is a context input, not a different role."
|
|
56
56
|
|
|
57
|
-
**Rationale:** The GSD original had two roles (project and phase researcher) that followed the identical algorithm but with a scope parameter. GSDD merged them into one canonical role taking scope as input, reducing the role count from 11 to 9 while preserving all leverage. This is the clean merger mentioned in D2.
|
|
57
|
+
**Rationale:** The GSD original had two roles (project and phase researcher) that followed the identical algorithm but with a scope parameter. GSDD merged them into one canonical role taking scope as input, reducing the role count from 11 to 9 (later 10 with approach-explorer in D29) while preserving all leverage. This is the clean merger mentioned in D2.
|
|
58
58
|
|
|
59
59
|
---
|
|
60
60
|
|
|
@@ -264,6 +264,50 @@ Evidence map from each of the 9 canonical GSDD roles to their GSD sources, with
|
|
|
264
264
|
|
|
265
265
|
---
|
|
266
266
|
|
|
267
|
+
## 10. Approach-Explorer
|
|
268
|
+
|
|
269
|
+
**Canonical role:** `agents/approach-explorer.md`
|
|
270
|
+
|
|
271
|
+
**GSD sources:** `workflows/discuss-phase.md` + `workflows/list-phase-assumptions.md` + `workflows/discovery-phase.md` (merged into new role)
|
|
272
|
+
|
|
273
|
+
**Merger type:** New role from 2 GSD sources (discuss-phase + list-phase-assumptions) with thematic input from discovery-phase
|
|
274
|
+
|
|
275
|
+
**Kept from GSD:**
|
|
276
|
+
- Gray area identification with 5 domain types (SEE/CALL/RUN/READ/ORGANIZED) from discuss-phase
|
|
277
|
+
- Scope guardrail: phase boundary is fixed, deferred ideas captured not acted on
|
|
278
|
+
- 5-dimension assumption surfacing (technical approach, implementation order, scope boundaries, risks, dependencies) with confidence levels from list-phase-assumptions
|
|
279
|
+
- Deferred ideas capture from discuss-phase
|
|
280
|
+
- Adaptive area-by-area deep questioning from discuss-phase (GSD used 4-question batches; GSDD uses adaptive convergence)
|
|
281
|
+
|
|
282
|
+
Note: `discovery-phase.md` contributed the concept of pre-planning research but the mechanism is entirely different — GSD used 3-level depth workflows (Quick/Standard/Deep) as a separate invocation; GSDD uses per-gray-area research subagents embedded in the plan workflow. This is thematic inspiration, not a structural merger.
|
|
283
|
+
|
|
284
|
+
**Stripped from GSD:**
|
|
285
|
+
- `gsd-tools.cjs` dependencies and STATE.md updates
|
|
286
|
+
- Vendor-specific commit steps, path conventions, and "Claude" references
|
|
287
|
+
- CONTEXT.md output format (replaced with structured APPROACH.md)
|
|
288
|
+
- Separate workflow invocation (absorbed into plan workflow as inline + research subagent hybrid)
|
|
289
|
+
- Rigid 4-question batched loop (replaced with adaptive questioning until decision converges)
|
|
290
|
+
|
|
291
|
+
**Gained in GSDD:**
|
|
292
|
+
- XML semantic structure matching planner pattern (`<role>`, `<algorithm>`, `<examples>`, etc.)
|
|
293
|
+
- 3 few-shot conversation examples (taste decision, technical decision, hybrid + delegation)
|
|
294
|
+
- Gray area classification: taste (ask directly), technical (research first), hybrid (both)
|
|
295
|
+
- Pre-question research per gray area via isolated research subagents returning compressed summaries
|
|
296
|
+
- Self-check quality gate before writing APPROACH.md
|
|
297
|
+
- Intermediate decision persistence (protect against context limits)
|
|
298
|
+
- JIT context loading with extraction guidance (read ONLY locked decisions from SPEC, ONLY phase goal from ROADMAP)
|
|
299
|
+
- Structured approach comparison with trade-offs
|
|
300
|
+
- File persistence to `{padded_phase}-APPROACH.md` using dedicated template
|
|
301
|
+
- Plan-checker integration via new `approach_alignment` verification dimension
|
|
302
|
+
- Config toggle (`workflow.discuss: true|false`) for optional skip
|
|
303
|
+
- Downstream consumer contract: planner reads locked decisions, plan-checker verifies alignment
|
|
304
|
+
- "Agent's Discretion" explicit marking for areas where user delegates choice (vendor-neutral)
|
|
305
|
+
- Hybrid architecture: conversation inline (main context) + research in subagents. Native agent kept as optimization.
|
|
306
|
+
|
|
307
|
+
**Rationale:** GSDD's initial distillation dropped GSD's discuss-phase and list-phase-assumptions entirely, removing genuine leverage: the planner converges on a single approach without user input, explores no alternatives, and surfaces no assumptions. The approach explorer recovers this phase-level user alignment by combining GSD's discuss-phase interaction pattern with comparative research. Ground-up rewrite (D29) applied 5 external resources on context engineering, meta-prompting, and agent skill design to produce a prompt-engineered role contract with proper XML structure, examples, adaptive conversation, and hybrid research isolation.
|
|
308
|
+
|
|
309
|
+
---
|
|
310
|
+
|
|
267
311
|
## Summary: Merger Table (from D2)
|
|
268
312
|
|
|
269
313
|
| Canonical role | Absorbs from GSD | Merger criteria |
|
|
@@ -277,8 +321,9 @@ Evidence map from each of the 9 canonical GSDD roles to their GSD sources, with
|
|
|
277
321
|
| `verifier.md` | `gsd-verifier.md` | Kept-as-is; cross-phase audit extracted to integration-checker |
|
|
278
322
|
| `integration-checker.md` | `gsd-integration-checker.md` | Extracted as standalone; recovered in PR #12, hardened in PR #15 |
|
|
279
323
|
| `debugger.md` | `gsd-debugger.md` | Kept-as-is; no changes |
|
|
324
|
+
| `approach-explorer.md` | `discuss-phase.md` + `list-phase-assumptions.md` + `discovery-phase.md` | New role from 3 GSD workflow sources |
|
|
280
325
|
|
|
281
|
-
**Result:** 11 GSD roles →
|
|
326
|
+
**Result:** 11 GSD roles → 10 GSDD canonical roles (2 mergers: researcher, planner). 1 extraction: integration-checker moved from embedded to standalone. 1 addition: approach-explorer recovers discuss-phase leverage with research enhancement. Total leverage preserved and extended.
|
|
282
327
|
|
|
283
328
|
---
|
|
284
329
|
|
|
@@ -304,3 +349,71 @@ This ledger is updated when:
|
|
|
304
349
|
3. New evidence surfaces that changes the distillation rationale (update with citation)
|
|
305
350
|
|
|
306
351
|
Do not add speculative content. Every entry must reference actual source files and PRs that contain evidence.
|
|
352
|
+
|
|
353
|
+
---
|
|
354
|
+
|
|
355
|
+
## Role Contract Design Principles
|
|
356
|
+
|
|
357
|
+
Cross-source best practices applied to GSDD role contracts, audited against 6 external resources. These principles govern how role contracts should be written and revised. Ranked by impact.
|
|
358
|
+
|
|
359
|
+
### Architecture-Level (highest leverage)
|
|
360
|
+
|
|
361
|
+
| Principle | What It Means | Source | GSDD Implementation |
|
|
362
|
+
|-----------|--------------|--------|---------------------|
|
|
363
|
+
| **Context isolation** | Research and heavy reads go in subagents; only compressed summaries enter the main context | Anthropic CE: "sub-agents perform deep technical work, returning condensed summaries" | Approach explorer research subagents return ~1000-token summaries; plan-checker runs in fresh context |
|
|
364
|
+
| **JIT context loading** | Never say "read everything." Specify what to extract from each file | Anthropic CE: "maintain lightweight identifiers and use these references to dynamically load data into context at runtime" | `<input_contract>` with extraction guidance: "From SPEC.md read ONLY locked decisions" |
|
|
365
|
+
| **Intermediate persistence** | For long interactions, write confirmed state to disk incrementally | Anthropic CE: "Agent regularly writes notes persisted to memory outside of the context window" | Approach explorer writes decisions to disk as they're confirmed during conversation |
|
|
366
|
+
| **Progressive disclosure** | Don't front-load all context; let agents discover incrementally | Anthropic CE: "agents can assemble understanding layer by layer" | Gray areas presented individually; research loaded per area on demand |
|
|
367
|
+
|
|
368
|
+
### Prompt Structure (medium leverage)
|
|
369
|
+
|
|
370
|
+
| Principle | What It Means | Source | GSDD Implementation |
|
|
371
|
+
|-----------|--------------|--------|---------------------|
|
|
372
|
+
| **XML semantic structure** | Use XML tags to separate role, instructions, examples, inputs, outputs, anti-patterns | Anthropic Claude: "XML tags help Claude parse complex prompts unambiguously" | All roles use `<role>`, most use `<quality_guarantees>`, `<anti_patterns>`. Approach-explorer adds `<algorithm>`, `<examples>`, `<scope_guardrail>` |
|
|
373
|
+
| **Anti-patterns early** | Place "don't do this" instructions near the top, after role definition | Anthropic CE: critical information at the beginning gets more attention. NeoLab: early placement for high attention weight | `<anti_patterns>` placed immediately after `<role>` in all roles that have them |
|
|
374
|
+
| **Few-shot examples** | Show the pattern of interaction, not just output format | Anthropic Claude: "3-5 examples for best results." Examples in `<example>` tags | Approach-explorer: 3 examples. Other roles use inline format examples within algorithm sections |
|
|
375
|
+
| **Self-check before output** | Run an explicit checklist before producing the final artifact | OpenAI: "verification loops." Anthropic Claude: "Ask Claude to self-check" | Approach-explorer step 7; planner `<plan_self_check>`; executor completion verification |
|
|
376
|
+
| **Scope boundaries with heuristics** | Don't just list in/out of scope — give the agent a judgment rule | Novel, validated in approach-explorer | "Does this clarify implementation within the phase, or does it add a capability that could be its own phase?" |
|
|
377
|
+
|
|
378
|
+
### Language & Tone (lower leverage, still matters)
|
|
379
|
+
|
|
380
|
+
| Principle | What It Means | Source | GSDD Implementation |
|
|
381
|
+
|-----------|--------------|--------|---------------------|
|
|
382
|
+
| **Authority language: intentional leverage** | Anthropic Claude 4.6 warns "CRITICAL:" can overtrigger on newer models. NeoLab persuasion research found imperative language doubled compliance (33%→72%). GSDD decision: **keep CRITICAL: for mandatory initial-read** — this is a genuine compliance-critical instruction where skipping it causes cascading failures. Use normal language for non-critical instructions. | Anthropic Claude 4.6 vs. NeoLab persuasion research (direct conflict). GSDD sides with NeoLab for this specific use case | `CRITICAL: Mandatory initial read` kept in all 7 roles. `NEVER` kept for security (mapper secret protection). Normal language used for algorithm steps, scope guidance, and quality rules |
|
|
383
|
+
| **Tell what to do, not just what not to do** | Anti-patterns alone are insufficient; pair with positive instructions | Anthropic Claude: "Tell Claude what to do instead of what not to do" | Every role has both `<anti_patterns>` AND positive algorithm/process sections |
|
|
384
|
+
| **Context for instructions** | Explain WHY a rule exists so the agent can generalize | Anthropic Claude: "Providing context or motivation behind your instructions helps Claude better understand your goals" | Research quality rules explain WHY: "Training data is a hypothesis. Verify before asserting." |
|
|
385
|
+
|
|
386
|
+
### Novel Patterns (not from any source)
|
|
387
|
+
|
|
388
|
+
These patterns emerged from GSDD's specific needs and were validated through implementation:
|
|
389
|
+
|
|
390
|
+
| Pattern | What It Does | Where Used |
|
|
391
|
+
|---------|-------------|------------|
|
|
392
|
+
| **Taste/Technical/Hybrid classification** | Adapts research depth to decision type; taste needs no research, technical does | Approach-explorer step 2 |
|
|
393
|
+
| **Research quality rules** | "One viable option is valid" / "Don't manufacture trade-offs" | Approach-explorer step 3 |
|
|
394
|
+
| **5-dimension assumption surfacing** | Forces transparency about inferences vs. confirmed facts, with confidence levels | Approach-explorer step 6 |
|
|
395
|
+
| **Agent's Discretion delegation** | User can explicitly say "you decide" — reduces fatigue on low-stakes choices | Approach-explorer step 4, planner `<approach_decisions>` |
|
|
396
|
+
| **Domain classification table** | SEE/CALL/RUN/READ/ORGANIZED determines gray area focus per phase type | Approach-explorer step 2 |
|
|
397
|
+
| **Degrees of freedom mapping** | Taste=high freedom, technical=low freedom (research-constrained). Maps to NeoLab's concept | Approach-explorer classification system |
|
|
398
|
+
|
|
399
|
+
### Source Ranking
|
|
400
|
+
|
|
401
|
+
Sources are ranked by soundness for agent prompt design. Higher-ranked sources take precedence when sources disagree.
|
|
402
|
+
|
|
403
|
+
1. **Anthropic — Effective Context Engineering for AI Agents** — Architecture-level patterns with real production evidence (Claude Code, Pokémon). Most authoritative for context window management, sub-agent design, and information flow.
|
|
404
|
+
2. **Anthropic — Claude Prompting Best Practices (Claude 4.6)** — Model-specific, up-to-date. Critical for behavioral warnings (overtriggering, subagent overuse). Supersedes general guidance for Claude-targeted agents.
|
|
405
|
+
3. **OpenAI — Prompt Guidance (GPT-5.4)** — Deepest general-purpose reference. Novel concepts: completeness contracts, verification loops, tool persistence rules, empty result recovery. Model-specific but patterns transfer.
|
|
406
|
+
4. **NeoLab Context Engineering Kit** — Good synthesis. "Degrees of Freedom" concept is useful. Persuasion research contradicts Anthropic on authority language (trust Anthropic for Claude).
|
|
407
|
+
5. **OpenAI Cookbook — Meta-Prompting** — Narrow scope: LLM-as-judge evaluation, iterative prompt refinement. Useful technique, not a framework.
|
|
408
|
+
6. **JBurlison/MetaPrompts** — Structural skeleton (agent/skill/prompt/instruction hierarchy). Minimal actual guidance on prompt quality.
|
|
409
|
+
|
|
410
|
+
### Key Discrepancy Resolution
|
|
411
|
+
|
|
412
|
+
When sources conflict, these resolutions apply:
|
|
413
|
+
|
|
414
|
+
| Conflict | Resolution | Why |
|
|
415
|
+
|----------|------------|-----|
|
|
416
|
+
| Authority language ("YOU MUST" vs. normal) | Keep CRITICAL: for mandatory initial-read (compliance-critical). Use normal language elsewhere | NeoLab's doubled-compliance research applies to instructions where skipping causes cascading failures. Anthropic's overtriggering concern applies to general guidance, not load-bearing context gates |
|
|
417
|
+
| Example count (2 vs. 3-5) | Target 3+ for conversational agents; inline format examples are sufficient for structured output agents | Anthropic's 3-5 recommendation is general; interactive roles benefit more than output-only roles |
|
|
418
|
+
| Subagent return size (200 vs. 1000-2000 tokens) | Use 300-500 tokens | Anthropic's 1000-2000 is upper bound; 200 was too tight for structured approach summaries with trade-offs |
|
|
419
|
+
| "Don't invent alternatives" vs. "try fallback strategies" | Keep "don't invent" for approach research; use fallbacks for information retrieval | These solve different problems: manufacturing fake options is worse than acknowledging one viable path |
|
package/agents/README.md
CHANGED
|
@@ -18,6 +18,7 @@ Roles define what an agent is. Delegates define what an agent does in a specific
|
|
|
18
18
|
| Mapper | `mapper.md` | `gsd-codebase-mapper.md` |
|
|
19
19
|
| Researcher | `researcher.md` | `gsd-project-researcher.md` + `gsd-phase-researcher.md` |
|
|
20
20
|
| Synthesizer | `synthesizer.md` | `gsd-research-synthesizer.md` |
|
|
21
|
+
| Approach Explorer | `approach-explorer.md` | `discuss-phase.md` + `list-phase-assumptions.md` + `discovery-phase.md` |
|
|
21
22
|
| Planner | `planner.md` | `gsd-planner.md` + `gsd-plan-checker.md` |
|
|
22
23
|
| Executor | `executor.md` | `gsd-executor.md` |
|
|
23
24
|
| Verifier | `verifier.md` | `gsd-verifier.md` |
|
|
@@ -48,6 +49,14 @@ Verifier note:
|
|
|
48
49
|
- `verifier.md` is phase-scoped.
|
|
49
50
|
- The milestone integration-audit surface exists as `distilled/workflows/audit-milestone.md` with its own `integration-checker.md` role contract. It is not absorbed into the verifier.
|
|
50
51
|
|
|
52
|
+
## Commit Convention
|
|
53
|
+
|
|
54
|
+
All commits — whether authored by humans or AI agents — must follow [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/). The `semantic-release` automation reads commit messages to determine version bumps and generate the changelog. A commit not following the convention produces no release and no changelog entry.
|
|
55
|
+
|
|
56
|
+
Use `feat:` for new capabilities, `fix:` for corrections, `chore:` for maintenance that must not trigger a publish, and `test:` for test-only changes. Never use `chore(release):` — that prefix is reserved for the release automation.
|
|
57
|
+
|
|
58
|
+
See `CONTRIBUTING.md` for the full type table.
|
|
59
|
+
|
|
51
60
|
## Archive
|
|
52
61
|
|
|
53
62
|
`_archive/` contains the original 11 GSD agent files (preserved via `git mv` for history). These are the verbose, GSD-specific sources from which canonical roles were distilled. Do not reference them in workflows; use the canonical roles above.
|