Give the cat-mode flag three settings and retire CAT_MODE_AUTO_INVOKE - #744
Merged
Conversation
2 tasks
Owner
Author
|
This pull request is part of a Mergify stack:
|
2 tasks
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using default effort and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit fb4dcca. Configure here.
…O_INVOKE CATSTACK_CAT_MODE_DEFAULT now takes off, decide, or on (1 and 0 still work). decide replaces CAT_MODE_AUTO_INVOKE=true: install.sh reads the flag through the shared flag lookup and materializes the auto-invoking cat-mode copy only for decide, removing a generated copy when switched away. install.sh warns when it still sees CAT_MODE_AUTO_INVOKE, and when the flag holds an unknown value. flags.py gains --value for flags with more than two settings. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Change-Id: Iafccb934fe56639b4366e1bcf3668fef29fa6e5c
EdbertChan
force-pushed
the
stack/EdbertChan/flags/cat-mode-flag/give-catstack-cat-mode-default-three-settings--afccb934
branch
from
September 17, 2026 01:50
fb4dcca to
c571574
Compare
Owner
Author
Revision history
|
Contributor
|
Queued — the merge queue status continues in this comment ↓. |
Owner
Author
|
@Mergifyio queue admin-bypass |
Contributor
Merge Queue Status
This pull request spent 7 minutes 31 seconds in the queue, including 6 minutes 44 seconds running CI. Required conditions to merge
|
6 tasks
8 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.

Summary
The work style guide can now be off, left for the agent to decide, or always on. One setting controls all three.
Before, two separate settings did overlapping jobs, and they could say different things at once.
Now the one setting takes three words. The old second setting is ignored, and the installer prints a warning when it sees it.
Review Claim
One setting picks between off, let the agent decide, and always on, and the old second setting is retired with a warning.
Review Lane
behavior
Review Unit
engine-runtime
Safety Invariant
An old
1or0behaves exactly as before; onlydecidechanges what gets installed.Slice Rationale
Bottom of a three-PR stack. This slice holds the installer, the flag reader, the hook text and their tests. The cat-mode skill line and the root README follow as their own review units.
CATSTACK_CAT_MODE_DEFAULT=off|decide|on(1/true/yes=on; unset/0=off).decidereplacesCAT_MODE_AUTO_INVOKE=true:install.shwrites the auto-invokingcat-modecopy only fordecide, and removes a generated copy when switched away.install.shreads the flag throughengine/hooks/_flags/flags.py, which gains--value. So the value now also comes from~/.catstack.env, not only this checkout's.env.CAT_MODE_AUTO_INVOKEprint a warning instead of being dropped silently.Non-goals
Test Plan
Test Plan
python3 -m unittest tests.test_install.TestCatModeDefaultInstallwith the fix stashed (new tests fail first):python3 -m unittest tests.test_install_worktree_repo_dir: failed on the first push becauseinstall.sh --helpran the flag lookup in a copy with no flag reader (FAILED (failures=3)). The lookup now runs after argument parsing:python3 -m unittest tests.test_install_worktree_repo_dir tests.test_install.TestCatModeDefaultInstall tests.test_cat_mode→Ran 92 tests ... OK;shellcheck install.sh→ exit 0python3 -m unittest discover -s engine/hooks/_flags/tests→OK(37 tests)python3 -m unittest discover -s engine/hooks/cat-mode-default/tests→OK(39 tests)python3 engine/skills/make-pr/scripts/preflight.py --base origin/main→unit engine-runtime: 9 file(s), all gates okRevert Plan
Revert Plan
git revert <sha>./install.sh; setCAT_MODE_AUTO_INVOKE=trueagain ifdecidewas in use.🤖 Generated with Claude Code