Pabloler21 Claude Fable 5 commited on
Commit
7308a2e
·
1 Parent(s): d5824f4

docs: CLAUDE.md — Day 7 polish logged, frame design open, org Space still the blocker

Browse files
Files changed (1) hide show
  1. CLAUDE.md +15 -4
CLAUDE.md CHANGED
@@ -3,7 +3,7 @@
3
  ## What this is
4
  A horror NPC chatbot for the **Build Small Hackathon** (Hugging Face / Gradio).
5
  Track: 🍄 An Adventure in Thousand Token Wood.
6
- **Deadline: Monday June 15, 2026.** Days 1–6 complete (core + entity panel + Visitor Loop ending all shipped); remaining = org Space, stabilize, deliverables.
7
 
8
  **Pitch:** A lost child at the edge of the Thousand Token Wood has no memories of its own. It asks for yours, stores them in a "treasure", and later claims them as its own — in first person. The recall moment is the core "wow"; the entity portrait and the Visitor Loop ending complete the arc.
9
 
@@ -95,13 +95,24 @@ Dev shortcut: `HOLLOW_FAST_FINALE=1` seeds a near-finale state (affinity 89, 3 c
95
  - **Day 5:** horror CSS (void theme, grain, vignette, breathing fog, title flicker), custom heartbeat Bond meter, recall claims the *richest* memory. Pushed.
96
  - **June 10–11 (design):** 4 portrait assets generated (FLUX.2, grayscale F&H style); spec + implementation plan for entity panel & Visitor Loop ending written and committed.
97
  - **June 11 (Day 6 — entity + ending shipped):** all 8 code tasks of the plan executed via subagents with two-stage reviews; final opus review verdict: Ready, no critical/important issues. Shipped: WebP assets (~68 KB total), `render_entity` (blur/opacity/scale from affinity, flash/flash_strong/end modes), entity CSS (section 15), 3-column layout with terror flash per capture + glitch on recall, `should_end` (≥90 affinity, ≥3 claimed, once), `finale.py` (10-step script), treasure strike/mine, `chat()` → generator with `_play_finale` streaming (~30 s, no GPU), ended-aware `_start_turn`. 58 tests passing. Pushed to personal Space through commit `22cbf9b`.
 
 
 
 
 
 
 
98
 
99
  ## What's next
100
- - **Fri June 12:** T9 org Space (Pablo browser step: duplicate to `build-small-hackathon/hollow` with ZeroGPU, then `git remote add hackathon ... && git push hackathon main`); visual smoke test of entity panel + full `HOLLOW_FAST_FINALE=1` playthrough (local and Space).
101
- - **Sat 13:** stabilize, full playthroughs, README frontmatter (track/badge tags + write-up), model experiments (MiniCPM / qwen3:4b only swap if recall quality holds), optional: lift finale smoke commands into tests/test_app.py, ambient audio, Open trace.
102
- - **Sun 14:** demo video (horror-trailer style, full sound design in edit), social post (4-portrait evolution grid), Field Notes.
 
103
  - **Mon 15:** submit early; push community vote.
104
 
 
 
 
105
  ---
106
 
107
  ## Deploy workflow
 
3
  ## What this is
4
  A horror NPC chatbot for the **Build Small Hackathon** (Hugging Face / Gradio).
5
  Track: 🍄 An Adventure in Thousand Token Wood.
6
+ **Deadline: Monday June 15, 2026.** Days 1–7 done (core + entity panel + Visitor Loop ending + flash/screamer/visibility polish). Remaining = resolve frame design, org Space (submission blocker), stabilize, deliverables.
7
 
8
  **Pitch:** A lost child at the edge of the Thousand Token Wood has no memories of its own. It asks for yours, stores them in a "treasure", and later claims them as its own — in first person. The recall moment is the core "wow"; the entity portrait and the Visitor Loop ending complete the arc.
9
 
 
95
  - **Day 5:** horror CSS (void theme, grain, vignette, breathing fog, title flicker), custom heartbeat Bond meter, recall claims the *richest* memory. Pushed.
96
  - **June 10–11 (design):** 4 portrait assets generated (FLUX.2, grayscale F&H style); spec + implementation plan for entity panel & Visitor Loop ending written and committed.
97
  - **June 11 (Day 6 — entity + ending shipped):** all 8 code tasks of the plan executed via subagents with two-stage reviews; final opus review verdict: Ready, no critical/important issues. Shipped: WebP assets (~68 KB total), `render_entity` (blur/opacity/scale from affinity, flash/flash_strong/end modes), entity CSS (section 15), 3-column layout with terror flash per capture + glitch on recall, `should_end` (≥90 affinity, ≥3 claimed, once), `finale.py` (10-step script), treasure strike/mine, `chat()` → generator with `_play_finale` streaming (~30 s, no GPU), ended-aware `_start_turn`. 58 tests passing. Pushed to personal Space through commit `22cbf9b`.
98
+ - **June 12 (Day 7 — polish, all verified against the RUNNING app via headless Chrome screenshots, not just the static harness):**
99
+ - **Flash/visibility fixes (commits `2822e77`, `af463a4`):** root-caused why the terror flash never fired — the `prefers-reduced-motion` media query was forcing `.entity-flash`/`.entity-ghost` to `opacity:0`; opacity fades aren't motion, removed them from that block (only sway/fog drift stay disabled). Materialization curve front-loaded so the child is a recognizable silhouette from bond 20 and fully sharp by **bond ~45** (was never sharp behind a fixed fog); fog/grain/vignette opacity now scale with affinity (the curtain lifts). Dried-blood background stains moved to `.gradio-container::after` (own fixed layer above the vignette, which was eating them). Treasure → fixed 500px panel with inner `.treasure-scroll` + edge-fade mask; older memories dim, claimed memories visibly dimmed. Removed manual "..." bubble (Gradio native pending indicator only); `chatbot autoscroll=True`. 68 tests.
100
+ - **Screamer flicker (commit `9b82354`):** capture flash now hard-cuts through ALL four faces (terror/almost/end/base) in a ~0.55s `steps()` flicker; full-screen `.entity-ghost` echo is a fast screamer (face stabs the screen ~0.5s). `render_entity` stacks 4 `.entity-flick` imgs; restart relies on Gradio replacing the HTML DOM each turn.
101
+ - **Frame styling — UNRESOLVED (see below).** Currently committed state (`d5824f4`) has carved-stone `border-image` frames + a stone lancet arch around the child. **Pablo rejected this and every other frame attempt.** Dev tools `tools/visual_check.py`, `tools/stone_options.py`, `tools/branch_options.py`, `tools/stone_weathered.py`, `tools/edge_options.py` generate option mockups for the brainstorming visual companion (`.superpowers/` — gitignored).
102
+
103
+ ## ⚠️ Open design question — panel/portrait frames (blocked on Pablo)
104
+ The decorative edge treatment is unsettled. Rejected so far: flat gold/bone frames (read as pasted-on overlay), branch/vine frame (gap between child and frame looked like an error), clean carved stone (too metallic/futuristic), weathered cracked stone, and four soft "edge" directions (vignette dissolve, antique memorial photo, torn paper, scorched edge). **Diagnosis given to Pablo:** vector CSS/SVG frames fight (a) the painted raster child art — different medium, always looks pasted — and (b) the existing floating/void aesthetic (Hollow's words have no bubble). Likely answer is *less* frame, or a frame generated as a painted asset in the child's own style. **Next session: get a fresh direction from Pablo before touching frame CSS again.** The current stone frames are provisional — do not assume they stay.
105
 
106
  ## What's next
107
+ - **Frames:** resolve the open design question above with Pablo first (don't iterate blind again).
108
+ - **🔴 Org Space (submission blocker):** Pablo browser step duplicate `Pabloler21/hollow` to **`build-small-hackathon/hollow`** with ZeroGPU, then `git remote add hackathon https://huggingface.co/spaces/build-small-hackathon/hollow && git push hackathon main`. Verify ZeroGPU works there. Pablo is a registered org member (confirmed).
109
+ - **Stabilize:** full `HOLLOW_FAST_FINALE=1` playthrough local + Space; README frontmatter (track tag *Thousand Token Wood* + badge tags + concept/tech write-up); optional model experiments (MiniCPM / qwen3:4b — only swap if recall quality holds); optional Open trace, ambient audio, lift finale smoke commands into `tests/test_app.py`.
110
+ - **Deliverables (Sun):** demo video (horror-trailer style, full sound design in edit), social post (4-portrait evolution grid), Field Notes.
111
  - **Mon 15:** submit early; push community vote.
112
 
113
+ ## Dev verification workflow (established Day 7)
114
+ CSS/visual changes MUST be verified against the running app, not just the static harness (the harness lacks Gradio's CSS cascade — it lied about the stains once). Launch `HOLLOW_FAST_FINALE=1 .venv/Scripts/python app.py` in background, poll `http://localhost:7860`, screenshot with headless Chrome (`C:\Program Files\Google\Chrome\Application\chrome.exe --headless --screenshot=... --window-size=... --virtual-time-budget=9000 http://localhost:7860`), then Read the PNG. Kill via the port's owning process. `HOLLOW_FAST_FINALE=1` seeds bond 89 + 3 claimed to reach the finale in ~2 messages.
115
+
116
  ---
117
 
118
  ## Deploy workflow