Conversation brief¶
Provenance¶
This is a durable engineering brief synthesized on 2026-08-23 from the conversation context available to the implementation session. The complete verbatim conversation from the project's beginning was not available, so this file deliberately does not claim to be a transcript. It records product decisions without API keys, private credentials, hidden reasoning, or tool logs.
Historical project record
This page preserves the 2026-08-23 implementation baseline. Several interface and architecture details below describe the initial planning stage, not the released seven-day living office. Current behavior is defined by the living-office slice, runtime contracts, and provider contracts.
Product decisions¶
- Build an AI-authored 1993 office simulation on the exact authored Suite 666 geometry.
- Treat Suite 666 as the main character named by the game itself.
- Treat the office and outside world as world characters whose authoritative state remains in the browser.
- Add a fictional Donna Jackson as the beating heart and reflection of the office. She is an optional later hire, not guaranteed to enter a run, and does not participate in tabletop campaigns.
- Keep all simulated people, products, campaigns, artwork, relationships, and events fictional. Historical sources may inform physical place and period but not generated biography.
- Keep the Curator invisible and non-speaking. It has no cross-run memory.
- Use captions as the primary accessible presentation output and browser speech only as progressive enhancement; captions are never authoritative state.
- Never execute model-generated code, markup, shaders, DOM operations, or arbitrary scene instructions.
Provider decisions¶
- DeepSeek
deepseek-v4-flash-vision-expis the first remote text/vision model. - MiniMax international
image-01is the first image generator. - Text and image configuration share an in-game setup experience but remain separate capability adapters.
- The POC uses direct browser BYOK despite documented key-exposure risk.
- Keys are memory-only by default; Remember setup explicitly stores raw keys in local storage with a warning and Clear setup action.
- Build-time
.envkeys are Node smoke-test inputs only and must never receive aVITE_prefix. - MiniMax generation uses one 512 by 512 Base64 image and no prompt optimizer; the model has no quality enum.
- Up to three paid MiniMax smoke requests, estimated below $0.02 total, were authorized for the first implementation. The budget is treated as exhausted after one Node success, one timed-out browser attempt, and one browser success; another paid image request requires renewed authorization.
Architecture decisions¶
- The browser owns physics, time, persistence, knowledge boundaries, spatial validity, rendering, and final state transitions.
- Model responses are proposals validated against strict transport and domain schemas.
- At this baseline, foreground interaction was framed as a bounded group turn.
The released UI supersedes that interface with proximity-selected foreground
conversations,
conversation.acceptedplus fine-grained browser-rule events, and expected-world-revision validation. Older group-turn identifiers may remain as internal compatibility seams; they are not the release interaction model. - Stale results, unknown IDs, impossible timing, absent actors, and employment transitions that do not match a dedicated twice-confirmed browser control are rejected. Typed prose always has no employment intent. Free-form captions remain non-authoritative and are excluded from later model context; semantic factual grounding is not falsely claimed as a complete validator.
- Deterministic local behavior keeps the slice usable and testable without a provider key.
- Provider keys remain private to orchestration; snapshots expose configured
booleans only. Non-paid browser tests mount a disposable source-only context,
omit
.env, and disable external networking. - Public documentation is built with MkDocs and served as static files at
https://suite666.museum/docs/.
Repository baseline at handoff¶
The baseline was a static client-only A-Frame/TypeScript tour with an isolated Cytoscape graph, procedural office/world rendering, interactions, audio, Vite builds, Node validators, and immutable Docker/Nginx deployment. It had no simulation domain, AI adapters, setup UI, backend, test runner, or MkDocs site.
Preserve this dated brief as a decision record rather than rewriting it into a current runtime contract. Do not replace it with a raw credential-bearing chat export; record current behavior in the maintained design and architecture pages.