End of Day Ritual
Two-phase closing ritual: parallel handoff across all active repos, then daily note update.
Step 1 — Identify Active Repos
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
Step 2 — Run Parallel Handoff
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-detectto find HANDOFF.yaml path- Read existing HANDOFF.yaml
cargo check/cargo test(or language equivalent) — capture build/test state- Update HANDOFF.yaml: prepend new log entry, remove completed items, keep open items
- Write HANDOFF.yaml
- Write
.ctx/HANDOFF.*.state.yaml handoff-db upsert --project <project> --handoff <path>handoff-reconcile sync --project <project> --handoff <path>- Generate
.ctx/HANDOFF.md - Ensure
.gitignorecovers.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).
Step 3 — Update Daily Note
Run the daily-update skill workflow:
- Get 24h git log across all active repos
- Find or create today's note at
$HOME/Documents/Obsidian Vault/01_Daily/YYYY-MM-DD.md - Append a new
----separated block — never overwrite existing blocks - Append a handoff summary table at the bottom with one row per repo:
| Repo | Status | Next | - Update
# Linkssection with all active repo names as[[repo]]links
Step 4 — Report
Print 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")
Common Mistakes
| 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 |