agentleFS
jwm-axonijwm-axoni/claude-workbench/skills/eod-recap/SKILL.md

eod-recap

Skill2 starsChanged 6 days agoMITView on GitHub

Workbench routine. Sweeps every reachable source once at the end of the workday and writes the one account of the day to Daily/YYYY-MM-DD_DAILY_RECAP.md, with a source and date on every line, then grades the morning briefing's claims and every saved draft (sent verbatim, edited, or not sent) into Tracking/Signals/YYYY-MM-DD_recap.md, and collects answers to the briefing digest. The nightly dream and the weekly build on this file instead of going back to the sources. Runs as "[Workbench] End-of-Day Recap"; can be run by hand with /workbench:eod-recap.

1 other project uses a version of this.

Adopted by

Most recently taken up by

  • Other versions1 project uses a version of this.

    Word for word · 0

    None found.

    Edited · 0

    None found.

    Wrote their own version · 1

    1. alirortb/claude-uxr-skills★ 1same name

    How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.

  • In this repository10 other files it gives its agents.

The file

We split this skill into the rules it gives an agent

7 rules. About 0 are common, 1 is distinctive, and 6 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈1

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 6

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Read in this order, and let the earlier source win when it already settles something:

    line 24
  2. Very specific:

    Every tool Context/me.md marks reachable, for the whole workday, in the role pack's order: calendar (what actually happened, not what was …

    line 41
  3. Very specific:

    Every line under Decisions, Commitments and What happened carries source: (which tool, which message/meeting/time) and date:.

    line 91
  4. Very specific:

    Add to the Signals file under ## Drafts, one line each, and for edits say what changed in a few words, without copying the sent text:

    line 145
  5. Very specific:

    If the briefing digest went out by Slack or email, read the owner's replies to it today.

    line 156
  6. Very specific:

    If you run more than 2 hours after the scheduled time, add late: true and scheduled: HH:MM to the frontmatter and say so under the title: …

    line 168
  7. Very specific:

    Check the previous workday.

    line 174

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

End-of-day recap

The recap is the record of the day. Every source reaches the vault through it. The dream and the weekly read it instead of forming their own picture, so two routines never describe the same day differently. Completeness and provenance matter more here than polish.

You own two files: Daily/<today>_DAILY_RECAP.md and Tracking/Signals/<today>_recap.md, plus Daily/<date>_RECONSTRUCTED_RECAP.md for a workday whose recap never ran (see below). Nothing else, except your one appended line in Tracking/Signals/RUN_LEDGER.md.

Read first

Root CLAUDE.md, Context/me.md, People/NAME_VARIANTS.md, Resources/GLOSSARY.md, and today's Daily/<today>_MORNING_BRIEFING.md (including intraday updates) and _CALENDAR.md if present. Then Tracking/Captures/<today>.md if it exists: the owner's project chats from today.

Source order (binding)

Read in this order, and let the earlier source win when it already settles something:

  1. Today's captures (Tracking/Captures/<today>.md), first. Cite the capture for any claim it supports (source: capture 14:20). A settled fact that's already in a capture is never re-derived from scratch from email or chat; the capture is the owner's own account of it.
  2. Calendar events: what actually happened, from today's calendar file or the connector.
  3. Meeting notes: files in Meetings/ if it exists, or, when .workbench/profile.json has meetings_via: connector, today's meetings through the recorder's connector (summary, decisions and next steps only; never pull a transcript).
  4. Project and people pages, for what was already known going in.
  5. Git activity, if the vault is a git repository: commits made today, including cloud routine branches.

The live sweep below fills in what those don't cover.

Sweep the sources

Every tool Context/me.md marks reachable, for the whole workday, in the role pack's order: calendar (what actually happened, not what was planned), email (received and sent: sent items are how you learn what the owner did), chat DMs, mentions and key channels, tickets and tasks, CRM or other role sources, code host, docs edited. If meetings come through the recorder's connector, read today's meetings there the same way: summary, decisions, next steps, cited as `source: <tool> meeting

<title> HH:MM`. If `Meetings/` exists, every meeting file dated today, **above the `## Transcript` marker only**, plus their `Next Steps` and `Decisions` lines.

Skip personal email and personal meetings entirely. Skip anything in "Calendar blocks that never appear in a brief".

Recap file shape

---
type: daily-recap
date: YYYY-MM-DD
tags: [daily, recap]
status: active
source: claude-routine
---

# Daily recap — YYYY-MM-DD (Weekday)

## Decisions made today
- Moved the Acme pilot to January — decided by [[Pat Lee]] `source: email 14:02` `date: YYYY-MM-DD` `evidence: "let's move the pilot to January"` `confidence: 0.95`

## Commitments
### Owed by {owner}
- [ ] Send revised pricing — to [[Sam Ortiz]], by Fri `source: meeting 2026-…-acme-sync` `date: …` `evidence: "I'll send revised pricing by Friday"` `confidence: 0.90`
### Owed to {owner}
- [ ] Legal review of MSA — [[Dana Kim]], no date `source: chat DM 11:40` `date: …` `evidence: [[Acme MSA]] Open commitments (mine)/line 2` `confidence: 0.80`

## What happened
Grouped by project or relationship, each line with `source:` and `date:`. People, orgs, projects
and tools as bare [[wikilinks]] where a page exists; plain names where one doesn't.

## Wins
## Open follow-ups (carrying into tomorrow)
## Tomorrow — prep
Meetings tomorrow that need something prepared, from tomorrow's calendar file or the connector.

## New names and terms
People, orgs, tools or terms seen today with no page or glossary entry. The dream decides what to
create; you only list them, with the source each came from.

## Notes
Sources unreachable or skipped, and anything ambiguous the dream should know about.

Every line under Decisions, Commitments and What happened carries source: (which tool, which message/meeting/time) and date:. A line without provenance can't be filed by the dream, so it's a bug. Every new line there also carries its lineage: evidence:, a verbatim quote of 25 words or fewer in double quotes or a page reference in the form [[Page]] section/line, and confidence:, the same 0–1 grade the briefing's claims use. Lines written before v0.2.0 don't have them; leave those as they are. Don't merge two sources' versions of an event into one claim; if they disagree, write both and say they disagree.

Grade the briefing

The morning briefing ends with a ## Claims list (c-NNNN | kind | text | confidence), and each intraday update may add more. For each claim, decide from today's evidence:

OutcomeMeans
keptit held exactly
editedpartly right, or right but the details changed
deletedit was wrong
unaddressednothing today confirms or contradicts it

Write Tracking/Signals/<today>_recap.md:

---
type: reference
date: YYYY-MM-DD
tags: [signals, recap]
routine: eod-recap
---

# Briefing scoring — YYYY-MM-DD

- c-0001 | commitment | kept | Draft sent to Pat at 16:10 (sent mail)
- c-0002 | status | deleted | Call stayed on Tuesday; the move was a different meeting

One line per claim, with the evidence. You grade; you never edit the briefing. Also note any correction the owner made today in chat or captures (correction: lines) under a ## Corrections heading here; the dream turns them into rules.

Grade the drafts

For each file in Tracking/Drafts/ dated today or in the previous two workdays and not yet graded in an earlier *_recap.md, look for what was actually sent: sent email, the owner's own Slack messages, edited docs, as reachable. Compare by recipient, topic and wording, and grade:

GradeMeans
verbatimsent as written, or typo-level changes
light-editsame message, some wording changed
heavy-editrewritten: structure, tone or substance changed
not-sentnothing matching went out within two workdays (grade only once the window has passed)
unknownthe channel isn't reachable

Add to the Signals file under ## Drafts, one line each, and for edits say what changed in a few words, without copying the sent text:

## Drafts
- 2026-11-03_pricing-reply-pat | email | light-edit | cut the opening pleasantry; "Hi Pat" not "Hello Pat"; shorter close
- 2026-11-03_launch-update | slack | heavy-edit | reordered to lead with the date; dropped two bullets; more casual

Collect answers to the digest

If the briefing digest went out by Slack or email, read the owner's replies to it today. Each answer to a numbered question goes under ## Answers in the Signals file: - briefing YYYY-MM-DD Q2 — yes, it's Jamie Torres. Answers given in the project arrive as answer: captures; list those too, so the dream has one place to read them.

If the recap already exists

Append an ## Update — HH:MM section with only what's new since; don't rewrite. Same for the Signals file.

Late runs

If you run more than 2 hours after the scheduled time, add late: true and scheduled: HH:MM to the frontmatter and say so under the title: "Ran at 23:05, scheduled 18:00. Sources read up to 23:05." Never present a late recap as if it ran on time.

A missed day: the reconstructed recap

Check the previous workday. If it has no Daily/<that date>_DAILY_RECAP.md and no _RECONSTRUCTED_RECAP.md yet, it has no record, whatever Tracking/Signals/RUN_LEDGER.md says: no eod-recap line at all, or a failed line from a run that died before writing its file. Cover that day in a separate, short file, Daily/<that date>_RECONSTRUCTED_RECAP.md, before writing today's. A ledger line is never proof the day was recorded; only the file is.

---
type: daily-recap
date: YYYY-MM-DD
tags: [daily, recap]
status: reconstructed
source: claude-routine
reconstructed_on: YYYY-MM-DD
---

# Reconstructed recap — YYYY-MM-DD (Weekday)

_Reconstructed on YYYY-MM-DD because this day's recap didn't run. Not a full record._

## Could not be swept
- Chat history for that day isn't reachable now
- No calendar history: only the copy in `Daily/YYYY-MM-DD_CALENDAR.md`, last synced HH:MM

## Decisions made / Commitments / What happened
Only what the sources still show, same line shape as a normal recap (`source:`, `date:`,
`evidence:`, `confidence:`).

List every source you couldn't sweep for that date, honestly. Don't grade that day's briefing (nobody can tell now what was kept). Never present it as a normal recap, and never reconstruct more than the one previous workday; older gaps go under Notes in today's recap as days with no record.

Finish: the run ledger

Last, append exactly one line to the bottom of Tracking/Signals/RUN_LEDGER.md, and never edit or delete an existing line. Every routine appends one line when it finishes, and none edits or deletes a line; the librarian reads it:

- YYYY-MM-DD HH:MM | eod-recap | <ok|partial|failed> | wrote: <file names, or "nothing"> | gaps: <none, or a short description>

Name the reconstructed file under wrote: when you wrote one, and the missed day under gaps:.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.