This skill should be used when the user runs "/eod", asks to "run end of day", "do the eod ritual", "wrap up the session", or "end of day". Executes a closing ritual: run parallel handoff across all active repos (24h git window), then update the Obsidian daily note.
Two-phase closing ritual: parallel handoff across all active repos, then daily note update.
Active = any repo with commits in the past 24 hours. Discover repos dynamically — do not
hardcode names. Find all git repos under $HOME/dev and filter to those with recent activity:
ls $HOME/dev | each { |repo|
let path = ($"($env.HOME)/dev/($repo)")
if ($"($path)/.git" | path exists) {
let out = (do { git -C $path log --since="24 hours ago" --oneline -1 } | complete)
if ($out.stdout | str trim | is-not-empty) { $repo }
}
} | compact
Or in POSIX sh (fallback):
for repo in $(ls "$HOME/dev"); do
[ -d "$HOME/dev/$repo/.git" ] || continue
git -C "$HOME/dev/$repo" log --since="24 hours ago" --oneline -1 2>/dev/null | \
grep -q . && echo "$repo"
done
Dispatch one atelier:minion subagent per active repo, all in parallel (cap at 5 concurrent).
Each subagent runs the full atelier:handoff workflow:
git branch --show-current && git log --oneline -5handoff-detect to find HANDOFF.yaml pathcargo check / cargo test (or language equivalent) — capture build/test state.ctx/HANDOFF.*.state.yamlhandoff-db upsert --project <project> --handoff <path>handoff-reconcile sync --project <project> --handoff <path>.ctx/HANDOFF.md.gitignore covers .ctx/git add <handoff-path> .gitignore && git commit -m "docs: update handoff"Provide each subagent with a session summary (today's commits grouped by repo) so log entries are narrative, not just commit lists.
Wait for all agents to complete. Collect results — note any flags (failing tests, uncommitted changes, blocked items).
Run the daily-update skill workflow:
$HOME/Documents/Obsidian Vault/01_Daily/YYYY-MM-DD.md----separated block — never overwrite existing blocks| Repo | Status | Next |# Links section with all active repo names as [[repo]] linksPrint a concise summary:
EOD ritual complete.
Active repos — <list>
Handoffs — <N> committed, <M> flags
Daily note — ~/Documents/Obsidian Vault/01_Daily/YYYY-MM-DD.md
Flags — <repo>: <issue> (or "none")
| Mistake | Fix |
|---|---|
| Running handoff sequentially | Always parallel — one subagent per repo |
| Overwriting existing daily note blocks | Append only — existing blocks are immutable |
| Skipping repos with no new commits | Only process repos active in the past 24h |
Committing .ctx/HANDOFF.*.state.yaml | State files are gitignored — never stage them |
Using --no-verify | Never — let hooks run, fix failures |