docs(memory): split the frame pipeline out of ai.md into docs/ai
ai.md is the mandatory read every session; at 2,702 lines / ~64k tokens it costs the whole subsystem history even when the task never touches it. This is a verbatim move, not a compression - nothing is deleted and each stub is written from the moved text. - docs/ai/frame-pipeline.md: 'Frame cadence', 'Per-element composite timing + scene dump', 'What the first instrumented take said', 'Render budget', 'Scene compositor' and 'Live frame pipeline', byte-identical, plus a short 'Related in ai.md' footer and two stale 'below' pointers corrected. - ai.md keeps two stubs carrying the invariants that must not be missed (overlay on every render path, VideoFrame.Epoch, StripPool threads, Release-only render numbers; arrival-stamped rawvideo, non-blocking submit, stop order, burned _outputIndex judge) and links the new file. - docs/ai/index.md + docs/index.md route the split; schema.md inventory lists the new tier. - 4 index-row references and 2 TASKS.md anchors repointed; ai.md's Services row too. Measured: ai.md 63.6k -> 47.1k tokens, 2,702 -> 1,975 lines. Progressive disclosure per schema.md convention 5. No source touched; no push.
This commit is contained in:
@@ -0,0 +1,18 @@
|
||||
# docs/ai — index
|
||||
|
||||
Subsystems split out of [`ai.md`](../../ai.md) (2026-10-26) so a session pays only for the
|
||||
subsystem its task touches. The split is a **verbatim move**: history, traps and measurements are
|
||||
unchanged, and `ai.md` keeps a short stub carrying the load-bearing invariants plus a link here, 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`](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 |
|
||||
|
||||
## Split-out yet to come
|
||||
|
||||
The remaining `ai.md` blocks are being moved in staged units (capture, YouTube/alerts/auth, product,
|
||||
UI patterns/theming, audio/recording/encoder). Add the row when the file lands; do not create empty
|
||||
placeholders.
|
||||
Reference in New Issue
Block a user