Skip to content

merge queue: checking #783 on main (a859be2), stacked on #826 - #918

Closed
mergify[bot] wants to merge 5 commits into
mainfrom
mergify/merge-queue/274a61e94d
Closed

mergify[bot] wants to merge 5 commits into
mainfrom
mergify/merge-queue/274a61e94d

Conversation

@mergify

@mergify mergify Bot commented Sep 24, 2026 •

Copy link
Copy Markdown
Contributor

🎉 This pull request has been checked successfully and will be merged soon. 🎉

#783 is queued for merge on branch main (a859be2).

Stacked behind 1 pull request queued ahead of this batch, not part of it. These checks run on a tip that also carries its commits, so a failure here can come from it as much as from #783.

Queued ahead of this batch:

This pull request has been created by Mergify to speculatively check the mergeability of #783.
You don't need to do anything. Mergify will close this pull request automatically when it is complete.

Required conditions of queue rule admin-bypass for merge:

  • check-success = lint
  • check-success = test
  • check-success = validate

Required conditions to stay in the queue:

---
checking_base_sha: 372ec170e8b4ca853e387fb393933b7f0816d3c7
previous_check_retries: []
previous_failed_batches: []
pull_requests:
  - number: 783
    scopes: []
scopes: []
...

EdbertChan and others added 5 commits September 24, 2026 15:52
…on by default

skill-usage-log was switched off unless CATSTACK_SKILL_USAGE_LOG=1, covered
only Claude's Skill tool, swallowed write errors, and wrote a private file no
report read. ~/.cache/catstack-skill-usage-log did not exist on this machine,
so no skill use was on record.

It now records one catstack.hook_event.v1 row per use (action skill_used,
reason = source, skill = name) in the shared events file, from all three
harnesses:

- Claude PreToolUse (Skill|Read|Bash) and UserPromptSubmit
- Cursor preToolUse and beforeSubmitPrompt
- Codex PreToolUse and UserPromptSubmit

Sources: skill_tool, read (a Read of a SKILL.md, including Cursor's
skills-cursor/), shell_read (cat/sed/head/tail/nl/less/more/bat on one, also
inside a Codex exec code string), slash (a prompt starting /<installed
skill>), mention (Codex $<installed skill>).

Backtest on recent real transcripts: Claude 10 uses counted, Cursor 708
(670 of 671 SKILL.md Read calls, 22 of 22 ReadFile), Codex 1; rejected
mentions were Glob/Grep patterns, Write/StrReplace content, Task/Agent
prompts, WebFetch URLs and rg searches.

Unreadable input writes skill_usage_unchecked plus catstack-hook-error.
report.py --skills prints uses per skill per harness, `no record` for an
installed skill never used, and exits 2 on unchecked runs.
CATSTACK_SKILL_USAGE_LOG=0 opts out.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Change-Id: I4c41be3269cd80190cbabad6d973de15008065f3
…e only

The reminder was re-read to the user on every prompt for every outstanding
claim, including claims whose proof had already been pasted. There was no way
to turn it down: CATSTACK_HOOK_MODE_UNVERIFIED_TAG_LEDGER=off still printed
the full list at exit 0, because this hook is not on run_hook and nothing
reads the registry mode for it.

CATSTACK_UNVERIFIED_TAG_REMINDER is read in-hook through _flags/flags.py, the
one pattern proven to work here (wrong-check-reflect/detect.py:12-15, 191):

  stale  default, and what unset means: only claims already 3+ turns old
  all    the old behaviour
  off    no injection

Unset resolves to stale on purpose. A flag whose unset value is the old
behaviour changes nothing for the person who asked for less. reminder() at
:138 already computed that exact subset and threw it away at :145.

The gate is on the injection only. Emission and recording are untouched on
every setting, so `off` buys silence without emptying the ledger it is mined
from. A value nobody understands, and an .env candidate that cannot be read,
are both named on stderr instead of passing as "not set".

hooks.toml gains an enabled_by line naming the flag. Nothing reads that field
-- registry.py:15 is its only mention in the repo -- so it is documentation
beside the gate, not the gate.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Change-Id: I4f465761ee7f84489616ba1e83c54eb98ceefff0
@mergify mergify Bot closed this Sep 24, 2026
@mergify
mergify Bot deleted the mergify/merge-queue/274a61e94d branch September 24, 2026 08:53
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