72 lines
4.5 KiB
Markdown
72 lines
4.5 KiB
Markdown
# Persona world materials
|
|
|
|
The source of truth is [`src/content/persona-assets.json`](../../src/content/persona-assets.json).
|
|
Every persona imports its public path from this mapping. Each entry records its stable name,
|
|
public URL, repository output path, presentation owner, intended uses, prompt and treatment.
|
|
|
|
This implementation pass treats the mapping as an inventory and does not run image generation.
|
|
The inventory command does not generate, replace, inspect, or decode image files. A mapped recipe only describes an intended decorative asset; it does not assert that an
|
|
asset exists.
|
|
|
|
Audit the mapping and filesystem presence without starting generation or loading generator defaults:
|
|
|
|
```sh
|
|
node scripts/image-generation/list-world-assets.ts
|
|
```
|
|
|
|
Use `--json` for tooling. The report distinguishes **planned**, **present**, and **missing**
|
|
entries, and shows each file name, public path, repository path, presentation owner, and intended
|
|
placements. It reads the manifest and filesystem metadata only; it does not import image-generation
|
|
modules, load presets, open image bytes, or start a generation process.
|
|
|
|
The `name`, `publicPath`, and `outputPath` are stable mapping identifiers. If a future task changes
|
|
one, update the corresponding public and repository paths in the same manifest entry. The UI consumes
|
|
the mapped public path automatically.
|
|
|
|
These interface assets describe non-graphic environments in their own prompts.
|
|
The images decorate surfaces only. Informative scene images and
|
|
metric SVG artwork are separate assets and are not replaced by this command.
|
|
|
|
## Presentation ownership
|
|
|
|
| Persona | Material | Ornament / button treatment |
|
|
| ---------- | ------------------------------- | -------------------------------- |
|
|
| Samantha69 | Pink pearl and rose glass | Sparkles, soft capsule |
|
|
| Nelly | Teal lagoon and liquid caustics | Waves, asymmetric rounded form |
|
|
| Hisoka | Electric blue brushed chrome | Directional mark, diagonal bevel |
|
|
| Xixi | Lavender fractured crystal | Facets, diagonal corners |
|
|
| Cybelle | Plum velvet and gilded confetti | Golden starbursts, double frame |
|
|
| Galatée | Sage marble and clay | Laurel, inset stone frame |
|
|
| Polaire | Orbital laboratory | Crosshairs, octagonal panel |
|
|
| Gateway | Iridescent threshold | Crosshairs, neutral panel |
|
|
| Pause | Midnight blue sanctuary | Ripples, rounded refuge |
|
|
|
|
Materials are mandatory in `PersonaUI`; no silent fallback for an unknown persona.
|
|
Frames, foreground contrast, Arizona axes, blend/opacity, ornaments and pause headings live in
|
|
`src/personas/<id>/material.stylex.ts`. Shared components own navigation, submission and stopping.
|
|
Textures are decorative, ignore pointer events, and have empty alternative text. Button clipping
|
|
is confined to the background; the content and keyboard outline remain unclipped. Native links
|
|
retain navigation semantics. Entry/hover movement settles and observes reduced-motion preferences.
|
|
No continuous WebGL loop is added to a text-reading surface.
|
|
|
|
## Scope and remaining tracker work
|
|
|
|
This implements the shared material foundation, selection cards, model setup, suggestion cards, send and Stop controls,
|
|
persona-owned history cards and export/delete controls, portal theme inheritance, explicit
|
|
pause/resume and aborting active text, repair and image
|
|
streams. Exiting returns to selection; it does not implement the archived canonical narrative endings.
|
|
Provider cancellation is best-effort once remote work has begun; late local image/repair results are ignored.
|
|
|
|
The full six-step consent flow, server consent enforcement, reporting and export from the pause flow, canonical endings,
|
|
Jacob activation, new narrative progression and the entire launch QA matrix remain separate open
|
|
tracker requirements. Existing seven selectable worlds and two system identities are preserved.
|
|
No tracker completion boxes are changed by this implementation.
|
|
|
|
## History usability
|
|
|
|
Saved conversations use the corresponding persona material. Titles wrap without truncation; the
|
|
resume link remains separate from export and delete buttons. Controls are at least 44px tall,
|
|
wrap on narrow screens, and preserve their accessible names and dimensions during loading.
|
|
The storage preference remains explicit and off by default. Existing transcript export and deletion
|
|
behavior is unchanged. `public-history.spec.ts` covers native exports, deletion, storage failures,
|
|
and all seven selectable persona surfaces at 320px.
|