Spaces:
Running on Zero
Running on Zero
Commit ·
7308a2e
1
Parent(s): d5824f4
docs: CLAUDE.md — Day 7 polish logged, frame design open, org Space still the blocker
Browse files
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–
|
| 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 |
-
- **
|
| 101 |
-
- **
|
| 102 |
-
- **
|
|
|
|
| 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
|