Integrations
One engine, several doors. Each answers the same question at a different moment in the loop.
Editor hook — the enforcing half
Runs before an agent's edit lands and can refuse it; this is the only surface that prevents a weakening rather than reporting one afterwards.
yieldpoint install-hook --advisory # reports only
yieldpoint install-hook # blocks (the default)
MCP server — so the agent can ask
Registers eleven tools, including a zero-argument yieldpoint_review the
agent can call after finishing a set of edits.
yieldpoint install-mcp --client cursor
The three routing tools are advisory contracts: they build evidence, a bounded handoff capsule and a handoff decision. They never choose a provider or send data. Read the routing guide before enabling host automation.
Pre-commit
repos:
- repo: https://github.com/tensilestream/yieldpoint
rev: v0.1.1
hooks:
- id: yieldpoint
The hook runs review --staged, which asks git for the staged diff itself. Do not use check --diff - here: pre-commit gives a hook no stdin, so it reads an empty diff and reports ok on everything.
CI
- run: pip install yieldpoint
- run: yieldpoint review --against origin/main --json
Exit 1 on findings, 3 when nothing could be analysed. Treat 3 as a failure in any pipeline that matters: it means the gate did not run, which is not the same as passing.
Agent frameworks
A LangGraph adapter ships in the package, with a router that turns a verdict into an
edge. The unverified status has its own unmapped edge by default, so a graph
that never considered the case raises rather than quietly applying an unchecked change.
from yieldpoint.langgraph import make_router
graph.add_conditional_edges("verify", make_router(on_unverified="escalate"))
Runnable examples for plain loops, CrewAI, the OpenAI Agents SDK, fan-out and long-running sessions are in examples/.
Node and Java graph adapters
The Node package and Java adapter call the same installed yieldpoint
CLI; they do not carry a copy of the rule engine. Put either verifier node between
generation and apply, then route unverified explicitly.
npm install @tensilestream/yieldpoint-langgraph @langchain/langgraph
mvn dependency:get -Dartifact=io.github.tensilestream:yieldpoint-langgraph4j:VERSION
See the runnable Node example and Java example. The CLI JSON contract covers graph, hook and CI integrations.
Measuring it
yieldpoint stats # totals, plus a per-turn timeline
yieldpoint stats --html # the same, as a page
yieldpoint export # the ledger as JSON Lines
Recording is local only. To send it somewhere, name a command in
YIELDPOINT_SINK and Yieldpoint pipes each turn's events to its stdin —
it never opens a socket itself.