Summarize today's commits, PRs, and routine activity into .iteration/digests/. — installed by auto-routines on 2026-05-11T13:57:34+02:00, iter-1. Invoked by scheduled trigger (6:00 PM daily).
Install
npx skillscat add paipeline/auto-routines/daily-digest Install via the SkillsCat registry.
daily-digest
Purpose
Summarize today's commits, PRs, and routine activity into .iteration/digests/.
Trigger
6:00 PM daily
Success criterion
(none — runs indefinitely)
Inputs to read at fire time
.iteration/config.yaml— read your own entry underroutines:. Honorautomation_levelandstate.- Recent
git logsince last fire of this routine (look up yourlast_fire_shain.iteration/log.jsonl). git log --since="00:00 today" --pretty=format:"%h %s (%an)"gh pr list --state all --search "updated:>$(date -u -v-1d +%Y-%m-%dT%H:%M:%SZ)"- Tail of
.iteration/log.jsonlsince 00:00 today.
What to do
This is not a planning skill. You produce real diffs, not analysis.
Write a one-page digest of today's repo activity.
Budget check (token-frugality path, PRD goal.md):
- Read
meta.budgetfrom.iteration/config.yaml. - If
meta.budgetislowormedium:- Run
bash scripts/daily-digest.sh "00:00 today" > .iteration/digests/$(date +%Y-%m-%d).md. - Commit the digest on
routines/daily-digest. Then open a
PR viapython3 scripts/orchestrator.py open-pr --head routines/daily-digest --title 'chore(digest): <YYYY-MM-DD> daily digest' --body '<digest body — top commits, PR activity, routine outcomes>'(or push
directly to main ifconfig.yaml > daily_digest.push_direct: true). The wrapper auto-resolves--basefrom origin's
default branch. - Log outcome with
increment_signal: trueand EXIT — do not
run the LLM flow below. The whole point of low/medium is
zero Claude tokens for the digest body.
- Run
- If
meta.budgetishighorcustom: continue with the LLM flow.
- Read
Gather:
git log --since="00:00 today" --pretty=format:"%h %s (%an)"gh pr list --state all --search "updated:>$(date -u -v-1d +%Y-%m-%dT%H:%M:%SZ)"- Tail of
.iteration/log.jsonlsince 00:00.
Write
.iteration/digests/<YYYY-MM-DD>.mdwith sections:Commits — bullet list with one-line context
PRs — opened, merged, still-open-failing
Routines — what fired, what was useful, what was noisy
Tomorrow — top 3 things blocking progress (your judgment)
Commit the digest on branch
routines/daily-digest. Then open a
PR viapython3 scripts/orchestrator.py open-pr --head routines/daily-digest --title 'chore(digest): <YYYY-MM-DD> daily digest' --body '<digest body — summarize the four sections above>'(or push directly to main ifconfig.yaml > daily_digest.push_direct: true). The wrapper
auto-resolves--basefrom origin's default branch.Log outcome with
increment_signal: trueif there was any activity
today, false on empty days.
Self-evolution
(self-evolve not enabled for this routine — your config is fixed by the user. Do not write to evolve_requests.jsonl.)
Reference
All universal rules — commit/branch/push/PR procedure, .iteration/log.jsonl
line format, state-handling (which states fire vs. noop), failure modes,
and the mid-run evolve-request shape — live in the shared preamble:
.claude/skills/_shared/preamble.md
That file is rendered once at install (SKILL.md step 6f) fromtemplates/routine-preamble.md, identical bytes across every routine.
Read it at the start of every fire before producing work — it's
the canonical contract you commit / log / handle state against.
If a rule in this per-routine SKILL.md contradicts the shared preamble,
the preamble wins. Per-routine SKILL.md only adds routine-specific
content (purpose, trigger, prompt body); never re-declares universal
rules.