Skip to content

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

Open
ericksondelacruz wants to merge 2 commits into
mainfrom
feat/analyzer-ebte-claims
Open

ericksondelacruz wants to merge 2 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: 27.

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: 135 rule pack(s), 352 rule(s) valid under rule schema version 27
  • 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.

This branch has not been deployed

No deployments
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