Orion/.agents/skills/orion-daily/SKILL.md
Avi a66996ac10 Orion vault — clean initial history
Knowledge vault (Orion/PARA) migrated from the pre-Orion 484vault on
2026-10-01. Deliberately orphaned: prior history contained a plaintext
password and stays local-only on branch archive/pre-boilerplate-history.
Secrets and live Hermes state are gitignored.
2026-10-02 08:34:48 -05:00

145 lines
8.6 KiB
Markdown

---
name: orion-daily
description: "Close today's daily note in an Orion vault's 0. Inbox/ and write tomorrow's — or write a weekly sweep. The daily note: Focus, Since the last note, one section per workstream that owes something (where it stands · yours · waiting on · a Notes line), Loose, the open-questions manifest, People with what each is tied to, Standing. Carries unanswered questions with a plain-language count and forces a do-it-or-drop-it choice at the third ask. Hard cap 150 lines. The weekly sweep lists every Area, workstream, thread and person with one line each and room to write. Does not ingest — run orion-ingest first, orion-cascade after. Triggers on: daily note, tomorrow's note, close the day, weekly sweep, sweep note."
---
# orion-daily — the daily note and the weekly sweep
`hot.md` says what's true. **The daily note says what only the owner can answer, and what's quietly drifting.** It is a working surface: the owner writes into it all day, `orion-ingest` files what they write, and this skill builds the next one.
| | Daily note | Weekly sweep |
|---|---|---|
| **Job** | What's owed today and what's drifting | Everything tracked, one line each, room to write |
| **Length** | 150 lines, hard | No cap — one line per item |
| **File** | `0. Inbox/YYYY-MM-DD daily.md` | `0. Inbox/YYYY-MM-DD weekly-sweep.md` |
| **Tag** | `daily-note` | `weekly-sweep` |
| **Skeleton** | `6. Templates/daily-note.md` | `6. Templates/weekly-sweep.md` |
**The usual sequence at close of day:** `ingest` → `daily note` → `cascade`.
⛔ Fenced paths (`AGENTS.md`, *Fences*) are named, never read.
---
## Before anything: is the current note fully filed?
Check every `>` line in the current note. **A question or `> Notes:` line with text after it and no `✓ filed` marker means ingest hasn't run. Stop and say so.** Generating a successor around unfiled text loses it.
**If a hold is open** (`wiki/meta/holds.md`): don't generate a note unprompted. If asked, render no ages, don't increment ask counts, and say at the top that a hold is open and nothing is late.
---
## Daily note
### 1. Read
The current note and the last week of notes (current first) · every live `*_hub.md` · `3. Resources/People/` · `3. Resources/Threads/` · open decisions in `4. Decisions/` · `wiki/meta/open-questions.md` · `wiki/meta/holds.md` · `wiki/log.md` entries since the last note.
### 2. Carry what wasn't answered
For every `>` line in the current note:
| State | Action |
|---|---|
| Answered, `✓ filed` | Done. Don't carry |
| `> Notes:` with text, `✓ filed` | Done |
| Blank question | **Carry it.** Increment its count |
| Deferred ("not now", a date) | Carry with the date given |
| Empty `> Notes:` | Ignore |
**Every carried item says how many notes have asked it:** `asked 3 times since Jan 5`. **A blank is data, not a failure — never nag.**
⚠ **At the third ask, the item becomes a forced choice: do it, or drop it.** Something carried three times isn't a task; it's a decision nobody has made. "Carry it again" is not an option.
### 3. Gather state
- **Sends and waits** from live hubs' `next:` — same ageing and hold rules as cascade.
- **Workstreams:** ⚠ **an `open` workstream gets a section only when something is owed on it today, the owner worked on it, or something external moved it.** Listing every open workstream daily is a nag list. The weekly sweep lists all of them.
- **People:** relationship tier — overdue, due today, due within 7 days — **and for each, what they're tied to** (a workstream, a send, a thread), read from their page and the hubs that name them. Never inferred. Spent follow-ups compute a live date → `_contracts.md`.
- **Open questions:** the full register.
### 4. Surface something — only if it's real
One to three findings from the vault that sit on no tracked list: two blocked items that are really one conversation · a person best placed to answer a question nobody asked them · a claim asserted and never verified · a follow-up pointing at work that has closed. Put each inside the workstream it concerns, or under `## Loose`.
**If nothing qualifies, surface nothing.** Padding teaches the owner to skim the one part worth reading.
### 5. Write it
Sections, in order:
1. **`## Focus`** — what today is about. Three lines, no lists.
2. **`## Since the last note`** — up to five bullets. Omit if nothing changed.
3. **One `##` per workstream that owes something** — the owner's own work first, then work waiting on others:
```markdown
## WEB-3 · Pricing Page — quote owed to the designer
**Where it stands:** one or two plain sentences. → [[<hub path>|hub]]
**Yours:**
- [ ] Send Sam the revised quote — 6 days, asked twice since Jan 5
**Waiting on:** Sam Example — copy review, 3 days · or nobody
> Notes:
```
The heading is **ID · Name — what is actually owed**. `Where it stands`, `Yours` and `Waiting on` always appear. Every workstream section ends with `> Notes:`.
4. **`## Loose`** — real items belonging to no single workstream, one `###` each, each ending `> Notes:`. Omit if empty.
5. **`## Open questions — N live`** — every live question from the register, numbered, `- [ ]` where the owner can close it. Every note.
6. **`## People`** — `N armed · N overdue · N defects`, then Overdue (oldest first) and Due in the next 7 days, each with what they're tied to. **Say plainly when a follow-up points at closed work.** Every note — "nobody is due" is an answer.
7. **`## Standing`** — holds, structural facts. Three lines max.
### Question blocks — three tests
A `> **Question?**` block is how the owner answers things. Every block must pass all three:
1. **Is it the owner's to decide?** If you can act, act.
2. **Does anything change based on the answer?** If both answers lead to the same action, there's no question.
3. **Is the premise still live?**
**If you can't write the question, there isn't one.** Keep the finding, drop the block. `> Notes:` lines aren't questions and are exempt.
### Format
- **Plain language.** `asked 3 times since Jan 5`, `19 days`, `12 days overdue (Jan 3)`. Only `✓ filed` and IDs stay machine-shaped.
- Real `##`/`###` headings for every section — they're how the note is navigated and collapsed.
- **Bold** for the decision point and the three labels. At most two or three ⚠ in the whole note.
- **Don't reproduce `hot.md`'s tables.** A send named inside its own workstream is context, not restatement.
- **150 lines, hard.** Cut in this order: context the owner already knows · prose restating a question · *Since the last note* to three bullets · surfaced findings beyond the strongest two.
### 6. Retire the old note
**Only after the new note exists on disk**, move the old one to `0. Inbox/processed/YYYY-MM/`. Refuse, and say why, if any line is unfiled or the successor wasn't written. **This skill is the only thing that retires a daily note.**
---
## Weekly sweep
On request (`weekly sweep`), or offered in `## Standing` when a week has passed since the last one. **Never auto-generated.**
**Everything, one line each**, from `6. Templates/weekly-sweep.md`:
- **Every standing Area**, with **every workstream** under it — open and paused, status named. Fenced Areas named with no contents.
- **Every thread.**
- **Every person:** relationship tier individually, with what they're tied to · **Released** — relationship-tier people named on a `Released:` line in `wiki/log.md` since the last sweep (written by `orion-close`/`orion-archive`), or whose follow-up points only at closed work · contacts grouped by Area, one line each (`Unplaced` for people tied to nothing live).
- **A `> Notes:` line under every workstream and thread**, and one per contact group.
- **The open-questions manifest.**
A checkbox means **reviewed**, not a task. A ticked box with no note means nothing changed. **Tier and follow-up dates are the owner's call** — the sweep lists, it doesn't change them.
**Retiring a sweep:** when the next sweep is generated or the owner says it's done — and only once every Notes line with text is `✓ filed`.
---
## Rules
- **Never generate a successor around unfiled text.**
- **Blank is data. Carry it, count it, never nag. Three asks forces do-it-or-drop-it.**
- **Workstream sections: Where it stands · Yours · Waiting on · Notes.** Same shape every time.
- **People lines say what each person is tied to.**
- **Surfaced findings are real or absent.**
- **150 lines for the daily note.** One line per item for the sweep.
- **An open hold suppresses every age and freezes ask counts.**
- **Doesn't ingest, doesn't cascade.** Only this skill retires a daily note or sweep.