Getting it into your agent
This one installs as part of its plugin. Adding the marketplace and installing the plugin brings it with everything else the plugin ships.
/plugin marketplace add stellarshenson/claude-code-plugins/plugin install project-managementWrote 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.
[](https://agentmods.dev/skills/stellarshenson/claude-code-plugins/upgrade)<a href="https://agentmods.dev/skills/stellarshenson/claude-code-plugins/upgrade"><img src="https://agentmods.dev/badge/skills/stellarshenson/claude-code-plugins/upgrade/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.
<a href="https://agentmods.dev/skills/stellarshenson/claude-code-plugins/upgrade"><img src="https://agentmods.dev/badge/skills/stellarshenson/claude-code-plugins/upgrade.svg" alt="Reviewed on agentmods" width="80" height="20"></a>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.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00047 | $0.00910 |
| Opus 5.5 | $0.00019 | $0.00364 |
| Sonnet 5.5 | $0.00009 | $0.00182 |
| Haiku 4.5 | $0.00005 | $0.00091 |
Grade A, and why
upgrade 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 20d 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.
How it starts
The opening of the file, as written. The whole thing — 37 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Upgrade
Read the project-management skill first for the target schema, then skills/project-management/references/upgrade.md - it is the single source of truth for the upgrade order and what the dry run refuses to guess. Do NOT duplicate either here.
Toolchain gate (MANDATORY - run before anything else)
Run this first, every session, before any other work. The upgrade always runs; a version mismatch blocks.
python3 -m pip install --user --upgrade stellars-claude-code-plugins 2>&1 | tail -1
LIB=$(python3 -c "import importlib.metadata as m;print(m.version('stellars-claude-code-plugins'))" 2>/dev/null) || { echo "FATAL: toolkit unavailable"; exit 1; }
PLUG=$(grep -m1 '"version"' "${CLAUDE_PLUGIN_ROOT}/.claude-plugin/plugin.json" 2>/dev/null | cut -d'"' -f4)
OLDER=$(printf '%s\n%s\n' "$LIB" "$PLUG" | sort -V | head -1)
[ -n "$PLUG" ] && [ "$LIB" != "$PLUG" ] && [ "$OLDER" = "$LIB" ] && { echo "STALE: library $LIB older than plugin $PLUG - refusing to run on an outdated CLI; re-run the upgrade"; exit 1; }
echo "toolkit $LIB"
Run the CLI without touching the caller's project. The gate above puts it on PATH, so the bare command name is the whole invocation. uv run instead resolves whatever project the working directory sits in and writes uv.lock and .venv into it, so if you reach for uv pass --no-project (uv run --no-project <cli> ...) - it skips project discovery, leaves the tree untouched and still finds the same PATH binary. --no-sync and --frozen are not substitutes; both still create .venv.
Both branches exit non-zero and neither is advisory: an absent library (FATAL) and a version mismatch (STALE). A mismatch means the CLI is not the one this file was written against, so its documented flags and rules are unverified. Report the line and stop; do not work around it.
What to do
- Read the
project-managementskill, thenskills/project-management/references/upgrade.md, and follow that file's numbered order literally - Roster first -
pm-tools author FILE --handle @xx --name "Full Name"; nothing else runs until a handle exists - Dry run before anything is written -
pm-tools upgrade FILEprints the plan and theHINTlines, and writes nothing - Apply with
--author-pm-tools upgrade FILE --author @xx --apply. It always applies every safe rewrite (ids, codes, stamps, severity and test-tag canonicalisation, the Contents drop) and exits 0; every content problem prints as aHINTcarrying the exact command to run. A missing roster or--authoris a hint too - everything needing no signature still lands - Run every hinted command - the hints are the work. Rate every unrated criterion yourself with the hinted
pm-tools edit ... --importance ...against the rubric inskills/project-management/references/acceptance-criteria.md, and triage every untriaged defect withedit ... --severity ...againstskills/project-management/references/defect-tracking.md; never ask the user and never skip one - both arecheckerrors, so the gate stays red until done - Describe every category - the tool never invents a description
- Gate -
pm-tools check FILEmust exit 0, and--strictonce the per-item hints and tags are filled. That fill can take several passes on a large file; they are warnings, not errors
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.
- 20d ago Changed 40b02a66dcca
- 1mo ago First seen · 37 lines · 47 tokens per session scan A eb1c51a54f83
upgrade is a skill published in the GitHub repository stellarshenson/claude-code-plugins (4 stars, last pushed today), licensed MIT. It adds 47 tokens to every session and 910 once invoked, about $0.0002 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-05.
Other skills, from other repositories
story-readiness
Is a story implementation-ready? Checks clear acceptance criteria, open questions, ADR refs. READY/NEEDS WORK/BLOCKED/NOT ASSESSED.
recipe-create-meet-space
Create a Google Meet meeting space and share the join link.
atmos-config
Atmos root configuration: atmos.yaml discovery, precedence, deep merging, basepath, imports, minimal bootstrap, and routing to narrower Atmos skills.
workthreads
SpecStory Workthreads - a weekly work-thread rollup across a team's repos from SpecStory coding histories (any agent - Claude Code, Codex, Cursor, Gemini, and more). It groups the window's sessions into threads of work per project and labels each new / open / recently closed, so a lead sees what shipped, what is still…
projects
List all managed projects with status, branch, open PRs, and open issue counts — portfolio-level view.
remove
Remove a deployed framework or addon from the current workspace.