From 949200ec8fb2acd01f141cbad54b79ce654377be Mon Sep 17 00:00:00 2001 From: garrytan Date: Fri, 2 Oct 2026 23:42:27 +0000 Subject: [PATCH] fix(overlay): claude.md dedicated-tools nudge stops naming tools the host may lack (s01 M1) The nudge named Glob and Grep, which some Claude hosts do not expose. It now names the host's dedicated file tools and its search tools when it has them, keeping the prefer-dedicated-tools behavior the claude-dedicated-tools-vs-bash overlay eval measures. Updates the prose comment at test/gen-skill-docs.test.ts:643 (comment only, no assertion change). The matching comment in test/fixtures/overlay-nudges.ts is left to its owner. --- model-overlays/claude.md | 5 +++-- test/gen-skill-docs.test.ts | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/model-overlays/claude.md b/model-overlays/claude.md index 95943af5b..289b781e7 100644 --- a/model-overlays/claude.md +++ b/model-overlays/claude.md @@ -6,5 +6,6 @@ turns out to be unnecessary, mark it skipped with a one-line reason. non-trivial new features), briefly state your approach before executing. This lets the user course-correct cheaply instead of mid-flight. -**Dedicated tools over Bash.** Prefer Read, Edit, Write, Glob, Grep over shell -equivalents (cat, sed, find, grep). The dedicated tools are cheaper and clearer. +**Dedicated tools over Bash.** Prefer the host's dedicated file tools (Read, Edit, +Write, and its search tools when it has them) over shell equivalents (cat, sed, +find, grep). The dedicated tools are cheaper and clearer. diff --git a/test/gen-skill-docs.test.ts b/test/gen-skill-docs.test.ts index 533697657..709461d2a 100644 --- a/test/gen-skill-docs.test.ts +++ b/test/gen-skill-docs.test.ts @@ -640,7 +640,7 @@ describe('gen-skill-docs', () => { // Should not have Edit, Glob, or Grep in allowed-tools. // Scope to frontmatter (between the first two --- lines) — the body can // legitimately mention these tool names in prose (e.g., Claude model - // overlay says "prefer Read, Edit, Write, Glob, Grep over Bash"). + // overlay names the host's dedicated file and search tools). const fmMatch = qaOnlyContent.match(/^---\n([\s\S]*?)\n---/); expect(fmMatch).not.toBeNull(); const frontmatter = fmMatch![1];