TASKS.md 467 → 66 lines: one line per live item, detail stays in TASKS/ task-*.md. The old catalogue (63 rows of paragraph status prose plus the historical narration) is preserved verbatim as TASKS/archive.md — a 2026-10-29 snapshot, not the live queue. The "out of product" list and every retired decision moved to docs/ai/decisions.md with cause of death. HANDOFF.md 440 → 40 lines, and it is now OVERWRITTEN, not appended: branch, what's in flight, next action, live landmines, pending creator checks. History belongs to git log; the previous handoff is reachable at ee3c592:HANDOFF.md. docs/ai/decisions.md (new) collects what no longer governs: the paid tier and its pricing, Polar, Store IAP, the Store route and why it died, the deleted Velopack updater, signing economics, the retired monetization ideas, and the permanent out-of-product list. Facts that lived in the old ai.md "Current limitations" section were re-homed rather than dropped with the router rewrite: OAuth/DPAPI/session behaviour → docs/ai/youtube-api.md; paths, persistence and the Google project number → docs/ai/environment.md. verify.sh caps now cover all four always-read files (AGENTS 210, ai 100, HANDOFF 40, TASKS 120). Docs-only unit: scope-check run, no build.
3.4 KiB
3.4 KiB
docs/ai — index
Subsystems split out of ai.md so a session pays only for the subsystem its task
touches. ai.md is now a router (what the product is, the architecture table, where truth
lives) and AGENTS.md carries the invariants that hold across all of them, so no rule is
reachable only from a file you forgot to open.
Read the file whose row matches the task. There is no required reading order.
| File | Covers | Read when |
|---|---|---|
frame-pipeline.md |
Render budget & measurement (FrameCadence, per-element composite timing, scene dump), SceneCompositor design + StripPool, and FramePump from scene snapshot to encoder (pacing, pool/paste caches, backpressure, teardown, health stats) |
Touching the compositor, the render loop, per-frame cost, Services/Encoder/*, or debugging dropped/juddering frames |
capture.md |
The locked Background layer (screen/game/window capture, WinRT GraphicsCapture interop), the webcam seam + CameraManager sessions, MediaPipe background effects, and the vertical 9:16 tier's per-scene camera placement |
Touching any frame source, the Background row, camera acquisition/conflicts, background effects, or vertical-tier camera geometry |
output.md |
The bundled ffmpeg.exe and the encoder subprocess (args, probe order, seams), local recording (REC/ON-AIR, filenames, private-broadcast close-out), and the WASAPI capture → filter → mix → named-pipe audio chain (TRAX, sync offset, ducking, limiter) |
Touching ffmpeg args/bundling, encoder or recording behaviour, REC/ON-AIR, the audio mix and its meters, or loudness/sync problems |
environment.md |
LAN hosts/IPs/SSH and the Gitea push recipe, the Windows dotnet.exe build + run commands, the test suite map, and the hermetic real-MainWindow test rule |
Before building, running, adding a test, or reaching any box on the LAN |
product.md |
Brand/naming split, AI transparency, the GPL licensing prohibitions, the free-forever monetization posture, auth/account assumptions, and packaging/distribution | Branding, marketing, pricing, licensing, or packaging decisions |
youtube-api.md |
Go-live ordering + the broadcast-binding fix, the private-only lock, health parsing, end-stream pre-flight, Test mode, and chat-insert shape | Touching go-live, broadcast lifecycle, health polling, streaming close-out, or the chat service |
overlays.md |
The social bar, the native alert box (six animations, alert clip, ticker) and the chat box conventions — everything composited over the frame | Adding or changing anything drawn on top of the output |
decisions.md |
Retired paths with cause of death: the paid tier and pricing, Polar, Store IAP, the Store route, the deleted updater, the rejected monetization ideas, and the permanent out-of-product list | You are about to re-open a decision that was already settled |
ui-surface.md |
The control surface, scene strip, preview rail, hotkeys, broadcast drawer, toasts, transitions, brand logo, launch geometry, and the theme/properties-panel conventions | Changing anything the creator sees: layout, controls, theming, properties panel |
Split-out yet to come
Nothing — ai.md is now a router with the always-read invariants; the subsystem detail lives here.