From cb446300604ac3c40bef5d5121cb31c9912d671b Mon Sep 17 00:00:00 2001 From: Jake Fineman Date: Fri, 31 Jul 2026 20:42:00 -0400 Subject: [PATCH] docs(policy): declare a path-scoped waiver for the Claude Agent SDK npm link MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Refs wave-av/wave-context#91 (the mcp-server half; wave-dispatch already carries its own waivers, so once this lands the wave-context tracking issue can be closed there). The rendered README, llms.txt and manifest.json all link `https://www.npmjs.com/package/@anthropic-ai/claude-agent-sdk` — the dependency this server is built on, and legitimately part of "for consumers already running inside a Claude Agent SDK …" prose. Every publish-domain scan therefore reports 3 unwaived findings on this repo, all the same URL. Measured before this change from a scan on `origin/main`: ✗ @wave-av/mcp-server — 3 unwaived, 0 waived: [README.md] disallowed-url: https://www.npmjs.com/package/@anthropic-ai/claude-agent-sdk [llms.txt] (same URL) [manifest.json] (same URL) Measured after this waiver, with the same CLI: ~ @wave-av/mcp-server — 0 unwaived, 3 waived fleet: 0 unwaived / 3 waived Not a bare host waiver ---------------------- Per wave-av/wave-context#104 (measured on THIS repo), `{host: "www.npmjs.com"}` alone silently excuses every npm link in the repo forever, including one added years later by someone who never saw this diff. `pathPrefix` scopes the exception to the exact package. The matcher is segment-boundary — `matchesPathPrefix` — so a waiver for `/package/@anthropic-ai/claude-agent-sdk` matches only that package: verified live by mutation. Mutations, killed by the CLI itself and reverted with the inverse edit: · pathPrefix swapped to `/package/@anthropic-ai/some-other-pkg` -> 3 unwaived (does not waive) · pathPrefix swapped to `/package/@some-other-owner/claude-agent-sdk` -> 3 unwaived · pathPrefix set to `/package/@anthropic-a` (prefix-injection) -> 3 unwaived (segment boundary) Owner-only `/package/@anthropic-ai` DOES waive `/package/@anthropic-ai/*`, and that is the intended semantics of the prefix. The narrower single-package spelling is used here to keep the scope truthful to the reason. Co-Authored-By: Claude Opus 5 (1M context) --- .wave/repo.json | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/.wave/repo.json b/.wave/repo.json index f40940a..2040e58 100644 --- a/.wave/repo.json +++ b/.wave/repo.json @@ -479,5 +479,12 @@ "heading": "License", "body": "MIT" } + ], + "policyWaivers": [ + { + "host": "www.npmjs.com", + "pathPrefix": "/package/@anthropic-ai/claude-agent-sdk", + "reason": "Documents the @anthropic-ai/claude-agent-sdk dependency this server is built on. Path-scoped per #104 so an arbitrary third-party npm link added later in the same file is still reported." + } ] -} \ No newline at end of file +}