mirror of
https://github.com/calesthio/OpenMontage.git
synced 2026-08-05 15:20:40 +08:00
- init_project() writes project.json marker + canonical workspace layout - write_checkpoint enforces approval gates: completed on a gated stage requires human_approved=True (GATE VIOLATION otherwise) - superseded checkpoints archived to projects/<id>/history/ (stage versioning, gate audit trail, replay) - BaseTool auto-instruments execute() -> projects/<id>/events.jsonl (start/finish/error, scene_id, cost) for the Backlot live board - assets stage now gates (human_approval_default: true) in all manifests - checkpoint-protocol + AGENT_GUIDE: manifest gate value is binding, awaiting_human + end-turn protocol, per-gate approval, canonical checkpoint location fixed to projects/<id>/ - gate reminder footer on all gating stage director skills - /backlot command files for Claude Code, Codex, Cursor, Copilot
247 lines
7.9 KiB
YAML
247 lines
7.9 KiB
YAML
name: screen-demo
|
|
version: "2.1"
|
|
description: >
|
|
Screen recording pipeline. Two production modes:
|
|
1. REAL CAPTURE — takes raw screen capture (app demo, browser walkthrough,
|
|
coding tutorial) via screen_recorder, cap_recorder, or playwright-recording
|
|
and produces a polished demo video with callouts, zoom crops, subtitles,
|
|
and cleaned audio.
|
|
2. SYNTHETIC (Remotion TerminalScene) — for CLI/terminal/install-flow demos,
|
|
renders a deterministic terminal animation with typed commands, scrolling
|
|
output, floating command pills, and blinking cursor. See
|
|
.agents/skills/synthetic-screen-recording/SKILL.md. Preferred when the
|
|
demo content is predictable (install walkthroughs, make targets, git clone,
|
|
API key config) because it's faster to iterate, privacy-safe, pixel-perfect,
|
|
and frame-accurate to narration cues.
|
|
The idea-director picks the mode at brief time based on whether the demo surface
|
|
is a real app UI (real capture) or a scriptable terminal session (synthetic).
|
|
category: screen_recording
|
|
stability: production
|
|
default_checkpoint_policy: guided
|
|
|
|
# Production modes this pipeline supports
|
|
production_modes:
|
|
- name: real_capture
|
|
description: "OS screen recording of a real desktop/browser session"
|
|
required_tools: [screen_recorder]
|
|
optional_tools: [cap_recorder]
|
|
best_for:
|
|
- Real app UIs (Figma, Photoshop, web apps with live state)
|
|
- Demos that depend on unpredictable live behavior
|
|
- User explicitly asked for a recording of their own screen
|
|
- name: synthetic_terminal
|
|
description: "Remotion TerminalScene — synthesized terminal animation"
|
|
required_tools: [video_compose] # Remotion path
|
|
scene_type: terminal_scene
|
|
agent_skills: [synthetic-screen-recording]
|
|
best_for:
|
|
- CLI / terminal / coding session demos
|
|
- Install walkthroughs, setup demos, config flows
|
|
- Tight narration-synced pacing where every command lands on a beat
|
|
- Reproducible renders (same input = identical pixels)
|
|
|
|
orchestration:
|
|
mode: executive-producer
|
|
skill: pipelines/screen-demo/executive-producer
|
|
budget_default_usd: 1.00
|
|
max_revisions_per_stage: 3
|
|
max_send_backs: 3
|
|
max_wall_time_minutes: 10
|
|
|
|
extensions:
|
|
custom_scripts: true
|
|
custom_playbooks: true
|
|
custom_skills: true
|
|
custom_tools: false
|
|
|
|
required_skills:
|
|
- pipelines/screen-demo/executive-producer
|
|
- pipelines/screen-demo/idea-director
|
|
- pipelines/screen-demo/script-director
|
|
- pipelines/screen-demo/scene-director
|
|
- pipelines/screen-demo/asset-director
|
|
- pipelines/screen-demo/edit-director
|
|
- pipelines/screen-demo/compose-director
|
|
- pipelines/screen-demo/publish-director
|
|
- meta/reviewer
|
|
- meta/checkpoint-protocol
|
|
- meta/animation-runtime-selector
|
|
|
|
compatible_playbooks:
|
|
recommended:
|
|
- minimalist-diagram
|
|
- clean-professional
|
|
also_works: []
|
|
custom_allowed: true
|
|
|
|
stages:
|
|
- name: idea
|
|
skill: pipelines/screen-demo/idea-director
|
|
produces:
|
|
- brief
|
|
- decision_log
|
|
tools_available: []
|
|
checkpoint_required: true
|
|
human_approval_default: true
|
|
review_focus:
|
|
- Brief accurately describes what the screen recording demonstrates
|
|
- Target platform and duration are realistic
|
|
- Callout strategy identified (what to highlight)
|
|
success_criteria:
|
|
- Schema-valid brief artifact
|
|
- Brief references the provided screen recording footage
|
|
|
|
- name: script
|
|
skill: pipelines/screen-demo/script-director
|
|
required_artifacts_in:
|
|
- brief
|
|
optional_artifacts_in:
|
|
- source_media_review
|
|
produces:
|
|
- script
|
|
required_tools:
|
|
- transcriber
|
|
optional_tools:
|
|
- scene_detect
|
|
- audio_enhance
|
|
tools_available:
|
|
- transcriber
|
|
- scene_detect
|
|
checkpoint_required: true
|
|
human_approval_default: true
|
|
review_focus:
|
|
- Transcription captures any voiceover accurately
|
|
- Key UI actions are annotated with timestamps
|
|
- Sections align with logical workflow steps
|
|
success_criteria:
|
|
- Schema-valid script artifact
|
|
- Script sections have timestamps from transcript or manual annotation
|
|
|
|
- name: scene_plan
|
|
skill: pipelines/screen-demo/scene-director
|
|
required_artifacts_in:
|
|
- script
|
|
optional_artifacts_in:
|
|
- brief
|
|
produces:
|
|
- scene_plan
|
|
required_tools: []
|
|
optional_tools:
|
|
- frame_sampler
|
|
tools_available:
|
|
- frame_sampler
|
|
checkpoint_required: true
|
|
human_approval_default: true
|
|
review_focus:
|
|
- Zoom-crop regions identified for key UI moments
|
|
- Callout overlay positions don't obscure important UI
|
|
- Pacing allows viewer to follow the workflow
|
|
success_criteria:
|
|
- Schema-valid scene_plan artifact
|
|
- Every key workflow step has a corresponding scene
|
|
|
|
- name: assets
|
|
skill: pipelines/screen-demo/asset-director
|
|
required_artifacts_in:
|
|
- scene_plan
|
|
optional_artifacts_in:
|
|
- script
|
|
produces:
|
|
- asset_manifest
|
|
required_tools: []
|
|
optional_tools:
|
|
- subtitle_gen
|
|
- tts_selector
|
|
- image_selector
|
|
- diagram_gen
|
|
- audio_enhance
|
|
tools_available:
|
|
- subtitle_gen
|
|
- tts_selector
|
|
- image_selector
|
|
- diagram_gen
|
|
- audio_enhance
|
|
checkpoint_required: true
|
|
human_approval_default: true
|
|
review_focus:
|
|
- Subtitle file exists and matches speech timing
|
|
- Reusable callout overlays (arrows, highlights, masks) are prepared
|
|
- Audio cleaned of keyboard noise and background hum
|
|
success_criteria:
|
|
- Schema-valid asset_manifest artifact
|
|
- All referenced asset files exist on disk
|
|
|
|
- name: edit
|
|
skill: pipelines/screen-demo/edit-director
|
|
required_artifacts_in:
|
|
- scene_plan
|
|
- asset_manifest
|
|
optional_artifacts_in:
|
|
- script
|
|
produces:
|
|
- edit_decisions
|
|
tools_available: []
|
|
checkpoint_required: true
|
|
human_approval_default: false
|
|
review_focus:
|
|
- Zoom-crop notes are smooth and minimal (no constant motion)
|
|
- Dead time (loading, typing pauses) trimmed or sped up
|
|
- Callout timing matches narration
|
|
success_criteria:
|
|
- Schema-valid edit_decisions artifact
|
|
- All cuts reference valid source files and assets
|
|
|
|
- name: compose
|
|
skill: pipelines/screen-demo/compose-director
|
|
required_artifacts_in:
|
|
- edit_decisions
|
|
- asset_manifest
|
|
optional_artifacts_in:
|
|
- scene_plan
|
|
produces:
|
|
- render_report
|
|
- final_review
|
|
required_tools:
|
|
- video_compose
|
|
- audio_mixer
|
|
optional_tools:
|
|
- video_trimmer
|
|
- audio_enhance
|
|
tools_available:
|
|
- video_compose
|
|
- hyperframes_compose
|
|
- audio_mixer
|
|
- video_trimmer
|
|
- audio_enhance
|
|
checkpoint_required: true
|
|
human_approval_default: false
|
|
review_focus:
|
|
- Output video is playable and crisp at target resolution
|
|
- UI text remains readable after crops and scaling
|
|
- Audio is clear with no keyboard/click noise
|
|
- "render_runtime in edit_decisions matches proposal_packet — silent swap is a CRITICAL governance violation"
|
|
- "For synthetic UI/terminal demos, render_runtime='remotion' (TerminalScene) is preferred; render_runtime='hyperframes' is valid for custom HTML UIs — in that case, lint+validate must pass before render"
|
|
success_criteria:
|
|
- Schema-valid render_report artifact
|
|
- Output file exists and passes ffprobe validation
|
|
|
|
- name: publish
|
|
skill: pipelines/screen-demo/publish-director
|
|
required_artifacts_in:
|
|
- render_report
|
|
- final_review
|
|
optional_artifacts_in:
|
|
- brief
|
|
produces:
|
|
- publish_log
|
|
tools_available: []
|
|
checkpoint_required: true
|
|
human_approval_default: true
|
|
review_focus:
|
|
- Metadata includes relevant software/tool keywords
|
|
- Chapter markers align with workflow steps
|
|
- Export package is complete
|
|
success_criteria:
|
|
- Schema-valid publish_log artifact
|
|
- Export directory contains video, metadata, and thumbnail concept
|