docs: prove UI work on a disposable surface, not the user's session - #292
Conversation
|
This pull request is part of a Mergify stack:
|
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_bb147b7e-1ae4-43c8-9bc1-2617852cbde1) |
bad10af to
2d22904
Compare
2a729e0 to
4be2b42
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_1114391c-bdbb-418b-aba6-cb3bad9879a6) |
Revision history
|
2d22904 to
445e5b0
Compare
4be2b42 to
163c9d6
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_1b2f235e-a435-4ac6-8836-54a68b181b97) |
163c9d6 to
b3bc3ea
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_19250fda-9650-47ce-bbfc-57efdab4d95d) |
cat-mode gains a UI-testing rule under Verify and the live-demo rules gain the matching bullet: disposable surface first, an explicit hands-off window and marker before driving real input, stop when the session goes back to the user, and leave no residue. Contract tests pin the pieces an agent acts on, including that the marker path matches the guard hook's default. The skill's own line cap forced a trim in the same commit, so one bullet's incident narrative is cut back to its rule. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KU2pPKob4MJ1NqjsfTNyYJ Change-Id: Ifa0ea6ce9e6f809dfe162be89ff630d8ec90d363
b3bc3ea to
8a08e9d
Compare
445e5b0 to
3eea768
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_d1d9f2c7-2498-42a7-b7f1-1e7c79f731ec) |
99b805a
into
stack/EdbertChan/reflect/ui-input-guard-hook-freshness-20260908/ui-input-guard-blocks-synthetic-input-user-s-live--670196cd
Summary
The rule behind the
ui-input-guardhook in this stack, written where an agent reads it before acting.Prove a UI or surface change somewhere disposable: a test channel, a throwaway profile, a second display, a VM, a headless run. Driving the user's real keyboard, mouse, or screen is a last resort that needs an explicit hands-off window first.
Stop at the first sign the session is theirs again, and leave no residue: undo stray messages or reactions, or say what was left behind.
Review Claim
cat-modeand the live-demo rules now say UI proof goes to a disposable surface, and that driving the user's own input needs a granted window plus cleanup.Review Lane
docs
Review Unit
docs
Safety Invariant
Prose plus its contract tests: no code paths, no hook behavior. The rule names the marker file and hook directory the sibling commit adds, so the written rule and the mechanical gate cannot drift apart.
Slice Rationale
Rule text is separated from the hook that enforces it, so a wording change does not have to touch a detector and vice versa. The skill's own line cap forced a trim in the same commit: the new rule is one dense paragraph, and one bullet's incident narrative is cut to its rule.
Non-goals
Does not change any other section of
cat-mode, and adds no dated provenance to either file.Test Plan
Test Plan
python3 -m unittest discover -s tests -p "test_cat_mode.py"— 44 tests, OK (4 new: disposable surface, granted window, the marker path matching the hook's default, and cleanup)python3 scripts/check_skill_test_coverage.py --base origin/main— okpython3 scripts/check_no_dated_provenance.py --base origin/main— okpython3 scripts/check_skill_file_refs.py --base origin/main— okpython3 scripts/check_ecosystem_boundaries.py --base origin/main— okRevert Plan
Revert Plan
git revert <sha>🤖 Generated with Claude Code
https://claude.ai/code/session_01KU2pPKob4MJ1NqjsfTNyYJ