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.
- package/CHANGELOG.md +12 -0
- package/README.md +1 -1
- package/agents/code-reviewer.md +1 -0
- package/agents/conformance-reviewer.md +1 -1
- package/bin/gauntlet-performance.test.mjs +4 -4
- package/bin/gauntlet-spec-index.mjs +142 -100
- package/bin/gauntlet-spec-index.test.mjs +41 -1
- package/bin/gauntlet-telemetry-seal.mjs +49 -14
- package/bin/gauntlet-telemetry-seal.test.mjs +76 -5
- package/extensions/lib/gauntlet-settings.test.ts +13 -3
- package/extensions/lib/gauntlet-settings.ts +18 -2
- package/extensions/lib/phase-tracker-helpers.test.ts +14 -0
- package/extensions/lib/phase-tracker-helpers.ts +5 -4
- package/extensions/lib/telemetry-collect.test.ts +6 -0
- package/extensions/lib/telemetry-collect.ts +4 -2
- package/extensions/lib/telemetry-diff.test.ts +52 -4
- package/extensions/lib/telemetry-diff.ts +4 -4
- package/extensions/lib/telemetry-paths.test.ts +17 -6
- package/extensions/lib/telemetry-paths.ts +7 -2
- package/extensions/lib/telemetry-ship.test.ts +9 -6
- package/extensions/lib/telemetry-ship.ts +4 -3
- package/extensions/phase-tracker.test.ts +24 -0
- package/extensions/phase-tracker.ts +10 -6
- package/extensions/telemetry.test.ts +32 -7
- package/extensions/telemetry.ts +30 -26
- package/package.json +1 -1
- package/skills/brainstorming/SKILL.md +5 -5
- package/skills/dispatching-parallel-agents/SKILL.md +1 -1
- package/skills/finishing-a-development-branch/SKILL.md +8 -4
- package/skills/gauntlet-resume/reference/reconstruction.md +1 -4
- package/skills/requesting-code-review/SKILL.md +4 -2
- package/skills/subagent-driven-development/SKILL.md +6 -6
- package/skills/subagent-driven-development/code-quality-reviewer-prompt.md +10 -8
- package/skills/verification-before-completion/reference/conformance-check.md +2 -0
- package/skills/verification-before-completion/reference/whole-diff-minors.md +31 -0
- 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
|
|
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,
|
|
49
|
-
surviving
|
|
50
|
-
|
|
51
|
-
<n_prev>/<n_now>
|
|
52
|
-
|
|
53
|
-
|
|
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
|
|
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 `
|
|
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 `
|
|
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)
|