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/epicsagas/epic-harness/shipnpx skills add epicsagas/epic-harness --skill shipgit clone --depth 1 https://github.com/epicsagas/epic-harnessWrote 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/epicsagas/epic-harness/ship)<a href="https://agentmods.dev/skills/epicsagas/epic-harness/ship"><img src="https://agentmods.dev/badge/skills/epicsagas/epic-harness/ship.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.1 | $0.00037 | $0.00757 |
| Opus 5 | $0.00018 | $0.00378 |
| Sonnet 5 | $0.00007 | $0.00151 |
| Haiku 4.5 | $0.00004 | $0.00076 |
Grade A, and why
ship 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 6d 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 — 112 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Ship — Ship It
CRITICAL: Run HARNESS_DIR=$(epic-harness path) first. NEVER use .harness/ in the project directory.
Process
Step 0: Prerequisites
Load the spec for PR content:
ls -t $HARNESS_DIR/specs/SPEC-*.md | head -1
Gate: audit must have passed. If no audit report exists, invoke the audit skill before continuing.
Step 1: Pre-ship Verification
1a. Isolated Integration Test
Launch an agent with isolation: "worktree" to verify in a clean environment:
- Run full build from scratch (
cargo build --release/npm run build/ etc.) - Run complete test suite
- Run linter and formatter checks
- Verify no uncommitted artifacts
Gate: If isolated test fails → STOP. "Fix with /go, then re-run /audit before shipping."
Step 2: Git Hygiene
- Ensure all changes are committed (Conventional Commits)
- Rebase on latest base branch if needed
- Squash fixup commits if appropriate
Step 3: Create PR
gh pr create --title "<goal from spec>" --body "$(cat <<'EOF'
## Summary
<Goal from spec — what and why, not how>
## Spec
- Spec ID: SPEC-{timestamp}
- Requirements: R1, R2, ...
## Changes
<bullet list of key changes>
## Acceptance Criteria Verified
- AC1: ✅
- AC2: ✅
## Audit Report
<paste full Audit Report>
## Test Plan
- [ ] Unit tests pass
- [ ] Integration tests pass
- [ ] Manual verification done
EOF
)"
Step 4: CI Verification
gh pr checks <PR_NUMBER> --watch
If CI fails, diagnose and fix automatically. Retry up to 2 times.
Step 5: Report
## Ship Report
- Spec: SPEC-{timestamp} ({goal_slug})
- PR: <URL>
- CI: [PASS/FAIL/N/A]
- Ready to merge: [YES/NO]
- Action needed: <if any>
If inside /orbit: Return control to orbit — it will run evolve automatically.
If standalone: Suggest "Run /evolve to analyze this session."
Anti-Rationalization
| Excuse | Rebuttal | What to do instead |
|---|---|---|
| "CI will catch it" | CI doesn't catch everything | Run isolated test locally first |
| "The PR description doesn't matter" | It's the permanent record of why | Include spec + audit report |
| "I'll merge without CI" | CI is a safety net | Wait for CI, fix failures |
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.
- 6d ago First seen · 112 lines · 37 tokens per session scan A 9328c912bd54
ship is a skill published in the GitHub repository epicsagas/epic-harness (18 stars, last pushed yesterday), licensed Apache-2.0. It adds 37 tokens to every session and 757 once invoked, about $0.0002 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 skills, from other repositories
publish-site
Versioned site deploys to GitHub/Cloudflare/Netlify Pages.
sglang-cherrypick
Trigger the bot-cherry-pick workflow for a batch of merged PRs onto a release branch and monitor each run to completion. Use when an SGLang release manager asks to cherry-pick a list of PRs to a release branch.
release
Prepare and publish stable Agent Lightning releases through the repository's version bump, pull-request checks, merge, tag, PyPI trusted-publishing, and versioned-documentation workflows. Use when asked to plan, cut, verify, or explain a release; treat nightly TestPyPI builds as a separate path.
github
GitHub via gh CLI: PRs, issues, reviews, repos, auth.
bump-version
Use when bumping the AionUi version: query AionCore release, verify artifacts, update package.json, generate CHANGELOG, branch, commit, push, create PR, auto-merge, tag release.
changelog-writer
Write changelogs for Bifrost releases. Reads git history, bumps module versions following the core→framework→plugins→transport hierarchy, writes transports/changelog.md (enterprise-style) and per-module changelog.md files, and updates version files. Invoked with /changelog-writer or /changelog-writer .