pi-gauntlet 6.0.0 → 6.1.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.
Files changed (36) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/README.md +1 -1
  3. package/agents/code-reviewer.md +1 -0
  4. package/agents/conformance-reviewer.md +1 -1
  5. package/bin/gauntlet-performance.test.mjs +4 -4
  6. package/bin/gauntlet-spec-index.mjs +142 -100
  7. package/bin/gauntlet-spec-index.test.mjs +41 -1
  8. package/bin/gauntlet-telemetry-seal.mjs +49 -14
  9. package/bin/gauntlet-telemetry-seal.test.mjs +76 -5
  10. package/extensions/lib/gauntlet-settings.test.ts +13 -3
  11. package/extensions/lib/gauntlet-settings.ts +18 -2
  12. package/extensions/lib/phase-tracker-helpers.test.ts +14 -0
  13. package/extensions/lib/phase-tracker-helpers.ts +5 -4
  14. package/extensions/lib/telemetry-collect.test.ts +6 -0
  15. package/extensions/lib/telemetry-collect.ts +4 -2
  16. package/extensions/lib/telemetry-diff.test.ts +52 -4
  17. package/extensions/lib/telemetry-diff.ts +4 -4
  18. package/extensions/lib/telemetry-paths.test.ts +17 -6
  19. package/extensions/lib/telemetry-paths.ts +7 -2
  20. package/extensions/lib/telemetry-ship.test.ts +9 -6
  21. package/extensions/lib/telemetry-ship.ts +4 -3
  22. package/extensions/phase-tracker.test.ts +24 -0
  23. package/extensions/phase-tracker.ts +10 -6
  24. package/extensions/telemetry.test.ts +32 -7
  25. package/extensions/telemetry.ts +30 -26
  26. package/package.json +1 -1
  27. package/skills/brainstorming/SKILL.md +5 -5
  28. package/skills/dispatching-parallel-agents/SKILL.md +1 -1
  29. package/skills/finishing-a-development-branch/SKILL.md +8 -4
  30. package/skills/gauntlet-resume/reference/reconstruction.md +1 -4
  31. package/skills/requesting-code-review/SKILL.md +4 -2
  32. package/skills/subagent-driven-development/SKILL.md +6 -6
  33. package/skills/subagent-driven-development/code-quality-reviewer-prompt.md +10 -8
  34. package/skills/verification-before-completion/reference/conformance-check.md +2 -0
  35. package/skills/verification-before-completion/reference/whole-diff-minors.md +31 -0
  36. package/skills/writing-plans/SKILL.md +4 -3
@@ -41,16 +41,18 @@ TRAJECTORY: STAGNANT (repeat of: <finding>)
41
41
 
42
42
  Pick the first label that applies, in this order:
43
43
 
44
- 1. STAGNANT: a previous finding survives materially unchanged - name it.
44
+ 1. STAGNANT: a previous Critical or Moderate finding survives materially unchanged - name it.
45
45
  (e.g. the same unchecked error path flagged last round is still unchecked)
46
- 2. DIVERGING: <n_now> >= <n_prev>, or the fix introduced any new finding.
46
+ 2. DIVERGING: <n_now> >= <n_prev>, or the fix introduced a new Critical or Moderate finding.
47
47
  (e.g. 3 findings fixed but the fix broke an import: DIVERGING, not CONVERGING)
48
- 3. CONVERGING: otherwise - the count fell, nothing new appeared, and every
49
- surviving finding was materially improved.
50
-
51
- <n_prev>/<n_now> are finding counts; <X> is the highest remaining severity.
52
- For this line the severity set is exactly Critical/Moderate/Minor, regardless
53
- of the vocabulary used elsewhere in your report.
48
+ 3. CONVERGING: otherwise - the Critical/Moderate count fell, no new Critical or
49
+ Moderate appeared, and every surviving Critical or Moderate was materially improved.
50
+
51
+ <n_prev>/<n_now> count Critical and Moderate findings only; Minors - ride-along
52
+ Minors declined or unchanged, and `(outside fix delta)` downgrades alike - never
53
+ move the `TRAJECTORY:` line. <X> is the highest remaining severity. For this line the severity set is
54
+ exactly Critical/Moderate/Minor, regardless of the vocabulary used elsewhere in
55
+ your report.
54
56
 
55
57
  The orchestrator dispatches one extra fix only when this line says CONVERGING
56
58
  without "max severity Critical" - be accurate, not generous.
@@ -443,6 +443,8 @@ finish gate's revert option needs them all:
443
443
  auto-applied fix commits: <Gn: SHA>, <Gm: SHA>, ... (revertable)
444
444
  ```
445
445
 
446
+ Then the trailing `whole-diff minors:` section - read `whole-diff-minors.md` now (same directory); it is present in every block, a `CONFORMS` handoff too.
447
+
446
448
  ## Concern-scoped fix projection
447
449
 
448
450
  When the finish gate selects `fix-now` on some concerns of a gap, the fix loop
@@ -0,0 +1,31 @@
1
+ # Whole-diff minors section
2
+
3
+ The trailing section of every `## Closure / conformance` block
4
+ (conformance-check.md "Closure / conformance"); the spec contract is D3 of the
5
+ change that introduced it.
6
+
7
+ Then, in every block (a `CONFORMS` handoff too), the whole-diff review's Minor
8
+ findings - the source is the final `SHIP` whole-diff report (SDD "After All
9
+ Tasks Complete" step 2; a `FIX_FIRST` whole-diff review's re-review `SHIP`
10
+ report when one ran):
11
+
12
+ ```text
13
+ whole-diff minors: none
14
+ ```
15
+
16
+ ```text
17
+ whole-diff minors:
18
+ [Minor] F3: [shrink] path.ts:30 - ...
19
+ [Minor] F7: [yagni] other.ts:12 - ...
20
+ ```
21
+
22
+ Use one persona finding line per Minor, verbatim (`Fn` is the selector), or
23
+ `whole-diff minors: not recorded` when no whole-diff review ran in this flow.
24
+ This section is not a concern card: the sentinel `N`, the card count, and the
25
+ freshness rule ignore it. After a `fix minors` round
26
+ (`finishing-a-development-branch` Step 4) the regenerated block carries the
27
+ prior list minus the selected `Fn` lines plus one line
28
+ `whole-diff minors fix: <full SHA>`, so the spent round survives pruning and
29
+ resume. On any other re-audit that regenerates the block without the source
30
+ report, copy the prior block's `whole-diff minors:` section minus lines selected
31
+ by `fix minors`.
@@ -17,13 +17,14 @@ DRY. YAGNI. TDD. Frequent commits.
17
17
 
18
18
  Before drafting the plan, check `phase_tracker({ action: "status" })`. If `plan` is already `in_progress` (a flow restored by `/skill:gauntlet-resume` arrives this way), do **not** call `start` again - a repeat `start` on the in_progress phase resets its guard ledger. Otherwise call `phase_tracker({ action: "start", phase: "plan" })`.
19
19
 
20
- **Input:** an approved spec in `<project>/doc/specs/<filename>.md` — produced by `/skill:brainstorming` in this session, or restored from another session by `/skill:gauntlet-resume`. Those two are the only entry points.
20
+ **Input:** an approved spec in a resolved spec dir from `gauntlet_setting({ key: "flowGuards" })` - produced by `/skill:brainstorming` in this session, or restored from another session by `/skill:gauntlet-resume`. Those two are the only entry points.
21
21
 
22
- **Save plans to:** the sibling `doc/plans/` directory next to the spec. The plan filename matches the spec filename exactly — same date, same ticket ID (if any), same topic slug, no `-design` suffix. The plan path is absolute under the worktree (`<abs worktree path>/doc/plans/<filename>.md`, the path reported by `using-git-worktrees`), and `plan_check({ planPath })` receives that absolute path - the tool roots its checks at the plan's own checkout, not at the session cwd.
22
+ **Save plans to:** the sibling `plans/` directory next to the spec's resolved dir (`doc/specs` -> `doc/plans`, `docs/specs` -> `docs/plans`). The plan filename matches the spec filename exactly - same date, same ticket ID (if any), same topic slug, no `-design` suffix. Use the absolute plan path under the worktree (`<abs worktree path>/<sibling plans dir>/<filename>.md`, using the path reported by `using-git-worktrees`), and `plan_check({ planPath })` receives that absolute path - the tool roots its checks at the plan's own checkout, not at the session cwd.
23
23
 
24
24
  | Spec path | Plan path |
25
25
  |---|---|
26
26
  | `doc/specs/2025-05-26-foo.md` | `doc/plans/2025-05-26-foo.md` |
27
+ | `docs/specs/2025-05-26-foo.md` | `docs/plans/2025-05-26-foo.md` |
27
28
  | `doc/specs/2025-05-26-PROJ-1234-foo.md` | `doc/plans/2025-05-26-PROJ-1234-foo.md` |
28
29
  | `<service>/doc/specs/<name>.md` | `<service>/doc/plans/<name>.md` |
29
30
 
@@ -32,7 +33,7 @@ If no spec exists, send the work back to `/skill:brainstorming`. Do not invent a
32
33
  ## Boundaries
33
34
 
34
35
  - Read code and docs: yes
35
- - Write the plan to the sibling `doc/plans/` of the spec: yes
36
+ - Write the plan to the sibling `plans/` dir of the spec: yes
36
37
  - Edit or create any other files: no
37
38
  - Write implementation code: never inside this skill. After Self-Review + `phase_tracker` complete, auto-invoke `/skill:subagent-driven-development` to execute.
38
39
  - Land the plan on `main`: no — the plan commit goes on the worktree branch (same branch as the spec)