dismech: Skill for Claude Code

.claude/skills/curate-next/SKILL.md

curate-next is a skill for Claude Code from monarch-initiative/dismech. It costs 73 tokens per session (3,322 once invoked), scanned A, original, BSD-3-Clause.

A workflow for selecting the next disease-curation issues assigned only to the current GitHub user. It chooses issues without an existing pull request and starts curation work for several diseases in parallel.

In plain words
What is it for?
Use it to curate the next one to eight available disease issues, or to dispatch several curation tasks at once.
Why use it?
It removes the manual search through assigned issues and avoids selecting work that already has a pull request.

Skill for Claude Code

Written for Claude Code: installed under .claude/. Also seen: mentions subagents.

This is monarch-initiative/dismech's own configuration. It tells Claude Code how to work on dismech itself, so it is not a mod to install elsewhere. Copy it as a starting point and replace the rules that are about this project. Everything dismech configures →

Not installable: its command points at a path on the author’s own machine, so it runs nowhere else. The line is /Users/.../dismech-1.

Reuse

Borrowing it

Nothing to install: this file belongs to monarch-initiative/dismech. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.

Copy the file
curl -O https://raw.githubusercontent.com/monarch-initiative/dismech/main/.claude/skills/curate-next/SKILL.md
Clone the repo
git clone --depth 1 https://github.com/monarch-initiative/dismech

Made for: Claude Code.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for curate-next

README.md
[![agentmods](https://agentmods.dev/badge/skills/monarch-initiative/dismech/curate-next/github.svg)](https://agentmods.dev/skills/monarch-initiative/dismech/curate-next)
Your own site
<a href="https://agentmods.dev/skills/monarch-initiative/dismech/curate-next"><img src="https://agentmods.dev/badge/skills/monarch-initiative/dismech/curate-next/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for curate-next

Your own site · 80×15
<a href="https://agentmods.dev/skills/monarch-initiative/dismech/curate-next"><img src="https://agentmods.dev/badge/skills/monarch-initiative/dismech/curate-next.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 73 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 3,322 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00073 $0.03322
Opus 5 $0.00036 $0.01661
Sonnet 5 $0.00015 $0.00664
Haiku 4.5 $0.00007 $0.00332

Measured 9d ago against content hash 8f5e5ab998e2, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-09, from the pricing page.

Security

Grade A, and why

curate-next scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 9d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

.claude/skills/curate-next/SKILL.md · 133 lines

How it starts

The opening of the file, as written. The whole thing — 133 lines — stays where its author put it; the contents beside it link to each section on GitHub.

curate-next

Curate the next N disease curation issues that are assigned solely to the current GitHub user and not yet covered by a PR. Dispatches /curate in parallel — one agent per disease.

When to use

  • "Curate my next 3 diseases"
  • "/curate-next 5"
  • "Take the next available curation assignments off my plate"

Skip when:

  • The user names a specific disease — invoke /curate <name> directly instead.
  • The user has no open curation assignments — invoke /claim-disease N first to file issues.
  • The user wants to claim and curate in one step — that's a /claim-disease then /curate-next chain, not this skill alone.

Inputs

  • Required positional argument N: number of diseases to curate in parallel. Must be a positive integer between 1 and 8 inclusive.
  • Invoked as /curate-next 3. If N is missing, non-integer, <= 0, or > 8, stop and ask the user to clarify rather than guess. The cap exists because each /curate flow is long-running and parallel sub-agents past 8 saturate the orchestrator's context.

Workflow

  1. Validate N. Parse the positional argument. Reject if missing, non-integer, <= 0, or > 8 — ask the user rather than silently capping. Never default to a value the user did not provide.
  2. Resolve the current GitHub user: USER=$(gh api user -q .login). Use that login as the assignee filter and never hardcode a username.
  3. Fetch open curation issues assigned to the user.
    gh issue list \
      --assignee @me \
      --state open \
      --label curation \
      --json number,title,assignees,body,createdAt \
      --limit 100
    
    The --label curation filter is what restricts to "new disease curation requests" — issues filed by /claim-disease carry the curation,enhancement labels and the title pattern Curate <label> (<MONDO_ID>). If a contributor opens curation issues with a different label, document it in this skill rather than relaxing the filter.
  4. Filter to sole-assignee issues. Drop any issue whose assignees array has more than one entry. The user explicitly wants solo work — an issue assigned to both alice and bob is a team task, even if the current user is alice. Do this filter in jq, not by hand:
    jq '[.[] | select((.assignees | length) == 1)]'
    
  5. Filter out issues with an existing PR. For each remaining issue number ISSUE_NUM, check the authoritative GitHub linkage on the issue itself:
    # Authoritative: PRs GitHub has linked via closes/fixes/resolves keywords
    # (this is the same data the issue's "Development" sidebar shows)
    gh issue view "${ISSUE_NUM}" --json closedByPullRequestsReferences \
      -q '.closedByPullRequestsReferences | length'
    
    Skip the issue if the count is non-zero. A merged PR usually means the issue should already be closed, but stale links happen — be conservative.

Read the full file on GitHub · 133 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 9d ago First seen · 133 lines · 73 tokens per session scan A 8f5e5ab998e2

Subscribe to this mod's changes

curate-next is a skill published in the GitHub repository monarch-initiative/dismech (59 stars, last pushed today), licensed BSD-3-Clause. It adds 73 tokens to every session and 3,322 once invoked, about $0.0004 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.