Dev Chronicle
by @sssamuelll
Generate narrative chronicles of developer work from git history, session transcripts, and memory files. Use when the user asks "what did I do today/this wee...
clawhub install dev-chronicleπ About This Skill
name: dev-chronicle description: Generate narrative chronicles of developer work from git history, session transcripts, and memory files. Use when the user asks "what did I do today/this week", wants a work summary, daily/weekly chronicle, standup notes, or portfolio narrative. Also triggers on "chronicle", "dev diary", "work story", "recap", or "standup".
DevChronicle β Narrative Engineering Journal
DevChronicle generates prose chronicles of developer work β not dashboards, not metrics, not bullet lists. In the age of AI agents writing code, measuring keystrokes is meaningless. What matters is what you *decided*, what you *killed*, and where you're *going*.
The output is narrative: first person, honest, the way you'd tell a friend what you built today.
Setup
On first use, check for {baseDir}/config.json. If it doesn't exist, create it by asking the user:
{
"projectDirs": ["~/Projects"],
"projectDepth": 3,
"memoryDir": null,
"sessionsDir": null
}
projectDirs: directories to scan for git repos (array, supports ~)projectDepth: how deep to search for .git folders (default: 3)memoryDir: path to OpenClaw memory files, or null to auto-detect (/memory )sessionsDir: path to session transcripts, or null to auto-detect (~/.openclaw/agents/main/sessions)Gathering Data
Run the gather script to collect raw data for a period:
bash {baseDir}/scripts/gather.sh [YYYY-MM-DD] [days]
Examples:
bash {baseDir}/scripts/gather.sh β today onlybash {baseDir}/scripts/gather.sh 2026-02-19 7 β week ending Feb 19The script reads {baseDir}/config.json for paths. If no config exists, it falls back to ~/Projects (depth 3) and auto-detects OpenClaw directories.
After gathering, read the output and generate a chronicle.
Data Sources (priority order)
1. Git History (primary signal) β commits across all repos in configured directories
2. Memory Files β memory/YYYY-MM-DD.md files contain decisions, context, things worth remembering
3. Session Transcripts β JSONL files from OpenClaw sessions; richest context but heavy. Scan metadata line first, only read relevant sessions.
4. External Tools (optional) β Trello, Notion, calendar, etc. Enrichment, not primary.
Generating the Chronicle
Voice
Critical: Read {baseDir}/references/voice-profile.md before generating any chronicle. The voice IS the product.
If the user hasn't customized their voice profile, use the template and ask if they want to personalize it. A chronicle without voice is just a changelog.
Core rules (regardless of voice profile):
Formats
Daily Chronicle (default β aim for ~500-800 words, not a novel)
# Chronicle β [Date][Opening: set the scene in 1-2 punchy sentences]
[Theme 1]
[Narrative: what happened, why, what got killed or rejected, how it felt][Theme 2]
[...][Weave metrics naturally: "12 commits later..." not a stats block at the end]
[End with what's unfinished β but as narrative, not a TODO list]
Rules:
Weekly Chronicle β roll up daily themes into arcs. This one CAN be long. Emphasize direction and pivots over individual tasks.
Standup β telegraphic: yesterday / today / blockers. Three bullets max each.
Portfolio Narrative β third person, present tense, for LinkedIn/CV/case studies. Punchy and honest, not marketing-speak.
Direction/Execution Ratio
When enough data exists (weekly+), calculate and mention:
This is not a KPI. It's a mirror.
βοΈ Configuration
On first use, check for {baseDir}/config.json. If it doesn't exist, create it by asking the user:
{
"projectDirs": ["~/Projects"],
"projectDepth": 3,
"memoryDir": null,
"sessionsDir": null
}
projectDirs: directories to scan for git repos (array, supports ~)projectDepth: how deep to search for .git folders (default: 3)memoryDir: path to OpenClaw memory files, or null to auto-detect (/memory )sessionsDir: path to session transcripts, or null to auto-detect (~/.openclaw/agents/main/sessions)