diff --git a/chezmoi/private_dot_agents/skills/daily-summary/SKILL.md b/chezmoi/private_dot_agents/skills/daily-summary/SKILL.md deleted file mode 100644 index 7d248209..00000000 --- a/chezmoi/private_dot_agents/skills/daily-summary/SKILL.md +++ /dev/null @@ -1,60 +0,0 @@ ---- -name: daily-summary -description: Daily standup digest from memsearch activity logs, grouped by repo. -disable-model-invocation: true -argument-hint: "[YYYY-MM-DD]" ---- - -# Daily Summary - -Produce a **standup** from the memsearch memory log for the requested date. - -## Steps - -1. **Date** — use `$ARGUMENTS` if non-empty; default to yesterday. Validate - `YYYY-MM-DD`; reject with an error message on malformed input. - -2. **Load memory** — read `~/.memsearch/memory/.md`. Note if missing - (continue with shell history only; don't stop). - -3. **Load shell history** — run: - - ```sh - atuin search --after " 00:00:00" --before " 00:00:00" \ - --format "{time} {directory} {command}" --limit 2000 2>/dev/null - ``` - - Filter to meaningful commands only: - - **Keep**: git, brew, gh, ssh, docker, uv, npx, databricks, aws, az, claude, - pre-commit, chezmoi, and any command with substantive args (file paths, flags) - - **Drop**: bare navigational/inspection commands (ls, cat, cd, echo, pwd, - which, man, history, atuin with no args) - - **Deduplicate**: collapse repeated identical or near-identical commands - (e.g. multiple `az login` variants → one entry noting it was attempted); - keep only the last successful variant when a command was retried - -4. **Merge** — combine memory log tasks with shell history signals. Shell - history fills gaps when memory is missing; memory provides intent/context - that raw commands lack. Deduplicate: one bullet per logical task regardless - of source. - -5. **Map** — assign each task to the repo/dir where the change happened. Tasks - with no repo go under `Other`. - -6. **Output** the standup in a fenced code block. No preamble. One bullet per - task, ≤12 words. Under each task, nest sub-tasks one level deep only when - they are genuinely distinct steps, not elaborations. Skip sessions with only - exploration and no resulting change or decision. - -````text -``` -- `` - - - - - - -- `` - - -- Other - - -``` -```` diff --git a/chezmoi/private_dot_agents/skills/update-summary/SKILL.md b/chezmoi/private_dot_agents/skills/update-summary/SKILL.md new file mode 100644 index 00000000..916f7366 --- /dev/null +++ b/chezmoi/private_dot_agents/skills/update-summary/SKILL.md @@ -0,0 +1,91 @@ +--- +name: update-summary +description: Standup digest from memsearch activity logs, grouped by repo. Supports date ranges and project filters. +disable-model-invocation: true +argument-hint: "[] [--project ]" +--- + +# Update Summary + +Produce a **standup** from the memsearch memory log for the requested date or date range, +optionally filtered to a project pattern. + +## Argument parsing + +Parse `$ARGUMENTS` with these rules (order-independent): + +- **Date / range**: accepts either ISO dates or natural language. Examples: + - `YYYY-MM-DD` — single date + - `YYYY-MM-DD:YYYY-MM-DD` — inclusive ISO range + - `past 2 weeks`, `last week`, `past 5 days` — relative natural language; resolve + against yesterday's date to produce a concrete start and end date + - `this sprint` / `past sprint` — treat as 2-week window ending yesterday / ending 14 days ago + - Default (no date arg): yesterday + - Reject with an error if end < start or the expression is unrecognisable. +- **Project filter**: `--project ` (or `-p `) — a case-insensitive + substring matched against the repo/directory path. When present, only tasks whose + path contains the pattern are included. Example: `--project aiap` keeps only repos + under any path containing "aiap". + +Examples: + +- `/update-summary` → yesterday, all projects +- `/update-summary 2026-07-20` → single date, all projects +- `/update-summary 2026-07-07:2026-07-20` → range, all projects +- `/update-summary past 2 weeks --project aiap` → last 14 days, AIAP projects only +- `/update-summary last week` → Mon–Sun of last calendar week, all projects + +## Steps + +1. **Resolve dates** — expand the range into an ordered list of calendar dates + (start…end inclusive). For a single date, the list has one entry. + +2. **Load memory** — for each date in the list, read `~/.memsearch/memory/.md`. + Silently skip missing files. Concatenate all loaded content in chronological order. + +3. **Load shell history** — run a single atuin query spanning the full range: + + ```sh + atuin search --after " 00:00:00" --before " 23:59:59" \ + --format "{time} {directory} {command}" --limit 5000 2>/dev/null + ``` + + Filter to meaningful commands only: + - **Keep**: git, brew, gh, ssh, docker, uv, npx, databricks, aws, az, claude, + pre-commit, chezmoi, and any command with substantive args (file paths, flags) + - **Drop**: bare navigational/inspection commands (ls, cat, cd, echo, pwd, + which, man, history, atuin with no args) + - **Deduplicate**: collapse repeated identical or near-identical commands + (e.g. multiple `az login` variants → one entry noting it was attempted); + keep only the last successful variant when a command was retried + +4. **Merge** — combine memory log tasks with shell history signals. Shell + history fills gaps when memory is missing; memory provides intent/context + that raw commands lack. Deduplicate: one bullet per logical task regardless + of source. + +5. **Map** — assign each task to the repo/dir where the change happened. Tasks + with no repo go under `Other`. + +6. **Filter** — if `--project` was given, drop all repos whose path does not + contain the pattern (case-insensitive). Also drop the `Other` bucket unless + no project filter is active. + +7. **Output** the standup in a fenced code block. No preamble. One bullet per + task, ≤12 words. Under each task, nest sub-tasks one level deep only when + they are genuinely distinct steps, not elaborations. Skip sessions with only + exploration and no resulting change or decision. Aggregate all tasks across + the entire date range — do not split or label by date. + +````text +``` +- `` + - + - + - +- `` + - +- Other ← omitted when --project filter is active + - +``` +```` diff --git a/chezmoi/private_dot_claude/skills/symlink_daily-summary b/chezmoi/private_dot_claude/skills/symlink_daily-summary deleted file mode 100644 index 046b4635..00000000 --- a/chezmoi/private_dot_claude/skills/symlink_daily-summary +++ /dev/null @@ -1 +0,0 @@ -../../.agents/skills/daily-summary diff --git a/chezmoi/private_dot_claude/skills/symlink_update-summary b/chezmoi/private_dot_claude/skills/symlink_update-summary new file mode 100644 index 00000000..5454453b --- /dev/null +++ b/chezmoi/private_dot_claude/skills/symlink_update-summary @@ -0,0 +1 @@ +../../.agents/skills/update-summary