The daily work log, with a trigger this time (PENDING-155 filed)

The steward asked for a daily note in Obsidian explaining in plain terms what
we did, decisions taken, and commit references — plus significant insights and
exchanges between the parties. This is Obsidian tracker item 5, the actual goal,
unstarted since 2026-08-19 while four items of frontmatter hygiene stood in
front of it.

Two prior attempts at this exact genre were read before anything was designed,
honouring the tracker's own flag: daily-log/ (4 entries, Mar-Apr 2026) and
sessions/ (3 long-form narratives). Both died inside four weeks. Neither had a
trigger — they were written when someone remembered. So the design question was
never what the note should say. It was what makes it survive.

Answer, steward-chosen at each fork: the note lives at 01. Daily/YYYY-MM-DD.md
with project work under its own H2 inside it rather than in project folders; a
SessionStart hook creates it so existence stops depending on memory; the
executor writes during the session because a wrap-only design inherits the
wrap's failure mode (2026-08-19 died unwrapped); and the wrap finalises rather
than begins.

daybook-ensure.py creates only. It will not touch an existing note — that is the
control the design turns on, and it is tested, along with a positive control
proving the no-dir report distinguishes a missing directory from a broken
function. It also reports failure loudly, because the job it sits beside spent
five months failing behind a > /dev/null 2>&1.

Not revived: the 2025 analogue template — sleep, supplements, homeopathy. Pen
and paper beat it and should keep it. That it failed is a finding, not a gap,
and this note is a different genre rather than its replacement.

PENDING-155 files the steward's idea for the jurist's side: an append-only MCP
surface writing a scratch file the executor folds in. Deliberately NOT a tool on
governance-mcp.py, whose read-only guarantee is a live AST control with a
positive control rather than a comment. A separate one-tool server leaves that
intact, and the vault note stays single-writer — the same lesson the
thinking-mirror taught this morning.

Correction carried into the record: the executor told the steward mid-session
that Claude.app has no filesystem access. False since 2026-08-08. Third instance
today of a constraint asserted from recall where the substrate was one file away.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JQKeKY9T9d95KpvHwwok8T
This commit is contained in:
David F Glidden
2026-08-23 10:52:35 +02:00
co-authored by Claude Opus 5
parent 3cddc8cf29
commit 073ef8a482
4 changed files with 237 additions and 7 deletions
+39
View File
@@ -239,6 +239,45 @@ that had nothing to do, and that is how five months of silence went unnoticed.
path unreachable from a restricted context), say that too; the diagnosis is in
`session-ledger-2026-04-16.md` and it is macOS Full Disk Access, not git and not rsync.
### 7.5. The daily note — finalise the day's work log
`01. Daily/YYYY-MM-DD.md` in the vault. **A session-start hook (`daybook-ensure.py`) has already
created it**, so this step never begins a file — it finishes one. If the note is still only the
skeleton, that is the failure this step exists to catch: the day's work was never written down as it
happened, and writing it all now from a compacted context is exactly the reconstruction the log is
meant to replace.
**Who it is for, and therefore how it reads.** The steward, on a day when he wants to know what we
did without reading `git log`. **Plain language.** Explain the jargon or drop it. Short sentences.
A reader who was not in the session must be able to follow it. This is the register the steward
asked for on 2026-08-23 — *"relatively simple terms"* — and it is the hardest part of this step,
because the executor's default register is dense, hedged, and written for itself.
**Shape** (steward-specified 2026-08-23):
- `## The day in short` — one paragraph. What actually happened, and why it mattered.
- `## <Project>` — **one H2 per project touched**, H3 beneath if it needs it. Project work goes
under its own heading, *not* into project folders. Put commit hashes here, inline, next to what
they did: `→ f1c91d9`.
- `## Decisions taken` — what was decided and *by whom*, briefly. Cross-project, so it stays global.
- `## Insights and exchanges worth keeping` — the distinctive section, and the one most likely to be
skipped under time pressure. A sentence that changed how we saw the problem; a correction that
landed; a phrase worth keeping. **Record the jurist's contributions here too** — rulings, design
gates and reasoning relayed by the steward reach this session and belong in the record the same
way the executor's do. Claude.app cannot write to the vault itself (its MCP surface,
`governance-mcp.py`, is structurally read-only and audited to stay that way), so this step is
where its side of the exchange gets kept.
- `## Open / next` — what is unfinished, with dates where they exist.
**Accrete DURING the session; do not save it all for the wrap.** A session that dies unwrapped loses
whatever only lived here — 2026-08-19 died exactly that way. The hook guarantees the file; only
writing into it as the day goes guarantees the content.
**Never rewrite a previous day's note.** It is a record, not a document under maintenance.
⚠ **Two previous attempts at this log died inside four weeks** — `daily-log/` (4 entries) and
`sessions/` (3), both Mar–Apr 2026, both abandoned without a note saying so. Neither had a trigger.
If this one lapses, say so in the wrap rather than letting it fade a third time.
### 8. Output
Produce a brief summary for the steward: