{
  "status": "avatar_rehearsal_checklist_manual_run_only_closed_until_human_yes",
  "canonical_namespace": "Sonic-Forage",
  "generated_utc": "2026-05-06T07:38:00Z",
  "review_only": true,
  "requires_human_approval": true,
  "manual_rehearsal_required": true,
  "manual_operator_required": true,
  "auto_stream_enabled": false,
  "auto_upload_enabled": false,
  "auto_record_enabled": false,
  "auto_obs_enabled": false,
  "auto_voice_enabled": false,
  "auto_gpu_enabled": false,
  "auto_paid_api_enabled": false,
  "purpose": "Compress the Jimsky avatar setup lane into one safe local rehearsal path for an awake operator without starting streams, microphones, OBS automation, GPU jobs, paid APIs, uploads, posts, or cron changes.",
  "human_approval_question": "Do you approve a local-only Jimsky avatar rehearsal now? Name the avatar lane, whether OBS/browser preview may be opened, whether microphone or TTS output may be used, the duration, and confirm that no Twitch/Kick/RTMP/Spaces/recording/GPU/paid API action is approved.",
  "rehearsal_path": [
    "Run PYTHONDONTWRITEBYTECODE=1 python3 scripts/verify_site.py from the repo root.",
    "Open docs/avatar/index.html locally or proof hub /avatar/ for review.",
    "Read the gate wall aloud: STREAM: CLOSED, VOICE_TO_SHELL: FALSE, GPU: CLOSED, OBS: MANUAL ONLY.",
    "Open docs/data/avatar-setup-control-room.json and confirm the persona seed plus LiveKit/Pocket TTS and Modal CPU-only lanes remain review-only.",
    "If OBS is involved, add a Browser Source manually only after confirming no stream or recording is live.",
    "If voice is involved, test text-only copy first; do not start a microphone listener or voice room without exact approval.",
    "Stop after one local preview choice: static overlay, voice-readiness notes, Modal CPU-only seed review, or keep-building docs."
  ],
  "proof_paths": [
    "docs/avatar/AVATAR_REHEARSAL_CHECKLIST.md",
    "docs/data/avatar-rehearsal-checklist.json",
    "docs/avatar/JIMSKY_AVATAR_SETUP_RUNBOOK.md",
    "docs/avatar/index.html",
    "docs/data/avatar-setup-control-room.json",
    "docs/data/site-manifest.json"
  ],
  "safe_wording": [
    "The avatar rehearsal is local/manual and closed-gate.",
    "This is not a live stream, not a voice room, and not OBS automation.",
    "Modal remains CPU-only unless a separate exact human approval names a GPU/media job.",
    "Previously exposed stream/API secrets are treated as rotated-required and are never printed."
  ],
  "do_not_say": [
    "The avatar is live on Twitch/Kick/RTMP/Spaces.",
    "OBS was controlled automatically.",
    "A microphone listener, voice-to-shell, or LiveKit room is running.",
    "GPU/model downloads/paid generation started.",
    "Private media or datasets were uploaded.",
    "A public post, payment link, invoice, or outreach was created."
  ],
  "blocked_without_approval": [
    "No Twitch/Kick/RTMP/Spaces start.",
    "No OBS WebSocket scene mutation.",
    "No microphone listener or voice room launch.",
    "No voice-to-shell routing.",
    "No GPU inference/model download.",
    "No paid API media generation.",
    "No public posting/scheduling.",
    "No HF dataset publication.",
    "No private media upload.",
    "No secret printing or committing.",
    "No cron creation, mutation, pausing, or removal."
  ],
  "closed_gates": {
    "public_posting": false,
    "publishes_stream": false,
    "records_audio": false,
    "starts_obs_control": false,
    "starts_microphone_listener": false,
    "voice_to_shell": false,
    "starts_gpu": false,
    "starts_paid_api": false,
    "uploads_private_media": false,
    "makes_dataset_public": false,
    "claim_openai_affiliation": false,
    "mutates_cron": false,
    "secret_exposure": false
  },
  "verifier_commands": [
    "PYTHONDONTWRITEBYTECODE=1 python3 scripts/verify_site.py",
    "python3 -m json.tool docs/data/avatar-rehearsal-checklist.json >/dev/null"
  ]
}
