Scope and evidence
Digital DNA v1
Routes: /demos (laboratory), /demos/guinness (first specimen). Unknown brands return 404. Existing / and /business-manager are unchanged.
Finite compounds
Eight integer scales, 0 (absent) to 4 (defining): warmth (hospitality), energy (pace/intensity), authority (confidence), playfulness (humour), curiosity (exploration), precision (specificity), heritage (historical orientation), restraint (low pressure). These are editorial controls, not claims of scientifically measured personality. Guinness: 4, 1, 2, 2, 3, 3, 4, 4 respectively.
Configuration structure
BrandDNA in lib/digital-dna/schema.ts separates:
- Constitution: role, purpose, eight compounds, style and immutable boundaries.
- Decisions: compound rationale, evidence source IDs, confidence and explicit creative assumptions.
- Knowledge: source IDs, HTTPS URLs, check dates and supported facts.
- Interests: temporary topics and weights; deliberately excluded from constitution compilation.
- Commercial: explicitly enabled approved destinations; disabled here.
- Attribution: enabled flag; disabled here, no tracking or persistence.
- Expression: ink, cream, accent, motion cycle and drift, consumed by the shared LivingOrb.
- Examples: curated questions/responses linked to source IDs.
brands.ts contains the specimen as data. Add a validated config to the registry to instantiate a future route using the same page, orb and interaction shell. Config validation checks compounds, source references, HTTPS and motion. A future voice provider must still enforce boundaries, grounded retrieval and eligible recommendations server-side; trait numbers alone do not guarantee model behaviour.
Why Guinness first
Guinness already has a Business Manager context in this prototype and has unusually recognisable black/cream/gold visual cues. Its public history gives a narrow, verifiable narrative without requiring product inventory or personalised advice. LEGO would be a lower-risk category for unrestricted live interactions; Guinness is chosen for impact in a bounded, scripted heritage demo. No live generative alcohol advice is enabled.
Public grounding — checked 3 October 2026
- https://www.guinness.com/en-gb/our-craft/guinness-story — beginnings in 1759 and the harp’s Irish cultural association. Supports heritage; measured warmth and pacing are our creative interpretation.
- https://www.guinness-storehouse.com/en/discover/story-of-guinness — 9,000-year lease at St James’s Gate in 1759; nitrogenated beer introduced in 1959. Supports the two historical examples.
- https://www.guinness.com/en/sustainability/positive-drinking — responsible-drinking messaging and referral to DRINKiQ. Informs low-pressure behaviour; the explicit demo boundaries are our own implementation choices.
No official tone guide, endorsement, voice identity, accent, logo asset or client relationship is assumed. The dark sphere with a cream crown, slow drift and gold detail is an original visual interpretation. Numeric traits and sample prose were authored for this concept, not extracted as official brand instructions. Site labels disclose the independent illustrative status.
Live voice
The WebRTC provider is now implemented; see live-voice.md for local server-key setup, voice direction and evaluation limits. It uses server-owned configuration, browser microphone consent, playback, captions, mute, interruption and cleanup. No key is configured and no real voice has been auditioned. The mature Irish male voice direction supersedes the earlier no-accent choice. No identifiable person is imitated.
Validation
Run sh tests/run.sh, npm run typecheck and npm run build. The test script compiles to a disposable temporary directory and runs Node’s test runner. Tests cover grounding, invalid configuration, campaign separation, provider request boundaries and voice lifecycle with mocked browser resources.
Expanded brand research and contradictions: see guinness-research.md. Eleven first-party source records now inform eleven curated encounters and all eight trait decisions.
Conversation character and introductions
Optional character.conversation stores relationship, empathy, originality, cadence and supporting source IDs. It describes how the persona relates and generates fresh expression; it does not add professional credentials or relax factual boundaries. Optional character.introduction stores the name offered, name question and session-only memory scope. The shared voice engine uses these fields, so introducing people and shaping a relationship does not require brand-specific prompt logic. Pre and the Guinness review use mutual introductions; historical prototypes and gated drafts remain addressable.