Skip to content

v0.18.0 — install runward from where you already work

Choose a tag to compare

@stranxik stranxik released this 16 Jul 08:23

Turning the lead into distribution. A July 2026 channel benchmark confirmed the "install channel + deterministic gate" pattern is not proprietary to Claude Code — it's replicated across at least four harnesses, plus the canonical CI channel. So runward now publishes a family of distributable packagings (ADR-0028), each honestly tiered by how hard its gate can block. Same one line everywhere: runward check --strict.

  • GitHub Action — the hard governance gate. action.yml at the repo root: uses: stranxik/runward@<sha> as a required status check blocks the merge on a gap. Open, no secrets, aligned 1:1 with governance.
  • Claude Code plugin + marketplace. /plugin marketplace add stranxik/runward/plugin install runward-gate@runward.
  • Siblings for every hard-Stop harness (packaging/): Gemini CLI (AfterAgent), OpenAI Codex (Stop), GitHub Copilot / VS Code Agent hooks (Claude-compatible) — the same one line at turn end.
  • Soft-gate packagings, labelled soft. Cursor and a Kiro Power bundle a per-tool hook, documented as per-tool, not end-of-turn, because those harnesses' end-of-turn hooks can't hard-block. No operator misled.
  • MCP descriptor — discovery only. packaging/mcp/server.json, with a README that hammers it: an MCP tool is model-controlled — findable, never obeyed. Read-only surfaces at most. Calling runward-as-MCP a gate would be the exact "soft judge dressed as hard" the product rejects.
  • One honest map: docs/distribution.md tiers every channel — hard-at-merge (CI), hard-at-turn-end (client hooks), soft-per-tool (Cursor/Kiro), discovery-only (MCP).

Invariants preserved: the operator installs (runward auto-wires nothing); never a runtime (each packaging is a thin shell around the exit-code port); vendor-neutral (a family published together, no agent privileged — the canonical surface stays AGENTS.md + .agents/skills). Publishing to the marketplaces is the maintainer's outward-facing gesture, like the npm publish.

Full detail: CHANGELOG · ADR-0028 in docs/adr/