Yieldpoint

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 --enforce    # blocks

MCP server — so the agent can ask

Registers seven tools, including a zero-argument yieldpoint_review the agent can call after finishing a set of edits.

yieldpoint install-mcp --client cursor

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/.

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.