Skip to content

feat(tool_call_claims): EBTE tool-call claims for OpenAI, MCP, LangChain (schema 32) - #200

Merged
ericksondelacruz merged 5 commits into
mainfrom
feat/analyzer-ebte-claims
Oct 28, 2026
Merged

ericksondelacruz merged 5 commits into
mainfrom
feat/analyzer-ebte-claims

Conversation

@ericksondelacruz

@ericksondelacruz ericksondelacruz commented Oct 22, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

Nine new rules check that side-effecting tools carry an EBTE (Explanation-Bound Tool Execution) claim and that something checks it. There are three per SDK: OpenAI Agents, MCP and LangChain (Python). Each lives in a new tool_call_claims.yaml pack. manifest.yaml moves to schema_version: 32.

Rule Fires when Severity
OAI-034 / MCP-033 / LC-028 A side-effecting tool has no claim parameter info
OAI-035 / MCP-034 / LC-029 The tool declares claim but never reads it medium
OAI-036 / MCP-035 / LC-030 The claim is only printed, logged, serialized or returned medium

A tool whose claim is checked, or that sits behind a possible mediator (an OpenAI tool input guardrail or an extra decorator), does not fire.

Notes for review

Test plan

  • trustabl rules validate (analyzer at feat/analyzer-ebte-claims): OK: 138 rule pack(s), 364 rule(s) valid under rule schema version 32 (re-run 2026-10-28 after merging main)
  • Rule packs match the analyzer's testdata/rules-fixture byte for byte
  • CI passes

Nine tool-scope rules over the new tool_claim_use predicate, a ladder per
SDK (OpenAI Agents, MCP, LangChain; Python): OAI-034/MCP-033/LC-028 flag
a side-effecting tool with no claim argument, OAI-035/MCP-034/LC-029 a
claim nothing reads, OAI-036/MCP-035/LC-030 a claim only written out or
returned. manifest schema_version 26 -> 27.
OAI-034 / MCP-033 / LC-028 move from low to info, so a repo that has not
adopted claims gets the finding and its fix without failing --strict.
The unused and passthrough rungs stay medium.
Main took schema_version 27 for OBS-009..012 (#184), and the 26 -> 27
bump here merged cleanly on top of it, so move this batch to 28 to match
the engine (agent-reliability-analyzer #276).
@ericksondelacruz ericksondelacruz changed the title feat(tool_call_claims): EBTE tool-call claims for OpenAI, MCP, LangChain (schema 27) feat(tool_call_claims): EBTE tool-call claims for OpenAI, MCP, LangChain (schema 28) Oct 25, 2026
Main took schema_version 28..31 (CI-001..005, CSDK-115, MCPCFG-003,
AGCFG-011) after this branch moved to 28, so move this batch to 32 to
match the engine (agent-reliability-analyzer #276).
@ericksondelacruz ericksondelacruz changed the title feat(tool_call_claims): EBTE tool-call claims for OpenAI, MCP, LangChain (schema 28) feat(tool_call_claims): EBTE tool-call claims for OpenAI, MCP, LangChain (schema 32) Oct 27, 2026
@ericksondelacruz
ericksondelacruz merged commit 0732ee3 into main Oct 28, 2026
1 check passed
@ericksondelacruz
ericksondelacruz deleted the feat/analyzer-ebte-claims branch October 28, 2026 08:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants