plumbbob 0.11.3 → 0.12.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.
Files changed (48) hide show
  1. package/.claude-plugin/plugin.json +1 -1
  2. package/README.md +4 -4
  3. package/dist/cli-core.js +11 -0
  4. package/dist/lib/latch.js +1 -1
  5. package/dist/lib/orient.js +233 -18
  6. package/dist/verbs/build.js +51 -12
  7. package/dist/verbs/checkpoint.js +17 -10
  8. package/dist/verbs/handoff.js +64 -13
  9. package/dist/verbs/order.js +102 -0
  10. package/dist/verbs/recover.js +31 -1
  11. package/dist/verbs/turn.js +7 -6
  12. package/node_modules/checkride/.claude-plugin/plugin.json +1 -1
  13. package/node_modules/checkride/CHANGELOG.md +117 -0
  14. package/node_modules/checkride/dist/adapters.d.ts.map +1 -1
  15. package/node_modules/checkride/dist/adapters.js +14 -10
  16. package/node_modules/checkride/dist/adapters.js.map +1 -1
  17. package/node_modules/checkride/dist/baseline/fallow.d.ts +4 -3
  18. package/node_modules/checkride/dist/baseline/fallow.d.ts.map +1 -1
  19. package/node_modules/checkride/dist/baseline/fallow.js +15 -8
  20. package/node_modules/checkride/dist/baseline/fallow.js.map +1 -1
  21. package/node_modules/checkride/dist/gate.d.ts.map +1 -1
  22. package/node_modules/checkride/dist/gate.js +62 -44
  23. package/node_modules/checkride/dist/gate.js.map +1 -1
  24. package/node_modules/checkride/dist/init.js +3 -3
  25. package/node_modules/checkride/dist/init.js.map +1 -1
  26. package/node_modules/checkride/dist/orchestrator.d.ts.map +1 -1
  27. package/node_modules/checkride/dist/orchestrator.js +53 -8
  28. package/node_modules/checkride/dist/orchestrator.js.map +1 -1
  29. package/node_modules/checkride/dist/pack.js +3 -3
  30. package/node_modules/checkride/dist/security.d.ts +4 -2
  31. package/node_modules/checkride/dist/security.d.ts.map +1 -1
  32. package/node_modules/checkride/dist/security.js +42 -8
  33. package/node_modules/checkride/dist/security.js.map +1 -1
  34. package/node_modules/checkride/dist/triage/render.js +1 -1
  35. package/node_modules/checkride/dist/triage/render.js.map +1 -1
  36. package/node_modules/checkride/package.json +10 -10
  37. package/node_modules/checkride/skills/check/SKILL.md +4 -3
  38. package/node_modules/checkride/templates/shared/cspell.json +3 -24
  39. package/package.json +3 -3
  40. package/skills/build/SKILL.md +48 -26
  41. package/skills/finish/SKILL.md +5 -2
  42. package/skills/harvest/SKILL.md +4 -1
  43. package/skills/order/SKILL.md +50 -0
  44. package/skills/plan/SKILL.md +5 -2
  45. package/skills/refine/SKILL.md +6 -2
  46. package/skills/step/SKILL.md +8 -3
  47. package/skills/verify/SKILL.md +14 -8
  48. package/templates/intent.md +9 -0
@@ -34,8 +34,8 @@ import { join, relative } from 'node:path';
34
34
  import { commitsSince, diffNumstat, diffPatch, findRepoRoot } from "../lib/git.js";
35
35
  import { blocks } from "../lib/notice.js";
36
36
  import { isArtifactPath, parseStepSeam } from "../lib/intent.js";
37
- import { checkpointsPath, detailPath, hasSession, inSpike, intentPath, readStats, readTurn, resolveBuild, seamPath, stepPath, tickPath, } from "../lib/sidecar.js";
38
- import { countDiff, diffRowValue, foldVerdict, lastLedgerSha, parseConstraintCount, parseLastCheckpoint, parseRecap, parseRecommendation, parseSections, parseSteps, parseSummary, recapLines, seamRowFromDiff, spentRowValue, summaryCheckRow, } from "../lib/orient.js";
37
+ import { buildLogPath, checkpointsPath, detailPath, hasSession, inSpike, intentPath, readStats, readTurn, resolveBuild, seamPath, stepPath, tickPath, } from "../lib/sidecar.js";
38
+ import { buildOrderPhrase, countDiff, diffRowValue, foldVerdict, lastLedgerSha, parkedPhrase, parseBuildOrder, parseConstraintCount, parseLastCheckpoint, parseOrderedSteps, parseParkTotals, parseRecap, parseRecommendation, parseSections, parseSteps, parseSummary, recapLines, remainingOrder, seamRowFromDiff, spentRowValue, summaryCheckRow, } from "../lib/orient.js";
39
39
  // The inline-diff threshold (docs/presentation.md): at 20 changed lines or
40
40
  // fewer the patch rides the turn; at 21 it stays in the working tree behind
41
41
  // the counted diff row.
@@ -59,8 +59,10 @@ const SEAM_RULE = '\n---';
59
59
  * Requires an active session (the STATE sentinel under `.plumbbob/`). The step
60
60
  * tiers are derived, not passed: a step in flight yields the full
61
61
  * decision-tier ending (the Readout and its fence, the inline diff when small
62
- * enough, the Verdict, Next Up, Your Call, and the Recommendation), a landed
63
- * step yields the orientation-tier ending (Verdict and Next Up, no Your Call),
62
+ * enough, the Verdict, Next Up, Your Call, and the Recommendation), and so does
63
+ * a named step that has not landed when nothing is in flight (a hand-built diff
64
+ * under verify), a landed step yields the orientation-tier ending (Verdict and
65
+ * Next Up, no Your Call),
64
66
  * and a fresh session with nothing to report yields only
65
67
  * the forward pointer. The two endings no session state can distinguish are
66
68
  * named by a flag: `--plan` is the plan pause (a decision turn about the plan,
@@ -79,7 +81,10 @@ export function handoff(cwd, args = []) {
79
81
  return 1;
80
82
  }
81
83
  const intent = readOr(intentPath(root, slug));
82
- const steps = parseSteps(intent);
84
+ // In build order, so the pointer names the step a bare `plumbbob build`
85
+ // would enter; the build-log feeds the park count beneath it.
86
+ const steps = parseOrderedSteps(intent);
87
+ const buildLog = readOr(buildLogPath(root, slug));
83
88
  const inFlight = readMarker(stepPath(root, slug));
84
89
  const detail = readOr(detailPath(root));
85
90
  // Where a pointer sends the reader to read the step itself: the intent file
@@ -90,7 +95,11 @@ export function handoff(cwd, args = []) {
90
95
  // renders; the pointer and the moves both aim at the first undone step. A
91
96
  // decision turn still ends on the model's recommendation when it wrote one.
92
97
  const first = steps.find((s) => !s.done);
93
- const plan = [SEAM_RULE, nextUpLine(first, steps.length, where), planCallBlock(first)];
98
+ const plan = [
99
+ SEAM_RULE,
100
+ nextUpBlock(first, steps.length, where, nextUpNote(intent, buildLog, null)),
101
+ planCallBlock(first),
102
+ ];
94
103
  return emit(withRecommendation(plan, parseRecommendation(detail)));
95
104
  }
96
105
  const explicit = rest.find((a) => /^\d+$/.test(a));
@@ -115,9 +124,15 @@ export function handoff(cwd, args = []) {
115
124
  }
116
125
  if (current === null) {
117
126
  // Nothing measured yet (a fresh session): no Verdict, just the forward pointer.
118
- return emit([nextUpLine(nextUp, steps.length, where)]);
127
+ return emit([nextUpBlock(nextUp, steps.length, where, nextUpNote(intent, buildLog, current))]);
119
128
  }
120
- if (inFlight === null) {
129
+ // A step is pending, and its hand-off is the pause, while it is in flight.
130
+ // With nothing in flight, a step the turn names that has not landed is
131
+ // pending too: a diff built outside `/plumbbob:build` reaches
132
+ // `/plumbbob:verify` with no STEP marker, and the number is how the skill says
133
+ // which pause to render.
134
+ const pending = inFlight !== null || (explicit !== undefined && steps.some((s) => s.n === current && !s.done));
135
+ if (!pending) {
121
136
  // The boundary: the orientation-tier ending, the state word and the forward
122
137
  // pointer, no decision pending and so no Your Call. The same two parts the
123
138
  // checkpoint printed for itself, from the same call.
@@ -150,7 +165,7 @@ export function handoff(cwd, args = []) {
150
165
  if (inline) {
151
166
  parts.push(fence('diff', patch.split('\n')).join('\n'));
152
167
  }
153
- parts.push(verdict, nextUpLine(nextUp, steps.length, where), yourCallBlock(current, checkGreen));
168
+ parts.push(verdict, nextUpBlock(nextUp, steps.length, where, nextUpNote(intent, buildLog, current)), yourCallBlock(current, checkGreen));
154
169
  return emit(withRecommendation(parts, parseRecommendation(detail)));
155
170
  }
156
171
  /**
@@ -165,11 +180,12 @@ export function handoff(cwd, args = []) {
165
180
  */
166
181
  export function boundaryEnding(root, slug, step) {
167
182
  const intent = readOr(intentPath(root, slug));
168
- const steps = parseSteps(intent);
183
+ const steps = parseOrderedSteps(intent);
169
184
  const nextUp = steps.find((s) => !s.done && s.n !== step);
185
+ const note = nextUpNote(intent, readOr(buildLogPath(root, slug)), step);
170
186
  return {
171
187
  verdict: step === null ? null : landedVerdict(root, slug, intent, step),
172
- pointer: nextUpLine(nextUp, steps.length, relative(root, intentPath(root, slug))),
188
+ pointer: nextUpBlock(nextUp, steps.length, relative(root, intentPath(root, slug)), note),
173
189
  };
174
190
  }
175
191
  /**
@@ -255,7 +271,9 @@ function sectionBlocks(sections) {
255
271
  */
256
272
  export function driverPointer(root, slug) {
257
273
  const intent = readOr(intentPath(root, slug));
258
- const steps = parseSteps(intent);
274
+ // The forward fallback follows the build order like every other pick; the
275
+ // driver line itself stays one line, with no note beneath it.
276
+ const steps = parseOrderedSteps(intent);
259
277
  const inFlight = readMarker(stepPath(root, slug));
260
278
  const driver = inSpike(root, slug) ? spikeNextUpLine(inFlight) : driverNextUpLine(steps, inFlight, steps.length);
261
279
  // The forward fallback skips the step just landed as well as the one open, so
@@ -517,6 +535,38 @@ function spikeNextUpLine(inFlight) {
517
535
  const back = inFlight === null ? '' : `, then back to Step ${inFlight}`;
518
536
  return `**Next Up**: Close the spike - /plumbbob:spike done${back}`;
519
537
  }
538
+ // The card's cap on the build-order reminder: the next five steps, the rest a
539
+ // count. The line is a reminder; the dashboard holds the whole sequence.
540
+ const ORDER_CAP = 5;
541
+ /**
542
+ * The line beneath the forward pointer: the build order from the step it
543
+ * names, when `## Build order` re-sequences the plan away from its numbering,
544
+ * and the park count, when anything has been parked; '' when neither says
545
+ * anything, so a plan nobody re-sequenced with an empty park list renders the
546
+ * pointer alone, as before.
547
+ *
548
+ * Indented two spaces, because an indented line continues the part above it
549
+ * to every reader of the anatomy (the advisory's `→` remedy line is the
550
+ * precedent), where a flush one would open a stray. The parks ride even under
551
+ * `Nothing planned`: an unharvested list at the end of the plan is the one
552
+ * reminder that matters there.
553
+ */
554
+ function nextUpNote(intent, buildLog, exclude) {
555
+ const parks = parseParkTotals(buildLog);
556
+ const segments = [
557
+ buildOrderPhrase(remainingOrder(parseSteps(intent), parseBuildOrder(intent), exclude), ORDER_CAP),
558
+ parks.total > 0 ? parkedPhrase(parks) : '',
559
+ ].filter((s) => s.length > 0);
560
+ return segments.length === 0 ? '' : ` · ${segments.join(' · ')}`;
561
+ }
562
+ /**
563
+ * The forward pointer with its note beneath, as one part: `blocks` keeps a
564
+ * part's own newlines, so the note rides flush under the line it qualifies.
565
+ */
566
+ function nextUpBlock(nextUp, total, where, note) {
567
+ const line = nextUpLine(nextUp, total, where);
568
+ return note.length === 0 ? line : `${line}\n${note}`;
569
+ }
520
570
  /**
521
571
  * The forward pointer: the next undone step with the progress count, its
522
572
  * title, and a closing bracket carrying its advisory `- model:` recommendation
@@ -526,7 +576,8 @@ function spikeNextUpLine(inFlight) {
526
576
  * The model is the second bold token the line spends, because it is the one
527
577
  * the human acts on (a `/model` call) before the next run; the path is a bare
528
578
  * `path:line` in a code span, the one link form that opens in a host and still
529
- * reads as a path in a PR diff.
579
+ * reads as a path in a PR diff. The line alone is the driver tier's pointer;
580
+ * every other tier rides `nextUpNote` beneath it, through `nextUpBlock`.
530
581
  */
531
582
  function nextUpLine(nextUp, total, where) {
532
583
  if (nextUp === undefined) {
@@ -0,0 +1,102 @@
1
+ // `plumbbob order <n>…`: write the build order, the sequence to build the
2
+ // remaining steps in, as the one numeric line under `## Build order` in
3
+ // intent.md. A refined plan appends steps whose numbers say nothing about when
4
+ // they land (a step 7 that has to go before step 5), and until this verb the
5
+ // human carried that sequence in their head and typed it into every `build`.
6
+ // The line is what every next-step picker reads (`status`, `build`,
7
+ // `checkpoint`, `handoff`), so the dashboard's `← next`, a bare
8
+ // `plumbbob build`, and the card's Next Up agree. The verb validates what a
9
+ // hand edit cannot: every number names an undone step, none twice. `--reset`
10
+ // drops the line, and the plan reads in document order again. It runs in any
11
+ // state, since re-sequencing what comes after the step in flight is the
12
+ // mid-step use, and the sidecar sits outside every seam.
13
+ import { readFileSync, writeFileSync } from 'node:fs';
14
+ import { findRepoRoot } from "../lib/git.js";
15
+ import { activeBuild, hasSession, intentPath } from "../lib/sidecar.js";
16
+ import { clearBuildOrder, orderSteps, parseSteps, setBuildOrder } from "../lib/orient.js";
17
+ import { ending, notice, transition } from "../lib/notice.js";
18
+ import { driverPointer } from "./handoff.js";
19
+ /**
20
+ * Set the build order to the given step numbers, the rest of the undone steps
21
+ * following in document order, or clear it with `--reset`.
22
+ *
23
+ * The line written is the whole remaining sequence, so a cold reader of
24
+ * intent.md sees every undone step and not only the ones re-sequenced.
25
+ * Refuses (exit 1) with no session, no numbers, a token that is not a number,
26
+ * a number the plan lacks, a repeated number, or a step already checkpointed.
27
+ */
28
+ export function order(cwd, args) {
29
+ const root = findRepoRoot(cwd);
30
+ if (root === null || !hasSession(root)) {
31
+ process.stderr.write(notice({ fact: 'no active session', detail: ['no plan to order'], remedy: 'plumbbob start "<title>"' }));
32
+ return 1;
33
+ }
34
+ const path = intentPath(root);
35
+ const intent = readFileSync(path, 'utf8');
36
+ if (args.includes('--reset')) {
37
+ writeFileSync(path, clearBuildOrder(intent));
38
+ process.stdout.write(ending({
39
+ lead: transition({ label: 'Build order', fact: 'document order' }),
40
+ pointer: driverPointer(root, activeBuild(root)),
41
+ }));
42
+ return 0;
43
+ }
44
+ // Numbers arrive space- or comma-separated: `order 7 8 5` and `order 7,8,5`
45
+ // read the same, since the line they write is the comma form.
46
+ const tokens = args
47
+ .filter((a) => !a.startsWith('--'))
48
+ .flatMap((a) => a.split(','))
49
+ .map((t) => t.trim())
50
+ .filter((t) => t.length > 0);
51
+ if (tokens.length === 0) {
52
+ process.stderr.write(notice({
53
+ fact: 'order needs step numbers',
54
+ detail: ['the undone steps, in the sequence to build them'],
55
+ remedy: 'plumbbob order 7 8 5, or plumbbob order --reset for document order',
56
+ }));
57
+ return 1;
58
+ }
59
+ const stray = tokens.find((t) => !/^\d+$/.test(t));
60
+ if (stray !== undefined) {
61
+ process.stderr.write(notice({ fact: `\`${stray}\` is not a step number`, remedy: 'plumbbob order 7 8 5' }));
62
+ return 1;
63
+ }
64
+ const given = tokens.map(Number);
65
+ const steps = parseSteps(intent);
66
+ const planned = steps.map((s) => s.n);
67
+ const unknown = given.find((n) => !planned.includes(n));
68
+ if (unknown !== undefined) {
69
+ process.stderr.write(notice({
70
+ fact: `no step ${unknown} in the plan`,
71
+ detail: [planned.length === 0 ? 'no steps planned yet' : `planned: ${planned.join(', ')}`],
72
+ remedy: 'fix the number, or /plumbbob:step to add the step first',
73
+ }));
74
+ return 1;
75
+ }
76
+ const repeat = given.find((n, i) => given.indexOf(n) !== i);
77
+ if (repeat !== undefined) {
78
+ process.stderr.write(notice({ fact: `step ${repeat} is listed twice`, remedy: 'list each step once' }));
79
+ return 1;
80
+ }
81
+ const landed = given.find((n) => steps.find((s) => s.n === n)?.done === true);
82
+ if (landed !== undefined) {
83
+ process.stderr.write(notice({
84
+ fact: `step ${landed} is already checkpointed`,
85
+ detail: ['the order sequences what is left'],
86
+ remedy: 'list the undone steps only',
87
+ }));
88
+ return 1;
89
+ }
90
+ const full = orderSteps(steps, given)
91
+ .filter((s) => !s.done)
92
+ .map((s) => s.n);
93
+ writeFileSync(path, setBuildOrder(intent, full));
94
+ // The pointer reads the plan back from disk, so it already follows the
95
+ // order just written: back at the step in flight, or forward from the
96
+ // boundary to the first step in the new sequence.
97
+ process.stdout.write(ending({
98
+ lead: transition({ label: 'Build order', fact: full.join(', ') }),
99
+ pointer: driverPointer(root, activeBuild(root)),
100
+ }));
101
+ return 0;
102
+ }
@@ -18,7 +18,7 @@
18
18
  // deleting them is a gamble the human should take by hand.
19
19
  import { existsSync, readFileSync } from 'node:fs';
20
20
  import { findRepoRoot } from "../lib/git.js";
21
- import { parseSteps } from "../lib/orient.js";
21
+ import { parseBuildOrder, parseSteps } from "../lib/orient.js";
22
22
  import { activeBuild, checkpointsPath, clearHandoff, clearTick, grantPath, handoffPath, hasSession, intentPath, inSpike, listBuilds, readTurn, setActiveBuild, setGrant, stepPath, tickPath, } from "../lib/sidecar.js";
23
23
  import { spikeBranches, spikeWorktrees } from "./spike.js";
24
24
  /**
@@ -93,9 +93,39 @@ function sessionFindings(root) {
93
93
  findings.push({ name: 'cursor', ok: true, detail: `build "${slug}" resolves` });
94
94
  const stepInFlight = existsSync(stepPath(root, slug));
95
95
  findings.push(...phaseFindings(root, slug, stepInFlight));
96
+ findings.push(...orderFindings(root, slug));
96
97
  findings.push(...leftoverFindings(root, slug, stepInFlight));
97
98
  return findings;
98
99
  }
100
+ /**
101
+ * A build order naming a step the plan does not hold.
102
+ *
103
+ * The line under `## Build order` is hand-editable, and a refine can renumber
104
+ * or drop the step it names; every picker just skips the number, so the plan
105
+ * quietly builds in a sequence nobody wrote down. Reported, never repaired:
106
+ * intent.md is a tracked artifact, and the sequence is a judgment call. Silent
107
+ * while the plan declares no order at all.
108
+ */
109
+ function orderFindings(root, slug) {
110
+ const intent = readOr(intentPath(root, slug));
111
+ const order = parseBuildOrder(intent);
112
+ if (order.length === 0) {
113
+ return [];
114
+ }
115
+ const planned = parseSteps(intent).map((s) => s.n);
116
+ const unknown = order.filter((n) => !planned.includes(n));
117
+ if (unknown.length === 0) {
118
+ return [{ name: 'build order', ok: true, detail: `every step it lists is planned (${order.join(', ')})` }];
119
+ }
120
+ return [
121
+ {
122
+ name: 'build order',
123
+ ok: false,
124
+ detail: `the build order names step${unknown.length === 1 ? '' : 's'} ${unknown.join(', ')}, which the plan does not hold (planned: ${planned.join(', ')})`,
125
+ hint: 'rewrite the line with plumbbob order <n>…, or plumbbob order --reset to read the plan in document order',
126
+ },
127
+ ];
128
+ }
99
129
  /**
100
130
  * The cursor names a build that is not there.
101
131
  *
@@ -38,10 +38,10 @@ export function turn(cwd, _args) {
38
38
  *
39
39
  * A step is in flight when a STEP marker (the flat control file recording the
40
40
  * step between `build` and `checkpoint`) is present. Guidance only: it reminds a
41
- * fresh session that a tangent is a park (not an edit) and how the step lands,
42
- * since the build prose may not be in context after compaction or on a
43
- * scripted turn. Exported because an in-process test cannot read the hook's
44
- * real stdout.
41
+ * fresh session that a tangent is a park (not an edit), that the park's own
42
+ * block is the whole turn, and how the step lands, since neither the build nor
43
+ * the park prose may be in context after compaction or on a scripted turn.
44
+ * Exported because an in-process test cannot read the hook's real stdout.
45
45
  */
46
46
  export function stepInFlightContext(cwd) {
47
47
  const root = findSessionRoot(cwd);
@@ -51,8 +51,9 @@ export function stepInFlightContext(cwd) {
51
51
  if (step === null)
52
52
  return null;
53
53
  const text = `plumbbob: step ${step} is in flight — a new idea or tangent is a park, not an edit: ` +
54
- `capture it with \`plumbbob park "<one line>"\`, then stay on the step. ` +
55
- `It lands when you run \`plumbbob checkpoint ${step}\` after approval.`;
54
+ `capture it with \`plumbbob park "<one line>"\` and relay the block it prints whole, ` +
55
+ `with nothing written around it, since that block is the whole turn. ` +
56
+ `The step stays open and lands when you run \`plumbbob checkpoint ${step}\` after approval.`;
56
57
  return `${JSON.stringify({ hookSpecificOutput: { hookEventName: 'UserPromptSubmit', additionalContext: text } })}\n`;
57
58
  }
58
59
  /**
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "checkride",
3
3
  "displayName": "checkride",
4
- "version": "0.12.2",
4
+ "version": "0.12.5",
5
5
  "description": "Bounded, contract-aware readers for what checkride already writes: triage a red gate and read quality signal without loading megabytes of raw artifacts.",
6
6
  "author": { "name": "Rob McLarty", "email": "hello@robmclarty.com", "url": "https://robmclarty.com" },
7
7
  "homepage": "https://robmclarty.github.io/checkride/",
@@ -4,6 +4,121 @@ All notable changes to this project are documented here. The format is based on
4
4
  [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project
5
5
  adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
6
6
 
7
+ ## [0.12.5] - 2026-09-04
8
+
9
+ ### Changed
10
+
11
+ - **The `spell` slot reports common typos, not unknown words.** The cspell
12
+ config `checkride init` scaffolds — and this repo's own — now sets
13
+ `"unknownWords": "report-common-typos"`, so a red `spell` means a word from
14
+ cspell's common-misspellings list (`recieve`, `seperate`, `occured`), never a
15
+ tool name or a domain term the dictionary has not met. The scaffolded `words`
16
+ allowlist starts empty, and this repo's 87-entry list — one that 37 of its
17
+ 247 commits had to touch — is gone. The trade is recall on a novel
18
+ misspelling of a real word, which is the recall the noise was already
19
+ costing. `language` widens to `en,en-GB`, so Canadian and British spellings
20
+ (`colour`, `behaviour`) pass without a second dictionary. Existing adopters
21
+ opt in by adding the two settings to their `cspell.json`; `cspell --report
22
+ typos --words-only --unique .` previews what a repo would still flag.
23
+
24
+ ### Fixed
25
+
26
+ - **A `security` run against an unreachable advisory endpoint no longer sits
27
+ for four minutes and then says nothing.** The adapter passes
28
+ `--fetch-retries=1 --fetch-timeout=15000`, so pnpm gives up in about 40s
29
+ instead of its default ~250s. The failure is reported as `exit_code: -1` —
30
+ could not verify, the code the plugin's readers already name a harness
31
+ problem rather than a finding — with pnpm's own message printed under the
32
+ slot's status line. Any `exit_code: -1` slot now prints its reason there: a
33
+ built-in's `check-<slot>:` line, or the `timed out after Ns` note.
34
+ - A slot's stderr is persisted as `.check/<slot>.stderr.txt` even when its
35
+ stdout won as a JSON artifact. The security evaluator's explanation used to
36
+ be dropped on that path, leaving `.check/security.json` as the only trace.
37
+ - Re-resolved `fast-uri` to 3.1.7 (four high advisories: GHSA-5jgf-p345-68v8,
38
+ GHSA-f65p-4m7j-42xc, GHSA-fph4-wmhf-6fwf, GHSA-jqff-g426-hqxp) and `qs` to
39
+ 6.16.0 (GHSA-4mjr-xmp4-gh2g, GHSA-x5fp-wj9c-mxmx). Both dev-only and
40
+ transitive. `fast-uri` needed no override entry — ajv's own `^3.0.1` reaches
41
+ the patched line — while the `qs` entry was re-scoped from `>=6.11.1
42
+ <6.15.2` to `>=2.2.5 <6.16.0`, since the newer advisories left 6.15.3 exposed
43
+ inside the old range's blind spot. Removing that entry drops `qs` to 6.15.1
44
+ and three moderates return, so it stays.
45
+
46
+ ### Internal
47
+
48
+ - Dev-dependency patch bumps, mirrored into the adapter `devDeps` that
49
+ `checkride init` scaffolds and `doctor` recommends: `@vvago/vale` 3.17.1,
50
+ `@ast-grep/cli` 0.45.3, `publint` 0.3.24, and the `vitest` /
51
+ `@vitest/coverage-v8` pair 4.1.11 (their peer range pins them to the same
52
+ version). The vale repin closes the one left open when `minimumReleaseAge`
53
+ blocked 3.17.1 during the prose-slot build.
54
+ - `fallow` 3.9.1 -> 3.22.0. Its report schema moved (11 for health, 9 for
55
+ dead-code and dupes, from 7), which the parser accepts by design — the floor
56
+ is a minimum, not an exact match. Re-verified that every field the fallow
57
+ parsers read survives the jump, including against a health report carrying a
58
+ real finding, since a silent shape drift would read as zero findings and
59
+ pass. No new findings on this repo; thresholds are unchanged.
60
+ - `oxlint` 1.81.0 with `oxlint-tsgolint` 7.0.2001 — one bump, not two: oxlint
61
+ 1.81 declares the tsgolint peer as `>=7.0.2001`, and tsgolint renumbered from
62
+ 0.25.0 to track TypeScript 7. It brought two new rules. `no-irregular-
63
+ whitespace` caught a zero-width space in a `src/pack.ts` doc comment, wedged
64
+ there to stop a glob's `*/` closing the comment — reworded so no invisible
65
+ character is load-bearing. `no-await-in-loop` is off for `**/*.test.ts`:
66
+ those suites mutate one shared directory and awaiting in the loop is the
67
+ correctness constraint, not an oversight.
68
+ - `cspell` 10.2.0. Its word splitter changed (camelCase, symbols, numbers,
69
+ soft hyphens, opt-in Intl segmentation), so the `report-common-typos` mode
70
+ adopted a version earlier was re-verified rather than assumed: same five
71
+ typos flagged, jargon and Canadian spellings still clean, `cspell:ignore`
72
+ still honoured, and the mode still filters (10 words under `report-all`
73
+ against 5 under `report-common-typos`). 10.2.1 exists but sits inside the
74
+ 48-hour `minimumReleaseAge` cooldown.
75
+ - The `/version` release gate widened from `--only docs,links,spell,test` to
76
+ the full `pnpm check`. Repo-local skill, not shipped.
77
+
78
+ ## [0.12.4] - 2026-09-02
79
+
80
+ ### Added
81
+
82
+ - **A narrowed run's summary now states its own narrowing.** Slots deselected
83
+ by `--only`/`--skip` ride `.check/summary.json` as skipped rows naming the
84
+ flag (`not in --only`, `skipped by --skip`), so a consumer reading the
85
+ artifact after a gate profile or an iteration loop can tell the subset from
86
+ the whole. Opt-in slots that simply sat out are not narrowing and stay
87
+ absent, as before. The human summary reports the same narrowed set.
88
+
89
+ ### Changed
90
+
91
+ - **The gate verdict reads as one sentence.** The glyph now trails the clause
92
+ it confirms and every detail rides a single parenthetical — `checkride green
93
+ in 4.1s ✔ (10 checks, without test, slowest: spell in 1.8s)` — in place of
94
+ the old leading-glyph, dash-chained form. A gate profile names its narrowing
95
+ directly (`only types, lint`, `without test`, `affected-only`) rather than
96
+ the `gate profile: … — NOT the full check` boilerplate, so a narrowed green
97
+ still cannot read as a full green. This moves a frozen surface: anything
98
+ matching the old verdict string verbatim needs updating, and
99
+ `docs/contract.md` and its contract test move with it. The `AGENTS.md`
100
+ stanza that `checkride init` writes describes the new wording.
101
+
102
+ ### Fixed
103
+
104
+ - The gate's user-visible verdict no longer lands glued to the turn's last
105
+ sentence. The harness prints a hook's `systemMessage` immediately after the
106
+ previous text, so the verdict now carries its own two-newline lead. Only the
107
+ user-facing channel is padded; the agent-facing `reason` and the stderr line
108
+ are untouched.
109
+ - Re-resolved `browserslist` to 4.28.8 for GHSA-c83g-rgw3-j3cx and
110
+ GHSA-73wf-gq98-2v4g (high severity; dev-only, via `@stryker-mutator/core` →
111
+ `@babel/core` → `@babel/helper-compilation-targets`). No override entry —
112
+ `helper-compilation-targets` already declares `^4.24.0`, so a plain
113
+ re-resolve takes the patched line.
114
+
115
+ ### Internal
116
+
117
+ - `gateDetail` splits back into `greenDetail` and `redDetail` behind a thin
118
+ dispatcher, clearing fallow's health threshold after the earlier
119
+ consolidation pushed it to cyclomatic 10. Pure extraction — the verdict
120
+ strings are byte-identical.
121
+
7
122
  ## [0.12.2] - 2026-08-12
8
123
 
9
124
  ### Added
@@ -1847,6 +1962,8 @@ The first real release. (`0.0.0` was a name-claim placeholder.)
1847
1962
  - Flags: `--only`, `--skip`, `--bail`, `--json`, `--changed`, `--all`,
1848
1963
  `--include`.
1849
1964
 
1965
+ [0.12.5]: https://www.npmjs.com/package/checkride/v/0.12.5
1966
+ [0.12.4]: https://www.npmjs.com/package/checkride/v/0.12.4
1850
1967
  [0.12.2]: https://www.npmjs.com/package/checkride/v/0.12.2
1851
1968
  [0.12.1]: https://www.npmjs.com/package/checkride/v/0.12.1
1852
1969
  [0.12.0]: https://www.npmjs.com/package/checkride/v/0.12.0
@@ -1 +1 @@
1
- {"version":3,"file":"adapters.d.ts","sourceRoot":"","sources":["../src/adapters.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,4EAA4E;AAC5E,eAAO,MAAM,cAAc,IAAI,CAAC;AAEhC;;;;;;;;GAQG;AACH,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,KAAK,CAAC;AACzE,MAAM,MAAM,KAAK,GAAG,MAAM,GAAG,WAAW,CAAC;AAEzC,8BAA8B;AAC9B,MAAM,MAAM,IAAI,GAAG;IACjB,wFAAwF;IACxF,IAAI,EAAE,MAAM,CAAC;IACb;;;;OAIG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;;OAGG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC;CACf,CAAC;AAEF,4CAA4C;AAC5C,MAAM,MAAM,OAAO,GAAG;IACpB,iFAAiF;IACjF,IAAI,EAAE,MAAM,CAAC;IACb,yDAAyD;IACzD,IAAI,EAAE,MAAM,CAAC;IACb,wCAAwC;IACxC,WAAW,EAAE,MAAM,CAAC;IACpB,mFAAmF;IACnF,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,0EAA0E;IAC1E,OAAO,EAAE,MAAM,CAAC;IAChB,+DAA+D;IAC/D,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,qFAAqF;IACrF,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,4CAA4C;IAC5C,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,+BAA+B;IAC/B,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,oIAAoI;IACpI,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gGAAgG;IAChG,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;;OAMG;IACH,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB;;;;OAIG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,uDAAuD;IACvD,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,KAAK,EAAE,SAAS,IAAI,EAqBhC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,QAAQ,EAAE,SAAS,OAAO,EAgYtC,CAAC"}
1
+ {"version":3,"file":"adapters.d.ts","sourceRoot":"","sources":["../src/adapters.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,4EAA4E;AAC5E,eAAO,MAAM,cAAc,IAAI,CAAC;AAEhC;;;;;;;;GAQG;AACH,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,KAAK,CAAC;AACzE,MAAM,MAAM,KAAK,GAAG,MAAM,GAAG,WAAW,CAAC;AAEzC,8BAA8B;AAC9B,MAAM,MAAM,IAAI,GAAG;IACjB,wFAAwF;IACxF,IAAI,EAAE,MAAM,CAAC;IACb;;;;OAIG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;;OAGG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC;CACf,CAAC;AAEF,4CAA4C;AAC5C,MAAM,MAAM,OAAO,GAAG;IACpB,iFAAiF;IACjF,IAAI,EAAE,MAAM,CAAC;IACb,yDAAyD;IACzD,IAAI,EAAE,MAAM,CAAC;IACb,wCAAwC;IACxC,WAAW,EAAE,MAAM,CAAC;IACpB,mFAAmF;IACnF,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,0EAA0E;IAC1E,OAAO,EAAE,MAAM,CAAC;IAChB,+DAA+D;IAC/D,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,qFAAqF;IACrF,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,4CAA4C;IAC5C,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,+BAA+B;IAC/B,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,oIAAoI;IACpI,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gGAAgG;IAChG,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;;OAMG;IACH,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB;;;;OAIG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,uDAAuD;IACvD,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,KAAK,EAAE,SAAS,IAAI,EAqBhC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,QAAQ,EAAE,SAAS,OAAO,EAoYtC,CAAC"}
@@ -104,7 +104,7 @@ export const ADAPTERS = [
104
104
  args: ['exec', 'oxlint', '--type-aware', '--format=json'],
105
105
  outputFile: 'lint.json',
106
106
  fixArgs: ['exec', 'oxlint', '--type-aware', '--fix'],
107
- devDeps: { oxlint: '1.74.0', 'oxlint-tsgolint': '0.25.0' },
107
+ devDeps: { oxlint: '1.81.0', 'oxlint-tsgolint': '7.0.2001' },
108
108
  },
109
109
  {
110
110
  name: 'biome',
@@ -148,7 +148,7 @@ export const ADAPTERS = [
148
148
  command: 'pnpm',
149
149
  args: ['exec', 'ast-grep', 'scan', '--json=compact'],
150
150
  outputFile: 'struct.json',
151
- devDeps: { '@ast-grep/cli': '0.45.0' },
151
+ devDeps: { '@ast-grep/cli': '0.45.3' },
152
152
  },
153
153
  {
154
154
  name: 'fallow',
@@ -163,7 +163,7 @@ export const ADAPTERS = [
163
163
  outputFile: 'dead.json',
164
164
  gate: 'fallow',
165
165
  fixArgs: ['exec', 'fallow', 'fix'],
166
- devDeps: { fallow: '3.9.1' },
166
+ devDeps: { fallow: '3.22.0' },
167
167
  },
168
168
  {
169
169
  name: 'knip',
@@ -189,7 +189,7 @@ export const ADAPTERS = [
189
189
  args: ['exec', 'fallow', 'dupes', '--format', 'json', '--quiet'],
190
190
  outputFile: 'dupes.json',
191
191
  gate: 'fallow',
192
- devDeps: { fallow: '3.9.1' },
192
+ devDeps: { fallow: '3.22.0' },
193
193
  },
194
194
  {
195
195
  name: 'fallow',
@@ -200,7 +200,7 @@ export const ADAPTERS = [
200
200
  args: ['exec', 'fallow', 'health', '--format', 'json', '--quiet'],
201
201
  outputFile: 'health.json',
202
202
  gate: 'fallow',
203
- devDeps: { fallow: '3.9.1' },
203
+ devDeps: { fallow: '3.22.0' },
204
204
  },
205
205
  {
206
206
  name: 'vitest',
@@ -218,7 +218,7 @@ export const ADAPTERS = [
218
218
  ],
219
219
  outputFile: null,
220
220
  changedArgs: ['--changed', 'origin/main'],
221
- devDeps: { vitest: '4.1.10', '@vitest/coverage-v8': '4.1.10' },
221
+ devDeps: { vitest: '4.1.11', '@vitest/coverage-v8': '4.1.11' },
222
222
  },
223
223
  {
224
224
  name: 'jest',
@@ -281,7 +281,7 @@ export const ADAPTERS = [
281
281
  command: 'pnpm',
282
282
  args: ['exec', 'cspell', '--no-progress', '--no-summary', '--reporter=default'],
283
283
  outputFile: null,
284
- devDeps: { cspell: '10.0.1' },
284
+ devDeps: { cspell: '10.2.0' },
285
285
  },
286
286
  {
287
287
  name: 'vale',
@@ -300,7 +300,7 @@ export const ADAPTERS = [
300
300
  // `args` with explicit paths — the same way this one already does for lint.
301
301
  args: ['exec', 'vale', '--no-global', '--output=JSON', '.'],
302
302
  outputFile: 'prose.json',
303
- devDeps: { '@vvago/vale': '3.17.0' },
303
+ devDeps: { '@vvago/vale': '3.17.1' },
304
304
  },
305
305
  {
306
306
  name: 'stryker',
@@ -329,7 +329,11 @@ export const ADAPTERS = [
329
329
  // they are the audit invocation, and `--audit-level=<l>` doubles as the
330
330
  // gate threshold it enforces itself — pnpm's JSON-mode exit code ignores
331
331
  // the level, so trusting it gated at zero advisories of any severity.
332
- args: ['audit', '--audit-level=high', '--json'],
332
+ // The fetch flags bound the wait when npm's advisory endpoint is down:
333
+ // pnpm's defaults (2 retries, 60s timeout, 10–60s backoff) sit ~250s
334
+ // before reporting; one retry at 15s measures ~40s. pnpm-only flags are
335
+ // safe here — the slot is unavailable under any other manager.
336
+ args: ['audit', '--audit-level=high', '--json', '--fetch-retries=1', '--fetch-timeout=15000'],
333
337
  outputFile: 'security.json',
334
338
  builtin: 'security',
335
339
  devDeps: {},
@@ -359,7 +363,7 @@ export const ADAPTERS = [
359
363
  command: 'pnpm',
360
364
  args: ['exec', 'publint'],
361
365
  outputFile: null,
362
- devDeps: { publint: '0.3.22' },
366
+ devDeps: { publint: '0.3.24' },
363
367
  },
364
368
  {
365
369
  name: 'attw',
@@ -1 +1 @@
1
- {"version":3,"file":"adapters.js","sourceRoot":"","sources":["../src/adapters.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"adapters.js","sourceRoot":"","sources":["../src/adapters.ts"],"names":[],"mappings":"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"}
@@ -16,9 +16,10 @@
16
16
  * uniformly — and an *unrecognized* schema fails loudly rather than passing
17
17
  * silently (the count can't be trusted, so the slot can't be green).
18
18
  *
19
- * The JSON is fallow's `schema_version: 7` shape (fallow >= 3.5; fallow 2.x was
20
- * schema 4 with a different layout and is no longer supported). Each analysis
21
- * kind has its own layout, so parsing dispatches on the top-level `kind`.
19
+ * The JSON is fallow's `schema_version` >= 7 shape (fallow >= 3.5; fallow 2.x
20
+ * was schema 4 with a different layout and is no longer supported). Each
21
+ * analysis kind has its own layout, so parsing dispatches on the top-level
22
+ * `kind`.
22
23
  */
23
24
  import type { Fingerprint } from './fingerprint.js';
24
25
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"fallow.d.ts","sourceRoot":"","sources":["../../src/baseline/fallow.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAgTpD;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CAGvD;AAED,gFAAgF;AAChF,MAAM,MAAM,aAAa,GAAG;IAC1B,2CAA2C;IAC3C,EAAE,EAAE,OAAO,CAAC;IACZ,2EAA2E;IAC3E,SAAS,EAAE,MAAM,CAAC;IAClB,2DAA2D;IAC3D,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,gEAAgE;IAChE,QAAQ,EAAE,WAAW,CAAC;IACtB;;;;OAIG;IACH,QAAQ,EAAE,OAAO,CAAC;IAClB,4EAA4E;IAC5E,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB,CAAC;AAEF;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,GAAG,aAAa,CA0BhG"}
1
+ {"version":3,"file":"fallow.d.ts","sourceRoot":"","sources":["../../src/baseline/fallow.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAsTpD;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CAGvD;AAED,gFAAgF;AAChF,MAAM,MAAM,aAAa,GAAG;IAC1B,2CAA2C;IAC3C,EAAE,EAAE,OAAO,CAAC;IACZ,2EAA2E;IAC3E,SAAS,EAAE,MAAM,CAAC;IAClB,2DAA2D;IAC3D,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,gEAAgE;IAChE,QAAQ,EAAE,WAAW,CAAC;IACtB;;;;OAIG;IACH,QAAQ,EAAE,OAAO,CAAC;IAClB,4EAA4E;IAC5E,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB,CAAC;AAEF;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,GAAG,aAAa,CA0BhG"}