Skip to content

feat: add daily-summary skill - #909

Merged
yxtay merged 4 commits into
mainfrom
feat/daily-summary-skill
Jul 17, 2026
Merged

feat: add daily-summary skill#909
yxtay merged 4 commits into
mainfrom
feat/daily-summary-skill

Conversation

@yxtay

@yxtay yxtay commented Jul 17, 2026

Copy link
Copy Markdown
Owner

Summary

  • Add daily-summary skill that produces a repo-grouped standup digest from memsearch activity logs
  • Takes an optional YYYY-MM-DD date argument (defaults to yesterday)
  • Outputs work grouped by repo as a fenced code block with ≤10-word bullets, max 2 nesting levels
  • Marked disable-model-invocation: true — user-invoked only, zero token cost unless called
  • Symlinked from private_dot_claude/skills/ so it's available in Claude Code sessions

Test plan

  • Run /daily-summary with no args → produces yesterday's standup
  • Run /daily-summary 2026-07-16 → produces that date's standup grouped by repo
  • Missing date file → skill stops with clear message

🤖 Generated with Claude Code

Summary by CodeRabbit

  • New Features
    • Added a daily summary skill that generates a repo-grouped standup digest from your daily memory log.
    • Lets you choose a specific YYYY-MM-DD date (defaults to yesterday).
    • Validates the date format and shows a clear message if the log for that date is missing.
    • Groups tasks by repos referenced in the log, with a fallback for uncategorized items.
    • Outputs results as concise bullet points, skipping sessions without substantive outcomes.
    • Exposed the skill via the Claude skills directory.

Add skill that generates a repo-grouped standup digest from memsearch
activity logs for a given date (defaults to yesterday).

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Jul 17, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

@yxtay, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 56 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 1900b725-0efe-48dd-ad1c-f4b59a5b0e1c

📥 Commits

Reviewing files that changed from the base of the PR and between 1388a4a and e30de32.

📒 Files selected for processing (2)
  • README.md
  • chezmoi/private_dot_agents/skills/daily-summary/SKILL.md
📝 Walkthrough

Walkthrough

Adds a daily-summary skill specification that reads dated memsearch logs, groups substantive tasks by repository, and formats a constrained digest. A Claude skill symlink exposes the new skill.

Changes

Daily summary skill

Layer / File(s) Summary
Skill definition and Claude wiring
chezmoi/private_dot_agents/skills/daily-summary/SKILL.md, chezmoi/private_dot_claude/skills/symlink_daily-summary
Defines date handling, memory-log loading, repository grouping, missing-file behavior, output constraints, and adds a symlink to the skill.

Estimated code review effort: 1 (Trivial) | ~5 minutes

Poem

I’m a rabbit with notes in a row,
Grouping each repo’s bright little glow.
Yesterday’s thoughts, neatly aligned,
In ten-word hops, the format defined.
A symlink now points where summaries grow.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely describes the main change: adding the daily-summary skill.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/daily-summary-skill

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions

github-actions Bot commented Jul 17, 2026

Copy link
Copy Markdown
Contributor

MegaLinter analysis: Success

Descriptor Linter Files Fixed Errors Warnings Elapsed time
✅ BASH shfmt 5 0 0 0 0.02s
✅ JSON prettier 7 0 0 0 0.45s
✅ MARKDOWN markdownlint 10 0 0 0 0.72s
✅ MARKDOWN markdown-table-formatter 12 0 0 0 0.15s
✅ YAML prettier 11 0 0 0 0.48s

Notices

📣 MegaLinter 9.5.0 is out! Discover the new features and security recommendations in the release announcement. (Skip this info by defining SECURITY_SUGGESTIONS: false)

See detailed reports in MegaLinter artifacts

Your project could benefit from a custom flavor, which would allow you to run only the linters you need, and thus improve runtime performances. (Skip this info by defining FLAVOR_SUGGESTIONS: false)

  • Documentation: Custom Flavors
  • Command: npx mega-linter-runner@9.6.0 --custom-flavor-setup --custom-flavor-linters BASH_SHFMT,JSON_PRETTIER,MARKDOWN_MARKDOWNLINT,MARKDOWN_MARKDOWN_TABLE_FORMATTER,YAML_PRETTIER

MegaLinter is graciously provided by OX Security
Show us your support by starring ⭐ the repository

@github-actions

github-actions Bot commented Jul 17, 2026

Copy link
Copy Markdown
Contributor

MegaLinter analysis: Success

Descriptor Linter Files Fixed Errors Warnings Elapsed time
✅ BASH bash-exec 5 0 0 0.01s
✅ BASH shellcheck 5 0 0 0.21s
✅ REPOSITORY betterleaks yes no no 1.74s
✅ REPOSITORY checkov yes no no 23.67s
✅ REPOSITORY devskim yes no no 2.09s
✅ REPOSITORY dustilock yes no no 0.03s
✅ REPOSITORY gitleaks yes no no 1.4s
✅ REPOSITORY grype yes no no 58.81s
✅ REPOSITORY kingfisher yes no no 10.98s
✅ REPOSITORY osv-scanner yes no no 0.08s
✅ REPOSITORY secretlint yes no no 1.83s
✅ REPOSITORY syft yes no no 1.8s
✅ REPOSITORY trivy yes no no 12.19s
✅ REPOSITORY trivy-sbom yes no no 0.1s
✅ REPOSITORY trufflehog yes no no 5.09s

Notices

📣 MegaLinter 9.5.0 is out! Discover the new features and security recommendations in the release announcement. (Skip this info by defining SECURITY_SUGGESTIONS: false)

See detailed reports in MegaLinter artifacts

Your project could benefit from a custom flavor, which would allow you to run only the linters you need, and thus improve runtime performances. (Skip this info by defining FLAVOR_SUGGESTIONS: false)

  • Documentation: Custom Flavors
  • Command: npx mega-linter-runner@9.6.0 --custom-flavor-setup --custom-flavor-linters BASH_EXEC,BASH_SHELLCHECK,REPOSITORY_CHECKOV,REPOSITORY_DEVSKIM,REPOSITORY_DUSTILOCK,REPOSITORY_GITLEAKS,REPOSITORY_BETTERLEAKS,REPOSITORY_GRYPE,REPOSITORY_OSV_SCANNER,REPOSITORY_SECRETLINT,REPOSITORY_SYFT,REPOSITORY_TRIVY,REPOSITORY_TRIVY_SBOM,REPOSITORY_TRUFFLEHOG,REPOSITORY_KINGFISHER

MegaLinter is graciously provided by OX Security
Show us your support by starring ⭐ the repository

@github-actions

github-actions Bot commented Jul 17, 2026

Copy link
Copy Markdown
Contributor

⚠️MegaLinter analysis: Success with warnings

Descriptor Linter Files Fixed Errors Warnings Elapsed time
✅ ACTION actionlint 5 0 0 0.28s
✅ ACTION zizmor 5 0 0 0 0.59s
✅ BASH bash-exec 5 0 0 0.01s
✅ BASH shellcheck 5 0 0 0.14s
✅ BASH shfmt 5 0 0 0 0.02s
✅ COPYPASTE jscpd yes no no 0.08s
✅ EDITORCONFIG editorconfig-checker 86 0 0 0.13s
✅ JSON prettier 7 0 0 0 0.37s
✅ JSON v8r 11 0 0 3.32s
✅ MARKDOWN markdownlint 10 0 0 0 0.87s
✅ MARKDOWN markdown-table-formatter 12 0 0 0 0.21s
✅ REPOSITORY betterleaks yes no no 2.27s
✅ REPOSITORY checkov yes no no 23.12s
✅ REPOSITORY gitleaks yes no no 1.39s
✅ REPOSITORY git_diff yes no no 0.01s
✅ REPOSITORY grype yes no no 58.74s
✅ REPOSITORY osv-scanner yes no no 0.21s
✅ REPOSITORY secretlint yes no no 1.25s
✅ REPOSITORY syft yes no no 3.49s
✅ REPOSITORY trivy yes no no 10.51s
✅ REPOSITORY trivy-sbom yes no no 0.19s
✅ REPOSITORY trufflehog yes no no 4.44s
⚠️ SPELL lychee 35 9 0 1.05s
✅ YAML prettier 11 0 0 0 0.63s
✅ YAML v8r 11 0 0 7.16s
✅ YAML yamllint 11 0 0 0.49s

Detailed Issues

⚠️ SPELL / lychee - 9 errors
📝 Summary
---------------------
🔍 Total...........32
🔗 Unique..........24
✅ Successful......23
⏳ Timeouts.........0
🔀 Redirected.......3
👻 Excluded.........0
❓ Unknown..........0
🚫 Errors...........9
⛔ Unsupported......9

Errors in chezmoi/.chezmoitemplates/mcp_servers.json
[406] https://mcp.deepwiki.com/mcp (at 11:15) | Rejected status code: 406 Not Acceptable

Errors in chezmoi/.chezmoitemplates/opencode.json
[406] https://mcp.deepwiki.com/mcp (at 32:15) | Rejected status code: 406 Not Acceptable

Errors in chezmoi/private_dot_agents/skills/okf/templates/concept.md
[ERROR] file://chezmoi/private_dot_agents/skills/okf/templates/url (at 24:5) | File not found. Check if file exists and path is correct

Errors in chezmoi/private_dot_agents/skills/okf/templates/index.md
[ERROR] file://chezmoi/private_dot_agents/skills/okf/templates/relative-url (at 3:3) | File not found. Check if file exists and path is correct
[ERROR] file://chezmoi/private_dot_agents/skills/okf/templates/relative-url (at 4:3) | File not found. Check if file exists and path is correct
[ERROR] file://chezmoi/private_dot_agents/skills/okf/templates/subdir (at 8:3) | File not found. Check if file exists and path is correct

Errors in chezmoi/private_dot_agents/skills/okf/templates/log.md
[ERROR] file://chezmoi/private_dot_agents/skills/okf/templates/bundle-relative-path (at 5:36) | File not found. Check if file exists and path is correct
[ERROR] file://chezmoi/private_dot_agents/skills/okf/templates/bundle-relative-path (at 6:30) | File not found. Check if file exists and path is correct
[ERROR] file://chezmoi/private_dot_agents/skills/okf/templates/bundle-relative-path (at 7:39) | File not found. Check if file exists and path is correct

Hint: Followed 3 redirects. You might want to consider replacing redirecting URLs with the resolved URLs. Use verbose mode (`-v`/`-vv`) to see redirection details.
Hint: You can configure accepted/rejected response codes with `-a` or `--accept`

Notices

📣 MegaLinter 9.5.0 is out! Discover the new features and security recommendations in the release announcement. (Skip this info by defining SECURITY_SUGGESTIONS: false)

See detailed reports in MegaLinter artifacts

Your project could benefit from a custom flavor, which would allow you to run only the linters you need, and thus improve runtime performances. (Skip this info by defining FLAVOR_SUGGESTIONS: false)

  • Documentation: Custom Flavors
  • Command: npx mega-linter-runner@9.6.0 --custom-flavor-setup --custom-flavor-linters ACTION_ACTIONLINT,ACTION_ZIZMOR,BASH_EXEC,BASH_SHELLCHECK,BASH_SHFMT,COPYPASTE_JSCPD,EDITORCONFIG_EDITORCONFIG_CHECKER,JSON_V8R,JSON_PRETTIER,MARKDOWN_MARKDOWNLINT,MARKDOWN_MARKDOWN_TABLE_FORMATTER,REPOSITORY_CHECKOV,REPOSITORY_GIT_DIFF,REPOSITORY_GITLEAKS,REPOSITORY_BETTERLEAKS,REPOSITORY_GRYPE,REPOSITORY_OSV_SCANNER,REPOSITORY_SECRETLINT,REPOSITORY_SYFT,REPOSITORY_TRIVY,REPOSITORY_TRIVY_SBOM,REPOSITORY_TRUFFLEHOG,SPELL_LYCHEE,YAML_PRETTIER,YAML_YAMLLINT,YAML_V8R

MegaLinter is graciously provided by OX Security
Show us your support by starring ⭐ the repository

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces a new agent skill, daily-summary, which generates a daily standup digest from memsearch activity logs grouped by repository, along with a symlink to register the skill. The review feedback highlights two key areas for improvement: adding a fallback grouping (e.g., "Other") for tasks not associated with a specific repository to prevent model confusion, and resolving a contradiction regarding the maximum nesting levels in the output format instructions.

Important

The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.

Comment on lines +19 to +21
3. **Map** — identify every repo mentioned; assign each task to the repo where
the code change happened. Done when every distinct repo is identified and
every substantive task is assigned.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

To prevent the model from getting stuck or hallucinating repository names for tasks that aren't associated with a specific repository, consider adding a fallback grouping (e.g., "Other" or "General"). This ensures the condition "every substantive task is assigned" can always be met.

Suggested change
3. **Map** — identify every repo mentioned; assign each task to the repo where
the code change happened. Done when every distinct repo is identified and
every substantive task is assigned.
3. **Map** — identify every repo mentioned; assign each task to the repo where
the code change happened (or group under "Other" if no specific repo is associated). Done when every distinct repo is identified and
every substantive task is assigned.

Comment on lines +23 to +26
4. **Output** the standup in a fenced code block. No preamble. One bullet per
distinct task. Each bullet ≤10 words. Nest sub-tasks only when they are
genuinely distinct steps of the parent, not just elaborations. Max 2 levels.
Skip sessions with no substantive outcome.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

There is a contradiction between the instruction "Max 2 levels" on line 25 and the provided output template on lines 30-32, which demonstrates 3 levels of nesting:

  1. - <repo-path> (Level 1)
  2. - <task> (Level 2)
  3. - <sub-task if distinct> (Level 3)

To prevent model confusion and ensure consistent output, please clarify if you mean "Max 2 levels of task nesting (excluding the repo name)" or if the maximum list depth should be updated to 3 levels.

Suggested change
4. **Output** the standup in a fenced code block. No preamble. One bullet per
distinct task. Each bullet ≤10 words. Nest sub-tasks only when they are
genuinely distinct steps of the parent, not just elaborations. Max 2 levels.
Skip sessions with no substantive outcome.
4. **Output** the standup in a fenced code block. No preamble. One bullet per
distinct task. Each bullet ≤10 words. Nest sub-tasks only when they are
genuinely distinct steps of the parent, not just elaborations. Max 3 levels of list nesting (Repo > Task > Sub-task).
Skip sessions with no substantive outcome.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@chezmoi/private_dot_agents/skills/daily-summary/SKILL.md`:
- Around line 15-17: Clarify the date selection in the daily-summary
instructions by explicitly defining the timezone used when calculating
“yesterday,” and apply that same timezone to the YYYY-MM-DD value used to load
the memory file.
- Around line 15-17: Update the date-handling step before constructing the
memory path to require an exact, calendar-valid YYYY-MM-DD value, rejecting path
separators and all other malformed input. Only after validation should the load
step read ~/.memsearch/memory/<date>.md, preserving the existing yesterday
default and missing-file behavior.
- Line 5: Update the daily-summary skill’s date argument binding to use
supported Claude Code syntax, such as $ARGUMENTS or a named/positional argument,
so the supplied date reaches the skill. Change the argument hint from
"<YYYY-MM-DD>" to "[YYYY-MM-DD]" only if the date is optional.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 93dfe4b0-d3fd-4c92-a065-52854f08f350

📥 Commits

Reviewing files that changed from the base of the PR and between 81f3354 and 014d30d.

📒 Files selected for processing (2)
  • chezmoi/private_dot_agents/skills/daily-summary/SKILL.md
  • chezmoi/private_dot_claude/skills/symlink_daily-summary

Comment thread chezmoi/private_dot_agents/skills/daily-summary/SKILL.md Outdated
Comment thread chezmoi/private_dot_agents/skills/daily-summary/SKILL.md Outdated
yxtay and others added 3 commits July 17, 2026 20:17
- Use $ARGUMENTS instead of args for argument binding
- Change argument-hint to optional bracket syntax [YYYY-MM-DD]
- Add timezone + date validation (calendar-valid YYYY-MM-DD only)
- Add Other fallback group for tasks not tied to a repo
- Clarify nesting: one level deep only, resolve "max 2 levels" contradiction

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
- Clarify $ARGUMENTS handling: treat absent or empty string as omitted,
  default to yesterday (fixes empty-arg treated as malformed)
- Fix nesting anchor: "under each task" not "under each repo" to match template
- Define "substantive outcome" concretely: skip only pure read/search/
  investigation sessions with no resulting change or decision
- Add daily-summary to README Current plugins list

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
…kills

- Remove tautological Map completion criterion
- Collapse "if provided and non-empty; treat absent or empty as omitted"
  to "if non-empty" (same meaning, half the tokens)
- Drop "before proceeding" no-op in date step
- Drop "identify every repo mentioned" (implied by assign)
- Compact Output constraints to one line
- Replace session-filter enumeration with leading word "exploration"

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
@yxtay
yxtay merged commit 623edd4 into main Jul 17, 2026
19 of 20 checks passed
@yxtay
yxtay deleted the feat/daily-summary-skill branch July 17, 2026 13:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant