Agent skill

Update Module

by bactopia in bactopia/bactopia

Check for newer versions of tools used in Bactopia modules and apply updates to module.config files and CHANGELOG.md.

MITAuto-check passedDevelopment

Install Update Module

skills CLI
$ npx skills add bactopia/bactopia --skill update-module -a claude-code

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

GitHub CLI
$ gh skill install bactopia/bactopia update-module --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/update-module .claude/skills/update-module && 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
update-module
GitHub stars
522
Token cost
~1.3k tokens
SKILL.md length
544 words
Files
2 (incl. scripts)
Skills in repo
15
Repo updated
First seen
Licence
MIT

At a glance

Check for newer versions of tools used in Bactopia modules and apply updates to module.config files and CHANGELOG.md.

  • Works in 6 steps: Run bactopia-update via the wrapper… → Parse the JSON output. Separate entries… → Present results as a clean summary → …
  • Asked to update module versions
  • SKILL.md covers Steps and Notes
  • Runs Shell scripts from its folder; calls bash; reaches depot.galaxyproject.org

What it does

Update Module is an agent skill from bactopia/bactopia. Check for newer versions of tools used in Bactopia modules and apply updates to module.config files and CHANGELOG.md. Use when asked to update module versions, check for outdated tools, or bump container versions.

Its SKILL.md is about 1.3k 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-update.sh`).

It sits in Development, covering Changelog and release notes. The repository describes itself as: A flexible pipeline for complete analysis of bacterial genomes. The licence is MIT.

When your agent uses it

  • Asked to update module versions
  • Check for outdated tools
  • Bump container versions

Example prompts

  • “/update-module”

Requirements

  • A Bash shell
  • Docker

Workflow steps

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

  1. Run bactopia-update via the wrapper script, saving the JSON to a timestamped record so /release-checklist can later confirm module…
  2. Parse the JSON output. Separate entries into three categories
  3. Present results as a clean summary
  4. Ask the user which updates to apply (all or a subset). Do NOT proceed without confirmation.
  5. For each confirmed update, read the module.config file at the path given by the config field, then edit three lines per module
  6. Update CHANGELOG.md. Under ## Unreleased Changes > ### \Added\

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.

    Shell commands in SKILL.md call:

    • bash

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

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • depot.galaxyproject.org

    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

Update Module loads about 1.3k tokens when it runs. Until then it costs about 57 tokens; SKILL.md has 544 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~57
When it runs · the whole SKILL.md, loaded when a task matches
~1.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); 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). 544 words, ~1,326 tokens.

Download SKILL.mdSave it as .claude/skills/update-module/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
update-module
description
Check for newer versions of tools used in Bactopia modules and apply updates to module.config files and CHANGELOG.md. Use when asked to update module versions, check for outdated tools, or bump container versions.

Update Module

Check for newer versions of bioconda tools used in Bactopia modules and apply updates.

Steps

  1. Run bactopia-update via the wrapper script, saving the JSON to a timestamped record so /release-checklist can later confirm module versions were checked this cycle:

    mkdir -p /home/rpetit3/repos/bactopia/bactopia/logs/module-updates
    TS=$(date +%Y%m%d_%H%M%S)
    bash .agents/skills/update-module/scripts/run-bactopia-update.sh --bactopia-path /home/rpetit3/repos/bactopia/bactopia --json --silent \
        | tee /home/rpetit3/repos/bactopia/bactopia/logs/module-updates/$TS.json

    Parse the JSON from that file. If the user specified a module name, add --module <name> to the command and do not write the record (a filtered run is not a full-repo check — only an unfiltered scan is a valid /release-checklist freshness record). logs/ is gitignored, so the record is scratch, not a tracked file.

  2. Parse the JSON output. Separate entries into three categories:

    • Needs update (needs_update: true): ready for automatic update
    • Needs user review (needs_user_review: true): multi-package toolName, cannot auto-update
    • Up to date (needs_update: false): no action needed
  3. Present results as a clean summary:

    • For updatable modules, show a table: tool, config path, installed version -> latest version
    • For user-review modules, list them separately with config path and a note that they require manual review
    • If nothing needs updating and nothing needs review, report "All modules are up to date" and stop
  4. Ask the user which updates to apply (all or a subset). Do NOT proceed without confirmation.

  5. For each confirmed update, read the module.config file at the path given by the config field, then edit three lines per module:

    ext.toolName -- Replace the conda spec string (the text between the first " and the " before .replace) with the latest_toolName value. Keep the .replace() chain untouched.

    // Before:
    ext.toolName = "bioconda::bakta=1.11.4".replace("=", "-").replace(":", "-").replace(" ", "-")
    // After (latest_toolName = "bioconda::bakta=1.12.0"):
    ext.toolName = "bioconda::bakta=1.12.0".replace("=", "-").replace(":", "-").replace(" ", "-")

    ext.docker -- Replace the entire quoted value with latest_docker.

    // Before:
    ext.docker = "biocontainers/bakta:1.11.4--pyhdfd78af_0"
    // After:
    ext.docker = "biocontainers/bakta:1.12.0--pyhdfd78af_0"

    ext.image -- Replace the entire quoted value with latest_image.

    // Before:
    ext.image = "https://depot.galaxyproject.org/singularity/bakta:1.11.4--pyhdfd78af_0"
    // After:
    ext.image = "https://depot.galaxyproject.org/singularity/bakta:1.12.0--pyhdfd78af_0"

    For multi-process config files (e.g., genotyphi/parse has both genotyphi and mykrobe), use the tool field to match the correct ext.toolName line containing that tool name.

  6. Update CHANGELOG.md. Under ## Unreleased Changes > ### \Added``:

    • Look for an existing - bump program versions in modules line
    • If found, merge new entries into the indented list below it
    • If not found, add the block at the end of the ### \Added`` section
    • Format each entry as: - \tool`: old_version -> new_version`
    • One entry per tool (not per module) -- deduplicate shared tools (e.g., bakta_run and bakta_download both use bakta)
    • Sort entries alphabetically by tool name
    • Use the tool field (bioconda package name) as the display name
Show full SKILL.md (171 more words)Show less

Notes

  • The wrapper script auto-discovers bactopia-update (checks PATH, then conda envs)
  • Multi-package toolName modules (pirate, lissero, clonalframeml) have needs_user_review: true and no latest_* fields -- present them for manual review, do not auto-edit
  • If latest_version is null for an entry (API failure), skip it and note the failure
  • The --module flag filters by tool name prefix (e.g., bakta matches both bakta_run and bakta_download)
  • Ignore list: filter these entries out before presenting results -- Anaconda metadata quirks, not real updates:
    • tool == "aria2" && module == "checkm2_download" -- Anaconda reports 1.34.0 as "latest" while 1.36.0 is installed (spurious downgrade)
JSON Output Fields

Standard update entry:

  • tool -- bioconda package name
  • module -- Bactopia module name (underscores)
  • config -- relative path to module.config
  • installed_version -- current version from module.config
  • latest_version -- latest version from Anaconda API
  • latest_build -- build string from Anaconda API
  • needs_update -- true if versions differ
  • latest_toolName -- new conda spec for ext.toolName
  • latest_docker -- new docker image path for ext.docker
  • latest_image -- new singularity image URL for ext.image

User review entry (multi-package):

  • tool, module, config, installed_version -- same as above
  • needs_user_review -- true (no latest_* fields provided)

© 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/update-module of bactopia/bactopia.

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

Open the folder on GitHubat commit 29fb741

Compare with similar skills

Update Module 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.

Update Module compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Update Module this skillbactopia/bactopia522—~1.3kAutomated safety check: PassMIT
Simple Englishmoeru-ai/airi50k2 repos~4.6kAutomated safety check: PassMIT
StarRocks Release NotesStarRocks/starrocks12k—~1.9kAutomated safety check: NotesApache-2.0
Cutting A ReleaseTriliumNext/Trilium38k—~3.2kAutomated safety check: PassAGPL-3.0
React Router Release Notes Prepremix-run/react-router57k—~1.1kAutomated safety check: PassMIT
Mole CLI Release Flowtw93/Mole69k—~2.5kAutomated safety check: PassGPL-3.0

Similar skills

  • Simple English

    moeru-ai/airi

    Write or rewrite technical text with the rules of ASD-STE100 Simplified Technical English so it is clear, unambiguous, and free of AI slop.

    50k GitHub starsUsed in 2 repos~4.6k tokens
    DevelopmentAuto-check passed
  • StarRocks Release Notes

    StarRocks/starrocks

    Drafts English release notes for a StarRocks patch release from the PRs merged into its release branch, then opens a documentation PR and hands translation to /translate.

    12k GitHub stars~1.9k tokensUpdated yesterday
    DevelopmentAuto-check: notes
  • Cutting A Release

    TriliumNext/Trilium

    A skill your agent uses when cutting, preparing, or debugging a Trilium release — bumping the monorepo version, tagging, or diagnosing a failed "Release" workflow run.

    38k GitHub stars~3.2k tokensUpdated today
    DevelopmentAuto-check passed
  • React Router Release Notes Prep

    remix-run/react-router

    Polishes pending React Router change files before the versioning scripts run, and decides whether a long-form What's Changed section is warranted.

    57k GitHub stars~1.1k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Runbook for assessing and executing a Mole CLI release: distribution channels, pre-flight checks, capital-V tags, build artifacts and the handoff to curated release notes.

    69k GitHub stars~2.5k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Release

    PrefectHQ/fastmcp

    Cut a FastMCP release end to end. An agent skill from PrefectHQ/fastmcp.

    28k GitHub stars~2.9k tokensUpdated yesterday
    DevelopmentAuto-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

Categories

Questions about Update Module

What does Update Module do?

Check for newer versions of tools used in Bactopia modules and apply updates to module.config files and CHANGELOG.md. Update Module is an agent skill from bactopia/bactopia.md.

When should I use Update Module?

Update Module fits situations like: asked to update module versions; check for outdated tools; bump container versions.

How do I install Update Module in Claude Code?

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

How do I install Update Module in Codex?

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

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

What does Update Module need to run?

Going by SKILL.md and its folder, Update Module needs a shell for the scripts in its folder and the command-line tools its instructions call (bash). Our summary lists: A Bash shell; Docker.

Does Update Module access the network?

SKILL.md names 1 domain. In commands or code: depot.galaxyproject.org; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.

Is Update Module 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 Update Module use?

Update Module 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 Update Module use?

About 1.3k tokens (SKILL.md is roughly 5.3k 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 Update Module?

Skills that share tags, products or a category with Update Module: Simple English (moeru-ai/airi, 50k stars), StarRocks Release Notes (StarRocks/starrocks, 12k stars), Cutting A Release (TriliumNext/Trilium, 38k stars) and React Router Release Notes Prep (remix-run/react-router, 57k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Update Module?

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.