code/repo-timeline/SKILL.md
Analyzes a repository or branch and generates a meaningful, engineer-friendly timeline of changes — grouping commits into logical units with short and detailed descriptions, using git history, changelogs, GitHub PRs, and Linear tickets. Use when you want to understand what changed, when, and why in a codebase.
npx skillsauth add mostafa-drz/claude-skills repo-timelineInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Visualize the history of a repository or branch as a meaningful, grouped timeline — not raw git log, but an engineer-friendly narrative of what changed, when, and why.
On startup, use the Read tool to load ~/.claude/skills/repo-timeline/preferences.md. If it doesn't exist, use defaults.
On startup, use Bash to detect: current git branch, repo root (git rev-parse --show-toplevel), repo name (basename $(git rev-parse --show-toplevel)), remote URL (git remote get-url origin), and GitHub repo name (gh repo view --json nameWithOwner -q .nameWithOwner). Skip any that fail.
Check $ARGUMENTS:
help → display help then stopconfig → interactive setup then stopreset → delete ~/.claude/skills/repo-timeline/preferences.md, confirm, stop-- prefix), use it as the target branch--since, --until, --focus, --depth, --sourcesParse from $ARGUMENTS:
--since <time> — start of time range (e.g., "2 weeks ago", "2026-01-01", "last tag")--until <time> — end of time range (defaults to now)--focus <areas> — comma-separated paths or areas to emphasize (e.g., "api,auth,frontend")--depth brief|detailed — "brief" for one-liners, "detailed" for full descriptions (default from preferences)--sources <list> — comma-separated sources: git, github, linear, changelog (default: all available)Repo Timeline — Engineer-friendly timeline of repository changes
Usage:
/repo-timeline Current branch, full history
/repo-timeline feature/auth Specific branch
/repo-timeline --since "2 weeks ago" Time-bounded timeline
/repo-timeline --focus "api,auth" Focus on specific areas
/repo-timeline --depth brief One-liners only
/repo-timeline --depth detailed Full descriptions with context
/repo-timeline --sources git,github Only specific sources
/repo-timeline config Set preferences
/repo-timeline reset Clear preferences
/repo-timeline help This help
Flags:
--since <time> Start of time range (e.g., "1 month ago", "v2.0.0")
--until <time> End of time range (default: now)
--focus <areas> Comma-separated paths/areas to emphasize
--depth brief|detailed Level of detail (default: from preferences)
--sources <list> Sources to use: git, github, linear, changelog
Examples:
/repo-timeline Full timeline of current branch
/repo-timeline main --since "last month" Main branch, last month
/repo-timeline --focus "src/api" --depth detailed
/repo-timeline --since "v1.0.0" --until "v2.0.0" Between releases
/repo-timeline develop --sources git,github
Current preferences:
(read from preferences.md)
Use AskUserQuestion:
Q1 — "Default timeline depth?" (Brief — one-liner per group, Detailed — with descriptions and file lists, Auto — brief for large ranges, detailed for short)
Q2 — "Which sources to include by default?" (multiSelect: true)
gh)Q3 — "Default time range?" (Full history, Last 30 days, Last sprint / 2 weeks, Since last tag/release)
Q4 — "Grouping strategy?" (By time period — weekly/daily buckets, By topic — features/fixes/refactors, By release — between tags, Auto-detect)
Save to ~/.claude/skills/repo-timeline/preferences.md.
Delete ~/.claude/skills/repo-timeline/preferences.md and confirm: "Preferences cleared. Using defaults."
If no preferences file exists, show:
"First time using /repo-timeline? Run /repo-timeline config to set defaults, or continue — I'll auto-detect the best settings."
Then proceed with defaults:
Detect available sources in parallel:
Git (always):
git rev-parse --git-dir
git branch --show-current
git tag --sort=-creatordate --format='%(refname:short) %(creatordate:short)' | head -10
GitHub (check gh CLI):
gh auth status 2>&1
Linear (try MCP):
Try list_teams to verify access. If it fails, skip gracefully.
Changelog files:
Use Glob to check for: CHANGELOG.md, CHANGELOG, HISTORY.md, CHANGES.md, RELEASES.md, release-notes/.
Report: Sources available: Git, GitHub, Linear, Changelog (or whichever are found).
If --sources flag is set, filter to only those.
Apply flags and preferences to determine:
--since/--until, or preference default, or auto (full history capped at 200 commits)--focus — will be used to filter/highlight relevant changesIf --since references a tag (e.g., "v1.0.0"), resolve it:
git log -1 --format=%ai v1.0.0
git log [branch] --since="<time>" --until="<time>" --format="%H|%h|%ai|%an|%s|%b" --no-merges
git log [branch] --since="<time>" --until="<time>" --format="%H|%h|%ai|%an|%s" --merges
Also collect file-level stats:
git log [branch] --since="<time>" --until="<time>" --stat --format="%h"
And tags in range:
git tag --sort=creatordate --contains <start-commit> --no-contains <end-commit>
gh pr list --state merged --base <branch> --limit 50 --json number,title,body,labels,mergedAt,author,headRefName
If a time range is set, filter merged PRs within that window.
Extract ticket IDs from commit messages and PR branch names (pattern: AIS-\d+, or configured prefix).
For each unique ticket ID found, fetch:
get_issue — title, status, descriptionlist_comments — recent comments for contextRead CHANGELOG.md or equivalent. Parse entries that fall within the time range.
Cluster the raw data into meaningful groups. Strategy depends on preference or auto-detection:
By topic (default for short ranges):
By time period (default for long ranges):
By release (when tags are present):
For each group:
If --focus is set, highlight groups that match the focus areas and de-emphasize others.
Produce the timeline in this format:
## Timeline: [repo-name] / [branch]
Period: [start] — [end] | [N] commits | [N] contributors
---
### [Release Tag / Time Period / Topic Group]
_[date range]_ | [N commits] | by [authors]
**[Short summary — one line describing the group]**
[If detailed depth:]
[Long summary — 2-3 sentences with key details, linked PRs, tickets]
Key changes:
- [Bullet point per significant change]
- [PR #123 — title] [AIS-456]
- [File/area affected]
---
### [Next group...]
...
---
## Summary
- **Total**: [N] commits across [time range]
- **Contributors**: [list]
- **Focus areas**: [if --focus was used, show what matched]
- **Sources used**: Git, GitHub PRs, Linear tickets, Changelog
Display the timeline. Then offer follow-up options via AskUserQuestion:
If the user picks a drill-down, re-run steps 3-5 with the narrowed scope and present again.
development
--- name: triage-board description: >- Generates a structured triage artifact from the current conversation's findings — a self-contained Desktop folder with a JSON Schema, schema-conformant report.json, prose markdown, and a single-file HTML viewer. Viewer ships with MD / CSV / JSON download buttons in the header and a per-finding "Copy as Markdown" action that produces a GitHub/Linear/Notion-ready ticket block. Stateless — triage state lives in the user's ticket system, not in the
development
Runs a beginner-mind end-to-end UI audit of any running app — local dev server, staging, production, or a specific URL. Drives Chrome through every interactive element on the target surface, collects structured findings (severity, category, where, symptom, impact, repro, triage), and hands the result off to `/triage-board` which produces the Desktop folder (schema + JSON + Markdown + single-file HTML viewer with MD/CSV/JSON exports and a per-finding Copy as Markdown button). Use when you want fresh-eyes verification of a feature, page, modal, flow, branch, or whole app — before shipping, before review, before a demo, or any time the UI deserves a careful poke.
development
Reviews the user's past Claude Code conversations from a wellbeing perspective — sentiment, tone, emotional arc, recurring patterns — and generates a supportive, science-grounded report in both Markdown and HTML. Default lookback is 48 hours across all projects. Uses recognised emotion frameworks (Plutchik, Ekman, Russell's circumplex, Pennebaker linguistic markers) and cites the science behind every observation. Learns the user's baseline tone over time so future reports flag genuine shifts, not noise. Use when the user asks for an emotional/wellbeing recap, mood check, sentiment review, or wants to understand their own ups and downs across recent work sessions.
development
--- name: workflow-advisor description: >- Analyzes recent Claude Code conversations and local Claude state (skills, settings, memory files, CLAUDE.md), researches the latest Claude Code features and best practices online, and suggests one workflow improvement at a time with reasoning and a concrete action item. Can save accepted suggestions to memory for tracking. Use when you want to discover underused Claude Code features, improve your development workflow, stay current with the lat