Files
le-mystere-professeur-zacus/.gitignore
T
clement 05c4c11c0b
Repo State / repo-state (pull_request) Failing after 35s
Repo State / repo-state (push) Failing after 40s
Validate Zacus refactor / validate (pull_request) Failing after 5m58s
Validate Zacus refactor / validate (push) Failing after 7m16s
feat: gamebook authoring + demo + bump fw
Context:
The new firmware gamebook mode needs a book on the Freenove SD, plus a
reusable way to author one. We also want a playable demo to prove the
whole chain (button -> navigation -> WAV narration from SD -> screen).

Approach:
Author the book in a human-friendly YAML; a generator renders each
passage's narration with macOS say (16 kHz mono, canonical WAV — the
Apple FLLR chunk is stripped so the firmware parser decodes it),
emits a compact gamebook.json, and stages WAVs + JSON onto the master
SD via POST /game/file?path=sd/gamebook/.

Changes:
- game/gamebooks/zacus_demo.yaml: a branching mini-adventure (the
  Professeur Zacus lab) — 8 passages, 3 endings.
- tools/gamebook/build_gamebook.py: reusable/idempotent generator
  (--book/--ip/--sd-dir/--dry-run); ASCII-folds on-screen text (fonts
  have no accents) while the WAV keeps the accented narration; choices
  carry label + goto (navigation is generic, D-pad + click).
- .gitignore: ignore the generated WAV pack (tools/gamebook/build/).
- Bump ESP32_ZACUS to the gamebook-mode firmware.

Impact:
Authors can write a gamebook in YAML and stage it to the Freenove in
one command; the bundled demo plays end to end, fully offline.
2026-06-19 14:31:50 +02:00

123 lines
2.7 KiB
Plaintext

# macOS Finder metadata
.DS_Store
# Local IDE settings
.vscode/
!.vscode/tasks.json
!hardware/firmware/.vscode/
hardware/firmware/.vscode/*
!hardware/firmware/.vscode/tasks.json
# PlatformIO and generated logs
.pio/
.platformio/
# Local caches
.local/
logs/
**/logs/
**/*.log
# ZeroClaw local runtime (generated locally, never committed)
/.zeroclaw/
/config.toml
/workspace/
# Artifacts and caches
artifacts/
__pycache__/
.venv*/
# Generated game exports
game/exports/*
!game/exports/.gitkeep
!game/exports/previews/
# Locally generated audio/render outputs (not versioned)
audio/generated/*
!audio/generated/README.md
# Raw wave audio files (ignore new captures)
*.wav
# Locally generated printable PDFs (not versioned)
printables/export/pdf/**
!printables/export/pdf/zacus_v1/README.md
# Locally generated printable PNGs (not versioned)
printables/export/png/**
!printables/export/png/zacus_v1/.gitkeep
# Accidental duplicate copies from desktop/Finder workflows
# Example: "file 2.ext" or "Makefile 2"
**/* 2
**/* 2.*
# Ignorer tous les fichiers du dossier 'prompt a suivre/'
prompt a suivre/*
# Ignore macOS app bundle Voicebox (généré localement)
hardware/firmware/tools/Voicebox.app/
# RTC_SLIC_PHONE local audio/spec assets (not versioned)
hardware/RTC_SLIC_PHONE/docs/wav_ptt_vintage_8k/
hardware/RTC_SLIC_PHONE/docs/wav_clean_8k/
hardware/RTC_SLIC_PHONE/docs/specs/tone_plan_wav_assets/
hardware/firmware/data/ui/fx/texts/credits_anecdotes_demoscene.txt
# TTS voice packs and generated audio (local only, regenerated by tools/tts/)
hardware/firmware/data/music/**/*.mp3
hardware/firmware/data/music/*.mp3
# Local build artifacts
.pio
.platformio
logs
dist
build
node_modules/
.venv*/
platformio_override.ini
# NPC generated audio (regenerated by tools/tts/generate_npc_pool.py)
hardware/firmware/data/hotline_tts/**/*.mp3
!hardware/firmware/data/hotline_tts/manifest.json
# Generated TTS output
tools/tts/output/
# Stale/local directories
fronted dev web UI/
prompt a suivre/
memory/
site/
todos/
# Generated TTS pool artefacts (reproducible from npc_phrases.yaml + voice ref)
hotline_tts/
# Hardcoded TTS assets (not generated)
!tools/macstudio/voice-bridge/service_down.wav
# Secrets — NEVER commit. Use *.env files locally and pass via env vars.
.env
.env.*
!.env.example
*.secret
secrets.yaml
secrets.yml
secrets.json
**/credentials.json
**/*-secret.*
# Tailscale auth-keys / OAuth client files
tailscale-*.key
.worktrees/
# Build-time public config (committed, no secret): gateway URL for the prod web deploy
!frontend-v3/apps/*/.env.webdeploy
# Generated PLIP SD voice pack (reproducible via tools/tts/generate_plip_sd_pack.py)
tools/tts/plip_sd_pack/
# Generated gamebook WAV pack (reproducible via tools/gamebook/build_gamebook.py)
tools/gamebook/build/