Agent skill

Review Docs

by bactopia in bactopia/bactopia

Review staleness of reference docs under .agents/docs/ using bactopia-docs --validate.

MITAuto-check passedResearch & Science

Install Review Docs

skills CLI
$ npx skills add bactopia/bactopia --skill review-docs -a claude-code

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

GitHub CLI
$ gh skill install bactopia/bactopia review-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/bactopia/bactopia.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/review-docs .claude/skills/review-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
review-docs
GitHub stars
522
Token cost
~3.4k tokens
SKILL.md length
1,320 words
Files
2 (incl. scripts)
Skills in repo
15
Repo updated
First seen
Licence
MIT

At a glance

Review staleness of reference docs under .agents/docs/ using bactopia-docs --validate.

  • Works in 4 steps: Run bactopia-docs --validate via the… → Parse the JSON. Shape → Present a summary grouped by check family → …
  • The user asks to review docs
  • SKILL.md covers What this covers, Steps, Important constraints and Quick reference
  • Runs Shell scripts from its folder

What it does

Review Docs is an agent skill from bactopia/bactopia. Review staleness of reference docs under .agents/docs/ using bactopia-docs --validate. Detects deprecated patterns (residue from past migrations like flattenPaths, the 4-channel emission framing, meta:Map) and ground-truth violations (stale module/subworkflow/workflow counts, wrong Nextflow version, references to nonexistent bactopia- commands or lint rule IDs, skill-inventory drift between 06-skills.md and .agents/skills/, broken markdown link targets). Use this skill whenever the user asks to review docs, check…

Its SKILL.md is about 3.4k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files, including scripts (for example `scripts/run-bactopia-docs.sh`).

It sits in Research & Science, covering Reproducible research and Linting and formatting. It works with Nextflow. The repository describes itself as: A flexible pipeline for complete analysis of bacterial genomes. The licence is MIT.

When your agent uses it

  • The user asks to review docs
  • Check doc staleness
  • Audit reference docs
  • Find outdated documentation

Example prompts

  • “/review-docs”

Requirements

  • A Bash shell

Workflow steps

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

  1. Run bactopia-docs --validate via the wrapper, asking for JSON so it's easy to parse
  2. Parse the JSON. Shape
  3. Present a summary grouped by check family
  4. If the user asks to fix issues, walk through them one rule at a time. Different rules need different treatments — don't batch them.

What it can do on your machine

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

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

    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

Review Docs loads about 3.4k tokens when it runs. Until then it costs about 173 tokens; SKILL.md has 1,320 words of instructions outside code blocks.

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

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 bactopia/bactopia at commit 29fb741, republished under its MIT licence (© bactopia). 1,320 words, ~3,352 tokens.

Download SKILL.mdSave it as .claude/skills/review-docs/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
review-docs
description
Review staleness of reference docs under .agents/docs/ using bactopia-docs --validate. Detects deprecated patterns (residue from past migrations like flattenPaths, the 4-channel emission framing, meta:Map) and ground-truth violations (stale module/subworkflow/workflow counts, wrong Nextflow version, references to nonexistent bactopia-* commands or lint rule IDs, skill-inventory drift between 06-skills.md and .agents/skills/, broken markdown link targets). Use this skill whenever the user asks to review docs, check doc staleness, audit reference docs, find outdated documentation, verify doc claims, check if docs are current, or scan .agents/docs for drift after a migration.

Review Docs

Run bactopia-docs --validate and present the staleness report, then triage findings on request. Cross-cutting (per-repo) doc audit, parallel to /review-citations for citations and /review-groovydoc for component-level GroovyDoc.

What this covers

Two check families that don't fit the per-component lint rule model:

  • Deprecated patterns (D0xx) — regex matches against the data/docs-patterns.yml registry. Each entry flags a phrase retired by a past migration (e.g. flattenPaths, the 4-channel subworkflow emission framing, Tuple<Map, ...> pre-Record typing, meta: Map, EMPTY_* placeholders, data/catalog.json path, bactopiatool_init name). New migrations append entries to the YAML; the rule list grows over time.
  • Ground-truth assertions (D1xx) — claims about repo state that are derivable from the live tree and SHOULD match what the docs say:
    • D101/D102/D103 — module/subworkflow/workflow counts (find <tier> -name main.nf | wc -l)
    • D104 — Nextflow version (nextflowVersion in nextflow.config); informational mentions like 26.04+ or until Nextflow X are skipped.
    • D105 — `bactopia-*` references inside backticks must resolve to a [tool.poetry.scripts] entry in bactopia-py/pyproject.toml. Bare prose mentions (bactopia-tools, bactopia-py) are ignored.
    • D106 — M0xx/S0xx/W0xx/MC0xx/JS0xx/FMT0xx lint rule IDs must resolve to a rid = "..." assignment in bactopia-py/bactopia/lint/rules/.
    • D107 — skill inventory in reference/06-skills.md must match .agents/skills/*/SKILL.md. Catches: skills on disk not listed in the table, rows referencing nonexistent skill directories, and purpose-cell drift from the SKILL.md description: first sentence.
    • D108 — markdown link targets [text](path) must resolve to a real file. URLs and anchor-only links are skipped.

Component-level checks live elsewhere:

  • Module/subworkflow GroovyDoc → /review-groovydoc (M0xx/S0xx rules, including @citation keys via M035/S019)
  • Citation integrity (citations.yml orphans, workflow @citation references) → /review-citations

Steps

  1. Run bactopia-docs --validate via the wrapper, asking for JSON so it's easy to parse:

    bash .agents/skills/review-docs/scripts/run-bactopia-docs.sh \
        --bactopia-path /home/rpetit3/repos/bactopia/bactopia \
        --validate --json --silent

    Exit code is 0 when all checks pass, 1 when any FAIL is found. Both cases print JSON on stdout.

  2. Parse the JSON. Shape:

    json
    {
      "bactopia_path": "/home/rpetit3/repos/bactopia/bactopia",
      "docs_path": ".agents/docs",
      "patterns_file": "data/docs-patterns.yml",
      "ground_truth": {
        "counts": {"modules": 97, "subworkflows": 88, "workflows": 70},
        "nextflow_version": "25.04.6",
        "cli_commands_total": 28,
        "lint_rule_ids_total": 104,
        "bactopia_py_resolved": "/home/rpetit3/repos/bactopia/bactopia-py"
      },
      "files_scanned": ["standards/01-style-guide.md", "..."],
      "deprecated_patterns": [
        {
          "rule_id": "D001", "severity": "FAIL",
          "file": "reference/03-glossary.md", "line": 40,
          "match": "**flattenPaths**",
          "pattern": "flattenPaths",
          "hint": "Function removed from nf-bactopia plugin; remove or rephrase."
        }
      ],
      "ground_truth_violations": [
        {
          "rule_id": "D101", "severity": "FAIL",
          "file": "project/01-repository-structure.md", "line": 42,
          "match": "**Count**: 96 modules",
          "claim": "96 modules", "actual": "97 modules"
        }
      ],
      "summary": {
        "files_scanned": 16,
        "deprecated_pattern_hits": 11,
        "ground_truth_violations": 5,
        "fail": 16, "warn": 0,
        "patterns_loaded": 8
      }
    }

    Key fields:

    • deprecated_patterns[] — D0xx hits, one per (file, line, pattern) match.
    • ground_truth_violations[] — D1xx hits; carries either claim/actual (counts/version) or reference/hint (CLI/rule/path).
    • ground_truth.bactopia_py_resolved — null if the sibling repo wasn't found; D105/D106 are skipped silently in that case.
  3. Present a summary grouped by check family:

    • Clean repo (fail == 0): report "All <files_scanned> docs clean — <patterns_loaded> deprecated patterns, <cli_commands_total> CLI commands, <lint_rule_ids_total> lint rule IDs checked.". Stop there.

    • Issues found: show sections in this order:

      1. Deprecated patterns (D0xx) — group by rule_id so the user sees migration residue together. For each rule, list file:line — match with the hint shown once at the top of the group.

        D001 (flattenPaths): function removed from nf-bactopia plugin
          • reference/03-glossary.md:40   - **flattenPaths**
          • reference/03-glossary.md:155  - **flattenPaths**: Convert Set<Path> to Path
          • reference/04-plugin-functions.md:114  ### flattenPaths (deprecated)
          ...
      2. Ground-truth violations (D1xx) — group by rule_id. For count/version checks, show claim → actual; for reference checks, show the bad reference + suggested fix.

        D101 (module count): claim 96 → actual 97
          • project/01-repository-structure.md:42
        
        D104 (Nextflow version): claim 26.01.0 → actual 25.04.6
          • project/04-testing-framework.md:4
          • project/04-testing-framework.md:316

      Lead with whichever family has more items. Keep it scannable: if any rule has more than ~10 hits, show the first 5 plus (... N more) and offer to print the rest on request.

  4. If the user asks to fix issues, walk through them one rule at a time. Different rules need different treatments — don't batch them.

Fixing deprecated patterns (D0xx)

Each pattern represents a migration that already landed; the doc is just out of sync. Three fix patterns:

  • Replace with current term: most common case. flattenPaths → describe the current direct-emit pattern. 4-channel → 2 channels (sample_outputs + run_outputs). Tuple<Map, Path> → Channel<Record>. Read the surrounding paragraph before editing — sometimes the whole sentence needs rewriting, not just a token swap. Look at reference/01-examples.md for the modern equivalents.

  • Delete entirely: glossary entries for terms that no longer exist (e.g. the flattenPaths definition, the Tuple<Map, ...> type entries) should be removed, not rephrased. Take the whole bullet/section.

  • Mark as historical with inline ignore: very rarely, a doc legitimately needs to mention a deprecated term — e.g. a "what changed in v4" note. Suppress the rule on that line with an HTML comment:

    markdown
    Pre-v4 subworkflows used the 4-channel emission pattern. <!-- bactopia-docs: ignore D002 -->

    Multiple rules: <!-- bactopia-docs: ignore D001, D002 -->. Use this sparingly — every suppression is technical debt that will outlive the reason it was added.

Show full SKILL.md (582 more words)Show less
Fixing ground-truth violations (D1xx)
  • D101/D102/D103 (counts): simple integer swap. The CLI's actual value is authoritative — re-run after editing to confirm. Gotcha: the validator matches the first N modules|subworkflows|workflows phrase on each line, so a line that mentions a subset count (e.g. 66 workflows in bactopia-tools, 70 total) will be flagged as claim 66 → actual 70 even though the 66 is correct. Fix by rewording so subset counts don't use the same noun (e.g. 66 tools; 70 workflows total), not by editing the subset number.
  • D104 (Nextflow version): replace the claimed version with the actual nextflowVersion from nextflow.config. If the doc was making a forward-looking claim ("targeting Nextflow X"), reword to remove the version or add +/x so D104 treats it as informational.
  • D105 (CLI references): either fix a typo (e.g. bactopia-statuz → bactopia-status) or remove the reference if the command genuinely doesn't exist. Don't invent commands.
  • D106 (lint rule IDs): same — fix typo or remove. The valid set lives in bactopia-py/bactopia/lint/rules/.
  • D108 (broken links): either fix the path (compare against the actual repo layout) or remove the link if the target was deleted. URLs aren't checked, so external links never trip this.

After edits, re-run step 1. A clean re-run proves the fix landed correctly.

Adding a new deprecated pattern

When a migration retires a term/pattern that should never appear again in docs, append it to data/docs-patterns.yml:

yaml
- id: D009                         # next available D0xx
  pattern: oldTermName             # regex by default
  literal: true                    # set if pattern should be matched as plain text
  severity: FAIL                   # PASS | WARN | FAIL
  hint: "What to do instead."
  rationale: |
    Free text describing the migration that retired this term.

Always confirm with the user before adding a pattern — false positives at the registry level multiply across every doc forever.

Important constraints

  • Confirm before editing docs. The CLI reports drift objectively, but choosing between "rewrite the section", "delete the entry", and "mark historical with inline ignore" is a judgment call. Pause and ask.
  • Don't fabricate facts. If a count/version/reference is broken and the user doesn't know the right replacement, leave the doc alone and surface the gap. The CLI's actual field is reliable for counts/version; for CLI/rule references, the canonical source is the bactopia-py codebase.
  • D108 path resolution is heuristic. It checks markdown link targets relative to the doc's directory, then falls back to the repo root. Symlinks and case-insensitive filesystems can produce edge-case false positives — always inspect the link before deleting it.
  • Suppression is a last resort. <!-- bactopia-docs: ignore Dxxx --> is technical debt; prefer rewriting to remove the deprecated term entirely. The rare legitimate use is a deliberate historical reference (changelog, "what changed" notes).
  • D105/D106 skip silently when bactopia-py isn't found. If ground_truth.bactopia_py_resolved is null, those checks didn't run. Pass --bactopia-py-path explicitly if the sibling repo is in a non-default location.
  • The wrapper script auto-discovers bactopia-docs (checks PATH, then conda envs). No need to activate an env first.
  • The CLI's --bactopia-path must point at the repo root so the validator can find .agents/docs/, data/docs-patterns.yml, nextflow.config, and the tier directories.

Quick reference

Inline suppression syntax
markdown
Some line that legitimately mentions flattenPaths. <!-- bactopia-docs: ignore D001 -->
Multiple rules on one line. <!-- bactopia-docs: ignore D001, D002 -->

The HTML comment must be on the same line as the match. Suppression is per-rule, per-line — applies only to that line.

data/docs-patterns.yml entry shape
yaml
patterns:
  - id: D001                       # D001+, sequential
    pattern: flattenPaths          # regex by default; set literal:true for plain text
    literal: true                  # optional
    severity: FAIL                 # PASS | WARN | FAIL (default FAIL)
    hint: "Short remediation."     # shown in CLI output
    rationale: |                   # free-text history
      The migration / decision that retired this term.
CLI flags
  • --bactopia-path PATH — required, points at the bactopia repo root
  • --docs-path PATH — relative to bactopia-path (default: .agents/docs)
  • --patterns-file PATH — relative to bactopia-path (default: data/docs-patterns.yml)
  • --bactopia-py-path PATH — override the sibling-repo discovery for D105/D106
  • --skip-path-check — skip D108 (faster runs; useful when you know link health is fine)
  • --json — emit structured output instead of rich tables
  • --silent — suppress non-error output when the run is clean
  • --plain-text / -p — disable rich formatting for piping
When to redirect to other skills
  • Module / subworkflow GroovyDoc accuracy → /review-groovydoc
  • Citation integrity (citations.yml orphans, workflow @citation refs) → /review-citations
  • Component coverage / project state → /project-status
  • Catalog regeneration → /update-catalog

© bactopia, 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 1 other file (scripts) in .agents/skills/review-docs of bactopia/bactopia.

  • SKILL.md
  • scripts/run-bactopia-docs.sh

Open the folder on GitHubat commit 29fb741

Compare with similar skills

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

Review Docs compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Review Docs this skillbactopia/bactopia522—~3.4kAutomated safety check: PassMIT
LaminDB Biological Data Managementdavila7/claude-code-templates32k12 repos~3.6kAutomated safety check: PassMIT
Latchbio Integrationdavila7/claude-code-templates32k11 repos~2.4kAutomated safety check: PassMIT
PacsomaticBioTender-max/awesome-bio-agent-skills197—~1.3kAutomated safety check: PassMIT
Latchbio IntegrationK-Dense-AI/scientific-agent-skills48k1 repos~2.5kAutomated safety check: NotesMIT
PacsomaticK-Dense-AI/scientific-agent-skills48k1 repos~1.6kAutomated safety check: PassMIT

Similar skills

  • LaminDB Biological Data Management

    davila7/claude-code-templates

    Manages biological datasets with LaminDB: versioned artifacts, run lineage, ontology-based annotation, schema validation and links to workflow managers and ML tools.

    32k GitHub starsUsed in 12 repos~3.6k tokens
    Research & ScienceAuto-check passed
  • Latchbio Integration

    davila7/claude-code-templates

    Latch platform for bioinformatics workflows. An agent skill from davila7/claude-code-templates.

    32k GitHub starsUsed in 11 repos~2.4k tokens
    Research & ScienceAuto-check passed
  • Pacsomatic

    BioTender-max/awesome-bio-agent-skills

    Operator toolkit for nf-core/pacsomatic matched tumor-normal workflows from BAM inputs.

    197 GitHub stars~1.3k tokensUpdated 3 mo ago
    Research & ScienceAuto-check passed
  • Latchbio Integration

    K-Dense-AI/scientific-agent-skills

    Builds, registers, debugs, and operates bioinformatics workflows on Latch using the Python SDK, CLI, Latch Data and Registry, Nextflow, Snakemake, programmatic execution, and Latch MCP.

    48k GitHub starsUsed in 1 repo~2.5k tokens
    Research & ScienceAuto-check: notes
  • Pacsomatic

    K-Dense-AI/scientific-agent-skills

    Prepares and launches nf-core/pacsomatic matched tumor-normal PacBio HiFi genomics workflows from unaligned BAM inputs.

    48k GitHub starsUsed in 1 repo~1.6k tokens
    Research & ScienceAuto-check passed
  • Dnanexus Integration

    K-Dense-AI/scientific-agent-skills

    Builds and operates reproducible genomics workloads on DNAnexus with the dx CLI, dxpy, apps/applets, native workflows, dxCompiler, and Nextflow.

    48k GitHub starsUsed in 1 repo~3.1k tokens
    Research & ScienceAuto-check passed

More from bactopia/bactopia

All 15 skills in this repo
  • Add Bactopia Tool

    bactopia/bactopia

    Scaffold a complete Bactopia Tool across all three tiers -- module, subworkflow, and workflow entry point under workflows/bactopia-tools/.

    522 GitHub stars~4.1k tokensUpdated 2 mo ago
    Auto-check passed
  • Bump Versions

    bactopia/bactopia

    Propagate the Bactopia and nf-bactopia versions declared in versions.yml into the hand-maintained files that carry a literal version (conf/testbase.config, CITATION.cff, bin/bactopia…

    522 GitHub stars~1.3k tokensUpdated 2 mo ago
    Auto-check passed
  • Merge Schemas

    bactopia/bactopia

    Regenerate nextflow.config and nextflowschema.json for Bactopia workflows by running bactopia-merge-schemas.

    522 GitHub stars~1.3k tokensUpdated 2 mo ago
    Auto-check passed
  • Project Status

    bactopia/bactopia

    Show a live snapshot of the Bactopia project state — component counts, GroovyDoc coverage, nf-test coverage, and structural issues.

    522 GitHub stars~787 tokensUpdated 2 mo ago
    Auto-check passed
  • Release Checklist

    bactopia/bactopia

    Audit whether Bactopia is ready for a version release and produce a GO / NO-GO recommendation report.

    522 GitHub stars~4.9k tokensUpdated 2 mo ago
    Auto-check passed
  • Review Citations

    bactopia/bactopia

    Review citation integrity across data/citations.yml and @citation tags using bactopia-citations --validate.

    522 GitHub stars~2.5k tokensUpdated 2 mo ago
    Auto-check passed

Works with

Questions about Review Docs

What does Review Docs do?

Review staleness of reference docs under .agents/docs/ using bactopia-docs --validate. Review Docs is an agent skill from bactopia/bactopia.agents/docs/ using bactopia-docs --validate.

When should I use Review Docs?

Review Docs fits situations like: the user asks to review docs; check doc staleness; audit reference docs; find outdated documentation.

How do I install Review Docs in Claude Code?

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

How do I install Review Docs in Codex?

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

Can I use Review 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 bactopia/bactopia --skill review-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/review-docs, .gemini/skills/review-docs, .github/skills/review-docs and .opencode/skills/review-docs in your project.

What does Review Docs need to run?

Going by SKILL.md and its folder, Review Docs needs a shell for the scripts in its folder. Our summary lists: A Bash shell.

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

What licence does Review Docs use?

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

What are the alternatives to Review Docs?

Skills that share tags, products or a category with Review Docs: LaminDB Biological Data Management (davila7/claude-code-templates, 32k stars), Latchbio Integration (davila7/claude-code-templates, 32k stars), Pacsomatic (BioTender-max/awesome-bio-agent-skills, 197 stars) and Latchbio Integration (K-Dense-AI/scientific-agent-skills, 48k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Review Docs?

bactopia (a GitHub organization) maintains it in bactopia/bactopia, which has 522 GitHub stars. The repository holds 15 skills in this directory. The repository was last updated on August 5, 2026.

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