TK-koubo-video-V1.1
TK Talk Video Workflow V1.1: Based on FredTalk 2.1, adds B-roll static image pipeline (see B-roll Static Image Plan); standard process per episode is in the repository root
AGENTS.md. The originalfred-remotion-outputis retained as a backup.
Component source and download access
Read component download access when downloading or publishing components. For a downloaded official source ZIP, default to python3 scripts/assets.py import --zip <local-path>; no token configuration is needed. Automatic token downloads are optional. If this workspace lacks the public import tool, use a separate latest public checkout; do not force pull or overwrite owner production sources. Public previews and source availability are separate; verify installed source before selecting an executable component.
The public version uses this repository's component data, independent source code, and generic assets downloaded per manifest. Component retrieval, top-3 per-segment comparison, and full-episode duplicate comparison share the same current catalog; it does not read the author's private directories, recordings, background music, or machine bindings. Browsing and retrieval do not require an API key.
Validate components first, then deliver suggestions or keyframes
2026-10-03 Fred confirmed: Remotion visuals can only accurately reuse approved components, or create derivative works based on approved components. Original creation outside the component library is prohibited by default. Exceptions are only allowed when explicit authorization for original creation is given for that session; "just output directly" or "don't wait for my confirmation" does not constitute original creation authorization. This rule overrides the old default of "may create original if no suitable reference exists" in historical materials.
2026-10-13 Fred confirmed: "Scene-level customization" is allowed by default. Episodes 113, 114 achieved 90–95 points by rewriting scenes for their specific content, rather than stringing components together as-is. The scope of "derivative work" is defined accordingly:
- Allowed by default: Rewriting scene code for the current episode; disassembling approved components and using only their actions, object relationships, or geometry, modifying timings, removing their built-in open and close, and reconnecting seams; combining actions from multiple components into one segment. The base layer (kit's fonts, colors, shadows, easing, cursors, subtitles, corner graphics, sound effects, coordinate mapping) must be used as-is, without hand-written approximations. The first line of each scene file must comment on which component the action comes from.
- Still prohibited: Plain large-text pages, generic templates, new visual styles with no source action, and code violating
DESIGN.md. These still require authorization for that session. - Public component library intake still requires Fred's approval. Scenes for the current episode serve only that episode; only when a similar need recurs should it be refined into a public component following the new component workflow.
- For how to achieve this quality, see Episode Assembly Section 0.
Before providing per-segment suggestions and delivering real keyframes, Component Library Delivery Gate must be passed respectively. First retrieve and view accurate references, then select types and implement; do not first write generic templates and later add reference IDs. Derivative works must retain recognizable core compositions, object relationships, or action logic; they cannot merely borrow fonts/colors/rounded corners. If no suitable component exists, report "pending component" and the gap, and do not default to creating original text pages.
Validation is done internally by the assistant without adding Fred's approval. Suggestions check real candidates and expression matching; keyframes additionally check source code → current function → actual call → output frame. Both stages record specific review conclusions and current file evidence; technical availability does not replace visual acceptance. If library_gate.py does not PASS, the corresponding suggestions or keyframes must not be delivered; the public generator automatically blocks, and custom frontends and chat suggestions must also run the same gate. Real screen recordings/images/existing videos, B-roll independent workflows, fixed subtitles/corner graphics, and clearly marked screen recording placeholders are not subject to the original creation restriction, but these categories cannot be used to conceal new Remotion designs. Old finished episodes are not retroactively modified; future re-suggestions/keyframes are validated based on the current actual scope, without refreshing old approvals.
Clearly articulate the transcript and maintain Fred's approved animation quality. First determine the current phase and read only materials relevant to that phase and scene; full descriptions and historical rules are deferred to auditing/maintenance.
Body components/body text animations, project Remotion technical references, and old Deck overall assembly have been moved to Internal Modules and are no longer independent daily production entries. Use only one current Manifest and the same frontend; replication and cloud rendering remain separate. The visual library and production retrieval share Six Production Usage Types, multi-purpose tags, and independent source filtering. references.py --use explain --source ep107 allows retrieval by task and source; a single-scene package carries actual input, action, original duration, and adaptation scope. The frontend defaults to viewing the visual library first; Typography binds real fonts and responsibilities. First verify accurate videos, interfaces, and dependencies, then retain full actions needed for the current episode.
First see candidates for each segment, then decide on visuals
A common problem with Codex/assistant is using only two or three familiar components or directly writing large-text pages. For each segment requiring visuals, follow the steps below without skipping:
- Write in the Manifest
componentPlan.query: Describes the visible objects and actions in the scene (e.g., "side-by-side comparison of two tool prices, numbers landing"), not a verbatim copy of the narration. - Run
scene.py --manifest <path> --scene-id <id> --candidates-only: Provides 5 candidates retrieved based on the visual description, andnarrationCandidatesbased on narration. When the same type is insufficient, it will fill in from other types and annotatesameSceneType. - Individually view the exact video or key frames of the candidates (
references.py --id <id> --full), then decide based on content. The first 3 candidates must recordselected/rejectedand specific reasons incomponentPlan.candidates;library_gate.py --stage suggestionwill recalculate and intercept unrecorded ones. Scenes with original creation authorization must still be compared. - If none of the candidates are suitable: First rephrase the query (break into objects + actions, change
--use), and retrieve again. If still none, report the gap, and do not default to plain large-text pages.
Search based on content (starting point, not fixed combination):
| Topic of talk | Try first |
|---|---|
| A conclusion, keyword | --query keyword one-sentence;repeated word across multiple news articles use NMC01 |
| Listing several points, capabilities | --query points list、--query cards classification |
| Steps, processes, cause-effect, architecture | --query process steps、--query branch relationship |
| Comparison between two, past vs present | --query comparison difference、--query version |
| Input prompt, chat, reply | INT03(Codex operation)、INT04(editable WeChat)、CAM04;--query input send |
| A sentence in a screenshot or article | INT01(highlighter)、INT02(mask focus);--use recording-focus |
| Real screen recording operation | CAM01–CAM05、--use video-entry;full-screen play uses default large playback component |
| Artwork, multiple images, results | --use images |
| Numbers, prices, charts | --use data、--query data growth;these component types are few; if none suitable, honestly report the gap |
| Chapters, transitions, next segment | --use handoff、--query transition |
Default Collaboration Order
Script/Optional Recording → Assistant Per-Segment Text+Image Suggestions → Fred Selects Direction → Real Component Keyframes → Fred Comments and Confirms → Assistant Internal Motion Check → Full Video → Local Revisions per Feedback.
- From the first version page, provide content-rich suggestions: how this segment will be presented, why it fits, and reference images or playable clips. When exact library components can express it, show real effects first; only create storyboard images when a new composition is needed. Do not return blank design tasks to Fred.
- After direction is set, first implement enough real components to render, using the episode's text/media and applicable corner graphics/subtitles to generate keyframes. Keyframes are used to adjust layout, hierarchy, scale, readability, and occlusion; then internally review short animations, audio, and seams, then produce the full video. By default, do not wait for an extra round of user dynamic sample approval.
- The same frontend continuously displays suggestions, keyframes, and videos, retaining versions and comments. Default to using the Public Review Template initialization/update/startup scripts, only replacing the current Manifest and media; the audio module uses the shared Audio Skill public stage, without rewriting pages each episode.
assets/review-example-ep108/START.pycan directly open the real content example of ep108's first 7 segments (61.47 seconds), including talk, subtitles, keyframes, and video; it is replaceable sample data, not a fixed per-episode visual plan. Quantity is determined by content, not fixed by 9-grid, 140 images, component quotas, or cutting frequency. For full workflow and fields, see Route, Keyframes, and Confirmation. - Do not repeatedly ask for already confirmed direction/keyframes; local revisions only process affected content. Current direct-output authorization can override user review steps, recording real sources and unreviewed scope; internal technical checks and necessary dynamic checks are still performed; do not misrepresent output authorization as sample approval. Whether to generate keyframes or directly produce the video follows Fred's request for that session, without additional reminders or discouragement (2026-10-12 Fred clarified); when unspecified, follow the default order above and first produce keyframes.
- Assemble components into a full episode (segmented engineering, screen recording packaging, inter-segment handover table, full-episode deduplication, emphasis methods, pre-render dynamic self-check) per Episode Assembly. Briefs for subtasks writing segmented code must include its Sections 2–7 and the current episode's handover table. Use Episode Skeleton directly for engineering structure (timeline, segment shells, handover geometry, block rendering, audio and BGM, frontend push); check per Episode Assembly Section 12 before delivery.
Bring user requirements to every actual shot
For shared fonts, full-text in-place emphasis, and media replacement in component adaptation, see Reuse Map. scene.py will bring the segment's componentAdaptation; verify same-group font scales, content responsibilities, full-text check status, and object-level protection before implementation; accurate parameters come from current content, not fixed per-episode font sizes, line counts, or component combinations.
The shots, text, materials, and retention requirements already given by the user are the current execution input; do not require the user to write a detailed prompt each episode. First store them in the same Manifest's designContract and affected scenes per Production Defaults; use scene.py --manifest ... --scene-id ... to read during implementation, ensuring full-episode requirements, current actions, materials, and corner graphics arrive together. When revising direction, update old action descriptions synchronously; do not only change images or version numbers.
For action implementation and revision, check continuous trajectory, content readiness before scaling, real reading windows, and same-carrier handover per Specific Status Checks; when layout is finalized, prioritize switching focus with the talk, without automatically redoing the layout. Static pass, technical pass, and dynamic acceptance are still recorded separately.
Prepare materials per Information Responsibilities of Full Script, distinguishing ready-made effect examples, current tutorial materials, and actual operation evidence; for revisions, protect the accurate version per Approved Dimensions. "Add mask/component on top of existing" inherits media, scroll, and camera state per Actual Final State Handover, without restarting.
When delegating or taking over from brief instructions, use Production Execution Brief, populating current path, authorization, and retention scope; it references the current source of truth without adding a new approval layer. Representative shots must verify "whether expression and quality are preserved compared to requirements and references"; technical PASS cannot replace this step.
Default BGM for Full Video
Full finished videos default to Background Music: Fred's local machine uses private music with pre-adjusted volume, starts from second 0, internally selects segments to fill duration, mutes the original audio appreciation interval while the music clock continues, and mixes the entire video once before final packaging. Normal BGM track linear volume 1, no additional decibel reduction; final bus applies necessary protection based on actual AAC peaks. Machine binding and music entities are not distributed or auto-uploaded; others use --bgm to provide their own music, still utilizing the same extension/mute/mix capabilities. Finished videos already containing BGM and back-returned CapCut tracks do not receive duplicate addition; solo talk and component diagnosis do not default to adding music. Execution entry is scripts/bgm.py; capability package is generated by scripts/package_bgm.py.
Fixed Narration and Full-Episode Component Distribution
Fred's subsequent per-episode full videos default to reusing the Skill/Component Library Transition Narration once at a natural breakpoint: only fixed audio, animation changes each episode, using Fred's current episode-provided or specified visuals, without automatically reusing ep109 animations. New script recordings no longer repeat these four sentences in the body; read the current pure narration's actual sample duration from the manifest, arrange the timeline with the current episode's animation (current 5.540 seconds, old 6.016 seconds mix kept only for history), and subtitle style and visual continuity follow current episode requirements. Do not add duplicate narration if the same voice is already present, and do not fix the old video's 362 frames or insert shot numbers. Before insertion, verify the pure narration/animation SFX mix identity; check the loudness of the entire segment and each internal sentence per Audio Skill; if necessary, only perform local matching for the current episode, without stacking old processing.
Before suggestions, also perform Full-Episode Component Distribution Check; do not only validate single shots. The library_gate.py suggestion stage already intercepts duplicate components lacking specific episode-wide comparison; retain continuous objects, same-responsibility shells, and intentional echoes; do not force replacement of good components with worse ones to meet usage limits. Similar but different sources still require actual visual overview.
Always Retain
All approved component collections (library replicas, episode selections, new selections, interactive components, 3D camera movements, news flash, etc.) have their IDs, descriptions, intake/release records unified in Component Collection Index. Default retrieval covers all collections; no need to memorize collection names individually.
- Latest user requirements take precedence. Lock original text and actual materials; if no recording is available, conceptualize and estimate; once final recording/SRT arrives, update affected actions, subtitles, and sound effects; do not only replace the audio track. Without final recording, only produce up to keyframes, not full video; when duration is insufficient, add components or cut short; do not use slow pushes, freezes, or stretches to fill duration.
- Only one current Manifest exists;
pages/stableIdrecords semantic segments. Scene data carries selected direction, implementation pattern, current materials, feedback, retention scope, and adjacent handovers. Production/review/delivery each bind to accurate versions. - Adapt approved components per Design Language, allowing scene-level customization (see "Validate components first" section at the beginning); entirely new visual styles require explicit Fred authorization for that session. Visuals, layout, typography, animation, presentation, sound effects, and content fixed values are in DESIGN.md Section 2; code layer uniformly uses the kit from
templates/component-kit, without hand-writing approximations in scenes. Check component capabilities first via Reuse Map. If a complete mature module directly fits, reuse it, retaining actual action relationships, font scales, geometry, and texture; do not merely hang a reference ID or copy a capsule. If no accurate plan exists, first report the gap; do not default to original creation. Implementation patterns and attribution are in From Content to Components. - Subsequent 16:9 main video full-screen/large-window playback defaults to actually calling the EP108 Large Playback Component: 4K window 3600×2027.11, rounded corners 48, shadow
0 32px 50px #0002, 1080 logic stage uses half values to avoid double scaling. Current explicit overrides and other uses follow respective responsibilities. FredTalk horizontal explanation animations continue using the fixed upper-right brand layer, choosing existing version based on local background; screen recordings and real footage playing as main content do not overlay the upper-right corner mark; Fred person B-roll animation full-screen playback adds corner mark (2026-10-12 Fred clarified; version checked against fred-remakecorner-branding.md). Mixed scenes toggle based on actual playback interval; do not unconditionally hang brand layer on the outermost level of the entire video. When burned-in subtitles are needed, reuse Smiley Sans Module and include them from the keyframe stage; key foreground avoids collision within subtitle actual window. Independently delivered pure B-roll, other aspect ratios, and current exceptions are processed per original scope. - Default standalone 16:9, 1080p preview, 4K60 formal; current specifications and approved engineering take precedence. Render locally/cloud per authorized method. Record timing estimates, static approval, dynamic check, user approval, and technical pass separately. Protect non-target visuals, audio tracks, and materials; do not auto-upload, pay, or send externally. For burned-in subtitle minor edits, only re-render affected cues and necessary seams, then merge; when referring to Doubao's work, use female pronoun "she", verifying against actual reference.
What to do now, enter from here
| Current work | Read & Execute |
|---|---|
| Audio + SRT + script already in, only rough cut/subtitle correction needed | First use Audio and Subtitle Rough Cut; complete full-paper long subtitles, intra-sentence repetition and pause check; verify true peak, cut/subtitle linkage, and new/old source time alignment per audio workflow; for already processed recordings, only cut as required; do not automatically enter full video production |
| Take on script, propose full set of text+image suggestions | Route and Confirmation; for first new design, read Design Language and Typography Responsibilities; then arrange per Production Defaults and Storyboarding; read full text to understand responsibilities and handovers; do not read entire library |
| Plan/generate B-roll static images for scenes | B-roll Static Image Plan: trigger conditions, how many, three forms, material sources, prompt guidelines, QA checklist |
| Start current scene | First run scene.py --manifest <path> --scene-id <stableId> --candidates-only to select components, then remove --candidates-only to read full scene package (decisions, fonts, adjacent beginnings/ends); first time for a type, use scene.py --list |
| Find exact components and dependencies | references.py --query <object and action> --limit 5 (can add --scene-type, --use); same score rotates by source batch; collection list in Component Collection Index; use same usage tags as visual library; view matching reasons; sort by candidate relevance; still verify actual actions, capacity, cues, and interfaces. First project setup reads Dependencies and Implementation |
| Create new reusable component (Fred authorized for this session) | New Component Workflow: component_kit.py new/add create project, lint, sheet self-check, cloud-script cloud render, preview submit to Fred for selection, intake add to library; fixed rules in DESIGN.md Section 2; quality benchmark is T05c |
| Existing components cannot express; need exploration | Exploration, Storyboard Images; if using ChatGPT Pro, record prompt, session, hash, and approval scope per Pro Storyboard Exploration and Remotion Replication. For selected multi-state/9-grid, first trim per talk, then implement continuous objects, actions, and reading; can use Motion Plan Template to write back to current Manifest; do not substitute confirmed direction unilaterally |
| Produce real keyframes for Fred to review | Route and Confirmation and Review Video; include actual longest text, subtitles, brand, motion intermediate states, and before/after seams |
| Design object yielding/text presentation | Object Transitions or Text Presentation; check T/W local actions as needed |
| Handle specific Remotion techniques or maintain existing Deck | Internal Modules; fix current episode runtime; read technical rules per issue; Deck click/ratio contracts only apply when explicitly maintaining or replicating existing Deck |
| Reference library original film to compose shots | Library Shot Language; first determine viewing task and object source/destination, then find corresponding original film interval and component |
| Compose generated video from screen recordings or other tasks | First follow Episode Assembly screen recording packaging rules (readable, camera follow, interactive performance, pure scroll ≤2s); main video full-screen playback first use Default Large Playback Component; Media and Masks and Route doc's External Video Handover; retain media identity, clock, sound, and beginning/end |
| Internal check of motion/sound/continuity | Content and Quality Review, Sound Effects, scene.py --stage joining; after rendering segments, run scripts/motion_audit.py to check slow pushes, pure scrolls, and freezes; see Episode Assembly |
| Render, download, deliver fully | Render and Delivery and Stage Gates; at this point read cloud execution and final file checks |
| Local revision | scene.py --stage revision + affected scenes; simultaneously read notes and conclusions; do not treat "usable but needs changes" as full segment approval |
| Deposition of user requests | Maintenance; only extract reusable judgments; retain boundary between current revision methods and long-term preferences |
Execution tools and check boundaries
Set workflow.profile: fred-video-v2, workflow.componentMatching: v1 in the current Manifest. Record scene componentPlan per From Selection to Call; actual selection matches referenceChoices; implementation uses callSite.callee to bind current episode adaptation function; after syntactic call check, still compare against actual output. User direction and keyframe records follow Route doc; old episodes limit changes without fabricating new fields. Production stages remain planning → implementation → representative → formal: planning check before implementation; after real keyframe confirmation and short animation internal check, enter representative shot gate; finally validate actual final files. Specific commands are maintained only in Stage Gates; old episodes are not fully replanned to adopt new workflows.
sceneGuide records type, actual extras, and per-scene decisions/checks. Type selection must justify content; characters, devices, relationship lines, frosted glass are added as needed, not as layout templates. Brand and subtitle root settings are passed with scene data; subtitle rules only read when actually enabled.
For script/timing check, use validate_storyboard.py --require-scene-guides --require-production-contract; for workflow check, use workflow.py; technical gates cannot judge aesthetics; existence of reference files does not prove actions are used; still frames cannot prove smooth intermediate motion. Compare against actual current visuals and corresponding intervals of selected source films, specifically evaluating content, readability, action, texture, and handovers.
Project dependencies use only local skills/ entities. New engineering goes in current episode's 03_Production/remotion/<version>/; final unique file goes in 02_Final_Output/; update current delivery entry. Frozen hard links are copied before adaptation. B-roll material generation, replication, and cloud rendering continue to assume specialized responsibilities; old Deck processes do not automatically become pre-creative.
For material sources and media replacement, verify against Visual Library Material Provenance; do not replace source and new output validation with local paths, renaming, or old trade-offs.