100X Video Reverse v2.3
Converts a reference video into a standard reverse-engineering package that users can directly review and downstream generation Skills can consume. By default, only analysis and validation are performed; no paid generation is invoked, no original video is uploaded, and no material is published.
Before You Begin
- Confirm that the user-provided video is readable and that authorization boundaries are clear. If the user does not specify an output directory, use
outputs/100x-video-reverse/<video-stem>-<timestamp>/under the current workspace; do not ask additional questions about the directory. Always read source files and output to a new, independent directory. - Always read workflow.md, output-contract.md, and native-output.md. Read analysis-prompt.md only when conducting model analysis. Read failure-gates.md when dealing with commercial copywriting, dense editing, external uploads, or preparation for generation. Read golden-baseline.md only when evaluating, replacing, or upgrading this Skill. Default delivery is deterministically generated by
scripts/digest.pyfrom the machine package; the Agent must not manually rearrange segments. - Check for
ffmpeg,ffprobe, Pythonjsonschema, and local read/write permissions. The validator must hard-stop ifjsonschemais missing; only install dependencies in isolated environments, never globally. Before calling any external model, verify against the official model list and input constraints in real time; user-specified models take precedence. If verification is impossible, stop external calls but continue building the local evidence package.
Execution Flow
- Use
scripts/prepare_evidence.pyto establish source file fingerprints, specs, dual-threshold cut-point proposals, dense frames, and an independent audio track. Auto-cut-points are diagnostic signals only, not real shot boundaries. - Simultaneously review the full video and evidence package, prioritizing the agent's existing local media understanding capabilities; do not require the user to configure an additional API. Only when the current task explicitly authorizes external semantic analysis may the golden sample's Google official
gemini-3.7-flashbe used; before calling, verify the real model ID and video input capability against the official model list. If unavailable, preserve the original error and stop the external phase; do not silently fall back to an older model. Correct the shot timeline according toreferences/analysis-prompt.md, distinguishing observable facts, inferences, and unknowns; do not replace semantic cuts with fixed intervals. - Establish stable asset IDs and cross-shot consistency anchors covering people, products, scenes, props, clothing, audio, and text. Do not fabricate brands, prices, claims, dialogue, or on-screen text that is unclear or inaudible.
- Generate a complete
reverse.jsoncontaining: shots, four types of keyframes, asset references, audio/subtitles, generic prompts, model-adapted prompts, segmentation plan, stitching instructions, andmust_not_change. Each segment must also include anexecution_plan: target duration, generation status, selected model, generation method, and input material. If model capabilities have not been verified in real time, explicitly writeneeds_model_selection; do not pretend it is executable. - Use
scripts/materialize_reverse_media.pyto materialize shot frames and asset screenshots to relative paths within the package and generatematerialization_manifest.json. Reuse existing media only if all three of the source SHA-256, request timestamp, and file SHA-256 match the provenance; otherwise hard-stop, do not overwrite. - Use
scripts/validate_reverse_package.pyfor media and contract pre-validation. Hard errors must be fixed before proceeding; warnings must be preserved and explained, not silently passed. - After strict validation passes, run
scripts/digest.py, then deliver as-is according to native-output.md. Codex uses--format fragment --fragment-dir <current-thread visualization-dir>: the first tab is a narrow 9:16 player on the left + a segment storyboard on the right; each segment displays first frame / highlight frame / last frame as a fixed group. Images can be dragged out as JPEG previews; for originals, copy the original frame path from the package. "Shot Location" preserves per-shot linkage; clicking any three-frame group or shot pauses and locates the video, first showing Chinese operation instructions, then the English generation prompt for the belonging segment. Narrow screens switch to a top-bottom layout but the three frames remain grouped. Other clients default to--format md; if client capabilities cannot be determined, do not gamble on inline protocols.
When users provide viewing feedback, map each piece of feedback to a specific shot, asset, or prompt field and explicitly mark it as "User Preference/Correction"; do not rewrite it as an observed fact from the source video. Create a new revision package, modifying only the affected fields and media, then run full validation; do not overwrite the previous version.
Commands
python <skill-root>\scripts\prepare_evidence.py --video <source.mp4> --out <new-package-dir>
python <skill-root>\scripts\materialize_reverse_media.py --video <source.mp4> --package <new-package-dir>\reverse.json --source-manifest <new-package-dir>\source_manifest.json
python <skill-root>\scripts\validate_reverse_package.py --package <new-package-dir>\reverse.json --source-manifest <new-package-dir>\source_manifest.json --require-media --report <new-package-dir>\validation.json
python <skill-root>\scripts\digest.py --package <new-package-dir> --format md
# Codex inline; for multiple packages use --out-root to automatically generate 1 batch overview + N individual details
python <skill-root>\scripts\digest.py --out-root <batch-root> --format fragment --fragment-dir <thread-visualization-dir>
<new-package-dir> must not exist or must be empty. Do not use --out pointing to the source video directory.
Non-negotiable Boundaries
- A validated reverse-engineering package only confirms that the structure, evidence, and references are executable; it does not guarantee that the final video visual similarity meets standards.
- Do not generate, retry generation, do post-production, or score within this Skill. Those tasks should consume this output contract via independent Skills.
- The agent's native reply is merely the presentation layer of
reverse.jsonand package media, not a second source of truth; any revision should first modify the machine package, then refresh the current reply. - Clicking a shot displays the prompt for the generation segment that shot belongs to; the generation unit in the machine contract is the segment, do not pretend there are independent per-shot prompts.
- Default visible operational labels, statuses, asset categories, and generation methods use Chinese; model IDs, asset IDs, verbatim evidence, and English generation prompts remain in their original values. If human-readable fields in historical packages are in English, only notify and preserve the original text; do not have digest fake translations.
- Do not write "fixed 10-second slices" as a shot truth due to current vendor limitations. Prioritize segmentation based on real shots and narrative boundaries; the validator's 10-second limit is only a configurable downstream compatibility warning.
- Do not upload local videos to public URLs, object storage, or third-party services without explicit authorization.
- Do not copy candidate code with unclear licenses or opposite use cases; only absorb methods and failure experiences validated by golden samples.
Completion Criteria
Upon completion, the following must exist: source_manifest.json, evidence/evidence_manifest.json, evidence media, reverse.json, materialization_manifest.json, and validation.json; strict media validation must have zero hard errors. The Codex fragment's first tab must display a full-length preview; desktop layout uses a narrow player column + wide segment storyboard, each segment with a fixed three-slot group (first/highlight/last), missing material shows an error slot. Dragging the three frames must produce a usable JPEG file; originals are obtained by copying the package path. Clicking the three frames or a shot must locate the video and display the belonging segment's prompt. The default operational layer uses Chinese, with English prompts expandable on demand; the remaining five panels expand subsequently. Multiple packages must first show a lightweight batch overview, then individual details numbered sequentially; failed entries must not disappear. The machine package path must still be provided in the body. --legacy-unverified-media is only allowed for auditing historical packages; it is forbidden for new handovers.
Known Limitations
- The "original footage" within the fragment is a full-length, lower-bitrate H.264/AAC display copy within budget, not a second source file; the original path and SHA-256 are still authoritative via
source_manifest.json. A single fragment is subject to a 1 MB limit; if it cannot fit, it must gracefully degrade to frame images without truncating the video. - Dragging directly from the fragment yields a budget JPEG preview derivative, not the package's original frame; the drag provides the browser
File, ChromiumDownloadURL, data URI, and the original frame path simultaneously. Whether the target application accepts the corresponding drag-and-drop format is determined by the application itself; to get a lossless original, use "Copy original frame path." - Claude Code Artifact paths have not yet undergone real host acceptance testing; if rendering is uncertain, fall back to
--format md.