agent-smoke-e2e
End-to-end smoke check of the moraine MCP server. Exercises the public retrieval workflow against a live moraine stack and prints…
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
$ npx -y skills add eric-tramel/moraine --skill release --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/releaseContext preview
The summary Claude sees to decide when to auto-load this skill.
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
name: release description: 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.
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.
In Codex, make the release a durable goal before doing release work:
`Cut Moraine vX.Y.Z, including version bump PR, merged code, annotated repo tag, GitHub release notes, release workflow verification, and PyPI package verification.`
`update_plan`.
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.
Normalize the argument first:
stable GitHub release.
Before editing:
1. Read the active `AGENTS.md`. 2. Use Moraine session search if available. Start broad, then narrow:
3. Inspect `.github/workflows/release-moraine.yml`. 4. Read `.claude/skills/release-notes/SKILL.md` only as the house-format reference for the GitHub release body. 5. Verify tooling:
6. Prove the target is unused:
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` |
worktree_root="${MORAINE_WORKTREE_ROOT:-../moraine-worktrees}"
mkdir -p "$worktree_root"
git worktree add -b "$branch" "$worktree_root/release-$TAG" origin/mainGather the changes since the previous stable release:
prev_tag="$(gh release list --limit 20 --json tagName,isDraft,isPrerelease -q \ '[.[] | select(.isDraft==false and .isPrerelease==false) | .tagName] | .[0]')" git log --oneline --decorate "$prev_tag"..origin/main gh pr list --state merged --base main --limit 50 \ --json number,title,url,mergedAt,body
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.
Run the bundled bump script from the release worktree root:
python3 plugins/moraine-dev/skills/release/scripts/bump-version.py "$VERSION"
Then inspect the diff. Expected version-only files are normally:
the old tag
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.
Always run:
git diff --check cargo fmt --all -- --check cargo test --workspace --locked
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:
id="$(scripts/dev/sandbox/moraine-sandbox up --quiet)" scripts/dev/sandbox/moraine-sandbox status "$id" # Run cargo/test commands inside the sandbox per AGENTS.md, then: scripts/dev/sandbox/moraine-sandbox down "$id"
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.
Create a focused release commit:
git add Cargo.lock apps crates .github README.md docs git commit -m "chore(release): cut $TAG" git push -u origin "$branch"
Open a PR to `main` titled `chore(release): cut $TAG`. The PR body must include:
Wait for required checks. Merge only when checks pass. Use the rep
Moraine is a local trace stack for agent work. It indexes sessions from agent harnesses such as Codex, Claude Code, Qwen Code, Kiro CLI, Kimi CLI, NAC, OpenCode, Hermes, Pi Coding Agent, and Prime Agent into ClickHouse, serves a monitor UI, and exposes MCP
End-to-end smoke check of the moraine MCP server. Exercises the public retrieval workflow against a live moraine stack and prints…
Rewrite a moraine GitHub release body in the house format — one-sentence pitch, install block, usage-focused "what's new"…
Help prepare and, only with explicit user approval, file a sanitized Moraine bug report for reproducible defects in Moraine…
Use Moraine realtime session data to inspect active agent work across harnesses when the user asks what is happening now or what…
Use Moraine MCP tools to recover prior agent-session context when the user refers to earlier work, decisions, failures, branches,…
Review a PR through the CodeReviewCompleteness persona. Use when asked to check whether a PR fully addresses the objectives it…