Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
git clone --depth 1 https://github.com/justinjdev/fellowshipWrote 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/commands/justinjdev/fellowship/release)<a href="https://agentmods.dev/commands/justinjdev/fellowship/release"><img src="https://agentmods.dev/badge/commands/justinjdev/fellowship/release/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/commands/justinjdev/fellowship/release"><img src="https://agentmods.dev/badge/commands/justinjdev/fellowship/release.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.00025 | $0.00698 |
| Opus 5.5 | $0.00010 | $0.00279 |
| Sonnet 5.5 | $0.00005 | $0.00140 |
| Haiku 4.5 | $0.00003 | $0.00070 |
Grade A, and why
release 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.
How it starts
The opening of the file, as written. The whole thing — 92 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Release
Automates the full release process for fellowship.
Step 1: Determine Version
Read the current version from .claude-plugin/plugin.json.
Analyze commits since the last tag (git log $(git describe --tags --abbrev=0)..HEAD --oneline --no-merges) and suggest a version based on conventional commit types:
- feat: → minor bump
- fix: only → patch bump
- Breaking changes → minor bump (pre-1.0: major)
Present the suggestion and ask the user to confirm or override:
Current version: X.Y.Z
Commits since last tag: N
Suggested next version: X.Y.Z (reason)
Enter version to release (or confirm suggested):
Use AskUserQuestion with the suggested version as default and a free-text option.
Step 2: Validate Docs
Invoke the validate-docs skill using the Skill tool. Review any flagged issues and ask the user whether to fix them now or proceed anyway.
If fixing: make the updates before continuing. Renaming an "Unreleased" changelog section to the new version is handled in Step 3 below — skip that specific fix here.
If proceeding with known issues: record which checks had findings. These will be surfaced as warnings in the Step 6 summary instead of checkmarks.
Step 3: Bump Version
Update the version string in .claude-plugin/plugin.json.
If the site changelog has an "Unreleased" section, rename it to the new version with the standard format:
<section class="version" id="v{version-dashed}">
<h2 class="version-heading"><a href="{base}/changelog#v{version-dashed}">v{version}</a></h2>
Also update the HTML comment above it from <!-- unreleased --> to <!-- v{version} -->.
Step 4: Commit, Tag, Push
git add -A
git commit -m "chore: release v{version}"
git tag v{version}
git push && git push --tags
Verify the push succeeded. If it fails, stop and report.
Step 5: Update Marketplace
Read ~/git/claude-plugins/.claude-plugin/marketplace.json. Update the fellowship plugin's version field to the new version.
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.
- 1mo ago First seen · 92 lines · 25 tokens per session scan A af12c3020a0e
release is a command published in the GitHub repository justinjdev/fellowship (5 stars, last pushed 13d ago), licensed Apache-2.0. It adds 25 tokens to every session and 698 once invoked, about $0.0001 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-08-31.
Other commands, from other repositories
ship
Ship workflow — detect base branch, merge, run tests, review diff, bump VERSION, update CHANGELOG, commit, push, create PR.
document-release
Post-ship documentation update — reads all project docs, cross-references the diff, updates README/ARCHITECTURE/CONTRIBUTING/CLAUDE.md to match what shipped.
release
Release manager for frontend and mobile. Writes App Store notes, user-facing changelog, flags stale docs and landing copy. Actions: notes | changelog | docs | sync.
close-track
Close a completed track — run quality gate, update conductor state, commit, and optionally handle the git branch.
finishing-a-development-branch
Complete development work — verify tests, push branch, create PR.
release
Release the plugin — bump version across 4 files, then optionally commit, tag, push, and create a GitHub Release.