From cb4425627ed1779e018a3c7d154bd2d3d79b55ea Mon Sep 17 00:00:00 2001 From: Ian Jhumel Bautista Date: Sun, 7 Jun 2026 16:34:01 +0800 Subject: [PATCH] fix(mcp): drop orphaned go rules MCP-015/016 to restore CI parity MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The hotfix merge (#20) kept the go rules MCP-015/016 on main, but go has no fixture, discovery, or rulebook entry on main — so the engine rules-sync and rulebook gates are red (production ships rules the fixture/docs don't mirror) and the rules never fire anyway (no go discovery in any current build). Restore mcp/tool_definition.yaml to the pre-language state (MCP-001/002/003/011, byte-identical to the engine main fixture), uniformly staging all four languages for one coherent re-add behind v0.1.4 (see #22). Safe to merge now: removing rules never breaks a binary. --- mcp/tool_definition.yaml | 52 ---------------------------------------- 1 file changed, 52 deletions(-) diff --git a/mcp/tool_definition.yaml b/mcp/tool_definition.yaml index 217d283..ed24801 100644 --- a/mcp/tool_definition.yaml +++ b/mcp/tool_definition.yaml @@ -102,55 +102,3 @@ rules: fix: > Provide a concise `description` string in the registration config stating what the tool does and when a model should call it. - - - id: MCP-015 - title: Go MCP tool has no description - severity: low - confidence: 0.85 - language: go - applies_to: - - mcp_tool - scope: tool - match: - has_docstring: false - explanation: > - An MCP server authored in Go advertises each tool's description to - connecting clients as the text a model uses to decide whether to call it. A - `mcp.NewTool("name", ...)` with no `mcp.WithDescription(...)` option (or an - `mcp.Tool{...}` whose `Description` is empty) gives every connecting model - nothing to route on, causing wrong-tool or skipped calls across all clients - of the server. - fix: > - Add `mcp.WithDescription("...")` to the `mcp.NewTool(...)` call (mark3labs/ - mcp-go), or set the `Description` field on the `mcp.Tool` value (the - official go-sdk), stating what the tool does and when a model should call - it. - - - id: MCP-016 - title: Ambiguous Go MCP tool name - severity: low - confidence: 0.85 - language: go - applies_to: - - mcp_tool - scope: tool - match: - name_in: - - process - - handle - - run - - do - - execute - - perform - - work - - thing - - stuff - explanation: > - A Go MCP tool's name is the first argument to `mcp.NewTool(...)` (or the - `Name` field of an `mcp.Tool`). Names like `process`, `handle`, or `run` - give a connecting model no signal about intent. Because an MCP server is - consumed by clients the author does not control, an ambiguous name degrades - tool selection everywhere the server is mounted and collides more easily - with similarly-named tools from other servers in the same session. - fix: > - Rename to a verb-object form, e.g. `summarize_invoice`, `fetch_weather`.