AGENT SKILL
compile-timeline
Use when edit_blueprint.yaml and selects_candidates.yaml are ready and the user asks to compile the rough cut, generate timeline.json, or apply a review patch.
- License 许可
- MIT
- 最近更新
- 2026-09-04
- Stars
- ★ 5
- Forks
- 1
01 前言 Front Matter
- name
- compile-timeline
- metadata
- { "bashPattern": [ "compile-timeline" ], "filePattern": [ "**/05_timeline/timeline.json", "**/05_timeline/preview-manifest.json", "**/05_timeline/adjacency_analysis.json" ] }
- description
- Use when edit_blueprint.yaml and selects_candidates.yaml are ready and the user asks to compile the rough cut, generate timeline.json, or apply a review patch.
03 SKILL.md 正文
compile-timeline
いつ使うか
- 「コンパイルして」「タイムラインを生成して」と言われたとき。
creative_brief.yaml,selects_candidates.yaml,edit_blueprint.yamlが揃っているとき。
前提条件
scripts/compile-timeline.tsは compile 前後でscripts/validate-schemas.ts相当の gate を見る。01_intent/unresolved_blockers.yamlにstatus: blockerがあると compile gate が落ちる。- fps を 24 以外にしたい場合は
--fps <num>を明示する。
やること(ステップ)
- 必要 artifact が存在することを確認する。
- compile を実行する。
npx tsx scripts/compile-timeline.ts projects/<project> --fps 30
- review patch を適用したい場合は patch mode を使う。
npx tsx scripts/compile-timeline.ts projects/<project> --patch projects/<project>/06_review/review_patch.json --fps 30
- 出力された
timeline.json、preview-manifest.json、必要ならadjacency_analysis.jsonを確認する。 - 既存preview/finalがある状態でtimelineを更新した場合、それらをfreshとみなさない。Studio確認前にrenderを再実行し、
playback-contract-statusがexactであることを確認する。
出力 artifact
05_timeline/timeline.json05_timeline/preview-manifest.json05_timeline/adjacency_analysis.jsonただし active editing skills による transition 解析が走った場合
注意事項
scripts/compile-timeline.tsのcreatedAtは01_intent/creative_brief.yaml.created_atから決まる。- patch mode は
timeline.jsonを上書きし、同時にpreview-manifest.jsonも再生成する。 - manifest hashだけを手編集して古いpreviewをfresh扱いにしない。
adjacency_analysis.jsonは debug / explanation 用 artifact。常に生成されるわけではない。- Rhythm Sync (Issue #35):
03_analysis/bgm_analysis.json(onset/downbeat/sections)と楽曲アセットの word-level STT(03_analysis/transcripts/TR_<music_asset>.jsonのitems[].words[])をリズム証拠として、サビ/ブレイク開始のカット境界を ±1.5秒探索で1フレーム精度スナップする(サビは第一声・ダウンビート優先の Hard Snap)。証拠が無い/曖昧な場合は fail-open でtimeline.metadata.rhythm_syncにstatus: degradedと理由を明示し、クリップのジオメトリは変更しない。スナップ後はintegrity.gap_frames/overrun_frames = 0を検証し、parity(±2フレーム、サビ頭違反は fail)をtimeline.metadata.rhythm_syncとpreview-manifest.json.rhythm_syncの両方へ刻印する。無効化はruntime/compiler-defaults.yamlのrhythm_sync.mode: off。