Skip to content

Agreement test set: the reference interpreter's outcomes for the forbid/require/permit subset - #85

Merged
rmichaelthomas merged 1 commit into
mainfrom
feat/agreement-corpus
Oct 19, 2026
Merged

rmichaelthomas merged 1 commit into
mainfrom
feat/agreement-corpus

Conversation

@rmichaelthomas

Copy link
Copy Markdown
Owner

What this is

Phase 1 of the NowLookHere build: a generated test set that pins what Liminate's reference interpreter (Python, 0.18.4) does with the forbid / require / permit subset, so that other evaluators can be held to it. The TypeScript evaluator (liminate-ts-validator) and the Swift evaluator (liminate-swift) both read this file and must match every case.

Files

  • scripts/gen_agreement_corpus.py (new): reads tests/fixtures/agreement_corpus.txt, runs each case through the real interpreter, and writes the outcomes. Follows scripts/gen_conformance_corpus.py.
  • tests/fixtures/agreement_corpus.txt (new): the cases (76).
  • tests/fixtures/agreement-0.18.4.json (new, generated): the interpreter's outcome for each case.
  • tests/test_agreement_corpus.py (new): regenerates in memory and checks the committed JSON is current.

A decision recorded while building the set: a program that mixes and and or in one condition is outside the subset, because the reference interpreter's result for it is amber (a parse that depends on grouping), not a pass or a hold.

Verification

  • pytest tests/test_agreement_corpus.py: 6 passed.
  • Full suite: 1918 passed.
  • The same JSON is byte-identical in liminate-ts-validator and liminate-swift (checked by scripts/verify-views-safety-identity.sh in the strands repository, group A).

Untracked files in the working tree (.playwright-cli/, audit/00_grounding_manifest.md) are not part of this change.

🤖 Generated with Claude Code

https://claude.ai/code/session_01Qvgf1CGxnJtF5ULbA1tBhJ

…id/require/permit subset

scripts/gen_agreement_corpus.py runs each program in agreement_corpus.txt through
the 0.18.4 reference interpreter (--quiet --test) and records exit, outcome,
crossed rules with their because text, and stdout. The TypeScript and Swift
agreement evaluators are held to this file.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Qvgf1CGxnJtF5ULbA1tBhJ
@rmichaelthomas
rmichaelthomas merged commit 263e9b9 into main Oct 19, 2026
3 checks passed
@rmichaelthomas
rmichaelthomas deleted the feat/agreement-corpus branch October 19, 2026 15:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant