journal
Skill3 starsChanged 6 months agoMITView on GitHub
Monthly development journal. Use when the user says "journal", "monthly journal", "what did we do this month", "monthly recap", "development diary", or invokes /journal. Optionally /journal {month} for a specific month (e.g., /journal march, /journal 2026-03).
21 other projects use a version of this.
Adopted by
Most recently taken up by
- AlexCiortan/setlisttheir own version, first seen Oct 29, 2026
- TakaGoto/rag-learning-academytheir own version, first seen Oct 28, 2026
- pipulate/pipulatetheir own version, first seen Oct 27, 2026
- labdaps/labskillstheir own version, first seen Oct 13, 2026
- anthonysuherli/br8ntheir own version, first seen Oct 13, 2026
- yokeloop/yoketheir own version, first seen Oct 9, 2026
Used with
Projects with it also use triage and code-review.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
Google CloudSkilltriage
Gather context on a change or bug and plan the implementation.
Also in 3 projects that use this
GoogleSkillcode-review
Adversarial systems, concurrency, memory-model, and architecture code review protocol. Use this skill whenever asked to review code, PRs, diffs, or branches in Filament.
Also in 3 projects that use this
Other versions21 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 21
- davekilleen/Dex★ 509same name
- typv/nest-turbo-starter★ 224same name
- TakaGoto/rag-learning-academy★ 24same name
- pipulate/pipulate★ 14same name
- jholhewres/devclaw-skills★ 4same name
- AaravChadha/acstack★ 2same name
- AlexCiortan/setlist★ 2same name
- atomicpapa/claude-obsidian-setup★ 2same name
- labdaps/labskills★ 2same name
- mpaarating/ai-workflow-kit★ 2same name
11 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository26 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- code-simplificationSkill
- dcgSkill
- editorial-reviewSkill
- readme-updateSkill
- security-and-hardeningSkill
- session-retroSkill
- autopilotSkill
- blunder-huntSkill
- brainstormSkill
- convergence-detectSkill
- deslopSkill
- dispatch-parallelSkill
- doc-reviewSkill
- dreamSkill
- incremental-implementationSkill
- planning-and-task-breakdownSkill
- polishSkill
- pr-reviewSkill
- refactor-planSkill
- scope-checkSkill
- security-auditSkill
- spec-driven-developmentSkill
- unstuckSkill
- verification-before-completionSkill
The file
We split this skill into the rules it gives an agent
9 rules. 0 are common, 8 are distinctive, and 1 is very specific to this project.
0
Common
Most of the 16 edited versions we read keep these.
8
Distinctive
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 12
Default is monthly. Other cadences accept the same data but produce different narratives:
- Distinctive: line 34
Check if the would-be filename (per Step 6's table) already exists.
- Distinctive: line 38
Run ALL of the following in parallel:
- Distinctive: line 56
If your agent has a project-memory directory, read its index for high-level context, and check filesystem mtime on individual entries to …
- Distinctive: line 64
Before writing the journal, process the raw data:
- Very specific: line 73
Commit message prefixes (feat/fix/refactor/chore) — compute ratio
- Distinctive: line 80
Write the following structure:
- Distinctive: line 108
Commit breakdown: {X} feat, {Y} fix, {Z} refactor, {W} chore
- Distinctive: line 146
Create the journal directory if needed:
“Common” is measured: kept by at least 6 in 10 of the 16 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Monthly Development Journal
Generate a structured narrative of what happened in this project over a month. Reads git log, merged PRs, decisions, and any project memory the agent has access to.
Cadences
Default is monthly. Other cadences accept the same data but produce different narratives:
/journal weekly— last 7 days. Lighter narrative; focus on what shipped + what's next./journal sprint— last sprint length (default 14 days; configurable via.claude/journal-cadence.yaml)./journal release— since the last git tag. Releases-as-units narrative./journal monthly(default) — calendar month, full retrospective.
The data-gathering steps (git log, PRs, decisions, memory) are identical; only the time window and narrative emphasis differ.
Step 1: Determine the Window
Resolve the time window by cadence:
| Cadence | Window resolution |
monthly (default) | Previous calendar month if today is day 1-7, otherwise current month. Argument may be a month name (march) or YYYY-MM. |
weekly | Previous ISO week if today is Mon/Tue, otherwise current ISO week. Argument may be YYYY-WW. |
sprint | Last sprint length ending today (default 14 days; configurable via .claude/journal-cadence.yaml). |
release | Since the most recent git tag (use git describe --tags --abbrev=0). End at HEAD. |
Compute start_date and end_date accordingly. For monthly, start_date = first day of month, end_date = first day of next month. For weekly, ISO week boundaries. For sprint, today minus sprint length. For release, the tag's commit date and HEAD's commit date.
Check if the would-be filename (per Step 6's table) already exists. If so, ask: "A journal for {window-label} already exists. Regenerate it?"
Step 2: Gather Data
Run ALL of the following in parallel:
Git History
git log --oneline --since="{start_date}" --until="{end_date}"— all commitsgit log --since="{start_date}" --until="{end_date}" --format="%H %s" --reverse— commits with hashes for grouping by branchgit shortlog -sn --since="{start_date}" --until="{end_date}"— contributor summary- Detect default branch:
git symbolic-ref refs/remotes/origin/HEAD 2>/dev/null | sed 's|refs/remotes/origin/||'(fallback tomain)
Merged PRs (if gh is available)
gh pr list --state merged --limit 30 --json number,title,headRefName,mergedAt --jq '.[] | select(.mergedAt >= "{start_date}" and .mergedAt < "{end_date}")'
Releases
git tag --sort=-creatordate --format="%(creatordate:short) %(refname:short)"— filter to tags within the month
Decisions
- Glob
.claude/decisions/*.md(or your agent's equivalent) — read each, filter bydate:frontmatter within the month
Memory
- If your agent has a project-memory directory, read its index for high-level context, and check filesystem mtime on individual entries to find anything created within the month.
Open Work
gh pr list --state open --json number,title,headRefName,createdAt— open PRsgit branch --no-merged {default-branch} --format="%(refname:short)"— unmerged branches
Step 3: Analyze and Group
Before writing the journal, process the raw data:
Group commits by branch/PR
- Match commits to merged PRs by branch name
- Commits not matching any PR get grouped under "Other work"
- For each group: count commits, count files changed, estimate lines
Spot patterns
Look for:
- Commit message prefixes (feat/fix/refactor/chore) — compute ratio
- Files modified in 3+ commits (hotspots)
- Same error pattern or bug type appearing multiple times
- Domains touched (group by first path segment)
Step 4: Generate the Journal
Write the following structure:
# {Month Name Year} — {project-name}
## What We Built
### {PR title or branch name}
{One-sentence summary derived from commit messages}
- {N} commits, {M} files changed
- Key changes: {2-3 most significant commits}
### {next group}
...
## What We Shipped
- {version} ({date}) — {tag or release title}
## What We Learned
- {From memory entries created this month — bullet per entry}
- {From decision reasoning — what was non-obvious}
## Decisions
- **{decision title}** ({date}) — {one-line why}
Tripwire: {tripwire}
## Activity
- {N} sessions across {M} days
- Most active branches: {top 3}
- Commit breakdown: {X} feat, {Y} fix, {Z} refactor, {W} chore
## Patterns
- {Hotspot files — modified most often}
- {Recurring themes in commit messages or bug fixes}
- {Any observation worth noting}
## Looking Ahead
- {Open PRs with age}
- {Unmerged branches}
- {Anything flagged in commit messages as TODO or pending}Omit any section that has zero content. Don't generate empty sections.
Step 4.5: Sentiment + velocity tracking
While scanning, surface signals beyond the raw what-happened:
- Velocity: commits per day, ratio vs prior period. Flag a 50%+ drop or rise.
- Crunch indicators: late-night commits (after 22:00 local), weekend commits in projects that don't normally see them, commit-message tone shift toward "fix"/"hotfix"/"revert" prefixes.
- Demoralization signals: long branches that never merge, repeated reverts, decision tripwires firing without acknowledgment.
Present these in a separate "Signals" section of the journal — factual, no judgment. The user reads and acts.
Step 4.75: Multi-model synthesis (optional)
For high-effort journals (monthly, release), optionally compose multi-model-synth: give the same gathered data to 2-3 models, compare narratives, synthesize the strongest. Different models emphasize different things — one might catch the velocity dip, another the architectural drift. Synthesis preserves both.
Skip for weekly/sprint (cost > value at small windows).
Step 5: Present for Review
Show the full journal in the conversation. Ask:
"Here's the journal for {window-label}. Anything you'd like to add, change, or remove before I save it?"
Step 6: Save
Create the journal directory if needed:
mkdir -p "$(git rev-parse --show-toplevel)/.claude/journal"Filename by cadence:
| Cadence | Filename |
monthly (default) | .claude/journal/YYYY-MM.md |
weekly | .claude/journal/YYYY-WW.md (ISO week) |
sprint | .claude/journal/sprint-<start-YYYY-MM-DD>.md |
release | .claude/journal/release-<tag>.md |
Confirm: "Journal saved to <path>."
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

