Agent skill

Doc Audit

by PackmindHub in PackmindHub/packmind

Audit Packmind end-user documentation (apps/doc/) for broken links, outdated CLI references, non-existent concepts, misleading information, and missing coverage.

Apache-2.0Auto-check passedDocuments & Office

Install Doc Audit

skills CLI
$ npx skills add PackmindHub/packmind --skill doc-audit -a claude-code

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

GitHub CLI
$ gh skill install PackmindHub/packmind doc-audit --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/PackmindHub/packmind.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/doc-audit .claude/skills/doc-audit && 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-audit
GitHub stars
317
Token cost
~2.4k tokens
SKILL.md length
1,147 words
Files
2 (incl. references)
Skills in repo
35
Repo updated
First seen
Licence
Apache-2.0

At a glance

Audit Packmind end-user documentation (apps/doc/) for broken links, outdated CLI references, non-existent concepts, misleading information, and missing coverage.

  • Works in 3 steps: Build Ground Truth → Audit Each Section Group in Turn → Consolidate Report
  • Docs may have drifted from the codebase
  • SKILL.md covers Tooling, Phase 1: Build Ground Truth, Phase 2: Audit Each Section… and Phase 3: Consolidate Report
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Doc Audit is an agent skill from PackmindHub/packmind. Audit Packmind end-user documentation (apps/doc/) for broken links, outdated CLI references, non-existent concepts, misleading information, and missing coverage. Produces a structured markdown report at project root. Use when docs may have drifted from the codebase, before a release, or on a regular cadence.

Its SKILL.md is about 2.4k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files, including reference files (for example `references/section-audit-instructions.md`).

It sits in Documents & Office, covering Markdown. The repository describes itself as: Packmind seamlessly captures your engineering playbook and turns it into AI context, guardrails, and governance. The licence is Apache-2.0.

When your agent uses it

  • Docs may have drifted from the codebase
  • Before a release
  • On a regular cadence

Example prompts

  • “/doc-audit”

Workflow steps

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

  1. Build Ground Truth
  2. Audit Each Section Group in Turn
  3. Consolidate Report

What it can do on your machine

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

    No scripts in the folder and no shell commands in SKILL.md (its code samples are markdown).

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

  • Network

    No URLs in SKILL.md.

    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 Audit loads about 2.4k tokens when it runs, and up to ~4.3k if it reads all its reference files. Until then it costs about 80 tokens; SKILL.md has 1,147 words of instructions outside code blocks.

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

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 PackmindHub/packmind at commit 8a10541, republished under its Apache-2.0 licence (© PackmindHub). 1,147 words, ~2,384 tokens.

Download SKILL.mdSave it as .claude/skills/doc-audit/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
doc-audit
description
Audit Packmind end-user documentation (apps/doc/) for broken links, outdated CLI references, non-existent concepts, misleading information, and missing coverage. Produces a structured markdown report at project root. Use when docs may have drifted from the codebase, before a release, or on a regular cadence.

Documentation Audit

Detect outdated, broken, or misleading documentation by cross-referencing MDX pages against the actual codebase. Produces a structured doc-audit-report.md at the project root.

This skill only detects issues — it does not fix them.

Tooling

Reach for Read, Glob and Grep before a shell. Every check here is "open a file" or "search the tree", and those three cover both. It matters because the scheduled run (.github/workflows/weekly-doc-review.yml) is non-interactive: it grants a small read-only shell allowlist and nobody is there to approve anything outside it, so a refused call spends a turn of a fixed budget and returns nothing. Paging through a file with head or sed when Read opens it whole loses either way.

Never cd. Every tool here takes a path relative to the repository root, so there is nothing to change directory for, and cd somewhere && ... is the one shape the allowlist can never admit: a prefix rule is matched against the whole command, so it does not match a compound one. That refusal cannot be granted by adding a rule — the only fix is not to write the command. Pass a path instead.

Phase 1: Build Ground Truth

Before auditing anything, build a concise ground truth summary by gathering these four data sources:

  1. Navigation structure — Read apps/doc/docs.json and extract all navigation groups with their page lists
  2. CLI commands — List files in apps/cli/src/infra/commands/ to get current command files
  3. Domain packages — List directories in packages/ to get current package names
  4. Doc MDX files — Glob apps/doc/**/*.mdx to get all actual pages on disk

Compile these into a ground truth summary string formatted as:

## Ground Truth

### Navigation Groups (from docs.json)
- Getting Started: index, getting-started/gs-install-cloud, ...
- Concepts: concepts/standards-management, ...
[list all groups]

### CLI Commands (from apps/cli/src/infra/commands/)
[list all *Command.ts and *Handler.ts files]

### Domain Packages (from packages/)
[list all package directory names]

### MDX Files on Disk (from apps/doc/**/*.mdx)
[list all .mdx file paths relative to apps/doc/]

### Current Date
{today's date}
Land the report file before auditing anything

With the ground truth in hand and before auditing a single page, Write doc-audit-report.md at the project root with exactly this placeholder:

markdown
<!-- doc-audit: incomplete -->
# Documentation Audit Report

This run did not get as far as writing its findings. The placeholder was written
before the audit began and never replaced, so whatever stopped the run did so
between Phase 1 and Phase 3.

The first line is a marker the caller greps for, so reproduce it exactly and keep it as the very first line. Phase 3 overwrites this whole file, marker included.

Do this even though Phase 3 writes the real report: a run that dies in between otherwise leaves the caller with no file and no clue, which is the one outcome this skill must never produce. It costs one Write.

Phase 2: Audit Each Section Group in Turn

Audit the five section groups below yourself, one after another, in a single pass: read the group's pages, apply every check in references/section-audit-instructions.md, hold the findings, then move to the next group. Read references/section-audit-instructions.md once, before the first group.

Do not launch sub-agents for this. A sub-agent runs in the background and reports back through a notification, and this skill's scheduled run (.github/workflows/weekly-doc-review.yml) is non-interactive: the run ends the moment you produce a reply, so the notification never arrives and the findings are lost. The run then exits successfully with the Phase 1 placeholder still on disk and nothing to show. That is not a hypothetical — it is how the audit failed on 2026-09-21, twice, once the Agent tool became asynchronous. Fanning out is the one shape this phase cannot take, whatever the turn budget looks like.

For the same reason, never end a reply with work still outstanding. There is nobody to resume you. Carry on to Phase 3 in the same pass.

Section Groups
GroupSectionsPages to Audit
1Getting Started + root pagesindex.mdx + all getting-started/*.mdx
2ConceptsAll concepts/*.mdx + tools/import-from-knowledge-base.mdx
3Tools & Integrationstools/cli.mdx
4Governance + Playbook Maintenance + LinterAll governance/*.mdx + playbook-maintenance/*.mdx + linter/*.mdx
5Administration + SecurityAll administration/*.mdx + security/*.mdx

Read each page completely and apply all detection categories. Keep each group's findings in the exact format the instructions specify, so Phase 3 only has to merge them.

Show full SKILL.md (543 more words)Show less
The table is a split, not the page list

Take the pages from the MDX files Phase 1 found on disk, using the table only to decide which group a page belongs to. Reconcile the two before you start: a page on disk that no row claims joins the group owning its section, and a page named in a row that is not on disk is dropped. Say so in the report's coverage line either way.

Where no group owns the section — tools/ is split across groups 2 and 3 by filename, so a page added there is claimed by nobody — put it in group 3 and name it in the coverage line. Any group will do; what must not happen is the page going unread because no rule picked one.

The table is maintained by hand and the docs are not, so it drifts — it carried a home.mdx that had not existed for some time. A phantom page is the harmless direction; the costly one is a page added to apps/doc/ that no row mentions and is therefore never read, which a table trusted as the page list would hide behind a clean report.

If the budget runs short

Narrow the scope rather than the phases: drop the fewest pages you can, audit what remains, and name what you dropped in the report. Never end the run without Phase 3 — a partial report beats no report, and an empty run leaves whoever scheduled it with nothing to read.

Phase 3: Consolidate Report

After all five groups are audited:

  1. Collect the findings from all five groups

  2. Deduplicate — remove exact duplicates (same page, same line, same issue)

  3. Sort by severity: ERROR first, then WARNING, then INFO

  4. Group by category within each severity level

  5. Write the report to doc-audit-report.md at the project root, overwriting the Phase 1 placeholder — always, even when the audit is partial or found nothing. Writing the file is the deliverable; a summary in the reply is not, since the caller may be a script that only reads the file. When sections were skipped or narrowed, say so at the top of the report so a short report is not mistaken for a clean one.

    The real report must not carry the <!-- doc-audit: incomplete --> marker — the caller reads that line as "this run produced nothing" and fails the job on it. Replace the file wholesale rather than appending to the placeholder.

    Write the file before composing your reply, not after. The reply is not the deliverable and a run that ends having only described its findings has failed, however good the description.

Report Format
markdown
# Documentation Audit Report
Generated: {date} | Pages audited: {count}

## Summary
| Severity | Count |
|----------|-------|
| ERROR    | N     |
| WARNING  | N     |
| INFO     | N     |

## Errors

### [A] Broken Internal Links
- **{page}** (line ~{N}): Link to `{target}` — no matching MDX file exists
[... more findings]

### [B] Outdated CLI Commands
- **{page}** (line ~{N}): References `packmind-cli {cmd}` — command not found in CLI source
[... more findings]

### [C] Non-Existent Concepts
- **{page}** (line ~{N}): References `{concept}` — not found in codebase
[... more findings]

## Warnings

### [D] Misleading Information
- **{page}** (line ~{N}): "{quoted text}" — {reason}
[... more findings]

## Info

### [E] Missing Documentation Coverage
- CLI command `{cmd}` has no documentation
- Package `{pkg}` has no documentation page
[... more findings]

## Verified Clean

The following areas were checked in depth and found accurate, and are recorded here so a short report is not mistaken for a shallow one:

- **{area}** — what was cross-referenced against what, and that it came back clean
[... one line per area that was audited without findings]

Omit any category section that has zero findings. Only include sections with actual results.

Keep ## Verified Clean even when there are findings. A reader cannot tell a clean page from an unread one, so name what came back accurate and against which sources — that is what makes a two-finding report trustworthy instead of suspicious. Cover the sections and categories that produced nothing, and say plainly if a section was skipped or narrowed rather than listing it as clean.

After writing the report, print a brief summary:

  • Total issues found per severity
  • Top 3 most problematic pages (by issue count)
  • The report file path

© PackmindHub, Apache-2.0. 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 1 other file (references) in .agents/skills/doc-audit of PackmindHub/packmind.

  • SKILL.md
  • references/section-audit-instructions.md

Open the folder on GitHubat commit 8a10541

Compare with similar skills

Doc Audit 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 Audit compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Doc Audit this skillPackmindHub/packmind317—~2.4kAutomated safety check: PassApache-2.0
Markdown Article FormatterJimLiu/baoyu-skills26k7 repos~3.5kAutomated safety check: PassMIT
MarkitdownImCa0/just-laws78114 repos~3.2kAutomated safety check: NotesMIT
Obsidian MarkdownAtmosphere/atmosphere3.8k20 repos~1.3kAutomated safety check: PassApache-2.0
Gzh Designisjiamu/gzh-design-skill3.9k1 repos~2.2kAutomated safety check: PassAGPL-3.0
Crosspostingwasp-lang/wasp19k—~1.1kAutomated safety check: PassMIT

Similar skills

  • Markdown Article Formatter

    JimLiu/baoyu-skills

    Reformats plain text or Markdown articles with frontmatter, a title, a summary, headings, bold, lists and code blocks, and saves a separate formatted copy.

    26k GitHub starsUsed in 7 repos~3.5k tokens
    Documents & OfficeAuto-check passed
  • Markitdown

    ImCa0/just-laws

    Convert files and office documents to Markdown. An agent skill from ImCa0/just-laws.

    781 GitHub starsUsed in 14 repos~3.2k tokens
    Documents & OfficeAuto-check: notes
  • Obsidian Markdown

    Atmosphere/atmosphere

    Create and edit Obsidian Flavored Markdown with wikilinks, embeds, callouts, properties, and other Obsidian-specific syntax.

    3.8k GitHub starsUsed in 20 repos~1.3k tokens
    Documents & OfficeAuto-check passed
  • Gzh Design

    isjiamu/gzh-design-skill

    微信公众号文章排版引擎,将 Markdown 转换为可直接粘贴到公众号编辑器的 HTML。主题风格从 references/theme-index.md 注册的自定义主题库中选取,自动章节编号、关键词下划线标记、引言卡片、目录导航、代码块、图片/GIF、作者签名。支持 Markdown / Word(.docx) / PDF / 纯文本输入(非 Markdown…

    3.9k GitHub starsUsed in 1 repo~2.2k tokens
    Documents & OfficeAuto-check passed
  • Crossposting

    wasp-lang/wasp

    Crosspost Wasp blog articles (MDX) to DEV.to and Medium. An agent skill from wasp-lang/wasp.

    19k GitHub stars~1.1k tokensUpdated today
    Documents & OfficeAuto-check passed
  • Review The Docs

    supabase/supabase

    Official

    Review Supabase docs changes locally in your supabase/supabase checkout — either an open PR (triage, classify, verify) or your own branch before opening a PR (local self-review).

    111k GitHub stars~4.6k tokensUpdated today
    Documents & OfficeAuto-check passed

More from PackmindHub/packmind

All 35 skills in this repo
  • Michel CLI Demo Recorder

    PackmindHub/packmind

    Produce proof-of-execution demos of the Packmind CLI (packmind-cli) as terminal-styled images (colors and formatting preserved exactly), for embedding in a GitHub PR.

    317 GitHub stars~3.4k tokensUpdated today
    Auto-check passed
  • Michel UI Demo Recorder

    PackmindHub/packmind

    Record polished UI demo videos and screenshots of a running web app using Playwright MCP — for client deliverables, release notes, feature walkthroughs, or bug repros.

    317 GitHub stars~6.4k tokensUpdated today
    Auto-check passed
  • Packmind Create Skill

    PackmindHub/packmind

    Guide for creating effective skills. An agent skill from PackmindHub/packmind.

    317 GitHub stars~3.5k tokensUpdated today
    Auto-check: notes
  • Feature Sprint

    PackmindHub/packmind

    Execute the implementation plan produced by /feature-spec. An agent skill from PackmindHub/packmind.

    317 GitHub stars~1.9k tokensUpdated today
    Auto-check passed
  • Review an implemented GitHub issue the way a senior Packmind engineer would — the human-judgment checks that ESLint, the TypeScript compiler, and e2e tests cannot catch (authorization scoping…

    317 GitHub stars~2.7k tokensUpdated today
    Auto-check passed
  • Packmind Update Playbook

    PackmindHub/packmind

    A skill your agent uses when updating, adding, fixing, changing, or deprecating Packmind playbook artifacts (standards, commands, skills).

    317 GitHub stars~1.9k tokensUpdated today
    Auto-check passed

Questions about Doc Audit

What does Doc Audit do?

Audit Packmind end-user documentation (apps/doc/) for broken links, outdated CLI references, non-existent concepts, misleading information, and missing coverage. Doc Audit is an agent skill from PackmindHub/packmind. Audit Packmind end-user documentation (apps/doc/) for broken links, outdated CLI references, non-existent concepts, misleading information, and missing coverage.

When should I use Doc Audit?

Doc Audit fits situations like: docs may have drifted from the codebase; before a release; on a regular cadence.

How do I install Doc Audit in Claude Code?

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

How do I install Doc Audit in Codex?

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

Can I use Doc Audit 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 PackmindHub/packmind --skill doc-audit -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-audit, .gemini/skills/doc-audit, .github/skills/doc-audit and .opencode/skills/doc-audit in your project.

What does Doc Audit need to run?

SKILL.md names no scripts, command-line tools or credentials: Doc Audit is instructions for the agent only.

Does Doc Audit access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Doc Audit 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 Audit use?

Doc Audit is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Doc Audit use?

About 2.4k tokens (SKILL.md is roughly 9.5k 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 1.9k tokens, read only when the agent opens those files.

What are the alternatives to Doc Audit?

Skills that share tags, products or a category with Doc Audit: Markdown Article Formatter (JimLiu/baoyu-skills, 26k stars), Markitdown (ImCa0/just-laws, 781 stars), Obsidian Markdown (Atmosphere/atmosphere, 3.8k stars) and Gzh Design (isjiamu/gzh-design-skill, 3.9k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Doc Audit?

PackmindHub (a GitHub organization) maintains it in PackmindHub/packmind, which has 317 GitHub stars. The repository holds 35 skills in this directory. The repository was last updated on October 8, 2026.

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