Files
personal-agent-os/memory-systems/agent-os/dream/2026-10-15.md
T
2026-10-17 12:01:19 -07:00

138 lines
8.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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.
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).
## 🔑 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)?
- **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.
**Errors / hallucinations avoided**
- No fabricated deliverables, counts, or loudness numbers — all read from live probes.
- 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.
## 🎭 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
- **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.