How this skill is triggered — by the user, by Claude, or both
Slash command
/daily-report:daily-reportThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Generate a Markdown daily report from `~/.claude/projects/` session history.
Generate a Markdown daily report from ~/.claude/projects/ session history.
Read config.json bundled with this skill. Defaults: outputDir: "~/daily-reports", templatePath: "", language: "en".
Use $ARGUMENTS as YYYY-MM-DD if provided, otherwise today.
config.templatePath if set and existstemplates/{config.language}.md in this skill's directorytemplates/default.mdReplace {{date}} with the target date.
Two-pass approach: first identify which projects had activity, then extract details only for active projects.
Pass 1 — Discover active projects (single command):
grep -rl 'YYYY-MM-DD' ~/.claude/projects/*/*.jsonl | python3 -c "
import sys, os, json
files = [l.strip() for l in sys.stdin if l.strip()]
projects = {}
for f in files:
first = json.loads(open(f).readline())
if first.get('type') == 'queue-operation': continue
proj = os.path.basename(os.path.dirname(f))
projects.setdefault(proj, []).append(f)
for proj, fs in sorted(projects.items()):
print(f'{proj} ({len(fs)} files): {\" \".join(fs)}')
"
Review the output. Decide which projects are relevant (skip projects with only non-date-related matches if obvious). Then proceed to Pass 2 for each project.
Pass 2 — Extract user messages per project (one command per project):
Run for each project's files together:
cat <file1> <file2> ... | grep 'YYYY-MM-DD' | python3 -c "
import sys, json
msgs = []
for l in sys.stdin:
try:
d = json.loads(l)
except: continue
if d.get('type') not in ('human','user'): continue
c = d.get('message',{}).get('content','')
if isinstance(c, list):
c = ' '.join(x.get('text','') for x in c if isinstance(x,dict) and x.get('type')=='text')
if c and not c.startswith('(local command'):
msgs.append(c[:150])
print(f'PROMPT_COUNT: {len(msgs)}')
for i,m in enumerate(msgs): print(f'[{i+1}] {m}')
"
Derive {project_name} from directory name. {session_count} = number of files per project. Skip projects with 0 user messages.
Follow the template's HTML comments (<!-- -->) as instructions for each section. Replace {project_name}, {session_count}, {prompt_count} with values from the data.
Write to config.outputDir/YYYY-MM-DD.md. Create the directory with mkdir -p if needed.
npx claudepluginhub suto-michimasa/cc-session-tools --plugin daily-reportGenerates markdown developer journals from Claude Code activity data over specified time periods like today or last week. Focuses on accomplishments, decisions, and project progress with day-by-day breakdowns.
Aggregates Claude Code sessions, Git commits, and Notion tasks into a daily work summary in Chinese. Useful for generating 日报 (daily reports) with timeline, outputs, and task completion.
Analyzes worklog files to generate daily standups, weekly summaries, monthly reviews, performance reviews, and resume-ready bullets using Python script.