plumbbob 0.8.17 → 0.8.18

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.
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "plumbbob",
3
3
  "displayName": "PlumbBob",
4
- "version": "0.8.17",
4
+ "version": "0.8.18",
5
5
  "description": "Attention-first build process — driver skills + a CLI that keep you the decider: guidance on the work, a latch on the record.",
6
6
  "author": { "name": "Rob McLarty", "email": "hello@robmclarty.com", "url": "https://robmclarty.com" },
7
7
  "homepage": "https://github.com/robmclarty/plumbbob#readme",
package/README.md CHANGED
@@ -4,6 +4,12 @@
4
4
  <img src="hero.svg" alt="A row of plumb bobs of varying shapes hanging from strings" width="600">
5
5
  </p>
6
6
 
7
+ <p align="center">
8
+ <a href="https://robmclarty.github.io/plumbbob/">Website</a> ·
9
+ <a href="https://robmclarty.github.io/plumbbob/docs.html">Docs</a> ·
10
+ <a href="https://robmclarty.github.io/plumbbob/api.html">API reference</a>
11
+ </p>
12
+
7
13
  PlumbBob is a Claude Code plugin — twelve `/pb-*` skills and a small CLI — that runs
8
14
  LLM-assisted coding as a loop you control. You and the model settle the plan in a file
9
15
  *before* any code; then the model builds one small step at a time and **stops after
@@ -80,9 +80,11 @@ function buildDefaultScope(root, slug) {
80
80
  // `--body` reads the final-commit body from stdin (the single-quoted heredoc of
81
81
  // D34), so the pb-finish skill can compose a proportional close-out message. Returns
82
82
  // null when the flag is absent or stdin is empty — the commit then carries subject
83
- // only. A read error (no stdin attached) degrades to null rather than throwing.
83
+ // only. Reading fd 0 blocks until EOF, which the heredoc supplies; a read error (no
84
+ // stdin attached) degrades to null, and an interactive TTY — which would never send
85
+ // EOF — skips the read instead of hanging (twin of checkpoint.ts's guard).
84
86
  function bodyArg(args) {
85
- if (!args.includes('--body')) {
87
+ if (!args.includes('--body') || process.stdin.isTTY === true) {
86
88
  return null;
87
89
  }
88
90
  try {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "plumbbob",
3
- "version": "0.8.17",
3
+ "version": "0.8.18",
4
4
  "description": "Attention-first build process: 12 skills + a CLI that keep you the decider — guidance on the work, a latch on the record.",
5
5
  "keywords": [
6
6
  "claude-code",
@@ -10,7 +10,7 @@
10
10
  "agent",
11
11
  "attention-first"
12
12
  ],
13
- "homepage": "https://github.com/robmclarty/plumbbob#readme",
13
+ "homepage": "https://robmclarty.github.io/plumbbob/",
14
14
  "bugs": "https://github.com/robmclarty/plumbbob/issues",
15
15
  "repository": {
16
16
  "type": "git",
@@ -30,11 +30,24 @@ record.
30
30
  This is the "yeah, I did that" artifact. Write it by default; the human may edit it.
31
31
  2. **Finish.** Run `plumbbob finish`, which appends the checkpoint SHAs to the
32
32
  report and makes the final commit — subject `chore(<scope>): finish`, its body
33
- led by a `plumbbob finish` marker plus an optional proportional `--body` (the
34
- stdin heredoc) — then
33
+ led by a `plumbbob finish` marker plus an optional proportional `--body` — then
35
34
  clears the control state (the in-flight markers, then `STATE` last — one delete
36
35
  drops both the session sentinel and the active-build cursor it carries). The
37
36
  build folder stays in place, committed, and rides the branch into the PR.
37
+
38
+ `--body` reads the close-out message from **stdin via a single-quoted heredoc
39
+ redirect** — the same form the other verbs use:
40
+
41
+ ```
42
+ plumbbob finish --body <<'BODY'
43
+ …proportional close-out prose…
44
+ BODY
45
+ ```
46
+
47
+ Redirect the heredoc *into* the command (`--body <<'BODY'`). Do **not** pass it as
48
+ an argument value (`--body "$(cat <<'BODY'…)"`): `--body` ignores an argument and
49
+ reads stdin, so that form leaves stdin open with no EOF and the command hangs. Omit
50
+ `--body` entirely and the commit carries the `plumbbob finish` marker subject only.
38
51
  3. **Point at the next goal** — `/pb-plan` to frame the next one.
39
52
 
40
53
  ## The hard contracts