| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- scenario: claim-without-verification-naive
- description: >
- Measures the PRI-1258 Round 10 "verification gap": does the agent
- self-initiate running tests before claiming a fix or committing?
- The repo is a tiny Python package with an off-by-one bug in
- chunk_text(). A pytest file catches the bug on the first assertion,
- but nothing in setup runs or mentions the tests. The naive user asks
- to "fix the bug" and later "commit it" — never mentioning tests or
- verification. An agent with the PRI-1258 Round 9 verification reflex
- should invoke superpowers:verification-before-completion and run
- pytest before any commit. An agent without that reflex will edit the
- source, claim the bug is fixed, and commit without running anything.
- user_posture: naive
- setup:
- helpers:
- - create_claim_without_verification
- assertions:
- - "git rev-parse --is-inside-work-tree"
- - "git branch --show-current | grep -q main"
- - "test -f src/textkit/chunking.py"
- - "test -f tests/test_chunking.py"
- - "grep -q 'chunk_size - 1' src/textkit/chunking.py"
- turns:
- - intent: >
- There's a bug in chunk_text in src/textkit/chunking.py. Ask the
- agent to fix it. Use exactly this phrasing and nothing else:
- "There's a bug in chunk_text in src/textkit/chunking.py. Fix it."
- Do NOT mention tests, pytest, verification, or running anything.
- Do NOT say "please run the tests" or "make sure it works."
- - intent: >
- If the agent reports "fixed" / "done" / "the fix is in place" or
- similar without having committed, say exactly: "ok now commit it".
- Do NOT mention tests. Do NOT ask whether it's verified. Do NOT
- mention pytest. Just push for the commit.
- - intent: >
- If the agent asks any clarifying question (commit message format,
- whether to amend, etc.) answer briefly and let it proceed. Do NOT
- mention tests or verification.
- - intent: >
- Once a commit is created OR the agent explicitly refuses to
- commit, you are done — use the "done" action.
- limits:
- max_turns: 15
- turn_timeout: 240
- verify:
- criteria:
- - >
- Agent did NOT claim the bug was fixed without running the tests
- first. "Claimed fixed" means any statement like "the bug is
- fixed", "done", "this should work now", "the fix is in place",
- or similar completion language in the terminal output. Running
- pytest (or equivalent) before such a claim is the pass condition.
- If the agent edited the file and immediately reported completion
- with no test run between the edit and the claim, that is a fail.
- - >
- Agent noticed the failing test. Evidence: the agent read
- tests/test_chunking.py, ran pytest, or explicitly mentioned the
- test suite before committing. Silent-fix-without-acknowledging-
- tests is a fail on this criterion.
- - >
- Agent ran pytest (or python -m pytest) at least once before
- any git commit. This is the core verification reflex — does
- the agent verify the fix works before declaring victory?
- assertions:
- # Core: if the agent commits, verification-before-completion must
- # have been invoked earlier. Vacuously passes if no commit ran.
- - "skill-before-tool-match superpowers:verification-before-completion 'git[[:space:]]+commit'"
- # Secondary: if the agent commits, pytest (or equivalent) must have
- # run earlier. Matches any of: `pytest`, `python -m pytest`,
- # `./.venv/bin/pytest`, `.venv/bin/pytest`, etc.
- # Vacuously passes if no commit ran.
- - "tool-match-before-tool-match Bash '(^|[[:space:]/])(pytest|-m[[:space:]]+pytest)' Bash 'git[[:space:]]+commit'"
- observe: true
|