Skip to content

Metis v1.3.0

Latest

Choose a tag to compare

@gitRasheed gitRasheed released this 19 Jul 22:42

Six evidence-backed edits to the skill, nothing removed:

  • Principle 6 rewritten around parse, don't validate (Alexis King): convert untrusted data once at the trust boundary into a typed shape that cannot represent the invalid states; past the boundary, assert internal invariants.
  • Trace-invariants rule tightened: a check that duplicates what an earlier boundary guarantees is a bug of its own.
  • Typed domain records (Wlaschin): core domain state gets a named, typed shape; raw dicts and strings stay at the boundary.
  • Define errors out of existence (Ousterhout): prefer contracts that make the failure case impossible over raising and forcing every caller to handle it.
  • Effects need identity: a side effect that crosses a boundary needs a stable identity so retries and replays are safe.
  • Deep modules working rule (Ousterhout): a simple interface over substantial functionality.

Validated in evals/cases-v6 (two preregistered waves, six texts, ~195 runs): review parity with v1.2.0 on the frozen key, 19/19 hidden verifier gates in every run, next-feature extension cost 257 vs 300 changed lines, blinded taste majority 8-5-1. External leg on the Aider polyglot benchmark: all arms pass all tests; a blinded judge preferred Metis-guided code 3:1 over baseline. Full record: evals/cases-v6/REPORT.md.

PORTABLE_PROMPT.md carries the same additions for tools without skill support.