plumbbob 0.13.6 → 0.13.7

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.
@@ -146,7 +146,7 @@ this skill verifies it the same way: **it reads the diff, not the author**
146
146
  one, the write-versus-relay line of
147
147
  [D78 (em-dash-ban)](https://github.com/robmclarty/plumbbob/blob/main/docs/decisions.md#d78).
148
148
 
149
- *Then answer the reply in your own words.* The card shows once
149
+ *Then answer the reply in your own words, after every tool call.* The card shows once
150
150
  ([D110 (reply-after-the-card)](https://github.com/robmclarty/plumbbob/blob/main/docs/decisions.md#d110)):
151
151
  every later turn at this pause is your reply, closed by one line. A message that
152
152
  **asks** ("expand 2", "what does that mean?", "why did the seam row flag that?") is an
@@ -154,12 +154,17 @@ this skill verifies it the same way: **it reads the diff, not the author**
154
154
  `## Log` for an older step, never from recall. A message that **directs** is needs-work:
155
155
  make the change, run the check, and say what moved and what the check found; when the
156
156
  change moves what the card said, write the detail file again so the record matches what
157
- lands. Nothing lands until the human says `looks good`. Either way, then run
158
- `plumbbob handoff <n>` and paste its output beneath your reply, whole and verbatim: at a
159
- pause whose card has shown it prints one line,
160
- `**Next Up**: Back to Step <N> of <M> - <title>`, whatever changed since, so your reply
161
- stays on screen. The turn is your reply, then that line, and nothing after it. The CLI
162
- picks the form, never you: paste whichever one it prints, and never retype the card.
157
+ lands. Nothing lands until the human says `looks good`. Either way, every tool call
158
+ comes before your reply and none after it
159
+ ([D121 (reply-after-the-tools)](https://github.com/robmclarty/plumbbob/blob/main/docs/decisions.md#d121)):
160
+ read, edit, run the check, write the detail file, and run `plumbbob handoff <n>` last
161
+ among them. At a pause whose card has shown it prints one line,
162
+ `**Next Up**: Back to **Step N** on <Model> - <title>`, whatever changed since. Keep
163
+ that line, then write your reply, and end the turn on the line, whole and verbatim. The
164
+ turn is your tool calls, then your reply, then that line, and nothing after it: a
165
+ client that folds text written before a tool call (Zed, through the agent bridge) shows
166
+ the line and hides a reply written above the call. The CLI picks the form, never you:
167
+ paste whichever one it prints, and never retype the card.
163
168
 
164
169
  The card comes back one way: the human asks to see it (`show the pause`, or any wording
165
170
  of it). Then run `plumbbob handoff <n> --full` and paste its output whole, with nothing
@@ -129,7 +129,9 @@ Three lines:
129
129
  · *lean:* the model's proposed resolution: one answer to react to, not a menu
130
130
 
131
131
  The human reads *plain* to understand, then *lean* to approve or redirect: one
132
- pass, no round-trip.
132
+ pass, no round-trip. The plan card tables the open questions a row each, and a cell
133
+ shows only the first sentence of its line, so open the question, *plain*, and *lean*
134
+ each on a sentence that stands alone: the question, why it matters, the answer.
133
135
 
134
136
  When a question resolves, swap *resolve by:* for *resolved:* <date, the call> ON THE
135
137
  OPENER LINE, e.g.
@@ -146,6 +148,17 @@ build reports zero open questions
146
148
  ([D77 (placeholder-uncounted)](https://github.com/robmclarty/plumbbob/blob/main/docs/decisions.md#d77));
147
149
  fill it in and it counts.
148
150
 
151
+ When the human would rather let the work answer a question, it is deferred, not
152
+ resolved: keep the question and swap *resolve by:* for *deferred:* <date>, until
153
+ <what settles it> ON THE OPENER LINE, so the opener reads
154
+
155
+ **Q4 (latency-budget)**: What latency budget do we hold?, *deferred:* 2026-10-31, until step 4's latency numbers
156
+
157
+ It stays open and still counts, but the card lists it on a line beneath the table
158
+ rather than in it, so `yes to all leans` leaves it alone. Once the work answers it,
159
+ swap the marker for *resolved:* as above
160
+ ([D120 (deferred-questions)](https://github.com/robmclarty/plumbbob/blob/main/docs/decisions.md#d120)).
161
+
149
162
  Size to the work: a tiny build's single, obvious question may stay one bare line;
150
163
  the *plain:*/*lean:* pair earns its keep only when a human decision genuinely waits
151
164
  on it.