Conversation
Engine half of a coordinated pair with trustabl/agent-reliability-rules#92, on a branch of the same name so the rules-sync job resolves the matching pack rather than main. Neither half should merge alone — check-rules-sync.sh fails if they do. Mirrors openai_sdk/tool_definition.yaml into testdata/rules-fixture and adds cases to policyRuleCases, as TestPolicyRules_AllRulesCovered requires. Five cases rather than four. OAI-028 pairs description_length_lt with has_docstring so an absent description stays OAI-022's finding instead of double-reporting, and the fifth case pins that guard. Note for sequencing: rules#87 (OAI-025/026, the Python pair) appends to the same file, so whichever of the two pairs lands second needs a trivial rebase in both repos — the rule blocks and the test cases are independent and the resolution is "keep both".
|
Thanks @bradAGI. This is the engine half done the way I want to see it: the fixture copy of The test cases hold up when I walk them against the match expressions. Both predicates already ship at schema 14, so leaving Two small things. The diff also removes a stray blank line at the end of Your rebase note against #164 is accurate, and keep-both is the right resolution. |
What the pair adds
The TypeScript counterpart to OAI-025/026. OAI-022 only checks that a description exists, so
"TODO: describe this tool."and"Gets data."pass today. OAI-022's own text calls the description "the model's primary routing signal alongside the tool name" — which is exactly why a placeholder in that slot matters.Two points aimed at assumed mitigations: the Zod
parametersschema constrains the arguments once the model has decided to call this tool, never whether that decision was right; and with handoffs, a stub can route the conversation to the wrong agent, not just the wrong function.What this PR does
openai_sdk/tool_definition.yamlintotestdata/rules-fixture/.policyRuleCases, asTestPolicyRules_AllRulesCoveredrequires."TODO: describe this tool.""Gets data."descriptionfield at allFive cases rather than four. OAI-028 pairs
description_length_lt: 40withhas_docstring: trueso an absent description stays OAI-022's finding rather than double-reporting. The fifth case pins that guard.Sequencing note: rules#87 / this repo's #164 (the OAI-025/026 Python pair) append to the same two files, so whichever pair lands second needs a trivial rebase in both repos — resolution is "keep both." Happy to rebase on request.
Verification