plumbbob 0.12.0 → 0.13.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/.claude-plugin/plugin.json +1 -1
- package/README.md +15 -10
- package/dist/cli-core.js +25 -3
- package/dist/lib/git.js +20 -8
- package/dist/lib/notice.js +15 -1
- package/dist/lib/orient.js +266 -19
- package/dist/lib/sidecar.js +149 -3
- package/dist/verbs/abandon.js +19 -14
- package/dist/verbs/build.js +45 -22
- package/dist/verbs/checkpoint.js +34 -25
- package/dist/verbs/doctor.js +23 -4
- package/dist/verbs/finish.js +21 -17
- package/dist/verbs/handoff.js +235 -65
- package/dist/verbs/order.js +110 -0
- package/dist/verbs/park.js +6 -2
- package/dist/verbs/recover.js +31 -1
- package/dist/verbs/relay.js +306 -0
- package/dist/verbs/revert.js +17 -11
- package/dist/verbs/spike.js +50 -38
- package/dist/verbs/start.js +13 -9
- package/dist/verbs/status.js +2 -2
- package/dist/verbs/turn.js +14 -7
- package/dist/verbs/use.js +21 -17
- package/hooks/hooks.json +7 -0
- package/node_modules/checkride/.claude-plugin/plugin.json +1 -1
- package/node_modules/checkride/CHANGELOG.md +117 -0
- package/node_modules/checkride/dist/adapters.d.ts.map +1 -1
- package/node_modules/checkride/dist/adapters.js +14 -10
- package/node_modules/checkride/dist/adapters.js.map +1 -1
- package/node_modules/checkride/dist/baseline/fallow.d.ts +4 -3
- package/node_modules/checkride/dist/baseline/fallow.d.ts.map +1 -1
- package/node_modules/checkride/dist/baseline/fallow.js +15 -8
- package/node_modules/checkride/dist/baseline/fallow.js.map +1 -1
- package/node_modules/checkride/dist/gate.d.ts.map +1 -1
- package/node_modules/checkride/dist/gate.js +62 -44
- package/node_modules/checkride/dist/gate.js.map +1 -1
- package/node_modules/checkride/dist/init.js +3 -3
- package/node_modules/checkride/dist/init.js.map +1 -1
- package/node_modules/checkride/dist/orchestrator.d.ts.map +1 -1
- package/node_modules/checkride/dist/orchestrator.js +53 -8
- package/node_modules/checkride/dist/orchestrator.js.map +1 -1
- package/node_modules/checkride/dist/pack.js +3 -3
- package/node_modules/checkride/dist/security.d.ts +4 -2
- package/node_modules/checkride/dist/security.d.ts.map +1 -1
- package/node_modules/checkride/dist/security.js +42 -8
- package/node_modules/checkride/dist/security.js.map +1 -1
- package/node_modules/checkride/dist/triage/render.js +1 -1
- package/node_modules/checkride/dist/triage/render.js.map +1 -1
- package/node_modules/checkride/package.json +10 -10
- package/node_modules/checkride/skills/check/SKILL.md +4 -3
- package/node_modules/checkride/templates/shared/cspell.json +3 -24
- package/package.json +3 -3
- package/skills/build/SKILL.md +47 -20
- package/skills/harvest/SKILL.md +4 -1
- package/skills/order/SKILL.md +50 -0
- package/skills/park/SKILL.md +7 -0
- package/skills/plan/SKILL.md +4 -1
- package/skills/refine/SKILL.md +6 -2
- package/skills/step/SKILL.md +8 -3
- package/skills/verify/SKILL.md +42 -22
- package/templates/intent.md +9 -0
|
@@ -11,8 +11,10 @@
|
|
|
11
11
|
*
|
|
12
12
|
* "Could not run" (registry unreachable, malformed output) is distinguished
|
|
13
13
|
* from "ran; everything below the level": the former fails with the error
|
|
14
|
-
* surfaced
|
|
15
|
-
*
|
|
14
|
+
* surfaced and `exit_code: -1` — the code the plugin's readers name a harness
|
|
15
|
+
* problem, not a finding — the latter is green. The raw audit JSON is passed
|
|
16
|
+
* through on stdout, so the orchestrator persists `.check/security.json` as
|
|
17
|
+
* before.
|
|
16
18
|
*/
|
|
17
19
|
import { isRecord } from './json.js';
|
|
18
20
|
import { parseToolJson } from './tool-json.js';
|
|
@@ -48,6 +50,42 @@ function severityCounts(value) {
|
|
|
48
50
|
function fail(stdout, stderr) {
|
|
49
51
|
return { ok: false, exit_code: 1, stdout, stderr };
|
|
50
52
|
}
|
|
53
|
+
/**
|
|
54
|
+
* pnpm's own error, when the audit ran but the advisory endpoint did not
|
|
55
|
+
* answer: `{"error":{"code":23,"message":"The operation was aborted due to
|
|
56
|
+
* timeout"}}` on stdout, nothing on stderr. Null for any other payload.
|
|
57
|
+
*/
|
|
58
|
+
function auditErrorMessage(value) {
|
|
59
|
+
if (!isRecord(value))
|
|
60
|
+
return null;
|
|
61
|
+
const error = value['error'];
|
|
62
|
+
if (!isRecord(error))
|
|
63
|
+
return null;
|
|
64
|
+
const message = error['message'];
|
|
65
|
+
return typeof message === 'string' && message.trim() ? message.trim() : null;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* The outcome for an audit that reached no verdict — it did not run to
|
|
69
|
+
* completion (registry down, fetch timeout, bad flag). A failure to verify is
|
|
70
|
+
* never a pass, and it is not a finding either: -1 is the exit code a spawn
|
|
71
|
+
* failure or timeout carries, and the one `triage` and the check skill read
|
|
72
|
+
* as "harness problem", so the reader is sent to the network, not on a hunt
|
|
73
|
+
* for an advisory. The first stderr line is the reason the orchestrator prints
|
|
74
|
+
* under the slot; pnpm's own message rides it when the payload carried one.
|
|
75
|
+
*/
|
|
76
|
+
function noVerdict(command, outcome, json) {
|
|
77
|
+
const message = json ? auditErrorMessage(json.value) : null;
|
|
78
|
+
const headline = message
|
|
79
|
+
? `${command} audit could not complete: ${message}`
|
|
80
|
+
: `${command} audit produced no readable JSON verdict`;
|
|
81
|
+
const detail = message ? '' : outcome.stderr.trim() || outcome.stdout.trim();
|
|
82
|
+
return {
|
|
83
|
+
ok: false,
|
|
84
|
+
exit_code: -1,
|
|
85
|
+
stdout: outcome.stdout,
|
|
86
|
+
stderr: `check-security: ${headline} (exit ${outcome.exit_code})${detail ? `\n${detail.slice(0, 500)}` : ''}\n`,
|
|
87
|
+
};
|
|
88
|
+
}
|
|
51
89
|
/**
|
|
52
90
|
* Run the `security` check against `cwd`. `args` are the resolved adapter args
|
|
53
91
|
* (`audit --audit-level=<l> …`, config overrides included); `--json` is
|
|
@@ -62,12 +100,8 @@ export async function checkSecurity(opts) {
|
|
|
62
100
|
const outcome = await spawn(command, args, cwd, timeoutSec);
|
|
63
101
|
const json = parseToolJson(outcome.stdout);
|
|
64
102
|
const counts = json ? severityCounts(json.value) : null;
|
|
65
|
-
if (!counts)
|
|
66
|
-
|
|
67
|
-
// timeout), which is a failure to verify, never a pass.
|
|
68
|
-
const detail = outcome.stderr.trim() || outcome.stdout.trim();
|
|
69
|
-
return fail(outcome.stdout, `check-security: ${command} audit produced no readable JSON verdict (exit ${outcome.exit_code})${detail ? `\n${detail.slice(0, 500)}` : ''}\n`);
|
|
70
|
-
}
|
|
103
|
+
if (!counts)
|
|
104
|
+
return noVerdict(command, outcome, json);
|
|
71
105
|
const gating = LEVELS.slice(LEVELS.indexOf(level));
|
|
72
106
|
const above = gating.map((s) => [s, counts[s] ?? 0]).filter(([, n]) => n > 0);
|
|
73
107
|
const total = Object.values(counts).reduce((a, b) => a + b, 0);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"security.js","sourceRoot":"","sources":["../src/security.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"security.js","sourceRoot":"","sources":["../src/security.ts"],"names":[],"mappings":"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"}
|
|
@@ -364,7 +364,7 @@ function staleCaveats(stale) {
|
|
|
364
364
|
function spawnFailureCaveats(rows) {
|
|
365
365
|
return rows
|
|
366
366
|
.filter((r) => r.exitCode === -1)
|
|
367
|
-
.map((r) => `\`${r.slot}\` has \`exit_code: -1\` — it failed to spawn or timed out. That is a harness problem, not a finding.`);
|
|
367
|
+
.map((r) => `\`${r.slot}\` has \`exit_code: -1\` — it failed to spawn or timed out, or a built-in ran without reaching a verdict (\`security\` with the advisory endpoint unreachable). That is a harness problem, not a finding.`);
|
|
368
368
|
}
|
|
369
369
|
/**
|
|
370
370
|
* What the summary's own state costs everything below it.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render.js","sourceRoot":"","sources":["../../src/triage/render.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"render.js","sourceRoot":"","sources":["../../src/triage/render.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "checkride",
|
|
3
|
-
"version": "0.12.
|
|
3
|
+
"version": "0.12.5",
|
|
4
4
|
"description": "An agent harness for code repositories: one command that is the definition of done, plus mechanically enforced module boundaries. TypeScript-first, not TypeScript-only.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"author": "Rob McLarty",
|
|
@@ -65,20 +65,20 @@
|
|
|
65
65
|
},
|
|
66
66
|
"devDependencies": {
|
|
67
67
|
"@arethetypeswrong/cli": "0.18.5",
|
|
68
|
-
"@ast-grep/cli": "0.45.
|
|
68
|
+
"@ast-grep/cli": "0.45.3",
|
|
69
69
|
"@stryker-mutator/core": "9.6.1",
|
|
70
70
|
"@stryker-mutator/vitest-runner": "9.6.1",
|
|
71
71
|
"@types/node": "22.20.1",
|
|
72
|
-
"@vitest/coverage-v8": "4.1.
|
|
73
|
-
"@vvago/vale": "3.17.
|
|
72
|
+
"@vitest/coverage-v8": "4.1.11",
|
|
73
|
+
"@vvago/vale": "3.17.1",
|
|
74
74
|
"ajv": "8.20.0",
|
|
75
|
-
"cspell": "10.0
|
|
76
|
-
"fallow": "3.
|
|
75
|
+
"cspell": "10.2.0",
|
|
76
|
+
"fallow": "3.22.0",
|
|
77
77
|
"markdownlint-cli2": "0.23.2",
|
|
78
|
-
"oxlint": "1.
|
|
79
|
-
"oxlint-tsgolint": "0.
|
|
80
|
-
"publint": "0.3.
|
|
78
|
+
"oxlint": "1.81.0",
|
|
79
|
+
"oxlint-tsgolint": "7.0.2001",
|
|
80
|
+
"publint": "0.3.24",
|
|
81
81
|
"typescript": "6.0.3",
|
|
82
|
-
"vitest": "4.1.
|
|
82
|
+
"vitest": "4.1.11"
|
|
83
83
|
}
|
|
84
84
|
}
|
|
@@ -163,9 +163,10 @@ failing slot produces?**
|
|
|
163
163
|
|
|
164
164
|
Two rules that outrank the table:
|
|
165
165
|
|
|
166
|
-
1. **A slot with `exit_code: -1` is not a finding.** It failed to spawn
|
|
167
|
-
out
|
|
168
|
-
|
|
166
|
+
1. **A slot with `exit_code: -1` is not a finding.** It failed to spawn, timed
|
|
167
|
+
out, or ran without reaching a verdict — `security` with the advisory
|
|
168
|
+
endpoint unreachable says so on its `check-security:` line. That is a
|
|
169
|
+
harness problem wearing a failure's clothes, and it comes first.
|
|
169
170
|
2. **The prose lane is independent.** `docs`, `spell` and `links` never share a
|
|
170
171
|
cause with the code lane. `types` red *and* `spell` red is two pieces of work,
|
|
171
172
|
not one — say so rather than folding them together.
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": "0.2",
|
|
3
|
-
"language": "en",
|
|
3
|
+
"language": "en,en-GB",
|
|
4
|
+
"unknownWords": "report-common-typos",
|
|
4
5
|
"files": ["**/src/**/*.ts", "**/test/**/*.ts", "**/*.md"],
|
|
5
6
|
"ignorePaths": [
|
|
6
7
|
"**/node_modules/**",
|
|
@@ -11,27 +12,5 @@
|
|
|
11
12
|
"CHANGELOG.md"
|
|
12
13
|
],
|
|
13
14
|
"ignoreRegExpList": ["/v1[0-9a-f]{16}/g"],
|
|
14
|
-
"words": [
|
|
15
|
-
"checkride",
|
|
16
|
-
"baselined",
|
|
17
|
-
"biome",
|
|
18
|
-
"cspell",
|
|
19
|
-
"devDeps",
|
|
20
|
-
"esbuild",
|
|
21
|
-
"eslint",
|
|
22
|
-
"fallow",
|
|
23
|
-
"knip",
|
|
24
|
-
"markdownlint",
|
|
25
|
-
"NodeNext",
|
|
26
|
-
"noemit",
|
|
27
|
-
"oxlint",
|
|
28
|
-
"oxlintrc",
|
|
29
|
-
"pnpm",
|
|
30
|
-
"sgconfig",
|
|
31
|
-
"stryker",
|
|
32
|
-
"tsbuildinfo",
|
|
33
|
-
"tsconfig",
|
|
34
|
-
"tsgolint",
|
|
35
|
-
"vitest"
|
|
36
|
-
]
|
|
15
|
+
"words": []
|
|
37
16
|
}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "plumbbob",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "Attention-first build process:
|
|
3
|
+
"version": "0.13.0",
|
|
4
|
+
"description": "Attention-first build process: 15 skills + a CLI that keep you the decider — guidance on the work, a latch on the record.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"claude-code",
|
|
7
7
|
"claude",
|
|
@@ -62,7 +62,7 @@
|
|
|
62
62
|
"vitest": "4.1.10"
|
|
63
63
|
},
|
|
64
64
|
"dependencies": {
|
|
65
|
-
"checkride": "0.12.
|
|
65
|
+
"checkride": "0.12.5"
|
|
66
66
|
},
|
|
67
67
|
"bundleDependencies": [
|
|
68
68
|
"checkride"
|
package/skills/build/SKILL.md
CHANGED
|
@@ -24,7 +24,7 @@ the diff appeared. When you do run it, it reads the plan, writes the step, and
|
|
|
24
24
|
carries straight through to the verify pause.
|
|
25
25
|
|
|
26
26
|
Since `/plumbbob:plan` lays down the whole step list up front, the happy path is to run
|
|
27
|
-
`/plumbbob:build` once per step until done: each run builds the next undone step and stops
|
|
27
|
+
`/plumbbob:build` once per step until done: each run builds the next undone step in build order and stops
|
|
28
28
|
at the pause for your approval. **Running `/plumbbob:build` again is itself the clock tick.**
|
|
29
29
|
|
|
30
30
|
A model note: this skill **inherits the session model**; nothing pins or switches
|
|
@@ -38,7 +38,8 @@ switch with `/model` and rerun to honor it, or wave you on. Advisory, never a ga
|
|
|
38
38
|
if you were given a range like `/plumbbob:build 1-3`, start at the first number and treat
|
|
39
39
|
the second as the last step you approve and land yourself (see the range note under
|
|
40
40
|
`--auto`). With no argument, don't resolve the next step yourself; the CLI does: bare `plumbbob build`
|
|
41
|
-
(step 2) enters the next undone step
|
|
41
|
+
(step 2) enters the next undone step in build order (the `## Build order` line when the
|
|
42
|
+
plan has one, else the numbering) and refuses with a `/plumbbob:step` nudge when every
|
|
42
43
|
step is checkpointed.
|
|
43
44
|
2. **Enter the step.** Run `plumbbob build <n>`, or bare `plumbbob build` to enter the
|
|
44
45
|
next undone step (records the in-flight STEP + SEAM so `/plumbbob:status` shows the step in
|
|
@@ -143,6 +144,7 @@ switch with `/model` and rerun to honor it, or wave you on. Advisory, never a ga
|
|
|
143
144
|
paragraph when the step needs explaining>
|
|
144
145
|
|
|
145
146
|
## 1 <the first highlight: one sentence, one move>
|
|
147
|
+
|
|
146
148
|
<the full story: what moved, why, what was tried and dropped>
|
|
147
149
|
|
|
148
150
|
## 2 ...
|
|
@@ -181,25 +183,43 @@ switch with `/model` and rerun to honor it, or wave you on. Advisory, never a ga
|
|
|
181
183
|
|
|
182
184
|
*Paste the turn.* Run `plumbbob handoff` and paste its output whole, verbatim, at top
|
|
183
185
|
level, trailing blank line included, then end the turn. Never nest it inside a fence of
|
|
184
|
-
your own; it carries fences of its own and they cannot nest. It prints the
|
|
185
|
-
its highlights, the Readout fence (its
|
|
186
|
-
rows folded with your three), a `diff`
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
186
|
+
your own; it carries fences of its own and they cannot nest. It prints the Now line
|
|
187
|
+
naming the step in flight, the Summary and its highlights, the Readout fence (its
|
|
188
|
+
measured `check`, `seam`, `diff`, and `spent` rows folded with your three), a `diff`
|
|
189
|
+
fence when the change is 20 lines or fewer, the Verdict folded worst-of from the same
|
|
190
|
+
rows, Next Up, Your Call, and your recommendation last. Run it once: a second run at an
|
|
191
|
+
unchanged pause prints the one-line reminder instead of the card, so if that line comes
|
|
192
|
+
back where the card belongs (you ran handoff earlier in this turn), run
|
|
193
|
+
`plumbbob handoff --full` and paste that. The gate verdict's one home is that `check`
|
|
194
|
+
row: no standalone verdict line exists, and you never restate the verdict in prose. A
|
|
195
|
+
narrowed run names the slots it skipped there (`· without test`), and that named
|
|
196
|
+
narrowing is the whole disclosure. The notice checkride's Stop hook appends after your
|
|
197
|
+
turn is not yours to relay or repeat; the trailing blank line you kept is what lands it
|
|
198
|
+
on its own line. Relayed CLI strings keep their em-dashes; your own lines never use
|
|
199
|
+
one, the write-versus-relay line of
|
|
194
200
|
[D78 (em-dash-ban)](https://github.com/robmclarty/plumbbob/blob/main/docs/decisions.md#d78).
|
|
195
201
|
|
|
196
202
|
*Then read the reply as an ask or a direction.* A message that **asks** ("expand 2",
|
|
197
|
-
"what does that mean?", "why did the seam row flag that?") is an expand: answer it from
|
|
198
|
-
`git diff`, or from the build-log's `## Log` for an older step,
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
+
"what does that mean?", "why did the seam row flag that?") is an expand: answer it from
|
|
204
|
+
the detail file, from `git diff`, or from the build-log's `## Log` for an older step,
|
|
205
|
+
never from recall, then run `plumbbob handoff` and paste its output beneath your answer,
|
|
206
|
+
whole and verbatim. The turn is your answer, then that output, and nothing after it. The
|
|
207
|
+
pause renders its card once
|
|
208
|
+
([D87 (pause-once)](https://github.com/robmclarty/plumbbob/blob/main/docs/decisions.md#d87)):
|
|
209
|
+
while nothing about it has changed, handoff prints one line,
|
|
210
|
+
`**Next Up**: Back to Step <N> of <M> - <title>`, in place of the card the human already
|
|
211
|
+
read, so your answer stays on screen. The CLI picks the form, never you: paste whichever
|
|
212
|
+
one it prints, and never retype the card or reach for `--full` to put it beneath an
|
|
213
|
+
answer.
|
|
214
|
+
|
|
215
|
+
Two moments bring the whole card back, and in both you run `plumbbob handoff --full` and
|
|
216
|
+
paste its output whole, with nothing written around it: the human asks to see the pause
|
|
217
|
+
(`show the pause`, or any wording of it), or the card is not in this conversation (a
|
|
218
|
+
fresh session, or one after `/clear`, that finds the step still at its pause). A
|
|
219
|
+
message that **directs** is needs-work: take it as what to change, and nothing lands
|
|
220
|
+
until the human says `looks good`. Once the change is made, rewrite the detail file and
|
|
221
|
+
end on `plumbbob handoff` as the first render did; the pause has changed, so it prints
|
|
222
|
+
the whole card.
|
|
203
223
|
|
|
204
224
|
**Then hand off with the next model.** `plumbbob checkpoint` prints the whole boundary
|
|
205
225
|
ending itself: `**Checkpoint**: Step N complete (<sha>)`, the Verdict the step earned,
|
|
@@ -268,7 +288,9 @@ and approves in the human's place**, and it **chains**:
|
|
|
268
288
|
human has a call to make about it, so end on the same turn the default pause does:
|
|
269
289
|
write the detail file, run `plumbbob handoff`, and paste its block.
|
|
270
290
|
- **A clean halt lands its step first.** The top of a requested range is reached, or no
|
|
271
|
-
planned steps remain
|
|
291
|
+
planned steps remain, and `plumbbob build` names that step as it enters it (for
|
|
292
|
+
example `step 3 is the last undone step in the plan`). That step checkpoints like
|
|
293
|
+
every step before it, and its
|
|
272
294
|
checkpoint's block is the whole ending: relay it with nothing written around it, then
|
|
273
295
|
end the turn. Write no detail file and run no `handoff`, because nothing is pending.
|
|
274
296
|
The block already carries the Verdict the step earned and a Next Up pointing at what
|
|
@@ -289,7 +311,8 @@ any next step whose plan number is past the top of the range.** It adds no machi
|
|
|
289
311
|
the one more entry already in the halt list above, and it is a clean halt, so the top step
|
|
290
312
|
is never held back for approval. The human approved it by typing the range, and
|
|
291
313
|
`plumbbob build` says so as it enters that step:
|
|
292
|
-
`step 3 is the top of the range you granted
|
|
314
|
+
`step 3 is the top of the range you granted`, or, when the plan ends first,
|
|
315
|
+
`the last undone step in the range you granted`.
|
|
293
316
|
|
|
294
317
|
- **`N-M` with N ≤ M**: build N…M, self-approving and checkpointing each, M included, then
|
|
295
318
|
relay M's checkpoint block and end the turn. `N-N` is a range like any other: it builds
|
|
@@ -305,6 +328,10 @@ is never held back for approval. The human approved it by typing the range, and
|
|
|
305
328
|
- **N is above the next undone step**: you are jumping over earlier planned work; note
|
|
306
329
|
that you are skipping the steps before N, then proceed (the same latitude as a
|
|
307
330
|
single-number jump like `/plumbbob:build 4`).
|
|
331
|
+
- **The build order puts a number past the top ahead of the rest** (the order reads
|
|
332
|
+
`1, 4, 2, 3` under `/plumbbob:build 1-3`): a range names plan numbers, so the halt above
|
|
333
|
+
fires before step 4 and `plumbbob build` names step 1 as the last undone step in the
|
|
334
|
+
range. Build a re-sequenced stretch step by step, or grant `--auto`.
|
|
308
335
|
|
|
309
336
|
## The hard contracts
|
|
310
337
|
|
package/skills/harvest/SKILL.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
name: harvest
|
|
3
3
|
description: "Triage the park list at a step boundary: propose one class (blocker/tangent/pivot) per parked item, write only after the human confirms each, record under ## Harvest, and fold a confirmed blocker into intent."
|
|
4
4
|
disable-model-invocation: true
|
|
5
|
-
allowed-tools: Read, Edit, Bash(plumbbob status:*)
|
|
5
|
+
allowed-tools: Read, Edit, Bash(plumbbob status:*), Bash(plumbbob order:*)
|
|
6
6
|
---
|
|
7
7
|
|
|
8
8
|
# PlumbBob: harvest the park list
|
|
@@ -45,5 +45,8 @@ one line of reasoning, then **wait for the human to confirm or override**. Write
|
|
|
45
45
|
- A confirmed **blocker** also folds its decision into `intent.md`, slugged at birth
|
|
46
46
|
like any Decision, anchored the same way
|
|
47
47
|
(`- <a id="d5"></a>**D5 (retry-cap)**: <the call>, *because* <why>`), never a bare `D5`.
|
|
48
|
+
A blocker that becomes a new step takes the next free number under `## Steps` and,
|
|
49
|
+
when it has to land before an existing undone step, its place in the sequence through
|
|
50
|
+
`plumbbob order 7 8 5` (the `## Build order` line), never by renumbering.
|
|
48
51
|
- Never reclassify or resolve an item the human hasn't confirmed, and default every
|
|
49
52
|
uncertain item to **tangent**, never to blocker.
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: order
|
|
3
|
+
description: "Set the build order: turn the human's sequence (or a relative one, such as 7 and 8 before 5) into the full list of undone steps and write it by shelling `plumbbob order`, never by editing intent.md. A step keeps its number; the sequence moves."
|
|
4
|
+
argument-hint: "[steps in the sequence to build them]"
|
|
5
|
+
disable-model-invocation: true
|
|
6
|
+
model: haiku
|
|
7
|
+
allowed-tools: Bash(plumbbob status:*), Bash(plumbbob order:*)
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# PlumbBob: set the build order (the sequence, not the numbering)
|
|
11
|
+
|
|
12
|
+
Current session state (injected when this skill runs): !`plumbbob status 2>/dev/null || echo "plumbbob CLI not on PATH in this session. Marketplace install: confirm the plugin is enabled in /plugin, then /reload-plugins. Skills-dir/global install: npm i -g plumbbob && plumbbob init."`
|
|
13
|
+
|
|
14
|
+
A step keeps its number for life, so once `/plumbbob:step` or `/plumbbob:refine` appends a step
|
|
15
|
+
that has to land before an existing one, the sequence to build them stops being the
|
|
16
|
+
numbering (`4, 7, 8, 5, 10, 6`). This skill writes that sequence down where every other move
|
|
17
|
+
reads it: the `## Build order` line in `intent.md`, which `plumbbob status`, a bare
|
|
18
|
+
`/plumbbob:build`, `plumbbob checkpoint`, and the card's Next Up all follow.
|
|
19
|
+
|
|
20
|
+
## Wrong-state refusal
|
|
21
|
+
|
|
22
|
+
Ordering needs an **active session** with a plan. Read the dashboard injected above: if it
|
|
23
|
+
is `NO ACTIVE SESSION`, **refuse** and tell the human to run `plumbbob start "<title>"` (or
|
|
24
|
+
`/plumbbob:plan`) first. Any live state is fine, mid-step included: re-sequencing what comes
|
|
25
|
+
after the step in flight is the usual reason to run it.
|
|
26
|
+
|
|
27
|
+
## What this skill does
|
|
28
|
+
|
|
29
|
+
1. **Compose the full sequence.** Read the step list and the `build order` row on the
|
|
30
|
+
dashboard. Take the human's instruction, whether a full list (`7 8 5 10 6`) or a relative
|
|
31
|
+
one ("7 and 8 before 5", "10 last"), and turn it into **every undone step, in the sequence
|
|
32
|
+
to build them**. Never renumber a step and never move one inside `## Steps`; the sequence
|
|
33
|
+
lives in this one line.
|
|
34
|
+
2. **Show the sequence and get the human's OK in-turn.** When the human's own message states
|
|
35
|
+
the full sequence, that message **is** the approval: run the verb directly.
|
|
36
|
+
3. **Write it by shelling `plumbbob order 7 8 5 10 6`** via Bash. `plumbbob order --reset`
|
|
37
|
+
drops the line, and the plan reads in document order again.
|
|
38
|
+
4. **Relay the ending verbatim, then stop.** The verb prints its whole ending: the
|
|
39
|
+
`**Build order**: 7, 8, 5, 10, 6` line, a blank line, and the `**Next Up**` pointer (back
|
|
40
|
+
at the step in flight, or forward to the first step in the new sequence). Run no second
|
|
41
|
+
command. A refusal (a number the plan lacks, a repeat, a step already checkpointed) is the
|
|
42
|
+
CLI's call: report it verbatim, never retry or work around it, and ask the human which
|
|
43
|
+
number they meant.
|
|
44
|
+
|
|
45
|
+
## The one hard contract
|
|
46
|
+
|
|
47
|
+
The line is written by the **dumb CLI**, never by an edit. This skill carries **no Edit and
|
|
48
|
+
no Write tool** on purpose: you may not touch `intent.md` yourself. Compose, get approval,
|
|
49
|
+
then shell `plumbbob order`; that is the only write path, and it is the one that validates
|
|
50
|
+
every number against the plan.
|
package/skills/park/SKILL.md
CHANGED
|
@@ -47,6 +47,13 @@ Then:
|
|
|
47
47
|
the capture plus that one pointer are the whole turn, and both are the CLI's to render,
|
|
48
48
|
never yours to compose from the dashboard. The capture is a one-beat interruption; the
|
|
49
49
|
step keeps its focus.
|
|
50
|
+
4. **A question beside the tangent is answered first.** When the human's message also
|
|
51
|
+
asks something, answer the question, then relay the park's block after the answer,
|
|
52
|
+
and write nothing after it. A message that is only a tangent ends on the block alone.
|
|
53
|
+
Either way the block's pointer back at the step closes the turn, so run no
|
|
54
|
+
`plumbbob handoff` after it. The answer is what the human asked for; dropping it to
|
|
55
|
+
keep the block alone, or stacking a second ending under the block, are the two ways
|
|
56
|
+
this goes wrong.
|
|
50
57
|
|
|
51
58
|
## The one hard contract
|
|
52
59
|
|
package/skills/plan/SKILL.md
CHANGED
|
@@ -85,7 +85,9 @@ an agent can follow with `/plumbbob:build`. The argument only seeds how you get
|
|
|
85
85
|
Every step needs a **done-when** `/plumbbob:verify` can check and a **seam** (the exact
|
|
86
86
|
paths it touches). Later steps may be fuzzier than the first (that's fine); they get
|
|
87
87
|
sharpened just-in-time when you reach them with `/plumbbob:step`. Keep each small enough to
|
|
88
|
-
verify in one review pass.
|
|
88
|
+
verify in one review pass. Number them in the sequence you expect to build them and
|
|
89
|
+
leave `## Build order` alone: it is for later, when a refine appends a step that has to
|
|
90
|
+
land before an existing one (`plumbbob order`).
|
|
89
91
|
|
|
90
92
|
**The title *is* the commit subject; author it as one**
|
|
91
93
|
([D68 (conventional-subjects)](https://github.com/robmclarty/plumbbob/blob/main/docs/decisions.md#d68)): write each
|
|
@@ -205,6 +207,7 @@ left, the findings first and the recommendation last:
|
|
|
205
207
|
# Detail · Plan · <the title>
|
|
206
208
|
|
|
207
209
|
## 1 <the first hole: one sentence, naming where it sits in intent.md>
|
|
210
|
+
|
|
208
211
|
<what it is, and what closing it would take>
|
|
209
212
|
|
|
210
213
|
## 2 ...
|
package/skills/refine/SKILL.md
CHANGED
|
@@ -3,7 +3,7 @@ name: refine
|
|
|
3
3
|
description: "Keep intent.md true: attack the plan for holes (append as Open questions) and refine or repair the Frame, Decisions, Constraints, and Steps to match reality. Usable at any point; you propose, the human approves."
|
|
4
4
|
argument-hint: "[focus]"
|
|
5
5
|
disable-model-invocation: true
|
|
6
|
-
allowed-tools: Read, Edit, Bash(plumbbob status:*)
|
|
6
|
+
allowed-tools: Read, Edit, Bash(plumbbob status:*), Bash(plumbbob order:*)
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
# PlumbBob: refine the plan
|
|
@@ -51,7 +51,11 @@ is fine; refining is always available.
|
|
|
51
51
|
load-bearing detail (file paths, module names) in `seam` and `done-when`,
|
|
52
52
|
**never jammed into the title**; the checkpoint body pass then reconciles and lands
|
|
53
53
|
that subject at the verify pause.
|
|
54
|
-
Show the before/after for each, and **write only what the human approves**.
|
|
54
|
+
Show the before/after for each, and **write only what the human approves**. A repair
|
|
55
|
+
that inserts a step, or moves one ahead of another, keeps every number where it is and
|
|
56
|
+
writes the sequence instead: shell `plumbbob order 7 8 5` with the undone steps in the
|
|
57
|
+
sequence to build them, and the `## Build order` line it writes is what every next-step
|
|
58
|
+
pick follows. Never renumber, and never edit that line by hand.
|
|
55
59
|
|
|
56
60
|
## The hard contracts
|
|
57
61
|
|
package/skills/step/SKILL.md
CHANGED
|
@@ -3,7 +3,7 @@ name: step
|
|
|
3
3
|
description: "Revise the next increment just-in-time: sharpen the next undone step against what's now true, or (with input) re-cut, split, or add a step. Empty input runs an automatic sharpen. One at a time; the human approves."
|
|
4
4
|
argument-hint: "[what-changed]"
|
|
5
5
|
disable-model-invocation: true
|
|
6
|
-
allowed-tools: Read, Edit, Write, Bash(plumbbob status:*), Bash(plumbbob agent list:*)
|
|
6
|
+
allowed-tools: Read, Edit, Write, Bash(plumbbob status:*), Bash(plumbbob order:*), Bash(plumbbob agent list:*)
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
# PlumbBob: revise the next step (the single-increment move)
|
|
@@ -48,7 +48,11 @@ grew, but its everyday job is to sharpen, not to invent.
|
|
|
48
48
|
`**Scope:**` header; drop the scope and it falls back to that default → build slug →
|
|
49
49
|
bare, and the type to `feat` ([D68 (conventional-subjects)](https://github.com/robmclarty/plumbbob/blob/main/docs/decisions.md#d68)). Aim for a soft
|
|
50
50
|
≤72 chars, no gate. Revise the existing step in place; only append when you are
|
|
51
|
-
genuinely adding an increment.
|
|
51
|
+
genuinely adding an increment. An appended step keeps the next free number for life;
|
|
52
|
+
when it has to land before an existing undone step, place it by sequence, never by
|
|
53
|
+
renumbering: shell `plumbbob order 7 8 5` with every undone step in the sequence to
|
|
54
|
+
build them, and the `## Build order` line it writes is what `status`, a bare
|
|
55
|
+
`/plumbbob:build`, and the card's Next Up then follow.
|
|
52
56
|
4. **Revise the step's harness bindings if they drifted too** *(optional)*. If the
|
|
53
57
|
build carries a `harness.json` (beside `intent.md`) and the reality that moved the
|
|
54
58
|
step also changed which agents it wants, sharpen that step's slot bindings
|
|
@@ -63,7 +67,8 @@ grew, but its everyday job is to sharpen, not to invent.
|
|
|
63
67
|
- **One verifiable increment.** Each step carries a done-when `/plumbbob:verify` can check
|
|
64
68
|
and a seam small enough to review in one pass.
|
|
65
69
|
- **Edit `## Steps` only**, in the standard format `status` and `build` parse: never
|
|
66
|
-
the Roadmap, never loose prose. A done step (`[x]`) is history; do not rewrite it.
|
|
70
|
+
the Roadmap, never loose prose. A done step (`[x]`) is history; do not rewrite it. The
|
|
71
|
+
`## Build order` line is `plumbbob order`'s to write, never yours to edit.
|
|
67
72
|
- **Cite the plan's own numbers in the linked form.** A `D`/`C`/`Q` you write into a
|
|
68
73
|
step's done-when, seam, or notes reads `[D4 (default-waves)](#d4)`; the slug travels
|
|
69
74
|
with the number, and the link lands on the `<a id="d4">` anchor minted where the item
|