eric-tramel/moraine/release
Claude Code and agent skill by eric-tramel/moraine
- community
Checking that the SKILL.md file is still in the repository.
Cut and publish Moraine releases from a version argument such as /release X.Y.Z in Kiro or a request to use $moraine-dev:release in Codex. Use when Codex or Kiro is asked to run Moraine's release process, bump release-managed versions, create and merge the release PR, push the vX.Y.Z tag, update GitHub release notes for a general audience, verify the release-moraine workflow, and confirm the PyPI moraine-cli package. In Codex, start or continue a durable goal for the release.
Install
npx vskill@latest install eric-tramel/moraine/releaseSKILL.md
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 PyPI moraine-cli artifacts.
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.
Branch And Context
Do release edits in a dedicated worktree from fresh origin/main unless the user explicitly says otherwise. Set branch using the current harness's convention:
| Harness | Branch value | |
|---|---|---|
| Codex | codex/release-$TAG | |
| Kiro | kiro/release-$TAG |
Gather the changes since the previous stable release:
Read PR bodies for user-visible changes. Release notes should explain what a user can do or what is fixed, not just repeat commit titles.
Version Bump
Run the bundled bump script from the release worktree root:
Then inspect the diff. Expected version-only files are normally:
Cargo.lockbindings/python/moraine_conversations/Cargo.lockpath-dependency entries- release-managed
apps/*/Cargo.toml - release-managed
crates/*/Cargo.toml .github/workflows/release-moraine.ymlexample tag, if it still contains
the old tag
plugins/moraine/.claude-plugin/plugin.jsonplugins/moraine/.codex-plugin/plugin.json- install docs only if they contain an explicit
MORAINE_INSTALL_VERSION
example for the old tag
Do not bump the package version in bindings/python/moraine_conversations/Cargo.toml; it is a separate internal Python extension package. Its lockfile must still track the release-managed path dependencies.
Validation
Always run:
Use $moraine-dev:moraine-sandbox-qa in Codex or /moraine-sandbox-qa in Kiro when the release includes ingest, MCP, monitor, ClickHouse schema, source-format, or stack-behavior changes since the previous tag. If that workflow is unavailable, follow the dev sandbox commands required by AGENTS.md: capture the sandbox id with --quiet, run focused checks inside it, and tear it down before reporting completion.
Typical sandbox checks:
If moraine-mcp-core or the MCP tool surface changed, run the strongest available MCP smoke test. Prefer scripts/dev/sandbox/agent-smoke-e2e when its API key prerequisites are present; otherwise run focused MCP crate tests and the project smoke tests that are available.
Release PR
Create a focused release commit:
Open a PR to main titled chore(release): cut $TAG. The PR body must include:
- what version was bumped,
- a concise user-facing summary of changes since
prev_tag, - validation commands and outcomes,
- operational impact: tag push will run
release-moraineand publish PyPI.
Wait for required checks. Merge only when checks pass. Use the repo's normal merge style, then fetch origin/main and verify the merge commit:
Stop before tagging if the PR is not merged into main.
Tag And Workflow
Tag the merge commit on origin/main with an annotated tag:
Then wait for the tag-triggered workflow:
The tag-triggered publish-pypi job publishes moraine-cli to PyPI automatically. Manual dispatches default to skip and are not the normal release path.
GitHub Release Notes
Edit the GitHub release body only after the workflow has completed. Matrix jobs can rewrite generated notes while they upload assets.
Use the house format from .claude/skills/release-notes/SKILL.md, adapted to the release size:
- Patch release: concise headline, what was fixed, upgrade note only if needed,
changelog at the bottom.
- Feature release: install block, "What's new", "Under the hood", platform
support only if it changed, upgrade notes if needed, changelog at the bottom.
- Always dedupe generated changelog blocks. Keep exactly one
Full Changelog
compare link.
Write for a general Moraine user. Prefer "Moraine now..." and "You can..." over implementation-first phrasing. Link PRs the first time they are mentioned.
Publish with:
Verify:
Expect six GitHub release assets: three platform bundles and three checksum files, unless the workflow has intentionally changed.
PyPI Verification
Verify the version-specific endpoint, the simple index, aggregate metadata, and an install smoke:
Expected PyPI files are three wheels plus the stub sdist. PyPI metadata can lag for a short time; retry with no-cache headers before declaring failure.
Stop Conditions
Stop and report clearly if:
- target tag or PyPI version already exists,
ghis unavailable or unauthenticated,- version bump diff touches unexpected files,
- validation fails,
- the release PR cannot be merged,
- the tag workflow fails,
- the GitHub release is missing assets,
- PyPI does not publish the expected files after reasonable retries.
If a tag has already been pushed, do not delete or recreate it without explicit user instruction.
Final Report
End with the concrete public evidence:
- merged release PR URL,
- tag and tagged commit,
- release workflow run URL and conclusion,
- GitHub release URL and asset count,
- PyPI version URL and file count,
uvxsmoke output,- the final general-audience release notes section or a concise excerpt plus
the release link.
Security
- Security scanPassed, 100 of 100Pattern checks on the skill's files.
- Model reviewNot runA model review is scheduled for the next rescan.
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingplugins/moraine-dev/skills/release/SKILL.md
Popularity
- Repository stars
- 111
- Repository forks
- 21
- 7-day trend score
- 24
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/eric-tramel/moraine/release)