Agent skill

Doc Manager

by luongnv89 in luongnv89/skills

Generate or update docs to match the code, citing each claim to path:line and asking on ambiguity; runbook docs also get a check-only validation script.

MITAuto-check passedDevOps & Cloud

Install Doc Manager

skills CLI
$ npx skills add luongnv89/skills --skill doc-manager -a claude-code

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

GitHub CLI
$ gh skill install luongnv89/skills doc-manager --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/luongnv89/skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/doc-manager .claude/skills/doc-manager && 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
doc-manager
GitHub stars
131
Token cost
~3.1k tokens
SKILL.md length
1,622 words
Files
4 (incl. references)
Skills in repo
35
Repo updated
First seen
Licence
MIT

At a glance

Generate or update docs to match the code, citing each claim to path:line and asking on ambiguity; runbook docs also get a check-only validation script.

  • Works in 5 steps: Feature branch → Inventory + scope → Per-doc pass → …
  • API-reference autogen (JSDoc/Sphinx)
  • SKILL.md covers Repo Sync Before Edits…, Prerequisites, Branch selector and Workflow, plus 5 more sections
  • Calls git and bash

What it does

Doc Manager is an agent skill from luongnv89/skills. Generate or update docs to match the code, citing each claim to path:line and asking on ambiguity; runbook docs also get a check-only validation script. Don't use for API-reference autogen (JSDoc/Sphinx), landing pages, or CLAUDE.md/AGENTS.md.

Its SKILL.md is about 3.1k tokens, which your agent loads only when the skill is triggered. The skill folder holds 5 other files, including reference files (for example `docs/README.md`, `references/change-summary.md` and `references/runbook-validation.md`).

It sits in DevOps & Cloud, covering Runbooks and postmortems, Technical documentation and Agent instruction files. It works with Git. The repository describes itself as: Supercharge your AI agents/bots with reusable skills. The licence is MIT.

When your agent uses it

  • API-reference autogen (JSDoc/Sphinx)
  • CLAUDE.md/AGENTS.md

Example prompts

  • “/doc-manager”

Workflow steps

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

  1. Feature branch
  2. Inventory + scope
  3. Per-doc pass
  4. Runbook add-on (path C)
  5. Validate the run

What it can do on your machine

Read from SKILL.md and the folder at commit 891c720. 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
    • bash

    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

Doc Manager loads about 3.1k tokens when it runs, and up to ~5.5k if it reads all its reference files. Until then it costs about 64 tokens; SKILL.md has 1,622 words of instructions outside code blocks.

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

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 luongnv89/skills at commit 891c720, republished under its MIT licence (© luongnv89). 1,622 words, ~3,111 tokens.

Download SKILL.mdSave it as .claude/skills/doc-manager/SKILL.md (or your agent's skills folder). This skill also uses 3 other files; get the full folder from GitHub.
name
doc-manager
description
Generate or update docs to match the code, citing each claim to path:line and asking on ambiguity; runbook docs also get a check-only validation script. Don't use for API-reference autogen (JSDoc/Sphinx), landing pages, or CLAUDE.md/AGENTS.md.
license
MIT
effort
medium
metadata.version
2.1.1
metadata.author
Luong NGUYEN <luongnv89@gmail.com>

Doc Manager

Keep a project's Markdown documentation true to the code. Every run ends with each doc updated, verified-current, or flagged — and every non-obvious claim traced to a source. Scope is Markdown only (README.md, docs/*.md, per-component READMEs); docstrings and comments are read as source-of-truth but not rewritten.

Prime directive — never invent. If the code does not show it and the user has not stated it, do not write it. For code-provable facts, reconcile the docs to the code and cite path:line; ask the user only when code cannot settle an intent or fact, then record the resolution in docs/DECISIONS.md. Preserve user-authored prose unless the user approves its deletion. A guess is a defect here, not a convenience.

Repo Sync Before Edits (mandatory)

Before creating/updating/deleting any file in the repo, sync the current branch:

bash
branch="$(git rev-parse --abbrev-ref HEAD)"
git fetch origin && git pull --rebase origin "$branch"

If the tree is dirty: git stash push -u -m "pre-sync" → sync → git stash pop. If origin is missing, or rebase/stash conflicts occur, stop and ask before continuing.

Prerequisites

Validate before starting; if any fails, stop and surface it:

  • Git: git --version ≥ 2.30. Working tree clean or stashable.
  • Remote: git remote get-url origin resolves (needed for sync). If absent, ask before any pull/rebase.
  • Write access: analysis needs read only. Writing files needs the tree to be writable; if read-only, emit a diff/summary instead of writing.
  • Mermaid (optional): only if diagrams must be exported — command -v mmdc.

Branch selector

Work one doc at a time. For each doc in the inventory, pick the path:

SituationPath
A needed doc does not existA. Generate
A doc exists but may not match the codeB. Reconcile
A doc or a section of one covers deploy / release / setup / operational processalso run C. Runbook add-on

A single run usually mixes A and B across the inventory. C is additive — it layers onto whichever of A/B produced runbook content. Classify at the section level: a doc that mixes a runbook section with reference content gets C applied to the runbook section only, not the whole file.

Workflow

0. Feature branch
  1. If already on a task feature branch, skip.
  2. Detect convention: git branch -r | head -20 (feat/, feature/, …).
  3. Create feat/doc-manager (or the repo's convention). If that branch already exists, ask the user whether to reuse it or create feat/doc-manager-<YYYYMMDD>.
1. Inventory + scope

Read the codebase to establish ground truth, then build the doc inventory.

  • Project facts: type (library/API/web/CLI/service), entry points, config, scripts, env vars, endpoints — each with its source location. This is your citation pool.
  • Existing docs: every README.md, docs/*.md, per-component README.
  • Inventory table — for each doc: path | purpose | status(unknown) | is-runbook?. Also list needed-but-missing docs implied by the code (e.g. code has a deploy/ dir but no docs/deployment.md).

Present the inventory and ask the user to confirm the scope. If the user narrows it, use the narrowed scope. If the user declines or does not answer, stop before editing and report BLOCKED — scope not confirmed. Do not silently expand beyond confirmed scope.

2. Per-doc pass

For each doc, run its path. Cite as you write — do not defer citation to a review pass.

A. Generate — create from code analysis. Include only what the code (or a user answer) supports. Structure by relevance to project type; skip categories that don't apply.

B. Reconcile — diff doc against code:

  • Claim matches code → keep; add a citation if missing, and re-verify any existing path:line still resolves to the claimed fact (line numbers rot when code above them shifts — repoint or FLAG stale cites).
  • Claim contradicts code → fix to match code, cite the code.
  • Claim unverifiable from code and not user-stated → flag inline (<!-- FLAG: unverified — {what} -->) and ask the user; never silently keep or delete.
  • Doc fully current (every cite re-verified) → mark verified-current, touch nothing.

Citation rule (checkable). Every non-obvious factual claim carries an inline source. Forms, in order of preference:

  • Single line — src/server.ts:12 (a specific value: port, default, flag).
  • Range / multi-source — src/retry.ts:8-24 or config.ts:4, env.ts:11 for an emergent fact that spans lines/files (e.g. "retries 3× with backoff", "config merges env > file > defaults"). This is a real citation, not a FLAG — FLAG is only for facts the code cannot confirm.
  • Whole file — src/router.ts when the fact is the file's overall behavior and no line is more authoritative.

The server listens on port 8080 (src/server.ts:12).

Cite unless trivially obvious. Default to citing; the burden is on treating a claim as obvious, not on citing it. Section intros and definitions of common terms are obvious. Anything a reader could get wrong — ports, commands, paths, env vars, versions, endpoints, defaults, behavior — is not. This coverage check is a judgment pass (grep can't verify it), so err toward over-citing: an uncited factual claim is the exception you must be able to justify.

Decisions log. Every ambiguity you ask about gets appended to docs/DECISIONS.md:

markdown
## YYYY-MM-DD
- Q: {the ambiguity}
- A ({who}): {resolution}
- Source: `path:line` (if code-derived)

Use the run date; never fabricate one. Get it from the environment context, not a guess.

3. Runbook add-on (path C)

For any deploy/release/setup/operational doc, produce a check-only validation script and keep a troubleshooting log. Read references/runbook-validation.md for the script contract, template, and the fix→document loop. In short:

  • The validation script (scripts/validate-<name>.sh) is check/dry-run by default. It verifies preconditions and asserts expected state idempotently. Every destructive or outward-facing step is gated behind --run-destructive or a MANUAL: marker — never auto-run.
  • Script lives in the documented repo's scripts/, and the runbook section links to it. On a read-only tree, emit the script inline and run it once so you can report its --check outcome.
  • Run it (--check). Classify each failure: if the doc/check is wrong, fix it; if it is an operator env/tool/network prerequisite the agent cannot satisfy here, document it as a runbook prereq or MANUAL: step (do not weaken or drop the check just to force green). Append only real fix findings to docs/troubleshooting.md, cited.
Show full SKILL.md (665 more words)Show less
4. Validate the run
  1. Citations: no non-obvious claim is unsourced. Grep for FLAG: markers. Each marker that remains is an open FLAG: it was raised with the user and is listed in the change summary.
  2. Links: every internal [text](path) resolves.
  3. Orphans: every docs/*.md is reachable from README.md or another doc within one hop.
  4. Inventory closed: every doc is updated, verified-current, or flagged (with the flag surfaced to the user). None left unknown.
  5. Runbook: each runbook section links a well-formed check-only validate-<name>.sh: bash -n passes, --help exits 0, and with no arguments it defaults to check mode (MODE="check"). Run --check. Agent-satisfiable local/static checks must pass; env/tool/network gaps that only an operator can close are documented as prereqs/MANUAL: rather than forced to exit 0. docs/troubleshooting.md reflects any real fix applied.
  6. Diagrams (if any): Mermaid renders without error (mmdc if available).

Present the change summary defined in references/change-summary.md. It opens with Result: COMPLETE | PARTIAL | FAIL | BLOCKED, then Evidence:, Uncertainty:, Decision:, and a per-doc table. A run that stops early still ends with it. Do not commit unless the user explicitly asks.

Expected output

  • Root README.md and docs/*.md reconciled to the code, each non-obvious claim cited to path:line.
  • docs/DECISIONS.md — append-only log of every ambiguity resolved with the user.
  • For runbook sections: scripts/validate-<name>.sh (check-only) linked from the section, plus docs/troubleshooting.md updated with fixes found during validation.
  • The change summary (references/change-summary.md).

Acceptance criteria

A run passes when all hold:

  • No invented facts. Every non-obvious claim in every touched doc is either cited to path:line or marked FLAG and raised with the user. Every FLAG left at close is an open FLAG listed in the change summary.
  • Inventory closed. Every doc in scope ends updated, verified-current, or flagged; none left unknown or known-stale-and-untouched.
  • Decisions logged. Every user-resolved ambiguity is appended to docs/DECISIONS.md with the resolution and (where applicable) source.
  • Runbook validated. Each deploy/process/setup section links a check-only, well-formed (Step 4.5) validate-<name>.sh that gates every destructive step, and its --check outcome is reported. Not "exit 0 at all costs": a non-zero exit is acceptable only when every failure is a documented operator prerequisite — never invent a green path by dropping real checks. docs/troubleshooting.md records any real fix applied.
  • Links + orphans. Every internal link resolves; no docs/*.md is orphaned.
  • Branch discipline. No commits on main/master; all changes on a feature branch. No commit without an explicit user request.
  • Summary readable. The change summary meets the four reader checks in references/change-summary.md. Without user feedback on them, report human understanding as unconfirmed.

Edge cases

  • No docs exist: all-Generate run. Start from README.md, add docs/ files the code justifies. Still cite everything.
  • Docs conflict with code: code wins. Fix the doc to match, cite the code, and log the conflict in DECISIONS.md. Do not delete the user's prose without asking.
  • Ambiguity with no code answer: ask the user; never guess. If unreachable, leave the claim as a FLAG and report it — do not fill the gap.
  • Monorepo: limit per-component READMEs to packages with public APIs or user-facing behavior; skip build output and generated packages.
  • Secrets: never document credentials, tokens, or internal-only endpoints beyond what code comments already expose.
  • Read-only repo: emit docs and the validation script as a diff/inline summary instead of writing files; still run the script once to report its --check outcome (including documented prereq failures).

Step Completion Reports

After each major step, emit:

◆ [Step Name] ([step N of M] — [context])
··································································
  [Check 1]:          √ pass
  [Check 2]:          × fail — [reason]
  [Criteria]:         √ N/M met
  ____________________________
  Result:             PASS | FAIL | PARTIAL

Use √ pass, × fail, — for context. Per-phase checks:

  • Inventory + scope — Ground-truth read, Inventory built, Scope confirmed
  • Per-doc pass — Claims cited, Conflicts flagged, Decisions logged
  • Runbook add-on — Validate script check-only, Destructive steps gated, Troubleshooting updated
  • Validate the run — Open FLAGs listed, Links resolve, Inventory closed, Runbook script well-formed

Guidelines

  • Protect the context budget. State the fact, cite it, move on. No filler, no restating the obvious, no marketing tone.
  • Adapt structure to project type — not every docs/ category applies.
  • Prefer code-derived facts over stale prose; keep existing accurate docs untouched (verified-current).
  • Maintain cross-references; remove content only when it's wrong or orphaned, and say so in the summary.

© luongnv89, 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 (references) in skills/doc-manager of luongnv89/skills.

  • SKILL.md
  • docs/README.md
  • references/change-summary.md
  • references/runbook-validation.md

Open the folder on GitHubat commit 891c720

Compare with similar skills

Doc Manager 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.

Doc Manager compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Doc Manager this skillluongnv89/skills131—~3.1kAutomated safety check: PassMIT
Export TemplateHurricaHjz/second-yourself114—~4.8kAutomated safety check: WarnMIT
Neat-Freak Knowledge CloseoutKKKKhazix/khazix-skills21k—~1.9kAutomated safety check: PassMIT
Dashclaw Shipucsandman/DashClaw310—~7.2kAutomated safety check: PassMIT
Translate Skillvinvcn/mattpocock-skills-zh-CN4.7k—~1.1kAutomated safety check: PassMIT
Sync Docsayutaz/piper-plus220—~1.4kAutomated safety check: PassMIT

Similar skills

  • Export Template

    HurricaHjz/second-yourself

    Sync THIS LLM-Wiki framework with its public GitHub repo, ONE direction per run: --push (vault → repo) publishes your framework; --pull (repo → vault) updates your framework from a newer repo version.

    114 GitHub stars~4.8k tokensUpdated 6 days ago
    Knowledge ManagementAuto-check: warnings
  • 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 7 days ago
    Agent WorkflowsAuto-check passed
  • Dashclaw Ship

    ucsandman/DashClaw

    The single command that gets a DashClaw change ON MAIN AND LIVE — it resolves everything blocking production, never defers, and never hands back a checklist.

    310 GitHub stars~7.2k tokensUpdated 2 days ago
    DevelopmentAuto-check passed
  • 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
  • Sync Docs

    ayutaz/piper-plus

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

    220 GitHub stars~1.4k tokensUpdated today
    DevelopmentAuto-check passed
  • GreptimeDB Release Runbook

    GreptimeTeam/greptimedb

    Runbook for publishing a GreptimeDB version: pick the release branch, verify the Cargo version, then tag, create the GitHub release and open the docs note PR.

    6.7k GitHub stars~1.4k tokensUpdated today
    DevOps & CloudAuto-check passed

More from luongnv89/skills

All 35 skills in this repo
  • Dont Make Me Think

    luongnv89/skills

    Review UI usability using Steve Krug's principles and produce a scannable report.

    131 GitHub stars~2.5k tokensUpdated today
    Auto-check passed
  • Herdr Agent

    luongnv89/skills

    Manage AI agent fleets in Herdr: tile root + sub-agents in one tab, start/prompt/wait/read/monitor via the herdr agent CLI, steer any pane; help lists every operation.

    131 GitHub stars~4.8k tokensUpdated today
    Auto-check passed
  • Ollama Optimizer

    luongnv89/skills

    Optimize Ollama configuration for the current machine's hardware.

    131 GitHub stars~4.1k tokensUpdated today
    Auto-check: notes
  • Security Setup

    luongnv89/skills

    Install local-first security hardening: pre-commit secret detection, offline dependency scans, static analysis, reports, and gated free CI.

    131 GitHub stars~4.5k tokensUpdated today
    Auto-check passed
  • SEO AI Optimizer

    luongnv89/skills

    Audit and optimize websites for technical SEO, content SEO, and AI bot accessibility.

    131 GitHub stars~2.7k tokensUpdated today
    Auto-check passed
  • Tasks Generator

    luongnv89/skills

    Generate sprint-based development tasks from a PRD. An agent skill from luongnv89/skills.

    131 GitHub stars~3.8k tokensUpdated today
    Auto-check passed

Works with

Questions about Doc Manager

What does Doc Manager do?

Generate or update docs to match the code, citing each claim to path:line and asking on ambiguity; runbook docs also get a check-only validation script. Doc Manager is an agent skill from luongnv89/skills. Generate or update docs to match the code, citing each claim to path:line and asking on ambiguity; runbook docs also get a check-only validation script.

When should I use Doc Manager?

Doc Manager fits situations like: API-reference autogen (JSDoc/Sphinx); CLAUDE.md/AGENTS.md.

How do I install Doc Manager in Claude Code?

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

How do I install Doc Manager in Codex?

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

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

What does Doc Manager need to run?

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

Does Doc Manager 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 Doc Manager 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 Doc Manager use?

Doc Manager 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 Doc Manager 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. Its references folder adds about 2.4k tokens, read only when the agent opens those files.

What are the alternatives to Doc Manager?

Skills that share tags, products or a category with Doc Manager: Export Template (HurricaHjz/second-yourself, 114 stars), Neat-Freak Knowledge Closeout (KKKKhazix/khazix-skills, 21k stars), Dashclaw Ship (ucsandman/DashClaw, 310 stars) and Translate Skill (vinvcn/mattpocock-skills-zh-CN, 4.7k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Doc Manager?

luongnv89 (a GitHub user) maintains it in luongnv89/skills, which has 131 GitHub stars. The repository holds 35 skills in this directory. The repository was last updated on October 7, 2026.

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