terminal-bench-science: Skill for Claude Code

.claude/skills/review-task/SKILL.md

review-task is a skill for Claude Code from harbor-framework/terminal-bench-science. It costs 26 tokens per session (11,551 once invoked), scanned A, original, Apache-2.0.

A review workflow for benchmark-task pull requests, which are proposed code changes on GitHub evaluated against a set of requirements.

In plain words
What is it for?
Use it to download review artifacts, compare a task with its evaluation rubric, launch the Harbor viewing tool, and conduct an interactive review.
Why use it?
It gathers the files and tools needed for review in one process, so you do not have to inspect the pull request and its artifacts manually.

Skill for Claude Code

Written for Claude Code: allowed-tools in frontmatter. Also seen: positional $N argument.

This is harbor-framework/terminal-bench-science's own configuration. It tells Claude Code how to work on terminal-bench-science 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 terminal-bench-science configures →

Needs its repository: it runs a file that does not travel with it, so clone the repository first. The line is docker run --rm -v "$J/artifacts/<sub-path>:<path-test.sh-expects>:ro" rv-<task> bash /tests/test.sh.

Reuse

Borrowing it

Nothing to install: this file belongs to harbor-framework/terminal-bench-science. 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/harbor-framework/terminal-bench-science/main/.claude/skills/review-task/SKILL.md
Clone the repo
git clone --depth 1 https://github.com/harbor-framework/terminal-bench-science

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 review-task

README.md
[![agentmods](https://agentmods.dev/badge/skills/harbor-framework/terminal-bench-science/review-task.svg)](https://agentmods.dev/skills/harbor-framework/terminal-bench-science/review-task)
Your own site
<a href="https://agentmods.dev/skills/harbor-framework/terminal-bench-science/review-task"><img src="https://agentmods.dev/badge/skills/harbor-framework/terminal-bench-science/review-task.svg" alt="Measured on agentmods" height="20"></a>
Per session 26 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 11,551 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 1 finding. Scan, not verified.
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.00026 $0.11551
Opus 5 $0.00013 $0.05776
Sonnet 5 $0.00005 $0.02310
Haiku 4.5 $0.00003 $0.01155

Measured 7d ago against content hash 216d176b696a, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-06, from the pricing page.

Security

Grade A, and why

review-task scanned grade A with 1 finding 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 7d 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.

Makes network callslowCapability

Not a fault in itself. Listed so you know the mod talks to something, and to what.

grep -rnIiE 'https?://|snapshot_download|hf_hub_download|hf +download|load_dataset|wget|curl|git clone|torch\.hub\.load|from_pretrained|pretrained=True|s3://|gs://|zenodo|figshare|dropbox|drive\.google' \
.claude/skills/review-task/SKILL.md · 864 lines

How it starts

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

Review a benchmark task PR end-to-end. This skill downloads all artifacts, analyzes the task against the rubric, launches harbor view, and enters interactive review mode.

Prerequisites: gh CLI (authenticated), harbor CLI, jq. Run this from within your local clone of the benchmark repo.

Phase 0: Parse PR URL and Detect Repo

Parse the PR URL from $ARGUMENTS (strip trailing slash and any anchor/path suffixes after the PR number). Extract OWNER, REPO, PR_NUM.

Detect the local repo context from the current working directory.

Run a single Bash call:

# Parse PR URL — strip trailing slash and anything after pull/NN
PR_URL=$(echo "$ARGUMENTS" | sed 's|/changes.*||; s|/files.*||; s|/commits.*||; s|/*$||')
OWNER=$(echo "$PR_URL" | sed 's|https://github.com/\([^/]*\)/.*|\1|')
REPO_NAME=$(echo "$PR_URL" | sed 's|https://github.com/[^/]*/\([^/]*\)/.*|\1|')
PR_NUM=$(echo "$PR_URL" | sed 's|.*/pull/\([0-9]*\).*|\1|')
FULL_REPO="$OWNER/$REPO_NAME"

# Detect local repo
REPO_ROOT=$(git rev-parse --show-toplevel)
LOCAL_REPO=$(git remote get-url origin | sed 's|.*github.com[:/]\(.*\)\.git$|\1|; s|.*github.com[:/]\(.*\)$|\1|')

echo "PR: $FULL_REPO#$PR_NUM"
echo "Local repo: $LOCAL_REPO (at $REPO_ROOT)"

# Get PR metadata
gh api "repos/$FULL_REPO/pulls/$PR_NUM" --jq '{title: .title, headRef: .head.ref, headSha: .head.sha, baseRef: .base.ref, state: .state}'

# Detect task name from changed files
gh api "repos/$FULL_REPO/pulls/$PR_NUM/files" --paginate --jq '.[].filename' | grep '^tasks/' | head -20

From the files list, extract the task name (the directory under tasks/). Set TASK_NAME and REVIEW_DIR=$REPO_ROOT/../review-$TASK_NAME. Also save PR_TITLE from the metadata call above.

Save all these variables — you will need them throughout.

Every artifact this review produces must be identifiable on sight, because several reviews are usually open at once and their worktrees, viewers, and summaries all look alike. Carry #$PR_NUM — $PR_TITLE into the review summary's H1, the opening line of the summary you present to the user in Phase 11, and any top-level PR comment drafted in Phase 12. Never identify a review by task name alone: the same task is re-reviewed across follow-up PRs (a fix PR and its original merge share a task name and nothing else).

In the summary's H1, make the PR reference a clickable markdown link to $PR_URL — the summary is opened in a markdown viewer detached from this session, so the link is the only way back to the PR from the artifact. Keep the link text to the PR #<n> token so the title still reads as a title:

# Task Review: <task-name> — [PR #<pr-num>](<pr-url>): <pr-title>

Read the full file on GitHub · 864 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. 7d ago First seen · 864 lines · 26 tokens per session scan A 216d176b696a

Subscribe to this mod's changes

review-task is a skill published in the GitHub repository harbor-framework/terminal-bench-science (530 stars, last pushed today), licensed Apache-2.0. It adds 26 tokens to every session and 11,551 once invoked, about $0.0001 per session on Opus 5. A static security scan graded it A with 1 finding (makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.