Wednesday Session Lifecycle — Operator Guide

What it is, in one line: the handful of commands that start, close, hand off, and persist a Wednesday working session — and the one confusion to avoid (handoff ≠ commit ≠ push). Same triggers on every runtime (Claude Code, Telegram, Codex). Unchanged by the “Wednesday possesses Hermes” rework (2026-05-29) — that added boot checks, not new commands.


Start a session

boot wednesday — the full start

Runs the canonical boot path: MCP scan, vault audit, agentic-OS health, daemon health, bus anomalies, active lessons, skill surface, state-drift check, self-check → then enters active posture with a one-line verdict (clean / warn / blocked / stale).

You’ll now also see (added 2026-05-29): [AGENTS] surfaced=N, [CAPS] skills cc=…/hermes=…, [LEARNING] N candidate(s). Those are status lines, not new commands — just richer awareness at boot.

The existing [CAPS] line also reports behavior: endpoint:attachments=<status> for the workspace-md3/Familiars attachment extractor. ok means the offline extractor harness completed with its expected exit; broken means it completed with another exit; and present (unprobed) means the scanner could not execute it because metadata or the executable was invalid or missing, the launch failed, or it timed out. The latter two states carry a warning marker. This is a local extractor probe, not a claim of literal Apple Reminders attachment coverage.

Use it: at the start of any real working session. If anything is stale or blocked, Wednesday stops and tells you — she won’t pretend the state is clean.

load wednesday — inspect only

Reads the boot file and stops in inspection state. No self-check, no active posture. Use when you want to look without “starting” her.

wake wednesday — resume after a load

Assumes a load wednesday happened earlier in the same session. If not, she says the self-check was skipped and points you to boot wednesday.


Close a session

close session / /session-close — the proper full close

Runs the session-close gate (mandatory before any “session safe / good state” claim):

  1. Updates runtime_state.json (phase + last meaningful session + trimmed pending).
  2. Appends a runtime_notes_trail entry (incl. realignments — your mid-session corrections, quoted).
  3. Overwrites scratchpad.md current focus (old → archive).
  4. Updates memory for anything that changed.
  5. Re-reads + cross-checks phase consistency. Any mismatch → STOP + fix + re-run.

This is the closing trigger. A commit usually happens here as hygiene. Push does not — see below.


Hand off mid-task (NOT a close)

handoff

Writes task_handoff.md so another LLM runtime can pick up an unfinished task (e.g. you hit a Claude rate limit and want to continue on Codex). Wednesday asks for: task name, done steps, next steps, context. Any runtime surfaces it on next boot.

Important — handoff is NOT how you commit or push. It only carries task state across a runtime switch. It writes one file. No git, no close.

clear handoff

Blanks task_handoff.md (task: "—"). Use when the task is done or the handoff is no longer needed.


Persist to git (commit & push)

  • commit — happens at close as hygiene (Wednesday commits the state/work). The vault tracks state files, so a close commit keeps history.
  • pushexplicit, never automatic. There IS a remote (origin/main). Local commits accumulate until you say push. (As of 2026-05-29 there were 34 commits parked locally — push only happens on your word.)

If you want everything on the remote, end with: close session → then push.


Cross-runtime parity (maintenance)

wednesday sync-all (or run _infra/scripts/wednesday-sync-all.py)

One command that brings every runtime to the same capability set (persona/SOUL + Claude-Code skills + agents + Hermes skills + MCP registry + capability registry). Run it after adding/editing skills or agents so Telegram-Wednesday and Claude-Code-Wednesday don’t drift apart. Boot already audits this and tells you if something’s stale.


Quick reference

You want to…SayWhat it doesAuto-commit?Auto-push?
Start workingboot wednesdayfull boot + health + self-check
Just lookload wednesdayinspect, no start
Resume after loadwake wednesdayenter posture
Close properlyclose sessionstate + scratchpad + notes + memory + verifyusually (hygiene)
Switch runtime mid-taskhandoffwrites task_handoff.md
Drop a handoffclear handoffblanks it
Upload to remotepushgit push origin main✅ (explicit)
Re-sync all runtimeswednesday sync-allparity across Claude/Telegram/etc.

The one confusion to avoid

handoff, close session, and push are three different things:

  • handoff = “I’m switching runtime mid-task.” (one file, task state)
  • close session = “we’re done for now.” (state files + verify; commit as hygiene)
  • push = “put the commits on the remote.” (explicit, on your word)

A clean end-of-day is usually just: close sessionpush. You only use handoff when a task is unfinished and you’re changing which LLM continues it.


Status (2026-05-29)

Triggers unchanged by the Hermes-possession rework. Boot now surfaces extra status lines ([AGENTS], [CAPS], [LEARNING]) + an MCP scan; the session-close gate dropped its old skill-review step. Canonical command definitions live in CLAUDE.md (root) — this guide is the operator-facing summary.