merge queue: checking #477 on main (2754b47) - #484
Closed
mergify[bot] wants to merge 2 commits into
Closed
Conversation
…at ran no check
cat-mode/SKILL.md:269 says a hedge is "a trigger to verify, never a place to
stop". Every evidence hook implemented the opposite: markers.well_formed_tags()
is consumed as equivalent to evidence (prove-it-ship-gate/detect.py), so a
correctly-formed tag silenced the whole stack, was counted nowhere, and was
revisited never. Only malformed and legacy shapes ever fired. The prose forbade
stopping while the tooling rewarded it.
unverified-tag-ledger records each well-formed tag against the session, refuses
a turn that tagged a claim without running any verification tool, and
re-surfaces anything still open on the next prompt. Requiring an ATTEMPT is not
requiring success: run the check, and if it cannot settle the claim the tag is
then honest. stop_hook_active releases the refusal, or the rewrite turn -- which
has no tool call of its own -- would loop forever. A claim is discharged once a
later turn verifies and stops repeating it; one outstanding three turns or more
is reported as a reflect trigger.
Observed 2026-09-11 in a NiceSpeak streaming session: two well-formed tags were
emitted, each ended its turn, neither left a trace. Both are the positive
fixtures in tests/test_hooks.py. Replaying that session's own turn:
A) tag, zero tools -> exit=2, "ran no verification tool. Untried
claim(s): that it widened scope past the one
session I gave it"
B) same tag after Bash -> exit=0
C) stop_hook_active -> exit=0, no loop
D) no tag, no tools -> exit=0
Three of this repo's own gates caught real defects while landing it, and each
fix is in this commit:
- test_every_claude_hook_entrypoint_is_in_settings / TestSubagentStopInheritance:
the hook shipped with no install_claude_hook.py, so neither entry point
reached settings.json. Added on diu-stop's pattern, called from install.sh.
- the same two gates again, after the installer was copied from diu-stop and
kept its bare basename markers. Because this hook uses the same two
basenames, the idempotent "replace our own entry" step deleted diu-stop's
entries instead. Markers are now directory-qualified, so an installer only
ever touches its own entries. Without this, install.sh would have silenced
diu-stop's word count, evidence and plain-words checks.
- test_no_instructional_file_names_the_retired_marker: the README wrote the
retired bare marker without naming it as retired.
Lands as one commit because each earlier slice failed those gates on its own,
and a slice that cannot go green alone is not a reviewable slice. The
pre-squash heads are on backup/tagledger-0fc2a13 and backup/tagledger2-81157a3.
subagent_stop opts out with a reason, registered in
tests/test_mirror_subagent_stop.py and docs/ecosystem.md: the ledger is keyed by
session id, so a subagent would log its tags against the parent's ledger, and it
has no next user prompt to be reminded at.
17 hook tests, 10 mirror tests, 6 vocabulary tests, and the full local
tests/test_install.py run all pass.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018u8S5ct3kFhosinSbybc7W
Change-Id: I3466baee81db9fd240f1a527df4610ad5507919a
3 tasks
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.
🎉 This pull request has been checked successfully and will be merged soon. 🎉
#477 is queued for merge on branch main (2754b47).
This pull request has been created by Mergify to check the mergeability of #477.
You don't need to do anything. Mergify will close this pull request automatically when it is complete.
Required conditions of queue rule
admin-bypassfor merge:check-success = lintcheck-success = testRequired conditions to stay in the queue:
-draftbase=mainlabel=admin-bypass