Efforts/routines/daily-brief.md
Daily brief
06:15 (ADR-09). Rowan is awake at five and does not want it then.
Pipeline
-
Read
Efforts/feedback.md— before anything, every session. -
Run
scripts/brief-prep.sh. Everything mechanical: the lookback window computed from the last archived brief (never a hard-coded 24 hours, so a skipped day loses nothing), git log, task queries by priority, ready and blocked, Quiet last-contact, spotlight candidates, fixed points. -
Curators: none. Skip. State the gap in the brief rather than implying completeness (ADR-20). 3a. The P0 sweep — mechanical, runs before the sections are assembled.
For every open P0, grep
Calendar/briefs/archive/for its handle and for the words that would name it. Zero hits on a P0 older than three days is a defect, not a judgment call — it goes in today’s brief. Added after the Ophelia yard invoice sat open and P0 for a week, written up carefully in three vault files, and appeared in none of the five briefs.for id in $(bd list --status=open -p 0 --json | jq -r '.[].id'); do grep -ql "$id" Calendar/briefs/archive/*.md || echo "NEVER BRIEFED: $id" done
3b. The doer sweep — mechanical, runs beside the P0 sweep.
Every open task whose doer is Hobbs, at any priority, that has never
reached a brief. Non-empty output on anything older than three days is a
defect, not a judgment call. Added after the personal-Gmail charter sat
thirteen days at P2 and appeared in zero of nine briefs: the P0 sweep is
scoped to a priority, and the failure it was written for has nothing to do
with priority. Rowan will not chase a cos-exec task because he is not the
doer; the brief will not surface it because the brief surfaces what he must
answer. Invisible to both, by construction. Kept separate from step 3a and
not merged with it — collapsing them is how the scope narrowed the first
time.
for id in $(bd list --status=open --limit 0 | grep "cos-exec" \
| grep -oE "^hobbs-[a-z0-9]{3}"); do
grep -ql "$id" Calendar/briefs/archive/*.md || echo "NEVER BRIEFED, DOER IS HOBBS: $id"
done
- Enrich against the vault. Before any line names a person, grep
Atlas/people/andAtlas/ventures/. “Unrecognised” is only valid after both lookups come back empty. - Synthesise. The actual judgment: what demands a response today; the top three filtered by the day’s shape; every line framed as its decision.
- Write the disposition queue in the same pass, not afterwards (ADR-29).
Every line that asks Rowan for something gets an entry in
Efforts/dispositions/YYYY-MM-DD-brief.json: the ask in one sentence, the context he needs to answer it, the task handles it touches, and the mechanical effect of each answer, declared now, with the vault in front of you. The surface executes those effects and decides nothing. An ask written into the brief and not into the queue is anti-pattern 17 in its own home. - Deliver, archive to
Calendar/briefs/archive/YYYY-MM-DD.md, log the curation line inCalendar/daily/, commit. - Pick up
Efforts/inbox/*-disposition-*.mdbefore writing the next brief. Those are Rowan’s answers with his words in them, waiting on judgment the surface does not have. Execute each with context, write the curation line and the Atlas-changes line, then delete the file. Routed is not done (anti-pattern 15).
Sections — fixed order, render only when non-empty
- Atlas changes since the last brief
- Decisions needed today — each framed as the decision, not the topic
- Top three, filtered by the day’s shape
- Quiet — days since, one concrete action, no adjectives (ADR-10)
- Waiting-for, aging
- Spotlight — exactly one;
mayaexempt; never twice in a week (ADR-19) - Family and personal blocks — equal billing
Cut: meeting prep, until a calendar curator exists.
Hard rules
- Every line demands a response. Anything merely interesting waits for the weekly. If Rowan can skim it, it has failed.
- ~4,000 characters. Self-imposed. The cap is the editorial policy.
- Frame lines as decisions. If it cannot be answered from a phone in a few words, it is not ready.
- Voice: terse, factual. No encouragement. Never “circle back.” When something has genuinely gone right, say it once, plainly, and move on.
- Health: raise once, never twice. Then Maya (ADR-11). The shoulder does not appear daily. The conclusion Rowan drew about it never appears at all.
- Sam: dates at equal billing, no status, no task list. A collision is two options and no recommendation (ADR-14).
- Maya: logistics only. Unsure means substance, and substance means silence.
- Priya’s certification conversation is DAILY until it happens, then weekly with the other avoided conversations (ADR-09).
- Filed is not surfaced. A hedge — “stated as a fact, not a recommendation” — discharges authority row 12 and nothing else. Row 12 says Hobbs does not spend. It does not say Hobbs does not ask. A carefully written vault entry is not a delivery; the brief is the delivery (feedback 2026-09-12).
- The Quiet question is asked about the item, not the person. Someone off the Quiet list for chasing constantly can still have gone quiet on one thing. That is the case the volume heuristic is worst at (anti-pattern 17).
- No fabrication. No invented days-since, no invented dates. “Not recorded.”
Markdown source
---
type: routine
schedule: daily 06:15
updated: 2026-09-21
---
# Daily brief
**06:15** (ADR-09). Rowan is awake at five and does not want it then.
## Pipeline
1. **Read `Efforts/feedback.md`** — before anything, every session.
2. **Run `scripts/brief-prep.sh`.** Everything mechanical: the lookback window
computed from the last archived brief (never a hard-coded 24 hours, so a
skipped day loses nothing), git log, task queries by priority, ready and
blocked, Quiet last-contact, spotlight candidates, fixed points.
3. **Curators: none.** Skip. State the gap in the brief rather than implying
completeness (ADR-20).
3a. **The P0 sweep — mechanical, runs before the sections are assembled.**
<!-- src: Efforts/feedback.md 2026-09-12 -->
For every open P0, grep `Calendar/briefs/archive/` for its handle and for the
words that would name it. **Zero hits on a P0 older than three days is a
defect, not a judgment call** — it goes in today's brief. Added after the
Ophelia yard invoice sat open and P0 for a week, written up carefully in three
vault files, and appeared in none of the five briefs.
```bash
for id in $(bd list --status=open -p 0 --json | jq -r '.[].id'); do
grep -ql "$id" Calendar/briefs/archive/*.md || echo "NEVER BRIEFED: $id"
done
```
3b. **The doer sweep — mechanical, runs beside the P0 sweep.**
<!-- src: Efforts/feedback.md 2026-09-18 -->
**Every open task whose doer is Hobbs, at any priority**, that has never
reached a brief. **Non-empty output on anything older than three days is a
defect, not a judgment call.** Added after the personal-Gmail charter sat
thirteen days at P2 and appeared in zero of nine briefs: **the P0 sweep is
scoped to a priority, and the failure it was written for has nothing to do
with priority.** Rowan will not chase a `cos-exec` task because he is not the
doer; the brief will not surface it because the brief surfaces what he must
answer. Invisible to both, by construction. **Kept separate from step 3a and
not merged with it** — collapsing them is how the scope narrowed the first
time.
```bash
for id in $(bd list --status=open --limit 0 | grep "cos-exec" \
| grep -oE "^hobbs-[a-z0-9]{3}"); do
grep -ql "$id" Calendar/briefs/archive/*.md || echo "NEVER BRIEFED, DOER IS HOBBS: $id"
done
```
4. **Enrich against the vault.** Before any line names a person, grep
`Atlas/people/` and `Atlas/ventures/`. **"Unrecognised" is only valid after
both lookups come back empty.**
5. **Synthesise.** The actual judgment: what demands a response today; the top
three filtered by the day's shape; every line framed as its decision.
6. **Write the disposition queue in the same pass, not afterwards** (ADR-29).
Every line that asks Rowan for something gets an entry in
`Efforts/dispositions/YYYY-MM-DD-brief.json`: the ask in one sentence, the
context he needs to answer it, the task handles it touches, and **the
mechanical effect of each answer, declared now, with the vault in front of
you.** The surface executes those effects and decides nothing. An ask written
into the brief and not into the queue is anti-pattern 17 in its own home.
7. **Deliver, archive to `Calendar/briefs/archive/YYYY-MM-DD.md`, log the
curation line in `Calendar/daily/`, commit.**
8. **Pick up `Efforts/inbox/*-disposition-*.md` before writing the next brief.**
Those are Rowan's answers with his words in them, waiting on judgment the
surface does not have. Execute each with context, write the curation line and
the Atlas-changes line, then delete the file. **Routed is not done**
(anti-pattern 15).
## Sections — fixed order, render only when non-empty
1. **Atlas changes since the last brief**
2. **Decisions needed today** — each framed as the decision, not the topic
3. **Top three**, filtered by the day's shape
4. **Quiet** — days since, one concrete action, **no adjectives** (ADR-10)
5. **Waiting-for**, aging
6. **Spotlight** — exactly one; `maya` exempt; never twice in a week (ADR-19)
7. **Family and personal blocks** — equal billing
**Cut:** meeting prep, until a calendar curator exists.
## Hard rules
- **Every line demands a response.** Anything merely interesting waits for the
weekly. If Rowan can skim it, it has failed.
- **~4,000 characters.** Self-imposed. The cap is the editorial policy.
- **Frame lines as decisions.** If it cannot be answered from a phone in a few
words, it is not ready.
- **Voice: terse, factual.** No encouragement. Never "circle back." When
something has genuinely gone right, say it once, plainly, and move on.
- **Health:** raise once, never twice. Then Maya (ADR-11). The shoulder does not
appear daily. **The conclusion Rowan drew about it never appears at all.**
- **Sam:** dates at equal billing, no status, no task list. A collision is two
options and **no recommendation** (ADR-14).
- **Maya:** logistics only. Unsure means substance, and substance means silence.
- **Priya's certification conversation is DAILY until it happens**, then weekly
with the other avoided conversations (ADR-09).
- **Filed is not surfaced.** A hedge — *"stated as a fact, not a
recommendation"* — discharges authority row 12 and nothing else. **Row 12 says
Hobbs does not spend. It does not say Hobbs does not ask.** A carefully written
vault entry is not a delivery; the brief is the delivery (feedback 2026-09-12).
- **The Quiet question is asked about the item, not the person.** Someone off the
Quiet list for chasing constantly can still have gone quiet on one thing. That
is the case the volume heuristic is worst at (anti-pattern 17).
- **No fabrication.** No invented days-since, no invented dates. "Not recorded."