The vault 146 files

Demo / the vault

Calendar/daily/2026-09-21.md

Monday 21 September

Session opened 06:40 on Rowan’s stated time. No brief — he skipped it, having read the 20 September review and come in with one ask. The machine clock is still wrong (hobbs-bkt); every date here comes from his sentence or from the vault.

What Rowan gave, in his words

“Three Sunday reviews now, three done, none skipped. On the 13th you refused to build the review surface and you were right at the time: your words were that building a UI before the habit is anti-pattern 8 by name. The habit is there now. I’m asking for it.”

“You put twelve ‘disposition needed’ lines in front of me and I answered them in prose, badly, because answering in a terminal means writing sentences.”

“It writes back into the vault and commits. The vault stays the truth; nothing lives only in the app.”

“Put it in a Tools/ directory. I want a proper place for this sort of thing because it will not be the last one. ADR it before you build it, same as everything else, and treat this as the explicit ask row 13 needs.”

“Do not gold-plate it. I want to be using it this Sunday.”

Two decisions taken by him this morning, both asked before anything was built: localhost only rather than the tailnet, which cuts the phone he had asked for in the same breath; and the write model — mechanical changes applied directly, his words handed to Hobbs as intentions.

Curation log

FileChangeSource
Atlas/decisions.mdADR-29Tools/ exists; the first thing in it is a localhost disposition queue. Written before the actionRowan, 2026-09-21
Tools/README.mdWhat may live in Tools/ and the four rules every tool there obeysADR-29
Tools/review-surface/server.mjs, index.html, README.md. Node 22, no dependencies, no build step, binds 127.0.0.1ADR-29
Efforts/dispositions/README.mdThe queue and answers formats, and the five verbs the surface will executeADR-29
Efforts/dispositions/2026-09-20-weekly.jsonThe first queue: eleven asks from the 20 September reviewEfforts/reports/weekly-2026-09-20.md
Efforts/routines/daily-brief.mdSteps 6 and 8 — the queue is written in the same pass as the ask; the intention inbox is drained before the next briefADR-29
Efforts/routines/weekly-review.mdStep 3 — the same, for SundayADR-29
HOME.mdA Tools section with the command to start itADR-29

Tasks: hobbs-lsc created and closed (built and verified). hobbs-3ah created — CLAUDE.md’s vault map does not know Tools/ exists and the constitution is outside Hobbs’s edit authority. hobbs-bkt dispositioned in its own notes, having been cited by handle in ADR-29 (weekly-review step 1.8).

Notes on the day

  • The refusal on the 13th was right and the same answer today would be wrong. The condition was named at the time — “you have had two reviews” — and it has been met by his count, not by an argument: three Sundays, three run. That is what a Reverse if is for, and this is the first one in this vault to fire on a refusal rather than on a decision.

  • The failure being fixed was predicted in writing two days before it happened. ADR-28 shipped the disposition vocabulary without the channel and named the risk: “typed-only dispositions may be enough friction that none of this gets used, in which case the finding is about the channel and not about the guide.” Sunday produced eleven asks and prose answers. The finding was about the channel, and this is one of the two candidates for it.

  • Two asks in the queue are rephrased rather than reproduced, and it is disclosed in the file. Bea’s email and Ruth’s call were “do this tonight” on Sunday. On Monday they are confirmation requests — ADR-28 clause 7, never as delinquencies — because the vault does not know what happened at 19:00 and must not assert it. Nothing else in the queue departs from the report’s wording.

  • [SELF-FLAGGED] The answer line could not carry the sha of the commit that creates it, and the first version pretended otherwise. The UI rendered commit — on a real answer. The record was written, the commit was made, and the two could not see each other; the sha is now read back out of the log and the intention path is written before the append so the line records where it went. Caught by looking at the screen rather than at the response body — the POST returned the sha correctly, which is exactly why the endpoint tests passed and the page was still wrong. A green test on the layer below is not the delivery. Same shape as filed is not surfaced (feedback 2026-09-12), one storey down.

  • What was cut, and it was his cut, not mine. He asked for the phone in the same sentence as the laptop and then chose localhost when the exposure was put in front of him. The phone loop stays with the channel and the channel is still gated on Pike. Recorded as a cut so nobody reads this next month as delivered.

Markdown source
---
type: daily
date: 2026-09-21
day: Monday
updated: 2026-09-21
---

# Monday 21 September

Session opened 06:40 on Rowan's stated time. **No brief — he skipped it**, having
read the 20 September review and come in with one ask. The machine clock is still
wrong (`hobbs-bkt`); every date here comes from his sentence or from the vault.

## What Rowan gave, in his words

<!-- src: Rowan, Monday morning 2026-09-21 -->

> "Three Sunday reviews now, three done, none skipped. On the 13th you refused to
> build the review surface and you were right at the time: your words were that
> building a UI before the habit is anti-pattern 8 by name. The habit is there
> now. I'm asking for it."

> "You put twelve 'disposition needed' lines in front of me and I answered them in
> prose, badly, because answering in a terminal means writing sentences."

> "It writes back into the vault and commits. The vault stays the truth; nothing
> lives only in the app."

> "Put it in a Tools/ directory. I want a proper place for this sort of thing
> because it will not be the last one. ADR it before you build it, same as
> everything else, and treat this as the explicit ask row 13 needs."

> "Do not gold-plate it. I want to be using it this Sunday."

**Two decisions taken by him this morning, both asked before anything was built:**
localhost only rather than the tailnet, **which cuts the phone he had asked for in
the same breath**; and the write model — mechanical changes applied directly, his
words handed to Hobbs as intentions.

## Curation log

| File | Change | Source |
|---|---|---|
| `Atlas/decisions.md` | **ADR-29** — `Tools/` exists; the first thing in it is a localhost disposition queue. Written before the action | Rowan, 2026-09-21 |
| `Tools/README.md` | What may live in `Tools/` and the four rules every tool there obeys | ADR-29 |
| `Tools/review-surface/` | `server.mjs`, `index.html`, `README.md`. Node 22, no dependencies, no build step, binds 127.0.0.1 | ADR-29 |
| `Efforts/dispositions/README.md` | The queue and answers formats, and the five verbs the surface will execute | ADR-29 |
| `Efforts/dispositions/2026-09-20-weekly.json` | The first queue: eleven asks from the 20 September review | `Efforts/reports/weekly-2026-09-20.md` |
| `Efforts/routines/daily-brief.md` | Steps 6 and 8 — the queue is written in the same pass as the ask; the intention inbox is drained before the next brief | ADR-29 |
| `Efforts/routines/weekly-review.md` | Step 3 — the same, for Sunday | ADR-29 |
| `HOME.md` | A Tools section with the command to start it | ADR-29 |

**Tasks:** `hobbs-lsc` created and closed (built and verified). `hobbs-3ah`
created — `CLAUDE.md`'s vault map does not know `Tools/` exists and the
constitution is outside Hobbs's edit authority. `hobbs-bkt` dispositioned in its
own notes, having been cited by handle in ADR-29 (weekly-review step 1.8).

## Notes on the day

- **The refusal on the 13th was right and the same answer today would be wrong.**
  The condition was named at the time — *"you have had two reviews"* — and it has
  been met by his count, not by an argument: three Sundays, three run. That is
  what a *Reverse if* is for, and this is the first one in this vault to fire on
  a refusal rather than on a decision.

- **The failure being fixed was predicted in writing two days before it happened.**
  ADR-28 shipped the disposition vocabulary without the channel and named the
  risk: *"typed-only dispositions may be enough friction that none of this gets
  used, in which case the finding is about the channel and not about the guide."*
  Sunday produced eleven asks and prose answers. The finding was about the
  channel, and this is one of the two candidates for it.

- **Two asks in the queue are rephrased rather than reproduced, and it is
  disclosed in the file.** Bea's email and Ruth's call were *"do this tonight"* on
  Sunday. On Monday they are confirmation requests — ADR-28 clause 7, *never as
  delinquencies* — because the vault does not know what happened at 19:00 and must
  not assert it. Nothing else in the queue departs from the report's wording.

- **[SELF-FLAGGED] The answer line could not carry the sha of the commit that
  creates it, and the first version pretended otherwise.** The UI rendered
  `commit —` on a real answer. The record was written, the commit was made, and
  the two could not see each other; the sha is now read back out of the log and
  the intention path is written before the append so the line records where it
  went. Caught by looking at the screen rather than at the response body — the
  POST returned the sha correctly, which is exactly why the endpoint tests passed
  and the page was still wrong. **A green test on the layer below is not the
  delivery.** Same shape as *filed is not surfaced* (feedback 2026-09-12), one
  storey down.

- **What was cut, and it was his cut, not mine.** He asked for the phone in the
  same sentence as the laptop and then chose localhost when the exposure was put
  in front of him. The phone loop stays with the channel and the channel is still
  gated on Pike. Recorded as a cut so nobody reads this next month as delivered.