docs: Stage 0 --- `*workers*` has a binding; what it lacks is one that OPENS it

"`*workers*` has no binding at all" was false. The view carries a
buffer-local `C-c C-k` for `workers.cancel-at-point`
(`builtin/runtime/async.lua`, documented at `docs/keybindings.md:282`).
Corrected at all four sites it had spread to: the table row, the
contract paragraph, the summary, and the framing's historical example.

The absent thing is narrower and is now said precisely: NO BINDING
OPENS `editor.list-workers`. A binding that only works once you are
already inside the view cannot satisfy a discoverability subclaim ---
which is the same shape as the route-versus-binding distinction the
previous commit drew, one level further in. A route reaches the view
but is not a binding; `C-c C-k` is a binding but does not reach it.
11(c) asks for the conjunction, and neither half alone supplies it.

The Missing grade is unchanged, and so is the two-step GPU deficit. What
changes is that the row now states a fact about the tree rather than an
overstatement that happened to point at the right grade --- which is the
distinction this table exists to hold, since a grade resting on a false
premise is not falsifiable, it is merely unfalsified.

Left alone deliberately: the audit quote at COHERENCE.md:562, where
"no bindings at all" refers to opening a file, opening a terminal and
running a build. That is a historical observation about OTHER commands,
and the paragraph immediately below it already records that all three
were answered.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016bqGA6s9tTUFzYpbeW3tai
This commit is contained in:
Levi Neuwirth 2026-08-11 20:32:03 +02:00
parent 926ac75def
commit be73766638
No known key found for this signature in database
2 changed files with 16 additions and 7 deletions

View File

@ -452,8 +452,12 @@ is what produced the earlier `Partial` at steps 4 and 7.
**A binding is a stronger claim than a route, and 11(c) asks for the
binding.** That is why step 11 still fails while step 7 passes: both are
reachable through the help graph, but `*workers*` has **no binding for
any listing to name**.
reachable through the help graph, but **no binding reaches
`editor.list-workers`**. `*workers*` is not binding-free — it carries a
buffer-local `C-c C-k` for `workers.cancel-at-point`
(`async.lua`; `docs/keybindings.md:282`) — and that binding lives
*inside* the view, so it cannot help anyone find it. The absent thing is
specifically **a binding that opens it**.
| # | Step | local TUI | attached TUI | GPU | binding subclaim |
|---|---|---|---|---|---|
@ -467,7 +471,7 @@ any listing to name**.
| 8 | Open terminal | Works | Works | Works | 8(c) satisfied by the **global** `M-x buffer.kill-this` (`default.lua:1209`); killing a terminal buffer prunes the session and reaps the process (`vterm_stage1_acceptance.rs:336`). 8(c) never required a terminal-*specific* command. 8(d) passes on the welcome's `C-c t` |
| 9 | Build / test | Works | Works | Works | 9(d) passes on the welcome's `C-c c` entry, not on the bare binding; 9(a) runs in the detected project's context |
| 10 | Inspect error | Works | Works | Works | all of 10(a–c) hold. *Being gated on step 6 or 9 is a **dependency, not a subclaim**, and §2a's membership rule forbids an annotation from lowering a grade — an earlier draft let it do exactly that. Grading the dependency would require adding it as a subclaim first* |
| 11 | Understand background work | **Missing** | **Missing** | **Missing** | 11(c) — the `*workers*` view has **no binding at all**, so a keybinding listing cannot reveal it: the subclaim is **absent**, not degraded, and it floors the cell. 11(b) fails too — #232 gives **purpose**, never an accountable **owner**, and the planes stay disjoint (jobs in `*workers*`, processes in `pmacs.process.list`, servers in `*lsp*`, terminals **nowhere**). 11(a) passes on the activity indicator |
| 11 | Understand background work | **Missing** | **Missing** | **Missing** | 11(c) — **no binding opens `editor.list-workers`**, so a keybinding listing cannot lead anyone to it: the subclaim is **absent**, not degraded, and it floors the cell. *The view is not binding-free — `C-c C-k` runs `workers.cancel-at-point` buffer-locally inside it (`docs/keybindings.md:282`) — but a binding that only works once you are already there cannot satisfy a discoverability subclaim.* 11(b) fails too — #232 gives **purpose**, never an accountable **owner**, and the planes stay disjoint (jobs in `*workers*`, processes in `pmacs.process.list`, servers in `*lsp*`, terminals **nowhere**). 11(a) passes on the activity indicator |
| 12 | Close + restore | **Partial** | **Missing** | **Missing** | 12(c) — local restores nothing beyond per-file state (desktop-save is opt-in); on **both daemon-backed frontends it is a structural no-op** (Q#DS9), so they fail it **by construction** |
**Closure condition 2 currently FAILS, at exactly two steps.** GPU is
@ -481,9 +485,11 @@ is a property of the tree rather than of the grader.
**The journey's two worst steps are frontend-INDEPENDENT**, and that is
the table's other finding. Steps 6 and 11 grade `Missing` in all three
columns: language intelligence dies silently after a server crash, and
background work has no advertised **binding** — a route exists
(`M-x help` → `help.list-commands` → `editor.list-workers`), which is
why 11(c)'s wording asks for a binding and not a route. Neither is GUI work,
**no binding opens** the background-work view — a route exists
(`M-x help` → `help.list-commands` → `editor.list-workers`), and a
buffer-local `C-c C-k` exists *within* the view, but nothing bound leads
to it. That is why 11(c) asks for a binding rather than a route, and why
the binding it asks for is one that **reaches** the view. Neither is GUI work,
neither is closed by this arc, and both were previously carried as
`Partial` — which is how they stayed off the critical path.

View File

@ -427,7 +427,10 @@ step. They quote the **pre-Stage-0** verdict strings, not today's table:
`help.list-keybindings`, which names every registered binding.
- **Step 11** — the row then read "**Works but undiscoverable**". Same
shape, and here the outcome **stands**: Stage 0 also graded it
`Missing`, because `*workers*` has no binding for any listing to name.
`Missing`, because **no binding opens `editor.list-workers`** for a
listing to name. The view does carry a buffer-local `C-c C-k`
(`workers.cancel-at-point`), which is reachable only once you are
already inside it.
The rule these examples exist to establish is untouched by either
outcome: **the head-grade rule would have graded both `Works`**, and