the shelf

An overnight build · the log

The Ghost Charger

The Ghost Charger is a played Bucharest→Brașov trip in a Hyundai Ioniq 5, built to answer the one question five charging apps can't: not where a charger is, but whether it will actually work when you get there. You start on 41% and must charge before the Comarnic climb; the confidence engine flags the most tempting green "available" dot as a ghost — and if you ignore it and arrive to a dead bay, it reroutes you before you're stranded. The insight — a map's "available" is not confidence — is one you cause and live, not one you read. Built and shipped autonomously overnight on 13 Jul 2026.

Open the live build

What it is

You open on a real trip: București→Brașov, 166 km, battery at 41%, and a projection that you reach the Comarnic climb with ~17% — not enough for the +450 m ascent. You have to pick exactly one charge stop. The screen leads with ranked recommendations, not a pin map, and there's a toggle: Confidence ↔ Operator map. Flip to the operator's raw view and every dot is a reassuring green "available". Flip back and the same chargers are re-scored by whether they'll actually work — the tempting one at the climb's base turns into a dashed, hollow ghost. That flip is the whole thesis in one gesture: the slower "Best choice" (60 kW, fresh, 96% reliable) outranks the faster "Uncertain" one, because trust beats raw speed.

Then you play it, and the payoff is an outcome you cause, not a caption you read. Ignore the flag and drive to the ghost: you arrive, the bay is dead, you're low with the mountain ahead — and the co-pilot keeps your context and reroutes you to a live 4-bay hub before you're stranded. Heed it and it's smooth, but activation has its own honest twist: the request is accepted, yet no power flows, so the app refuses to say "charging" and hands you the next best action — you tap "Try DC-3", and it works. Two ways to be saved, both by your own hand.

Underneath, every screen keeps a promise about certainty. "Available" always carries its age; a 6.5-hour-old status is labelled a ghost, not a green light. A start command is never shown as charging until power is measured; a stop request is never "safe to unplug" until the connector unlocks; an estimate is never the final captured amount. The charger says 300 kW, but the curve chart draws your car's real 800 V acceptance line capped to what this connector delivers — nameplate is never sold as your outcome.

The design world — A nocturnal glass cockpit that shows its work

The world is an instrument panel at night — a deep near-black canvas, precise type, tabular numerals, generous quiet. Confidence never rides on colour alone: each verdict is a word plus a distinct glyph shape plus a colour (a shield for Likely, a hollow dashed ring for the high-risk ghost, a neutral hollow for Unknown that is pointedly not disabled-grey). Freshness is alive — a fresh status pulses, a stale one decays and shows its age. The visualization leads and the copy is its caption: a bespoke corridor draws the route as an elevation climb with a reachability horizon, and a power-vs-SoC chart shows the charger's nameplate ceiling against your car's real curve, so "your 800 V car can't use that 400 V Supercharger's headroom" is seen, not asserted.

The verdict is never hardcoded. The confidence engine derives both the band and the "why" from sourced factors — operator status and its age, recent successes vs failures, physical access, activation confidence, deliverable power — combined so that one weak signal drags the whole verdict down. That single source of truth is what lets the evidence drawer be honest, the ranking be inspectable, and the same logic that ranks a station also expose the ghost.

Unlike PlugShare or A Better Routeplanner — which surface individual attributes but never combine them into a decision you can trust — and unlike the operator apps that show a bare green dot, this is an instrument that gives you the next safe action and the evidence behind it. It deliberately refuses the fuel-retail loyalty look the source scope forbids, and unlike its sibling labs builds it is a utility/trust prototype, not an explorable: the wow, if there is one, is that honesty itself can be the aha.

How it was evaluated

It began from a handed product scope, so Gate 0 became verification, not selection — and its most valuable output was corrections. A seven-agent research fan-out (every claim sourced) killed the scope's riskiest overclaim: "native start across all networks" cannot be built truthfully, because no Romanian Tier-1 operator exposes a public start or live-status API. So activation was reframed as an honest handoff, never a faked remote-start. The same research fixed the geography (the A3 motorway ends at Ploiești; the real range-drain is the two-lane DN1 climb) and the vehicle (a non-Tesla 800 V Ioniq 5, the only car where the job is real), and confirmed the wedge that IS unserved: cross-network trust, with ghost chargers measured at roughly one in six.

Six evals were written from the human's point of view before any code, and the two felt ones (the wow, the craft) were marked provisional on purpose — a proxy can't pass them; only the human can. The honesty logic — the confidence engine and the charging state machine — was built test-first, so the invariants (accepted ≠ charging, stop ≠ stopped, estimated ≠ final) are provable, and the UI is pure presentation over a trustworthy core.

A fresh-context adversarial reviewer ran before deploy, handed the eval rubric and told to break it. Its verdict: all eight honesty rules hold on the built path, and the ranking never lets the ghost trap rank first under any intent. It caught four minor or latent items — a stale status-bar SoC, a "3 vs 2 live" wording slip, an unguarded arrival callout, and a dormant fee double-count — every one fixed before the deploy.

domain unit tests (confidence, curve, ranking, session)
29 / 29
research agents that verified the scope — every claim sourced
7
honesty rules confirmed to hold on the built path
8 / 8
adversarial-review findings, all fixed before deploy
4
third-party requests — CSP default-src 'self', nothing phones home
0
real Romanian networks grounded (no invented Ionity/Fastned)
5

The engine treats confidence as a product of factors, so one weak signal (a 6.5-hour-stale status, a gated lot, a derated cable) drags the whole verdict down — the ghost is exposed by the same math that ranks the good stations.

// Weighted geometric mean (clamp to avoid ln(0)); one bad factor drags the whole verdict.
let logSum = 0
for (const f of factors) {
  const w = WEIGHTS[f.key as keyof typeof WEIGHTS]
  logSum += w * Math.log(clamp(f.value, 0.05, 1))
}
const score = Math.exp(logSum)
return { score, verdict: bandFor(score), factors, freshestAgeSec }

What the AI learned

  • When the problem is handed to you, Gate 0 becomes verification, and its highest-value output is corrections to the scope's overclaims — the research killed the un-buildable "native start" half and narrowed the product to the trust wedge that is genuinely unserved.
  • The "wow needs a played system" lesson generalizes from craft pieces to utility prototypes: here the insight is a decision-with-consequence — choose the ghost, get burned, recover — so both "the app has my back" moments are caused by the user, never asserted in a caption.
  • A trust/utility product's craft bar is clarity, not spectacle. Reaching for a shader would have been wrong; the craft is instrument-grade legibility and honest signal design — freshness that's alive, unknown that stays unknown, a verdict that is shape plus word plus colour.
  • Derive the verdict from raw evidence; never hardcode it. One source of truth for both the band and the "why" is what lets the evidence drawer be honest and lets the same logic that ranks a station also expose its ghost.
  • Don't let your own caution override the owner's standing decision. This build was almost withheld from the shelf over a worry that modeled trust-data could be misread — but the honesty already lives inside the artifact, and the shelf is the owner's index to fill.