dont-lie-to-me
Use when the user explicitly wants evidence-disciplined answers that separate observed facts, sourced claims, user reports,…
Use when a recap of today's sessions, cron, and kanban helps.
$ npx -y skills add asimons81/hermes-field-kit --skill what-have-we-done-today --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/what-have-we-done-todayContext preview
The summary Claude sees to decide when to auto-load this skill.
Use when a recap of today's sessions, cron, and kanban helps.
name: what-have-we-done-today
description: Use when a recap of today's sessions, cron, and kanban helps.
version: 0.2.0
author: Tony Simons
license: Apache-2.0
platforms: [platform-agnostic]
metadata:
hermes:
category: productivity
tags: [sessions, kanban, cron, journal, recap, productivity]
related_skills: []A manual, on-demand daily recap for any Hermes installation. It scans three local surfaces for today's activity — sessions (default profile plus every named profile, all sources), kanban boards (done today, running, blocked, todo/ready), and cron stores (jobs that ran, errored, are running now, or are due today) — then writes a plain append-friendly daily markdown log the user can read to remember what happened and what is still open.
Stdlib Python only. Read-only on all databases (`mode=ro`); the only write is the daily markdown file in the recap directory. It is intentionally NOT a cron job: it runs when a human actually wants the recap (tired, stoned, context-switch heavy, or closing out the day).
pulled together.
Counter-triggers — do NOT load this skill when:
1. **Scan all three surfaces.** Invoke through the `terminal` tool: `python3 ~/.hermes/skills/productivity/what-have-we-done-today/scripts/today_sessions.py --excerpts` Output: sessions grouped by profile (time, source, title, counts, goal/outcome hints), then kanban per board (done today, ▶ running, ✋ blocked, todo/ready counts), then cron (ran today with ❌ on errors, ▶ running now, ⏳ due today after an error). 2. **Separate the signals.** User-facing session sources are `desktop`, `cli`, `telegram`. `kanban` sessions are worker lanes (generic titles — outcome comes from the excerpt, not the title). Cron ❌/⏳ rows are real breakage candidates; `running` executions are work happening right now. 3. **Drill where it matters.** `session_search` reads only the *current* profile's DB; use it for ambiguous or high-stakes default-profile sessions. For sessions from `profiles/*/state.db`, the scanner's excerpts are the cheap evidence. 4. **Split Done vs Open.** Done = a verified outcome (session excerpt, kanban done-today card, cron `ok` run). Open = kanban ▶/✋/todo cards, cron ❌/⏳ rows, sessions with no resolution. Never infer completion from a session merely existing. 5. **Pull open items (optional).** `--ledger FILE` lists non-completed items from a task ledger JSON: `{"items": [{"id", "title", "status", "next_action", "updated_at"}]}`. Statuses other than `completed` / `cancelled` count as open. 6. **Write the log.** Target `$RECAP_DIR/YYYY-MM-DD.md` (default `~/.hermes/daily-recaps/`); create the directory if missing. Create the file with a `# YYYY-MM-DD` heading if absent; otherwise **append** a `## Daily recap — HH:MM` section with Done / In flight / Needs attention bullets. Re-runs the same day append new sections. 7. **Brief the user.** Compact and ranked: ✅ Done today, 🟡 Still open, ⛔ Needs you, Next pick. Include `@session:default/<id>` links for anything they might reopen.
store is `~/.hermes/state.db` plus `profiles/*/state.db`. A scan of the wrong file reports a false quiet day.
scanner does this in Python). SQLite's `'start of day'` modifier is UTC midnight and silently drops the first hours of the local day.
`last_activity_at` ≥ local midnight.
default board; named boards live at `~/.hermes/kanban/boards/<slug>/kanban.db` (`_archived/` is skipped).
`last_run_at`/`last_status` and `executions.db` are their only trace. A quiet sessions list does not mean a quiet day.
surface with its own type.
day file or the earlier recap is destroyed.
a live Hermes holding the default DB still scans fine.
`grep -n "Daily recap" ~/.hermes/daily-recaps/$(date +%F).md`
ledger row read during this run.
Field-tested, open-source skills for Hermes Agent. Tags: hermes-agent · hermes-ai · ai-agents · agent-skills · developer-tools · automation · open-source · tonysimons_ Hermes Field Kit is a curated collection of reusable workflows that have earned their place
Use when the user explicitly wants evidence-disciplined answers that separate observed facts, sourced claims, user reports,…
Use when a branch, pull request, Kanban task, or implementation must be reviewed separately for intent fidelity, repository…
Use when a Hermes environment must be safely migrated between machines with staged exports, integrity manifests, secret…
Use when Hermes messaging gateway failures must be diagnosed across process state, adapters, credential posture, logs, delivery…
Use when an existing conversation, plan, specification, or objective must become a Hermes-native Kanban board with verifiable…
Use when a Hermes profile must be audited for role clarity, authority boundaries, configuration fit, skills, memory posture,…