Conversation
Keep the test pack in sync and cover fire/silent/zero-param cases for the PHP type-hint heuristic. Co-authored-by: Cursor <cursoragent@cursor.com>
Mirrors the rules-repo renumber. bradAGI's open PR stack claims MCP-023 through MCP-028; a duplicate ID is a loader-level refusal, not a test failure. Updates the fixture, both test cases, and the ARCHITECTURE.md PHP rule list. Co-authored-by: Cursor <cursoragent@cursor.com>
|
Thanks @eulestadt. This is the fixture half of trustabl/agent-reliability-rules#80 and it holds up. The YAML in Same coordination note as on the rules side: MCP-029 is also claimed by #135, #172, trustabl/agent-reliability-rules#94, and trustabl/agent-reliability-rules#100, so whichever pair merges first keeps the ID and the rest renumber. We will sequence that. This needs to merge together with trustabl/agent-reliability-rules#80, and the rationale doc in trustabl-rulebook#45 rides along with the pair. |
|
Closing. To be clear about what this is and is not: the review found no fault with the work. Several contributors picked the same ids independently, and we are settling each id on a single pair rather than renumbering across six forks. Thanks for the contribution. |
Fixture mirror for MCP-029 — the PHP sibling of
MCP-002, untyped tool parameters — from trustabl-rules#80, byte-for-byte. No engine code, no new predicates, no schema bump.Renumbered from MCP-023 to clear a collision with rules PRs #82/#85/#88/#91, which claim 023 through 028. A duplicate rule ID stops the loader at startup, so shipping both would have broken every scan rather than failing a test. Reasoning is on #80.
ARCHITECTURE.mdis updated in the same commit since it enumerates thelanguage: phprules — that line now reads MCP-019/020/029.Three test cases.
searchDocs($query, $limit)fires; the fully hinted version is silent onhas_typed_params;ping(): stringis silent onhas_params. That third one is worth a look, becausehas_params: trueis doing real work in the match and a rule that fired on every zero-argument health check would be pure noise.go test ./...passes andcheck-rules-sync.shreports the fixture in sync against a local checkout of the #80 branch. I also scanned a PHP server end to end and got the finding atsrc/Tools.php:10-13, with the typed, zero-param and mixed-hint handlers all quiet.On that last one —
HasTypedParamsis set when any parameter carries a type:so
mixedHints(string $query, $limit)reports nothing despite$limitbeing bare. I confirmed that with a scan rather than inferring it. It's pre-existing shared behavior — nine packs match on the same field — so tightening it would changeMCP-002and eight others and belongs in a separate PR. It's documented in the rationale doc and it's why the rule ships at 0.85.Until #80 merges, the
rules-syncjob will fall back tomainand report this fixture file as production-only, becausegit ls-remotecan't see a branch on my fork. That red check is a visibility artifact rather than real drift.Rationale doc is trustabl-rulebook#45.
Made with Cursor