Changelog / unreleased

Every rule begins with a failure.

Repository history, not release theatre. Everything here is committed and publicly inspectable; no tagged package version is claimed yet.

Unreleased

Default branch / public source

Added

One provider-neutral skill

Claude Code and Codex use the same contract while retaining native invocation and runners.

01
Added

Runnable refusal specimen

A redacted fixture shows false delivery blocked, honest delivery accepted, and terminal mismatch rejected.

02
Added

Machine-readable proof manifest

Every public claim maps to artifacts, expected output, and a visible evidence boundary.

03
Added

Seven-route discovery contract

Unique metadata, canonical URLs, crawl rules, structured-data boundaries, and evidence sources are validated locally.

04
Fixed

Terminal-state mismatch bypass

The gate now rejects a requested terminal that conflicts with the state already recorded by the run.

05
Fixed

Ambiguous gate invocation

Calls without exactly one phase or terminal now fail with a usage error.

06
Fixed

Unsafe runner inputs

The runner rejects path traversal, shell syntax in slugs, and non-integer session caps.

07

Most useful change

The gate learned to distrust itself.

A regression preserved a contradiction the original terminal check incorrectly passed. The fixed gate now names both states and exits 1.

Inspect before and after