Your AI agents write the code. I build what proves it can ship.
For teams already running Claude Code, Codex or Cursor: proof before every merge, in your repository and your CI.
Fixed price · €3,500 excl. VAT at launch · 3 places · voir le site en français
01 The demonstration
Three code changes, three verdicts.
semctx, the open-source tool I wrote, reads every diff before merge. It flags what puts a contract at risk, stays quiet when nothing changes, and says what it cannot see.
01Comment reworded
src/greeting.ts
no finding
No contract touched. A quiet result is not a guarantee: the usual checks still apply.
02Required field added to an exported interface
src/cart.ts
+ discountCents: number;WARN · contract_changed_without_test
It asks for a test covering the new field; it does not say the behaviour is right.
03Discount off by one point
src/pricing.ts
- (100 - ratePercent)+ (100 - ratePercent - 1)
no finding · explicit limit
A real pricing bug, outside what the tool proves: no invariant covers the calculation. Test to write: 10% off 10,000 cents must return 9,000.
02 The problem
Your agents write faster than your team can review.
26%
of developers, and as many engineering leaders, rank reviewing and validating AI-generated code as the top bottleneck preventing AI from speeding up delivery.
The bottleneck is no longer writing, it is verification. And when the same agent writes the code, the tests and the explanation, one wrong assumption runs through all three: the tests stay green. I build what makes verification fast and reliable, in your repository and your CI: AI proposes, proof decides.
Review has become your bottleneck
Bounded PRs, a failing test before the fix, independent review, proof attached to the final commit: your engineers review less, and better.
Evidence: case study (in French), AssertLedger(new tab)
Your agents don't know your codebase
Repository rules, domain vocabulary, code index, MCP servers: the context that stops an agent from reinventing your architecture.
Evidence: case study (in French), StacksFinder (in French)
Nobody knows what the AI changed, or why
The impact of every diff computed before merge (PASS, WARN, BLOCK), the agent's decision frozen before the outcome, provenance of changes, CI gates.
Evidence: semctx(new tab), Latent Compass(new tab)
Deeper still: when a decision is a calculation (scheduling, allocation, pricing), I build the engine, and the solver decides, never the LLM. Optimisation page (in French).
03 The instruments
Three instruments, each with what it does not prove.
Around every change an agent makes, three open-source tools I wrote. Each one publishes what it demonstrates, and what it does not.
Solid ink: demonstratedOutline: not established Sources checked on 29 September 2026 · claims register (in French)
1 · Before: the decision
Latent Compass
A flight recorder for an agent's decisions: the options, the evidence and the choice, frozen before the outcome is known. A compass can describe direction without taking the helm.
Diagram — The options and the choice are frozen before the outcome is known. - Demonstrated
- Strict episode contracts, append-only stores where a silent edit is detectable, a replayable offline benchmark. Source: README latent-compass @f66dce1 (new tab)
- Not established
- A measured gain on a live agent. The independent audit keeps the proof status at
PROOF_WEAK/BLOCK. Source: README latent-compass @f66dce1 (new tab)
The first research phase ended in
Source and proof status(new tab)KILL_DISCOVERY: not enough evidence to train a model, so none was trained. The refusal is part of the result. Source: README latent-compass @f66dce1(new tab)2 · During: the change
semctx
Maps every diff to the symbols, contracts, invariants and tests it touches, and returns PASS, WARN or BLOCK before the merge.
Diagram — Each diff is mapped to what it touches, then gets a verdict before the merge. - Demonstrated
- Deterministic verdicts: the demonstration in chapter 01 replays. Sources: README semctx @11465f6 (new tab) · hoklims.github.io/semctx/demo (new tab) · evidence.json semctx 0.3.5 (new tab)
- Not established
- Runtime behaviour: the analysis is static, and its silence is not a guarantee. Sources: README semctx @11465f6 (new tab) · hoklims.github.io/semctx/demo (new tab)
3 · After: the test
AssertLedger
Checks that a regression test really catches the bug: the same test runs on the fixed code, on the known fault and on a neutral control.
Test bench
The same test, three versions of the code. Pick the one that runs:
src/is-even.js · the correct version
export function isEven(value) { return value % 2 === 0; }Test Result “two is even” assert.equal(isEven(2), true)pass “returns a boolean” assert.equal(typeof isEven(2), "boolean")pass On the fixed code, both tests pass: nothing tells them apart yet.
src/is-even.js · parity inverted
export function isEven(value) { return value % 2 === 1; }Test Result “two is even” assert.equal(isEven(2), true)assertion failure “returns a boolean” assert.equal(typeof isEven(2), "boolean")pass On the known fault, “two is even” fails: it sees the bug. “Returns a boolean” still passes: it does not.
src/is-even.js · same result, written differently
export function isEven(value) { return (value & 1) === 0; }Test Result “two is even” assert.equal(isEven(2), true)pass “returns a boolean” assert.equal(typeof isEven(2), "boolean")pass On an equivalent rewrite, both pass: the earlier failure comes from the fault, not from a brittle test.
Verdict across the three versions
- WEAK_ORACLE
- “Returns a boolean” passes everywhere, fault included: it does not detect this fault.
- Selected
- “Two is even” fails on the fault only: the decision selects it.
Example shipped with AssertLedger 1.1.1, reproduced as published and checked against the repository on 29 September 2026. Source: request.json AssertLedger v1.1.1 (new tab) - Demonstrated
- A verdict, the observations behind it and evidence that replays without a model or rerunning the tests; version 1.1.1 on npm. Sources: README assertledger @b9407bf (new tab) · npm assertledger 1.1.1 (new tab)
- Not established
- Sandboxed execution (trusted code only), test frameworks other than
node:test(AssertLedger 1.3 also listsbun:test, not replayed here), general program correctness. Source: README assertledger @b9407bf (new tab)
In the same line
- StacksFinder — deterministic stack recommendations: the score decides, the LLM writes; served to agents over MCP (case study in French).
- temper(new tab) — local, human-reviewed skill distillation for coding agents.
- codex-wayfinder(new tab) — Codex-led governance for manual execution handoffs to Claude Code.
- top-down-diagnosis(new tab) — top-down diagnosis for coding agents, from intent to implementation; bilingual guide and templates.
The same setup on your repository starts with the Agents Diagnostic: five days, fixed price.
04 In a team and in production
The same standard, in a team and with clients.
A product team that ships its agents' work under proof, and two client products in use today, on sensitive data.
Agents that ship under proof
Case study, in FrenchProduct team · unnamed B2B software company
One PR at a time, proven on its final commit; the author never accepts their own work; a proof rule never validates itself.
- In place · declared
- Four practices out of five.
- In progress · declared
- CI is the authority, not the agent's text.
- Not established · declared
- Before/after figures, still being measured.
Declared, no public source: employer not named.
ChoixLucide
In productionAI SaaS · relationship compatibility · client
Multi-provider AI architecture with automatic fallback for report generation, Stripe subscriptions, referral programme.
Le Petit Chêne
In production · declaredBusiness software · social care sector · client
Rolling 90-day attendance quota computed automatically, generated PDF amendments, encrypted social security numbers, audit log, more than 900 tests.
« Guillaume a rendu ChoixLucide solide en production : architecture IA qui ne lâche pas, choix techniques clairs, délais tenus. Je le recommande. »
Other work — Clairvox, AetherJudge, PokeForge, OCO: project index (in French).
05 Offers
Start with five days, at a fixed price.
Entry point
Agents Diagnostic
Five days to measure your review, audit your agent setup and put a first gate in your CI.
€3,500 excl. VAT launch price · 3 places
Installation sprint
Three to four weeks: agent context, review pipeline, CI gates, team training.
from €15,000 quoted after the diagnostic
Fractional AI tech lead
One to two days a week to hold the gates and bring the team up to speed.
from €4,000 / month monthly commitment
Prices are shown so you know what to expect before writing. The sprint is quoted once the diagnostic is done. Offer details and terms (in French).
06 Contact
Tell me what hurts.
In a few lines: your agents, your CI, what blocks (review, regressions, context). I will tell you whether it is my field.
A calculation problem instead? The Diagnostic Calcul (in French) gives a quantified verdict in five days.