pi-gauntlet 5.16.0 → 5.16.1
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
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## v5.16.1 - 2026-09-20
|
|
4
|
+
|
|
5
|
+
- gauntlet-handoff follows the shipped pi-cohort 7.1.0 `handoff` skill: a skill cannot expand `/skill:handoff`, so step 2 reads cohort's `skills/handoff/SKILL.md` from the session skill list and follows its procedure; the brief path comes from cohort's `Handoff written:` report line (`Handoff not written:` is a STOP) instead of being recomputed; the minimum is stated as pi-cohort >= 7.1.0 in README and the brief contract. (#40)
|
|
6
|
+
|
|
3
7
|
## v5.16.0 - 2026-09-20
|
|
4
8
|
|
|
5
9
|
- Skills never name a provider or model: `subagent-driven-development` drops its `## Model Selection` tier table for a one-place `## Model` rule (a dispatch's `model:` is omitted, or carries a `gauntlet_setting` value, a user-named model, or the main loop's own string); `doc/configuration.md` gains `### Dispatch model precedence`; `scripts/model-literal-lint.mjs` bans provider/model literals in `skills/`, `agents/`, `extensions/` from `scripts/ci.mjs`. `writing-skills` widens its trigger to personas and prompt templates and adds `## Authoring rules` (imperative voice, low conditionality, minimal diff, oversized-skill extraction); AGENTS core `v6` makes it binding for every skill, persona, and prompt edit. `shape-ticket` and `conformance-check.md` name the main-loop-string provenance explicitly. (#42)
|
package/README.md
CHANGED
|
@@ -79,11 +79,11 @@ pi-gauntlet is **opinionated**: every non-trivial change is *meant* to ride this
|
|
|
79
79
|
|
|
80
80
|
## Handoff and resume
|
|
81
81
|
|
|
82
|
-
`/skill:gauntlet-handoff` and `/skill:gauntlet-resume` are a pair: cohort's `handoff` skill writes the six flow-agnostic headings, gauntlet-handoff appends `## Process state`, and gauntlet-resume reads the whole brief back. Both gauntlet skills read one grammar file, `skills/gauntlet-resume/reference/brief-contract.md`; the repo validator (`scripts/ci.mjs`) fails if a grammar line appears anywhere else under `skills/`. Requires
|
|
82
|
+
`/skill:gauntlet-handoff` and `/skill:gauntlet-resume` are a pair: cohort's `handoff` skill writes the six flow-agnostic headings, gauntlet-handoff appends `## Process state`, and gauntlet-resume reads the whole brief back. Both gauntlet skills read one grammar file, `skills/gauntlet-resume/reference/brief-contract.md`; the repo validator (`scripts/ci.mjs`) fails if a grammar line appears anywhere else under `skills/`. Requires pi-cohort >= 7.1.0 (the `handoff` skill, [pi-cohort #18](https://github.com/jjuraszek/pi-cohort/issues/18)); on an older pi-cohort, gauntlet-handoff stops before writing.
|
|
83
83
|
|
|
84
84
|
### Smoke walkthrough (release-gated)
|
|
85
85
|
|
|
86
|
-
Run by a human against
|
|
86
|
+
Run by a human against pi-cohort >= 7.1.0, before a pi-gauntlet release claims the pair works; record the outcome in the release commit body.
|
|
87
87
|
|
|
88
88
|
1. Implement phase with tasks `complete`/`in_progress`/`pending` in a `.worktrees/<branch>` flow, session in the primary checkout: `/skill:gauntlet-handoff` writes `<tmpdir>/pi-handoff/<branch>.md` with the six core headings then `## Process state` last; a fresh session running `/skill:gauntlet-resume <path>` restores implement with the three statuses and ends `Gate history not restored; re-validating <task> before any stage advance`.
|
|
89
89
|
2. Plan phase, `No plan active.`: the brief keeps that line and `Active task: none`; resume restores phase-only with no `plan_tracker init`.
|
package/package.json
CHANGED
|
@@ -34,7 +34,7 @@ loop: tracker state is extension state no subagent can read.
|
|
|
34
34
|
- `--out` and `--key` both given -> STOP: they are exclusive in cohort's grammar.
|
|
35
35
|
- `--out <path>` -> resolve to an absolute path against the session cwd
|
|
36
36
|
(`node -p "require('path').resolve(process.argv[1])" -- "<path>"`); that is the
|
|
37
|
-
|
|
37
|
+
form passed to cohort.
|
|
38
38
|
- Otherwise the key is `--key <name>` when given, else derived from the **run
|
|
39
39
|
worktree**: the path a flow skill reported as `Worktree ready at <path>` in this
|
|
40
40
|
transcript (the same evidence cohort's snapshot uses):
|
|
@@ -54,19 +54,22 @@ loop: tracker state is extension state no subagent can read.
|
|
|
54
54
|
`--out` (a default-branch key would collide across flows).
|
|
55
55
|
- A derived key has every `/` replaced by `-` (`hotfix/x` -> `hotfix-x`) so the file
|
|
56
56
|
lands flat in the default directory. A human-given `--key` is passed verbatim.
|
|
57
|
-
-
|
|
58
|
-
`node -p "require('os').tmpdir()"
|
|
59
|
-
|
|
60
|
-
2. **
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
57
|
+
- With `--key`, cohort writes `<tmpdir>/pi-handoff/<key>.md`, `<tmpdir>` from
|
|
58
|
+
`node -p "require('os').tmpdir()"`; the authoritative path is the one cohort
|
|
59
|
+
reports in step 2.
|
|
60
|
+
2. **Run cohort's handoff procedure.** A skill cannot expand `/skill:handoff` (pi expands
|
|
61
|
+
skill commands on typed input only). Find `handoff` in the session skill list, `Read`
|
|
62
|
+
its `SKILL.md` at the location listed there, and follow its procedure with the output
|
|
63
|
+
option resolved in step 1 - the brief's core (six headings, ending at `## Skills loaded`)
|
|
64
|
+
is cohort's to write, by cohort's rules. Absent from the skill list -> STOP: "cohort
|
|
65
|
+
`handoff` skill not in the session skill list - install or upgrade to pi-cohort >= 7.1.0".
|
|
66
|
+
No fallback to the `/handoff` prompt.
|
|
67
|
+
3. **Take the path from the report.** Cohort's procedure ends with `Handoff written: <abs
|
|
68
|
+
path>` or `Handoff not written: <reason>`. `Handoff not written` -> STOP with that reason.
|
|
69
|
+
Otherwise that path is the brief; line 1 not starting `# Handoff:` -> STOP with the path.
|
|
67
70
|
4. **Refuse a double section.** The file already has a line matching
|
|
68
71
|
`^## Process state\s*$` -> STOP: "the installed pi-cohort still writes process state
|
|
69
|
-
itself - upgrade to
|
|
72
|
+
itself - upgrade to pi-cohort >= 7.1.0".
|
|
70
73
|
5. **Hotfix exclusion.** `skills/chase-bug/hotfix.md` is in this session's context ->
|
|
71
74
|
append nothing; report a plain hotfix handoff and go to step 7. Checked before the
|
|
72
75
|
trackers: chase-bug never touches tracker state, and a stale armed flow appended here
|
|
@@ -78,7 +81,7 @@ loop: tracker state is extension state no subagent can read.
|
|
|
78
81
|
`reference/brief-contract.md` lays it out: both status outputs verbatim
|
|
79
82
|
(`No plan active.` verbatim when there is no plan), the active-task line naming
|
|
80
83
|
the first `→` task else `none`, the gate-history line. Append with a single
|
|
81
|
-
`cat >> "<
|
|
84
|
+
`cat >> "<brief path>" <<'EOF' ... EOF` whose body is that block.
|
|
82
85
|
- Re-read the file tail and confirm it ends with the gate-history line from the
|
|
83
86
|
contract and nothing after.
|
|
84
87
|
7. **Report.** Print the path and `/skill:gauntlet-resume <path>`. When a section was
|
|
@@ -91,8 +94,9 @@ loop: tracker state is extension state no subagent can read.
|
|
|
91
94
|
|
|
92
95
|
## Red flags - STOP
|
|
93
96
|
|
|
94
|
-
- Writing the brief yourself instead of
|
|
95
|
-
cohort's; this skill appends one section).
|
|
97
|
+
- Writing the brief's core yourself instead of following cohort's `handoff` procedure (the
|
|
98
|
+
six core headings are cohort's; this skill appends one section).
|
|
99
|
+
- Recomputing the brief path instead of taking it from `Handoff written:`.
|
|
96
100
|
- Restating the section layout here instead of reading `reference/brief-contract.md`.
|
|
97
101
|
- Appending when step 4 or step 5 fired.
|
|
98
102
|
- Deriving the key from the primary checkout's branch while a run worktree exists.
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Consumed by `gauntlet-resume/SKILL.md` (consumer) and `gauntlet-handoff/SKILL.md`
|
|
4
4
|
(producer). Grammar lives only here; both skills cite this file and inline none of it
|
|
5
|
-
(`scripts/ci.mjs` drift lint). Coupled to pi-cohort's `handoff` skill (pi-cohort #18)
|
|
5
|
+
(`scripts/ci.mjs` drift lint). Coupled to pi-cohort's `handoff` skill (pi-cohort >= 7.1.0, #18)
|
|
6
6
|
for exactly six headings - `# Handoff:`, `## Intent`, `## Repo state`, `## Decisions`,
|
|
7
7
|
`## Open questions`, `## Skills loaded` - and the `## Repo state` fields. `## Process
|
|
8
8
|
state` grammar and its consumer rules are owned here. Cohort drift is reconciled here
|