Skills
Build evidence-based retrospectives with ak:retro
Analyze a bounded Git history, compute transparent engineering indicators, and save an actionable Markdown or HTML retrospective.
Use ak:retro to turn a defined period of repository history into a factual
engineering retrospective. The Skill gathers Git evidence, shows formulas for
derived indicators, checks recent plan files, and saves recommendations tied to
observed data rather than invented narrative.
Choose ak:retro for historical evidence
Use ak:retro when
- You need a sprint, monthly, or quarterly engineering review.
- You want commit cadence, file hotspots, change volume, or test-change proxies.
- You need an optional preceding-period comparison or per-author breakdown.
- You want plan-checkbox evidence alongside repository activity.
Choose another workflow when
- You need live project status rather than a historical review. Use
ak:project-management. - You need to diagnose why a specific change failed. Use
ak:debug. - You need productivity, quality, or individual performance conclusions that Git activity cannot support. Add appropriate product and team evidence first.
- You want the workflow to change source code, commit, push, or deploy.
Prepare the evidence source
- Complete Onboarding, and confirm Engineer Kit is installed for the runtime and scope you are using.
- Open a Git repository with the history you intend to analyze.
- Choose a supported timeframe and confirm repository-local time boundaries.
- Ensure common shell tools and
gitare available. - Make
ghavailable and authenticated only if you want optional issue data. - Review author-email privacy before requesting
--teamoutput.
| Runtime | Invocation | Availability boundary |
|---|---|---|
| Claude Code | /ak:retro ... | Native delivery is the default; the workflow runs local Git and shell commands. |
| Cursor | /ak:retro ... | Slash invocation is user-verified. This does not prove identical shell permissions. |
| Codex | $ak:retro ... | The Skill uses native Codex discovery; command and file-write approvals depend on the session. |
Select timeframe and report shape
| Input | Default | Effect |
|---|---|---|
timeframe | 7d | Accepts 7d, 2w, 1m, sprint, or YYYY-MM-DD:YYYY-MM-DD |
--compare | Off | Adds the preceding equal-length period and delta columns |
--team | Off | Adds a per-author breakdown |
--format | md | Accepts html or md; writes Markdown or HTML with inline CSS; enabled AntV panels load their pinned runtime from jsDelivr |
--no-antv, --no-diagram-design, --no-editorial-visuals | Off | Disables one or all additive editorial visuals for this run |
For sprint, the Skill asks for a start date when it cannot infer one from Git
tags. An explicit date pair is preferable when calendar boundaries matter.
Control HTML editorial visuals
HTML reports add an editorial visual layer by default. Before rendering, the Skill reads:
ak config prefs resolve --json | jq '.prefs.visual'Resolved preference keys use camelCase, so diagram_design appears as
diagramDesign. When enabled, .prefs.visual.diagramDesign.enabled or
.prefs.visual.antv.enabled can select these treatments:
- Commit and pull-request timelines use
diagram-design Timelineor AntV Infographictimeline-*. - Plan completion uses AntV Infographic
CircularProgress. - File hotspots use a hand-authored SVG bar or
diagram-design Barwhen the report already contains editorial diagrams. - Team velocity uses the existing Chart.js radar or
diagram-design Radar.
Enabled AntV panels load from jsDelivr when the report is opened. Use
--no-antv when a run must avoid that CDN dependency, --no-diagram-design to
disable that treatment, or --no-editorial-visuals to disable the full additive
visual layer. The default --format md output is unchanged.
/ak:retro 2026-07-15:2026-07-28 --compare --team --format md/ak:retro 2026-07-15:2026-07-28 --compare --team --format md$ak:retro 2026-07-15:2026-07-28 --compare --team --format mdUnderstand what happens during a run
- The Skill resolves dates. It converts the timeframe to
SINCEandUNTIL; comparison mode also creates the equal-length preceding window. - It gathers raw Git metrics. Commands count commits, active dates, LOC
added and removed, changed files, hotspots, commit-subject types, authors,
and test-file changes. Empty results become
0orN/A. - It computes derived indicators. The report shows commit frequency, active-day ratio, test-to-code change ratio, and churn formulas rather than presenting them as opaque scores.
- It checks optional issue evidence. When
ghis available, it may query closed issues for the period; otherwise issue metrics remainN/A. - It scans recent plan files. It creates a temporary period sentinel and
inspects up to twenty matching Markdown files under
plans/, counting checked and unchecked tasks. - It writes the report. Markdown goes to
plans/reports/retro-{YYMMDD}-{slug}.md; HTML uses the same name with.htmland inline CSS. Enabled AntV panels retain the jsDelivr dependency described above. - It explains findings. The result includes two to four factual highlights and three to five recommendations grounded in named metrics.
The requested report stays under 200 lines; if the evidence requires more, the Skill may split it into multiple report files.
Interpret indicators cautiously
Git activity is evidence, not a performance score
Commit count, LOC, churn, and test-file changes are limited proxies. Use them to prompt investigation, not to rank contributors or claim product quality.
- Binary files and non-numeric
git --numstatrows are excluded from LOC sums. - Test-to-code ratio measures changed filenames matching test patterns, not test coverage or test quality.
- Conventional-commit distribution is only meaningful when subjects follow that convention.
- Churn uses
(added + removed) / max(net, 1); negative or near-zero net change can make the value hard to interpret. - Author grouping uses Git email addresses and may split one person across identities or expose personal data in the report.
- Issue data requires an authenticated
ghcommand and may make a read-only network request to GitHub. If unavailable, recordN/Arather than prompting for secrets or fabricating a number.
Keep effects and approvals bounded
- Source files remain read-only, but the workflow does write retrospective
artifacts under
plans/reports/and a temporary sentinel under/tmp. - Shell and Git processes run locally and may scan substantial history; large repositories or long periods can take longer than the default seven-day run.
- HTML output uses inline CSS. When AntV panels are enabled, opening the report can fetch their pinned runtime from jsDelivr; use the visual opt-outs above when that network dependency is unacceptable.
- The Skill specifies no paid provider. Any GitHub access inherits the user's existing account, permissions, and service terms.
- Commit, push, issue mutation, publication, sharing, and deployment need separate approval.
Verify the result
A complete run should give you:
- Exact period dates, generation date, repository identity, and active-author count.
- Raw velocity and code-health values with formulas for derived metrics.
- Optional deltas only when
--comparewas selected. - Optional author rows only when
--teamwas selected. - Hotspots and plan evidence traceable to repository paths and checkboxes.
N/Awherever a required source was unavailable.- A saved artifact path plus recommendations that cite actual findings.
Re-run one or two underlying Git counts for spot checks, inspect the report diff, and confirm no source files changed before sharing the retrospective.
Troubleshoot or continue
| Symptom | Safe next step |
|---|---|
| The period is ambiguous | Use an explicit YYYY-MM-DD:YYYY-MM-DD range. |
sprint has no inferable start | Provide the sprint start date rather than guessing from activity. |
| Issue metrics are unavailable | Leave them N/A or authenticate gh only if GitHub evidence is needed. |
| Test ratio looks surprising | Inspect filename matches; the metric is a change proxy, not coverage. |
| Churn is extreme with negative net LOC | Show raw added and removed values and avoid a strong conclusion from the ratio. |
| Plan completion disagrees with current status | Treat checkbox counts as period evidence and reconcile durable plan state separately. |
| The report contains invented praise or numbers | Remove it and regenerate only from captured evidence. |
| The runtime does not recognize the Skill | Confirm target and scope, restart the runtime session, then follow Runtime cannot find a Skill or Agent. |
Know the current limits
- The report does not include product outcomes, review quality, incident data, deployment frequency, or uncommitted work unless you provide separate evidence.
- The issue completion formula described by the Skill requires opened and closed
counts, while its example query gathers closed issues only; report the rate as
N/Aunless both sides are verified. - Editorial visuals apply only to
--format html;--format mdremains unchanged.
Preserve technical history with ak:journal
Turn a meaningful session into a concise chronological record, persist it safely under plans/journals, and keep current authority in docs or ADRs.
Start a new project with ak:bootstrap
Turn a concrete product brief into an implemented, tested, reviewed, and UX/AX-enhanced project while keeping the right approval gates.