8ad20d065a
The first version of this test used inspect.getsource() on skill_manager_tool and regex-parsed the guarded action literals. AGENTS.md bans source-text tests, and the ban is right here: that test would pass against a guard wired to the wrong call site and fail on a pure rename, neither of which is the thing worth guarding. Replaced with a behavioral assertion in the shape of the neighbouring dry-run-banner test: stub _run_llm_review, run run_curator_review, and assert the prompt that actually reached the model names skill_view and all four guarded actions (edit, patch, write_file, remove_file). It still discriminates: with the prompt block removed, action=edit and action=remove_file no longer appear anywhere in the assembled prompt (the toolset list only mentions patch, create, write_file and delete), so the test fails. Runtime guard behavior stays where it belongs, in tests/tools/test_skill_manager_tool.py. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>