# Follow row feedback into a destination composer **Draft manual construction guide. Moving-source fidelity and native Resolve execution remain unverified.** Two original content variants form one example. ## Source and composition Official film `yyvVUEPSCu0`, selected native interval [600,900), 60/1 fps. Use a silent 1920×1080 square-pixel composition containing local frames 0–299. Exact duration: 300/60 seconds (5.000000 s). Source ordinal = 600 + local frame. No frame-rate rounding, extra opening pause, closing hold or narration belongs to this study. The comparison is a retained, hash-bound 960×540 research excerpt. Preserved native metadata and PTS ledgers bind its clock; the historical full master is absent, so this is not a fresh full-master decode. Samples informed the build. Intermediate paths and measured-looking coordinates below are authored reconstruction controls, not official product timing, latency or design tokens. ## Setup and common coordinate rules Verify the unmodified kit with `python3 verify_package.py`, then follow `project/README.md`. Choose either input JSON content set. Install the bundled licensed Geist font for Text+, and calibrate pixels, weight, tracking and baselines against the supplied MP4; a font name alone does not guarantee parity. Regenerate `docs/controls.csv` with `node --experimental-strip-types scripts/controls.mjs`. Each row includes the local frame, source ordinal and exact sampled controls. Fusion global frame = composition start + CSV frame. Coordinates here use pixels from top-left, Y down. For a point in normalized Fusion image coordinates, X=pixelX/1920 and Y=1−pixelY/1080; convert top-left rectangles through their centers. Check the installed tool's coordinate direction instead of assuming CSS and Fusion match. Parent transforms apply after local transforms. A uniform pivoted transform is pivot + scale×(point−pivot), followed by the stated translation. Convert angles to your tool's convention. CSS rotations are clockwise in this Y-down space. Continuous controls use the CSV per-frame values, not an unspecified default spline. Held gates, text prefixes, colors and row indexes use stepped keys. Smoothstep is t²(3−2t), with t clamped to [0,1]; linear progress is clamped t. Rectangle masks need pixel-correct width and height; normalized X/Y values are not interchangeable on a non-square raster. Match opacity, clipping and layer order before attempting a moving comparison. ## Row feedback followed by a destination cut Start with the two centered chapterLines on white, size 138, weight 600, tracking −4 pixels and line height 1.1. Hold local 0–16. At 17, hard-cut to a large application closeup. At 176, hard-cut to the destination composer. ### Sidebar closeup Build a white window at (sidebarX,60), 2600×1400, with rounded top corners, border and shadow. Its right/bottom edges deliberately extend outside the 1920×1080 viewport. The left rail is 1000 pixels wide. Its brand begins at window-local (60,44), size 58. Each 936×112 row begins at (32,171+136×rowIndex), has radius 21, 38-pixel horizontal padding, a 56-pixel stroke icon, 38-pixel icon/text gap and size-56 text with tracking −1 pixel. - Map feedbackRow 0 through 75, 1 at 76–99, and 2 from 100 to a pale rounded row fill. Other rows stay plain. These are interface feedback states; the source does not establish a click or three visited destinations. - Keep the right pane's heading fixed to navigation[2] throughout this phase. Do not replace it on each feedback change. No route-selection data exists. - Move the whole window X from 460 to 380 over 17–175 using the supplied samples. Preserve the close crop rather than shrinking the full window. ### Destination composer At 176, replace the closeup with white space, the supplied original identity SVG at (884,264), 152×144, a centered promptTitle at y=435 with size 68, weight 500 and tracking −1.5, and a composer at (190,604), 1540×204, radius 37, a subtle border and shadow. The query begins composer-local (32,28), size 30, line height 1.4. Rebuild plus, microphone and send icons as separate vector layers, keeping their positions with the composer. The query is already underway at the cut: reveal a prefix using promptProgress .16→.86 over 176–299. Move this entire destination layout vertically by destinationY, 0→−100 during that interval. The icon, title, text and container share that translation; the source is not only scrolling the query. Stop after 299 without sending, generating a response or adding a success state. The sidebar feedback is distinct from the library's editorial outline-box callouts. Source iconography, wording, detailed crop and camera path differ. The new fixture is not a live Poe demonstration or a claim about product routes. ## Verification boundary Inspect both actual exports at their native cadence, including entry/exit, hard gates, layering, width, masks and holds. Shipped code checks font loading and selected text-width budgets before rendering; it rejects oversized copy instead of silently shrinking it. This is not arbitrary-input readability approval or a guarantee that an independent Text+ rebuild fits. The kit contains editable original geometry, fixtures, controls and tests; source screenshots/movies are not renderer inputs. Native .drp execution, tested Resolve import, independent moving-source review and source-quality approval are not included. Existing matching pinned dependencies were used, not a clean dependency install. A modified input needs a new render and review.