Agent skill

Recall Rationale

by tobihagemann in tobihagemann/turbo

Recall why a past change was made, drawing on Codex session history when available and falling back to commit diff and surrounding code.

MITAuto-check passedDevelopment

Install Recall Rationale

skills CLI
$ npx skills add tobihagemann/turbo --skill recall-rationale -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install tobihagemann/turbo recall-rationale --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/tobihagemann/turbo.git skills-src && mkdir -p .claude/skills && cp -r skills-src/codex/skills/recall-rationale .claude/skills/recall-rationale && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
recall-rationale
GitHub stars
408
Token cost
~1k tokens
SKILL.md length
508 words
Files
1
Skills in repo
81
Repo updated
First seen
Licence
MIT

At a glance

Recall why a past change was made, drawing on Codex session history when available and falling back to commit diff and surrounding code.

  • Works in 4 steps: Resolve the Commit → Search Codex Session History → Synthesize → …
  • The user asks to recall the rationale
  • SKILL.md covers Inputs, Step 1: Resolve the Commit, Step 2: Search Codex Session… and Step 3: Synthesize, plus 2 more sections
  • Calls git and rg

What it does

Recall Rationale is an agent skill from tobihagemann/turbo. Recall why a past change was made, drawing on Codex session history when available and falling back to commit diff and surrounding code. Use when the user asks to "recall the rationale", "find the rationale", "look up the rationale", "why did I do X", "why did we do X", "why was this changed", or "find the transcript for this commit".

Its SKILL.md is about 1k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Development. It works with Git. The repository describes itself as: Reusable workflows for planning, building, reviewing, and shipping with Claude Code and Codex. The licence is MIT.

When your agent uses it

  • The user asks to recall the rationale
  • Find the rationale
  • Look up the rationale
  • Why did we do X

Example prompts

  • “recall the rationale”
  • “find the rationale”
  • “look up the rationale”
  • “/recall-rationale”

Workflow steps

4 steps, taken from the step headings in SKILL.md.

  1. Resolve the Commit
  2. Search Codex Session History
  3. Synthesize
  4. Output

What it can do on your machine

Read from SKILL.md and the folder at commit 931eda5. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • git
    • rg

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use git, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Recall Rationale loads about 1k tokens when it runs. Until then it costs about 88 tokens; SKILL.md has 508 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~88
When it runs · the whole SKILL.md, loaded when a task matches
~1k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from tobihagemann/turbo at commit 931eda5, republished under its MIT licence (© tobihagemann). 508 words, ~1,008 tokens.

Download SKILL.mdSave it as .claude/skills/recall-rationale/SKILL.md (or your agent's skills folder).
name
recall-rationale
description
Recall why a past change was made, drawing on Codex session history when available and falling back to commit diff and surrounding code. Use when the user asks to "recall the rationale", "find the rationale", "look up the rationale", "why did I do X", "why did we do X", "why was this changed", or "find the transcript for this commit".

Recall Rationale

Recover why a change was made. Prefer Codex session history when it can be found; otherwise derive the explanation from git history and current code.

Inputs

Accept any of:

  • A commit SHA
  • A file path, optionally with a line number (<path>:<line>)
  • A reviewer question plus surrounding context
  • A passage with no commit behind it, because the project is not a git repository or the change is uncommitted

If only a file is given, use git blame to resolve the commit that last touched the line.

Step 1: Resolve the Commit

Resolve the target commit:

bash
git rev-parse <sha>
git blame -L <line>,<line> -- <path>

Collect the commit subject, changed files, and relevant diff:

bash
git show --stat --oneline <sha>
git show -- <path>

When there is no commit to resolve, because the project is not a git repository or git blame finds no commit for the line (it reports Not Committed Yet, or fails because the file is untracked), skip the git commands and carry a distinctive stretch of the passage's current text into Step 2, taken from a single line and free of quotes and backslashes, which session files store escaped.

Step 2: Search Codex Session History

If Codex session files are available, search them for the commit SHA, touched file paths, branch name, and distinctive user request text. Without a commit, search for the passage text instead, list the matching files with rg -l, and keep only those whose first-line session_meta record has a cwd at or inside the project directory.

Write the patterns to a file with apply_patch, one per line, then match them literally:

bash
rg -F -f <pattern-file> ~/.codex/sessions

-F is required, not just safer: an unescaped $ inside request text is a regex anchor and silently drops the match.

Read only the smallest relevant transcript excerpts. Prefer sessions close to the commit time and sessions that mention both the file and the task. Without a commit, disregard matches from this search itself (the pattern-file write and the search commands), prefer sessions whose tool calls carry the passage and that mention it often, break ties by recency, and read around the chosen session's last mention when the question is about the passage's current state.

If no matching session is found, continue with the fallback path.

Show full SKILL.md (153 more words)Show less

Step 3: Synthesize

If session rationale was found:

  • Lead with the why. The diff already shows the what.
  • Quote or paraphrase only the relevant rationale.
  • Keep the explanation to one or two paragraphs.

If no session rationale was found:

  • Read the commit diff, when there is one, and the surrounding current code.
  • Infer the most likely rationale from the code, tests, plan/spec artifacts, and PR context.
  • Mark the output as fallback-derived.

Step 4: Output

When session rationale was found:

markdown
**Commit:** <short-sha> — <subject>
**Session:** <session reference>

<one or two paragraphs of rationale>

When no session rationale was found:

markdown
**Commit:** <short-sha> — <subject>
**Session:** none found

<fallback explanation derived from git history and current code>

In either shape, without a commit, write the first line as **Commit:** none (not a git repository) or **Commit:** none (uncommitted).

Then call update_plan to mark this step completed and continue with the next step of the active workflow.

Rules

  • Treat session excerpts as evidence, not ground truth.
  • Do not read full transcript files unless excerpts are insufficient.
  • If current code contradicts a remembered rationale, note the discrepancy.

© tobihagemann, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in codex/skills/recall-rationale of tobihagemann/turbo.

Open the folder on GitHubat commit 931eda5

Compare with similar skills

Recall Rationale next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Recall Rationale compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Recall Rationale this skilltobihagemann/turbo408—~1kAutomated safety check: PassMIT
Finishing a Development Branchobra/superpowers297k5 repos~1.9kAutomated safety check: PassMIT
Code Review ChecklistshareAI-lab/learn-claude-code78k4 repos~1.1kAutomated safety check: PassMIT
Contributor-First PR MergeHKUDS/OpenHarness16k1 repos~847Automated safety check: PassMIT
Finishing A Development Branchfarm-fe/farm5.6k35 repos~1.8kAutomated safety check: PassMIT
Migrate Internal Package into GhostTryGhost/Ghost56k—~3.8kAutomated safety check: PassMIT

Similar skills

  • Walks the last step of a branch: confirm tests pass, detect the git environment, ask how to integrate, carry out your choice and clean up the worktree.

    297k GitHub starsUsed in 5 repos~1.9k tokens
    DevelopmentAuto-check passed
  • Code Review Checklist

    shareAI-lab/learn-claude-code

    Reviews code against a five-part checklist covering security, correctness, performance, maintainability and testing, and reports findings in a fixed format.

    78k GitHub starsUsed in 4 repos~1.1k tokens
    DevelopmentAuto-check passed
  • Merges external GitHub pull requests while keeping the original author credited, and fixes conflicts after the merge instead of rewriting the contribution.

    16k GitHub starsUsed in 1 repo~847 tokens
    DevelopmentAuto-check passed
  • A skill your agent uses when implementation is complete, all tests pass, and you need to decide how to integrate the work - guides completion of development work by presenting structured options for…

    5.6k GitHub starsUsed in 35 repos~1.8k tokens
    DevelopmentAuto-check passed
  • Moves a package from another TryGhost repository into Ghost as an internal workspace package while keeping its Git history, with checkpoints for the steps that need an administrator.

    56k GitHub stars~3.8k tokensUpdated today
    DevelopmentAuto-check passed
  • Doc Sync

    JetBrains/ideavim

    Official

    Keeps IdeaVim documentation in sync with code changes. An agent skill from JetBrains/ideavim.

    10k GitHub starsUsed in 2 repos~2.6k tokens
    DevelopmentAuto-check passed

More from tobihagemann/turbo

All 81 skills in this repo
  • Consult Oracle

    tobihagemann/turbo

    Consult ChatGPT Pro via ChatGPT browser automation for problems that resist standard approaches.

    408 GitHub stars~1.1k tokensUpdated 2 days ago
    Auto-check passed
  • Fetch PR Comments

    tobihagemann/turbo

    Fetch and summarize review feedback and conversation from a GitHub PR (unresolved review threads, review bodies, and PR conversation comments) without making changes.

    408 GitHub stars~967 tokensUpdated 2 days ago
    Auto-check passed
  • Recall Rationale

    tobihagemann/turbo

    Recall why a past change was made by locating the Claude Code transcript that produced it.

    408 GitHub stars~1.3k tokensUpdated 2 days ago
    Auto-check passed
  • Resolve PR Comments

    tobihagemann/turbo

    Evaluate, fix, answer, and reply to GitHub pull request review comments and conversation comments.

    408 GitHub stars~3.8k tokensUpdated 2 days ago
    Auto-check passed
  • Resolve PR Comments

    tobihagemann/turbo

    Evaluate, fix, answer, and reply to GitHub pull request review comments and conversation comments.

    408 GitHub stars~3.8k tokensUpdated 2 days ago
    Auto-check passed
  • Assess Technical Debt

    tobihagemann/turbo

    Assess project-wide structural technical debt: complexity hotspots, deprecated API usage, duplication clusters, architecture rot, and low-value tests.

    408 GitHub stars~2.8k tokensUpdated 2 days ago
    Auto-check passed

Works with

Categories

Questions about Recall Rationale

What does Recall Rationale do?

Recall why a past change was made, drawing on Codex session history when available and falling back to commit diff and surrounding code. Recall Rationale is an agent skill from tobihagemann/turbo. Recall why a past change was made, drawing on Codex session history when available and falling back to commit diff and surrounding code.

When should I use Recall Rationale?

Recall Rationale fits situations like: the user asks to recall the rationale; find the rationale; look up the rationale; why did we do X.

How do I install Recall Rationale in Claude Code?

Run `npx skills add tobihagemann/turbo --skill recall-rationale -a claude-code`. Or copy the skill folder (codex/skills/recall-rationale in tobihagemann/turbo) into .claude/skills/recall-rationale in your project. Claude Code loads it when a task matches its description.

How do I install Recall Rationale in Codex?

Run `npx skills add tobihagemann/turbo --skill recall-rationale -a codex`. Or copy the skill folder (codex/skills/recall-rationale in tobihagemann/turbo) into .agents/skills/recall-rationale in your project. Codex loads it when a task matches its description.

Can I use Recall Rationale in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add tobihagemann/turbo --skill recall-rationale -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/recall-rationale, .gemini/skills/recall-rationale, .github/skills/recall-rationale and .opencode/skills/recall-rationale in your project.

What does Recall Rationale need to run?

Going by SKILL.md and its folder, Recall Rationale needs the command-line tools its instructions call (git and rg).

Does Recall Rationale access the network?

SKILL.md contains no URLs. Its commands use git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Recall Rationale safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Recall Rationale use?

Recall Rationale is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Recall Rationale use?

About 1k tokens (SKILL.md is roughly 4k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Recall Rationale?

Skills that share tags, products or a category with Recall Rationale: Finishing a Development Branch (obra/superpowers, 297k stars), Code Review Checklist (shareAI-lab/learn-claude-code, 78k stars), Contributor-First PR Merge (HKUDS/OpenHarness, 16k stars) and Finishing A Development Branch (farm-fe/farm, 5.6k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Recall Rationale?

tobihagemann (a GitHub user) maintains it in tobihagemann/turbo, which has 408 GitHub stars. The repository holds 81 skills in this directory. The repository was last updated on October 9, 2026.

Source: tobihagemann/turbo on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.