Skip to content

notes: the twenty-third pass — the desktop renamed out from under this file, and a mirror one repo over - #376

Merged
JulienMartel merged 2 commits into
mainfrom
worktree-parsed-strolling-church
Aug 15, 2026
Merged

notes: the twenty-third pass — the desktop renamed out from under this file, and a mirror one repo over#376
JulienMartel merged 2 commits into
mainfrom
worktree-parsed-strolling-church

Conversation

@JulienMartel

Copy link
Copy Markdown
Contributor

What

The twenty-third pass on notes/options-roadmap.md, plus two stale rows the
rename left behind in AGENTS.md and notes/hausfold-rename.md.

The audit half. haus#364
(decision 10) merged four hours after the twenty-second pass's own PR and dropped
the name nebelhaus: the desktop is hacker, everything else in the layer
is haus. Nothing this file tracks as work moved — the rename configures
nothing differently and its three compatibility seams mean no consumer has to
act. What moved is every sentence that says the word, so the naming banner is
amended and the body stays un-rewritten, per that banner's own rule.

Three findings, one of which shipped code.

  1. A translation rule for a historical document is only as good as the token it
    keys on.
    The 2026-08-08 banner said "read every nebelhaus.* as haus.*" —
    keyed on the dot, because what was renamed then was an option namespace.
    Decision 10 renamed the bare word. Over the body proper: 137 hits, the
    dotted rule translates 63 of them correctly and 2 of them wrongly
    (nebelhaus.com and a filename, both of which stay). The workshop's own
    AGENTS.md had already written that trap down — for the layer, one repo over,
    in the same week.
  2. "Audit against the repos, not against memory" has a third thing in it: the
    local checkout is memory wearing the repo's clothes.
    ~/code/workshop/haus
    still held desktops/nebelhaus.nix 46 minutes after notes: §5.2 closes, and the route that outlived its config #364 merged, so the disk
    would have answered every question with yesterday, in the confident voice of a
    file that exists. bench status fetches before comparing @{u} (bench:547)
    and would have said ↓ 1. Two rows for §5.14's shapes table, since the second
    half of that finding was a negative claim ("bench never fetches") produced
    by a grep whose pattern couldn't match git -C "$dir" fetch.
  3. The lock ripple carries the binary and nothing carries the grammar it
    speaks.
    haus.pounce.items validates keys against a hand copy of pounce's
    ItemTarget; pounce added shortcut:<uuid> (pounce#80) and haus's lock moved
    to that exact merge commit 79 seconds later — so the layer has been refusing a
    key its own daemon accepts. Fixed, with a seventh check, in
    haus#365. §5.9(b) amended: it
    asserted that validation as a feature.

Why the two AGENTS.md / rename-plan edits are here

Both are shape 2 in this file's own table (a closed claim, later falsified) and
both were found by the assurance read: AGENTS.md and hausfold-rename.md
§2.2's do-not-sweep table still call the four state dirs "deliberately held",
left behind by the very commit (workshop#372) that amended the row four lines
above. §11.3 moved all four and left symlinks. Fixing them where they were found
beats filing them, which is this file's own rule about follow-ups without owners.

Verify

Prose only — nothing here evaluates. What was checked, and by whom:

  • Two clean-context assurance subagents, one per repo, each given only the diff
    and that repo's AGENTS.md. Eleven findings between them, four ≥3/5, all
    folded in — including both count claims in the first draft of the status block
    (a pair of counts taken over two different regions of the file), a check that
    could go green while the validator it protects stayed broken, and haus's CI
    census.
  • Every quoted line re-read at its source: the builtinModes comment,
    AGENTS.md's bare-word warning, bench:547, pounce's ItemTarget.
  • Counts re-derived rather than quoted, over one stated scope, with the command
    that produced them.

Watch out

  • haus#365 is open, not merged. The defect finding 3 describes in the past
    tense is still live on main until it lands; the notes say so and name the PR.
  • The 137 / 63 counts are scoped to the body (§1 onward) on purpose, so a
    pass that writes the word fifteen times doesn't inflate its own number. A
    whole-file count is a different, larger, self-referential figure.
  • §5.14's shapes table is ten rows now. The two new ones are last, and the
    paragraph below the table that talks about "the sixth shape" is unaffected —
    it names the row, not the index.

🤖 Generated with Claude Code

https://claude.ai/code/session_018g5zLnGtTtVDkLjfJ7rNCX

JulienMartel and others added 2 commits August 15, 2026 05:58
… one repo over went stale

Twenty-third pass on notes/options-roadmap.md.

Audit: haus#364 (decision 10) dropped the name `nebelhaus` — the desktop is
`hacker`, everything else in the layer is `haus`. The naming banner is
amended rather than the body rewritten, because the banner's rule was
"read every `nebelhaus.*` as `haus.*`" and the rename moved the UNDOTTED
word: 203 hits below, the dotted rule reaches 82, and the rest carry three
referents (repo, desktop, org). The workshop's own AGENTS.md had already
written that trap down for the layer, in the same week.

Two more findings, both filed as rows in §5.14's shapes table:

- The local checkout is a third source, and it is memory wearing the
  repo's clothes — haus's checkout sat one merge behind while this audit
  ran, so the disk would have answered every question with yesterday.
  `bench status` fetches (bench:547) and would have said so.
- A negative claim proved by a grep is only as strong as its pattern.
  The first draft of the finding above said bench NEVER fetches, from a
  pattern that couldn't match `git -C "$dir" fetch`.

And the one that shipped code: `haus.pounce.items` validates its keys
against a hand copy of pounce's `ItemTarget` grammar, pounce added
`shortcut:<uuid>` (pounce#80), and haus's lock moved to that pounce two
minutes later — so the layer has been refusing a key its own daemon
accepts. §5.9(b) amended; fixed in haus with a seventh check,
`pounce-item-grammar`, which diffs the mirror against the LOCKED pounce's
source. Ten ★ findings, seven checks.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018g5zLnGtTtVDkLjfJ7rNCX
…rename left behind

Both assurance passes (one per repo, clean context) came back with
eleven findings, four ≥3/5. Folding them in:

- The count pair in the new status block was two different regions
  counted once each — 203 was the whole file, 82 was the body. Restated
  over one scope (the body, §1 onward): 137 hits, of which the dotted
  rule translates 63 correctly and 2 wrongly. A pair of counts is a
  claim about a scope, and this one sounded precise while being neither.
- The seventh check now names its PR (haus#365) rather than pointing at
  "the block at the top", per the twentieth pass's own rule.
- A fourth ★: haus's CI census carries the instruction to keep itself
  honest, and checking it rather than appending to it beat appending
  four to nothing. Re-derived and fixed in haus#365's second commit.
- The assurance read of the check itself killed three ways it could have
  been green while broken; recorded, because "a tripwire is worth what
  its weakest sample is worth" is the reusable half.
- Smaller: a misquoted commit subject, "two minutes" → 79 seconds, "half
  an hour" → 46 minutes, and a prefix "list" that is an if-chain.

And two rename-side corrections the same read turned up, both shape 2:
AGENTS.md and hausfold-rename.md §2.2 still called the four state dirs
"deliberately held", left behind by the very commit (workshop#372) that
amended the row four lines above. Found while this pass was quoting
AGENTS.md approvingly two lines below the stale line — a document you
are citing is not a document you are reading.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018g5zLnGtTtVDkLjfJ7rNCX
@JulienMartel
JulienMartel merged commit 2e9a14e into main Aug 15, 2026
4 checks passed
@JulienMartel
JulienMartel deleted the worktree-parsed-strolling-church branch August 15, 2026 11:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant