# the oracle Ask it anything. It answers with conviction, never twice differently, and keeps score of how often it was right. The conceit is the mechanism: a verdict is **derived from the question**, not drawn from chance. `sha256(normalized question)` picks the stance, the confidence (52–98 — it never admits to a coin flip) and the omen it claims to have read. So asking twice gets the same answer, "Will it rain?" and ` WILL IT RAIN!!! ` are one question, and the ledger can be scored: every verdict can be marked **right** or **wrong** afterwards, and the front page reports what the oracle actually achieved against what it claimed — `Right 61%, claimed 84%. It talks a better game than it plays.` That last line is the only real thing here. The stances are theatre; the calibration is arithmetic over what you told it. ## Using it Ask on the front page; you land on the verdict's own page, which is a permalink you can come back to when you know how it turned out. `/ledger` holds everything, filtered by all / unjudged / right / wrong. ## Running it ```sh PORT=8080 FORGE_APP_DATA=./data bun run src/server.ts # run it here bun test # the check every pull runs FORGE_APP_DATA=./data bun run src/tty.ts # the terminal interface ``` It also has a terminal — the exact command is in `FORGE_APP_SSH` when the app runs, and the footer prints it. `j`/`k` move, `a` asks, `r`/`w` score the verdict under the cursor, `u` takes a score back, `q` leaves. Same ledger as the web page. ## Shape | file | what it holds | | --------------- | ---------------------------------------------------------- | | `src/oracle.ts` | the mind: normalize, derive a verdict, score the record | | `src/db.ts` | the ledger: one row per question, asking again is not new | | `src/pages.ts` | every page, server-rendered, script-free | | `src/server.ts` | the door: security floor, body caps, the table of paths | | `src/tty.ts` | the same ledger in a terminal | Everything it keeps lives under `FORGE_APP_DATA`, which is what makes production data and preview data two different things: a preview starts as a copy of production's verdicts and never writes back. No dependencies. No JavaScript on the page.