Agents that carry code into Goeteia — each one leaves proof, not promises.
Point it at one JavaScript or TypeScript web file — a React component, a DOM script, a piece of pure logic — and it hands back the same thing rewritten in Goeteia Scheme, together with the differential test that proves the two behave identically. It never claims an equivalence it did not actually run.
A same-result porter, not a JavaScript-in-Scheme runtime. It ports the
UI subset and the ordinary logic around it into idiomatic Goeteia, then
drives both the original and the port through identical inputs and events
and compares the outputs. Where a pathological JS corner is genuinely
load-bearing, it stops and leaves an honest ;; TODO(port)
with the failing case — rather than emulating all of JavaScript.
The single acceptance criterion is behavioral equivalence, shown with a diff harness that runs both sides — never assumed.
Understand → translate → build the oracle → run & compare → repeat, until the harness reports full equivalence.
useState→signal, useEffect→effect,
JSX→(web sx) — not a transliteration.
Delivers the port, the runnable harness, and a report of exactly what diverges and what needs a human decision.