[CAT-UNVERIFIED tag](3) The engine rules tell authors to write the tag - #417
Merged
EdbertChan merged 1 commit intoSep 12, 2026
Merged
Conversation
Bugbot couldn't run - usage limit reachedBugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit. A user or team admin can review and increase usage limits in the Cursor dashboard. (requestId: serverGenReqId_35c1ed16-a96c-49dd-86ba-039bac5e7c6a) |
4 tasks
Owner
Author
2 tasks
EdbertChan
force-pushed
the
stack/EdbertChan/cat-unverified-tag/2-retry-checks-evidence
branch
from
September 12, 2026 06:18
ae767ea to
e34b32f
Compare
EdbertChan
changed the base branch from
stack/EdbertChan/cat-unverified-tag/2-retry-checks-evidence
to
main
September 12, 2026 06:19
The hooks clear on the tag and nothing else, but engine/CLAUDE.core.md still said to write bare `UNVERIFIED:`. An agent following them was blocked for doing what they said. The core rule changes meaning, not only spelling. "If you have no evidence, write UNVERIFIED:" made the marker the default answer to missing evidence. It now says: run the check; if it genuinely cannot run, tag it and name the blocker. Also updated: the make-pr fixture-vs-live gate and the wrong-check-reflect Cursor rule. tests/escape_hatch_vocab.py finds any line that still instructs the retired marker. On 509b9cd it flags 30 lines across the repo; with the whole stack applied it flags 0. make-pr's new test_skill_text.py uses it. Left alone on purpose, since the word means something else there: "UNVERIFIED schema" (Codex hooks.json) and "UNVERIFIED end-to-end" (a status cell), plus recorded transcripts and fixtures, which are history. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VKsvxJk65w6q7KnPSRYvNg
Contributor
|
Tick the box to add this pull request to the merge queue (same as
|
EdbertChan
force-pushed
the
stack/EdbertChan/cat-unverified-tag/3-engine-prose
branch
from
September 12, 2026 06:19
4829e39 to
6a541b6
Compare
Bugbot couldn't run - usage limit reachedBugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit. A user or team admin can review and increase usage limits in the Cursor dashboard. (requestId: serverGenReqId_c274087d-4c83-421b-9da3-b0c06ad587df) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
engine/CLAUDE.core.mdnow tells an agent to run the check first and use the tag only when the check cannot run.It still said to write bare
UNVERIFIED:, which the hooks now reject. An agent following it would be blocked for obeying it.The rewrite also changes the order. The old rule made the marker the default answer to missing evidence. The new rule puts the check first.
Review Claim
Approve the engine rules naming
{{CAT-UNVERIFIED: <claim> -- cannot verify: <reason>}}instead of bareUNVERIFIED:, plus a helper that finds lines still instructing the old marker.Review Lane
behavior
Review Unit
engine-runtime
Safety Invariant
Prose plus one read-only scan helper; no hook, install or runtime path changes.
Slice Rationale
Rules come after the behavior they describe. Corpus skills, the
docsfiles and the product skill are separate review units, so they are the next three PRs.Non-goals
Test Plan
Test Plan
python3 engine/skills/make-pr/scripts/preflight.py --base <this PR's base>bash scripts/run_all_tests.sh-- exit 0, 45 suites OK, 0 failed, 1676 teststests/escape_hatch_vocab.pyflags 30 instructing lines on509b9cdand 0 with the whole stack appliedpython3 -m unittest discover -s engine/skills/make-pr/testsRevert Plan
Revert Plan
git revert <sha>🤖 Generated with Claude Code
https://claude.ai/code/session_01VKsvxJk65w6q7KnPSRYvNg
Note
Low Risk
Documentation and a vocabulary-scan helper only; no hook, install, or runtime behavior changes in this slice.
Overview
Engine prose and the make-pr fixture-vs-live gate now match what evidence hooks enforce: run the check first, and only when verification truly cannot run, mark claims with
{{CAT-UNVERIFIED: <claim> -- cannot verify: <reason>}}. BareUNVERIFIED:is explicitly retired inengine/CLAUDE.core.md,evidence-check.mdc, andmake-pr/SKILL.mdso agents are not told to use a marker hooks reject.A new read-only helper
tests/escape_hatch_vocab.pyscans instructional files for lines that still tell authors to write bareUNVERIFIED:(ignoring “retired” mentions and non-marker phrases like “UNVERIFIED schema”). make-pr adds unit tests that the skill names the CAT tag and passes that scan.Reviewed by Cursor Bugbot for commit 6a541b6. Bugbot is set up for automated code reviews on this repo. Configure here.