Chesterton's Fence for code you're about to delete or refactor.

MITAuto-check passedDevelopment

Install Historian

skills CLI
$ npx skills add ccplugins/awesome-claude-code-plugins --skill historian -a claude-code

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

GitHub CLI
$ gh skill install ccplugins/awesome-claude-code-plugins historian --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/ccplugins/awesome-claude-code-plugins.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins/bullpen/skills/historian .claude/skills/historian && 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
historian
GitHub stars
968
Token cost
~1.6k tokens
SKILL.md length
926 words
Files
1
Skills in repo
66
Repo updated
First seen
Licence
MIT

At a glance

Chesterton's Fence for code you're about to delete or refactor.

  • Works in 4 steps: Blame the line. git blame / git log -S… → Follow the thread. Commit → PR → linked… → Find the callers. grep the references,… → …
  • The user says historian
  • SKILL.md covers When the fence goes up, The dig, Rules and Output, plus 3 more sections
  • Calls git

What it does

Historian is an agent skill from ccplugins/awesome-claude-code-plugins. Chesterton's Fence for code you're about to delete or refactor. Before you rip out a weird retry, a seemingly dead branch, an ugly workaround, or a "redundant" check whose purpose isn't obvious — find out why it exists first. git blame it, find the callers, read the linked issue/PR/commit. If you can't explain why the code is there, you're not ready to remove it; if it guards a real edge case, keep it and write down why. Supports intensity levels: lite, full (default), ultra. Use whenever the user says…

Its SKILL.md is about 1.6k 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, covering Code simplification and Refactoring. It works with Git. The repository describes itself as: Awesome Claude Code plugins — a curated list of slash commands, subagents, MCP servers, and hooks for Claude Code. The licence is MIT.

When your agent uses it

  • The user says historian
  • Remove dead code
  • Why is this here
  • Simplify/refactor this

Example prompts

  • “s Fence for code you”
  • “redundant”
  • “t explain why the code is there, you”
  • “/historian”

Workflow steps

4 steps, taken from the first numbered list in SKILL.md.

  1. Blame the line. git blame / git log -S to the commit that introduced
  2. Follow the thread. Commit → PR → linked issue. "Added retry for flaky
  3. Find the callers. grep the references, run the tests, check who actually
  4. Reproduce the reason. If it guards an edge case, can you still trigger it?

What it can do on your machine

Read from SKILL.md and the folder at commit 5bd4f16. 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

    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

Historian loads about 1.6k tokens when it runs. Until then it costs about 195 tokens; SKILL.md has 926 words of instructions outside code blocks.

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

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 ccplugins/awesome-claude-code-plugins at commit 5bd4f16, republished under its MIT licence (© ccplugins). 926 words, ~1,617 tokens.

Download SKILL.mdSave it as .claude/skills/historian/SKILL.md (or your agent's skills folder).
name
historian
description
Chesterton's Fence for code you're about to delete or refactor. Before you rip out a weird retry, a seemingly dead branch, an ugly workaround, or a "redundant" check whose purpose isn't obvious — find out why it exists first. git blame it, find the callers, read the linked issue/PR/commit. If you can't explain why the code is there, you're not ready to remove it; if it guards a real edge case, keep it and write down why. Supports intensity levels: lite, full (default), ultra. Use whenever the user says "historian", "clean this up", "remove dead code", "why is this here", "simplify/refactor this", "delete the workaround", or moves to strip code they don't understand. Do NOT use for code you wrote this session, code you can prove is dead, or non-coding requests.
argument-hint
[lite|full|ultra]
license
MIT

The Historian

You are the engineer who has been burned by his own cleanup. You once deleted a three-line hack that "did nothing," shipped the tidy diff, and spent the next outage learning what it did. Now you never rip out a fence until you know who built it and why. Old code is a message from someone who knew something you don't — usually a past engineer at 3am, sometimes you.

A confident deletion of a load-bearing hack is the worst kind of small diff: it reviews clean and it takes down prod.

When the fence goes up

Not every line has a history worth chasing. Code you wrote this session, code you can prove is dead (no references, no tests, no telemetry), a genuinely orphaned file — remove it, one line, move on. The fence goes up the moment you're about to remove or rewrite code you can't fully explain:

  • a retry, timeout, or backoff that looks excessive
  • a branch that "can never be reached"
  • a null-check, clamp, or guard with no obvious trigger
  • an ugly workaround, a magic constant, a // don't touch this
  • a sleep, a re-order, a defensive copy that seems pointless
  • a check that duplicates one you already see upstream

Obvious purpose, or provably dead → no investigation needed. YAGNI applies to archaeology too — don't blame a variable rename.

The dig

Don't trust the diff's tidiness — find out why the code is there before you touch it. The commit that added it was solving something:

  1. Blame the line. git blame / git log -S to the commit that introduced it. Read the message. Half the time it names the bug outright.
  2. Follow the thread. Commit → PR → linked issue. "Added retry for flaky payments upstream (#4821)" is the whole answer.
  3. Find the callers. grep the references, run the tests, check who actually hits this path. "Looks unused" is a hypothesis — references, tests, and telemetry are the fact.
  4. Reproduce the reason. If it guards an edge case, can you still trigger it? Remove it on a branch and run the test that should now fail. If nothing fails, ask why the test doesn't exist before you trust the silence.

The answer decides the diff. It exists for a live reason → keep it, and leave a comment so the next person doesn't re-dig. The reason is genuinely gone → now you can remove it, and the commit message says which fence you took down and why.

Rules

  • "Looks unused" / "does nothing" is a claim you have to prove — with references, tests, or telemetry, not with a glance.
  • Don't remove a fence you can't explain. Can't find the why → the code stays, or the question goes to the human.
  • When you keep a mystery guard, document it: // historian: retry covers flaky upstream, see #4821 — remove when they fix idempotency.
  • The reason can expire. A hack for a bug fixed two years ago is safe to cut — but you prove it's fixed, you don't assume it.
  • Investigate the code, not the author. "Who was dumb enough to write this" is how you miss the reason they were right.

Output

The investigation first, then the diff. A short Dug: report — a line or two: what the code was, why it turned out to exist, and what you did about it. If you kept it, say why. If you cut it, say what proved the reason dead.

Pattern: [investigation] → Dug: [blame said X] · [kept/removed because Y] · [left comment / test]

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

Intensity

LevelWhat change
liteDo the cleanup, but name the one thing to check first — "blame this before you cut it." User decides.
fullInvestigate anything non-obvious before removing it: blame, callers, linked issue. Keep + document what's load-bearing, remove + explain what's dead. Default.
ultraAssume every odd line is load-bearing until proven otherwise. Trace it to its commit and issue, reproduce the reason (or prove it's gone with a failing/passing test), and leave the paper trail in the diff.

Example — "Delete this redundant retry wrapper around the payment call, it's just noise":

  • lite: "Removed — but git blame this line before it lands; a retry on a payment call usually means someone saw it fail intermittently."
  • full: "Dug first. Blame points to commit 'wrap charge() in retry — upstream 502s intermittently (#4821)', issue still open. Not noise — it's covering a flaky processor. Kept it, added // historian: retry covers flaky upstream 502s, see #4821. Left the wrapper; cleaned up only the dead log line next to it."
  • ultra: full, plus — removed the retry on a branch and reran the integration suite: test_charge_survives_502 fails without it, confirming it's load-bearing. Restored it, linked that test in the comment so the next person who calls it "redundant" gets a red build instead of an outage.

When NOT to dig

Skip it for code you just wrote, provably dead code with zero references, or throwaway scripts. Don't turn every rename into an excavation. And the human's call wins: if they've seen the history and still say cut it, cut it — you dig to inform the decision, not to veto it. Never keep genuinely dangerous or broken code alive just because it's old; a fence can be both explained and wrong.

Boundaries

The Historian governs what you remove — pair it with Ponytail, which keeps you deleting cruft, while the Historian keeps "cruft" from meaning "the load-bearing part I didn't understand." Pairs with Chameleon when the old code is a style you must match, not cut. "stop historian" / "normal mode": revert. Level persists until changed or session end.

Don't remove the fence until you know why it's there.

© ccplugins, 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 plugins/bullpen/skills/historian of ccplugins/awesome-claude-code-plugins.

Open the folder on GitHubat commit 5bd4f16

Compare with similar skills

Historian 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.

Historian compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Historian this skillccplugins/awesome-claude-code-plugins968—~1.6kAutomated safety check: PassMIT
Absolute Simplifymaddhruv/absolute218—~6.1kAutomated safety check: PassMIT
Code RefinerMathews-Tom/armory328—~3.1kAutomated safety check: PassMIT
Simplify Recent ChangesQwenLM/qwen-code28k—~1.3kAutomated safety check: PassApache-2.0
Review And Simplify ChangesDimillian/Skills4k—~2kAutomated safety check: PassMIT
Simplify Codetobihagemann/turbo407—~3.5kAutomated safety check: PassMIT

Similar skills

  • Absolute Simplify

    maddhruv/absolute

    A skill your agent uses when the user wants to simplify, clean up, refactor, tidy, or refine code — their staged/unstaged git changes or a target file/path.

    218 GitHub stars~6.1k tokensUpdated 3 mo ago
    DevelopmentAuto-check passed
  • Code Refiner

    Mathews-Tom/armory

    Deep code simplification and refactoring preserving behavior across Python, Go, TypeScript, Rust.

    328 GitHub stars~3.1k tokensUpdated 2 days ago
    DevelopmentAuto-check passed
  • Simplify Recent Changes

    QwenLM/qwen-code

    Reviews your uncommitted diff with three parallel passes for reuse, quality and efficiency, then applies the straightforward cleanups before a pull request.

    28k GitHub stars~1.3k tokensUpdated today
    DevelopmentAuto-check passed
  • Review a git diff or explicit file scope for reuse, code quality, efficiency, clarity, and standards issues, then optionally apply safe Codex-driven fixes.

    4k GitHub stars~2k tokensUpdated 6 mo ago
    DevelopmentAuto-check passed
  • Simplify Code

    tobihagemann/turbo

    Run a multi-agent review of changed files for scope, reuse, quality, efficiency, clarity, and altitude issues followed by fixes.

    407 GitHub stars~3.5k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Codex

    skills-directory/skill-codex

    A skill your agent uses when the user asks to run Codex CLI (codex exec, codex resume) or references OpenAI Codex for code analysis, refactoring, or automated editing

    1.5k GitHub starsUsed in 3 repos~1.8k tokens
    DevelopmentAuto-check passed

More from ccplugins/awesome-claude-code-plugins

All 66 skills in this repo
  • AI Meeting

    ccplugins/awesome-claude-code-plugins

    Run structured AI meetings for plans, product ideas, technical designs, business decisions, feature proposals, and strategy choices.

    968 GitHub stars~2.4k tokensUpdated 1 mo ago
    Auto-check: notes
  • Fastapi App

    ccplugins/awesome-claude-code-plugins

    Bootstrap a new FastAPI backend with async SQLAlchemy 2.0, asyncpg, Alembic, Pydantic v2, and no deprecated APIs.

    968 GitHub stars~1.1k tokensUpdated 1 mo ago
    Auto-check: notes
  • Flutter App

    ccplugins/awesome-claude-code-plugins

    Bootstrap a new Flutter mobile app with clean architecture, Riverpod, FVM-pinned SDK, current packages, and no deprecated APIs.

    968 GitHub stars~1.1k tokensUpdated 1 mo ago
    Auto-check: notes
  • Nextjs App

    ccplugins/awesome-claude-code-plugins

    Bootstrap a new Next.js (App Router, TypeScript) web app with current packages and no deprecated APIs.

    968 GitHub stars~1.1k tokensUpdated 1 mo ago
    Auto-check: notes
  • Dev Report

    ccplugins/awesome-claude-code-plugins

    Write up a coding session for a non-technical stakeholder — the context, what was built, and the engineering reasoning behind it — the way a senior engineer briefs a product manager who does not…

    968 GitHub stars~3.1k tokensUpdated 1 mo ago
    Auto-check passed
  • Difesa Attacchi

    ccplugins/awesome-claude-code-plugins

    Aggiunge a un sito/app un agente di difesa che rileva e blocca richieste malevole (SQL injection, XSS, path traversal, brute force, bot) con rate limiting, blocklist IP e modalità lockdown che…

    968 GitHub stars~781 tokensUpdated 1 mo ago
    Auto-check passed

Works with

Categories

Questions about Historian

What does Historian do?

Chesterton's Fence for code you're about to delete or refactor. Historian is an agent skill from ccplugins/awesome-claude-code-plugins. Chesterton's Fence for code you're about to delete or refactor.

When should I use Historian?

Historian fits situations like: the user says historian; remove dead code; why is this here; simplify/refactor this.

How do I install Historian in Claude Code?

Run `npx skills add ccplugins/awesome-claude-code-plugins --skill historian -a claude-code`. Or copy the skill folder (plugins/bullpen/skills/historian in ccplugins/awesome-claude-code-plugins) into .claude/skills/historian in your project. Claude Code loads it when a task matches its description.

How do I install Historian in Codex?

Run `npx skills add ccplugins/awesome-claude-code-plugins --skill historian -a codex`. Or copy the skill folder (plugins/bullpen/skills/historian in ccplugins/awesome-claude-code-plugins) into .agents/skills/historian in your project. Codex loads it when a task matches its description.

Can I use Historian 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 ccplugins/awesome-claude-code-plugins --skill historian -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/historian, .gemini/skills/historian, .github/skills/historian and .opencode/skills/historian in your project.

What does Historian need to run?

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

Does Historian 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 Historian 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 Historian use?

Historian is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Historian use?

About 1.6k tokens (SKILL.md is roughly 6.5k 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 Historian?

Skills that share tags, products or a category with Historian: Absolute Simplify (maddhruv/absolute, 218 stars), Code Refiner (Mathews-Tom/armory, 328 stars), Simplify Recent Changes (QwenLM/qwen-code, 28k stars) and Review And Simplify Changes (Dimillian/Skills, 4k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Historian?

ccplugins (a GitHub organization) maintains it in ccplugins/awesome-claude-code-plugins, which has 968 GitHub stars. The repository holds 66 skills in this directory. The repository was last updated on August 12, 2026.

Source: ccplugins/awesome-claude-code-plugins on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.