Repository navigation
Description
What should happen
Add behavioral eval coverage in tools/skill-evals/evals/setup-isolated-setup-install/ for Step P.3b (Step-P prose) verifying that the agent skips copying shims to ~/.claude/bin/ for hook managers whose install strategy is none (simple-git-hooks, cargo-husky, git-code-format-maven-plugin, git-build-hook) and installs the shim exclusively for managers requiring an install fix (prek).
To ensure incremental review and zero external tool dependencies, this follow-up is structured into two parts:
- Part 1 (Immediate PR): Implement the
step-hook-manager-shimbehavioral eval suite insetup-isolated-setup-installcovering positive, negative (none-strategy skipping), mixed, and scope boundary cases. - Part 2 (Subsequent Follow-Up): Empirical execution of
git-code-format-maven-pluginandgit-build-hookunder the whole-user dispatcher in both main checkout and linked worktrees in an environment with JDK 17+ and Maven 3.9+, allowing documentation to drop the "from upstream source" qualifier.
Why
During the review and merge of PR #1838, maintainer @potiuk noted:
"test_none_strategy_generates_no_shim_case pins that the generated shim has no case for a none adapter. The decision that matters is the install step skipping those adapters, which lives in step-p's prose, so its real coverage would be an eval case for setup-isolated-setup-install. A run of the two Maven plugins under the dispatcher, in the main checkout and a linked worktree, would also let those bullets drop the "from upstream source" qualifier."
The generator test test_none_strategy_generates_no_shim_case pins that tools/agent-isolation/hook-manager-shim.sh contains no case statement for none adapters, but does not test the agent's decision-making during Step P.3b execution. Adding an eval suite pins this behavior against regression.
Which layer
Python package (tools/*/ with pyproject.toml)
Boundary conditions (optional)
- Negative skipping: Repositories using only
strategy: "none"adapters (simple-git-hooks,cargo-husky,git-code-format-maven-plugin,git-build-hook) must produceinstalled_shims: []. - Positive installation: Repositories using
prekmust produceinstalled_shims: ["prek"]. - Mixed repositories: Repositories combining
prekwithnoneadapters must selectively installinstalled_shims: ["prek"]. - Unmanaged repositories: Repositories without hook managers must produce
installed_shims: []. - Non-dispatcher scopes: When the operator selects
per-projectscope, Step P.3b must be skipped entirely (dispatcher_installed: false,installed_shims: []).
Out of scope (optional)
- Modifying
tools/hook-manager/registry.jsonor existing adapter definitions. - Running live Java/Maven execution (Part 2).
References (optional)
- Follow-up from PR feat(hook-manager): register managers that need no install fix (#1825) #1838 (
feat(hook-manager): register managers that need no install fix (#1825)) tools/hook-manager/registry.jsonplugins/magpie-setup/skills/isolated-setup-install/step-p-sandbox-allowlists.md(Step P.3b)
Activity
feat(hook-manager): add step-hook-manager-shim eval suite for Step P.…