Retro logo

Retro

Community
koolamusic
retro

Use when a user completes a phase, sprint, milestone, or meaningful unit of work and needs a retrospective. Also triggers on `/retro` command. Generates honest, structured retrospectives from available project data (GSD planning files, git history, GitHub PRs/issues, user input). Adapts to any project — GSD-managed, plain git repos, GitHub-heavy workflows, or unstructured projects. Jira-aware: detects `.jira/` and redirects per-sprint retros to `/jira:retro` (the plugin owns the tight coupling to CONTEXT.md/VERIFICATION.md). Produces phase retrospectives, cumulative summaries, and stakeholder reports.

Overview

Publisherkoolamusic
Repositoryclaudefiles
Skill nameretro
Stars
121
Forks
14
Bundled files
7
LicenseMIT
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • 7 bundled files

    Scripts, templates, and references the model can read while it works. Files are read-only and never executed.

  • Open source

    Published by koolamusic on GitHub. Read the source before you install it.

Installation

Install the Retro AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/koolamusic/claudefiles/tree/main/skills/retro
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/koolamusic/claudefiles.git /tmp/claudefiles
mkdir -p .claude/skills
cp -r /tmp/claudefiles/skills/retro .claude/skills/retro
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Retro in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Retro on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Retro is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

Retrospective Skill

Generate honest, structured retrospectives for any Claude Code project. Retrospectives are the primary communication channel between engineering execution and product/stakeholder visibility.

Core Principles

  1. Adapt to the project — A 3-commit side project and a 50-phase enterprise migration both get useful retrospectives.
  2. Honest by default — Surface deviations, bugs, wrong assumptions, and scope surprises prominently. Never omit negative findings.
  3. Composable providers — Read from jira, git, GitHub, and the user. Never write to .project/ or modify git history.
  4. Idempotent — Running /retro 1 twice overwrites the previous output. No duplicates.
  5. Manual fills the gaps — For anything automation can't derive, ask the user.

Commands

CommandDescription
/retroRetrospective for the most recently completed phase
/retro <N>Retrospective for phase N
/retro configShow current config and allow edits
/retro statusShow which phases have retros, which are pending, gaps
/retro initInitialize retrospective infrastructure

Execution Flow

1. Load or Initialize Config

Read .claude/retrospective.config.json. If missing, run first-run initialization (see references/config.md for schema and first-run behavior).

1.5. Detect Jira Workflow

Probe for .jira/STATE.md at the project root. If absent, skip this step.

If found, the repo uses the jira plugin for sprint state. This skill does not read .jira/sprints/* files — that coupling lives inside /jira:retro, which knows how to interpret CONTEXT.md (locked decisions D-XX), VERIFICATION.md (goal-backward outcomes), and per-wave PLAN files.

Surface this to the user via AskUserQuestion before proceeding:

Detected .jira/ — this repo uses the jira plugin for sprint state.

For per-sprint retros, /jira:retro <sprint-slug> is the right tool —
it reads BRIEF.md, CONTEXT.md, every *-PLAN.md, EXECUTION.md, and
VERIFICATION.md for that sprint.

/retro here covers cross-sprint rollups via git + github only — it
intentionally does NOT open jira's per-sprint files.

Options:

  • Switch to /jira:retro — exit this skill; tell the user to invoke /jira:retro <slug> (or /jira:retro --since <date> for cross-sprint rollup inside the plugin).
  • Continue here for cross-sprint rollup — proceed. Disable the gsd provider for this run (it would misfire on legacy .planning/ patterns the jira repo doesn't use). Use only git, github, and manual. Note in the final retrospective output: "Generated by /retro with jira detection — per-sprint detail intentionally not included; see /jira:retro for that."

2. Identify the Phase

  • If phase number/name provided (e.g., /retro 3), use it.
  • Otherwise, determine most recently completed phase from enabled providers:
    • GSD: read .planning/STATE.md for current phase (skipped if jira-detected continue path was taken in step 1.5)
    • Git: find latest tag or merged branch
    • GitHub: find most recently closed milestone via gh
    • Manual: ask the user

3. Gather Phase Data

Query all enabled providers. For provider details, probe logic, and precedence rules, see references/providers.md.

Collect across providers:

  • Objective, scope, success criteria
  • What happened (summaries, commits, PRs)
  • Decisions made (decision logs, PR descriptions, commit messages)
  • Issues and deviations (reverts, fixups, issue comments)
  • Quantitative metrics (git stats, PR/issue counts)
  • Artifacts produced (file lists, diff stats)

Provider precedence (merge, never discard): GSD → GitHub → Git → Manual

4. Populate the Template

Use the project's template from config, or the built-in default at _templates/PHASE-RETRO-TEMPLATE.md. Fill all 10 sections:

#SectionFocus
1Phase ContextObjective, scope in/out, entry conditions, success criteria table
2FindingsExpected vs unexpected discoveries. Prioritize unexpected.
3ObservationsPatterns, anomalies, technical notes for future phases
4Edge CasesNon-obvious scenarios, how handled, impact
5Decisions MadeOptions considered, choice, rationale — audit trail
6Risks & IssuesIssues (severity, resolution, time impact). Forward-looking risks.
7Metrics & ProgressPlanned vs actual. Requirement completion with evidence.
8LearningsWhat worked, what didn't, what we'd do differently. Be honest.
9ArtifactsTable of outputs with filenames and descriptions
10Stakeholder HighlightsExecutive summary, key numbers, callouts, confidence scores

Tone: Surface the bad and the ugly prominently. Sugarcoating defeats the purpose.

5. Completeness Check

Before writing, self-audit the retrospective. For each of the 10 sections:

CheckPass Condition
Section presentHeading exists with content below it
Tables populatedEvery table has at least 1 data row (not just headers)
No placeholder textNo {{variables}}, "TBD", "N/A" for entire sections
Manual questions askedIf a section is empty after provider data, the user was asked
Honesty auditSections 2, 6, 7, 8 must not lead with positives if negatives exist. Any language that reframes a negative outcome as positive, neutral, or as a growth opportunity is prohibited. State what failed, why, and what it cost. Banned phrases include but are not limited to: "challenges", "despite difficulties", "evolved the approach", "learning opportunity", "room for improvement", "adjusted scope/timeline", "partially achieved/met", "minor setback", "incremental progress", "opportunity for improvement", "required additional iteration", "scope refinement".
Confidence scoresSection 10 has Completeness, Quality, Risk Exposure scores 1-5. Use this rubric: 5 = all requirements met, no significant issues. 4 = all requirements met, minor issues resolved. 3 = most requirements met, some issues outstanding. 2 = significant requirements unmet or major issues. 1 = critical failures, phase objectives not achieved. Scores must reflect reality — do not inflate.

If any section is empty: Go back to Step 3 and ask the user via manual provider. Do not write a retrospective with blank sections.

Manual question minimums by data richness:

  • If GSD or GitHub provide structured data: minimum 3 manual questions.
  • If only git and manual are active: minimum 5 manual questions (git provides metrics but not subjective context).
  • If only manual is active: minimum 7 manual questions (you are the sole data source besides the user).

Go back and ask about surprises, failures, forward risks, edge cases, and decisions at minimum.

6. Write the Retrospective

Save to <retrospective_dir>/phase-<N>-<slug>.md (default: .jira/sprints/<active-slug>/ if jira-managed, otherwise .project/retros/). Overwrite if exists.

Slug derivation: Phase name lowercased, spaces replaced with hyphens, non-alphanumeric characters (except hyphens) removed, truncated to 50 characters. If no phase name exists, use phase number only: phase-<N>.md.

7. Update Cumulative Summary

If summary_tracker.auto_update is true, update <retrospective_dir>/SUMMARY.md:

  • Phase column in project-level metrics table
  • Phase completion status (status, confidence, key outcome)
  • Cross-phase learnings (recurring themes, compounding risks)
  • Cumulative risk register
  • Project-level decisions

If SUMMARY.md doesn't exist, create from built-in default at _templates/SUMMARY-TEMPLATE.md.

8. Generate Stakeholder Report

If stakeholder_report.auto_generate is true, generate <retrospective_dir>/phase-<N>-<slug>-stakeholder.md from _templates/STAKEHOLDER-REPORT-TEMPLATE.md:

  • Plain language, no jargon
  • Lead with outcomes and numbers
  • Risks and blockers up front
  • Next phase preview with readiness assessment

Hook Enforcement

The skill ships with hooks/retro-trigger.sh — a real Claude Code PostToolUse hook, not just instructions.

What It Detects

TriggerTool WatchedSignal
GSD phase completionEdit/Write on .planning/STATE.mdStatus contains "complete"
Git tag creationBash running git tag <name>Tag command pattern match

Behavior by Mode

  • auto: Prints [retro] Phase N complete. Auto-generating retrospective... to stderr (exit 2). The agent sees this as a hook message and should run /retro.
  • prompt: Prints the prompt message and writes pending_retro to config. User decides when to run /retro.
  • manual: Hook exits 0 silently. No-op.

Registration

The hook must be registered in the project's .claude/settings.json:

json
{
  "hooks": {
    "PostToolUse": [
      {
        "matcher": "Edit|Write|Bash",
        "hooks": [
          {
            "type": "command",
            "command": "~/.claude/hooks/retro-trigger.sh",
            "timeout": 10
          }
        ]
      }
    ],
    "SessionStart": [
      {
        "matcher": "",
        "hooks": [
          {
            "type": "command",
            "command": "~/.claude/hooks/retro-reminder.sh",
            "timeout": 5
          }
        ]
      }
    ]
  }
}

On /retro init, register both hooks automatically if the project's .claude/settings.json doesn't already have them. Merge into existing hook arrays — do not overwrite existing hooks for the same trigger.

Two hooks, two jobs:

  • retro-trigger.sh (PostToolUse) — detects phase completion in real time
  • retro-reminder.sh (SessionStart) — reminds about deferred retros on session start

See references/config.md for pending_retro schema.

Reference Files

  • references/config.md — Full config schema, field reference, first-run initialization logic
  • references/providers.md — Data provider details, probe logic, what each reads, precedence rules
  • _templates/PHASE-RETRO-TEMPLATE.md — Default phase retrospective template
  • _templates/STAKEHOLDER-REPORT-TEMPLATE.md — Default stakeholder report template
  • _templates/SUMMARY-TEMPLATE.md — Default cumulative summary template

Bundled files

The model reads these on demand while the skill is loaded. They are exposed as readable files and are never executed.

Frequently asked questions

What does the Retro AI skill do?

Use when a user completes a phase, sprint, milestone, or meaningful unit of work and needs a retrospective. Also triggers on `/retro` command. Generates honest, structured retrospectives from available project data (GSD planning files, git history, GitHub PRs/issues, user input). Adapts to any project — GSD-managed, plain git repos, GitHub-heavy workflows, or unstructured projects. Jira-aware: detects `.jira/` and redirects per-sprint retros to `/jira:retro` (the plugin owns the tight coupling to CONTEXT.md/VERIFICATION.md). Produces phase retrospectives, cumulative summaries, and stakehold...

Why use Retro on TypingMind?

Because you install it once and use it with any model. Retro is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Retro in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/koolamusic/claudefiles/tree/main/skills/retro. TypingMind reads its SKILL.md and bundles its files and installs it as a skill you can enable per chat.

Which AI models can use Retro?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Retro?

As many as you like. As long as a model supports skills, you can use Retro with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Retro AI skill free?

Yes. It is published on GitHub by koolamusic under the MIT license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇