Rough cut · Desire trace · 2026-04-09

Say the rough idea. Get a clear trace.

This is the demo as it ran on my laptop the first day it worked. One form, one trace object, one local store. The Python server isn't on this page, so the form falls back to a small in-browser mock — you can still click through it, the shape is the same.

Input → trace → save → recall Mode: checking... Function-first

What's rough on purpose

  • It's the smallest version that does the thing. A form, a trace object, a save, a recall. No accounts, no second styling pass, no error states for cases that haven't happened yet.
  • Browser-only identity and throttle. You get a random handle (editable, persisted in your browser only — no signup, no email, nothing leaves your device). The same browser enforces a rolling token-per-minute throttle; if a single tab tries to burn through too many, it asks you to wait or to email me for a personal demo. This is friction, not security — but for a demo, friction is the point.
  • The page on this site runs in mock mode. No serve.py, no OpenAI key, no traces.jsonl. The mock returns a stub trace from the input you typed so the save/recall loop is observable in your own tab — your traces never leave it.

The point isn't this specific demo. The point is that putting an unfinished thing somewhere readable is how the next person learns with less hesitation than you did.

Try it

Type the idea the way a real person would say it. The trace should make it easier to review, not harder.

Output

The server returns a trace object with a summary, assumptions, open questions, a next step, and a plain-English version.

{}

Recent traces

On this page, history lives in your tab only — it clears when you close it. The local server version keeps a JSONL file instead, but the same shape.

What gets saved

The original input

What the person actually typed.

The trace

A clearer version with assumptions, questions, and a next step.

The mode

Mock output or live OpenAI output, depending on server settings.

The audit trail

A record you can reload later from the local JSONL store.

How it works

1

The form captures a rough idea, audience, and context.

2

The server returns a structured trace, using a mock function by default. On this page, that mock runs in your browser instead of on a server.

3

If OPENAI_USE_LIVE=1 and OPENAI_API_KEY are set, the local server asks OpenAI for the trace instead.

4

Every result is saved — to traces.jsonl when run locally, to sessionStorage when run here. Either way it can be reloaded from the page.

5

Identity is browser-only: a random handle in localStorage, plus a rolling token-per-minute throttle that asks you to wait — or email me for a personal demo — when it trips. No accounts, no server-side state, no email required.