short-drama-delivery-audit
Internal deterministic delivery gate for meta-short-drama. Verifies real-provider image/video receipts, parent-owned paid-submission dispositions, runtime fallback evidence, decodability, and content-versus-final duration with ffprobe.
git clone --depth 1 https://github.com/opensquilla/opensquilla /tmp/short-drama-delivery-audit && cp -r /tmp/short-drama-delivery-audit/src/opensquilla/skills/bundled/short-drama-delivery-audit ~/.claude/skills/short-drama-delivery-auditSKILL.md
# short-drama-delivery-audit Internal machine-owned gate used immediately before `meta-short-drama` publishes its final video. It does not call a model and never contacts a media provider. The helper parses the canonical `script.txt` to identify active shots and their content durations. It then requires sanitized real-provider receipts for the reference image, every active shot image, and every active shot video; rejects placeholders, missing provider request/job IDs, and any runtime fallback substitution; and uses `ffprobe` to confirm that shot MP4s and the final MP4 are decodable and have the promised durations. When Seedance rejects a shot under provider policy, its sidecar contains only the bounded reason `provider_policy_rejected` and an allowlisted policy code. The audit preserves those two fields, marks the shot not generated, and reports `VIDEO_POLICY_REJECTED`; raw provider text, signed URLs, request IDs, and secrets are discarded before this boundary. The parent scheduler supplies one bounded disposition per paid step. The only accepted values are `safe_no_submit`, `maybe_accepted`, and `receipt`. It also supplies a separate bounded SHA-256 proof only when the exact bundled paid subprocess emitted a sanitized receipt on this invocation and the emitted JSON matched the resulting sidecar. A conclusive generated/policy receipt upgrades the public asset disposition to `confirmed` only when that current-run proof matches. The reserved runtime slots cannot be declared as plan steps. When `safe_no_submit` accompanies a missing receipt and local fallback, the audit preserves the degraded provenance but does not claim that the provider may have billed the user. A `maybe_accepted`, `receipt`, missing, or malformed disposition without a conclusive, current-run-proven receipt remains fail-closed: the audit emits `PAID_SUBMISSION_STATUS_UNKNOWN`, a sanitized asset-name list, and a static instruction to check provider history before starting a replacement. Raw fallback output, child failure text, and provider text never cross into the verdict. A stale or forged workspace sidecar by itself is reported as `RECEIPT_NOT_PROVEN_CURRENT_RUN` and can never become `confirmed`. Receipt or media evidence for a shot absent from the canonical script is reported as `UNEXPECTED_PAID_ASSET` and listed in `unexpected_paid_assets`. An incomplete receipt for that unexpected asset also carries the same fail-closed unknown-billing warning. `OVERVIEW.DURATION_S` is story-content duration. The meta workflow adds a fixed two-second title and two-second ending, so the expected final duration is content duration plus four seconds. Small encoder timestamp differences are tolerated, but a three-second final file cannot satisfy a seven-second expected delivery. ## Inputs - `with.run_dir`: runtime-owned short-drama output directory. - `with.runtime.paid_submission_dispositions`: bounded JSON object produced by the parent scheduler under its reserved output key. It contains only static step IDs and fixed disposition values. - `with.runtime.paid_submission_receipt_proofs`: bounded JSON object produced by the parent scheduler under a second reserved output key. It contains only static step IDs and canonical `sha256:<hex>` receipt digests from exact bundled subprocess output captured during this run. - `with.runtime.fallback_outputs`: mapping of shot number to the corresponding fallback step output. A non-empty value proves that local substitution ran. ## Output One JSON verdict with `status` (`verified`, `degraded`, or `blocked`), `verified`, `media_provenance`, active shots, content/final durations, whitelisted provider identifiers, per-asset `paid_submission_dispositions`, `safe_no_submit_assets`, `may_have_been_billed`, `paid_submission_status_unknown_assets`, `unexpected_paid_assets`, `billing_guidance`, and bounded issue codes. Raw prompts, provider responses, fallback output, signed URLs, and credentials are never emitted.
Submit audio or video for multilingual dubbing, poll status, and download dubbed audio. Use when the user asks for dubbing, 多语言配音, 视频翻译配音, 译制片, or wants a source clip dubbed into another language.
Generate a structured short-video shooting script from a topic. Emits a strict, machine-parseable shot list (3 shots by default) with image prompt + video prompt + voiceover + on-screen text per shot. Trigger when the user asks for a video script, 分镜, 短视频文案, AI视频, 短剧脚本, or wants visual prompts ready for image/video generation.
Use when the user asks to schedule recurring tasks, one-off reminders, timers, or cron-style jobs through the OpenSquilla cron tool.
Multi-round research with explicit methodology, evidence tracking, and citation-tagged synthesis. Trigger on 'deep dive', 'research report', 'literature review', 'investigate X across sources', 'multi-round investigation'. Distinct from the `summarize` skill, which is a single-pass condensation; this skill maintains a state file across iterations, tracks coverage, and produces a long-form report with per-claim citations. Three execution stages: plan (scope into sub-questions), iterate (record evidence per round), compile (synthesize report). The skill itself does not fetch the web — it tells the host agent which fetches to perform via OpenSquilla's existing web tools, and records what comes back.
Read, edit, or create Microsoft Word `.docx` files. Trigger this skill whenever the user mentions a Word document, .docx file, contract, report, brief, memo, or asks to extract text, modify an existing doc, generate one from a brief, or audit tracked changes. Three execution paths: text-and-structure extraction, in-place edit-by-run (preserves styles), and create-from-scratch with python-docx. Falls back to OOXML unzip-and-patch for layout work python-docx cannot reach.
Capture the current git diff (staged, working-tree, or staged file list) as text. Direct shell call for workflows that need repository diffs without an LLM agent loop.
GitHub operations via `gh` CLI: issues, PRs, CI runs, code review, API queries. Use when: (1) checking PR status or CI, (2) creating/commenting on issues, (3) listing/filtering PRs or issues, (4) viewing run logs. NOT for: complex web UI interactions requiring manual browser flows (use browser tooling when available), bulk operations across many repos (script with gh api), or when gh auth is not configured.
Query the per-turn DecisionEntry log for skill co-occurrence patterns, meta-skill usage stats, and the router fixture corpus. Returns a JSON summary suitable for downstream LLM consumption. Used by meta-skill-creator's harvest step but also useful standalone for 'which skills did I use most this week?'