Files
settled-reach/docs/assets
jpmschweitzerandClaude Opus 5.5 ddce4441a9 refactor(tooling): T-1290 — the assets domain, where OFF is the normal case
tooling/db/ (a misnamed directory: connectors, not database work),
trellis-batch.sh and synth_ui_sounds.py become `reach assets`:
audio {health,generate,batch,post {convert,normalize,trim,pipeline}},
image {health,generate}, trellis {health,generate,batch}, and synth-ui.
The four audio bash wrappers are retired, and tooling/db/ is gone.

Parity, from baselines taken before anything moved:

- the four UI-sound WAVs and the harmonic-synth WAVs (exponential and linear
  decay) are byte-identical
- the ffmpeg pipeline's decoded PCM is identical. Its .ogg bytes are not,
  even between two runs of the OLD code: Ogg picks a random stream serial,
  so the encoded file was never the right thing to compare
- the network success paths can't be run in a gate (Stable Audio and Trellis
  are kept off, Gemini costs money), so tooling/test_assets.py stands up a
  fake Gradio and pins every payload: the audio submit, Trellis's six-call
  session sequence with its 9-input image_to_3d, and the Gemini body. It
  failed when one Trellis value was mutated (7.5 → 7.0)

Failure classification, in endpoints.py, is the point of the port. The
services are OFF by design (VRAM on tower-of-joy, D-17), and the topology doc
warns against "fixing" one by restarting it. So a refused connection says OFF
and asks for the service to be turned on rather than restarted; a 4xx/5xx says
the request was rejected; 401/403 says credentials; 429 says quota; and an
unreachable Gemini blames the network, not VRAM.

Behaviour changes, each a failure that used to read as success or crash:

- audio batch and trellis batch exited 0 with failures in their summaries;
  they now print the summary and exit 1
- trellis generate on a missing image crashed with a TypeError
  (print(..., indent=2)); it now names the file, and checks it before the
  service so a typo is not reported as an outage
- the ffmpeg pipeline left its intermediates behind when a step failed

Structure: the connectors called each other as subprocesses (batch spawned
the connector, which spawned audio_post) and parsed each other's stdout. They
are now function calls, and ffmpeg is the only exec, through core/process.
ensure_venv() is removed: it os.execv'd into .venv, which D-263's exec rule
forbids, and reach declares the dependencies itself. config.json moved into
the domain deliberately, and the local-services rule follows it.

Output contract: results are still JSON on stdout with the same keys, so skill
readers keep working. Failures are an exit status with a Fix line, never
{"ok": false}. The audio-gen, glb-gen and image-gen skills, Araminta's agent
file and the allow-list are updated to match. glb-gen's "trellis-batch.sh is
hardcoded to one category" caveat is gone: batch takes --input-dir or --names.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-23 19:49:20 +02:00
..

title, description, type, status
title description type status
Asset Pipeline Index Master index linking all asset pipelines (audio, visual, video) with structure and conventions design active

Asset Pipeline Index

Centralized tracking for all production assets across pipelines. Each pipeline has its own index, palette (style bible), and per-category asset tables.

Pipelines

Pipeline Index Palette Status
Audio audio/README.md audio/palette.md Active — Sprint 7
Visual visual/README.md visual/palette.md Active — catalog + style bible instantiated (T-1050/T-1052)
Video video/README.md video/palette.md Stub

Structure

docs/assets/
  README.md              # This file — master index
  _templates/
    audio.md             # Row template + detailed entry template for audio
    sprite.md            # LEGACY object-sprite row template (D-244 retired sprites; model/texture/artwork rows are inline in each visual/*.md file, T-1050)
    video.md             # Row template + detailed entry template for video
    asset-brief.md       # One-page per-class brief template (scope/visual reference/naming/gen path/acceptance) — T-1049
  briefs/                # Per-asset-class briefs gating T-961's child stories (T-1049) + deferred.md formal deferral note
  audio/
    README.md            # Audio pipeline index — categories, status summary
    palette.md           # Sonic palette, aesthetic guide, generation approach
    ambient.md           # All ambient loops (station, planet, biome, weather)
    sfx.md               # All SFX (footsteps, doors, impacts, events)
    ui.md                # All UI sounds (cursor, chimes, insert-tech)
  visual/                # 3D models + textures + flat artwork (D-244 — no per-object sprites)
    README.md            # Visual pipeline index
    palette.md           # Art direction, "the angle", color relationships
    models.md            # 3D objects/props (.glb via Trellis /glb-gen)
    textures.md          # PBR surface maps (BaseColor/Normal/Roughness) for 3D models
    artwork.md           # Flat 2D art — paintings, flags, billboards, signage (via /sprite-gen)
    icons.md             # UI icons, status indicators (UI layer)
    effects.md           # Shaders, particles, overlays
    conventions.md       # Model naming, mask sidecars, D-235-keyed texture naming, footprint metadata (T-1050)
  video/
    README.md            # Video pipeline index
    palette.md           # Motion/editing style guide
    trailers.md          # Marketing / Steam page trailers
    cutscenes.md         # In-game narrative moments

Conventions

  • One .md per category — asset table with one row per asset, detailed entries below for complex items
  • palette.md per pipeline — the style bible. Aesthetic baseline, theme, generation approach.
  • Status values: planned | in-progress | placeholder | final
  • Templates: _templates/{type}.md — row format + detailed entry format
  • Asset files live in client/assets/{type}/ — these docs track design and production metadata
  • Category splitting: When a category file grows too long, split by domain (e.g., furniture-station.md, furniture-colony.md)

Cross-References

  • Decision files: decisions/ (D-038 audio scope, D-033 entity colors, D-019 camera angle)
  • Art direction workshop: docs/workshops/art-direction-mood-board/
  • Sprint briefings: docs/sprints/sprint-N/{team}.md
  • Per-class asset briefs: briefs/ — station walls, rural walls, doors, floors, furniture/props, each gating a T-961 child story (T-1049); briefs/deferred.md records the formal deferral for lamp posts / TVs / billboards / barns (T-1051) + cars (Q-067).