Problem
A static manifest with "tools": "MCP001" (string) passes normalization and lints garbage (iterating characters) instead of failing fast, likely reporting a green audit.
Where
src/static/manifest.ts (tools: manifest.tools ?? []) + src/rules/permissions.ts (iterates target.tools).
Acceptance
Add a failing test first asserting normalize({tools: "MCP001"}, ...) throws. Then fix.
Problem
A static manifest with
"tools": "MCP001"(string) passes normalization and lints garbage (iterating characters) instead of failing fast, likely reporting a green audit.Where
src/static/manifest.ts(tools: manifest.tools ?? []) +src/rules/permissions.ts(iteratestarget.tools).Acceptance
Add a failing test first asserting
normalize({tools: "MCP001"}, ...)throws. Then fix.