harborclerk: Skill for Claude Code

.claude/skills/model-refresh/SKILL.md

model-refresh is a skill for Claude Code from r0shi/harborclerk. It costs 78 tokens per session (2,161 once invoked), scanned A, original, MIT.

A scheduled research workflow for finding and reviewing local AI models on Hugging Face Hub, a website hosting machine-learning models. It produces a dated report and does not change the model registry or run evaluations without approval.

In plain words
What is it for?
Use it to survey new model families, check the curated registry and llama.cpp version, rank candidates, and prepare a pull request for approved updates.
Why use it?
It separates model research from registry edits and GPU benchmarking, so an owner can review candidates before changes or spending occur.

Skill for Claude Code

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

This is r0shi/harborclerk's own configuration. It tells Claude Code how to work on harborclerk 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 harborclerk configures →

Reuse

Borrowing it

Nothing to install: this file belongs to r0shi/harborclerk. 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/r0shi/harborclerk/main/.claude/skills/model-refresh/SKILL.md
Clone the repo
git clone --depth 1 https://github.com/r0shi/harborclerk

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 model-refresh

README.md
[![agentmods](https://agentmods.dev/badge/skills/r0shi/harborclerk/model-refresh/github.svg)](https://agentmods.dev/skills/r0shi/harborclerk/model-refresh)
Your own site
<a href="https://agentmods.dev/skills/r0shi/harborclerk/model-refresh"><img src="https://agentmods.dev/badge/skills/r0shi/harborclerk/model-refresh/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 model-refresh

Your own site · 80×15
<a href="https://agentmods.dev/skills/r0shi/harborclerk/model-refresh"><img src="https://agentmods.dev/badge/skills/r0shi/harborclerk/model-refresh.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 78 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 2,161 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.00078 $0.02161
Opus 5.5 $0.00031 $0.00864
Sonnet 5.5 $0.00016 $0.00432
Haiku 4.5 $0.00008 $0.00216

Measured 1mo ago against content hash 1adf9ea49f0d, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade A, and why

model-refresh 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 1mo 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/model-refresh/SKILL.md · 129 lines

How it starts

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

Model refresh

Three stages with a human gate between each. This skill runs stage 1 end to end and prepares stages 2 and 3; it never changes the registry or runs an eval on its own. All commands run from the repository root.

Stage What Cost Gate
1. Research Facts from the Hub and GitHub, screened and ranked by policy; a dated report minutes, no spend, read-only the owner reads the report
2. Implement Registry, pin and docs changes for the chosen candidates, as a PR an hour CI, unprimed review, owner approval
3. Evaluate The benchmark loop on the mini, within the cloud-spend cap (ADR 0001) hours of GPU, capped USD the owner decides promote / keep / retire

Stage 1: research

  1. The loop's state is in the reports: each ends with a versioned State block recording what the run was given, what it examined, what it left out by name or task, and what it could not settle. With no flags the tool finds the newest docs/reports/*-model-survey-*.md and follows it:
    • the window opens 30 days before that report, because the Hub dates a repo by its creation and vendors publish days after creating (Gemma 3: eleven); what earlier runs examined is skipped, so nothing is ranked twice. A repo made public more than 30 days after it was created is still missed;
    • every release listed under May pass later (no trusted GGUF yet, an architecture llama.cpp cannot load yet, a template or context a publisher may fix) or Over the per-vendor cap is examined again however old;
    • a vendor it did not watch gets a first-run window of 90 days, so adding an org to the watchlist surveys that org's recent past. A first run uses 90 days. The state is the report in this checkout, not the one on main. Merge last week's report PR before this week's run and run from a checkout of fresh origin/main. If the followed report is not on origin/main (its PR is still open, or a closed PR left the file behind) the run still follows it, and its header says so with a ⚠: decide whether that is what you want before publishing. A release that cannot be read for a run, from the window or the carried list, is named in the report and carried to the next run; it is not dropped and not logged as examined. With HF_TOKEN set, a 401 makes the tool check the token once: a rejected token ends the run, a good one leaves the 401 to mean the repo is absent. A re-run after a fix to the policy or a rule replaces the report instead of following it. It repeats that report's inputs exactly (window, carried releases, known vendors), so nothing it found is lost. A report dated today is replaced automatically; on a later day pass --redo. Withdraw the replaced report in the same PR. If the previous report has no state block this tool can read, the run stops; --since opens a fresh window and the report says nothing was carried.
  2. Run it. The cache makes a re-run free for six hours; HF_TOKEN, if the environment has one, raises the Hub's rate limit and is never stored. A rejected token or a failed listing ends the run with an error; it never produces an empty report. A run makes a few hundred requests, paced under the Hub's limit, so it takes several minutes.
    RUN=$(date -u +%Y%m%d-%H%M)
    uv run python -m scripts.model_survey --out docs/reports/ --run-id $RUN \
      --json "${TMPDIR:-/tmp}/$RUN.json" --cache "${TMPDIR:-/tmp}/hc-model-survey-cache-$(id -u)"
    
    The per-vendor cap defers, it does not drop: what was over the cap is examined by the next run, all of it, so a vendor that publishes dozens of eligible repos at once makes that run longer. It prints the window it chose and the report path. It refuses to overwrite: one file per run. Read the header's Coverage line: what was left out by name, by task or by the per-vendor cap is listed at the end of the report, with a count per vendor, and a ⚠ there is something to act on (a vendor that lists nothing was renamed; a listing that does not reach the window needs a narrower window).
  3. Read the whole report, then write its Reading section. That section is the only part a person writes; everything below it is generated. It states:
    • the headline: the top candidate and why it ranks there, in one paragraph;
    • for each curated tier, the size-matched successor and whether the swap is mechanical (same family and architecture, the pin already loads it) or needs evaluation (new family, new architecture, a llama.cpp upgrade);
    • what the curated-set audit found that is simply wrong (a context window below the GGUF's, a stale publisher) and can be fixed without an eval;
    • whether the llama.cpp pin blocks anything in the ranking;
    • what is carried forward: candidates on the tracking issue (#551) that nobody has evaluated yet. The window only finds what is new, so an open candidate from an earlier survey disappears unless the Reading names it;
    • what was not verified. No model is run in this stage: tool-calling behaviour under llama-server, French quality, throughput on the mini and every vendor benchmark are unverified until stage 3, and the Reading says so. Judgement the script cannot make and the Reading must: a dense model decodes at roughly memory-bandwidth / file-size tokens per second, so a dense 27B at 16 GB is several times slower on the mini than a 35B mixture-of-experts with 3B active; a coding, GUI-agent or world model is not a document-research model whatever its name or popularity; a third-party distill is not a vendor release.
  4. If a ranking looks wrong, fix the policy (scripts/model_survey/watchlist.yaml) or the rule (screen.py, with a test), not the report, then run again (step 1 explains which window that run gets). A new vendor seen under "Trending outside the watchlist" is added to the watchlist only after its model card has been read; popularity alone is not a reason. A ⚠ about a vendor that lists nothing means the org was renamed: fix the watchlist.
  5. Publish as the machine user, from a scratch worktree, exactly as the acceptance skill's "Publish" section does: branch from fresh origin/main, add the one report file (and any policy change), commit as John-Doebot with commit.gpgsign=false, push through the inline Keychain credential helper, open the PR with --body-file. The body repeats the Reading's headline and lists the mechanical fixes and the evaluation candidates separately.
  6. Comment on the standing tracking issue (#551) with the headline and a link to the report, so the queue and the evidence stay together.

Read the full file on GitHub · 129 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. 1mo ago Changed 1adf9ea49f0d
  2. 1mo ago First seen · 129 lines · 78 tokens per session scan A 2032d43aa4ca

Subscribe to this mod's changes

model-refresh is a skill published in the GitHub repository r0shi/harborclerk (3 stars, last pushed 2d ago), licensed MIT. It adds 78 tokens to every session and 2,161 once invoked, about $0.0003 per session on Opus 5.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-09-19.

Related

model-refresh compared with skills from other repositories

model-refresh next to 6 skills from other repositories
ModTypeStarsLast pushLicenceScanTokensWorks with
model-refreshr0shi/harborclerkSkill32d agoMITA78Claude Code
memobasemaximskorohod/memobaseSkill2217d agoMITA25Claude Code, Codex
run-llmsav/harborSkill3.3k6d agoApache-2.0A114Claude Code, Codex
harborav/harborSkill3.3k6d agoApache-2.0A114Claude Code
rag-knowledgevstorm-co/full-stack-ai-agent-templateSkill2.0k7d agoMITA76Claude Code
gnogmickel/gnoSkill1174d agoMITA86Claude Code
difyznlgis/opengis-skillsSkill7610d agoMITA115Claude Code, Codex