Files
esh-pfi-infrastructure/docs
vh 44c565ac77 docs/asset-engine: kokoro v2 + new kokoro-captioned entry
Per a request from the asset_engine consumer (althing thread
01KRCF4W66X3N24B01FF2Y7V3D), and verified against the live kokoro
OpenAPI + exercised endpoints:

* kokoro: version 1 → 2; adds three fields surfaced by the upstream
  schema but not previously declared:
    - speed (slider 0.25–4.0, default 1.0)
    - volume_multiplier (slider 0.5–2.0, default 1.0; UI-bounded
      since upstream is unbounded — noted in description)
    - lang_code (text, optional override of the voice-name-derived
      language hint)

* kokoro-captioned: new service entry wrapping
  /dev/captioned_speech. Same model + image as kokoro proper but
  separate catalog entry because the response shape is structured
  JSON (audio inline as base64 + word-level timestamps), not raw
  audio bytes. Verified shape captured in reproducibility.notes
  so future consumers don't have to re-discover it. response.type
  = json (consumer renders custom: player + subtitle overlay).

* reproducibility_audit: row added for kokoro-captioned.

Deferred (separate from this commit):
- kokoro-blend-voice. /v1/audio/voices/combine returns 403 on the
  default config (allow_local_voice_saving=False); even with the
  flag flipped it writes to a temp dir, not /worktank/kokoro/user_voices.
  The persistent blend mechanism in this fleet is
  playbooks/blend-kokoro-voice.yaml. Ad-hoc blending already works
  through /v1/audio/speech via the inline syntax voice="a(w)+b(w)";
  consumer can surface that as a UI affordance without any
  catalog change.

catalog_version stays at 1 (no field-type vocabulary changes).
JSON Schema regeneration produced byte-identical output.
2026-05-11 14:38:05 -07:00
..

docs/

Navigation map for the documentation tree. New session? Read orientation.md first — it's the narrative overview of the fleet, backup architecture, governing principles, and gotchas, and it points at everything else.

Tree

docs/
├── orientation.md            # start here — fleet overview + where-to-look guide
├── runbooks/                 # ops runbooks (recovery, deployment phases)
│   ├── disaster-recovery.md
│   ├── nh3-prune-ritual.md
│   └── pbs-deployment.md
└── pfi/                      # PFI-specific reference (services, models, VMs)
    ├── docker-stack.md
    ├── model-list.md
    ├── proxmox-vms.md
    ├── recommended-model-settings.md
    ├── vm-102-matrix-appservice.md
    └── vm-102-matrix-synapse.md

What goes where

  • runbooks/ — step-by-step ops procedures. Anything you'd reach for during an incident or while standing up new infrastructure. Examples: disaster recovery (blast-radius tiers + restoration steps), PBS deployment (9-phase rollout). New runbook → new file here.
  • pfi/ — PFI-specific reference material that's too narrow for the top-level CLAUDE.md but doesn't change incident response. AI model inventory, recommended inference settings, Matrix bridge config, Proxmox VM map. New stable reference → new file here.
  • Top-level (docs/orientation.md, docs/README.md) — narrative guides about the workspace itself, not about specific infra.

Cross-references

  • Fleet topology + servers table: top-level CLAUDE.md.
  • Open work + recent milestones: top-level STATUS.md.
  • Durable cross-session facts: ~/.claude/projects/-home-lkraven-development-eshpfi-management/memory/.

Conventions

  • Markdown, GitHub-flavored. CommonMark renders fine in most viewers.
  • File names are lowercase-kebab-case, descriptive. No dates in filenames — git history covers that.
  • One topic per file. If a file grows past ~500 lines, look for a natural split before adding more.
  • No checked-in binaries or checksums. Build/release artifacts belong in a build pipeline or tools/, not docs/.