runward

RW™ · V0.18.0

Install runward from where you already work.

A lead only counts if it distributes. We checked, channel by channel, where the deterministic gate can install in one gesture, and with what strength. The result: a family of packagings, the same one line everywhere, and an honest tiering of what each channel can actually block.

One gate, every channel, tiered without lying

  • GitHub Action: the hard gate. A published action, set as a required check, blocks at merge. The channel best aligned with governance, open, no secret. Maximum leverage.
  • Claude Code plugin, and its siblings. A plugin that runs the gate at turn end, plus the same for Gemini CLI, Codex and Copilot: the same line, runward check --strict, at the right moment.
  • Soft-gate channels, labelled soft. Cursor and Kiro let you bundle a hook, but their end of turn does not hard-block: the gate there is per-tool, and we say so plainly rather than dress it up.
  • MCP: discovery, never a gate. An MCP tool is called by the model, which can skip it. We publish a descriptor to be findable, and a README that hammers it: this is not a gate. Claiming otherwise would sell a soft judge dressed as a hard one — exactly what runward refuses.

Honesty as the argument

In a market that overclaims, saying "hard here, soft there, discovery-only for MCP" is itself a credibility signal. The invariant holds everywhere: the operator installs, runward never wires anything itself; each packaging is a thin shell around the same exit code; and no agent is privileged. The neutral surface stays AGENTS.md and the shared skills.

Submitting to the marketplaces stays your gesture, like the npm publish: the packages are prepared, never submitted behind your back.


Install: npx runward init

Release v0.18.0 on GitHub · The channel map · CHANGELOG

← All news