plumbbob 0.12.1 → 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 +12 -7
- package/dist/cli-core.js +14 -3
- package/dist/lib/git.js +20 -8
- package/dist/lib/notice.js +15 -1
- package/dist/lib/orient.js +43 -1
- package/dist/lib/sidecar.js +149 -3
- package/dist/verbs/abandon.js +19 -14
- package/dist/verbs/checkpoint.js +30 -21
- package/dist/verbs/doctor.js +23 -4
- package/dist/verbs/finish.js +21 -17
- package/dist/verbs/handoff.js +177 -58
- package/dist/verbs/order.js +17 -9
- package/dist/verbs/park.js +6 -2
- 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 +9 -3
- package/dist/verbs/use.js +21 -17
- package/hooks/hooks.json +7 -0
- package/package.json +1 -1
- package/skills/build/SKILL.md +35 -16
- package/skills/park/SKILL.md +7 -0
- package/skills/plan/SKILL.md +1 -0
- package/skills/verify/SKILL.md +34 -17
package/skills/build/SKILL.md
CHANGED
|
@@ -144,6 +144,7 @@ switch with `/model` and rerun to honor it, or wave you on. Advisory, never a ga
|
|
|
144
144
|
paragraph when the step needs explaining>
|
|
145
145
|
|
|
146
146
|
## 1 <the first highlight: one sentence, one move>
|
|
147
|
+
|
|
147
148
|
<the full story: what moved, why, what was tried and dropped>
|
|
148
149
|
|
|
149
150
|
## 2 ...
|
|
@@ -182,25 +183,43 @@ switch with `/model` and rerun to honor it, or wave you on. Advisory, never a ga
|
|
|
182
183
|
|
|
183
184
|
*Paste the turn.* Run `plumbbob handoff` and paste its output whole, verbatim, at top
|
|
184
185
|
level, trailing blank line included, then end the turn. Never nest it inside a fence of
|
|
185
|
-
your own; it carries fences of its own and they cannot nest. It prints the
|
|
186
|
-
its highlights, the Readout fence (its
|
|
187
|
-
rows folded with your three), a `diff`
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
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
|
|
195
200
|
[D78 (em-dash-ban)](https://github.com/robmclarty/plumbbob/blob/main/docs/decisions.md#d78).
|
|
196
201
|
|
|
197
202
|
*Then read the reply as an ask or a direction.* A message that **asks** ("expand 2",
|
|
198
|
-
"what does that mean?", "why did the seam row flag that?") is an expand: answer it from
|
|
199
|
-
`git diff`, or from the build-log's `## Log` for an older step,
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
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.
|
|
204
223
|
|
|
205
224
|
**Then hand off with the next model.** `plumbbob checkpoint` prints the whole boundary
|
|
206
225
|
ending itself: `**Checkpoint**: Step N complete (<sha>)`, the Verdict the step earned,
|
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
package/skills/verify/SKILL.md
CHANGED
|
@@ -76,6 +76,7 @@ this skill verifies it the same way: **it reads the diff, not the author**
|
|
|
76
76
|
short paragraph when the step needs explaining>
|
|
77
77
|
|
|
78
78
|
## 1 <the first highlight: one sentence, one move>
|
|
79
|
+
|
|
79
80
|
<the full story: what moved, why, what was tried and dropped>
|
|
80
81
|
|
|
81
82
|
## 2 ...
|
|
@@ -118,26 +119,42 @@ this skill verifies it the same way: **it reads the diff, not the author**
|
|
|
118
119
|
turn. The number is what lets a diff built outside `/plumbbob:build` reach its pause:
|
|
119
120
|
nothing is in flight for that diff, and a bare `handoff` would read the moment as a
|
|
120
121
|
boundary and render no Your Call block. Never nest it inside a fence of
|
|
121
|
-
your own; it carries fences of its own and they cannot nest. It prints the
|
|
122
|
-
its highlights, the Readout fence (its
|
|
123
|
-
rows folded with your three), a `diff`
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
122
|
+
your own; it carries fences of its own and they cannot nest. It prints the Now line
|
|
123
|
+
naming the step you reviewed, the Summary and its highlights, the Readout fence (its
|
|
124
|
+
measured `check`, `seam`, `diff`, and `spent` rows folded with your three), a `diff`
|
|
125
|
+
fence when the change is 20 lines or fewer, the Verdict folded worst-of from the same
|
|
126
|
+
rows, Next Up, Your Call, and your recommendation last. Run it once: a second run at an
|
|
127
|
+
unchanged pause prints the one-line reminder instead of the card, so if that line comes
|
|
128
|
+
back where the card belongs (you ran handoff earlier in this turn), run
|
|
129
|
+
`plumbbob handoff <n> --full` and paste that. At the pause the check row reads green,
|
|
130
|
+
since a red one stopped you back at step 1. The gate verdict's one home is that row:
|
|
131
|
+
no standalone verdict line exists, and you never restate the verdict in prose. A
|
|
132
|
+
narrowed run names the slots it skipped there (`· without test`), and that named
|
|
133
|
+
narrowing is the whole disclosure. The notice checkride's Stop hook appends after your
|
|
134
|
+
turn is not yours to relay or repeat; the trailing blank line you kept is what lands it
|
|
135
|
+
on its own line. Relayed CLI strings keep their em-dashes; your own lines never use
|
|
136
|
+
one, the write-versus-relay line of
|
|
132
137
|
[D78 (em-dash-ban)](https://github.com/robmclarty/plumbbob/blob/main/docs/decisions.md#d78).
|
|
133
138
|
|
|
134
139
|
*Then read the reply as an ask or a direction.* A message that **asks** ("expand 2",
|
|
135
|
-
"what does that mean?", "why did the seam row flag that?") is an expand: answer it from
|
|
136
|
-
`git diff`, or from the build-log's `## Log` for an older step,
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
140
|
+
"what does that mean?", "why did the seam row flag that?") is an expand: answer it from
|
|
141
|
+
the detail file, from `git diff`, or from the build-log's `## Log` for an older step,
|
|
142
|
+
never from recall, then run `plumbbob handoff <n>` and paste its output beneath your
|
|
143
|
+
answer, whole and verbatim. The turn is your answer, then that output, and nothing after
|
|
144
|
+
it. The pause renders its card once
|
|
145
|
+
([D87 (pause-once)](https://github.com/robmclarty/plumbbob/blob/main/docs/decisions.md#d87)):
|
|
146
|
+
while nothing about it has changed, handoff prints one line,
|
|
147
|
+
`**Next Up**: Back to Step <N> of <M> - <title>`, in place of the card the human already
|
|
148
|
+
read, so your answer stays on screen. The CLI picks the form, never you: paste whichever
|
|
149
|
+
one it prints, and never retype the card or reach for `--full` to put it beneath an
|
|
150
|
+
answer.
|
|
151
|
+
|
|
152
|
+
Two moments bring the whole card back, and in both you run `plumbbob handoff <n> --full`
|
|
153
|
+
and paste its output whole, with nothing written around it: the human asks to see the
|
|
154
|
+
pause (`show the pause`, or any wording of it), or the card is not in this conversation
|
|
155
|
+
(a fresh session, or one after `/clear`, that finds the step still at its pause). A
|
|
156
|
+
message that **directs** is needs-work: take it as what to change, and nothing lands
|
|
157
|
+
until the human says `looks good`.
|
|
141
158
|
|
|
142
159
|
- **Reconcile a drifted subject here, in the open.** The planned title *is* the
|
|
143
160
|
checkpoint subject ([D68 (conventional-subjects)](https://github.com/robmclarty/plumbbob/blob/main/docs/decisions.md#d68)). If the diff drifted from it (the
|