Skills DirectorySkills Directory
SkillsLearnSecurityCategoriesDocsCommunityBlog
Sign InSubmit Skill
Skills Directory

Security-tested agent skills for Claude, coding agents, and AI workflows.

Directory

  • Browse Skills
  • All Skills A–Z
  • Claude Skills
  • Claude Code Skills
  • Agent Skills
  • Categories
  • Submit a Skill

Learn

  • Learn Hub
  • Install Claude Skills
  • Write SKILL.md
  • Skills vs MCP
  • Directories Compared

Security

  • Security
  • Methodology
  • Secure Claude Skills
  • Security Badges

Company

  • About
  • Community
  • Blog
  • API Docs
  • Advertise

2026 Skills Directory. All rights reserved.

Back to skills

Retro

ASecurity

Weekly engineering retrospective with persistent metrics covering commit patterns, sessions, quality trends. Triggers "retro", "weekly review", "how was my week", "what did I ship", "show me my stats".

44 stars
0 votes
0 copies
0 views
Added 9/3/2026
ai-agentsgobashrefactoringgit

Works with

claude code

Security Analysis

A100/100

Scanned 9/20/2026

Install to Claude Code

$npx -y skills add darkroomengineering/cc-settings --skill retro --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Retro?

Add the live security badge to your README — it updates automatically with every re-scan.

Security grade badge for Retro
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/darkroomengineering-retro/badge)](https://www.skillsdirectory.com/skills/darkroomengineering-retro)

More formats (shields.io, HTML) on the badges page.

Download Zip
Files
SKILL.md
---
name: retro
description: Weekly engineering retrospective with persistent metrics covering commit patterns, sessions, quality trends. Triggers "retro", "weekly review", "how was my week", "what did I ship", "show me my stats".
context: fork
allowed-tools:
  - Bash
  - Read
  - Write
  - Glob
---

# Engineering Retrospective

## Product-aware helper

```bash
# Claude Code
ESCALATE_STATS_RUNNER="$HOME/.claude/src/scripts/escalate-stats.ts"
CC_STATE_ROOT="$HOME/.claude"

# Standalone Codex would resolve the helper as:
# ESCALATE_STATS_RUNNER="${CODEX_HOME:-$HOME/.codex}/darkroom/source/src/scripts/escalate-stats.ts"
```

Codex must skip this Claude escalation telemetry entirely because the plugin
does not expose a reliable manual state path. Do not infer or report an
act-rate in Codex.

**This skill is self-contained.** Do not read CLAUDE.md or agent definitions.

## Arguments

- `/retro` — last 7 days (default)
- `/retro 24h` or `/retro 14d` or `/retro 30d` — custom window
- `/retro compare` — current 7d vs prior 7d
- `/retro compare 14d` — current 14d vs prior 14d

**Validation:** Only accept arguments matching `\d+[dhw]`, `compare`, or `compare \d+[dhw]`. Reject anything else with usage instructions.

---

## Step 1: Gather Raw Data

Fetch latest from remote, then run 5 parallel git commands:

```bash
# Fetch latest
git fetch origin main 2>/dev/null

# 1. Commits with timestamps, subject, hash, and stats
git log origin/main --since="WINDOW_START" --format="%H|%aI|%s" --shortstat

# 2. Per-commit numstat for test vs production LOC breakdown
# Test files: paths matching test/|spec/|__tests__|*.test.|*.spec.
git log origin/main --since="WINDOW_START" --format="%H" --numstat

# 3. Sorted commit timestamps for session detection (local timezone)
git log origin/main --since="WINDOW_START" --format="%aI" | sort

# 4. Hotspot analysis (most frequently changed files)
git log origin/main --since="WINDOW_START" --format="" --name-only | sort | uniq -c | sort -rn | head -20

# 5. PR number extraction from commit messages (#NNN patterns)
git log origin/main --since="WINDOW_START" --format="%s" | grep -oE '#[0-9]+' | sort -u
```

Replace `WINDOW_START` with the appropriate `--since` value for the requested window.

In Claude only, also run the escalate-advisory telemetry if present:

```bash
CC_SETTINGS_HOME="$CC_STATE_ROOT" bun "$ESCALATE_STATS_RUNNER" --days 7
```

If this prints stats (not "no telemetry yet"), include the act-rate in the
report — see Step 13. Standalone Codex omits the telemetry and act-rate section.

---

## Step 2: Compute Metrics

Build a summary table:

```
| Metric                | Value          |
|-----------------------|----------------|
| Commits to main       | N              |
| PRs merged            | N              |
| Total insertions      | +N lines       |
| Total deletions       | -N lines       |
| Net LOC               | +/-N           |
| Test LOC              | N lines        |
| Test ratio            | N%             |
| Active days           | N/7            |
| Detected sessions     | N              |
| Avg LOC/session-hour  | ~N             |
```

---

## Step 3: Commit Time Distribution

Build an hourly histogram using local timezone. Identify:
- **Peak hours** — when most commits land
- **Dead zones** — hours with zero activity
- **Late-night clusters** — commits after 10pm (flag for sustainability)
- **Bimodal patterns** — morning + evening sessions

```
Hour  | Commits
------|---------
 8:00 | ###
 9:00 | ######
10:00 | ########
...
```

---

## Step 4: Work Session Detection

Use a **45-minute gap threshold** to detect session boundaries. Classify sessions:

| Type | Duration | Description |
|------|----------|-------------|
| **Deep** | 50+ min | Sustained focused work |
| **Medium** | 20-50 min | Moderate task work |
| **Micro** | <20 min | Quick fixes, reviews |

Calculate:
- Total active coding time
- Average session length
- LOC per hour (round to nearest 50)
- Ratio of deep sessions to total

---

## Step 5: Commit Type Breakdown

Categorize by conventional commit prefix:

```
feat:     N% (N commits)
fix:      N% (N commits)
refactor: N% (N commits)
test:     N% (N commits)
chore:    N% (N commits)
docs:     N% (N commits)
other:    N% (N commits)
```

**Flag:** Fix ratio > 50% may indicate a review gap or instability.

---

## Step 6: Hotspot Analysis

Top 10 most-changed files. For each:
- Change count
- Whether it's a test or production file
- **Churn flag** at 5+ changes — may indicate the file needs refactoring or splitting

---

## Step 7: PR Size Distribution

Bucket PRs by total LOC changed:

| Size | LOC Range | Count | Notes |
|------|-----------|-------|-------|
| Small | <100 | N | Ideal for review |
| Medium | 100-500 | N | Acceptable |
| Large | 500-1500 | N | Consider splitting |
| XL | 1500+ | N | Flag with file count |

---

## Step 8: Focus Score + Ship of the Week

**Focus Score:** Percentage of commits touching the single most-changed top-level directory. Higher = more focused work.

**Ship of the Week:** The highest-LOC PR with:
- PR number and title (from commit message)
- Total LOC changed
- Inferred significance

---

## Step 9: Week-over-Week Trends (if window >= 14d)

Split the window into weekly buckets. Track:
- Commits per week
- LOC per week
- Test ratio per week
- Fix ratio per week
- Session count per week

Show as a compact table with trend arrows.

---

## Step 10: Streak Tracking

Count consecutive days with at least 1 commit to `origin/main`, going back from today. Use full git history — no cutoff.

```bash
git log origin/main --format="%ad" --date=short | sort -u
```

Walk backward from today counting consecutive days.

---

## Step 11: Load History & Compare

Check for prior retro snapshots:

```bash
ls .context/retros/*.json 2>/dev/null | sort | tail -1
```

If found, load the most recent and calculate deltas:
- Test ratio change
- Session count change
- LOC/hour change
- Fix ratio change
- Commit count change
- Deep session count change

If none exist, note "First retro recorded."

---

## Step 12: Save Retro Snapshot

Save JSON to `.context/retros/YYYY-MM-DD.json`:

```bash
mkdir -p .context/retros
```

Schema:
```json
{
  "date": "YYYY-MM-DD",
  "window": "7d",
  "metrics": {
    "commits": 0,
    "prs": 0,
    "insertions": 0,
    "deletions": 0,
    "net_loc": 0,
    "test_loc": 0,
    "test_ratio": 0.0,
    "active_days": 0,
    "sessions": 0,
    "deep_sessions": 0,
    "avg_session_minutes": 0,
    "loc_per_session_hour": 0,
    "feat_pct": 0.0,
    "fix_pct": 0.0,
    "peak_hour": 0,
    "streak_days": 0
  },
  "summary": "Tweetable summary here"
}
```

---

## Step 13: Write the Narrative

Structure:

1. **Tweetable summary** (first line — one sentence capturing the week)
2. **Summary Table** (from Step 2)
3. **Trends vs Last Retro** (deltas from Step 11, or "First retro")
4. **Time & Session Patterns** — narrative prose about when and how you work
5. **Shipping Velocity** — commit type mix, PR size discipline, fix-chain detection
6. **Code Quality Signals** — test ratio, hotspots, XL PRs
7. **Focus & Highlights** — focus score, ship of the week
8. **Top 3 Wins** — best things that shipped
9. **3 Things to Improve** — concrete, specific, actionable
10. **3 Habits for Next Week** — small behavioral changes
11. **Week-over-Week Trends** (if applicable, from Step 9)
12. **Escalate Advisory Act-Rate** (if `bun run escalate:stats` printed stats in Step 1 — otherwise omit this section)

---

## Compare Mode

When `/retro compare` is used:

1. Compute metrics for the CURRENT window (e.g., last 7 days)
2. Compute metrics for the PRIOR window of same length (e.g., 7 days before that)
3. Use `--since` and `--until` to avoid overlap
4. Present side-by-side comparison table with deltas
5. Only save the CURRENT window snapshot to history

---

## Tone

- **Encouraging but candid** — no coddling, no generic praise
- Say exactly what was good and why
- Frame improvements as leveling up, not criticism
- Anchor everything in actual commits — no speculation
- ~2500-3500 words total
- Use markdown tables + prose

---

## Rules

- Always use `origin/main` — local-only commits are not shipped
- Use local timezone for display (detect from system)
- Handle zero-commit windows gracefully ("No commits in this window")
- Round LOC/hour to nearest 50
- Treat merge commits as PR boundaries
- This skill is self-contained — do not read CLAUDE.md or other docs

Attribution

darkroomengineeringdarkroomengineering
View sourceMore from darkroomengineering →
SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments (0)

No comments yet. Be the first to comment!

SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Related Skills

Caveman

Ultra-compressed communication mode that cuts output tokens while keeping technical accuracy. Levels: lite, full, ultra and the wenyan variants. Use for /caveman, "caveman mode", "talk like caveman", "be brief" or "less tokens".

1066601 votes

Hyperplan

Adversarial multi-agent planning skill. Self-orchestrates 5 hostile category members (unspecified-low, unspecified-high, deep, ultrabrain, artistry) via team-mode for ruthless cross-critique debate, distills only the defensible insights, then MANDATORILY hands the distilled insight bundle to the `plan` agent for executable plan formalization. Use when planning needs maximum rigor and surfacing of weak assumptions, blind spots, and over-engineering. Triggers: 'hyperplan', 'hpp', '/hyperplan', ...

686011 votes

Mcp Code Execution

Routes multi-tool workflows through MCP servers for large datasets and pipelines. Use when Bash tool overhead is limiting throughput on data-heavy tasks.

3351 votes

catchup

Recovers the conversation and failed tool calls of a previous Codex, Claude Code, Antigravity, Cline, Copilot CLI, Cursor, DeepSeek Harness, Kimi, OpenCode, Pi Agent, or ZCode session. Use when the user says "catch up", "what did the last session do", "get me up to speed", "I switched agents", asks to recover/summarize a previous session before continuing, or asks to diagnose or report a catchup failure. Do NOT use for the current conversation, git history, or any non-agent log.

651 votes

math-skill

A comprehensive mathematical reasoning skill for AI assistants — handles arithmetic to research-level problems with rigorous step-by-step reasoning, systematic verification, and transparent uncertainty handling

381 votes
View all in ai-agents →