Agent skill

Simplify Docs

by tobihagemann in tobihagemann/turbo

Run a multi-agent review of code comments and markdown documentation for unnecessary content, then fix the issues.

MITAuto-check passedAgent Workflows

Install Simplify Docs

skills CLI
$ npx skills add tobihagemann/turbo --skill simplify-docs -a claude-code

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

GitHub CLI
$ gh skill install tobihagemann/turbo simplify-docs --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/simplify-docs .claude/skills/simplify-docs && 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
simplify-docs
GitHub stars
407
Token cost
~3.1k tokens
SKILL.md length
1,839 words
Files
1
Skills in repo
81
Repo updated
First seen
Licence
MIT

At a glance

Run a multi-agent review of code comments and markdown documentation for unnecessary content, then fix the issues.

  • Works in 3 steps: Determine the Scope → Launch Two Review Agents in Parallel → Fix Issues
  • The user asks to simplify docs
  • SKILL.md covers Step 1: Determine the Scope, Step 2: Launch Two Review… and Step 3: Fix Issues
  • Calls git and gh

What it does

Simplify Docs is an agent skill from tobihagemann/turbo. Run a multi-agent review of code comments and markdown documentation for unnecessary content, then fix the issues. Covers comments that misdescribe the code, what-restating comments, name-mirroring doc comments, status-update prose, and other documentation noise. Use when the user asks to "simplify docs", "simplify documentation", "clean up comments", "clean up docs", "review documentation", "strip unnecessary comments", "fix stale comments", "reduce doc noise", or "run simplify-docs".

Its SKILL.md is about 3.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 Agent Workflows, covering Technical documentation. 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 simplify docs
  • Simplify documentation
  • Clean up comments
  • Review documentation

Example prompts

  • “simplify docs”
  • “simplify documentation”
  • “clean up comments”
  • “/simplify-docs”

Workflow steps

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

  1. Determine the Scope
  2. Launch Two Review Agents in Parallel
  3. Fix Issues

What it can do on your machine

Read from SKILL.md and the folder at commit 4b9f4cf. 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
    • gh

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

  • Network

    No URLs in SKILL.md. Its commands use git and gh, 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

Simplify Docs loads about 3.1k tokens when it runs. Until then it costs about 126 tokens; SKILL.md has 1,839 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~126
When it runs · the whole SKILL.md, loaded when a task matches
~3.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 4b9f4cf, republished under its MIT licence (© tobihagemann). 1,839 words, ~3,103 tokens.

Download SKILL.mdSave it as .claude/skills/simplify-docs/SKILL.md (or your agent's skills folder).
name
simplify-docs
description
Run a multi-agent review of code comments and markdown documentation for unnecessary content, then fix the issues. Covers comments that misdescribe the code, what-restating comments, name-mirroring doc comments, status-update prose, and other documentation noise. Use when the user asks to "simplify docs", "simplify documentation", "clean up comments", "clean up docs", "review documentation", "strip unnecessary comments", "fix stale comments", "reduce doc noise", or "run simplify-docs".

Simplify Docs

Review code comments and markdown documentation for unnecessary content, then fix the issues.

Step 1: Determine the Scope

Determine what to review:

  • If a specific diff command was provided (e.g., git diff --cached), use that.
  • If a file list or directory was provided, review those files directly (read the full files, not a diff).
  • If neither was provided, determine the appropriate diff command (e.g., git diff, git diff --cached, git diff HEAD) based on the current git state. When the branch is an open pull request, resolve its base with gh pr view --json baseRefName --jq '.baseRefName', run git fetch origin <base-branch>, and diff against origin/<base-branch>...HEAD: a local branch of the same name can sit behind the remote, which puts the merge base before an already-merged pull request and pulls merged work into the scope. If there are no git changes, default to a full-tree sweep of source files plus top-level markdown.

State the resolved file list before launching the agents: add --name-only to a diff command, or list the files for a file or directory scope.

Step 2: Launch Two Review Agents in Parallel

Launch both agents below with spawn_agent / wait_agent using inherited model defaults, issuing every call in one batch. Do not issue one and await its result before issuing the rest. Pass the scope from Step 1 to each agent. Every sub-agent's prompt must direct it to treat the shared working tree and its git index as read-only and to reach its findings by reading and reasoning; fixes happen in Step 3. For an empirical check that verifies a finding, the agent works in a copy of the checkout created under $TMPDIR and discarded afterward. Refer to that copy by absolute path in every command and join chained steps with &&, so a failed step cannot leave the rest running in the shared checkout. Give that copy its own dependency install rather than reaching the shared tree's install by any route. When its own install is not possible, the check is left unrun and reported as such. HEAD stays where it is: read other refs with git show <ref>:<path> rather than git checkout or git switch. Direct each agent to write its full findings to a uniquely named file under $TMPDIR and to return that path with its report, so a compaction before Step 3 leaves the findings recoverable.

Confine the sub-agent's prompt to what to review, plus the conventions and factual properties that bear on it. Pass a property of the existing prose as a fact the sub-agent weighs, such as "the file documents non-obvious third-party behavior". Leave out any statement that tells the sub-agent what verdict to reach about that property, such as "the file is deliberately comment-dense, judge against that established bar", because it binds the sub-agent to accept the very property the review exists to assess.

Both sub-agent prompts must also carry the readability criteria below and the constraint that follows them, applied to the prose that survives that agent's own list:

  1. Clause stacking — a sentence carrying more than one idea. Split it when the clauses make independently useful points. Count ideas rather than propositions.
  2. Punctuation chains — a second em dash, colon, or semicolon continuing the thought. Split the sentence. A - **Term** — description label separator is not a chain.
  3. Dense paragraphs — facts running together past the point a reader can hold them apart. Break into shorter sentences, keeping the passage as prose rather than converting it to a bullet list.

Every split above keeps its connectives. Leave clauses joined when their relationship is the point (cause and effect, condition and consequence, contrast, qualification, scope) and separating them would make the reader rebuild the connection.

Agent 1: Code Comments Review

Review code files in scope. Beyond the auto-loaded instruction files, walk each directory that is an ancestor of a reviewed file, from the project root down, and read its AGENTS.override.md when one is present, otherwise its AGENTS.md — a directory's file governs only the files at or below it, and an override replaces that directory's AGENTS.md rather than adding to it. Flag a comment when it misdescribes the code, or when it adds no information beyond what the code already says:

  1. Asserts a contract the code does not enforce — states what is handled, excluded, guaranteed, or left untouched, where the code beneath it does something else. Verify each such claim against the code rather than reading it as intent. Propose correcting the comment, or flag the missing enforcement when the stated contract is the desired one. Check this before the redundancy criteria in this list.
  2. Positional reference that no longer resolves — carries an ordering or directional word such as "first", "above", or "below" whose target the code has since moved. Verify the word still picks out what it names. Propose correcting it to name what it refers to directly, or deleting it when nothing else in the comment survives.
  3. Restates code, signature, or name — paraphrases the immediately-following statement, a multi-statement block, a declaration's name, or the parameter/return shape. Includes doc blocks above a declaration whose prose elaborates the name and signature without adding rationale, and Parameters/Returns/Throws enumerations that only echo names and types. Flag only the redundant entries; non-obvious constraints (size, units, ranges, preconditions) stay. Drop the wrapping enumeration when no entries survive trimming. Where an instruction file or the documentation tooling's configuration requires that declaration to carry documentation, keep what the requirement covers and flag only entries that describe the code wrongly.
  4. Narrates history or change — references PRs, tickets, prior behavior, recent changes, "fixed by"/"previously did X"/"no longer Y" framing, or session-narrative voice ("turns out", "discovered", "we found that"). State the current invariant; past behavior belongs in git history, and session-derived lessons about tooling belong in memories or AGENTS.md. Change narration also appears in invariant form: a sentence that reads as a rule but only carries meaning as a contrast with the code's prior behavior, and that you would not write if the code had been greenfield from day one.
  5. Cross-references that decay — names the caller ("used by X", "called from Y"), or task/flow/feature-flag context the code was added for ("added for the Y flow", "for the rollout"). Delete: caller relationships belong in the call graph, feature context in the PR description.
  6. Explains language or framework constructs — describes what a stdlib feature, language keyword, or well-known framework call does. Assume a competent reader.
  7. Low-value section banners — banners that don't section anything, or that restate what an access modifier or naming convention already conveys. Idiomatic structural markers around a real section stay.
  8. Overgrown rationale — a comment that captures real WHY but in more lines or concerns than the rationale requires. Tighten to one sentence per concern, split bundled concerns to their decision points, or lift shared rationale to a design doc or commit message.
  9. Compensates for unclear code — a comment that exists because the code is hard to read. Flag the underlying code as a refactor opportunity (rename, extract, restructure) rather than tightening the comment.

Keep these: comments that capture a load-bearing constraint the code itself cannot express — a hidden constraint or invariant, a workaround for a specific bug (ideally with a reference), a non-obvious performance characteristic, a pointer to a spec or RFC section, or behavior that would surprise a future reader and lead them to "fix" working code. Greenfield test: would you write this comment if the code had been greenfield from day one? Keeping a comment and finding it accurate are separate judgments: a comment that captures a real constraint still gets corrected when it describes that constraint wrongly.

For each finding, propose: delete it, correct it, tighten to the load-bearing WHY, restructure it for readability, or flag a refactor that would make the comment unnecessary.

Show full SKILL.md (542 more words)Show less
Agent 2: Markdown Documentation Review

Review two sets.

Markdown files in scope (READMEs, AGENTS.md, docs/, contributor guides), against every criterion below. This set is empty when the scope holds no markdown.

The repo's own documentation (its instruction files, README, and docs/) when the scope is a diff, against explanation rot alone: prose the changeset falsified. This sub-agent's prompt carries a summary of what the change did in place of a file list.

Flag passages that contradict the current state, or that add no information beyond what the reader can derive from it:

  1. Status-update voice — prose framed as recent updates or transitions. It also appears in invariant form: a sentence that reads as a rule but only carries meaning as a contrast with the design it replaced, and that you would not write if the project had always worked this way. Rewrite as timeless current-state prose.
  2. Restates what the codebase already shows — passages that duplicate the repo layout or re-summarize what the code makes obvious.
  3. WHAT without WHY — explanations of what a feature does that the feature's own name and signature already convey. Keep the parts that explain motivation, constraints, or tradeoffs.
  4. Scaffolding leak — auto-generated headings, boilerplate sections, or prescriptive bullets that read like spec output rather than reader-facing prose.
  5. Explanation rot — passages that describe an old design or contradict the current code. Delete or update to match reality.
  6. Multi-paragraph essays where one line would do — long-form passages that restate the same point multiple ways. Keep one tight version.

Keep these: passages that explain motivation, capture constraints or tradeoffs the code can't express, document interfaces meant for outside readers, or record decisions whose rationale would otherwise be lost.

For each flagged passage, propose: delete it, correct it, tighten it, restructure it for readability, or rewrite it as timeless current-state prose.

Step 3: Fix Issues

Wait for both agents to complete. Aggregate their findings, reading each agent's findings file at the path it returned when its report is no longer in context. Then apply each fix directly, skipping false positives. When uncertain whether a comment captures a non-obvious WHY, keep it.

When the scope is a diff, confine fixes to prose the changeset authored or falsified. Prose the change left both untouched and accurate stays as it is, however badly it reads.

Report the outcome as a table, one row per finding, keeping every cell to a single line:

FileFindingOutcome

Where Outcome is one of:

  • Deleted, Corrected, Tightened, Restructured, or Rewritten — the fix that was applied
  • Flagged — the fix belongs in the code: a refactor that would make the comment unnecessary, or a missing enforcement of a stated contract
  • Skipped — name the reason

Where one criterion recurs across many sites, or many sites fall within one file, a single row may cover that group. Name the directory or file cluster it spans and the count. Every Skipped and Flagged finding keeps its own row with its reason, since those are the rows a reader acts on.

Keep the report to the table. When the table would be empty, report one line stating the docs were already clean instead.

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

© 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/simplify-docs of tobihagemann/turbo.

Open the folder on GitHubat commit 4b9f4cf

Compare with similar skills

Simplify Docs 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.

Simplify Docs compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Simplify Docs this skilltobihagemann/turbo407—~3.1kAutomated safety check: PassMIT
Neat-Freak Knowledge CloseoutKKKKhazix/khazix-skills21k—~1.9kAutomated safety check: PassMIT
Repository Layout and Docs AuditorTyrealQ/q-skills108—~4.4kAutomated safety check: NotesMIT
Translate Skillvinvcn/mattpocock-skills-zh-CN4.7k—~1.1kAutomated safety check: PassMIT
Doc-Code Sync Checkfancyboi999/open-tag203—~1.7kAutomated safety check: PassApache-2.0
Sync Docsayutaz/piper-plus220—~1.4kAutomated safety check: PassMIT

Similar skills

  • Neat-Freak Knowledge Closeout

    KKKKhazix/khazix-skills

    Brings project docs, agent rule files, authorized memory and leftover workspace files back in line with what the code and runtime actually do at the end of a work session.

    21k GitHub stars~1.9k tokensUpdated 6 days ago
    Agent WorkflowsAuto-check passed
  • Audits a repository's file layout and project documentation against a written convention file, then proposes moves, deletions and doc fixes as an approved plan before touching anything.

    108 GitHub stars~4.4k tokensUpdated 14 days ago
    Agent WorkflowsAuto-check: notes
  • Translate Skill

    vinvcn/mattpocock-skills-zh-CN

    将 mattpocock/skills 的内容翻译、刷新或复核到简体中文本地化仓库 vinvcn/mattpocock-skills-zh-CN 时使用这个项目级 skill。适用于 skill files、README content、CLAUDE.md、CONTEXT.md、docs,以及其他需要保留行为关键 identifiers 的上游用户可见内容。

    4.7k GitHub stars~1.1k tokensUpdated 10 days ago
    Agent WorkflowsAuto-check passed
  • Doc-Code Sync Check

    fancyboi999/open-tag

    Reconciles documentation with code at the end of a change or as a periodic audit, following a repo rule that code changes and doc changes land in one commit.

    203 GitHub stars~1.7k tokensUpdated 1 mo ago
    DevelopmentAuto-check passed
  • Sync Docs

    ayutaz/piper-plus

    コミット前にエージェントチームで全ドキュメント (CLAUDE.md / README / CHANGELOG / docs/) を監査し、コード変更に応じて自動更新します。大規模変更時の documentation drift を予防。

    220 GitHub stars~1.4k 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.

    407 GitHub starsUsed in 1 repo~1.1k tokens
    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.

    407 GitHub starsUsed in 1 repo~967 tokens
    Auto-check passed
  • Recall Rationale

    tobihagemann/turbo

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

    407 GitHub stars~1.3k tokensUpdated today
    Auto-check passed
  • Codex Exec

    tobihagemann/turbo

    Run autonomous task execution using the codex CLI. An agent skill from tobihagemann/turbo.

    407 GitHub starsUsed in 1 repo~2.4k tokens
    Auto-check passed
  • Resolve PR Comments

    tobihagemann/turbo

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

    407 GitHub stars~3.8k tokensUpdated today
    Auto-check passed
  • Investigate

    tobihagemann/turbo

    Systematically investigate bugs, test failures, build errors, performance issues, or unexpected behavior by cycling through characterize-isolate-hypothesize-test steps.

    407 GitHub starsUsed in 1 repo~3.2k tokens
    Auto-check passed

Works with

Questions about Simplify Docs

What does Simplify Docs do?

Run a multi-agent review of code comments and markdown documentation for unnecessary content, then fix the issues. Simplify Docs is an agent skill from tobihagemann/turbo. Run a multi-agent review of code comments and markdown documentation for unnecessary content, then fix the issues.

When should I use Simplify Docs?

Simplify Docs fits situations like: the user asks to simplify docs; simplify documentation; clean up comments; review documentation.

How do I install Simplify Docs in Claude Code?

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

How do I install Simplify Docs in Codex?

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

Can I use Simplify Docs 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 simplify-docs -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/simplify-docs, .gemini/skills/simplify-docs, .github/skills/simplify-docs and .opencode/skills/simplify-docs in your project.

What does Simplify Docs need to run?

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

Does Simplify Docs access the network?

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

Is Simplify Docs 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 Simplify Docs use?

Simplify Docs 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 Simplify Docs use?

About 3.1k tokens (SKILL.md is roughly 12k 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 Simplify Docs?

Skills that share tags, products or a category with Simplify Docs: Neat-Freak Knowledge Closeout (KKKKhazix/khazix-skills, 21k stars), Repository Layout and Docs Auditor (TyrealQ/q-skills, 108 stars), Translate Skill (vinvcn/mattpocock-skills-zh-CN, 4.7k stars) and Doc-Code Sync Check (fancyboi999/open-tag, 203 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Simplify Docs?

tobihagemann (a GitHub user) maintains it in tobihagemann/turbo, which has 407 GitHub stars. The repository holds 81 skills in this directory. The repository was last updated on October 7, 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.