get-shit-done-cc 1.41.0 → 1.41.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/agents/gsd-code-fixer.md +5 -5
- package/agents/gsd-code-reviewer.md +2 -0
- package/agents/gsd-intel-updater.md +11 -3
- package/agents/gsd-planner.md +5 -3
- package/agents/gsd-verifier.md +49 -3
- package/bin/install.js +772 -47
- package/get-shit-done/bin/gsd-tools.cjs +47 -7
- package/get-shit-done/bin/lib/config-schema.cjs +6 -0
- package/get-shit-done/bin/lib/config.cjs +2 -0
- package/get-shit-done/bin/lib/core.cjs +8 -95
- package/get-shit-done/bin/lib/model-catalog.cjs +136 -0
- package/get-shit-done/bin/lib/model-profiles.cjs +12 -180
- package/get-shit-done/bin/lib/phase.cjs +175 -33
- package/get-shit-done/bin/lib/state.cjs +179 -45
- package/get-shit-done/workflows/code-review.md +10 -4
- package/get-shit-done/workflows/execute-phase.md +82 -16
- package/get-shit-done/workflows/execute-plan.md +10 -0
- package/get-shit-done/workflows/forensics.md +12 -0
- package/get-shit-done/workflows/plan-phase.md +10 -8
- package/get-shit-done/workflows/plant-seed.md +144 -87
- package/get-shit-done/workflows/settings-advanced.md +1 -0
- package/get-shit-done/workflows/ship.md +2 -2
- package/get-shit-done/workflows/verify-phase.md +2 -1
- package/package.json +2 -1
- package/scripts/build-hooks.js +18 -23
- package/sdk/dist/model-catalog.d.ts +31 -0
- package/sdk/dist/model-catalog.d.ts.map +1 -0
- package/sdk/dist/model-catalog.js +31 -0
- package/sdk/dist/model-catalog.js.map +1 -0
- package/sdk/dist/phase-runner.d.ts +20 -1
- package/sdk/dist/phase-runner.d.ts.map +1 -1
- package/sdk/dist/phase-runner.js +200 -12
- package/sdk/dist/phase-runner.js.map +1 -1
- package/sdk/dist/plan-parser.d.ts +4 -0
- package/sdk/dist/plan-parser.d.ts.map +1 -1
- package/sdk/dist/plan-parser.js +7 -3
- package/sdk/dist/plan-parser.js.map +1 -1
- package/sdk/dist/query/check-ship-ready.d.ts.map +1 -1
- package/sdk/dist/query/check-ship-ready.js +3 -2
- package/sdk/dist/query/check-ship-ready.js.map +1 -1
- package/sdk/dist/query/config-query.d.ts +1 -12
- package/sdk/dist/query/config-query.d.ts.map +1 -1
- package/sdk/dist/query/config-query.js +47 -46
- package/sdk/dist/query/config-query.js.map +1 -1
- package/sdk/dist/query/config-schema.d.ts.map +1 -1
- package/sdk/dist/query/config-schema.js +8 -0
- package/sdk/dist/query/config-schema.js.map +1 -1
- package/sdk/dist/query/detect-custom-files.d.ts.map +1 -1
- package/sdk/dist/query/detect-custom-files.js +1 -0
- package/sdk/dist/query/detect-custom-files.js.map +1 -1
- package/sdk/dist/query/frontmatter.d.ts +4 -1
- package/sdk/dist/query/frontmatter.d.ts.map +1 -1
- package/sdk/dist/query/frontmatter.js +5 -7
- package/sdk/dist/query/frontmatter.js.map +1 -1
- package/sdk/dist/query/helpers.d.ts +2 -5
- package/sdk/dist/query/helpers.d.ts.map +1 -1
- package/sdk/dist/query/helpers.js +6 -7
- package/sdk/dist/query/helpers.js.map +1 -1
- package/sdk/dist/query/init-complex.js +1 -1
- package/sdk/dist/query/init-complex.js.map +1 -1
- package/sdk/dist/query/phase-lifecycle.d.ts +4 -1
- package/sdk/dist/query/phase-lifecycle.d.ts.map +1 -1
- package/sdk/dist/query/phase-lifecycle.js +115 -54
- package/sdk/dist/query/phase-lifecycle.js.map +1 -1
- package/sdk/dist/query/phase.d.ts.map +1 -1
- package/sdk/dist/query/phase.js +125 -28
- package/sdk/dist/query/phase.js.map +1 -1
- package/sdk/dist/query/query-dispatch.d.ts.map +1 -1
- package/sdk/dist/query/query-dispatch.js +9 -0
- package/sdk/dist/query/query-dispatch.js.map +1 -1
- package/sdk/dist/query/state.d.ts.map +1 -1
- package/sdk/dist/query/state.js +36 -14
- package/sdk/dist/query/state.js.map +1 -1
- package/sdk/dist/session-runner.d.ts.map +1 -1
- package/sdk/dist/session-runner.js +9 -6
- package/sdk/dist/session-runner.js.map +1 -1
- package/sdk/dist/types.d.ts +6 -0
- package/sdk/dist/types.d.ts.map +1 -1
- package/sdk/dist/types.js.map +1 -1
- package/sdk/package-lock.json +2 -2
- package/sdk/package.json +2 -1
- package/sdk/shared/model-catalog.json +122 -0
- package/sdk/src/model-catalog.ts +70 -0
- package/sdk/src/phase-runner.test.ts +430 -11
- package/sdk/src/phase-runner.ts +229 -13
- package/sdk/src/plan-parser.test.ts +51 -0
- package/sdk/src/plan-parser.ts +7 -3
- package/sdk/src/query/check-ship-ready.test.ts +34 -0
- package/sdk/src/query/check-ship-ready.ts +3 -2
- package/sdk/src/query/config-query.test.ts +62 -12
- package/sdk/src/query/config-query.ts +66 -49
- package/sdk/src/query/config-schema.ts +8 -0
- package/sdk/src/query/detect-custom-files.test.ts +115 -0
- package/sdk/src/query/detect-custom-files.ts +1 -0
- package/sdk/src/query/frontmatter.test.ts +48 -3
- package/sdk/src/query/frontmatter.ts +5 -7
- package/sdk/src/query/helpers.test.ts +3 -1
- package/sdk/src/query/helpers.ts +6 -10
- package/sdk/src/query/init-complex.test.ts +28 -0
- package/sdk/src/query/init-complex.ts +1 -1
- package/sdk/src/query/phase-lifecycle.test.ts +200 -0
- package/sdk/src/query/phase-lifecycle.ts +123 -54
- package/sdk/src/query/phase.test.ts +201 -0
- package/sdk/src/query/phase.ts +154 -29
- package/sdk/src/query/query-dispatch.test.ts +210 -1
- package/sdk/src/query/query-dispatch.ts +15 -0
- package/sdk/src/query/state.test.ts +207 -0
- package/sdk/src/query/state.ts +35 -14
- package/sdk/src/session-runner.ts +8 -6
- package/sdk/src/types.ts +6 -0
- package/sdk-bundle/gsd-sdk.tgz +0 -0
package/agents/gsd-code-fixer.md
CHANGED
|
@@ -153,7 +153,7 @@ Each finding starts with:
|
|
|
153
153
|
### {ID}: {Title}
|
|
154
154
|
```
|
|
155
155
|
|
|
156
|
-
Where ID matches: `CR-\d+` (Critical), `WR-\d+` (Warning), or `IN-\d+` (Info)
|
|
156
|
+
Where ID matches: `CR-\d+` or `BL-\d+` (Critical-tier-equivalent), `WR-\d+` (Warning), or `IN-\d+` (Info)
|
|
157
157
|
|
|
158
158
|
**Required Fields:**
|
|
159
159
|
|
|
@@ -387,7 +387,7 @@ Read `./CLAUDE.md` and check for `.claude/skills/` or `.agents/skills/` (as desc
|
|
|
387
387
|
|
|
388
388
|
For each finding, extract:
|
|
389
389
|
- `id`: Finding identifier (e.g., CR-01, WR-03, IN-12)
|
|
390
|
-
- `severity`: Critical (CR-*), Warning (WR-*), Info (IN-*)
|
|
390
|
+
- `severity`: Critical (CR-* or BL-*), Warning (WR-*), Info (IN-*)
|
|
391
391
|
- `title`: Issue title from `### ` heading
|
|
392
392
|
- `file`: Primary file path from **File:** line
|
|
393
393
|
- `files`: ALL file paths referenced in finding (including in Fix section) — for multi-file fixes
|
|
@@ -396,11 +396,11 @@ For each finding, extract:
|
|
|
396
396
|
- `fix`: Full fix content from **Fix:** section (may be multi-line, may contain code fences)
|
|
397
397
|
|
|
398
398
|
**2. Filter by fix_scope:**
|
|
399
|
-
- If `fix_scope == "critical_warning"`: include only CR
|
|
400
|
-
- If `fix_scope == "all"`: include CR-*, WR-*, and IN-* findings
|
|
399
|
+
- If `fix_scope == "critical_warning"`: include only CR-*, BL-*, and WR-* findings
|
|
400
|
+
- If `fix_scope == "all"`: include CR-*, BL-*, WR-*, and IN-* findings
|
|
401
401
|
|
|
402
402
|
**3. Sort findings by severity:**
|
|
403
|
-
- Critical first, then Warning, then Info
|
|
403
|
+
- Critical (CR-* and BL-*) first, then Warning, then Info
|
|
404
404
|
- Within same severity, maintain document order
|
|
405
405
|
|
|
406
406
|
**4. Count findings in scope:**
|
|
@@ -269,6 +269,8 @@ status: clean | issues_found
|
|
|
269
269
|
---
|
|
270
270
|
```
|
|
271
271
|
|
|
272
|
+
**Label equivalence:** The canonical frontmatter key is `critical:`. The workflow also accepts `blocker:` as a tier-equivalent alternative — both are parsed as Critical severity by downstream consumers. Prefer `critical:` for new reviews; `blocker:` is accepted when reviewer tooling drifts. Similarly, finding IDs beginning with `BL-` are treated as Critical-tier-equivalent to `CR-` IDs by the fixer and pipeline; prefer `CR-` as the canonical prefix.
|
|
273
|
+
|
|
272
274
|
The `files_reviewed_list` field is REQUIRED — it preserves the exact file scope for downstream consumers (e.g., --auto re-review in code-review-fix workflow). List every file that was reviewed, one per line in YAML list format.
|
|
273
275
|
|
|
274
276
|
**3. Body structure:**
|
|
@@ -57,12 +57,20 @@ The /gsd-intel command has already confirmed that intel.enabled is true before s
|
|
|
57
57
|
|
|
58
58
|
## Project Scope
|
|
59
59
|
|
|
60
|
-
|
|
60
|
+
<!-- Layout detection: only meaningful when analysing the GSD framework's own repo (#3290). -->
|
|
61
|
+
|
|
62
|
+
**Runtime layout detection (GSD framework repo only):** If `package.json` `"name"` equals `"get-shit-done-cc"`, this project IS the GSD framework. In that case, detect the runtime root to choose canonical paths:
|
|
63
|
+
|
|
61
64
|
```bash
|
|
62
|
-
|
|
65
|
+
# Only run layout detection when analysing the GSD framework repo itself.
|
|
66
|
+
if [[ "$(jq -r '.name // ""' package.json 2>/dev/null)" == "get-shit-done-cc" ]]; then
|
|
67
|
+
ls -d .kilo 2>/dev/null && echo "kilo" || (ls -d .claude/get-shit-done 2>/dev/null && echo "claude") || echo "unknown"
|
|
68
|
+
fi
|
|
63
69
|
```
|
|
64
70
|
|
|
65
|
-
|
|
71
|
+
For all other projects, skip this step and proceed directly to Step 1.
|
|
72
|
+
|
|
73
|
+
Use the detected root (when applicable) to resolve all canonical paths below:
|
|
66
74
|
|
|
67
75
|
| Source type | Standard `.claude` layout | `.kilo` layout |
|
|
68
76
|
|-------------|--------------------------|----------------|
|
package/agents/gsd-planner.md
CHANGED
|
@@ -198,8 +198,10 @@ Every task has four required fields:
|
|
|
198
198
|
- Bad: "the auth files", "relevant components"
|
|
199
199
|
|
|
200
200
|
**<action>:** Specific implementation instructions, including what to avoid and WHY.
|
|
201
|
-
- Good: "Create POST
|
|
201
|
+
- Good: "Create POST /login for {email,password}, bcrypt-validates User, returns 15-min JWT cookie via jose (not jsonwebtoken - Edge CJS issues)."
|
|
202
202
|
- Bad: "Add authentication", "Make login work"
|
|
203
|
+
- NEVER place fenced code blocks (```) inside `<action>`. Action is directive prose, not implementation code.
|
|
204
|
+
- Code excerpts belong in `<read_first>` source files or referenced context. Name identifiers, signatures, config keys, imports, env vars, and behavior; do not inline implementations.
|
|
203
205
|
|
|
204
206
|
**<verify>:** How to prove the task is complete.
|
|
205
207
|
|
|
@@ -213,9 +215,9 @@ Every task has four required fields:
|
|
|
213
215
|
- Bad: "It works", "Looks good", manual-only verification
|
|
214
216
|
- Simple format also accepted: `npm test` passes, `curl -X POST /api/auth/login` returns 200
|
|
215
217
|
|
|
216
|
-
**Nyquist Rule:** Every `<verify>`
|
|
218
|
+
**Nyquist Rule:** Every `<verify>` includes `<automated>`. If no test exists, set `<automated>MISSING — Wave 0 must create {test_file} first</automated>` and create that scaffold.
|
|
217
219
|
|
|
218
|
-
**Grep gate hygiene:** `grep -c` counts comments
|
|
220
|
+
**Grep gate hygiene:** `grep -c` counts comments, so header prose can be self-invalidating. Use `grep -v '^#' | grep -c token`. Bare `== 0` gates on unfiltered files are forbidden.
|
|
219
221
|
|
|
220
222
|
**<done>:** Acceptance criteria - measurable state of completion.
|
|
221
223
|
- Good: "Valid credentials return 200 + JWT cookie, invalid credentials return 401"
|
package/agents/gsd-verifier.md
CHANGED
|
@@ -422,8 +422,10 @@ grep -E "^\- \`" "$PHASE_DIR"/*-SUMMARY.md | sed 's/.*`\([^`]*\)`.*/\1/' | sort
|
|
|
422
422
|
Run anti-pattern detection on each file:
|
|
423
423
|
|
|
424
424
|
```bash
|
|
425
|
-
#
|
|
426
|
-
grep -n -E "
|
|
425
|
+
# Debt-marker comments
|
|
426
|
+
grep -n -E "TBD|FIXME|XXX" "$file" 2>/dev/null
|
|
427
|
+
# Warning-level cleanup comments
|
|
428
|
+
grep -n -E "TODO|HACK|PLACEHOLDER" "$file" 2>/dev/null
|
|
427
429
|
grep -n -E "placeholder|coming soon|will be here|not yet implemented|not available" "$file" -i 2>/dev/null
|
|
428
430
|
# Empty implementations
|
|
429
431
|
grep -n -E "return null|return \{\}|return \[\]|=> \{\}" "$file" 2>/dev/null
|
|
@@ -437,7 +439,9 @@ grep -n -B 2 -A 2 "console\.log" "$file" 2>/dev/null | grep -E "^\s*(const|funct
|
|
|
437
439
|
|
|
438
440
|
**Stub classification:** A grep match is a STUB only when the value flows to rendering or user-visible output AND no other code path populates it with real data. A test helper, type default, or initial state that gets overwritten by a fetch/store is NOT a stub. Check for data-fetching (useEffect, fetch, query, useSWR, useQuery, subscribe) that writes to the same variable before flagging.
|
|
439
441
|
|
|
440
|
-
|
|
442
|
+
**Debt marker gate:** Any `TBD`, `FIXME`, or `XXX` marker in a file modified by this phase is a 🛑 BLOCKER unless the same line references formal follow-up work (`issue #123`, `PR #123`, `#123`, or `DEF-*`). Unreferenced markers mean completion is not auditable; set `status: gaps_found` and list each marker under `gaps`.
|
|
443
|
+
|
|
444
|
+
Categorize: 🛑 Blocker (prevents goal or unresolved debt marker) | ⚠️ Warning (incomplete) | ℹ️ Info (notable)
|
|
441
445
|
|
|
442
446
|
## Step 7b: Behavioral Spot-Checks
|
|
443
447
|
|
|
@@ -485,6 +489,43 @@ npm test -- --grep "$PHASE_TEST_PATTERN" 2>&1 | grep -q "passing"
|
|
|
485
489
|
- Do not modify state (no writes, no mutations, no side effects)
|
|
486
490
|
- If the project has no runnable entry points yet, skip with: "Step 7b: SKIPPED (no runnable entry points)"
|
|
487
491
|
|
|
492
|
+
## Step 7c: Probe Execution
|
|
493
|
+
|
|
494
|
+
SUMMARY.md probe pass claims are not evidence. If a phase declares or implies probe-based verification, the verifier must run the probe in its own process and record the command result.
|
|
495
|
+
|
|
496
|
+
**When to run:** For migration phases, CLI/tooling phases, or any phase whose PLAN/SUMMARY/verification criteria mention probes, PASS markers, stage markers, runnable checks, or `scripts/*/tests/probe-*.sh`.
|
|
497
|
+
|
|
498
|
+
**Probe discovery:**
|
|
499
|
+
|
|
500
|
+
```bash
|
|
501
|
+
# Conventional project probes
|
|
502
|
+
find scripts -path '*/tests/probe-*.sh' -type f 2>/dev/null | sort
|
|
503
|
+
|
|
504
|
+
# Phase-declared probes
|
|
505
|
+
grep -R -n -E 'probe-[^[:space:]]+\.sh|scripts/.*/tests/probe-.*\.sh' "$PHASE_DIR"/*-PLAN.md "$PHASE_DIR"/*-SUMMARY.md 2>/dev/null
|
|
506
|
+
```
|
|
507
|
+
|
|
508
|
+
**Execution contract:**
|
|
509
|
+
|
|
510
|
+
1. Build the `PROBES` list from explicit PLAN declarations first; include conventional `scripts/*/tests/probe-*.sh` when the phase is a migration/tooling phase or the success criteria mention probes.
|
|
511
|
+
2. For every documented probe path, if the file is missing or unreadable, mark `MISSING_PROBE` and set `status: gaps_found`. Do not require the executable bit because probes run through `bash "$probe"`.
|
|
512
|
+
3. Run each probe from the built `PROBES` list (declared + conventional) from the repository root:
|
|
513
|
+
|
|
514
|
+
```bash
|
|
515
|
+
for probe in "${PROBES[@]}"; do
|
|
516
|
+
timeout 30s bash "$probe"
|
|
517
|
+
done
|
|
518
|
+
```
|
|
519
|
+
|
|
520
|
+
4. Exit code 0 is PASS. Any non-zero exit is FAILED and must include stdout/stderr evidence in VERIFICATION.md.
|
|
521
|
+
5. Do not substitute executor narration, SUMMARY.md PASS-marker counts, or a different dry-run driver command for the probe result.
|
|
522
|
+
|
|
523
|
+
**Probe status:**
|
|
524
|
+
|
|
525
|
+
| Probe | Command | Result | Status |
|
|
526
|
+
| ----- | ------- | ------ | ------ |
|
|
527
|
+
| `scripts/.../probe-name.sh` | `bash "$probe"` | exit code/output | PASS / FAILED / MISSING_PROBE |
|
|
528
|
+
|
|
488
529
|
## Step 8: Identify Human Verification Needs
|
|
489
530
|
|
|
490
531
|
**Always needs human:** Visual appearance, user flow completion, real-time behavior, external service integration, performance feel, error message clarity.
|
|
@@ -706,6 +747,11 @@ Only include this section if deferred items exist (from Step 9b).
|
|
|
706
747
|
| Behavior | Command | Result | Status |
|
|
707
748
|
| -------- | ------- | ------ | ------ |
|
|
708
749
|
|
|
750
|
+
### Probe Execution
|
|
751
|
+
|
|
752
|
+
| Probe | Command | Result | Status |
|
|
753
|
+
| ----- | ------- | ------ | ------ |
|
|
754
|
+
|
|
709
755
|
### Requirements Coverage
|
|
710
756
|
|
|
711
757
|
| Requirement | Source Plan | Description | Status | Evidence |
|