Agent skill

Han Update Documentation

by testdouble in testdouble/han

Update Han plugin documentation so every skill, agent, guidance doc, index, and cross-reference is current and accurate.

MITAuto-check passedDevelopment

Install Han Update Documentation

skills CLI
$ npx skills add testdouble/han --skill han-update-documentation -a claude-code

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

GitHub CLI
$ gh skill install testdouble/han han-update-documentation --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/testdouble/han.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/han-update-documentation .claude/skills/han-update-documentation && 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
han-update-documentation
GitHub stars
279
Token cost
~3.4k tokens
SKILL.md length
1,687 words
Files
4 (incl. scripts, references)
Skills in repo
54
Repo updated
First seen
Licence
MIT

At a glance

Update Han plugin documentation so every skill, agent, guidance doc, index, and cross-reference is current and accurate.

  • Works in 6 steps: Detect mode and scope → Build the entity inventory → Per-entity audit → …
  • Verifying Hans docs after changing skills
  • SKILL.md covers Pre-requisites, Project Context, Step 1: Detect mode and scope and Step 2: Build the entity…, plus 4 more sections
  • Runs Shell scripts from its folder; calls git

What it does

Han Update Documentation is an agent skill from testdouble/han. Update Han plugin documentation so every skill, agent, guidance doc, index, and cross-reference is current and accurate. On a non-default branch, scopes the pass to entities the branch actually touched. On the default branch, performs a full documentation sweep across the whole plugin. Use when updating, refreshing, syncing, auditing, or verifying Han's docs after changing skills, agents, references, or top-level guidance — including "update the docs", "doc sweep", "refresh documentation", "audit the docs", "make…

Its SKILL.md is about 3.4k tokens, which your agent loads only when the skill is triggered. The skill folder holds 5 other files, including scripts and reference files (for example `references/audit-checklist.md`, `references/scope-mapping.md` and `scripts/detect-doc-update-context.sh`).

It sits in Development, covering Pull requests and Changelog and release notes. It works with Git. The repository describes itself as: Han: AI skills and agents for "Solo" product engineers and small teams. The licence is MIT.

When your agent uses it

  • Verifying Hans docs after changing skills
  • Top-level guidance — including update the docs
  • Refresh documentation
  • Make sure the docs are current

Example prompts

  • “update the docs”
  • “doc sweep”
  • “refresh documentation”
  • “/han-update-documentation”

Requirements

  • A Bash shell
  • Pre-approved tools (allowed-tools): Read, Write, Edit, Glob, Grep, Agent, Bash(git *), Bash(find *)

Workflow steps

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

  1. Detect mode and scope
  2. Build the entity inventory
  3. Per-entity audit
  4. Cross-reference and bidirectional-link audit
  5. Apply updates
  6. Verify and report

What it can do on your machine

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

  • Tool permissions

    Pre-approves these tools, so the agent can use them without asking each time:

    • Read
    • Write
    • Edit
    • Glob
    • Grep
    • Agent
    • Bash(git *)
    • Bash(find *)

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 1 file in scripts/ (Shell), which the agent can run.

    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

Han Update Documentation loads about 3.4k tokens when it runs, and up to ~7.8k if it reads all its reference files. Until then it costs about 210 tokens; SKILL.md has 1,687 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~210
When it runs · the whole SKILL.md, loaded when a task matches
~3.4k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~7.8k

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); the scripts in this folder are not scanned.

SKILL.md

The full file from testdouble/han at commit abba73a, republished under its MIT licence (© testdouble). 1,687 words, ~3,366 tokens.

Download SKILL.mdSave it as .claude/skills/han-update-documentation/SKILL.md (or your agent's skills folder). This skill also uses 3 other files; get the full folder from GitHub.
name
han-update-documentation
description
Update Han plugin documentation so every skill, agent, guidance doc, index, and cross-reference is current and accurate. On a non-default branch, scopes the pass to entities the branch actually touched. On the default branch, performs a full documentation sweep across the whole plugin. Use when updating, refreshing, syncing, auditing, or verifying Han's docs after changing skills, agents, references, or top-level guidance — including "update the docs", "doc sweep", "refresh documentation", "audit the docs", "make sure the docs are current". This is a repository-maintenance skill for the Han repo itself, not a general documentation skill — use /project-documentation to document features in arbitrary projects, /han-release to cut a release (and update CHANGELOG), and /update-pr-description for PR bodies.
allowed-tools
Read, Write, Edit, Glob, Grep, Agent, Bash(git *), Bash(find *)
argument-hint
[optional context about what changed]

Pre-requisites

  • git: !which git 2>/dev/null || echo "not installed"
  • repo root marker: !find . -maxdepth 3 -name "plugin.json" -path "*/.claude-plugin/*" -type f
  • skill roots: !find . -maxdepth 2 -type d -name skills -path './han-*/skills' ! -path './han-plugin-builder/skills' 2>/dev/null | sed 's|^\./||' | sort
  • agents directory: !find . -maxdepth 2 -type d -name agents -path './han-*/agents' 2>/dev/null | sed 's|^\./||' | sort

If any of the above are empty or read not installed: this skill is intended to run inside the Han plugin repository. Tell the operator which marker is missing and stop. Do not attempt to operate on a different repo.

Project Context

  • current branch: !git branch --show-current 2>/dev/null || echo unknown
  • default branch: !git symbolic-ref --short refs/remotes/origin/HEAD 2>/dev/null || echo unknown

Step 1: Detect mode and scope

Run ${CLAUDE_SKILL_DIR}/scripts/detect-doc-update-context.sh and read its output. Branch on the mode: line.

The script also emits the skill roots (between skill-roots-start and skill-roots-end) and the agent root (the agent-root: line), both discovered dynamically from disk. These are the authoritative roots for the rest of this skill — use them wherever the steps below say "the skill roots" or "the agent root," rather than any hardcoded plugin list. A skill root is every han-*/skills directory except han-plugin-builder/skills, whose guidance skill is authoring guidance audited under guidance docs (Step 2, sweep), not a documented product skill. Adding a new product plugin needs no edit to this skill; it shows up in the discovered roots automatically.

mode: error — stop. Surface the reason: line to the operator. Do not proceed.

mode: branch — branch scope. Set MODE = branch. Read the file list between changed-files-start and changed-files-end (or note that the file list is empty if changed-files: none appears instead). If the file list is empty, inform the operator that the branch has no changes against the default branch and stop.

mode: sweep — full sweep. Set MODE = sweep. The skill audits every documentation entity across the plugin suite (every skill root the detect script reported, plus the agent root).

Echo back the mode and the count of in-scope files (branch mode) or "full plugin sweep" (sweep mode) so the operator knows what is about to happen.

Step 2: Build the entity inventory

The mode determines which entities to audit. Always build a deduplicated list of entities before reading anything else, so Step 3 has a fixed plan.

When MODE = branch

Map each changed file to its entities using references/scope-mapping.md. A single file can pull multiple entities into scope (a changed skill SKILL.md pulls the skill plus, if the description changed, the index and CLAUDE.md catalog). Then apply the implicit dependencies section of the mapping reference: skill or agent additions and removals pull the indexes, CLAUDE.md, README, and docs/concepts.md into scope; sibling-boundary changes pull the named sibling into scope.

Deduplicate. Produce a single ordered inventory INV:

  1. Skills, alphabetical.
  2. Agents, alphabetical.
  3. Indexes (docs/skills/README.md, docs/agents/README.md).
  4. Top-level concept docs (docs/concepts.md, docs/quickstart.md, docs/sizing.md, docs/yagni.md).
  5. Guidance docs (specific files only).
  6. Templates (specific files only).
  7. Root files (README.md, CONTRIBUTING.md, CLAUDE.md).
Plugin roots

Han ships as several plugins. Skills are spread across several of them; agents live in han-core and, for the readability-editor, han-communication. Long-form docs now live inside the plugin they describe, at {plugin}/docs/skills/{name}.md and {plugin}/docs/agents/{name}.md, beside that plugin's README.md.

  • Skill roots: the list the detect script reported between skill-roots-start and skill-roots-end. Every han-*/skills directory except han-plugin-builder/skills (its guidance skill is authoring guidance, audited under guidance docs below). Do not hardcode the plugins here; read them from the script so a newly added plugin is covered automatically.
  • Agent root: the script's agent-root: line (han-core/agents). The readability-editor agent also lives in han-communication/agents; include it when auditing agents.
  • Plugin manifests: {plugin}/.claude-plugin/plugin.json for every plugin. Owned by /han-release; out of scope here.

Throughout this skill, {plugin} means whichever discovered skill root a given skill came from.

When MODE = sweep

Enumerate the full set:

  1. Every skill. Run find <skill roots> -mindepth 1 -maxdepth 1 -type d, passing the skill roots the detect script reported, for the inventory; each entry pulls in {plugin}/skills/{name}/SKILL.md (the root the directory came from) and {plugin}/docs/skills/{name}.md.
  2. Every agent. Run find <agent root> -mindepth 1 -maxdepth 1 -name "*.md" -type f, passing the script's agent-root (plus han-communication/agents for the readability-editor), for the inventory; each entry pulls in {agent-root}/{name}.md and {plugin}/docs/agents/{name}.md.
  3. Both indexes (docs/skills/README.md, docs/agents/README.md).
  4. All top-level concept docs in docs/.
  5. All guidance docs under han-plugin-builder/skills/guidance/references/.
  6. All templates under docs/templates/.
  7. Root files (README.md, CONTRIBUTING.md, CLAUDE.md).

Sweep mode always audits that README.md, CLAUDE.md, and docs/concepts.md reference the skills and agents without a hardcoded count, and that every entity found in this step appears in the indexes and the CLAUDE.md catalog.

Out-of-scope files (both modes)

Treat as ignored: CHANGELOG.md, plugin and marketplace version fields, .claude/**, LICENSE, images/**. These belong to other skills or are not user-facing documentation.

Step 3: Per-entity audit

Walk INV in order. For each entity, apply every rule in references/audit-checklist.md that fits the entity's type. Record findings as you go in a working list with this shape:

- {entity-name} ({path})
  - Finding: {one-sentence description}
  - Fix: {concrete edit}

Read the source of truth before checking the doc. For a skill, read {plugin}/skills/{name}/SKILL.md first (the plugin root the skill came from), then read {plugin}/docs/skills/{name}.md and check it against the source. For an agent, read {plugin}/agents/{name}.md first, then {plugin}/docs/agents/{name}.md. Doc-vs-source contradictions are functional bugs — treat them with the same severity as broken scripts (see han-plugin-builder/skills/guidance/references/skill-building-guidance/documentation-maintenance.md).

Batch agent audits when the inventory is large. When INV has more than ten skills or ten agents to audit, dispatch a content-auditor agent per batch of five entities with the entity name, the source-of-truth file, and the long-form doc. Hand each agent the relevant section of references/audit-checklist.md inline (do not tell it to read the file). The agent returns findings; merge them into the working list. Do not run more than four such agents in parallel.

Stop on first hard finding only for missing files. Missing long-form doc, missing index entry, or missing CLAUDE.md catalog entry blocks the rest of that entity's checks until created. Other findings accumulate; do not bail.

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

After Step 3, look across entities, not just within them.

  1. Bidirectional skill boundaries. For every skill in INV whose frontmatter or long-form "Do not invoke for" section names a sibling, verify the sibling names this skill in the reverse direction. Asymmetric boundaries are findings.
  2. Bidirectional pairings. For every skill or agent in INV whose long-form Related documentation names another, verify the other side links back where the link adds value. One-direction pairings without a reason are findings.
  3. Indexes are consistent with reality. Use Grep to confirm every skill across the discovered skill roots appears in docs/skills/README.md exactly once, and every agent in the agent root appears in docs/agents/README.md exactly once. Stray entries pointing at non-existent files are findings.
  4. CLAUDE.md catalog completeness. Every entity in INV (skills and agents) has a one-line entry in the CLAUDE.md doc map. Missing entries are findings.
  5. Count-free references. Confirm README.md, CLAUDE.md (the "Indexes stay complete, not counted" line), and docs/concepts.md describe the skills and agents without a hardcoded total. A reintroduced count (for example "21 skills" or "23 agents") is a finding. Sweep mode always runs this check; branch mode runs it only if the branch added or removed skills or agents.
  6. The composition chains in docs/workflows.md reference current skill names only, and the mermaid diagrams stay consistent with the prose. References to renamed or removed skills are findings.

Add each finding to the working list with the same shape as Step 3.

Step 5: Apply updates

Apply every finding from Steps 3 and 4 in place.

Use Edit, not Write, for changes that touch part of an existing file. Use Write only when creating a missing long-form doc from a template.

Creating a missing long-form doc. Copy docs/templates/skill-long-form-template.md (for a skill) or docs/templates/agent-long-form-template.md (for an agent) into the target path. Fill in the orientation frame, TL;DR, and Key concepts from the entity's frontmatter description and step body. Leave a <!-- TODO: human review --> marker only at sections that require operator judgment (Sources, In more detail, examples). Surface those markers in Step 6's report so the operator can finish them.

Apply the writing voice. Every edit follows han-communication/references/writing-voice.md: em-dashes only as a label-gloss or appositive separator, direct second person, no flattery or hype words, no actually, just, leverage, utilize, showcase, robust (as a vague positive), It's worth noting, or Importantly. When fixing a doc, do not introduce voice violations even if the surrounding doc has them.

Apply YAGNI to documentation edits. Do not add speculative sections, for-future-flexibility warnings, or examples for behavior the skill does not have. The YAGNI rule that gates plan steps also gates docs (see docs/yagni.md).

Bidirectional fixes go on both sides in the same pass. If the fix is to add /foo to /bar's Do not invoke for list, also add /bar to /foo's reverse pointer in the same step.

Findings that need operator judgment stay unresolved. Surface them in Step 6. Examples: the user-facing category a new skill belongs in, the agent a removed skill's documentation should now point at, the wording for a Source citation that does not yet exist.

Step 6: Verify and report

Re-read every file that was edited or created. Confirm:

  1. Every finding from Steps 3 and 4 was either applied or surfaced as needing operator judgment.
  2. No new internal links are broken. Run a Grep across the edited files for ](../ and ](./ and spot-check a few resolved paths.
  3. README.md, CLAUDE.md, and docs/concepts.md stay count-free — no hardcoded entity total was introduced during the pass.
  4. Any em-dash introduced sits in a legal position (label-gloss separator or appositive aside), never standing in for a sentence break.
  5. No {placeholder} braces from templates remain in any newly-created long-form doc.

Then report to the operator:

  • Mode (branch or sweep) and the inventory size.
  • Entities audited, grouped by type (skills audited, agents audited, etc.).
  • Findings applied, one bullet per fix, with the file path.
  • Findings surfaced for operator judgment, with the recommended resolution.
  • Files changed, as a list of paths the operator can pass to git diff for review.

Do not commit, push, or open a PR — those decisions are the operator's. The skill stops at this report.

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

Files

SKILL.md and 3 other files (scripts, references) in .claude/skills/han-update-documentation of testdouble/han.

  • SKILL.md
  • references/audit-checklist.md
  • references/scope-mapping.md
  • scripts/detect-doc-update-context.sh

Open the folder on GitHubat commit abba73a

Compare with similar skills

Han Update Documentation 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.

Han Update Documentation compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Han Update Documentation this skilltestdouble/han279—~3.4kAutomated safety check: PassMIT
Git Workflow and Versioningaddyosmani/agent-skills102k2 repos~3.5kAutomated safety check: NotesMIT
Verdaccio Pull Request Workflowverdaccio/verdaccio18k—~1.9kAutomated safety check: PassMIT
pybind11 Release Preparationpybind/pybind1118k—~1.7kAutomated safety check: PassCustom licence
AionUi Version BumpiOfficeAI/AionUi33k—~2.1kAutomated safety check: PassApache-2.0
ScottPlot Changelog EntryScottPlot/ScottPlot6.8k—~366Automated safety check: PassMIT

Similar skills

  • Git Workflow and Versioning

    addyosmani/agent-skills

    Sets git habits for every change: short-lived branches, atomic commits with descriptive messages, clean pull requests, plus versioning, tagging and changelogs for releases.

    102k GitHub starsUsed in 2 repos~3.5k tokens
    DevelopmentAuto-check: notes
  • Takes a change through a verdaccio pull request: branch, local checks, changeset, title and body, labels, CI and review rounds, and ports to other release lines.

    18k GitHub stars~1.9k tokensUpdated today
    DevelopmentAuto-check passed
  • Opens the pybind11 release-preparation pull request: picking the release base, bumping the version in common.h and integrating the changelog, following docs/release.rst.

    18k GitHub stars~1.7k tokensUpdated today
    DevelopmentAuto-check passed
  • AionUi Version Bump

    iOfficeAI/AionUi

    Automates an AionUi release: checks the latest AionCore release and its artifacts, updates package.json, writes the changelog, opens a PR and tags the release.

    33k GitHub stars~2.1k tokensUpdated 28 days ago
    DevelopmentAuto-check passed
  • ScottPlot Changelog Entry

    ScottPlot/ScottPlot

    Adds or updates a single concise changelog bullet in CHANGELOG.md for exactly the current branch's ScottPlot pull request, leaving all other text untouched.

    6.8k GitHub stars~366 tokensUpdated 1 mo ago
    DevelopmentAuto-check passed
  • PR Push

    icebear0828/codex-proxy

    Package the current working changes into a standards-compliant codex-proxy pull request: branch hygiene, commit message linting, CHANGELOG prompt, conventional commit, push, and gh pr create against…

    1.8k GitHub stars~2.2k tokensUpdated yesterday
    DevelopmentAuto-check: notes

More from testdouble/han

All 54 skills in this repo
  • HTML Summary

    testdouble/han

    Convert a stakeholder summary markdown file into a single self-contained HTML executive report — bottom line and decision asks up front, supporting detail later — styled with a Test Double-derived…

    279 GitHub stars~2.9k tokensUpdated 6 days ago
    Auto-check passed
  • Guidance

    testdouble/han

    Authoritative guidance for building Claude Code skills, agents, and plugins, plus init and update steps that install and refresh the plugin-building skills in the current repository.

    279 GitHub stars~1.8k tokensUpdated 6 days ago
    Auto-check passed
  • Han Release

    testdouble/han

    Cut a Han release: update CHANGELOG.md with the changes since the last release, bump and tag every plugin that changed as {plugin-name}--v{version} so a version-constrained dependency can resolve…

    279 GitHub stars~8.6k tokensUpdated 6 days ago
    Auto-check passed
  • Plan Implementation

    testdouble/han

    Builds a feature implementation plan from an existing feature specification (or equivalent context) through a facilitated team conversation.

    279 GitHub stars~9.5k tokensUpdated 6 days ago
    Auto-check passed
  • Refactor

    testdouble/han

    Restructure existing code without changing its behavior, through a test-gated refactoring loop: a named target, a green suite over that target before any edit, a planned sequence of small named…

    279 GitHub stars~3.1k tokensUpdated 6 days ago
    Auto-check passed
  • Update PR Description

    testdouble/han

    Generate a PR description from the current branch's changes against a GitHub PR, using the gh CLI.

    279 GitHub stars~4.7k tokensUpdated 6 days ago
    Auto-check passed

Works with

Categories

Questions about Han Update Documentation

What does Han Update Documentation do?

Update Han plugin documentation so every skill, agent, guidance doc, index, and cross-reference is current and accurate. Han Update Documentation is an agent skill from testdouble/han. Update Han plugin documentation so every skill, agent, guidance doc, index, and cross-reference is current and accurate.

When should I use Han Update Documentation?

Han Update Documentation fits situations like: verifying Hans docs after changing skills; top-level guidance — including update the docs; refresh documentation; make sure the docs are current.

How do I install Han Update Documentation in Claude Code?

Run `npx skills add testdouble/han --skill han-update-documentation -a claude-code`. Or copy the skill folder (.claude/skills/han-update-documentation in testdouble/han) into .claude/skills/han-update-documentation in your project. Claude Code loads it when a task matches its description.

How do I install Han Update Documentation in Codex?

Run `npx skills add testdouble/han --skill han-update-documentation -a codex`. Or copy the skill folder (.claude/skills/han-update-documentation in testdouble/han) into .agents/skills/han-update-documentation in your project. Codex loads it when a task matches its description.

Can I use Han Update Documentation 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 testdouble/han --skill han-update-documentation -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/han-update-documentation, .gemini/skills/han-update-documentation, .github/skills/han-update-documentation and .opencode/skills/han-update-documentation in your project.

What does Han Update Documentation need to run?

Going by SKILL.md and its folder, Han Update Documentation needs a shell for the scripts in its folder and the command-line tools its instructions call (git). Our summary lists: A Bash shell. Its frontmatter pre-approves these tools: Read, Write, Edit, Glob, Grep, Agent, Bash(git *), Bash(find *).

Does Han Update Documentation 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 Han Update Documentation 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. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Han Update Documentation use?

Han Update Documentation 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 Han Update Documentation use?

About 3.4k tokens (SKILL.md is roughly 13k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 4.4k tokens, read only when the agent opens those files.

What are the alternatives to Han Update Documentation?

Skills that share tags, products or a category with Han Update Documentation: Git Workflow and Versioning (addyosmani/agent-skills, 102k stars), Verdaccio Pull Request Workflow (verdaccio/verdaccio, 18k stars), pybind11 Release Preparation (pybind/pybind11, 18k stars) and AionUi Version Bump (iOfficeAI/AionUi, 33k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Han Update Documentation?

testdouble (a GitHub organization) maintains it in testdouble/han, which has 279 GitHub stars. The repository holds 54 skills in this directory. The repository was last updated on October 1, 2026.

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