Skip to content

feat(efficacy): the judge scores security and data protection, anchored - #1854

Merged
braboj merged 2 commits into
mainfrom
feat/efficacy-security-rows
Sep 25, 2026
Merged

braboj merged 2 commits into
mainfrom
feat/efficacy-security-rows

Conversation

@braboj

@braboj braboj commented Sep 25, 2026

Copy link
Copy Markdown
Collaborator

Part of #1767. This covers two of its tasks: the two rows added to the judge's rubric, and PRIMARY in judge.py and report.py. The probe pass rates and their margins follow with the probes.

Judge (judge.py). security and data_protection join the rubric and PRIMARY. Each row is described at 1, 3 and 5 in terms of the application: sign-in, secrets, queries and next for security, and logs, erasure and export of customer data for data protection. The 5 describes where the protection lives in the code, one guard and one place for the personal data, so the row reads structure. The probes already read behaviour.

Report (report.py). Two metric rows, lead primaries, margin 0.3 and practical threshold 0.5 per design §5.8. The finding table's words gain "more secure" and "more careful with personal data". The why-line's "saw none of it as better …" sentence names all five primaries.

Existing test changed. One self-test expectation changed with that sentence. A new self-test check fails when a primary is in the judge and not the report, or the reverse, or lacks its margin, threshold, metric row or words. Control: deleting the security entry from the finding table's words made it fail, naming judge_security as lacking. Restoring the entry made it pass again (84/84).

The control is owed a re-run. A rubric prompt change invalidates every control reading, so the six current trees are re-judged under this prompt together with the four new trees built from the calibration trial (design §5.7).

No CHANGELOG entry: the benchmark is this repository's own.

Checks run: smoke 33/33; report.py --self-test 84/84; conformance 0 failed, its readings read (two files under tests/, both named above).

🤖 Generated with Claude Code

The rubric gains two primary rows, each anchored at 1, 3 and 5 in terms of
the application's sign-in, secrets, queries and customer data. The report
leads with them under the design's 0.3-point margin and 0.5-point
threshold, and its self-test fails when a primary is added to the judge or
the report without the other, or without its margin, threshold and words.

Part of #1767.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@braboj braboj added P1 High — must fix before next milestone task Atomic implementable work labels Sep 25, 2026
@braboj
braboj merged commit 113a239 into main Sep 25, 2026
1 check passed
@braboj
braboj deleted the feat/efficacy-security-rows branch September 25, 2026 09:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

P1 High — must fix before next milestone task Atomic implementable work

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant