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.
npx agentmods add commands/marcusgoll/spec-flow/releasegit clone --depth 1 https://github.com/marcusgoll/Spec-FlowWhat 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 | $0.00027 | $0.03186 |
| Opus 5 | $0.00014 | $0.01593 |
| Sonnet 5 | $0.00005 | $0.00637 |
| Haiku 4.5 | $0.00003 | $0.00319 |
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 2d 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 — 331 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Current branch: !git branch --show-current
Current version: !node -p "require('./package.json').version" 2>/dev/null || echo "unknown"
Last git tag: !git describe --tags --abbrev=0 2>/dev/null || echo "none"
npm authentication: !npm whoami 2>/dev/null && echo "✅ Authenticated" || echo "❌ Not authenticated"
GitHub authentication: !gh auth status >/dev/null 2>&1 && echo "✅ Authenticated" || echo "❌ Not authenticated"
Git remote configured: !git remote -v | grep -q origin && echo "✅ Configured" || echo "❌ Not configured"
Recent commits (last 10): !git log -10 --pretty=format:"%s" 2>/dev/null || echo "No commits found"
README.md Recent Updates (first 50 lines): !grep -A 50 "## 🆕 Recent Updates" README.md | head -50 2>/dev/null || echo "Section not found"
What it does:
- Pre-flight checks (git, npm, CI status)
- Version bump detection (conventional commits → MAJOR, MINOR, PATCH)
- Build validation (dist/ directory with BUILD_REPORT.md)
- File updates (package.json, CHANGELOG.md, README.md Recent Updates)
- Git operations (commit, tag, push)
- GitHub Release creation with CHANGELOG notes
- npm package publishing
- Optional X (Twitter) announcement
README.md updates include:
- New version section in "Recent Updates" (extracted from CHANGELOG)
- Feature highlights and breaking changes
- Version badge updates for major releases
- Chronological ordering (newest at top)
Operating constraints:
- INTERNAL USE ONLY — For Spec-Flow workflow development only
- Pre-flight Blockers — 5 checks must pass (git remote, main branch, clean tree, npm auth, CI status)
- Build Validation — dist/BUILD_REPORT.md must exist (v6.12.0+)
- Conventional Commits — Version bump follows semantic versioning rules
- Git Safety — Never force push, always verify remote before push
Dependencies:
- Git repository with remote configured
- On main branch with clean working tree
- npm authentication configured (npm whoami)
- GitHub CLI authenticated (gh auth status)
- CI passing on latest commit
- Build system configured (npm run build)
If any check fails: Display specific error and exit. User must fix issue before releasing.
-
Detect version bump using conventional commits:
- Get current version from package.json
- Get last git tag (or v0.0.0 if none)
- Analyze commits since last tag:
- MAJOR: Any commit with "BREAKING CHANGE:" or "!" after type
- MINOR: Any commit with "feat:" prefix
- PATCH: Any commit with "fix:", "docs:", "chore:", "refactor:", "test:"
- Calculate new version (e.g., 6.11.0 → 6.12.0 for MINOR bump)
-
Run build system:
npm run build- Validate dist/ directory created
- Verify BUILD_REPORT.md exists in dist/
- If build fails: Display error and exit
-
Update package.json:
- Load current package.json
- Update version field to new version
- Write back with proper formatting (2-space indent + newline)
-
Update CHANGELOG.md:
- Read current CHANGELOG.md
- Extract commits since last tag grouped by type (Features, Fixes, Docs, Chores)
- Insert new version section under ## [Unreleased]:
## [X.Y.Z] - YYYY-MM-DD ### Features - feat: description (commit hash) ### Fixes - fix: description (commit hash) - Write updated CHANGELOG.md
-
Update README.md:
- Recent Updates section: Insert new version under "🆕 Recent Updates"
- Extract version, date, and highlights from CHANGELOG.md
- Create formatted section with version number, date, and bullet points
- Insert at top of Recent Updates (push older versions down)
- Format:
### vX.Y.Z (Month YYYY)+ feature highlights
- Version badges: Update npm version badge if major version change
- Breaking changes note: Add breaking changes section if MAJOR bump
- Keep existing releases: Preserve all existing version entries
- Example update:
## 🆕 Recent Updates ### v10.0.0 (November 2025) **Git Worktrees & Perpetual Learning** - Parallel development and self-improving workflows - **Git Worktrees**: Enable multiple Claude Code instances on different epics/features - Automatic worktree creation per epic/feature - Shared memory linking for cross-worktree observability - Automatic cleanup after /finalize - **Perpetual Learning System**: Continuously improve workflow efficiency - Performance pattern detection (auto-applied optimizations) - Anti-pattern detection (failure prevention) - Custom abbreviation learning (project terminology) - CLAUDE.md optimization (system prompt improvements with approval) - **NPM Update Protection**: Learnings persist across package updates via migration system **Breaking Changes**: - None (backwards compatible with v9.x.x) --- ### v9.4.0 (November 2025) ...
- Recent Updates section: Insert new version under "🆕 Recent Updates"
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.
- 2d ago First seen · 331 lines · 0 tokens per session scan A c465e2a6fa2c
release is a command published in the GitHub repository marcusgoll/Spec-Flow (91 stars, last pushed 4mo ago), licensed MIT. It adds 27 tokens to every session and 3,186 once invoked, about $0.0001 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.
Other commands, from other repositories
release
Execute full version release — merge PRs, version bump, tag, GitHub Release, sync branches, cleanup.
release-notes
Generate release notes from git history — maintain a Keep a Changelog CHANGELOG.md entry and emit a user-facing release body, without deciding versions or mutating git state.
release
Cut a release for one plugin, or for every plugin with changes worth releasing.
sprint-close
Fecha a sprint ativa — atualiza changelog e session log, checa a DoD e prepara a tag. Use ao dizer "fecha a sprint" ou "terminei essa etapa".
OPSX: Archive
Archive a completed change in the experimental workflow.
r-ship
Use when a plan is built and verified and you want to cut a release: preflight, verification, release prep, and publish.