docs: Stage 0 --- sweep the discoverability class instead of one site at a time

Three review rounds have each surfaced one more instance of the same
false claim, so this commit greps the class rather than fixing the site
that was reported.

§4's beginner inventory carried THREE, in a single bullet: "neither is
advertised anywhere but the keymap", "terminal ✓ but M-x-only", and
"build ✓ but M-x-only with empty prompt". All three are false. `C-x C-f`
and `C-c t` and `C-c c` are in the welcome's key table DIRECTLY, `C-x d`
is advertised transitively, and the build prompt is prefilled from the
detected project kind. Every one was answered by the welcome buffer and
by those two bindings --- the same fixes the paragraph after §2's audit
quote already records as landed. They survived because a level-by-level
inventory was never re-run against them, which is the failure mode this
document is otherwise good at naming.

A fourth was MINE. The superseded table's step 11 row said `*workers*`
has "no keybinding"; I wrote that two commits ago, before the
route/binding/opens-it distinction existed, and it did not get corrected
when the other four sites did. Now: no binding that OPENS it, with
`C-c C-k` noted as working buffer-locally once inside.

One "M-x-only" is left standing because it is TRUE: project.search has
no binding that invokes it. Its `RET`/`n`/`p` bindings are buffer-local
inside the results buffer --- exactly the inside-versus-opens shape that
`*workers*` has, checked rather than assumed while sweeping.

The pattern across all seven sites is one thing: "advertised" had no
definition in this document until §2b needed one, so nothing could be
measured against it and every claim about it drifted. Defining the term
is what made them findable, and the first act of a checkable claim is to
fail.

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:46:52 +02:00
parent b618b32166
commit 25bdc3abfd
No known key found for this signature in database
1 changed files with 17 additions and 5 deletions

View File

@ -578,7 +578,7 @@ Full verdict table:
| 8 | Open terminal | **Works** | Full PTY with scrollback + modeline segment, bound to `C-c t` and configurable through three registered settings (`terminal.default-profile`, `terminal.scrollback-rows`, `terminal.escape-key`) plus named `pmacs.terminal.profiles` (PR #173), and searchable through `M-x terminal.copy-mode` / `C-c C-t`, which materializes the retained scrollback into an ordinary read-only buffer (Stage 2). Named limitations: `C-c t` is unreachable from *inside* a terminal window, where `C-c` is consumed as the escape — `M-x terminal` still works there; and `C-c t` is not re-advertised there. **The "no close/kill command" claim previously recorded here was false**: `M-x buffer.kill-this` is global (`builtin/commands/default.lua:1209`) and killing a terminal buffer prunes the session and reaps the owned process (`tests/vterm_stage1_acceptance.rs:336`). Corrected in place because it is a statement about the tree, not a historical grade. *Was broken outright on the GPU frontend until the double terminal-layout sync was fixed: the child took a `SIGWINCH` storm at tick cadence, so typing into it was impossible while output still flowed.* |
| 9 | Build / test | **Works** | Journey Stage 1b-1 (#203): `C-c c` runs `compile.run`, and the first prompt is prefilled from the detected project kind (`pmacs.compile.defaults`, seeded `rust = "cargo build"`, extensible from `init.lua`) via `ProjectKind::Rust` — **not** `Cargo`, see §24. The prompt **captures** its directory rather than re-resolving at accept time, so the command it offers and the directory it runs in cannot drift while the minibuffer waits. Still defaults cwd to the detected project root and parses Rust `-->` errors. Named limitation: after `pmacs <dir>` the active buffer is dired's and pathless, so the cwd falls back to the process cwd — §8's execution-location model owns that, and the degradation stays coherent (no suggestion is offered for a directory with no detected Cargo project) |
| 10 | Inspect error | **Partial (good once reached)** | `E:n W:n` modeline counts, underlines, `M-g n/p` + ``C-x ` `` walking a unified compile/grep/diag source, message echo, `RET` visits. Gated entirely on step 6 or 9 succeeding first |
| 11 | See background work | **Partial** | **Statusline activity indicator since #232** — in-flight count plus the oldest job's purpose, absent entirely when idle, through `ui.activity-indicator`. `*workers*` view via `M-x editor.list-workers`, **still with no keybinding**; `C-c C-k` cancel-at-point. *Was "Works but undiscoverable — no statusline spinner/progress indicator anywhere"; #232 shipped exactly that indicator on 2026-08-09 and the row went stale the same day* |
| 11 | See background work | **Partial** | **Statusline activity indicator since #232** — in-flight count plus the oldest job's purpose, absent entirely when idle, through `ui.activity-indicator`. `*workers*` view via `M-x editor.list-workers`, **with no binding that OPENS it**; `C-c C-k` cancel-at-point works buffer-locally once inside. *Was "Works but undiscoverable — no statusline spinner/progress indicator anywhere"; #232 shipped exactly that indicator on 2026-08-09 and the row went stale the same day* |
| 12 | Close + restore | **Partial** | Per-file cursor+scroll (saveplace), recent files, minibuffer history, autosave recovery all restore zero-config. Open-buffer set and window layout do **not**: desktop-save is opt-in (`pmacs.session.desktop_mode(true)`) *and* a documented no-op under a daemon (`src/desktop.rs:323-326`, `:353-356`, Q#DS9) |
A journey observation worth keeping verbatim from the audit:
@ -678,10 +678,22 @@ level is the one missing. Audited level-by-level:
build actions, menus, missing-tool guidance):
- files ✓ since #162 / #165 (`C-x C-f` opens a path, `C-x d` browses;
neither is advertised anywhere but the keymap) · buffers ✓ (`C-x
b`, `*buffer-list*`) · search ✓ (`C-s`/`C-r`/`C-M-s`; project.search
is M-x-only) · diagnostics ✓ once a server runs · terminal ✓ but
M-x-only · build ✓ but M-x-only with empty prompt · menus △
**both are advertised** — `C-x C-f` directly in the welcome's key
table, `C-x d` transitively through `M-x help` →
`help.list-keybindings`) · buffers ✓ (`C-x b`, `*buffer-list*`) ·
search ✓ (`C-s`/`C-r`/`C-M-s`; project.search is M-x-only) ·
diagnostics ✓ once a server runs · terminal ✓ **and advertised**
(`C-c t`, in the welcome) · build ✓ **and advertised** (`C-c c`, in
the welcome; the prompt is **prefilled from the detected project
kind**, not empty) · menus △
*Three claims in this bullet were false and are corrected together:
"neither is advertised anywhere but the keymap", "terminal ✓ but
M-x-only", and "build ✓ but M-x-only with empty prompt". All three
were answered by the welcome buffer and by `C-c t`/`C-c c` — the very
fixes the paragraph after §2's audit quote already records as
landed. They survived because a level-by-level inventory was never
re-run against them.*
(right-click only, 11 items) · missing-tool guidance ✗ (§1.2).
**Intermediate** (should discover: palette, keybinding search, workspace