eureka-site/BRIEF.md

227 lines
14 KiB
Markdown
Raw Permalink Normal View History

# Eureka landing page: handoff brief
## Status of this brief (operator correction, 2026-09-25). Read this first.
This brief was written by the Eureka-running Self agent **without operator
guidance**, to capture its own perspective. Its authority is invented. Treat it
as one input: useful for its evidence pointers and the campaign defects below,
**not binding direction**. `gpt6-copy.md` (drafted by GPT-6 "Sol") came out of a
longer operator conversation about the direction of Eureka and GameCult and
carries more operator intent, though the copy itself is a draft to workshop.
## Operator rulings (2026-09-25). These settle the open questions below.
- **Standalone site, in this repo.** It will be the
**public** repo `GameCult/eureka-site`, served at **eureka.gamecult.org**, a
**GitHub Pages static site**, in the GameCult brand. (This originally said
"built with GameCult's Quartz setup"; the Quartz part was superseded later the
same day. See the last ruling below.) The public repo
https://github.com/GameCult/eureka-site was created on 2026-09-25, with `main`
tracking origin. The GitHub Pages deploy and the eureka.gamecult.org domain
are **not set up yet**. (An earlier draft of this section said
`epiphany-site`; that was a mistype.)
- **The site is Eureka's, not Epiphany's.** The lineage still matters (*"the
lineage is the whole story"*), but **Eureka is Epiphany's sister, not her
descendant**: two Personas developing side by side on a shared substrate (the
Mind schema), not a branch. Same faculty vocabulary (Self, Imagination, Hands,
Soul, Mind Steward); Epiphany keeps findings in typed state, Eureka in
committed docs and agent reports (see `SKILL.md`'s opening and
`references/epiphany-comparison-2026-09-15.md`). Read Epiphany itself,
the Epiphany repo (README, `docs/`), before shaping that section.
- Naming GameCult projects (CultLib, StreamPixels, Epiphany) is fine. Still never
name the streamer or any private individual.
- **Cost framing supersedes "What NOT to claim" below.** The ~60% of a weekly
quota spent in one day was legitimate work, not waste; the regret was spending
it on a more expensive, more verbose model just as Opus 5.5 released. Do not
describe it as waste or as off-critical-path Soul loops. "Not speed" still
stands.
- **Copy direction.** (a) Soften autonomy-leaning lines while keeping "the
operator owns decisions". (b) Lead with specific defects and why the green
suite missed them, including the StreamPixels/CultLib campaign defects listed
below. (c) Cut length. The staccato one-line style stays but is used sparingly
and animated: lines slide in and away one by one, then the page returns to
paragraph copy. Style reference the operator loves: https://acko.net/.
- **2026-09-25, later: the page is a scroll-driven WebGL flight in full PS1
style, hand-built static, NOT Quartz.** This supersedes the Quartz stack named
in the first ruling above (repo, domain and GitHub Pages still stand). The
prototype lives in `prototype/` and is served at
https://yggdrasil.gamecult.org/eureka/ as a stopgap until eureka.gamecult.org
exists on Pages; deploy per
GameCult's ops runbook for the Eureka prototype. Approved
route, in order: hall/monument; hatch + shaft; Eureka organ chamber; lattice
(Soul's probes, mutation testing); specimen gallery (one real defect per
case); archive (rules/evidence); Epiphany's chamber (all eight organs in
scaffolding: the sister reveal); return to the hall with the monument split
open, plus install. Organs are PS1 demakes of their Aquarium renditions
(Aquarium's `docs/epiphany-agent-sdf-visual-language.md`) using the
Aquarium organ identity palettes as-is; the GameCult brand does not define
those colours, so they are a declared exception. The page names the memory
organ **Life**, not "Mind Steward". The Eureka skill made the same rename on
2026-09-25 (GameCult/Eureka commit `bd8dc2e`; "Mind Steward" survives there
only in dated history). The same day, the skill also started sizing each cut
against Hands' context budget (commit `7e2f66a`). The operator's wider agent
doctrine adopted the name Life the same day. Life's scope stays narrow (keeping
memory honest) until a typed memory service owns each agent's mind. Then it
takes on continuity, pressure and resuming after interruption, as it already
does in Epiphany. Epiphany's own naming is Epiphany's to change.
## Operator rulings (2026-10-09). These supersede the route's ending above.
- **The last chamber is the vanishing twin, not a sister reveal.** Epiphany is
archived (Eureka mind ruling `eureka-substrate:ruling:operator-archive-epiphany`,
2026-10-01: "Eureka absorbed her in the womb as fetuses sometimes do"). Keep
Epiphany's chamber and its organ models, recast: the scaffolding stands mostly
empty and her organs drift into Eureka's orbit. The lineage stays; the
"sister" framing above is superseded. The chamber's name is the vanishing twin
(operator, 2026-10-09: "I believe you called it a vanishing twin. Much more
poetic"): the twin absorbed before birth, whose cells the survivor carries.
- **Eyes is a full faculty.** Eyes joins Eureka's chamber at full detail, with
its own copy: evidence before every fork, advice owned instead of deference to
the operator, research always kept. The faculty copy counts six, not five.
Operator, 2026-10-09: "Eyes turned out to be one of the more valuable agents
in Eureka after the recent doctrine change. Building has never been so comfy."
- The copy is fact-checked against the live system before it ships; the audit is
`docs/research/landing-claims-audit-2026-10-09.md`.
---
This was written 2026-09-24 by the Self agent that has been running Eureka on a
live multi-repo campaign for two days: CultLib's TypeScript QUIC transport, and
StreamPixels' service and Unity overlay. It is a boots-on-the-ground account for
the agent who builds the landing page. Read it, then read the sources it points
to. Where this brief and a source disagree, the source wins.
## What you are selling, in one breath
Eureka is a Claude Code skill (MIT, public at https://github.com/GameCult/Eureka).
It splits a big change across separate agents: one maps it, one executes one cut
at a time, and one that did not write the code is told to prove the executor
wrong. The operator rules on genuine product decisions. **Nothing grades its own
work.**
The problem it answers: an agent that plans, implements, tests and reports on its
own work will hand you green tests and a clean report over a broken machine. That
isn't because it lies. Its tests pin its own spelling, and its report is written by
the party with the most reason to believe it.
## Sources of truth (read these, do not restate them from memory)
The skill repo is checked out at `C:\Users\Meta\.claude\skills\eureka\`. Its
remote is `GameCult/Eureka`.
- `README.md`: the public pitch, already written well. **Your page should read
as the same voice, not a rewrite.** Start from its opening two paragraphs.
- `SKILL.md`: the faculties (Self, Imagination, Hands, Soul, Mind Steward,
Operator), the loop, and the git and tooling scars.
- `references/postmortem-cultcache.md`: the headline evidence. **29 of 32 Soul
passes found real defects that the implementer's own green tests had passed,
about 75 in all.**
- `references/changelog.md`: how the skill changed and why, with evidence per
entry.
- `docs/assets/`: the mascot (`eureka-mascot-4x.png`, `eureka-mascot.png`,
`.kra` sources) and `eureka-mascot.prompt.md`, its generation prompt. The
mascot is a pixel-art inspector crouched on a cracked ALL TESTS PASSING
monument, prying up a panel stencilled GREEN, beside a specimen case of pinned
mutants, one still moving and labelled SURVIVED. It *is* the thesis, so use it.
## What it looked like in practice (this campaign, 2026-09-23/24)
Every item below is on record in the named repo's map or commit history. Each was
found by a pass that did not write the code, and in most cases the implementer's
suite was green:
- **Every overlay would have dropped 10 s after connecting.** A handler swap
meant the provider never recorded CONNECTED, so its handshake timer evicted
healthy peers. No test lived past 10 s. (CultLib `docs/typescript-quic-realtime-cut.md`.)
- **A use-after-free in a native binding's `release()`.** Reproduced as a core
dump under thread-pool saturation, and later pinned by a regression test that
crashes with the old order.
- **A memory leak of about 53 bytes per native call.** That is roughly 36 MB a
day when idle and gigabytes under load, with a flat JS heap the whole time.
- **Every subathon event after the first would have failed in production.** A
fractional value was written to an `integer` column, and the tests used
whole-second fake timers.
- **Split authority:** one transport honoured an admin toggle and the other read
raw state, so a creator who switched the subathon off could still be served it.
- **A test double that hid a real bug:** the fake executor gave every beat its
own completion callback, and the real one had a single shared slot. A late
finish released the *next* beat early, so animations overlapped.
- **"Pre-existing" is not a diagnosis:** a failing test that many agents walked
past had only ever passed on machines holding a git-ignored licensed asset
pack.
- **The honest half:** implementers repeatedly *stopped at forks* instead of
bluffing through, and reported their own vacuous tests. One refused to break
104 scene references; another found that a mutation passed because its test
read expected values from the code under test.
## What NOT to claim
- **Not speed.** Eureka is slower and more expensive than one agent. On this
campaign the operator watched **about 60% of a weekly quota go in one day**,
much of it on deep Soul loops that weren't on the critical path. The skill now
tells Self to spend through scope: one Soul gate per cut, fix batches only for
critical-path findings, narrow cheaper passes for small deltas.
- **Not "the agents are smart enough now."** The point is the opposite. Self (the
coordinator) was corrected by the operator several times in this campaign, for
overbuilding an authentication scheme for a single known server and for
calling authored data "a pipeline". Separation of faculties catches the
implementer. It does not make the coordinator infallible, and the page
shouldn't imply it does.
- **Not autonomy.** The operator rules forks. The loop is designed around a human
who decides product meaning.
- **No victory-lap language** about what it "no longer" does. Describe the live
system and its tradeoffs. Scars belong in the evidence, told plainly.
## Audience and tone (proposed; confirm with the operator)
- Proposed readers: engineers already using Claude Code (or similar agents) on
real codebases, who have been burned by "all green" reports.
- Voice: dry and direct, lightly self-deprecating, with no hype. It's the
README's voice. Concrete scars beat adjectives. **The strongest copy is a
specific defect and the reason the green suite missed it.**
- A likely call to action: the GitHub repo, and how to install a Claude Code
skill. Check the current install method against Claude Code's docs; don't
guess it.
## Visual identity
This is a GameCult surface, so follow the GameCult brand, which is defined in
code:
- `F:\Projects\gamecult-site\site\quartz.config.ts`: `configuration.theme`, for
the typefaces, weights and palette.
- `F:\Projects\gamecult-site\site\quartz\styles\custom.scss`: the ground wash,
layout, and page-type variants.
- `F:\Projects\gamecult-site\docs\brand-design-language.md`: what those mean.
Where it disagrees with the code, the code wins.
The short form: Montserrat 100–200 for large titles, Ubuntu 300 for prose, IBM
Plex Mono uppercase and letter-spaced for small labels. Ground `#07111a`, panels
`#16212c`, body `#b7c7d9`, headings `#eef5ff`, accent `#ff8a2a`, links `#59b7ff`.
It is single-theme dark by decision, so paint every colour explicitly. **The
brand has no success, warning or error colours.** If you want green and red for
"passed" and "survived", you are inventing them, so say so, and consider using
the mascot's own palette instead.
## Open questions for the operator (all four answered 2026-09-25, see the top; kept as history)
1. **Where does it live?** A page on the Quartz-based `gamecult-site`, or a
standalone static page (and on what domain)? Recommendation: a
`gamecult-site` page, since the brand and deploy path already exist there
(check `gamecult-ops` for how that site deploys).
2. **May the campaign examples name StreamPixels and CultLib?** They're GameCult
projects. Never name the streamer or any private individual.
3. **Should the page mention Epiphany?** Eureka is described as the skill
counterpart of Epiphany; see `references/epiphany-comparison-2026-09-15.md`.
Ask how much of that relationship the operator wants public.
4. **Is there a repo for the page?** This folder has no git repo yet. GameCult
repos default to the `GameCult` GitHub org (see `F:\Projects\CLAUDE.md`,
"GitHub Repo Creation"). Confirm the name and visibility before creating one.
## Working rules that apply to you
- The global and GameCult doctrine (`~/.claude/CLAUDE.md`, `F:\Projects\CLAUDE.md`)
apply: map first, keep it small, and no load-bearing JSON if the page grows a
data layer.
- Don't copy transcripts or agent reports onto the page. Cite the committed
evidence (the postmortem, the changelog, the maps).
- The mascot has a saved generation prompt. Any new image you generate gets its
exact final prompt saved beside it, with the same base filename.