Grace-Mar operator cadence and tempo. Primary trigger: coffee. Coffee is a repeatable sip of coherence: a lightweight reorientation ritual that restores clarity, framing, and agency. Multiple coffee sessions per day are normal. Before Step 1 scripts run, synthesize the previous four events from work-cadence-events.md into plain-language **Recent rhythm** (no internal ops jargon or timestamps in chat). Work-start coffee runs the read-only grounding stack, then the fixed **five-option** menu **A–E** (Build, Steward, Strategy/daily brief, Write, system choice). No micro-hints line under the menu. Signing-off intent uses the same menu; closeout is merged into Step 1.
Preferred activation (operator): say coffee. Legacy hey still works as a compatibility alias, but coffee is the canonical trigger now.
Signing-off intent (end of session, wrapping the day, stepping away) uses the same coffee trigger and the same A–E menu. There is no separate closeout branch or closeout-only menu item. Step 1 switches to handoff-weighted output when intent is signing off; Step 2 is unchanged.
coffee is not a startup ceremony. coffee is a repeatable sip of coherence.
Its purpose is to help the operator become more awake to the actual situation, more coherent about priorities, and more directed about the next move. A coffee session does not need to complete the day's thinking. It only needs to improve orientation enough that action becomes easier.
Multiple coffee sessions per day are normal. That is not redundancy; it is the point. Each coffee is another sip.
coffee into a heavy maintenance ritual by default.coffee is for orientation; heavier consolidation belongs to dream.coffee and dream form a biological-cognitive pair:
coffee = repeated framing dose (many per day)dream = end-of-day consolidation pass (usually once)coffee should feel like a sip. dream should feel like sleep. See .cursor/skills/dream/SKILL.md § Cadence choreography for the day's sequence and data handoff.
When the operator begins with coffee (or clearly the same intent; legacy hey still counts), treat it as opening a coffee session.
Read first — operator_coffee.py appends a new coffee line at the end of a successful run, so the log must be read before those commands if the rhythm read is to exclude this session.
Open docs/skill-work/work-cadence/work-cadence-events.md. Below _(Append below this line.)_, collect lines matching - **YYYY-MM-DD HH:MM UTC** — kind (user) ….
Take the last 4 such lines already in the file. If there are fewer than four, use what exists; if none, Recent rhythm: (no prior events) in the reply.
Synthesize in plain prose — 2–4 short sentences for a human, not a telemetry dump: do not lead with a wall of key=value pairs. Companion-facing UX: label this block Recent rhythm (or prose only); do not put dates, UTC, or clock times in this prose (use order and light anchors like “after dream,” “then bridge,” “earlier today” without timestamps). Must anchor in specifics from those four lines — name what actually happened (e.g. bridge with commit refs if present, coffee work-start vs standard, thanks park text when non-empty, dream pass/fail or integrity/governance in ordinary words, harvest packet vs not). Avoid generic process filler that could apply without reading the file. Do not paste raw log lines unless they are already very short.
Cadence voice: Follow the cadence voice principle (work-cadence README). Lead with felt acknowledgment of what was settled or decided, end with the optimal next direction. Use "we" framing. The operator should feel seen, grounded, and ready — not debriefed. Name what was learned or decided, not what was executed. No commit hashes, no process names — warm, direct, future-facing.
In the reply, place Recent rhythm: at the top of Step 1 content (immediately before script output / warmup paste). Same rule for signing-off Step 1 (before operator_coffee.py --mode closeout or handoff-only flow).
If the file is missing or empty below the anchor, state that under Recent rhythm and continue Step 1.
Detect intent
Work-start Step 1 — run the consolidated coffee script (preferred):
python3 scripts/operator_coffee.py -u grace-mar # work-start (default)
python3 scripts/operator_coffee.py -u grace-mar --mode light # lighter pass
python3 scripts/operator_coffee.py -u grace-mar --mode minimal # compact harness only
python3 scripts/operator_coffee.py -u grace-mar --mode reentry # cold-thread full stack
Signing-off Step 1 — handoff-weighted (same trigger coffee, not a second ritual name):
python3 scripts/operator_coffee.py -u grace-mar --mode closeout
Or directly: python3 scripts/operator_handoff_check.py -u grace-mar. Include the output in your reply. Add a short paragraph: what moved today, what is parked, gate + Jiang carryovers, suggested re-entry prompt. Full spec: .cursor/skills/handoff-check/SKILL.md.
If the operator explicitly wants both full warmup and signing-off in one message, run work-start then append handoff (rare).
Add --compact for shorter harness output. Individual scripts (operator_daily_warmup.py, harness_warmup.py, operator_handoff_check.py, operator_reentry_stack.py) are still available.
Dream handoff: If dream ran overnight, the daily warmup automatically includes a "Last dream (night handoff)" block from users/grace-mar/last-dream.json. Default: that block is collapsed (status, digest counts, tomorrow hint). After that block (or alone if the Last dream section is turned off), warmup prints one line Dream → coffee menu: mapping dream’s suggested execution path to A / B / C (Build / Steward / Strategy · daily brief) — operational hint only; see dream/SKILL.md § Five-second closeout. Extra lines (civ-mem summary, coffee 24h rollup) are off by default; tune config/context_budgets/coffee.json or pass --show-civ-mem / --show-rollup on operator_daily_warmup.py, operator_coffee.py, or operator_reentry_stack.py. Approximate paste footprint: python3 scripts/audit_context_tax.py -u grace-mar. These files are operator scaffolding, not Record. For full paths / snippets / followups, use --verbose-dream. When pasting warmup for the operator, prefer collapsed unless they ask for detail.
Step 1 deliverables (work-start): Warmup brief (priorities, gate, work-politics snapshot where relevant, integrity), branch snapshot, daily brief + intel defer line (path pattern + menu C — Strategy (daily brief) when ready), optional PH/Jiang line. No Polymarket / poll / Massie blocks in Step 1 unless the operator explicitly asked in the same message.
Step 1 guardrail: Stay read-only — no merge/stage unless they switch lanes or use a pipeline phrase ("we …").
Done when: Script output is pasted in the reply, Recent rhythm is at the top, and the A–E menu follows immediately.
For cadence tables and explicit phrase definitions (coffee light, coffee minimal, coffee survey): see menu-reference.md.
The operator may say coffee more than once per calendar day for reorientation. This is normal. Each new coffee runs Step 1 again and starts a new A–E cycle. If coffee arrives mid-hub, treat it as a reorientation restart: run Step 1 again, then offer a fresh A–E menu.
Immediately after Step 1 content, output only this fixed menu — five lines, lettered A through E. Do not add a second line of micro-hints, fork shorthand, or F/G/Xavier/Dev tags under the list.
A. Build
B. Steward
C. Strategy (daily brief)
D. Write
E. (system choice) — <one short line: the single best alternate lane this session>
Filling E — (system choice): Pick one concrete slice for this turn, using Step 1 context — e.g. work-xavier next (ground in coffee_lane_next_hints / SYNC-DAILY / INDEX), work-dev next from workspace.md § Next actions, work-strategy-rome / ROME-PASS (Compass-style), work-jiang / PH (Book-style), or match Dream → coffee menu when it points at a path not already covered by A–D. State it plainly in the angle-bracket line; do not add a separate “micro-hints” row.
Step 1 context for E: operator_coffee.py prints Lane context (for menu E) — two lines from scripts/coffee_lane_next_hints.py (work-xavier + work-dev). Use when choosing E or when wording the E line.
Optional load note: Step 1 may print Session load: … (recommended: X). You may mention that one recommended letter in prose before or after the five lines — not as a second labeled menu block and not as micro-hints under the list.
Quick reference (modes):
A. Build — work-dev + skills/meta (not git/ship or full membrane audits — those are B): docs/skill-work/work-dev/ + work-dev-sources.md; skills / meta when skills / meta with A. One prescribed next action. Detail: menu-reference § Build — detailed scope (legacy letter B in that doc = current A).
B. Steward — Governance membrane: gate | template/boundary | integrity/exports | git/ship. Default if the operator says B only: gate if pending candidates; else template/boundary. B integrity / B git / B ship → that track; B both / B all as in menu-reference — Steward. Gate merges never without companion approve + process_approved_candidates.py.
C. Strategy (daily brief) — Two-stage flow (default; do not collapse to intel-only): (1) Daily brief path — generator and/or daily-brief-YYYY-MM-DD.md, §1d / §1e / §1g / §1h (PRC / IRI when load-bearing), optional KY-4 (Polymarket, polls, Massie X per cadence). (2) In the same turn, offer Tri-Frame minds Barnes → Mearsheimer → Mercouris, wait for which mind, then daily-brief-minds-menu.md. Do not end C on polls alone unless intel only / no tri-frame / survey-only. Companion survey when coffee survey. See menu-reference — Tri-Frame.
D. Write — self-skill-write-shaped work: companion-facing prose discipline, prompts, PRP, Lexile ceiling, bot/prompt proposals (not merge) — skills-modularity.md. Not work-dev implementation (A) and not strategy field brief (C).
E. (system choice) — As filled on the menu line; typically one of: Xavier next, Dev next (workspace), Compass/Rome, Jiang/PH — one step.
Exit / re-offer: After A, B, or E, re-offer the full A–E menu by default. After C or D, exit to normal workflow unless stay in coffee. After B (Steward), see menu-reference § Steward follow-up fork (replace legacy E with B when reading that section). Synonyms B+ship / EXECUTE ≈ Implement now on steward track.
Legacy A–G detail tables in menu-reference.md still describe workloads; map letters: old Daily Brief → C, Build → A, Steward → B, Compass/Book/F/G → usually E (system choice) unless you fold Rome/Jiang into C/D as appropriate.
Done when: The operator has picked a letter (or combo), the selected branch has been executed, and the re-offer or exit rule has been applied.
Sessions begin when the operator says coffee (optional modifiers). To keep a trail: use users/<id>/session-transcript.md and/or append dated bullets to docs/skill-work/work-*/*-history.md. Not the gated Record; not self-memory. See work-menu-conventions.md.
Each successful coffee run appends one line to docs/skill-work/work-cadence/work-cadence-events.md via scripts/log_cadence_event.py. This is automatic — no operator action required. The line always includes cursor_model=… (audit parity with bridge/harvest Agent surface): set CURSOR_MODEL in the environment, or pass --cursor-model "…" to operator_coffee.py, using the model name from the Cursor UI. If unset, unknown.
After the operator states their menu letter (and steward track if B), the assistant may append a coffee_pick cadence line (same file) for rollup:
python3 scripts/log_cadence_event.py --kind coffee_pick -u grace-mar --ok --kv picked=B steward=gate --cursor-model "<from Cursor UI>"
(steward= only when picked=B; values: gate, template, integrity, git, both, or all.) Optional: scripts/log_operator_choice.py --context COFFEE --picked B for session-transcript.md.
docs/skill-work/work-cadence/README.md — Cadence choreography (ordering, handoffs, Step 0 recent rhythm window depths, harvest vs triad)docs/skill-work/work-coffee/README.md — territory rationale and boundariesdocs/skill-work/work-coffee/menu-reference.md — cadence, survey track, signing-off add-ons; legacy A–G workload tables (map to A–E per Step 2 above)docs/skill-work/work-coffee/work-coffee-history.md — lane breadcrumbsdocs/skill-work/work-cadence/work-cadence-events.md — per-run cadence telemetry.cursor/skills/dream/SKILL.md — night-side counterpart.cursor/skills/thanks/SKILL.md — micro-pause cadence (thanks; not a substitute for coffee / dream / bridge)docs/skill-work/work-politics/polling-and-markets.md — KY-4 polling (menu C — Strategy (daily brief))docs/skill-work/work-strategy/daily-brief-minds-menu.md — Tri-Frame three minds (Barnes / Mearsheimer / Mercouris) for C — Strategy (daily brief) second stagedocs/skill-work/work-politics/america-first-ky/guardrail-stress-test.md — messaging discipline