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 skills/eric-tramel/moraine/releasenpx skills add eric-tramel/moraine --skill releasegit clone --depth 1 https://github.com/eric-tramel/moraineWrote 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/eric-tramel/moraine/release)<a href="https://agentmods.dev/skills/eric-tramel/moraine/release"><img src="https://agentmods.dev/badge/skills/eric-tramel/moraine/release.svg" alt="Measured on agentmods" 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 | $0.00115 | $0.02465 |
| Opus 5 | $0.00057 | $0.01233 |
| Sonnet 5 | $0.00023 | $0.00493 |
| Haiku 4.5 | $0.00012 | $0.00247 |
Grade C, and why
release scanned grade C with 2 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 5d 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.
Downloads and executes remote codehighSupply chain
curl | sh runs whatever the server returns today, which is not necessarily what it returned when this was reviewed.
curl -fsSL -H 'Cache-Control: no-cache' https://pypi.org/pypi/moraine-cli/json | python3 -c 'import json,sys; d=json.load(sys.stdin); print(d["info"]["version"]); print(len(d["releases"].get("'"$VERSION"'", [])))' Makes network callslowCapability
Not a fault in itself. Listed so you know the mod talks to something, and to what.
- `curl -fsSL "https://pypi.org/pypi/moraine-cli/$VERSION/json"` fails. How it starts
The opening of the file, as written. The whole thing — 275 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Release
Run Moraine releases end to end with the shared moraine-dev contributor
workflow. Invoke it as $moraine-dev:release X.Y.Z in Codex or /release X.Y.Z in Kiro. Both forms mean: publish vX.Y.Z, not just prepare a plan.
Goal Contract
In Codex, make the release a durable goal before doing release work:
- If
create_goalis available and there is no active goal, call it with:Cut Moraine vX.Y.Z, including version bump PR, merged code, annotated repo tag, GitHub release notes, release workflow verification, and PyPI package verification. - If a goal already exists, continue inside it and keep it current with
update_plan. - Do not call
update_goal(status="complete")until all public release evidence exists: merged PR, pushed tag, successful workflow, GitHub release body/assets, and PyPImoraine-cliartifacts.
In Kiro, maintain an explicit checklist in the session. Do not mark the release complete until the same public release evidence exists.
Preconditions
Normalize the argument first:
X.Y.ZandvX.Y.Zboth meanVERSION=X.Y.ZandTAG=vX.Y.Z.- Refuse ambiguous input, missing versions, or a target older than the latest stable GitHub release.
Before editing:
- Read the active
AGENTS.md. - Use Moraine session search if available. Start broad, then narrow:
release process Moraine PyPI GitHub tagv0.5.4 release workflow pypi release notespackage-moraine-release release-moraine gh release edit
- Inspect
.github/workflows/release-moraine.yml. - Read
.claude/skills/release-notes/SKILL.mdonly as the house-format reference for the GitHub release body. - Verify tooling:
gh auth statusgit fetch origin --prune --tagsgh repo view --json nameWithOwner,defaultBranchRef,url
- Prove the target is unused:
git tag --list "$TAG"returns nothing.gh release view "$TAG"fails with not found.curl -fsSL "https://pypi.org/pypi/moraine-cli/$VERSION/json"fails.
What ships with it
3 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
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.
- 5d ago First seen · 275 lines · 115 tokens per session scan C 8fdfc033ab40
release is a skill published in the GitHub repository eric-tramel/moraine (116 stars, last pushed 18d ago), licensed Apache-2.0. It adds 115 tokens to every session and 2,465 once invoked, about $0.0006 per session on Opus 5. A static security scan graded it C with 2 findings (downloads and executes remote code, makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
agent-framework-py-release
Use when cutting a Python release for the microsoft/agent-framework monorepo. Triggers on "bump py versions", "cut a python release", "prepare release PR for python", "release py packages", "bump python to X.Y.Z", or similar requests to bump Python package versions and prepare a release PR. Handles all four lifecycle…
release-notes
Create release notes for a new version tag. Gathers all commits, PRs, issues fixed, and breaking changes since a previous release. Creates the release notes markdown file, tags the repo, and pushes. Asks the user to confirm the base version to diff against.
create-milestone
Create a GitHub milestone for an upcoming release. Suggests the next version based on the latest release, gathers all merged PRs and closed issues since that release, presents a draft with two tables (Issues and PRs) for user approval, then creates the milestone and assigns all approved items.
github-repo-management
Clone, create, fork repos; manage remotes, releases.
web-search
网络搜索和信息检索技能。用于搜索网页、查询实时信息、获取新闻资讯。当用户询问需要联网查询的问题、最新信息或实时数据时使用。.
release-check
Pre-release checklist for Forge — verify, version bump, changelog, docs, docker build, smoke test. Run before tagging v.