gsd-opencode 1.22.1 → 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 +0 -2
- package/agents/gsd-debugger.md +118 -2
- package/agents/gsd-executor.md +24 -4
- package/agents/gsd-integration-checker.md +0 -2
- package/agents/gsd-nyquist-auditor.md +0 -2
- package/agents/gsd-phase-researcher.md +150 -5
- package/agents/gsd-plan-checker.md +70 -5
- package/agents/gsd-planner.md +49 -4
- package/agents/gsd-project-researcher.md +28 -3
- package/agents/gsd-research-synthesizer.md +0 -2
- package/agents/gsd-roadmapper.md +29 -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 +123 -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 +9 -8
- package/commands/gsd/gsd-remove-workspace.md +26 -0
- package/commands/gsd/gsd-research-phase.md +5 -0
- 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 +3 -3
- 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 +79 -10
- 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
|
@@ -11,9 +11,9 @@ tools:
|
|
|
11
11
|
websearch: true
|
|
12
12
|
webfetch: true
|
|
13
13
|
mcp__context7__*: true
|
|
14
|
+
mcp__firecrawl__*: true
|
|
15
|
+
mcp__exa__*: true
|
|
14
16
|
color: "#00FFFF"
|
|
15
|
-
skills:
|
|
16
|
-
- gsd-researcher-workflow
|
|
17
17
|
# hooks:
|
|
18
18
|
# PostToolUse:
|
|
19
19
|
# - matcher: "write|edit"
|
|
@@ -51,6 +51,8 @@ Before researching, discover project context:
|
|
|
51
51
|
5. Research should account for project skill patterns
|
|
52
52
|
|
|
53
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.
|
|
54
56
|
</project_context>
|
|
55
57
|
|
|
56
58
|
<upstream_input>
|
|
@@ -148,6 +150,31 @@ If `brave_search: false` (or not set), use built-in websearch tool instead.
|
|
|
148
150
|
|
|
149
151
|
Brave Search provides an independent index (not Google/Bing dependent) with less SEO spam and faster responses.
|
|
150
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
|
+
|
|
151
178
|
## Verification Protocol
|
|
152
179
|
|
|
153
180
|
**websearch findings MUST be verified:**
|
|
@@ -172,7 +199,7 @@ For each websearch finding:
|
|
|
172
199
|
| MEDIUM | websearch verified with official source, multiple credible sources | State with attribution |
|
|
173
200
|
| LOW | websearch only, single source, unverified | Flag as needing validation |
|
|
174
201
|
|
|
175
|
-
Priority: Context7 >
|
|
202
|
+
Priority: Context7 > Exa (verified) > Firecrawl (official docs) > Official GitHub > Brave/websearch (verified) > websearch (unverified)
|
|
176
203
|
|
|
177
204
|
</source_hierarchy>
|
|
178
205
|
|
|
@@ -205,6 +232,7 @@ Priority: Context7 > Official Docs > Official GitHub > Verified websearch > Unve
|
|
|
205
232
|
- [ ] Publication dates checked (prefer recent/current)
|
|
206
233
|
- [ ] Confidence levels assigned honestly
|
|
207
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)
|
|
208
236
|
|
|
209
237
|
</verification_protocol>
|
|
210
238
|
|
|
@@ -249,6 +277,12 @@ Priority: Context7 > Official Docs > Official GitHub > Verified websearch > Unve
|
|
|
249
277
|
npm install [packages]
|
|
250
278
|
\`\`\`
|
|
251
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
|
+
|
|
252
286
|
## Architecture Patterns
|
|
253
287
|
|
|
254
288
|
### Recommended Project Structure
|
|
@@ -279,6 +313,20 @@ src/
|
|
|
279
313
|
|
|
280
314
|
**Key insight:** [why custom solutions are worse in this domain]
|
|
281
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
|
+
|
|
282
330
|
## Common Pitfalls
|
|
283
331
|
|
|
284
332
|
### Pitfall 1: [Name]
|
|
@@ -313,6 +361,20 @@ Verified patterns from official sources:
|
|
|
313
361
|
- What's unclear: [the gap]
|
|
314
362
|
- Recommendation: [how to handle]
|
|
315
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
|
+
|
|
316
378
|
## Validation Architecture
|
|
317
379
|
|
|
318
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.
|
|
@@ -412,6 +474,88 @@ Based on phase description, identify what needs investigating:
|
|
|
412
474
|
- **Pitfalls:** Common beginner mistakes, gotchas, rewrite-causing errors
|
|
413
475
|
- **Don't Hand-Roll:** Existing solutions for deceptively complex problems
|
|
414
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
|
+
|
|
415
559
|
## Step 3: Execute Research Protocol
|
|
416
560
|
|
|
417
561
|
For each domain: Context7 first → Official docs → websearch → Cross-verify. Document findings with confidence levels as you go.
|
|
@@ -465,7 +609,7 @@ List missing test files, framework config, or shared fixtures needed before impl
|
|
|
465
609
|
## Phase Requirements
|
|
466
610
|
|
|
467
611
|
| ID | Description | Research Support |
|
|
468
|
-
|
|
612
|
+
|----|-------------|------------------|
|
|
469
613
|
| {REQ-ID} | {from REQUIREMENTS.md} | {which research findings enable implementation} |
|
|
470
614
|
</phase_requirements>
|
|
471
615
|
```
|
|
@@ -546,6 +690,7 @@ Research is complete when:
|
|
|
546
690
|
- [ ] Architecture patterns documented
|
|
547
691
|
- [ ] Don't-hand-roll items listed
|
|
548
692
|
- [ ] Common pitfalls catalogued
|
|
693
|
+
- [ ] Environment availability audited (or skipped with reason)
|
|
549
694
|
- [ ] Code examples provided
|
|
550
695
|
- [ ] Source hierarchy followed (Context7 → Official → websearch)
|
|
551
696
|
- [ ] All findings have confidence levels
|
|
@@ -561,4 +706,4 @@ Quality indicators:
|
|
|
561
706
|
- **Actionable:** Planner could create tasks based on this research
|
|
562
707
|
- **Current:** Year included in searches, publication dates checked
|
|
563
708
|
|
|
564
|
-
</success_criteria>
|
|
709
|
+
</success_criteria>
|
|
@@ -8,8 +8,6 @@ tools:
|
|
|
8
8
|
glob: true
|
|
9
9
|
grep: true
|
|
10
10
|
color: "#008000"
|
|
11
|
-
skills:
|
|
12
|
-
- gsd-plan-checker-workflow
|
|
13
11
|
---
|
|
14
12
|
|
|
15
13
|
<role>
|
|
@@ -284,9 +282,11 @@ issue:
|
|
|
284
282
|
|
|
285
283
|
**Process:**
|
|
286
284
|
1. Parse CONTEXT.md sections: Decisions, OpenCode's Discretion, Deferred Ideas
|
|
287
|
-
2.
|
|
288
|
-
3.
|
|
289
|
-
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)
|
|
290
290
|
|
|
291
291
|
**Red flags:**
|
|
292
292
|
- Locked decision has no implementing task
|
|
@@ -377,6 +377,69 @@ Overall: ✅ PASS / ❌ FAIL
|
|
|
377
377
|
|
|
378
378
|
If FAIL: return to planner with specific fixes. Same revision loop as other dimensions (max 3 loops).
|
|
379
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
|
+
|
|
380
443
|
</verification_dimensions>
|
|
381
444
|
|
|
382
445
|
<verification_process>
|
|
@@ -707,6 +770,8 @@ Plan verification complete when:
|
|
|
707
770
|
- [ ] No tasks contradict locked decisions
|
|
708
771
|
- [ ] Deferred ideas not included in plans
|
|
709
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)
|
|
710
775
|
- [ ] Structured issues returned (if any found)
|
|
711
776
|
- [ ] Result returned to orchestrator
|
|
712
777
|
|
package/agents/gsd-planner.md
CHANGED
|
@@ -11,8 +11,6 @@ tools:
|
|
|
11
11
|
webfetch: true
|
|
12
12
|
mcp__context7__*: true
|
|
13
13
|
color: "#008000"
|
|
14
|
-
skills:
|
|
15
|
-
- gsd-planner-workflow
|
|
16
14
|
# hooks:
|
|
17
15
|
# PostToolUse:
|
|
18
16
|
# - matcher: "write|edit"
|
|
@@ -28,6 +26,7 @@ Spawned by:
|
|
|
28
26
|
- `/gsd-plan-phase` orchestrator (standard phase planning)
|
|
29
27
|
- `/gsd-plan-phase --gaps` orchestrator (gap closure from verification failures)
|
|
30
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)
|
|
31
30
|
|
|
32
31
|
Your job: Produce PLAN.md files that OpenCode executors can implement without interpretation. Plans are prompts, not documents that become prompts.
|
|
33
32
|
|
|
@@ -70,6 +69,7 @@ The orchestrator provides user decisions in `<user_decisions>` tags from `/gsd-d
|
|
|
70
69
|
- If user said "use library X" → task MUST use library X, not an alternative
|
|
71
70
|
- If user said "card layout" → task MUST implement cards, not tables
|
|
72
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
|
|
73
73
|
|
|
74
74
|
2. **Deferred Ideas (from `## Deferred Ideas`)** — MUST NOT appear in plans
|
|
75
75
|
- If user deferred "search functionality" → NO search tasks allowed
|
|
@@ -79,7 +79,8 @@ The orchestrator provides user decisions in `<user_decisions>` tags from `/gsd-d
|
|
|
79
79
|
- Make reasonable choices and document in task actions
|
|
80
80
|
|
|
81
81
|
**Self-check before returning:** For each plan, verify:
|
|
82
|
-
- [ ] 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")
|
|
83
84
|
- [ ] No task implements a deferred idea
|
|
84
85
|
- [ ] Discretion areas are handled reasonably
|
|
85
86
|
|
|
@@ -502,7 +503,7 @@ After determining `files_modified`, extract the key interfaces/types/exports fro
|
|
|
502
503
|
|
|
503
504
|
```bash
|
|
504
505
|
# Extract type definitions, interfaces, and exports from relevant files
|
|
505
|
-
grep -n "export
|
|
506
|
+
grep -n "export\\|interface\\|type\\|class\\|function" {relevant_source_files} 2>/dev/null | head -50
|
|
506
507
|
```
|
|
507
508
|
|
|
508
509
|
Embed these in the plan's `<context>` section as an `<interfaces>` block:
|
|
@@ -974,6 +975,50 @@ node "$HOME/.config/opencode/get-shit-done/bin/gsd-tools.cjs" commit "fix($PHASE
|
|
|
974
975
|
|
|
975
976
|
</revision_mode>
|
|
976
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
|
+
|
|
977
1022
|
<execution_flow>
|
|
978
1023
|
|
|
979
1024
|
<step name="load_project_state" priority="first">
|
|
@@ -11,9 +11,9 @@ tools:
|
|
|
11
11
|
websearch: true
|
|
12
12
|
webfetch: true
|
|
13
13
|
mcp__context7__*: true
|
|
14
|
+
mcp__firecrawl__*: true
|
|
15
|
+
mcp__exa__*: true
|
|
14
16
|
color: "#00FFFF"
|
|
15
|
-
skills:
|
|
16
|
-
- gsd-researcher-workflow
|
|
17
17
|
# hooks:
|
|
18
18
|
# PostToolUse:
|
|
19
19
|
# - matcher: "write|edit"
|
|
@@ -127,6 +127,31 @@ If `brave_search: false` (or not set), use built-in websearch tool instead.
|
|
|
127
127
|
|
|
128
128
|
Brave Search provides an independent index (not Google/Bing dependent) with less SEO spam and faster responses.
|
|
129
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
|
+
|
|
130
155
|
## Verification Protocol
|
|
131
156
|
|
|
132
157
|
**websearch findings must be verified:**
|
|
@@ -149,7 +174,7 @@ Never present LOW confidence findings as authoritative.
|
|
|
149
174
|
| MEDIUM | websearch verified with official source, multiple credible sources agree | State with attribution |
|
|
150
175
|
| LOW | websearch only, single source, unverified | Flag as needing validation |
|
|
151
176
|
|
|
152
|
-
**Source priority:** Context7 →
|
|
177
|
+
**Source priority:** Context7 → Exa (verified) → Firecrawl (official docs) → Official GitHub → Brave/websearch (verified) → websearch (unverified)
|
|
153
178
|
|
|
154
179
|
</tool_strategy>
|
|
155
180
|
|
package/agents/gsd-roadmapper.md
CHANGED
|
@@ -9,8 +9,6 @@ tools:
|
|
|
9
9
|
glob: true
|
|
10
10
|
grep: true
|
|
11
11
|
color: "#800080"
|
|
12
|
-
skills:
|
|
13
|
-
- gsd-roadmapper-workflow
|
|
14
12
|
# hooks:
|
|
15
13
|
# PostToolUse:
|
|
16
14
|
# - matcher: "write|edit"
|
|
@@ -333,6 +331,35 @@ After roadmap creation, REQUIREMENTS.md gets updated with phase mappings:
|
|
|
333
331
|
|
|
334
332
|
**The `### Phase X:` headers are parsed by downstream tools.** If you only write the summary checklist, phase lookups will fail.
|
|
335
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
|
+
|
|
336
363
|
### 3. Progress Table
|
|
337
364
|
|
|
338
365
|
```markdown
|