Audit-ready alignment.
The conformance manifest now becomes audit-ready supporting evidence — an input to your technical file — and the deterministic gate wires into every harness. From the 2026 ecosystem veille — decision first, code second.
Four decisions, each locked in an ADR before a single line of code (Runward's own method applied to Runward), then implemented together. None adds a runtime surface: the gate stays zero-LLM, zero-run.
What's new
- OWASP ASI risk grammar. Security and governance rules carry an
asi:mapping (OWASP Top 10 for Agentic Applications), verified against the official taxonomy. The conformance manifest feeds your ISO 42001 / EU AI Act technical file as supporting evidence — an input, not a conformity assessment. 3 new CVE-derived deterministic rules (MCP server pinning, tool-change re-approval, memory provenance) — 51 → 54 rules. - AGENTS.md as a first-class handover deliverable. The file every harness reads, emitted as a leave-behind for the inheriting team.
- Ecosystem standards as versioned ports. MCP, OTel GenAI, agent identity, A2A: referenced and pinned in the reference stack, never implemented in the core.
- The gate as a port, with harness adapters. Its exit code is the contract. Two of them are agent-agnostic — a git
pre-commithook and a CI job that run the gate whatever agent produced the code (Codex, Claude, Cursor, Copilot, Gemini). Where a harness exposes a turn-end hook, the same one line wires there too — Claude Code'sStophook is the first shipped example, not a privileged one. The gate as a required CI check is dated, versioned audit evidence on every merge.
The invariant held
The adapters are inert until the operator wires them: Runward writes nothing into .git/, installs nothing, never becomes a runtime. It hands them over; it does not run them. Same trust posture as the hook seam, one step stronger.
This alignment also closes the opening incident, through the agent-agnostic seams: pre-commit and CI re-run the gate whatever the agent, and where a harness exposes one, a turn-end hook replays it in the loop. You can no longer close out with the gate never run.
Install: npx runward init
Release v0.9.0 on GitHub · CHANGELOG
← All news