feat(board): give the plan a paste= line the operator can actually use
--plan shipped with dir= and command= as separate fields. That is right for a driver, which moves the pane itself and then types the command, and unusable for a person: the first operator to read a block could not act on it at all. Joining an absolute path from one field with a command from another is not a saved line of output. It is the step where a session gets started in the wrong repository - the same failure the absolute dir= exists to prevent, moved from the machine to the human. paste= is the two already joined, cd <dir> && <command>, one thing to select. Both forms stay: the two consumers want the same fact shaped differently, and neither shape serves both. Emitted only alongside command=, never once per block. A `paste=cd X && ` with nothing after it would run the cd and then a bare newline, which fails SILENTLY - the operator ends up in the right directory with no session started and no error to notice. board-selftest: 86 -> 89 checks. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011eKRzhD1RqY2MxvDEkrJAM
This commit is contained in:
parent
6d0fe14d0f
commit
5bea1f8651
10 changed files with 76 additions and 9 deletions
14
CLAUDE.md
14
CLAUDE.md
|
|
@ -54,7 +54,7 @@ marketplace plugin. Three components, one boundary:
|
|||
- **Board (`scripts/board.sh`):** cross-repo attention board. Reads STATE.md
|
||||
next-step blocks + board lines, `git status`, and mailbox pending counts, and
|
||||
prints one line per repo. Read-only by construction: it writes to no repo, no
|
||||
STATE.md and no mailbox. Pinned by `board-selftest.sh` (86 checks).
|
||||
STATE.md and no mailbox. Pinned by `board-selftest.sh` (89 checks).
|
||||
|
||||
**It lives here because the mailbox is one of its three inputs, and it carries
|
||||
the same axis distinction the mailbox does.** A pending count means *others
|
||||
|
|
@ -105,6 +105,16 @@ marketplace plugin. Three components, one boundary:
|
|||
route-line grammar, shared with `--brief`, and distinguishes the two causes by
|
||||
exit code rather than by an empty string.
|
||||
|
||||
**`paste=` and `dir=`/`command=` are the same fact for the two consumers, and
|
||||
neither is redundant.** A driver moves the pane itself and then types the
|
||||
command, so it needs them apart; a human needs ONE thing to select. Handing
|
||||
the operator two fields to join by hand is not a saved output line, it is the
|
||||
step where a session starts in the wrong repo - and it was measured the moment
|
||||
the feature met its first user, who could not act on the block at all. `paste=`
|
||||
is emitted only alongside `command=`: `paste=cd X && ` with nothing after it
|
||||
would run the cd and then a bare newline, which fails SILENTLY by leaving the
|
||||
operator in the right directory with no session started.
|
||||
|
||||
**Driving a terminal from the plan does NOT belong here, and the measurement
|
||||
in `docs/ghostty-orchestration-measurement.md` is the argument, not taste.**
|
||||
It is a version-pinned undocumented composition over a preview API whose
|
||||
|
|
@ -241,7 +251,7 @@ obligations in another repo.
|
|||
builtins only in hook and tests.
|
||||
- TDD: no behavior change without a failing selftest check first.
|
||||
`bash scripts/coord-selftest.sh` must exit 0 (183/183),
|
||||
`bash scripts/board-selftest.sh` must exit 0 (86/86) and
|
||||
`bash scripts/board-selftest.sh` must exit 0 (89/89) and
|
||||
`bash scripts/route-selftest.sh` must exit 0 (73/73).
|
||||
- English for all code, docs, and commit messages (public repo). Norwegian
|
||||
trigger aliases in the skill description are deliberate.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue