From daily-report
Use when the user asks to generate daily reports, weekly reports, or monthly reports from Git activity, mentions "/daily-report:dr_init", "/daily-report:dr_daily", "/daily-report:dr_weekly", "/daily-report:dr_monthly", or "/daily-report:dr_status", or wants to set up automated development report generation across multiple repositories.
How this skill is triggered — by the user, by Claude, or both
Slash command
/daily-report:daily-reportThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Low-effort daily/weekly/monthly report generator for developers. Analyzes Git activity across multiple repositories and produces Obsidian-compatible Markdown reports using AI summarization.
Low-effort daily/weekly/monthly report generator for developers. Analyzes Git activity across multiple repositories and produces Obsidian-compatible Markdown reports using AI summarization.
~/.config/dailyreport/config.json (created by /daily-report:dr_init or the equivalent natural-language request)Scripts are located at: <SKILL_DIR>/scripts/ where SKILL_DIR is the directory containing this SKILL.md.
To resolve SKILL_DIR:
SKILL_DIR="$(cd "$(dirname "$0")" && pwd)" # if running from skill dir
# Or find via symlink in a home-level skills directory:
SKILL_DIR="$(dirname "$(readlink -f ~/.agents/skills/daily-report/SKILL.md)" 2>/dev/null || dirname "$(readlink ~/.agents/skills/daily-report/SKILL.md)")"
Config path: ~/.config/dailyreport/config.json
Key fields: workspace_root, output (vault_dir, folder names), repositories (path + bound git_user), scan_settings, defaults (level, language).
See CONFIG.md for full structure and field docs.
| Command | Purpose | Default | Params |
|---|---|---|---|
/daily-report:dr_init | Interactive setup | Scan workspace, register repos | — |
/daily-report:dr_daily | Generate daily report | standard + diff | --level=, --date= |
/daily-report:dr_weekly | Generate weekly report | brief + daily summary | --level=, --diff |
/daily-report:dr_monthly | Generate monthly report | brief + weekly+daily summary | --level=, --diff |
/daily-report:dr_status | Show config status | Display all info | — |
On tools without a slash-command menu, the same behaviors should still trigger from natural-language requests such as "generate today's daily report" or "initialize DailyReport".
See COMMANDS.md for detailed flows and examples.
This is the entry point. MUST be run before any report generation.
import os
if not os.path.isdir(vault_dir):
# Prompt user: "该路径不存在,是否创建?(y/n)"
# if yes: mkdir -p vault_dir
# if no: ask again
Do NOT proceed until vault_dir is confirmed to exist.standard)python3 "$SKILL_DIR/scripts/dr_scan.py" --workspace "<workspace_root>"
| # | Repo Name | Path | Git User | Email | Source |
Source indicates whether git user is from local repo config or global config.# Config is written by the agent using Write tool to ~/.config/dailyreport/config.json
mkdir -p "<vault_dir>/DailyReport/daily" "<vault_dir>/DailyReport/weekly" "<vault_dir>/DailyReport/monthly"
When config already exists:
--detect-new:
python3 "$SKILL_DIR/scripts/dr_scan.py" --workspace "<workspace_root>" --config ~/.config/dailyreport/config.json --detect-new
repositories arrayLoad config — Read ~/.config/dailyreport/config.json. If missing, tell user to run /daily-report:dr_init first.
Determine date range and parameters:
/daily-report:dr_daily: date from --date param (default: today). Range = [date, date+1)/daily-report:dr_weekly: current ISO week (Mon-Sun). Range = [monday, sunday+1)/daily-report:dr_monthly: current month. Range = [1st, next-month-1st)Determine detail level: from --level param, fall back to defaults.level in config.
Data collection (varies by report type — see below)
AI report generation: Using the collected data and report templates from TEMPLATES.md, generate the Markdown report content.
Write output file using Write tool to the appropriate path.
Daily reports ALWAYS use diff analysis (this is the foundation of the entire system).
python3 "$SKILL_DIR/scripts/dr_analyze.py" \
--config ~/.config/dailyreport/config.json \
--from <date> --to <date+1> --diff
Parse the JSON output. Key fields per active repo: commits, diff_stats, diff_content, branch_activity.
If new_repos_detected is non-empty, mention it at the end of the report.
Token-efficient strategy: Weekly reports default to summarizing existing daily reports.
Decision tree:
<vault>/DailyReport/daily/ for dates in the week range--diff (default): Read daily report files using Read tool. Summarize them. Do NOT call Python scripts. This is the most token-efficient path.--diff: Read dailies AND run analysis:
python3 "$SKILL_DIR/scripts/dr_analyze.py" \
--config ~/.config/dailyreport/config.json \
--from <monday> --to <sunday+1> --diff
Use diff data to supplement/verify daily summaries.--diff based on flag).Token-efficient strategy: Monthly reports summarize weekly reports, which summarize dailies.
Decision tree:
<vault>/DailyReport/weekly/<vault>/DailyReport/daily/--diff, use --stat-only flag (month-scale diff content is too large):
python3 "$SKILL_DIR/scripts/dr_analyze.py" \
--config ~/.config/dailyreport/config.json \
--from <month-1st> --to <next-month-1st> --diff --stat-only
Reports use Obsidian-compatible Markdown with YAML frontmatter and tags.
Output paths:
<vault>/<base_folder>/daily/<YYYY-MM-DD>.md<vault>/<base_folder>/weekly/<YYYY>-W<WW>.md<vault>/<base_folder>/monthly/<YYYY>-<MM>.mdSee TEMPLATES.md for complete template structures.
Key frontmatter fields: title, date, type, level, tags, repos, generated,
repos_scanned, repos_active, commits_total, authors.
Reports with grouped activity should also include groups.
Weekly/monthly also include: source (data source indicator), date_range.
Use > [!summary] callout for the overview section (Obsidian native support).
# Full scan
python3 "$SKILL_DIR/scripts/dr_scan.py" --workspace /path/to/root
# Detect new repos only
python3 "$SKILL_DIR/scripts/dr_scan.py" --workspace /path/to/root \
--config ~/.config/dailyreport/config.json --detect-new
Output: JSON array of {path, name, git_user: {name, email}, git_user_source}.
# Daily analysis (with diff)
python3 "$SKILL_DIR/scripts/dr_analyze.py" \
--config ~/.config/dailyreport/config.json \
--from 2026-04-07 --to 2026-04-08 --diff
# Weekly analysis (specific repos)
python3 "$SKILL_DIR/scripts/dr_analyze.py" \
--config ~/.config/dailyreport/config.json \
--from 2026-03-31 --to 2026-04-07 --diff --repos my-app,backend
# Monthly stat-only
python3 "$SKILL_DIR/scripts/dr_analyze.py" \
--config ~/.config/dailyreport/config.json \
--from 2026-04-01 --to 2026-05-01 --diff --stat-only
Output: JSON with date_range, active_repos[], skipped_repos[], new_repos_detected[].
Each active repo contains: name, path, git_user, commits[], diff_stats, diff_content, branch_activity.
--diff flag is opt-in for weekly/monthly.--author filter uses the bound email for each repo independently./daily-report:dr_init or the equivalent natural-language request.defaults.language in config (default: zh-CN, Chinese)./daily-report:dr_init to register them.standard and detailed, split inactive repos into:
Guides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.
npx claudepluginhub nedhuohuo/dailyreport --plugin daily-report