Merge Graph

Lab notebook · pinned model jev-1.13.0 (System One) · PR classification

Classification Lab: paste a public PR and read typed statuses — disposition, change kind, and risk/CI posture — plus the legal reasoning trail that produced them. Illegal hops clamp; mushy confidence after progress escalates to Needs human; private or forbidden input is refused. Not freestyle chain-of-thought. Not “AI reviews your PRs.”

factorieshitldecision-graphmerge-graphjev

Hypothesis

We test Merge Graph as a classification harness: Jev (jev-1.13.0, System One) may only take legal next hops on a fixed policy graph while assigning disposition, kind, and risk/CI labels for a public PR.

Product success is honest typed statuses + a legal trail you can inspect. Guardrail success underneath is stayed legal + escalated correctly — illegal edges clamped, Needs human only after progress when confidence is mushy, private/forbidden input refused. Success is not review accuracy, not agreement with human reviewers, and not a claim that the Lab reviews, merges, or comments on GitHub.

Null we reject: freestyle CoT as the product; START→Needs human in one hop as success; multi-lane walk diversity as the hero win; any accuracy % or “correct review” claim.

Method

  1. Run a labeled case or paste a public GitHub PR (owner/repo/pull/N). Cases still demo how labels + receipts behave: Happy legal · Mushy → Needs human (after progress) · Illegal edge clamped · Private / forbidden refused · optional Jailbreak still stays legal. Placeholder: a well-known public OSS PR (e.g. nodejs DEMO or BullMQ).
  2. Status panel (hero): one Disposition · one Kind · Risk/CI posture. Graph + ticks (secondary): “How we got these labels” — sparse canvas-set; bold = this run’s trail.
  3. Each tick, Jev may choose only among edges that are legal right now. Off-catalog attempts are clamped — receipt shows illegal_clamped. Confidence gate: after substantive progress (Prove/Ship rules from path-diversity), mushy conf → Needs human with ask_human_reason. Private / non-public input fails closed (Refuse).
  4. Instruments: status chips, path, tick count, latency, conf gate, latest choice, stayed_legal, illegal_clamped, ask_human_reason. Receipts on a secondary strip and on nodes — not in the hero status row.
  5. Disposition terminals are simulated (Ready to merge · Needs human · Hold · Refuse). This Lab does not post, merge, or comment on GitHub.

Why System One

LLMs draft code and prose all day. Someone still has to assign typed statuses under a policy graph. Jev is that layer: typed answers, parallel ticks, confidence visible — not a magic “reviewed your PR” strip.

The product is the status panel; the graph is the trail. Receipts show measured escalation (ask_human receipts), not launch multiples.

Factory cell

Agents draft → CI → tests → review gates — context for why classification matters, not the hero demo. Unused branches stay dim so you can see what could have happened on the map.

LLM + Jev

A strong LLM can call Jev every tick the way it calls any skill: ask for the next edge among what is legal now. The trail is legal hops, not freestyle CoT. No accuracy % claimed here; open the checks.

HITL

Needs human and Hold are both valid dispositions. Stopping is part of the method. High confidence is still a choice inside the map.

Guardrail cases

Lab notebook · Merge Graph · Classification Lab

Status panel — disposition · kind · risk/CI

Paste a public PR · read typed statuses · open the trail for how we got these labels

Simulated terminals only — this Lab does not merge or comment on GitHub.

Status

Run a case or paste a public PR — disposition, kind, and risk/CI land here.

How we got these labels

Reasoning trail · Read → Smell → Prove → Ship → Decide · unused nodes dim

auto G1confirm peachNeeds humanclamp peachdim ≈ 10% ink = unused nodes

Lane 1

Read the change

intent, modules, blast

Lane 2

Smell the risk

failure, auth, rollout

Lane 3

Prove it

CI, regression, smoke

Lane 4

Ship shape

hygiene, runbook, handoff

Lane 5

Decide

thin terminals

STARTSkim IntentClassify KindHot-Path ScanMap ModulesFailure ModesAuth SurfaceMissing TestsPerf SmellCI MapAdd RegressionContract CheckKill SwitchHygiene PassHandoffChangelogFlag DefaultChecks FreshNeeds humanSimulate ApproveSimulate MergeDoneRequest ChangesDeferBlocked

Pick a case, run the canned demo, or paste a public PR. Statuses land above; the trail fills in here.

Observation

Same policy graph, different cases — different status stories and different trails. Live runs print disposition/kind/risk-CI plus guardrail receipts (stayed_legal, illegal_clamped, ask_human_reason, ticks, terminal).

When Lab measures the scenario pack, this section gets a table of real runs only — columns: case · disposition · kind · risk/CI · ticks · stayed_legal · clamped · terminal · ask_human_reason. No invented rows. Until those runs are filed, prose hold: measured sample not published yet.

Success to look for: Happy legal is multi-tick with Prove/Ship before Decide when the trail calls for it; Mushy → Needs human only after progress (not START→HITL); Illegal clamp still forms labels and shows the clamp; Private refuse is Refuse, not a fake trail; Jailbreak stays legal. Schema ≠ truth — open the checks yourself; we do not claim review accuracy.

Why this shape

Statuses are the product; the graph is the evidence. A known legal map, dim unused branches, per-tick receipts, and visible clamps/escalations let you inspect how the Lab labeled the PR — not freestyle CoT, not correct/complete code review, not autopilot merge on GitHub, not Eval Lab win rates.

Lab footnotes

Schema ≠ truth.

High confidence is still a choice inside the map. Labels are claims about the PR in this Lab, not ground truth CI or blast scores. Open the checks yourself.

What this is / isn’t.

Is: playable PR classification Lab; typed Disposition · Kind · Risk/CI; legal trail with HITL Needs human after progress; public PRs only; measured receipts when filed; simulated terminals; model pin jev-1.13.0 (System One). Isn’t: “AI reviews your PRs”; correct/complete review; accuracy % / F1 / human agreement; Lab posts/merges/comments on GitHub; replaces your reviewer; freestyle CoT as the product; START→Needs human one-hop as success; private repos; invented Observation rows; launch multiples; multi-lane walk as the hero win.

Related

Model: jev-1.13.0