gsd-opencode 1.22.0 → 1.30.0
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/agents/gsd-advisor-researcher.md +112 -0
- package/agents/gsd-assumptions-analyzer.md +110 -0
- package/agents/gsd-codebase-mapper.md +1 -2
- package/agents/gsd-debugger.md +119 -2
- package/agents/gsd-executor.md +25 -4
- package/agents/gsd-integration-checker.md +1 -2
- package/agents/gsd-nyquist-auditor.md +1 -2
- package/agents/gsd-phase-researcher.md +151 -5
- package/agents/gsd-plan-checker.md +71 -5
- package/agents/gsd-planner.md +50 -4
- package/agents/gsd-project-researcher.md +29 -3
- package/agents/gsd-research-synthesizer.md +1 -2
- package/agents/gsd-roadmapper.md +30 -2
- package/agents/gsd-ui-auditor.md +445 -0
- package/agents/gsd-ui-checker.md +305 -0
- package/agents/gsd-ui-researcher.md +368 -0
- package/agents/gsd-user-profiler.md +173 -0
- package/agents/gsd-verifier.md +124 -4
- package/commands/gsd/gsd-add-backlog.md +76 -0
- package/commands/gsd/gsd-audit-uat.md +24 -0
- package/commands/gsd/gsd-autonomous.md +41 -0
- package/commands/gsd/gsd-debug.md +5 -0
- package/commands/gsd/gsd-discuss-phase.md +10 -36
- package/commands/gsd/gsd-do.md +30 -0
- package/commands/gsd/gsd-execute-phase.md +20 -2
- package/commands/gsd/gsd-fast.md +30 -0
- package/commands/gsd/gsd-forensics.md +56 -0
- package/commands/gsd/gsd-list-workspaces.md +19 -0
- package/commands/gsd/gsd-manager.md +39 -0
- package/commands/gsd/gsd-milestone-summary.md +51 -0
- package/commands/gsd/gsd-new-workspace.md +44 -0
- package/commands/gsd/gsd-next.md +24 -0
- package/commands/gsd/gsd-note.md +34 -0
- package/commands/gsd/gsd-plan-phase.md +3 -1
- package/commands/gsd/gsd-plant-seed.md +28 -0
- package/commands/gsd/gsd-pr-branch.md +25 -0
- package/commands/gsd/gsd-profile-user.md +46 -0
- package/commands/gsd/gsd-quick.md +4 -2
- package/commands/gsd/gsd-reapply-patches.md +10 -6
- package/commands/gsd/gsd-remove-workspace.md +26 -0
- package/commands/gsd/gsd-research-phase.md +5 -0
- package/commands/gsd/gsd-resume-work.md +1 -1
- package/commands/gsd/gsd-review-backlog.md +61 -0
- package/commands/gsd/gsd-review.md +37 -0
- package/commands/gsd/gsd-session-report.md +19 -0
- package/commands/gsd/gsd-set-profile.md +24 -23
- package/commands/gsd/gsd-ship.md +23 -0
- package/commands/gsd/gsd-stats.md +18 -0
- package/commands/gsd/gsd-thread.md +127 -0
- package/commands/gsd/gsd-ui-phase.md +34 -0
- package/commands/gsd/gsd-ui-review.md +32 -0
- package/commands/gsd/gsd-workstreams.md +66 -0
- package/get-shit-done/bin/gsd-tools.cjs +410 -84
- package/get-shit-done/bin/lib/commands.cjs +429 -18
- package/get-shit-done/bin/lib/config.cjs +318 -45
- package/get-shit-done/bin/lib/core.cjs +822 -84
- package/get-shit-done/bin/lib/frontmatter.cjs +78 -41
- package/get-shit-done/bin/lib/init.cjs +836 -104
- package/get-shit-done/bin/lib/milestone.cjs +44 -33
- package/get-shit-done/bin/lib/model-profiles.cjs +68 -0
- package/get-shit-done/bin/lib/phase.cjs +293 -306
- package/get-shit-done/bin/lib/profile-output.cjs +952 -0
- package/get-shit-done/bin/lib/profile-pipeline.cjs +539 -0
- package/get-shit-done/bin/lib/roadmap.cjs +55 -24
- package/get-shit-done/bin/lib/security.cjs +382 -0
- package/get-shit-done/bin/lib/state.cjs +363 -53
- package/get-shit-done/bin/lib/template.cjs +2 -2
- package/get-shit-done/bin/lib/uat.cjs +282 -0
- package/get-shit-done/bin/lib/verify.cjs +104 -36
- package/get-shit-done/bin/lib/workstream.cjs +491 -0
- package/get-shit-done/references/checkpoints.md +12 -10
- package/get-shit-done/references/decimal-phase-calculation.md +2 -3
- package/get-shit-done/references/git-integration.md +47 -0
- package/get-shit-done/references/model-profile-resolution.md +2 -0
- package/get-shit-done/references/model-profiles.md +62 -16
- package/get-shit-done/references/phase-argument-parsing.md +2 -2
- package/get-shit-done/references/planning-config.md +3 -1
- package/get-shit-done/references/user-profiling.md +681 -0
- package/get-shit-done/references/workstream-flag.md +58 -0
- package/get-shit-done/templates/UAT.md +21 -3
- package/get-shit-done/templates/UI-SPEC.md +100 -0
- package/get-shit-done/templates/claude-md.md +122 -0
- package/get-shit-done/templates/config.json +10 -3
- package/get-shit-done/templates/context.md +61 -6
- package/get-shit-done/templates/dev-preferences.md +21 -0
- package/get-shit-done/templates/discussion-log.md +63 -0
- package/get-shit-done/templates/phase-prompt.md +46 -5
- package/get-shit-done/templates/project.md +2 -0
- package/get-shit-done/templates/state.md +2 -2
- package/get-shit-done/templates/user-profile.md +146 -0
- package/get-shit-done/workflows/add-phase.md +2 -2
- package/get-shit-done/workflows/add-tests.md +4 -4
- package/get-shit-done/workflows/add-todo.md +3 -3
- package/get-shit-done/workflows/audit-milestone.md +13 -5
- package/get-shit-done/workflows/audit-uat.md +109 -0
- package/get-shit-done/workflows/autonomous.md +891 -0
- package/get-shit-done/workflows/check-todos.md +2 -2
- package/get-shit-done/workflows/cleanup.md +4 -4
- package/get-shit-done/workflows/complete-milestone.md +9 -6
- package/get-shit-done/workflows/diagnose-issues.md +15 -3
- package/get-shit-done/workflows/discovery-phase.md +2 -2
- package/get-shit-done/workflows/discuss-phase-assumptions.md +653 -0
- package/get-shit-done/workflows/discuss-phase.md +411 -38
- package/get-shit-done/workflows/do.md +104 -0
- package/get-shit-done/workflows/execute-phase.md +405 -18
- package/get-shit-done/workflows/execute-plan.md +77 -12
- package/get-shit-done/workflows/fast.md +105 -0
- package/get-shit-done/workflows/forensics.md +265 -0
- package/get-shit-done/workflows/health.md +28 -6
- package/get-shit-done/workflows/help.md +124 -7
- package/get-shit-done/workflows/insert-phase.md +2 -2
- package/get-shit-done/workflows/list-phase-assumptions.md +2 -2
- package/get-shit-done/workflows/list-workspaces.md +56 -0
- package/get-shit-done/workflows/manager.md +362 -0
- package/get-shit-done/workflows/map-codebase.md +74 -13
- package/get-shit-done/workflows/milestone-summary.md +223 -0
- package/get-shit-done/workflows/new-milestone.md +120 -18
- package/get-shit-done/workflows/new-project.md +178 -39
- package/get-shit-done/workflows/new-workspace.md +237 -0
- package/get-shit-done/workflows/next.md +97 -0
- package/get-shit-done/workflows/node-repair.md +92 -0
- package/get-shit-done/workflows/note.md +156 -0
- package/get-shit-done/workflows/pause-work.md +62 -8
- package/get-shit-done/workflows/plan-milestone-gaps.md +4 -5
- package/get-shit-done/workflows/plan-phase.md +332 -33
- package/get-shit-done/workflows/plant-seed.md +169 -0
- package/get-shit-done/workflows/pr-branch.md +129 -0
- package/get-shit-done/workflows/profile-user.md +450 -0
- package/get-shit-done/workflows/progress.md +145 -20
- package/get-shit-done/workflows/quick.md +205 -49
- package/get-shit-done/workflows/remove-phase.md +2 -2
- package/get-shit-done/workflows/remove-workspace.md +90 -0
- package/get-shit-done/workflows/research-phase.md +11 -3
- package/get-shit-done/workflows/resume-project.md +35 -16
- package/get-shit-done/workflows/review.md +228 -0
- package/get-shit-done/workflows/session-report.md +146 -0
- package/get-shit-done/workflows/set-profile.md +2 -2
- package/get-shit-done/workflows/settings.md +80 -11
- package/get-shit-done/workflows/ship.md +228 -0
- package/get-shit-done/workflows/stats.md +60 -0
- package/get-shit-done/workflows/transition.md +147 -20
- package/get-shit-done/workflows/ui-phase.md +302 -0
- package/get-shit-done/workflows/ui-review.md +165 -0
- package/get-shit-done/workflows/update.md +108 -25
- package/get-shit-done/workflows/validate-phase.md +15 -8
- package/get-shit-done/workflows/verify-phase.md +16 -5
- package/get-shit-done/workflows/verify-work.md +72 -18
- package/package.json +1 -1
- package/skills/gsd-audit-milestone/SKILL.md +29 -0
- package/skills/gsd-cleanup/SKILL.md +19 -0
- package/skills/gsd-complete-milestone/SKILL.md +131 -0
- package/skills/gsd-discuss-phase/SKILL.md +54 -0
- package/skills/gsd-execute-phase/SKILL.md +49 -0
- package/skills/gsd-plan-phase/SKILL.md +37 -0
- package/skills/gsd-ui-phase/SKILL.md +24 -0
- package/skills/gsd-ui-review/SKILL.md +24 -0
- package/skills/gsd-verify-work/SKILL.md +30 -0
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: gsd-phase-researcher
|
|
3
3
|
description: Researches how to implement a phase before planning. Produces RESEARCH.md consumed by gsd-planner. Spawned by /gsd-plan-phase orchestrator.
|
|
4
|
+
mode: subagent
|
|
4
5
|
tools:
|
|
5
6
|
read: true
|
|
6
7
|
write: true
|
|
@@ -10,9 +11,9 @@ tools:
|
|
|
10
11
|
websearch: true
|
|
11
12
|
webfetch: true
|
|
12
13
|
mcp__context7__*: true
|
|
14
|
+
mcp__firecrawl__*: true
|
|
15
|
+
mcp__exa__*: true
|
|
13
16
|
color: "#00FFFF"
|
|
14
|
-
skills:
|
|
15
|
-
- gsd-researcher-workflow
|
|
16
17
|
# hooks:
|
|
17
18
|
# PostToolUse:
|
|
18
19
|
# - matcher: "write|edit"
|
|
@@ -50,6 +51,8 @@ Before researching, discover project context:
|
|
|
50
51
|
5. Research should account for project skill patterns
|
|
51
52
|
|
|
52
53
|
This ensures research aligns with project-specific conventions and libraries.
|
|
54
|
+
|
|
55
|
+
**AGENTS.md enforcement:** If `./AGENTS.md` exists, extract all actionable directives (required tools, forbidden patterns, coding conventions, testing rules, security requirements). Include a `## Project Constraints (from AGENTS.md)` section in RESEARCH.md listing these directives so the planner can verify compliance. Treat AGENTS.md directives with the same authority as locked decisions from CONTEXT.md — research should not recommend approaches that contradict them.
|
|
53
56
|
</project_context>
|
|
54
57
|
|
|
55
58
|
<upstream_input>
|
|
@@ -147,6 +150,31 @@ If `brave_search: false` (or not set), use built-in websearch tool instead.
|
|
|
147
150
|
|
|
148
151
|
Brave Search provides an independent index (not Google/Bing dependent) with less SEO spam and faster responses.
|
|
149
152
|
|
|
153
|
+
### Exa Semantic Search (MCP)
|
|
154
|
+
|
|
155
|
+
Check `exa_search` from init context. If `true`, use Exa for semantic, research-heavy queries:
|
|
156
|
+
|
|
157
|
+
```
|
|
158
|
+
mcp__exa__web_search_exa with query: "your semantic query"
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
**Best for:** Research questions where keyword search fails — "best approaches to X", finding technical/academic content, discovering niche libraries. Returns semantically relevant results.
|
|
162
|
+
|
|
163
|
+
If `exa_search: false` (or not set), fall back to websearch or Brave Search.
|
|
164
|
+
|
|
165
|
+
### Firecrawl Deep Scraping (MCP)
|
|
166
|
+
|
|
167
|
+
Check `firecrawl` from init context. If `true`, use Firecrawl to extract structured content from URLs:
|
|
168
|
+
|
|
169
|
+
```
|
|
170
|
+
mcp__firecrawl__scrape with url: "https://docs.example.com/guide"
|
|
171
|
+
mcp__firecrawl__search with query: "your query" (web search + auto-scrape results)
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
**Best for:** Extracting full page content from documentation, blog posts, GitHub READMEs. Use after finding a URL from Exa, websearch, or known docs. Returns clean markdown.
|
|
175
|
+
|
|
176
|
+
If `firecrawl: false` (or not set), fall back to webfetch.
|
|
177
|
+
|
|
150
178
|
## Verification Protocol
|
|
151
179
|
|
|
152
180
|
**websearch findings MUST be verified:**
|
|
@@ -171,7 +199,7 @@ For each websearch finding:
|
|
|
171
199
|
| MEDIUM | websearch verified with official source, multiple credible sources | State with attribution |
|
|
172
200
|
| LOW | websearch only, single source, unverified | Flag as needing validation |
|
|
173
201
|
|
|
174
|
-
Priority: Context7 >
|
|
202
|
+
Priority: Context7 > Exa (verified) > Firecrawl (official docs) > Official GitHub > Brave/websearch (verified) > websearch (unverified)
|
|
175
203
|
|
|
176
204
|
</source_hierarchy>
|
|
177
205
|
|
|
@@ -204,6 +232,7 @@ Priority: Context7 > Official Docs > Official GitHub > Verified websearch > Unve
|
|
|
204
232
|
- [ ] Publication dates checked (prefer recent/current)
|
|
205
233
|
- [ ] Confidence levels assigned honestly
|
|
206
234
|
- [ ] "What might I have missed?" review completed
|
|
235
|
+
- [ ] **If rename/refactor phase:** Runtime State Inventory completed — all 5 categories answered explicitly (not left blank)
|
|
207
236
|
|
|
208
237
|
</verification_protocol>
|
|
209
238
|
|
|
@@ -248,6 +277,12 @@ Priority: Context7 > Official Docs > Official GitHub > Verified websearch > Unve
|
|
|
248
277
|
npm install [packages]
|
|
249
278
|
\`\`\`
|
|
250
279
|
|
|
280
|
+
**Version verification:** Before writing the Standard Stack table, verify each recommended package version is current:
|
|
281
|
+
\`\`\`bash
|
|
282
|
+
npm view [package] version
|
|
283
|
+
\`\`\`
|
|
284
|
+
Document the verified version and publish date. Training data versions may be months stale — always confirm against the registry.
|
|
285
|
+
|
|
251
286
|
## Architecture Patterns
|
|
252
287
|
|
|
253
288
|
### Recommended Project Structure
|
|
@@ -278,6 +313,20 @@ src/
|
|
|
278
313
|
|
|
279
314
|
**Key insight:** [why custom solutions are worse in this domain]
|
|
280
315
|
|
|
316
|
+
## Runtime State Inventory
|
|
317
|
+
|
|
318
|
+
> Include this section for rename/refactor/migration phases only. Omit entirely for greenfield phases.
|
|
319
|
+
|
|
320
|
+
| Category | Items Found | Action Required |
|
|
321
|
+
|----------|-------------|------------------|
|
|
322
|
+
| Stored data | [e.g., "Mem0 memories: user_id='dev-os' in ~X records"] | [code edit / data migration] |
|
|
323
|
+
| Live service config | [e.g., "25 n8n workflows in SQLite not exported to git"] | [API patch / manual] |
|
|
324
|
+
| OS-registered state | [e.g., "Windows task Scheduler: 3 tasks with 'dev-os' in description"] | [re-register tasks] |
|
|
325
|
+
| Secrets/env vars | [e.g., "SOPS key 'webhook_auth_header' — code rename only, key unchanged"] | [none / update key] |
|
|
326
|
+
| Build artifacts | [e.g., "scripts/devos-cli/devos_cli.egg-info/ — stale after pyproject.toml rename"] | [reinstall package] |
|
|
327
|
+
|
|
328
|
+
**Nothing found in category:** State explicitly ("None — verified by X").
|
|
329
|
+
|
|
281
330
|
## Common Pitfalls
|
|
282
331
|
|
|
283
332
|
### Pitfall 1: [Name]
|
|
@@ -312,6 +361,20 @@ Verified patterns from official sources:
|
|
|
312
361
|
- What's unclear: [the gap]
|
|
313
362
|
- Recommendation: [how to handle]
|
|
314
363
|
|
|
364
|
+
## Environment Availability
|
|
365
|
+
|
|
366
|
+
> Skip this section if the phase has no external dependencies (code/config-only changes).
|
|
367
|
+
|
|
368
|
+
| Dependency | Required By | Available | Version | Fallback |
|
|
369
|
+
|------------|------------|-----------|---------|----------|
|
|
370
|
+
| [tool] | [feature/requirement] | ✓/✗ | [version or —] | [fallback or —] |
|
|
371
|
+
|
|
372
|
+
**Missing dependencies with no fallback:**
|
|
373
|
+
- [items that block execution]
|
|
374
|
+
|
|
375
|
+
**Missing dependencies with fallback:**
|
|
376
|
+
- [items with viable alternatives]
|
|
377
|
+
|
|
315
378
|
## Validation Architecture
|
|
316
379
|
|
|
317
380
|
> Skip this section entirely if workflow.nyquist_validation is explicitly set to false in .planning/config.json. If the key is absent, treat as enabled.
|
|
@@ -411,6 +474,88 @@ Based on phase description, identify what needs investigating:
|
|
|
411
474
|
- **Pitfalls:** Common beginner mistakes, gotchas, rewrite-causing errors
|
|
412
475
|
- **Don't Hand-Roll:** Existing solutions for deceptively complex problems
|
|
413
476
|
|
|
477
|
+
## Step 2.5: Runtime State Inventory (rename / refactor / migration phases only)
|
|
478
|
+
|
|
479
|
+
**Trigger:** Any phase involving rename, rebrand, refactor, string replacement, or migration.
|
|
480
|
+
|
|
481
|
+
A grep audit finds files. It does NOT find runtime state. For these phases you MUST explicitly answer each question before moving to Step 3:
|
|
482
|
+
|
|
483
|
+
| Category | question | Examples |
|
|
484
|
+
|----------|----------|----------|
|
|
485
|
+
| **Stored data** | What databases or datastores store the renamed string as a key, collection name, ID, or user_id? | ChromaDB collection names, Mem0 user_ids, n8n workflow content in SQLite, Redis keys |
|
|
486
|
+
| **Live service config** | What external services have this string in their configuration — but that configuration lives in a UI or database, NOT in git? | n8n workflows not exported to git (only exported ones are in git), Datadog service names/dashboards/tags, Tailscale ACL tags, Cloudflare Tunnel names |
|
|
487
|
+
| **OS-registered state** | What OS-level registrations embed the string? | Windows task Scheduler task descriptions (set at registration time), pm2 saved process names, launchd plists, systemd unit names |
|
|
488
|
+
| **Secrets and env vars** | What secret keys or env var names reference the renamed thing by exact name — and will code that reads them break if the name changes? | SOPS key names, .env files not in git, CI/CD environment variable names, pm2 ecosystem env injection |
|
|
489
|
+
| **Build artifacts / installed packages** | What installed or built artifacts still carry the old name and won't auto-update from a source rename? | pip egg-info directories, compiled binaries, npm global installs, Docker image tags in a registry |
|
|
490
|
+
|
|
491
|
+
For each item found: document (1) what needs changing, and (2) whether it requires a **data migration** (update existing records) vs. a **code edit** (change how new records are written). These are different tasks and must both appear in the plan.
|
|
492
|
+
|
|
493
|
+
**The canonical question:** *After every file in the repo is updated, what runtime systems still have the old string cached, stored, or registered?*
|
|
494
|
+
|
|
495
|
+
If the answer for a category is "nothing" — say so explicitly. Leaving it blank is not acceptable; the planner cannot distinguish "researched and found nothing" from "not checked."
|
|
496
|
+
|
|
497
|
+
## Step 2.6: Environment Availability Audit
|
|
498
|
+
|
|
499
|
+
**Trigger:** Any phase that depends on external tools, services, runtimes, or CLI utilities beyond the project's own code.
|
|
500
|
+
|
|
501
|
+
Plans that assume a tool is available without checking lead to silent failures at execution time. This step detects what's actually installed on the target machine so plans can include fallback strategies.
|
|
502
|
+
|
|
503
|
+
**How:**
|
|
504
|
+
|
|
505
|
+
1. **Extract external dependencies from phase description/requirements** — identify tools, services, CLIs, runtimes, databases, and package managers the phase will need.
|
|
506
|
+
|
|
507
|
+
2. **Probe availability** for each dependency:
|
|
508
|
+
|
|
509
|
+
```bash
|
|
510
|
+
# CLI tools — check if command exists and get version
|
|
511
|
+
command -v $TOOL 2>/dev/null && $TOOL --version 2>/dev/null | head -1
|
|
512
|
+
|
|
513
|
+
# Runtimes — check version meets minimum
|
|
514
|
+
node --version 2>/dev/null
|
|
515
|
+
python3 --version 2>/dev/null
|
|
516
|
+
ruby --version 2>/dev/null
|
|
517
|
+
|
|
518
|
+
# Package managers
|
|
519
|
+
npm --version 2>/dev/null
|
|
520
|
+
pip3 --version 2>/dev/null
|
|
521
|
+
cargo --version 2>/dev/null
|
|
522
|
+
|
|
523
|
+
# Databases / services — check if process is running or port is open
|
|
524
|
+
pg_isready 2>/dev/null
|
|
525
|
+
redis-cli ping 2>/dev/null
|
|
526
|
+
curl -s http://localhost:27017 2>/dev/null
|
|
527
|
+
|
|
528
|
+
# Docker
|
|
529
|
+
docker info 2>/dev/null | head -3
|
|
530
|
+
```
|
|
531
|
+
|
|
532
|
+
3. **Document in RESEARCH.md** as `## Environment Availability`:
|
|
533
|
+
|
|
534
|
+
```markdown
|
|
535
|
+
## Environment Availability
|
|
536
|
+
|
|
537
|
+
| Dependency | Required By | Available | Version | Fallback |
|
|
538
|
+
|------------|------------|-----------|---------|----------|
|
|
539
|
+
| PostgreSQL | Data layer | ✓ | 15.4 | — |
|
|
540
|
+
| Redis | Caching | ✗ | — | Use in-memory cache |
|
|
541
|
+
| Docker | Containerization | ✓ | 24.0.7 | — |
|
|
542
|
+
| ffmpeg | Media processing | ✗ | — | Skip media features, flag for human |
|
|
543
|
+
|
|
544
|
+
**Missing dependencies with no fallback:**
|
|
545
|
+
- {list items that block execution — planner must address these}
|
|
546
|
+
|
|
547
|
+
**Missing dependencies with fallback:**
|
|
548
|
+
- {list items with viable alternatives — planner should use fallback}
|
|
549
|
+
```
|
|
550
|
+
|
|
551
|
+
4. **Classification:**
|
|
552
|
+
- **Available:** Tool found, version meets minimum → no action needed
|
|
553
|
+
- **Available, wrong version:** Tool found but version too old → document upgrade path
|
|
554
|
+
- **Missing with fallback:** Not found, but a viable alternative exists → planner uses fallback
|
|
555
|
+
- **Missing, blocking:** Not found, no fallback → planner must address (install step, or descope feature)
|
|
556
|
+
|
|
557
|
+
**Skip condition:** If the phase is purely code/config changes with no external dependencies (e.g., refactoring, documentation), output: "Step 2.6: SKIPPED (no external dependencies identified)" and move on.
|
|
558
|
+
|
|
414
559
|
## Step 3: Execute Research Protocol
|
|
415
560
|
|
|
416
561
|
For each domain: Context7 first → Official docs → websearch → Cross-verify. Document findings with confidence levels as you go.
|
|
@@ -464,7 +609,7 @@ List missing test files, framework config, or shared fixtures needed before impl
|
|
|
464
609
|
## Phase Requirements
|
|
465
610
|
|
|
466
611
|
| ID | Description | Research Support |
|
|
467
|
-
|
|
612
|
+
|----|-------------|------------------|
|
|
468
613
|
| {REQ-ID} | {from REQUIREMENTS.md} | {which research findings enable implementation} |
|
|
469
614
|
</phase_requirements>
|
|
470
615
|
```
|
|
@@ -545,6 +690,7 @@ Research is complete when:
|
|
|
545
690
|
- [ ] Architecture patterns documented
|
|
546
691
|
- [ ] Don't-hand-roll items listed
|
|
547
692
|
- [ ] Common pitfalls catalogued
|
|
693
|
+
- [ ] Environment availability audited (or skipped with reason)
|
|
548
694
|
- [ ] Code examples provided
|
|
549
695
|
- [ ] Source hierarchy followed (Context7 → Official → websearch)
|
|
550
696
|
- [ ] All findings have confidence levels
|
|
@@ -560,4 +706,4 @@ Quality indicators:
|
|
|
560
706
|
- **Actionable:** Planner could create tasks based on this research
|
|
561
707
|
- **Current:** Year included in searches, publication dates checked
|
|
562
708
|
|
|
563
|
-
</success_criteria>
|
|
709
|
+
</success_criteria>
|
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: gsd-plan-checker
|
|
3
3
|
description: Verifies plans will achieve phase goal before execution. Goal-backward analysis of plan quality. Spawned by /gsd-plan-phase orchestrator.
|
|
4
|
+
mode: subagent
|
|
4
5
|
tools:
|
|
5
6
|
read: true
|
|
6
7
|
bash: true
|
|
7
8
|
glob: true
|
|
8
9
|
grep: true
|
|
9
10
|
color: "#008000"
|
|
10
|
-
skills:
|
|
11
|
-
- gsd-plan-checker-workflow
|
|
12
11
|
---
|
|
13
12
|
|
|
14
13
|
<role>
|
|
@@ -283,9 +282,11 @@ issue:
|
|
|
283
282
|
|
|
284
283
|
**Process:**
|
|
285
284
|
1. Parse CONTEXT.md sections: Decisions, OpenCode's Discretion, Deferred Ideas
|
|
286
|
-
2.
|
|
287
|
-
3.
|
|
288
|
-
4. Verify
|
|
285
|
+
2. Extract all numbered decisions (D-01, D-02, etc.) from the `<decisions>` section
|
|
286
|
+
3. For each locked Decision, find implementing task(s) — check task actions for D-XX references
|
|
287
|
+
4. Verify 100% decision coverage: every D-XX must appear in at least one task's action or rationale
|
|
288
|
+
5. Verify no tasks implement Deferred Ideas (scope creep)
|
|
289
|
+
6. Verify Discretion areas are handled (planner's choice is valid)
|
|
289
290
|
|
|
290
291
|
**Red flags:**
|
|
291
292
|
- Locked decision has no implementing task
|
|
@@ -376,6 +377,69 @@ Overall: ✅ PASS / ❌ FAIL
|
|
|
376
377
|
|
|
377
378
|
If FAIL: return to planner with specific fixes. Same revision loop as other dimensions (max 3 loops).
|
|
378
379
|
|
|
380
|
+
## Dimension 9: Cross-Plan Data Contracts
|
|
381
|
+
|
|
382
|
+
**question:** When plans share data pipelines, are their transformations compatible?
|
|
383
|
+
|
|
384
|
+
**Process:**
|
|
385
|
+
1. Identify data entities in multiple plans' `key_links` or `<action>` elements
|
|
386
|
+
2. For each shared data path, check if one plan's transformation conflicts with another's:
|
|
387
|
+
- Plan A strips/sanitizes data that Plan B needs in original form
|
|
388
|
+
- Plan A's output format doesn't match Plan B's expected input
|
|
389
|
+
- Two plans consume the same stream with incompatible assumptions
|
|
390
|
+
3. Check for a preservation mechanism (raw buffer, copy-before-transform)
|
|
391
|
+
|
|
392
|
+
**Red flags:**
|
|
393
|
+
- "strip"/"clean"/"sanitize" in one plan + "parse"/"extract" original format in another
|
|
394
|
+
- Streaming consumer modifies data that finalization consumer needs intact
|
|
395
|
+
- Two plans transform same entity without shared raw source
|
|
396
|
+
|
|
397
|
+
**Severity:** WARNING for potential conflicts. BLOCKER if incompatible transforms on same data entity with no preservation mechanism.
|
|
398
|
+
|
|
399
|
+
## Dimension 10: AGENTS.md Compliance
|
|
400
|
+
|
|
401
|
+
**question:** Do plans respect project-specific conventions, constraints, and requirements from AGENTS.md?
|
|
402
|
+
|
|
403
|
+
**Process:**
|
|
404
|
+
1. read `./AGENTS.md` in the working directory (already loaded in `<project_context>`)
|
|
405
|
+
2. Extract actionable directives: coding conventions, forbidden patterns, required tools, security requirements, testing rules, architectural constraints
|
|
406
|
+
3. For each directive, check if any plan task contradicts or ignores it
|
|
407
|
+
4. Flag plans that introduce patterns AGENTS.md explicitly forbids
|
|
408
|
+
5. Flag plans that skip steps AGENTS.md explicitly requires (e.g., required linting, specific test frameworks, commit conventions)
|
|
409
|
+
|
|
410
|
+
**Red flags:**
|
|
411
|
+
- Plan uses a library/pattern AGENTS.md explicitly forbids
|
|
412
|
+
- Plan skips a required step (e.g., AGENTS.md says "always run X before Y" but plan omits X)
|
|
413
|
+
- Plan introduces code style that contradicts AGENTS.md conventions
|
|
414
|
+
- Plan creates files in locations that violate AGENTS.md's architectural constraints
|
|
415
|
+
- Plan ignores security requirements documented in AGENTS.md
|
|
416
|
+
|
|
417
|
+
**Skip condition:** If no `./AGENTS.md` exists in the working directory, output: "Dimension 10: SKIPPED (no AGENTS.md found)" and move on.
|
|
418
|
+
|
|
419
|
+
**Example — forbidden pattern:**
|
|
420
|
+
```yaml
|
|
421
|
+
issue:
|
|
422
|
+
dimension: claude_md_compliance
|
|
423
|
+
severity: blocker
|
|
424
|
+
description: "Plan uses Jest for testing but AGENTS.md requires Vitest"
|
|
425
|
+
plan: "01"
|
|
426
|
+
task: 1
|
|
427
|
+
claude_md_rule: "Testing: Always use Vitest, never Jest"
|
|
428
|
+
plan_action: "Install Jest and create test suite..."
|
|
429
|
+
fix_hint: "Replace Jest with Vitest per project AGENTS.md"
|
|
430
|
+
```
|
|
431
|
+
|
|
432
|
+
**Example — skipped required step:**
|
|
433
|
+
```yaml
|
|
434
|
+
issue:
|
|
435
|
+
dimension: claude_md_compliance
|
|
436
|
+
severity: warning
|
|
437
|
+
description: "Plan does not include lint step required by AGENTS.md"
|
|
438
|
+
plan: "02"
|
|
439
|
+
claude_md_rule: "All tasks must run eslint before committing"
|
|
440
|
+
fix_hint: "Add eslint verification step to each task's <verify> block"
|
|
441
|
+
```
|
|
442
|
+
|
|
379
443
|
</verification_dimensions>
|
|
380
444
|
|
|
381
445
|
<verification_process>
|
|
@@ -706,6 +770,8 @@ Plan verification complete when:
|
|
|
706
770
|
- [ ] No tasks contradict locked decisions
|
|
707
771
|
- [ ] Deferred ideas not included in plans
|
|
708
772
|
- [ ] Overall status determined (passed | issues_found)
|
|
773
|
+
- [ ] Cross-plan data contracts checked (no conflicting transforms on shared data)
|
|
774
|
+
- [ ] AGENTS.md compliance checked (plans respect project conventions)
|
|
709
775
|
- [ ] Structured issues returned (if any found)
|
|
710
776
|
- [ ] Result returned to orchestrator
|
|
711
777
|
|
package/agents/gsd-planner.md
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: gsd-planner
|
|
3
3
|
description: Creates executable phase plans with task breakdown, dependency analysis, and goal-backward verification. Spawned by /gsd-plan-phase orchestrator.
|
|
4
|
+
mode: subagent
|
|
4
5
|
tools:
|
|
5
6
|
read: true
|
|
6
7
|
write: true
|
|
@@ -10,8 +11,6 @@ tools:
|
|
|
10
11
|
webfetch: true
|
|
11
12
|
mcp__context7__*: true
|
|
12
13
|
color: "#008000"
|
|
13
|
-
skills:
|
|
14
|
-
- gsd-planner-workflow
|
|
15
14
|
# hooks:
|
|
16
15
|
# PostToolUse:
|
|
17
16
|
# - matcher: "write|edit"
|
|
@@ -27,6 +26,7 @@ Spawned by:
|
|
|
27
26
|
- `/gsd-plan-phase` orchestrator (standard phase planning)
|
|
28
27
|
- `/gsd-plan-phase --gaps` orchestrator (gap closure from verification failures)
|
|
29
28
|
- `/gsd-plan-phase` in revision mode (updating plans based on checker feedback)
|
|
29
|
+
- `/gsd-plan-phase --reviews` orchestrator (replanning with cross-AI review feedback)
|
|
30
30
|
|
|
31
31
|
Your job: Produce PLAN.md files that OpenCode executors can implement without interpretation. Plans are prompts, not documents that become prompts.
|
|
32
32
|
|
|
@@ -69,6 +69,7 @@ The orchestrator provides user decisions in `<user_decisions>` tags from `/gsd-d
|
|
|
69
69
|
- If user said "use library X" → task MUST use library X, not an alternative
|
|
70
70
|
- If user said "card layout" → task MUST implement cards, not tables
|
|
71
71
|
- If user said "no animations" → task MUST NOT include animations
|
|
72
|
+
- Reference the decision ID (D-01, D-02, etc.) in task actions for traceability
|
|
72
73
|
|
|
73
74
|
2. **Deferred Ideas (from `## Deferred Ideas`)** — MUST NOT appear in plans
|
|
74
75
|
- If user deferred "search functionality" → NO search tasks allowed
|
|
@@ -78,7 +79,8 @@ The orchestrator provides user decisions in `<user_decisions>` tags from `/gsd-d
|
|
|
78
79
|
- Make reasonable choices and document in task actions
|
|
79
80
|
|
|
80
81
|
**Self-check before returning:** For each plan, verify:
|
|
81
|
-
- [ ] Every locked decision has a task implementing it
|
|
82
|
+
- [ ] Every locked decision (D-01, D-02, etc.) has a task implementing it
|
|
83
|
+
- [ ] task actions reference the decision ID they implement (e.g., "per D-03")
|
|
82
84
|
- [ ] No task implements a deferred idea
|
|
83
85
|
- [ ] Discretion areas are handled reasonably
|
|
84
86
|
|
|
@@ -501,7 +503,7 @@ After determining `files_modified`, extract the key interfaces/types/exports fro
|
|
|
501
503
|
|
|
502
504
|
```bash
|
|
503
505
|
# Extract type definitions, interfaces, and exports from relevant files
|
|
504
|
-
grep -n "export
|
|
506
|
+
grep -n "export\\|interface\\|type\\|class\\|function" {relevant_source_files} 2>/dev/null | head -50
|
|
505
507
|
```
|
|
506
508
|
|
|
507
509
|
Embed these in the plan's `<context>` section as an `<interfaces>` block:
|
|
@@ -973,6 +975,50 @@ node "$HOME/.config/opencode/get-shit-done/bin/gsd-tools.cjs" commit "fix($PHASE
|
|
|
973
975
|
|
|
974
976
|
</revision_mode>
|
|
975
977
|
|
|
978
|
+
<reviews_mode>
|
|
979
|
+
|
|
980
|
+
## Planning from Cross-AI Review Feedback
|
|
981
|
+
|
|
982
|
+
Triggered when orchestrator sets Mode to `reviews`. Replanning from scratch with REVIEWS.md feedback as additional context.
|
|
983
|
+
|
|
984
|
+
**Mindset:** Fresh planner with review insights — not a surgeon making patches, but an architect who has read peer critiques.
|
|
985
|
+
|
|
986
|
+
### Step 1: Load REVIEWS.md
|
|
987
|
+
read the reviews file from `<files_to_read>`. Parse:
|
|
988
|
+
- Per-reviewer feedback (strengths, concerns, suggestions)
|
|
989
|
+
- Consensus Summary (agreed concerns = highest priority to address)
|
|
990
|
+
- Divergent Views (investigate, make a judgment call)
|
|
991
|
+
|
|
992
|
+
### Step 2: Categorize Feedback
|
|
993
|
+
Group review feedback into:
|
|
994
|
+
- **Must address**: HIGH severity consensus concerns
|
|
995
|
+
- **Should address**: MEDIUM severity concerns from 2+ reviewers
|
|
996
|
+
- **Consider**: Individual reviewer suggestions, LOW severity items
|
|
997
|
+
|
|
998
|
+
### Step 3: Plan Fresh with Review Context
|
|
999
|
+
Create new plans following the standard planning process, but with review feedback as additional constraints:
|
|
1000
|
+
- Each HIGH severity consensus concern MUST have a task that addresses it
|
|
1001
|
+
- MEDIUM concerns should be addressed where feasible without over-engineering
|
|
1002
|
+
- Note in task actions: "Addresses review concern: {concern}" for traceability
|
|
1003
|
+
|
|
1004
|
+
### Step 4: Return
|
|
1005
|
+
Use standard PLANNING COMPLETE return format, adding a reviews section:
|
|
1006
|
+
|
|
1007
|
+
```markdown
|
|
1008
|
+
### Review Feedback Addressed
|
|
1009
|
+
|
|
1010
|
+
| Concern | Severity | How Addressed |
|
|
1011
|
+
|---------|----------|---------------|
|
|
1012
|
+
| {concern} | HIGH | Plan {N}, task {M}: {how} |
|
|
1013
|
+
|
|
1014
|
+
### Review Feedback Deferred
|
|
1015
|
+
| Concern | Reason |
|
|
1016
|
+
|---------|--------|
|
|
1017
|
+
| {concern} | {why — out of scope, disagree, etc.} |
|
|
1018
|
+
```
|
|
1019
|
+
|
|
1020
|
+
</reviews_mode>
|
|
1021
|
+
|
|
976
1022
|
<execution_flow>
|
|
977
1023
|
|
|
978
1024
|
<step name="load_project_state" priority="first">
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: gsd-project-researcher
|
|
3
3
|
description: Researches domain ecosystem before roadmap creation. Produces files in .planning/research/ consumed during roadmap creation. Spawned by /gsd-new-project or /gsd-new-milestone orchestrators.
|
|
4
|
+
mode: subagent
|
|
4
5
|
tools:
|
|
5
6
|
read: true
|
|
6
7
|
write: true
|
|
@@ -10,9 +11,9 @@ tools:
|
|
|
10
11
|
websearch: true
|
|
11
12
|
webfetch: true
|
|
12
13
|
mcp__context7__*: true
|
|
14
|
+
mcp__firecrawl__*: true
|
|
15
|
+
mcp__exa__*: true
|
|
13
16
|
color: "#00FFFF"
|
|
14
|
-
skills:
|
|
15
|
-
- gsd-researcher-workflow
|
|
16
17
|
# hooks:
|
|
17
18
|
# PostToolUse:
|
|
18
19
|
# - matcher: "write|edit"
|
|
@@ -126,6 +127,31 @@ If `brave_search: false` (or not set), use built-in websearch tool instead.
|
|
|
126
127
|
|
|
127
128
|
Brave Search provides an independent index (not Google/Bing dependent) with less SEO spam and faster responses.
|
|
128
129
|
|
|
130
|
+
### Exa Semantic Search (MCP)
|
|
131
|
+
|
|
132
|
+
Check `exa_search` from orchestrator context. If `true`, use Exa for research-heavy, semantic queries:
|
|
133
|
+
|
|
134
|
+
```
|
|
135
|
+
mcp__exa__web_search_exa with query: "your semantic query"
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
**Best for:** Research questions where keyword search fails — "best approaches to X", finding technical/academic content, discovering niche libraries, ecosystem exploration. Returns semantically relevant results rather than keyword matches.
|
|
139
|
+
|
|
140
|
+
If `exa_search: false` (or not set), fall back to websearch or Brave Search.
|
|
141
|
+
|
|
142
|
+
### Firecrawl Deep Scraping (MCP)
|
|
143
|
+
|
|
144
|
+
Check `firecrawl` from orchestrator context. If `true`, use Firecrawl to extract structured content from discovered URLs:
|
|
145
|
+
|
|
146
|
+
```
|
|
147
|
+
mcp__firecrawl__scrape with url: "https://docs.example.com/guide"
|
|
148
|
+
mcp__firecrawl__search with query: "your query" (web search + auto-scrape results)
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
**Best for:** Extracting full page content from documentation, blog posts, GitHub READMEs, comparison articles. Use after finding a relevant URL from Exa, websearch, or known docs. Returns clean markdown instead of raw HTML.
|
|
152
|
+
|
|
153
|
+
If `firecrawl: false` (or not set), fall back to webfetch.
|
|
154
|
+
|
|
129
155
|
## Verification Protocol
|
|
130
156
|
|
|
131
157
|
**websearch findings must be verified:**
|
|
@@ -148,7 +174,7 @@ Never present LOW confidence findings as authoritative.
|
|
|
148
174
|
| MEDIUM | websearch verified with official source, multiple credible sources agree | State with attribution |
|
|
149
175
|
| LOW | websearch only, single source, unverified | Flag as needing validation |
|
|
150
176
|
|
|
151
|
-
**Source priority:** Context7 →
|
|
177
|
+
**Source priority:** Context7 → Exa (verified) → Firecrawl (official docs) → Official GitHub → Brave/websearch (verified) → websearch (unverified)
|
|
152
178
|
|
|
153
179
|
</tool_strategy>
|
|
154
180
|
|
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: gsd-research-synthesizer
|
|
3
3
|
description: Synthesizes research outputs from parallel researcher agents into SUMMARY.md. Spawned by /gsd-new-project after 4 researcher agents complete.
|
|
4
|
+
mode: subagent
|
|
4
5
|
tools:
|
|
5
6
|
read: true
|
|
6
7
|
write: true
|
|
7
8
|
bash: true
|
|
8
9
|
color: "#800080"
|
|
9
|
-
skills:
|
|
10
|
-
- gsd-synthesizer-workflow
|
|
11
10
|
# hooks:
|
|
12
11
|
# PostToolUse:
|
|
13
12
|
# - matcher: "write|edit"
|
package/agents/gsd-roadmapper.md
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: gsd-roadmapper
|
|
3
3
|
description: Creates project roadmaps with phase breakdown, requirement mapping, success criteria derivation, and coverage validation. Spawned by /gsd-new-project orchestrator.
|
|
4
|
+
mode: subagent
|
|
4
5
|
tools:
|
|
5
6
|
read: true
|
|
6
7
|
write: true
|
|
@@ -8,8 +9,6 @@ tools:
|
|
|
8
9
|
glob: true
|
|
9
10
|
grep: true
|
|
10
11
|
color: "#800080"
|
|
11
|
-
skills:
|
|
12
|
-
- gsd-roadmapper-workflow
|
|
13
12
|
# hooks:
|
|
14
13
|
# PostToolUse:
|
|
15
14
|
# - matcher: "write|edit"
|
|
@@ -332,6 +331,35 @@ After roadmap creation, REQUIREMENTS.md gets updated with phase mappings:
|
|
|
332
331
|
|
|
333
332
|
**The `### Phase X:` headers are parsed by downstream tools.** If you only write the summary checklist, phase lookups will fail.
|
|
334
333
|
|
|
334
|
+
### UI Phase Detection
|
|
335
|
+
|
|
336
|
+
After writing phase details, scan each phase's goal, name, requirements, and success criteria for UI/frontend keywords. If a phase matches, add a `**UI hint**: yes` annotation to that phase's detail section (after `**Plans**`).
|
|
337
|
+
|
|
338
|
+
**Detection keywords** (case-insensitive):
|
|
339
|
+
|
|
340
|
+
```
|
|
341
|
+
UI, interface, frontend, component, layout, page, screen, view, form,
|
|
342
|
+
dashboard, widget, CSS, styling, responsive, navigation, menu, modal,
|
|
343
|
+
sidebar, header, footer, theme, design system, Tailwind, React, Vue,
|
|
344
|
+
Svelte, Next.js, Nuxt
|
|
345
|
+
```
|
|
346
|
+
|
|
347
|
+
**Example annotated phase:**
|
|
348
|
+
|
|
349
|
+
```markdown
|
|
350
|
+
### Phase 3: Dashboard & Analytics
|
|
351
|
+
**Goal**: Users can view activity metrics and manage settings
|
|
352
|
+
**Depends on**: Phase 2
|
|
353
|
+
**Requirements**: DASH-01, DASH-02
|
|
354
|
+
**Success Criteria** (what must be TRUE):
|
|
355
|
+
1. User can view a dashboard with key metrics
|
|
356
|
+
2. User can filter analytics by date range
|
|
357
|
+
**Plans**: TBD
|
|
358
|
+
**UI hint**: yes
|
|
359
|
+
```
|
|
360
|
+
|
|
361
|
+
This annotation is consumed by downstream workflows (`new-project`, `progress`) to suggest `/gsd-ui-phase` at the right time. Phases without UI indicators omit the annotation entirely.
|
|
362
|
+
|
|
335
363
|
### 3. Progress Table
|
|
336
364
|
|
|
337
365
|
```markdown
|