Skip to main content

create-demo-video

Create captioned engineering proof videos from real CLI, deployed Playwright, or Apple evidence with bounded media processing and frame-only review.

설치로 이동

소스 정보

저장소
glowingkitty/OpenMates
최근 소스 활동
2026년 9월 11일 12:04
감지된 SKILL.md 언어
영어
스타
46
포크
3

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
name
create-demo-video
description
Create captioned engineering proof videos from real CLI, deployed Playwright, or Apple evidence with bounded media processing and frame-only review.
user-invocable
true
argument-hint
<spec.ts | CLI command> [visible claim]
# Create Demo Video Use this skill for engineering proof, not marketing video production. Start with one command: ```bash python3 scripts/proof_video_workflow.py start --current --spec <name>.spec.ts ``` The command resolves the current sessions.py session, subject commit, and matching passing run. If evidence is missing or ambiguous, follow its single reported next action instead of searching artifacts manually. ## Approval Boundary If `start --current --spec ...` returns `status: contract_approved` with `approval_source: spec_timeline`, the deployed spec already emitted its checked-in proof contract and passed every declared assertion. Do not ask for a second chat approval; continue directly to render/review/publish. Only for legacy proofs without a spec-owned timeline, draft and show the user the complete proof contract before capture: - Three to five short tutorial-style caption sentences. - One to five assertions describing what must be visibly or terminally true. - Required device profiles. - Every caption sentence and assertion lists the exact device profiles where it applies. For legacy proofs, save the canonical contract only after explicit approval, then persist the approval record before rendering: ```bash python3 scripts/proof_video_workflow.py approve --session <short-session> --spec <name>.spec.ts --contract <contract.json> ``` An unchanged already-approved contract may be reused. The spec-owned or approved transcript is canonical; audio is off by default and `--audio-path` is an explicit opt-in. ## Capture And Render - Use a real passing deployed Playwright result, Apple run, or real OpenMates CLI command. - For Playwright/spec proofs, the rendered video must include real source-video segments from the attested Playwright recording. Checkpoint frames may only be short freeze segments; never publish checkpoint-frame-only screenshot montages or a manifest with `rendered_from: spec_timeline_checkpoint_frames`. - For web UI component proofs, use the focused component spec recording from `https://app.dev.openmates.org/dev/preview/{component-path}?chrome=0`. Every inspection and recording must include `chrome=0` and show only the component, never the configuration UI. Use the `.preview.ts` default fixture for the standard state and encode every non-default input or configuration in URL query parameters such as `variant`, `props`, `theme`, `background`, and `width`. Publish the component video for every modified UI component, use separate phone/laptop profiles only when responsive behavior differs, and derive still frames only from the completed video for failures, explicit requests, or ambiguous visual inspection. - Use CLI proof only when the actual `openmates` CLI is the product surface being demonstrated or fixed. Do not use CLI proof for generic smoke scripts, pytest helpers, Node scripts, or shell wrappers that do not visibly execute the OpenMates CLI. - Browser/native capture must record an explicit ready timestamp after required UI is visible. Trim only to that marker minus the fixed lead; do not scan or crop until a product defect disappears. - Exact profiles remain mandatory: web phone `390x844`, web laptop `1440x900`, iPhone portrait `393x852`, iPad landscape `1366x1024`, CLI `1280x720`. - Captions are sentence-level WebVTT cues delivered through the video player's toggleable captions track. Never burn captions into video pixels or shrink, pad, border, or otherwise reserve frame area for captions. Pacing may use only whole-video slowdown to `0.75x` and a final hold, with a 35-second output cap. - Process one device at a time. Do not use OCR or place the full video in model context. Sample periodically every five seconds, prioritize event boundaries, deduplicate nearby timestamps, and cap the immutable index at twelve frames per device. ## Review And Repair Run the canonical review command rather than manually selecting frames or writing claim verdicts: ```bash python3 scripts/proof_video_workflow.py review --run-dir <path> --correction-round 0 --correction-kind none ``` Review every clean frame in the immutable one-to-twelve-frame device index plus the complete device-applicable WebVTT cue text, approved device-applicable assertions, and deterministic metadata. Before evaluating assertions, complete the mandatory per-frame critical UI scan for layout, readability, geometry, controls, visual assets, application state, consistency, and proof alignment. Return exactly one status: - `passed` - `capture_defect` - `render_defect` - `product_defect` - `uncertain` Every verdict needs frame-grounded observations. Blank opening frames may be corrected mechanically once. Caption syntax, ordering, and bounds are deterministic checks rather than visual-review concerns. Unexplained scroll state returns to capture. Clipping, broken headers, wrong UI state, raw implementation text, stale loading, and broken navigation are product defects. When the reviewer classifies the defect intent as `obvious`, automatically add or strengthen a failing test, fix the product, deploy, and recapture. When intent is `unclear`, upload the representative blocker frame and ask the user for consent before product-code changes. Never hide defects through trimming, cropping, caption edits, or transcript edits. Contrast, text-size, opacity, font-weight, and related typography/readability findings are advisory design concerns from frame-only review: report them to the user as `unclear` warnings and never route them to automatic product correction. Do not ask that visual-intent question until the exact cited blocker image is successfully embedded in the same response with a short explanation of what the user should inspect. If media delivery fails, repair or retry it first; never substitute a text-only question, local path, or uncited description. After explicit user approval, bind the exact unclear finding into the receipt with `python3 scripts/proof_video_workflow.py approve-intent --run-dir <path> --finding-id <id> --reason "<decision>" --approved-at <ISO-8601>`. This may resolve only `uncertain` checks cited by that finding and must not override failed checks or unsupported assertions. The entire proof contract is limited to six AI review calls and forty-eight cumulative submitted frames. It permits one initial review plus at most two automatic correction rounds, including at most one product-code correction round. Re-review only changed device hashes. Unclear intent, uncertain findings, repeated defect fingerprints, or exhausted budgets require immediate user input. If review returns any blocker status (`capture_defect`, `render_defect`, `product_defect`, or `uncertain`), inspect the returned `blocker_media` metadata before responding. Run its `upload_command` and paste the returned `<video>` HTML in the blocker response so the user can see the exact failed recording. If `blocker_media.media_status` is `missing`, state that as a workflow defect and include the missing `video_path`; do not report the blocker or ask for design consent with text alone. Run `image_upload_command` and embed the cited frame before any visual-intent question. After a passed frame review, upload the approved proof video with its hash-bound WebVTT sidecar or representative proof screenshots with `python3 scripts/response_media.py <path> --alt "..."` and paste the returned image Markdown or `<video>` HTML in the final Codex response. Do not send proof media to Discord unless the user explicitly asks for a separate Discord mirror. Retain transcripts, captions, manifests, hashes, review evidence, and response-media publication state.
GitHub에서 보기