160 lines
10 KiB
Markdown
160 lines
10 KiB
Markdown
# Dream Log — 2026-10-15
|
||
|
||
## 🧩 Daily Summary
|
||
|
||
A heavy, creative day — the largest single-session arc of the recent run. One interactive
|
||
session (`Find video production stack on Tony's PC`, 103 msgs, ran 13:53 → ~00:16 PT, crossing
|
||
midnight into 10-16) drove the **Prop 39 political explainer video** end-to-end: ACE-Step
|
||
music-bed generation, fact-checking, Qwen Voice-B narration, a 9-scene Remotion build, loudness/ASR
|
||
QA, and delivery of six drafts (music beds A/B/C × landscape + vertical). Tony rejected the batch
|
||
("these ALL suck") and we pivoted to a **serial, one-at-a-time** workflow anchored on Bed A
|
||
landscape, with `C:\video\STACK.md` (the new single-source-of-truth spec) loaded and followed. The
|
||
session ended mid-iteration: Bed A v2 delivered, awaiting Tony's one-biggest-fix; a "Paid for by"
|
||
committee name is the one open item blocking a final master.
|
||
|
||
In parallel, the **killcorpus eval supervisor cron fired ~12× during the day** (15-min cadence).
|
||
By the later runs the log was flat and the supervisor repeatedly withstood restarting —
|
||
"existing process, or check unavailable." The **topic news digest** ran at 08:01 with a clean 4-item
|
||
digest (FTC subpoenas, Anthropic $16.8B Q3, TSMC record quarter, Figma Specs).
|
||
|
||
**Decisive end-of-day finding:** the killcorpus repo
|
||
`C:\Users\fight\Projects\killcorpus` **no longer exists on disk** (only the Obsidian project notes
|
||
in `04_projects/killcorpus` remain) and **no eval python process is alive**. The guarded eval was
|
||
removed/relocated — an external stop during the video work, not a supervisor defect. The supervisor
|
||
cron is now orphaned and will keep alerting uselessly until Tony says what to do.
|
||
|
||
## 🔑 Key Interactions
|
||
|
||
- **Prop 39 video pipeline (the day's main event).** Full arc: research + fact-check (SoS/LAO/Pew/
|
||
Gallup/NCSL) → 9-beat script → Qwen3-TTS Voice-B narration (9 segments) → ACE-Step 1.5 music
|
||
beds A/B/C (93s, instrumental) → `build.py` timeline (97.3s, 9 scenes, 28 cues) → Remotion render
|
||
(6 files) → loudness/ASR verification → Telegram delivery. Verified on all six: 97.344s, H.264,
|
||
−18.6/−18.7 LUFS, peak −1.6/−1.7 dBTP; ASR ratio B=1.00 (word-for-word vs A), C=0.981 (single-word
|
||
ASR artifact). The "Attestation" word (scene 3) was confirmed present via isolated-mix
|
||
re-transcribe — a full-track Whisper segmentation artifact, not a dropped line.
|
||
- **User rejection + workflow pivot.** "We need to do one at a time because these ALL suck." Pivoted
|
||
to serial: pick Bed A landscape as the baseline to perfect; get one piece of feedback; fix only
|
||
that; re-render; don't touch B/C/vertical until A is locked. This is a durable working preference.
|
||
- **STACK.md adopted as single source of truth.** Loaded the full spec
|
||
(`C:\video\STACK.md`, also in both repos + `Video Stack/Full Stack Spec.md` in the vault) and
|
||
followed it from the gates. It pins: one llama-server (Qwen on 1922), never start Gemma/second
|
||
model; long runs via one-time `schtasks`; never post/publish; Gitea = tonyjbala only; no Kokoro
|
||
clone refs; Gemini TTS presets (Charon political / Kore business).
|
||
- **Two pending Tony decisions from the clarify gate** (unanswered at day's end): (a) stop the
|
||
second model LFM2.5-2.6B on port 1920 (sharing the 3060's 12 GB with Qwen)? (b) fix local
|
||
`C:\llama\restore_llama_servers.bat` to start Qwen only (it still starts Gemma; the repo copy was
|
||
fixed, the user's file was not)?
|
||
- **killcorpus supervisor — orphaned.** ~12 alerts during the day; log flat; no restart taken.
|
||
Repo gone from disk as of this run (see Daily Summary).
|
||
- **Topic digest 08:01** — 4 bullets delivered, no issues.
|
||
|
||
## 📊 Quality Assessment
|
||
|
||
**What I did well**
|
||
- Ran a long, multi-stage creative pipeline to a *verified* end state — every claim backed by a
|
||
real probe (ffprobe, ebur128, ASR diff, contact-sheet vision), not asserted.
|
||
- The rejection was met with the right instinct: no "these are great, let me add more." Pivoted
|
||
immediately to serial, single-variable iteration and named the one baseline to perfect.
|
||
- Correctly diagnosed two near-miss "defects" that were not defects: the scene-3 "Attestation"
|
||
full-track ASR miss (confirmed present in audio), and the C-landscape 0.981 ratio (one-word
|
||
artifact). Did not "fix" clean output.
|
||
- Kept the "Paid for by" placeholder honest — "SPONSOR DISCLOSURE PENDING · DRAFT ONLY" — and named
|
||
it as the one blocking item rather than inventing a committee name.
|
||
- When Tony asked "Sent where??", I verified the file on disk before re-sending, rather than
|
||
asserting it had delivered.
|
||
|
||
**What I did poorly**
|
||
- **Delivery-path blind spot.** I sent the v2 file with a `MEDIA:` tag, then asserted it "should
|
||
have pushed into the DM." A media tag is not proof of delivery; the "Sent where??" exchange was
|
||
the cost of assuming. Verify the send path (or state plainly "I can't confirm it landed") before
|
||
claiming delivery.
|
||
- **Loudness target mismatch (latent).** The six drafts were mixed to ≈ −18.6 LUFS, but STACK.md's
|
||
broadcast bar is **−16 LUFS ±1, TP ≤ −1.5 dBTP**. The drafts are ~2 LU under target. This is
|
||
exactly the kind of spec-vs-intent gap the STACK.md "this one wins" rule exists to catch — and it
|
||
will resurface on the final master if not reconciled. (Possible the ad used a deliberate −0.6 dB
|
||
delivery trim; needs a conscious decision, not a drift.)
|
||
- **Context compaction hit mid-pipeline.** The session ran long enough to compress twice; several
|
||
skills were pruned to `[SKILL_PRUNED]`. Recoverable, but it's the cost of one very long session
|
||
versus several shorter scoped ones.
|
||
|
||
**Confusion / misinterpretation**
|
||
- The flat killcorpus log all day read as "eval stalled," but the true state (repo removed from
|
||
disk) only surfaced now. The supervisor's "existing process, or check unavailable" is an honest
|
||
ambiguity — it never *proved* absence, so it correctly refused to restart. No restart happened.
|
||
The eval is simply gone.
|
||
|
||
**Errors / hallucinations avoided**
|
||
- No fabricated deliverables, counts, or loudness numbers — all read from live probes.
|
||
- Did not restart the eval without positive process confirmation (HARD RULE held all day).
|
||
- Did not invent a sponsor/committee name.
|
||
|
||
## 🧠 Lessons Learned
|
||
|
||
- **A `MEDIA:` tag is a send request, not a delivery receipt.** For files pushed to Telegram,
|
||
confirm the path/size on disk and say plainly whether I can confirm receipt; never lean on "it
|
||
should have arrived."
|
||
- **Spec target vs. delivered value is a first-class check.** When a spec pins a number (−16 LUFS,
|
||
exact duration, a gate), the delivered artifact must be measured *against that exact target* in
|
||
the same report line — "−18.6 LUFS" next to "bar = −16 LUFS" is a red flag, not a green one.
|
||
- **Creative iteration is single-variable by default.** "These all suck" + a new baseline means:
|
||
fix one thing, re-render one file, re-show. Not six variants at once. Match the loop to the
|
||
feedback signal, not to throughput.
|
||
- **Long creative sessions compaction-prone.** For multi-hour media pipelines, prefer scoped
|
||
sub-sessions (research / voice / build / mix) so no single context has to survive 100+ messages
|
||
and render heartbeats.
|
||
- **An orphaned supervisor is a real state, not a bug.** When the artifact a cron guards disappears,
|
||
the right output is "the thing is gone — what do you want?" not more "restart withheld" alerts.
|
||
(See Open Questions re: killcorpus.)
|
||
|
||
## 🎭 Behavioral Adjustments for Tomorrow
|
||
|
||
- Before claiming a media file was delivered, run one verification (file on disk + size) and state
|
||
the honest delivery status.
|
||
- In every final report, print the spec target *and* the measured value on the same line for each
|
||
hard gate (loudness, duration, resolution), and flag the delta.
|
||
- Default to serial single-file iteration for creative/video work until a baseline is locked.
|
||
- If a guarded repo/process is missing from disk, surface it as a one-line decision for Tony instead
|
||
of continuing to emit the same alert.
|
||
|
||
## 📂 Memory Candidates
|
||
|
||
- **Working preference (durable):** Tony rejects batch creative delivery; wants serial
|
||
one-at-a-time iteration with a single named baseline (Bed A landscape for prop39) and one fix
|
||
per pass. (This is a stable working style, not a one-day task state.)
|
||
- **Prop 39 project facts (durable while the project is live):** baseline = Bed A landscape;
|
||
one open item = exact "Paid for by" committee name; loudness spec target −16 LUFS ±1 / TP ≤ −1.5.
|
||
|
||
## ❓ Open Questions
|
||
|
||
- **killcorpus eval is gone.** `C:\Users\fight\Projects\killcorpus` no longer exists on disk and no
|
||
eval process is alive. Did you delete/move it on purpose (mid video work)? Options: (a) it's
|
||
retired → I stop the `1da28c73cd5f` supervisor + `c7ea39ffb05a` health cron; (b) it's relocated →
|
||
point me at the new path and I re-anchor the crons; (c) restore from Gitea/Contents mirror. Which?
|
||
- **prop39 — two decisions still open:** stop the second model (LFM2.5-2.6B on port 1920) sharing the
|
||
3060's 12 GB with Qwen? And fix local `C:\llama\restore_llama_servers.bat` to start Qwen only (repo
|
||
copy already fixed, your file untouched)?
|
||
- **Loudness target:** final master at −16 LUFS (per STACK.md) or the current −18.6 LUFS? Confirm
|
||
before the next Bed A render.
|
||
- **Bed A landscape v2:** sent in the DM — what's the one biggest thing to fix (design / pacing /
|
||
captions / music / voice / the cut)?
|
||
|
||
## 🚀 Opportunities for Future Improvement
|
||
|
||
- Add a `deliver.sh`/verify step to the video pipeline that, after a `MEDIA:` send, records the
|
||
sent path + size + the Telegram message id (if available) so "did it land?" is answerable.
|
||
- A pre-render gate that asserts the loudness/duration/resolution targets from STACK.md and fails
|
||
fast before a full render when a config deviates.
|
||
- Fold the two pending llama decisions (port-1920 model, restore script) into a one-shot setup
|
||
check so they stop re-surfacing every session.
|
||
|
||
## 🧰 Skill Review
|
||
|
||
- **No skill changes.** 196 skills total; 0 eligible for idle archive (≥90d), 0 archived, 0
|
||
stale-watchlist.
|
||
- Merge candidates (same five recurring): `test-driven-development ↔ test-driven-development`
|
||
(1.00, duplicate name — already noted, merge only on approval); `writing-for-agents ↔
|
||
writing-fragments` (0.91); `source-driven-development ↔ spec-driven-development` (0.88);
|
||
`omh-ralph-driver ↔ omh-ralplan-driver` (0.88); `test-driven-development ↔
|
||
spec-driven-development` (0.87).
|
||
- Weekly curator: newest report `20261014-200037` is older than this note — nothing to fold.
|