Ship a release of Open Data Capture — bump the version, publish the npm packages and the GHCR images, tag it.

Apache-2.0Auto-check passedDevelopment

Install Odc Release

skills CLI
$ npx skills add DouglasNeuroInformatics/OpenDataCapture --skill odc-release -a claude-code

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

GitHub CLI
$ gh skill install DouglasNeuroInformatics/OpenDataCapture odc-release --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/DouglasNeuroInformatics/OpenDataCapture.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/odc-release .claude/skills/odc-release && 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
odc-release
GitHub stars
119
Token cost
~1.4k tokens
SKILL.md length
821 words
Files
2
Skills in repo
16
Repo updated
First seen
Licence
Apache-2.0

At a glance

Ship a release of Open Data Capture — bump the version, publish the npm packages and the GHCR images, tag it.

  • A merge to main produced no new version
  • SKILL.md covers The silent green: a root-only…, pnpm lint is the only test the…, skipped is the shape of a… and Known drifts to name, not to…, plus 2 more sections
  • Calls pnpm, gh and docker
  • A release run logs Skipping <pkg@<version (already published)

What it does

Odc Release is an agent skill from DouglasNeuroInformatics/OpenDataCapture. Ship a release of Open Data Capture — bump the version, publish the npm packages and the GHCR images, tag it. Use when a merge to main produced no new version, or when a release run logs Skipping <pkg@<version (already published).

Its SKILL.md is about 1.4k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files (for example `agents/openai.yaml`).

It sits in Development. It works with npm. The repository describes itself as: An electronic data capture platform for administering remote and in-person clinical instruments. The licence is Apache-2.0.

When your agent uses it

  • A merge to main produced no new version
  • A release run logs Skipping <pkg@<version (already published)

Example prompts

  • “/odc-release”

Requirements

  • Docker

What it can do on your machine

Read from SKILL.md and the folder at commit 432dec8. 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:

    • pnpm
    • gh
    • docker

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

  • Network

    No URLs in SKILL.md. Its commands use pnpm, gh and docker, 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

Odc Release loads about 1.4k tokens when it runs. Until then it costs about 62 tokens; SKILL.md has 821 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~62
When it runs · the whole SKILL.md, loaded when a task matches
~1.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); files beside SKILL.md are not scanned.

SKILL.md

The full file from DouglasNeuroInformatics/OpenDataCapture at commit 432dec8, republished under its Apache-2.0 licence (© DouglasNeuroInformatics). 821 words, ~1,431 tokens.

Download SKILL.mdSave it as .claude/skills/odc-release/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
odc-release
description
Ship a release of Open Data Capture — bump the version, publish the npm packages and the GHCR images, tag it. Use when a merge to main produced no new version, or when a release run logs `Skipping <pkg>@<version> (already published)`.

A release is one version bump merged to main — after that .github/workflows/release.yaml builds the images, publishes the npm packages and creates the GitHub release with no further input. It also fires on workflow_dispatch from main, which releases again with no bump and no merge; a dispatch from any other ref fails configure. The release body is the new version's section of CHANGELOG.md, which scripts/increment-version.ts generates from the commits since the last tag; the release job fails, rather than publishing an empty body, when that section is missing. Which workspaces publish: .agents/docs/workspace-map.md; how each artifact is selected: the job table in .agents/docs/playbooks/cut-a-release.md.

The failures here are silent — nothing goes red.

The silent green: a root-only bump publishes nothing

Every publishable package must carry the root version. Each publishes at its own package.json version and the publish step skips a version npm already carries, so a bump that moved the root alone leaves publish-npm green and npm untouched. Nothing compares those files, so you are the lockstep check: after the bump, every row of scripts/list-publishable.sh must carry the version in the root package.json, which that script never prints. Skipping <pkg>@<version> (already published) is the ordinary output of any push that carried no bump — a symptom only in the run for the commit that was supposed to bump. The mechanism, and the command that compares the two: .agents/docs/playbooks/cut-a-release.md.

pnpm lint is the only test the release path runs

The validate job runs pnpm lint and stops there (release.yaml:37-52): the merge is the last moment a test runs against this code, and after it a red suite ships silently. Get the branch green first with .agents/skills/odc-done/SKILL.md, and — since nothing you run locally builds the Docker images, and build gates both publishes — require gh run list --workflow=Release --limit 1 green on main before you bump. What CI does and does not gate: .agents/docs/architecture/testing-strategy.md.

skipped is the shape of a release that never happened

publish-npm and release inherit the default success() gate over their needs, so a build that dies takes both of them down and GitHub reports them skipped rather than failed (release.yaml:53-56,92-100,140-145). Read the cause off the run, not off the missing artifact:

  • one leg failure and its siblings cancelled — strategy.fail-fast: true (release.yaml:57-59): an image that does not build, not a collision.
  • the whole run cancelled — the per-ref concurrency group with cancel-in-progress: true (release.yaml:9-11): a second merge landed while it was in flight.

Recover by fixing the failing job and re-running the run (gh run rerun <id>); the publish step's version guard makes that safe. Cut another patch only when npm needs a version it has never seen.

Done when the answer to "the merge produced no new version" names the job that owns the missing artifact, quoted from the run.

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

Known drifts to name, not to repair

Machinery oddities, verified and already understood — say so in your reply and carry on. A red build is not one of them; that is a failure to fix.

  • Every push to main performs a full release — release.cjs sets should_release to 'true' on every run from main, on purpose. It consults nothing outside the repository, so no registry state can wedge it; do not add a gate that reads GHCR or npm back. The gate that used to live there is in .agents/docs/playbooks/cut-a-release.md.
  • No playground image ships — the matrix filter drops it.
  • Nothing enforces the version lockstep; you do, above.

Pulling a bad release takes latest with it

build pushes latest and the bare version onto one manifest, so deleting that GHCR package version deletes both tags. Delete the two most recent releases and the images have no latest at all — every docker pull ghcr.io/douglasneuroinformatics/open-data-capture-api:latest fails until the next release restores it, and nothing in this repo reports that. Cut the replacement release promptly, or retag a known-good version by hand. Deleting the GitHub release and its v<version> tag is independent of the images and of npm, where a version older than 72h cannot be unpublished at all — pulling a release means pulling it in three places, and only the images carry latest.

Done when every release-machinery oddity you hit is either in that list or in your reply — the reason for any one of them is in .agents/docs/playbooks/cut-a-release.md.

The procedure

.agents/docs/playbooks/cut-a-release.md — open it before the first command and follow it end to end. It owns the order of operations, scripts/increment-version.ts (no pnpm script — run the path), the merge, watching the run, and the ## Verify block. That script prompts for the bump and for a y/N; with no terminal on stdin it exits 1 having written nothing, so pass the answers as flags: ./scripts/increment-version.ts --bump patch --yes, plus --commit to have it make the chore: release v<version> commit too. Hand-editing a version field is how the drift this skill exists to prevent gets made.

Done when the playbook's ## Verify block has been run and all three artifacts report the new version. A green run is not the criterion.

© DouglasNeuroInformatics, 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 in .agents/skills/odc-release of DouglasNeuroInformatics/OpenDataCapture.

  • SKILL.md
  • agents/openai.yaml

Open the folder on GitHubat commit 432dec8

Compare with similar skills

Odc Release 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.

Odc Release compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Odc Release this skillDouglasNeuroInformatics/OpenDataCapture119—~1.4kAutomated safety check: PassApache-2.0
Nx Run Tasksnomcopter/react-mosaic4.8k8 repos~613Automated safety check: PassCustom licence
Migrate Internal Package into GhostTryGhost/Ghost56k—~3.8kAutomated safety check: PassMIT
Open Code Review CLIalibaba/open-code-review45k—~3.1kAutomated safety check: PassApache-2.0
Cutting A ReleaseTriliumNext/Trilium38k—~3.2kAutomated safety check: PassAGPL-3.0
Install Anti-Slop Oxlint Rulesdmmulroy/anti-slop5.3k—~2.2kAutomated safety check: PassMIT

Similar skills

  • Nx Run Tasks

    nomcopter/react-mosaic

    Helps with running tasks in an Nx workspace. An agent skill from nomcopter/react-mosaic.

    4.8k GitHub starsUsed in 8 repos~613 tokens
    DevelopmentAuto-check passed
  • Moves a package from another TryGhost repository into Ghost as an internal workspace package while keeping its Git history, with checkpoints for the steps that need an administrator.

    56k GitHub stars~3.8k tokensUpdated today
    DevelopmentAuto-check passed
  • Open Code Review CLI

    alibaba/open-code-review

    Runs the ocr command-line tool to review Git changes, a commit or a branch comparison with an AI model, returning line-level comments and optionally applying fixes.

    45k GitHub stars~3.1k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • 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
  • Installs, updates or migrates the vendored anti-slop Oxlint plugin in a repository, keeping local rule changes and the plugin's license and provenance files.

    5.3k GitHub stars~2.2k tokensUpdated 29 days ago
    DevelopmentAuto-check passed
  • Open Code Review Delegate

    alibaba/open-code-review

    Has the host agent do the code review itself while the ocr CLI handles file selection and rule lookup, covering workspace changes, branch ranges or single commits.

    45k GitHub stars~2k tokensUpdated yesterday
    DevelopmentAuto-check passed

More from DouglasNeuroInformatics/OpenDataCapture

All 16 skills in this repo
  • Odc Agent Docs

    DouglasNeuroInformatics/OpenDataCapture

    Write or correct this repo's agent documentation — a workspace AGENTS.md (or its CLAUDE.md symlink), a playbook under .agents/docs/playbooks, an architecture doc, or the workspace map.

    119 GitHub stars~2.7k tokensUpdated yesterday
    Auto-check passed
  • Odc Testing

    DouglasNeuroInformatics/OpenDataCapture

    Test a change in Open Data Capture. An agent skill from DouglasNeuroInformatics/OpenDataCapture.

    119 GitHub stars~1.5k tokensUpdated yesterday
    Auto-check: notes
  • Review PR

    DouglasNeuroInformatics/OpenDataCapture

    Triage pull requests against upstream main — one verdict, action items, and whether it needs the user's eyes.

    119 GitHub stars~2.8k tokensUpdated yesterday
    Auto-check passed
  • Odc Open PR

    DouglasNeuroInformatics/OpenDataCapture

    Open a pull request against main for the current branch. An agent skill from DouglasNeuroInformatics/OpenDataCapture.

    119 GitHub stars~533 tokensUpdated yesterday
    Auto-check passed
  • Opening Issues

    DouglasNeuroInformatics/OpenDataCapture

    File a GitHub issue for Open Data Capture with its labels. An agent skill from DouglasNeuroInformatics/OpenDataCapture.

    119 GitHub stars~614 tokensUpdated yesterday
    Auto-check passed
  • Odc Debugging

    DouglasNeuroInformatics/OpenDataCapture

    What actually breaks in Open Data Capture — a failing build, lint, unit test or e2e run; a change with no visible effect; a suite that stays green after you broke the code on purpose; an error…

    119 GitHub stars~2.8k tokensUpdated yesterday
    Auto-check: notes

Works with

Categories

Questions about Odc Release

What does Odc Release do?

Ship a release of Open Data Capture — bump the version, publish the npm packages and the GHCR images, tag it. Odc Release is an agent skill from DouglasNeuroInformatics/OpenDataCapture. Ship a release of Open Data Capture — bump the version, publish the npm packages and the GHCR images, tag it.

When should I use Odc Release?

Odc Release fits situations like: A merge to main produced no new version; A release run logs Skipping <pkg@<version (already published).

How do I install Odc Release in Claude Code?

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

How do I install Odc Release in Codex?

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

Can I use Odc Release 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 DouglasNeuroInformatics/OpenDataCapture --skill odc-release -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/odc-release, .gemini/skills/odc-release, .github/skills/odc-release and .opencode/skills/odc-release in your project.

What does Odc Release need to run?

Going by SKILL.md and its folder, Odc Release needs the command-line tools its instructions call (pnpm, gh and docker). Our summary lists: Docker.

Does Odc Release access the network?

SKILL.md contains no URLs. Its commands use gh and docker, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Odc Release 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 Odc Release use?

Odc Release 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 Odc Release use?

About 1.4k tokens (SKILL.md is roughly 5.7k 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 Odc Release?

Skills that share tags, products or a category with Odc Release: Nx Run Tasks (nomcopter/react-mosaic, 4.8k stars), Migrate Internal Package into Ghost (TryGhost/Ghost, 56k stars), Open Code Review CLI (alibaba/open-code-review, 45k stars) and Cutting A Release (TriliumNext/Trilium, 38k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Odc Release?

DouglasNeuroInformatics (a GitHub organization) maintains it in DouglasNeuroInformatics/OpenDataCapture, which has 119 GitHub stars. The repository holds 16 skills in this directory. The repository was last updated on October 7, 2026.

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