[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6G0JTG8NTN6FWYP2JBJQJMS":3,"skill-same:01M6G0JTG8NTN6FWYP2JBJQJMS":82},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":26,"publishedAt":47,"linkOnly":48,"markdownContent":49,"markdownBody":50,"frontMatter":51,"refName":58,"commitSha":59,"skillDirectory":60,"forksCount":61,"repositoryHtmlUrl":62,"repositoryHomepageUrl":63,"ownerHtmlUrl":64,"ownerBlogUrl":65,"ownerDescription":66,"updatedAt":67,"install":68,"resources":81},"01M6G0JTG8NTN6FWYP2JBJQJMS","youtube-video-prelaunch-audit",null,"Audit unlisted or pre-release YouTube videos before public launch for edit readiness, polish, generation of three upload-ready YouTube Test and Compare title\u002Fthumbnail pairs from approved assets, description, chapters, publish settings, launch timing, URL record capture, and social cross-sharing strategy","GeorgeQLe\u002Fagentic-skills","GeorgeQLe","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F21134126?v=4","01M6D2JP418S0VGJGF8M93EC3H","George Le","01M6D2JPBAKYD82TA5FS6HKQ3D",1,"MIT","https:\u002F\u002Fgithub.com\u002FGeorgeQLe\u002Fagentic-skills\u002Fblob\u002Fmaster\u002Fpacks\u002Fyoutube-ops\u002Fcodex\u002Fyoutube-video-prelaunch-audit\u002Farchive\u002Fv0.5\u002FSKILL.md",[18,23],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000016","图像与多媒体","SCENARIO","使用场景",{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000021","资料检索与研究",[27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46],"audit","youtube video prelaunch audit","youtube","Video","publish","release","URL","mm","timing","asset","artifact","three","social","alignment","ready","only","v0","edit","page","polish","2026-11-10 10:12:30",false,"---\nname: youtube-video-prelaunch-audit\ndescription: Audit unlisted or pre-release YouTube videos before public launch for edit readiness, polish, generation of three upload-ready YouTube Test and Compare title\u002Fthumbnail pairs from approved assets, description, chapters, publish settings, launch timing, URL record capture, and social cross-sharing strategy\ntype: research\nversion: v0.5\nrequired_conventions: [alignment-page]\nargument-hint: \"\u003Cunlisted video URL or ID> [--script \u003Cpath>] [--thumbnail \u003Cpath-or-url>] [--thumbnail-asset \u003Cpath-or-url>]... [--launch-date YYYY-MM-DD] [--social \u003Cplatforms>] [--compare-channel \u003Cslug>]\"\ncontext_intake: artifact_only\n---\n\n## Pack Availability Guard\n\nBefore telling the user to run a skill from another project-local pack, check `.agents\u002Fproject.json.enabled_packs`. If the target pack is not enabled, recommend `npx skillpacks install \u003Cpack>` instead of the target skill. Only the currently running skill and skills verified available in the active session or project-local install state are directly recommendable. For unavailable pack skills, recommend `npx skillpacks install \u003Cpack-or-skill>`; for unavailable base skills, recommend `npx skillpacks init` before the skill.\n\n# YouTube Video Prelaunch Audit\n\nInvoke as `$youtube-video-prelaunch-audit`.\n\n## Report-First Approval Gate\n\nDefault to scope-first approval: before synthesized research, inspect only enough repository, user, and source context to propose research scope, source plan, assumptions, output paths, and approval questions in a `review` alignment page plus a concise conversation summary.\n\nDo not perform synthesized research, rank candidates, make recommendations, or write working packets or canonical deliverables until final compiled YAML approves the research scope. Minimal pre-approval discovery may identify available files, source categories, and open questions; label it as scope evidence, not findings.\n\nAfter approved research-scope YAML, perform the research and write only the non-canonical working packet defined in the staged workflow. Update the `review` alignment page with exactly three proposed title\u002Fconcept\u002Fasset-allocation variants and stop for concept-and-asset approval. After that approval, generate the three real thumbnails in Stage 2.5, update the same page with the generated title\u002Fimage pairs, and stop for a second compiled approval before creating or updating canonical research, spec, or task files.\n\nDo not include `Recommended next skill`, `Recommended next command`, or downstream routing language. The approval request itself is the next action. Only emit next-skill routing after the approved artifact has been written or updated.\n\n## Staged Research Workflow\n\nUse this staged workflow for synthesized research or report outputs that would create or update canonical research, spec, or task files.\n\n1. **Stage 1 - Scope discovery and approval.** Inspect only enough repository, user, and source context to propose research scope, source plan, assumptions, output paths, and approval questions. Build the `review` HTML alignment page before synthesized research. The page must render the proposed scope, available source categories, known context, assumptions\u002Fconfidence, proposed working-packet and canonical output paths, and research-scope approval gates. Stop for final compiled YAML approval of the research scope. Do not perform synthesized research, rank candidates, make recommendations, or write working packets, canonical research, spec, or task files in Stage 1.\n2. **Stage 2 - Research, concepts, and asset-selection review.** Only after approved research-scope YAML with no unresolved `needs-clarification`, unresolved `down` feedback, or other unresolved negative feedback, perform the synthesized research, run required source\u002Fcode checks, inspect and account for every explicitly pointed thumbnail asset, and write only a non-canonical working packet: flat mode uses `research\u002F_working\u002Fpreliminary-\u003Cskill>-research.md`; product-path mode uses `research\u002F{slug}\u002F_working\u002Fpreliminary-\u003Cskill>-research.md`. Replace `\u003Cskill>` with this skill's `name` value. Propose exactly three distinct variants, each with one upload-ready title, one concrete thumbnail concept, one explicit allocation of inspected source assets, one packaging hypothesis, and one intended audience signal. Update the `review` HTML alignment page so it renders the complete working-packet substance as structured HTML review UI, including the complete asset-accounting ledger and the three proposed variants without summary loss. Raw Markdown packet text may appear only as a supplemental source view after the rendered review UI; do not make a raw Markdown dump, giant `\u003Cpre>\u003Ccode>` block, link-only view, or source-only view the primary review surface. Keep the page in `review` and stop for concept-and-asset-selection compiled YAML. Feedback-only YAML revises the working packet and page and remains in Stage 2. Enter Stage 2.5 only when final compiled YAML explicitly approves all three titles, concepts, and asset allocations with no unresolved negative feedback.\n3. **Stage 2.5 - Generate Test and Compare assets.** Use an available image-generation or image-editing capability to create exactly three upload-ready 1280x720 thumbnail files from the approved concepts and assets. Do not substitute prose concepts, mock paths, or supplied source files for generated outputs. If no image-capable tool is available, any required approved asset cannot be accessed, or the capability cannot save and verify all three outputs, stop and request an image-capable session or corrected asset access. Save every attempt under a new immutable `research\u002Fyoutube\u002Fdata\u002F\u003Cvideo-id>\u002Fprelaunch\u002Ftest-and-compare\u002F\u003Cgeneration-id>\u002F` directory. Write `variant-a`, `variant-b`, and `variant-c` image files plus `manifest.json`. Before updating the review page, use image readback to validate that exactly three variant image files exist, each decodes as 1280x720, each file's actual format detected from its contents or file signature is JPEG, PNG, or GIF, and each file is no larger than `50_000_000` bytes for manual desktop YouTube Studio upload. Do not trust the filename extension; reject unreadable files, extension\u002Fcontent mismatches, unsupported formats, and oversized outputs. Only after validation, update the existing alignment page to embed the three generated images beside their paired titles, source-asset references, hypotheses, and resolvable open\u002Fdownload links. Keep the page in `review` and stop for a new compiled approval that explicitly covers the generated images and paired titles. Revision feedback must create a new generation directory and preserve every prior generation as evidence.\n4. **Stage 3 - Finalize approved artifacts.** Enter only after the post-generation compiled YAML approves the three generated images and paired titles and has no unresolved `needs-clarification`, unresolved `down` feedback, or other unresolved negative feedback. Apply approved non-thumbnail edits first; thumbnail or title revisions return to Stage 2.5 and create a new generation. Archive the working packet to `docs\u002Fhistory\u002Farchive\u002FYYYY-MM-DD\u002FHHMMSS\u002F\u003Coriginal-working-path>`, remove the active working packet, write the approved canonical artifacts to the unchanged output paths below, and convert the alignment page to `confirmed` with both approval records and the approved generation manifest path preserved.\n\nCanonical output paths remain unchanged. Search logs and other supporting evidence remain allowed only where this skill's output contract already requires them.\n\n## Evidence And Feedback Handling\n\nTreat user feedback as input to evaluate, not as automatic ground truth.\n\n- For factual, evidentiary, technical, or source-backed claims: verify against available evidence. If the user appears to misunderstand the evidence or states something factually incorrect, push back clearly and cite the evidence. Do not rewrite findings merely to agree.\n- For taste, brand, positioning preference, risk appetite, prioritization, or other subjective judgment calls: weigh user feedback heavily and adapt the recommendation unless it conflicts with verified evidence.\n- When feedback mixes facts and preference, separate them explicitly: correct the factual part, then incorporate the preference where it is a legitimate judgment call.\n- When uncertain, say what is known, what is inferred, and what would change the conclusion.\n\n## Inputs\n\n- Required: one unlisted or scheduled YouTube video URL or raw video ID.\n- Optional `--script \u003Cpath>`: local script, outline, shot list, or talking-points file.\n- Optional repeatable `--thumbnail-asset \u003Cpath-or-url>`: source image, existing thumbnail, brand asset, frame, screenshot, or directory whose contents may be used to generate the variants.\n- Optional `--thumbnail \u003Cpath-or-url>`: backward-compatible alias for one `--thumbnail-asset`.\n- Optional explicitly identified attachments or natural-language references to specific local files, URLs, or directories: treat each as a pointed thumbnail-asset location.\n- Optional `--launch-date YYYY-MM-DD`: planned public release date.\n- Optional `--social \u003Cplatforms>`: comma-separated social platforms to include in cross-sharing recommendations.\n- Optional `--compare-channel \u003Cslug>`: reuse existing channel evidence under `research\u002Fyoutube\u002Fdata\u002F\u003Cslug>\u002F`.\n- Optional owner-provided notes: draft title, description, chapters, pinned comment, target audience, sponsor\u002Fdisclosure requirements, launch goals, and existing social copy.\n\n## Process\n\n### 1. Resolve Target and Access\n\n1. Extract the video ID from a normal watch URL, Shorts URL, youtu.be URL, embed URL, or raw 11-character ID.\n2. Derive known URL forms when possible: original URL, canonical watch URL, Shorts URL, embed URL, and youtu.be URL.\n3. Before asking for channel, status, working-title, report-history, or prior-artifact context, check `research\u002Fyoutube\u002Fdata\u002Fvideo-url-index.jsonl` and `research\u002Fyoutube\u002Fdata\u002F\u003Cvideo-id>\u002Fprelaunch\u002Fvideo-url-record.json`. Use existing values unless they are missing, stale, or conflicting.\n4. Require `yt-dlp` for public or unlisted metadata:\n\n   ```bash\n   command -v yt-dlp\n   ```\n\n5. Fetch metadata with `yt-dlp --dump-json \"VIDEO_URL\"` when accessible. If the video requires login, private account access, or YouTube Studio access, stop and ask for a public\u002Funlisted link, local video file, transcript, or manually exported metadata instead.\n6. Check `availability`, `live_status`, upload date, scheduled time, and visibility cues. If the video is already public and the user asks why it performed a certain way, route to `$youtube-video-audit` instead.\n7. Do not treat views, likes, or comments on an unlisted pre-release video as performance evidence; internal review traffic can distort them.\n\n### 2. Maintain Video URL Record\n\nCreate or update these persistent URL ledger artifacts as soon as the video ID and original URL are known, then revise them after metadata, evidence, and report paths are known:\n\n```text\nresearch\u002Fyoutube\u002Fdata\u002F\u003Cvideo-id>\u002Fprelaunch\u002Fvideo-url-record.json\nresearch\u002Fyoutube\u002Fdata\u002Fvideo-url-index.jsonl\n```\n\nThe per-video record and aggregate index line must include:\n\n- `video_id`\n- `original_url`\n- `canonical_watch_url` using `https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=\u003Cvideo-id>`\n- `url_forms`: known or derivable `watch`, `shorts`, `embed`, and `youtu_be` forms\n- `channel`: known `id`, `url`, and `name`\n- `status`: visibility, availability, live status, scheduled\u002Fpublic state, and launch date when known\n- `working_title`\n- `selected_or_preferred_launch_title` when known\n- `report_path`\n- `evidence_paths`\n- `captured_at`\n- `source_skill`: `youtube-video-prelaunch-audit`\n\nUse `null` for unknown optional values instead of inventing them. Do not store credentials, cookies, private YouTube Studio-only fields, or unshared account details. For the JSONL index, update an existing line for the same `video_id` when practical; otherwise append a fresh valid JSON object for the capture. On future runs, read the index and per-video record before asking the user for context already captured, and ask only for missing or conflicting fields.\n\n### 3. Persist Raw Evidence\n\nCreate:\n\n```text\nresearch\u002Fyoutube\u002Fdata\u002F\u003Cvideo-id>\u002Fprelaunch\u002F\n```\n\nPersist available evidence before analysis:\n\n- `metadata-YYYY-MM-DD.json`: raw `yt-dlp --dump-json \"VIDEO_URL\"` output.\n- `transcript\u002F\u003Cvideo-id>.json`: raw transcript JSON when available.\n- `transcript\u002Ftranscript-summary.json`: transcript text or failure reason.\n- `draft-inputs\u002F`: copies or path references for script, outline, thumbnail assets, draft description, chapters, and social copy when the user supplies them.\n- `thumbnail-asset-accounting.json`: one record for every candidate discovered within a user-pointed asset location, including original pointer, resolved path or URL, inspection method, accessibility, media type\u002Fdimensions when known, `used` or `rejected` status, allocated variants when used, and a rejection reason when rejected.\n- `media-review-notes-YYYY-MM-DD.md`: manual or tool-assisted media inspection notes when video, frame, audio, or screenshot review was possible.\n\nFor thumbnail assets, limit discovery to the exact files, URLs, attachments, and directories the user points to. Inspect every candidate in those locations; do not crawl parent directories, adjacent folders, unrelated repository assets, or linked websites. Incorporate every relevant usable candidate somewhere across the three approved variants. Record inaccessible, irrelevant, duplicate, unsafe, or unusable candidates as rejected with a concrete reason visible in the working packet and alignment page. A missing required approved asset is a Stage 2.5 blocker, not a reason to silently omit it.\n\nRecord evidence gaps explicitly. Missing transcript, thumbnail assets, frame review, audio review, current description, launch date, sponsor requirements, or target platforms constrain confidence. Thumbnail assets may be absent when concepts are proposed, but Stage 2.5 still requires actual image generation and three verified output files.\n\n### 4. Inspect Content and Polish\n\nUse the deepest available evidence:\n\n- If transcript evidence exists, inspect the first 30-60 seconds, section transitions, examples, claims, CTA, and outro.\n- If media inspection is available through a local file, accessible unlisted playback, screenshots, frame samples, or audio notes, review visual clarity, sound quality, editing continuity, on-screen text, pacing, dead air, b-roll, captions, end screen timing, and brand polish.\n- If only metadata and transcript are available, limit edit\u002Fpolish judgments to transcript-supported structure, hook, pacing inference, and missing media-evidence gaps.\n\nAnalyze:\n\n- **Launch-readiness verdict**: publish now, publish after metadata polish, hold for targeted edit, or hold for significant edit.\n- **Hook and expectation match**: whether the first minute pays off the title\u002Fthumbnail promise quickly.\n- **Structure and pacing**: dead zones, redundant setup, missing chapter breaks, abrupt transitions, weak examples, or unclear payoff.\n- **Production polish**: audio, visuals, captions, overlays, b-roll, continuity, end screen, cards, disclosure, and accessibility when evidence exists.\n- **Risk and trust**: unsupported claims, stale references, missing source links, sponsor\u002Fdisclosure gaps, privacy\u002Fconfidentiality concerns, or accidental internal-only material.\n\n### 5. Build and Generate the Launch Package\n\nAudit and draft practical launch assets:\n\n- Test And Compare Launch Set: in Stage 2, propose exactly 3 simultaneous variants for YouTube Studio Test and Compare. Each variant must pair one distinct upload-ready full title with one distinct thumbnail concept and explicit approved source-asset allocation, plus a packaging hypothesis, intended audience signal, and what a win would imply. In Stage 2.5, replace each concept with its generated file while preserving the pairing and hypothesis.\n- Title: keep each title inside YouTube Studio's current title limit, using 100 characters as the upload-ready ceiling unless Studio shows a different limit. Avoid unsupported claims, bait-and-switch promises, and vague curiosity; preserve search\u002Ftopic clarity and expectation match.\n- Thumbnail: evaluate focal clarity, text density, promise match, visual differentiation, and title\u002Fthumbnail expectation match. Use the approved asset allocations and an image-generation\u002Fediting capability to create exactly three real 1280x720 outputs. Do not complete successfully with concepts, source references, unreadable or disguised files, unsupported formats, files larger than the desktop Studio limit, or otherwise unverified files.\n- Generation manifest: write `manifest.json` with `video_id`, `generation_id`, `created_at`, `status`, and exactly three `variants`. For each variant record `id`, full `title`, `image_path`, `source_assets`, `packaging_hypothesis`, `intended_audience_signal`, `win_implication`, numeric `dimensions` (`width: 1280`, `height: 720`), detected `format` normalized to `jpg`, `png`, or `gif`, and numeric `byte_size`. Include the complete source-asset accounting ledger or its path and generation provenance: capability\u002Ftool, model or engine when exposed, generation\u002Fedit mode, prompt or edit-instruction reference, relevant settings, and verification method. Mark `status` complete only after content-based image readback proves all three files, dimensions, supported formats, and `byte_size \u003C= 50_000_000`; write the detected format and byte size to the manifest before changing the status to complete or updating the review page.\n- Generation identity: use a collision-resistant timestamp or equivalent unique `\u003Cgeneration-id>`. Never overwrite, rename away, or delete a prior generation when revising candidates.\n- Review page comparison: use actual `\u003Cimg>` elements with meaningful `alt` text and resolvable repository-relative `src` values. Show each image with its full paired title, variant ID, source assets, hypothesis, open link, and download link. Treat broken images, missing links, missing fields, or a concept-only card as incomplete Stage 2.5 output.\n- Test setup guidance: explain how to get the three variants online in YouTube Studio on desktop via the video's Details \u002F Test and Compare flow, keeping variant labels and title\u002Fthumbnail pairing aligned with the report. If the account or video is ineligible for title\u002Fthumbnail combination testing, state the fallback: apply the preferred title, test the three generated thumbnail files where eligible, and preserve the other title variants for manual follow-up.\n- Description: first two lines, CTA hierarchy, link stack, credits, disclosures, hashtags, and pinned-comment fit.\n- Chapters: proposed timestamped chapters from transcript or current metadata; if exact timestamps are unavailable, provide section labels and note the timestamp gap.\n- Publish settings: scheduled time, premiere fit, playlist, cards, end screen, comments, captions, monetization, age\u002Fsponsor\u002Fdisclosure checks, and whether to keep as unlisted for another review pass.\n- Cross-sharing: platform-specific copy angles, cutdown\u002Fclip suggestions, launch-day sequence, first-24h comment plan, community post, newsletter\u002Fblog tie-in, and ethical limitations for Reddit\u002FHacker News or niche communities.\n\nDo not invent links, sponsors, timestamp precision, platform accounts, or channel policies. Use placeholders where user-owned assets are missing.\n\n### 6. Write Report\n\nCreate `research\u002Fyoutube\u002F`, the raw evidence directory, and the URL ledger paths if they do not exist.\n\nSave the approved canonical artifact to:\n\n```text\nresearch\u002Fyoutube\u002Fprelaunch-audit-\u003Cvideo-id>-YYYY-MM-DD.md\n```\n\nUse this structure:\n\n```markdown\n# YouTube Video Prelaunch Audit - [Working Title]\n\n> Video: [URL]\n> Video ID: [id]\n> Channel: [channel]\n> Visibility\u002Fstatus: unlisted \u002F scheduled \u002F unknown\n> Planned launch: YYYY-MM-DD or not provided\n> Date captured: YYYY-MM-DD\n> URL record: research\u002Fyoutube\u002Fdata\u002F\u003Cvideo-id>\u002Fprelaunch\u002Fvideo-url-record.json\n> URL index: research\u002Fyoutube\u002Fdata\u002Fvideo-url-index.jsonl\n> Public\u002Funlisted metadata: research\u002Fyoutube\u002Fdata\u002F\u003Cvideo-id>\u002Fprelaunch\u002Fmetadata-YYYY-MM-DD.json\n> Transcript: [path or unavailable reason]\n> Media inspection: [path\u002Fnotes or unavailable reason]\n> Approved generation: research\u002Fyoutube\u002Fdata\u002F\u003Cvideo-id>\u002Fprelaunch\u002Ftest-and-compare\u002F\u003Cgeneration-id>\u002Fmanifest.json\n\n## Video URL Record\n\n| Field | Value |\n|---|---|\n| Record path | research\u002Fyoutube\u002Fdata\u002F\u003Cvideo-id>\u002Fprelaunch\u002Fvideo-url-record.json |\n| Index path | research\u002Fyoutube\u002Fdata\u002Fvideo-url-index.jsonl |\n| Original URL | ... |\n| Canonical watch URL | https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=\u003Cvideo-id> |\n| Known alternate forms | Shorts: ... \u002F embed: ... \u002F youtu.be: ... |\n| Channel\u002Fstatus\u002Ftitle fields updated | ... |\n\n## Evidence Coverage\n\n| Evidence | Status | Path or gap |\n|---|---|---|\n| Metadata | Available \u002F Missing | ... |\n| Transcript | Available \u002F Missing | ... |\n| Media inspection | Available \u002F Missing | ... |\n| Thumbnail source assets | Available \u002F Missing | thumbnail-asset-accounting.json or gap |\n| Generated Test and Compare set | Available | test-and-compare\u002F\u003Cgeneration-id>\u002Fmanifest.json |\n| Draft title\u002Fdescription\u002Fchapters | Available \u002F Missing | ... |\n| Launch date\u002Fsocial platforms | Available \u002F Missing | ... |\n\n## Launch Readiness Verdict\n\n- **Verdict**: Publish now \u002F metadata polish \u002F targeted edit \u002F significant edit\n- **Confidence**: High \u002F Medium \u002F Low\n- **Blocking issues**: ...\n- **Minimum viable launch fix**: ...\n\n## Edit And Polish Notes\n\n- **Hook**: ...\n- **Structure\u002Fpacing**: ...\n- **Production polish**: ...\n- **Trust\u002Frisk\u002Faccessibility**: ...\n- **Keep**: ...\n- **Change before launch**: ...\n\n## Test And Compare Launch Set\n\nProvide exactly three simultaneous variants for YouTube Studio Test and Compare:\n\n| Variant | Full title | Generated thumbnail file | Source assets | Packaging hypothesis | Intended audience signal | If this wins, it implies |\n|---|---|---|---|---|---|---|\n| A | ... | test-and-compare\u002F\u003Cgeneration-id>\u002Fvariant-a.\u003Cext> | ... | ... | ... | ... |\n| B | ... | test-and-compare\u002F\u003Cgeneration-id>\u002Fvariant-b.\u003Cext> | ... | ... | ... | ... |\n| C | ... | test-and-compare\u002F\u003Cgeneration-id>\u002Fvariant-c.\u003Cext> | ... | ... | ... | ... |\n\nGeneration manifest: `research\u002Fyoutube\u002Fdata\u002F\u003Cvideo-id>\u002Fprelaunch\u002Ftest-and-compare\u002F\u003Cgeneration-id>\u002Fmanifest.json`\n\n### Studio Setup Guidance\n\n- Upload or enter variants A, B, and C together in YouTube Studio Test and Compare where the video\u002Faccount is eligible.\n- Keep title and thumbnail pair labels aligned with the table above.\n- If title\u002Fthumbnail combination testing is unavailable, use the preferred title, test the three thumbnail variants where eligible, and preserve the other titles as follow-up options.\n- Do not claim the variants have been uploaded unless the user confirms YouTube Studio setup.\n\n## Description And Pinned Comment\n\n[Upload-ready description guidance, CTA hierarchy, links\u002Fdisclosures, pinned comment.]\n\n## Chapters\n\n[Timestamped chapters or section labels with timestamp gaps.]\n\n## Publish Settings Checklist\n\n| Setting | Recommendation | Evidence \u002F reason |\n|---|---|---|\n| Schedule | ... | ... |\n| Playlist | ... | ... |\n| End screen\u002Fcards | ... | ... |\n| Captions | ... | ... |\n| Comments\u002Fpinned comment | ... | ... |\n| Disclosures\u002Fage\u002Fmonetization | ... | ... |\n\n## Cross-Sharing Launch Plan\n\n| Channel | Timing | Copy angle | Asset needed | Notes |\n|---|---|---|---|---|\n| ... | ... | ... | ... | ... |\n\n## Decision Checklist\n\n- [ ] Blocking edits resolved or accepted\n- [ ] Exactly three generated thumbnail files decode as 1280x720 JPG\u002FPNG\u002FGIF images no larger than 50 MB each\n- [ ] Generated title\u002Fthumbnail pairs received post-generation compiled approval\n- [ ] Generation manifest and source-asset accounting are complete\n- [ ] Preferred fallback title\u002Fthumbnail selected if Test and Compare is unavailable\n- [ ] Description\u002Fpinned comment ready\n- [ ] Chapters ready\n- [ ] Launch schedule selected\n- [ ] Social assets prepared\n\n## Follow-Up Work\n\n[Route only after artifact approval and handoff checks.]\n```\n\n### 7. Summarize In Thread\n\nAfter saving an approved report, output the verdict, top blocking edit if any, highest-leverage metadata fix, the three Test and Compare title\u002Fthumbnail pairs with their real image paths, the approved generation manifest path, launch timing recommendation, cross-sharing headline, evidence gaps, report path, URL record path, URL index path, and raw data paths.\n\n## Constraints\n\n- Do not bypass login walls, bot protections, access controls, or YouTube Studio UI restrictions.\n- Do not invent transcript quotes, timestamps, video visuals, audio quality, thumbnail details, links, sponsor\u002Fdisclosure details, or social accounts.\n- Generate the three thumbnail files during Stage 2.5; image generation is mandatory even when no source assets were supplied. Never fabricate image paths, dimensions, asset use, or generation provenance.\n- Treat `50_000_000` bytes as the maximum per-file size for this manual desktop YouTube Studio workflow. Do not substitute the separate mobile\u002FAPI limit, infer format from an extension, or mark a generation complete without manifest-backed format and byte-size readback.\n- Do not claim YouTube Studio or API upload\u002Fconfiguration automation. The skill produces upload-ready files and manual setup guidance only unless the user separately authorizes and enables an automation path.\n- Do not broaden asset discovery beyond user-pointed locations or omit a pointed candidate from the used\u002Frejected accounting ledger.\n- Do not enter Stage 3 on concept approval alone; require the separate post-generation compiled approval for the actual three image\u002Ftitle pairs.\n- Do not use unlisted pre-release view\u002Flike\u002Fcomment counts as audience-performance evidence.\n- Separate current evidence, inference, and subjective polish judgment.\n- Keep launch recommendations practical for the creator's visible production capacity and available time before launch.\n- Route post-publication performance questions to `$youtube-video-audit`.\n- Route broad channel strategy, portfolio, cadence, or metrics questions to the relevant youtube-ops or creator-foundation skill after the approved artifact is shipped.\n\n## Approved Artifact Handoff\n\nAfter an approved synthesized write, explicit write\u002Fupdate mode, or any direct artifact mutation:\n\n- List every created or updated synthesized artifact path in the final response.\n- Include the URL record path, approved generation manifest path, and all three Test and Compare title\u002Fthumbnail pairs with real thumbnail file paths in the final response after the approved artifact write.\n- State the verification performed, such as readback, schema\u002Fcheck command, or why no executable verification applies for a Markdown-only strategy artifact.\n- Check and report the relevant git status for intended artifacts when the project is a git repository. If intended artifacts are modified or untracked, make the next action shipping, committing, or an explicit dirty-artifact handoff before recommending downstream strategy work.\n- Do not imply the research workflow is complete while approved artifacts remain untracked or uncommitted unless the user explicitly asked not to ship.\n- If stopping for approval before writing, the approval request remains the next action; do not include downstream routing.\n\n## Intent-Aware Routing\n\nBefore applying the default `## Next-Skill Routing` sequence, classify the user's immediate intent and route to the missing action that best serves that intent:\n\n- Strategy refresh: recommend the missing or stale positioning, programming, portfolio, metrics, or product-media artifact.\n- Recording prep: recommend the missing series spec, script, build proof, walkthrough guide, or validation artifact needed before recording.\n- Upload prep: recommend packaging, title\u002Fthumbnail, description, chapters, or final metadata work before broader strategy work.\n- Performance review: recommend metrics, cadence, portfolio, peer benchmark, or owner-analytics export work before new content planning.\n- Owner analytics or private\u002Fmanual platform evidence: route to an explicit manual\u002Fguide handoff instead of inventing unavailable metrics.\n- Dirty intended artifacts: route to shipping\u002Fcommit\u002Fhandoff first, not another creator strategy skill.\n\nUse the default next-skill sequence only when no stronger user intent, missing artifact, manual blocker, or dirty-artifact handoff applies.\n\n## Next-Step Routing\n\nAfter writing the approved artifact and completing the artifact handoff checks, recommend the next contextual creator-media skill in the final response as `Recommended next skill: \u003Ccommand>`.\n\nDefault recommendation: `$youtube-description-optimizer` when the main remaining work is description, chapters, pinned comment, metadata, or launch copy; `$youtube-title-thumbnail-audit` when title\u002Fthumbnail packaging needs a deeper channel or peer comparison; `$youtube-format-research` from the `remotion` pack when the video should be re-edited for pacing, format, visual rhythm, or production grammar; otherwise `$youtube-video-audit` after the video is public and enough time has passed to evaluate performance.\n\nBefore recommending `$youtube-format-research`, verify the `remotion` pack is enabled in `.agents\u002Fproject.json.enabled_packs`. If it is missing, recommend `npx skillpacks install remotion` first.\n\n## Alignment Page\n\nFollow the shared alignment-page convention via the packaged convention resolver; output path is `alignment\u002Fyoutube-video-prelaunch-audit-{topic}.html`.\n\n## Default Shipping Contract\n\nFollow the shared shipping contract convention in CLAUDE.md.\n","## Pack Availability Guard\n\nBefore telling the user to run a skill from another project-local pack, check `.agents\u002Fproject.json.enabled_packs`. If the target pack is not enabled, recommend `npx skillpacks install \u003Cpack>` instead of the target skill. Only the currently running skill and skills verified available in the active session or project-local install state are directly recommendable. For unavailable pack skills, recommend `npx skillpacks install \u003Cpack-or-skill>`; for unavailable base skills, recommend `npx skillpacks init` before the skill.\n\n# YouTube Video Prelaunch Audit\n\nInvoke as `$youtube-video-prelaunch-audit`.\n\n## Report-First Approval Gate\n\nDefault to scope-first approval: before synthesized research, inspect only enough repository, user, and source context to propose research scope, source plan, assumptions, output paths, and approval questions in a `review` alignment page plus a concise conversation summary.\n\nDo not perform synthesized research, rank candidates, make recommendations, or write working packets or canonical deliverables until final compiled YAML approves the research scope. Minimal pre-approval discovery may identify available files, source categories, and open questions; label it as scope evidence, not findings.\n\nAfter approved research-scope YAML, perform the research and write only the non-canonical working packet defined in the staged workflow. Update the `review` alignment page with exactly three proposed title\u002Fconcept\u002Fasset-allocation variants and stop for concept-and-asset approval. After that approval, generate the three real thumbnails in Stage 2.5, update the same page with the generated title\u002Fimage pairs, and stop for a second compiled approval before creating or updating canonical research, spec, or task files.\n\nDo not include `Recommended next skill`, `Recommended next command`, or downstream routing language. The approval request itself is the next action. Only emit next-skill routing after the approved artifact has been written or updated.\n\n## Staged Research Workflow\n\nUse this staged workflow for synthesized research or report outputs that would create or update canonical research, spec, or task files.\n\n1. **Stage 1 - Scope discovery and approval.** Inspect only enough repository, user, and source context to propose research scope, source plan, assumptions, output paths, and approval questions. Build the `review` HTML alignment page before synthesized research. The page must render the proposed scope, available source categories, known context, assumptions\u002Fconfidence, proposed working-packet and canonical output paths, and research-scope approval gates. Stop for final compiled YAML approval of the research scope. Do not perform synthesized research, rank candidates, make recommendations, or write working packets, canonical research, spec, or task files in Stage 1.\n2. **Stage 2 - Research, concepts, and asset-selection review.** Only after approved research-scope YAML with no unresolved `needs-clarification`, unresolved `down` feedback, or other unresolved negative feedback, perform the synthesized research, run required source\u002Fcode checks, inspect and account for every explicitly pointed thumbnail asset, and write only a non-canonical working packet: flat mode uses `research\u002F_working\u002Fpreliminary-\u003Cskill>-research.md`; product-path mode uses `research\u002F{slug}\u002F_working\u002Fpreliminary-\u003Cskill>-research.md`. Replace `\u003Cskill>` with this skill's `name` value. Propose exactly three distinct variants, each with one upload-ready title, one concrete thumbnail concept, one explicit allocation of inspected source assets, one packaging hypothesis, and one intended audience signal. Update the `review` HTML alignment page so it renders the complete working-packet substance as structured HTML review UI, including the complete asset-accounting ledger and the three proposed variants without summary loss. Raw Markdown packet text may appear only as a supplemental source view after the rendered review UI; do not make a raw Markdown dump, giant `\u003Cpre>\u003Ccode>` block, link-only view, or source-only view the primary review surface. Keep the page in `review` and stop for concept-and-asset-selection compiled YAML. Feedback-only YAML revises the working packet and page and remains in Stage 2. Enter Stage 2.5 only when final compiled YAML explicitly approves all three titles, concepts, and asset allocations with no unresolved negative feedback.\n3. **Stage 2.5 - Generate Test and Compare assets.** Use an available image-generation or image-editing capability to create exactly three upload-ready 1280x720 thumbnail files from the approved concepts and assets. Do not substitute prose concepts, mock paths, or supplied source files for generated outputs. If no image-capable tool is available, any required approved asset cannot be accessed, or the capability cannot save and verify all three outputs, stop and request an image-capable session or corrected asset access. Save every attempt under a new immutable `research\u002Fyoutube\u002Fdata\u002F\u003Cvideo-id>\u002Fprelaunch\u002Ftest-and-compare\u002F\u003Cgeneration-id>\u002F` directory. Write `variant-a`, `variant-b`, and `variant-c` image files plus `manifest.json`. Before updating the review page, use image readback to validate that exactly three variant image files exist, each decodes as 1280x720, each file's actual format detected from its contents or file signature is JPEG, PNG, or GIF, and each file is no larger than `50_000_000` bytes for manual desktop YouTube Studio upload. Do not trust the filename extension; reject unreadable files, extension\u002Fcontent mismatches, unsupported formats, and oversized outputs. Only after validation, update the existing alignment page to embed the three generated images beside their paired titles, source-asset references, hypotheses, and resolvable open\u002Fdownload links. Keep the page in `review` and stop for a new compiled approval that explicitly covers the generated images and paired titles. Revision feedback must create a new generation directory and preserve every prior generation as evidence.\n4. **Stage 3 - Finalize approved artifacts.** Enter only after the post-generation compiled YAML approves the three generated images and paired titles and has no unresolved `needs-clarification`, unresolved `down` feedback, or other unresolved negative feedback. Apply approved non-thumbnail edits first; thumbnail or title revisions return to Stage 2.5 and create a new generation. Archive the working packet to `docs\u002Fhistory\u002Farchive\u002FYYYY-MM-DD\u002FHHMMSS\u002F\u003Coriginal-working-path>`, remove the active working packet, write the approved canonical artifacts to the unchanged output paths below, and convert the alignment page to `confirmed` with both approval records and the approved generation manifest path preserved.\n\nCanonical output paths remain unchanged. Search logs and other supporting evidence remain allowed only where this skill's output contract already requires them.\n\n## Evidence And Feedback Handling\n\nTreat user feedback as input to evaluate, not as automatic ground truth.\n\n- For factual, evidentiary, technical, or source-backed claims: verify against available evidence. If the user appears to misunderstand the evidence or states something factually incorrect, push back clearly and cite the evidence. Do not rewrite findings merely to agree.\n- For taste, brand, positioning preference, risk appetite, prioritization, or other subjective judgment calls: weigh user feedback heavily and adapt the recommendation unless it conflicts with verified evidence.\n- When feedback mixes facts and preference, separate them explicitly: correct the factual part, then incorporate the preference where it is a legitimate judgment call.\n- When uncertain, say what is known, what is inferred, and what would change the conclusion.\n\n## Inputs\n\n- Required: one unlisted or scheduled YouTube video URL or raw video ID.\n- Optional `--script \u003Cpath>`: local script, outline, shot list, or talking-points file.\n- Optional repeatable `--thumbnail-asset \u003Cpath-or-url>`: source image, existing thumbnail, brand asset, frame, screenshot, or directory whose contents may be used to generate the variants.\n- Optional `--thumbnail \u003Cpath-or-url>`: backward-compatible alias for one `--thumbnail-asset`.\n- Optional explicitly identified attachments or natural-language references to specific local files, URLs, or directories: treat each as a pointed thumbnail-asset location.\n- Optional `--launch-date YYYY-MM-DD`: planned public release date.\n- Optional `--social \u003Cplatforms>`: comma-separated social platforms to include in cross-sharing recommendations.\n- Optional `--compare-channel \u003Cslug>`: reuse existing channel evidence under `research\u002Fyoutube\u002Fdata\u002F\u003Cslug>\u002F`.\n- Optional owner-provided notes: draft title, description, chapters, pinned comment, target audience, sponsor\u002Fdisclosure requirements, launch goals, and existing social copy.\n\n## Process\n\n### 1. Resolve Target and Access\n\n1. Extract the video ID from a normal watch URL, Shorts URL, youtu.be URL, embed URL, or raw 11-character ID.\n2. Derive known URL forms when possible: original URL, canonical watch URL, Shorts URL, embed URL, and youtu.be URL.\n3. Before asking for channel, status, working-title, report-history, or prior-artifact context, check `research\u002Fyoutube\u002Fdata\u002Fvideo-url-index.jsonl` and `research\u002Fyoutube\u002Fdata\u002F\u003Cvideo-id>\u002Fprelaunch\u002Fvideo-url-record.json`. Use existing values unless they are missing, stale, or conflicting.\n4. Require `yt-dlp` for public or unlisted metadata:\n\n   ```bash\n   command -v yt-dlp\n   ```\n\n5. Fetch metadata with `yt-dlp --dump-json \"VIDEO_URL\"` when accessible. If the video requires login, private account access, or YouTube Studio access, stop and ask for a public\u002Funlisted link, local video file, transcript, or manually exported metadata instead.\n6. Check `availability`, `live_status`, upload date, scheduled time, and visibility cues. If the video is already public and the user asks why it performed a certain way, route to `$youtube-video-audit` instead.\n7. Do not treat views, likes, or comments on an unlisted pre-release video as performance evidence; internal review traffic can distort them.\n\n### 2. Maintain Video URL Record\n\nCreate or update these persistent URL ledger artifacts as soon as the video ID and original URL are known, then revise them after metadata, evidence, and report paths are known:\n\n```text\nresearch\u002Fyoutube\u002Fdata\u002F\u003Cvideo-id>\u002Fprelaunch\u002Fvideo-url-record.json\nresearch\u002Fyoutube\u002Fdata\u002Fvideo-url-index.jsonl\n```\n\nThe per-video record and aggregate index line must include:\n\n- `video_id`\n- `original_url`\n- `canonical_watch_url` using `https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=\u003Cvideo-id>`\n- `url_forms`: known or derivable `watch`, `shorts`, `embed`, and `youtu_be` forms\n- `channel`: known `id`, `url`, and `name`\n- `status`: visibility, availability, live status, scheduled\u002Fpublic state, and launch date when known\n- `working_title`\n- `selected_or_preferred_launch_title` when known\n- `report_path`\n- `evidence_paths`\n- `captured_at`\n- `source_skill`: `youtube-video-prelaunch-audit`\n\nUse `null` for unknown optional values instead of inventing them. Do not store credentials, cookies, private YouTube Studio-only fields, or unshared account details. For the JSONL index, update an existing line for the same `video_id` when practical; otherwise append a fresh valid JSON object for the capture. On future runs, read the index and per-video record before asking the user for context already captured, and ask only for missing or conflicting fields.\n\n### 3. Persist Raw Evidence\n\nCreate:\n\n```text\nresearch\u002Fyoutube\u002Fdata\u002F\u003Cvideo-id>\u002Fprelaunch\u002F\n```\n\nPersist available evidence before analysis:\n\n- `metadata-YYYY-MM-DD.json`: raw `yt-dlp --dump-json \"VIDEO_URL\"` output.\n- `transcript\u002F\u003Cvideo-id>.json`: raw transcript JSON when available.\n- `transcript\u002Ftranscript-summary.json`: transcript text or failure reason.\n- `draft-inputs\u002F`: copies or path references for script, outline, thumbnail assets, draft description, chapters, and social copy when the user supplies them.\n- `thumbnail-asset-accounting.json`: one record for every candidate discovered within a user-pointed asset location, including original pointer, resolved path or URL, inspection method, accessibility, media type\u002Fdimensions when known, `used` or `rejected` status, allocated variants when used, and a rejection reason when rejected.\n- `media-review-notes-YYYY-MM-DD.md`: manual or tool-assisted media inspection notes when video, frame, audio, or screenshot review was possible.\n\nFor thumbnail assets, limit discovery to the exact files, URLs, attachments, and directories the user points to. Inspect every candidate in those locations; do not crawl parent directories, adjacent folders, unrelated repository assets, or linked websites. Incorporate every relevant usable candidate somewhere across the three approved variants. Record inaccessible, irrelevant, duplicate, unsafe, or unusable candidates as rejected with a concrete reason visible in the working packet and alignment page. A missing required approved asset is a Stage 2.5 blocker, not a reason to silently omit it.\n\nRecord evidence gaps explicitly. Missing transcript, thumbnail assets, frame review, audio review, current description, launch date, sponsor requirements, or target platforms constrain confidence. Thumbnail assets may be absent when concepts are proposed, but Stage 2.5 still requires actual image generation and three verified output files.\n\n### 4. Inspect Content and Polish\n\nUse the deepest available evidence:\n\n- If transcript evidence exists, inspect the first 30-60 seconds, section transitions, examples, claims, CTA, and outro.\n- If media inspection is available through a local file, accessible unlisted playback, screenshots, frame samples, or audio notes, review visual clarity, sound quality, editing continuity, on-screen text, pacing, dead air, b-roll, captions, end screen timing, and brand polish.\n- If only metadata and transcript are available, limit edit\u002Fpolish judgments to transcript-supported structure, hook, pacing inference, and missing media-evidence gaps.\n\nAnalyze:\n\n- **Launch-readiness verdict**: publish now, publish after metadata polish, hold for targeted edit, or hold for significant edit.\n- **Hook and expectation match**: whether the first minute pays off the title\u002Fthumbnail promise quickly.\n- **Structure and pacing**: dead zones, redundant setup, missing chapter breaks, abrupt transitions, weak examples, or unclear payoff.\n- **Production polish**: audio, visuals, captions, overlays, b-roll, continuity, end screen, cards, disclosure, and accessibility when evidence exists.\n- **Risk and trust**: unsupported claims, stale references, missing source links, sponsor\u002Fdisclosure gaps, privacy\u002Fconfidentiality concerns, or accidental internal-only material.\n\n### 5. Build and Generate the Launch Package\n\nAudit and draft practical launch assets:\n\n- Test And Compare Launch Set: in Stage 2, propose exactly 3 simultaneous variants for YouTube Studio Test and Compare. Each variant must pair one distinct upload-ready full title with one distinct thumbnail concept and explicit approved source-asset allocation, plus a packaging hypothesis, intended audience signal, and what a win would imply. In Stage 2.5, replace each concept with its generated file while preserving the pairing and hypothesis.\n- Title: keep each title inside YouTube Studio's current title limit, using 100 characters as the upload-ready ceiling unless Studio shows a different limit. Avoid unsupported claims, bait-and-switch promises, and vague curiosity; preserve search\u002Ftopic clarity and expectation match.\n- Thumbnail: evaluate focal clarity, text density, promise match, visual differentiation, and title\u002Fthumbnail expectation match. Use the approved asset allocations and an image-generation\u002Fediting capability to create exactly three real 1280x720 outputs. Do not complete successfully with concepts, source references, unreadable or disguised files, unsupported formats, files larger than the desktop Studio limit, or otherwise unverified files.\n- Generation manifest: write `manifest.json` with `video_id`, `generation_id`, `created_at`, `status`, and exactly three `variants`. For each variant record `id`, full `title`, `image_path`, `source_assets`, `packaging_hypothesis`, `intended_audience_signal`, `win_implication`, numeric `dimensions` (`width: 1280`, `height: 720`), detected `format` normalized to `jpg`, `png`, or `gif`, and numeric `byte_size`. Include the complete source-asset accounting ledger or its path and generation provenance: capability\u002Ftool, model or engine when exposed, generation\u002Fedit mode, prompt or edit-instruction reference, relevant settings, and verification method. Mark `status` complete only after content-based image readback proves all three files, dimensions, supported formats, and `byte_size \u003C= 50_000_000`; write the detected format and byte size to the manifest before changing the status to complete or updating the review page.\n- Generation identity: use a collision-resistant timestamp or equivalent unique `\u003Cgeneration-id>`. Never overwrite, rename away, or delete a prior generation when revising candidates.\n- Review page comparison: use actual `\u003Cimg>` elements with meaningful `alt` text and resolvable repository-relative `src` values. Show each image with its full paired title, variant ID, source assets, hypothesis, open link, and download link. Treat broken images, missing links, missing fields, or a concept-only card as incomplete Stage 2.5 output.\n- Test setup guidance: explain how to get the three variants online in YouTube Studio on desktop via the video's Details \u002F Test and Compare flow, keeping variant labels and title\u002Fthumbnail pairing aligned with the report. If the account or video is ineligible for title\u002Fthumbnail combination testing, state the fallback: apply the preferred title, test the three generated thumbnail files where eligible, and preserve the other title variants for manual follow-up.\n- Description: first two lines, CTA hierarchy, link stack, credits, disclosures, hashtags, and pinned-comment fit.\n- Chapters: proposed timestamped chapters from transcript or current metadata; if exact timestamps are unavailable, provide section labels and note the timestamp gap.\n- Publish settings: scheduled time, premiere fit, playlist, cards, end screen, comments, captions, monetization, age\u002Fsponsor\u002Fdisclosure checks, and whether to keep as unlisted for another review pass.\n- Cross-sharing: platform-specific copy angles, cutdown\u002Fclip suggestions, launch-day sequence, first-24h comment plan, community post, newsletter\u002Fblog tie-in, and ethical limitations for Reddit\u002FHacker News or niche communities.\n\nDo not invent links, sponsors, timestamp precision, platform accounts, or channel policies. Use placeholders where user-owned assets are missing.\n\n### 6. Write Report\n\nCreate `research\u002Fyoutube\u002F`, the raw evidence directory, and the URL ledger paths if they do not exist.\n\nSave the approved canonical artifact to:\n\n```text\nresearch\u002Fyoutube\u002Fprelaunch-audit-\u003Cvideo-id>-YYYY-MM-DD.md\n```\n\nUse this structure:\n\n```markdown\n# YouTube Video Prelaunch Audit - [Working Title]\n\n> Video: [URL]\n> Video ID: [id]\n> Channel: [channel]\n> Visibility\u002Fstatus: unlisted \u002F scheduled \u002F unknown\n> Planned launch: YYYY-MM-DD or not provided\n> Date captured: YYYY-MM-DD\n> URL record: research\u002Fyoutube\u002Fdata\u002F\u003Cvideo-id>\u002Fprelaunch\u002Fvideo-url-record.json\n> URL index: research\u002Fyoutube\u002Fdata\u002Fvideo-url-index.jsonl\n> Public\u002Funlisted metadata: research\u002Fyoutube\u002Fdata\u002F\u003Cvideo-id>\u002Fprelaunch\u002Fmetadata-YYYY-MM-DD.json\n> Transcript: [path or unavailable reason]\n> Media inspection: [path\u002Fnotes or unavailable reason]\n> Approved generation: research\u002Fyoutube\u002Fdata\u002F\u003Cvideo-id>\u002Fprelaunch\u002Ftest-and-compare\u002F\u003Cgeneration-id>\u002Fmanifest.json\n\n## Video URL Record\n\n| Field | Value |\n|---|---|\n| Record path | research\u002Fyoutube\u002Fdata\u002F\u003Cvideo-id>\u002Fprelaunch\u002Fvideo-url-record.json |\n| Index path | research\u002Fyoutube\u002Fdata\u002Fvideo-url-index.jsonl |\n| Original URL | ... |\n| Canonical watch URL | https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=\u003Cvideo-id> |\n| Known alternate forms | Shorts: ... \u002F embed: ... \u002F youtu.be: ... |\n| Channel\u002Fstatus\u002Ftitle fields updated | ... |\n\n## Evidence Coverage\n\n| Evidence | Status | Path or gap |\n|---|---|---|\n| Metadata | Available \u002F Missing | ... |\n| Transcript | Available \u002F Missing | ... |\n| Media inspection | Available \u002F Missing | ... |\n| Thumbnail source assets | Available \u002F Missing | thumbnail-asset-accounting.json or gap |\n| Generated Test and Compare set | Available | test-and-compare\u002F\u003Cgeneration-id>\u002Fmanifest.json |\n| Draft title\u002Fdescription\u002Fchapters | Available \u002F Missing | ... |\n| Launch date\u002Fsocial platforms | Available \u002F Missing | ... |\n\n## Launch Readiness Verdict\n\n- **Verdict**: Publish now \u002F metadata polish \u002F targeted edit \u002F significant edit\n- **Confidence**: High \u002F Medium \u002F Low\n- **Blocking issues**: ...\n- **Minimum viable launch fix**: ...\n\n## Edit And Polish Notes\n\n- **Hook**: ...\n- **Structure\u002Fpacing**: ...\n- **Production polish**: ...\n- **Trust\u002Frisk\u002Faccessibility**: ...\n- **Keep**: ...\n- **Change before launch**: ...\n\n## Test And Compare Launch Set\n\nProvide exactly three simultaneous variants for YouTube Studio Test and Compare:\n\n| Variant | Full title | Generated thumbnail file | Source assets | Packaging hypothesis | Intended audience signal | If this wins, it implies |\n|---|---|---|---|---|---|---|\n| A | ... | test-and-compare\u002F\u003Cgeneration-id>\u002Fvariant-a.\u003Cext> | ... | ... | ... | ... |\n| B | ... | test-and-compare\u002F\u003Cgeneration-id>\u002Fvariant-b.\u003Cext> | ... | ... | ... | ... |\n| C | ... | test-and-compare\u002F\u003Cgeneration-id>\u002Fvariant-c.\u003Cext> | ... | ... | ... | ... |\n\nGeneration manifest: `research\u002Fyoutube\u002Fdata\u002F\u003Cvideo-id>\u002Fprelaunch\u002Ftest-and-compare\u002F\u003Cgeneration-id>\u002Fmanifest.json`\n\n### Studio Setup Guidance\n\n- Upload or enter variants A, B, and C together in YouTube Studio Test and Compare where the video\u002Faccount is eligible.\n- Keep title and thumbnail pair labels aligned with the table above.\n- If title\u002Fthumbnail combination testing is unavailable, use the preferred title, test the three thumbnail variants where eligible, and preserve the other titles as follow-up options.\n- Do not claim the variants have been uploaded unless the user confirms YouTube Studio setup.\n\n## Description And Pinned Comment\n\n[Upload-ready description guidance, CTA hierarchy, links\u002Fdisclosures, pinned comment.]\n\n## Chapters\n\n[Timestamped chapters or section labels with timestamp gaps.]\n\n## Publish Settings Checklist\n\n| Setting | Recommendation | Evidence \u002F reason |\n|---|---|---|\n| Schedule | ... | ... |\n| Playlist | ... | ... |\n| End screen\u002Fcards | ... | ... |\n| Captions | ... | ... |\n| Comments\u002Fpinned comment | ... | ... |\n| Disclosures\u002Fage\u002Fmonetization | ... | ... |\n\n## Cross-Sharing Launch Plan\n\n| Channel | Timing | Copy angle | Asset needed | Notes |\n|---|---|---|---|---|\n| ... | ... | ... | ... | ... |\n\n## Decision Checklist\n\n- [ ] Blocking edits resolved or accepted\n- [ ] Exactly three generated thumbnail files decode as 1280x720 JPG\u002FPNG\u002FGIF images no larger than 50 MB each\n- [ ] Generated title\u002Fthumbnail pairs received post-generation compiled approval\n- [ ] Generation manifest and source-asset accounting are complete\n- [ ] Preferred fallback title\u002Fthumbnail selected if Test and Compare is unavailable\n- [ ] Description\u002Fpinned comment ready\n- [ ] Chapters ready\n- [ ] Launch schedule selected\n- [ ] Social assets prepared\n\n## Follow-Up Work\n\n[Route only after artifact approval and handoff checks.]\n```\n\n### 7. Summarize In Thread\n\nAfter saving an approved report, output the verdict, top blocking edit if any, highest-leverage metadata fix, the three Test and Compare title\u002Fthumbnail pairs with their real image paths, the approved generation manifest path, launch timing recommendation, cross-sharing headline, evidence gaps, report path, URL record path, URL index path, and raw data paths.\n\n## Constraints\n\n- Do not bypass login walls, bot protections, access controls, or YouTube Studio UI restrictions.\n- Do not invent transcript quotes, timestamps, video visuals, audio quality, thumbnail details, links, sponsor\u002Fdisclosure details, or social accounts.\n- Generate the three thumbnail files during Stage 2.5; image generation is mandatory even when no source assets were supplied. Never fabricate image paths, dimensions, asset use, or generation provenance.\n- Treat `50_000_000` bytes as the maximum per-file size for this manual desktop YouTube Studio workflow. Do not substitute the separate mobile\u002FAPI limit, infer format from an extension, or mark a generation complete without manifest-backed format and byte-size readback.\n- Do not claim YouTube Studio or API upload\u002Fconfiguration automation. The skill produces upload-ready files and manual setup guidance only unless the user separately authorizes and enables an automation path.\n- Do not broaden asset discovery beyond user-pointed locations or omit a pointed candidate from the used\u002Frejected accounting ledger.\n- Do not enter Stage 3 on concept approval alone; require the separate post-generation compiled approval for the actual three image\u002Ftitle pairs.\n- Do not use unlisted pre-release view\u002Flike\u002Fcomment counts as audience-performance evidence.\n- Separate current evidence, inference, and subjective polish judgment.\n- Keep launch recommendations practical for the creator's visible production capacity and available time before launch.\n- Route post-publication performance questions to `$youtube-video-audit`.\n- Route broad channel strategy, portfolio, cadence, or metrics questions to the relevant youtube-ops or creator-foundation skill after the approved artifact is shipped.\n\n## Approved Artifact Handoff\n\nAfter an approved synthesized write, explicit write\u002Fupdate mode, or any direct artifact mutation:\n\n- List every created or updated synthesized artifact path in the final response.\n- Include the URL record path, approved generation manifest path, and all three Test and Compare title\u002Fthumbnail pairs with real thumbnail file paths in the final response after the approved artifact write.\n- State the verification performed, such as readback, schema\u002Fcheck command, or why no executable verification applies for a Markdown-only strategy artifact.\n- Check and report the relevant git status for intended artifacts when the project is a git repository. If intended artifacts are modified or untracked, make the next action shipping, committing, or an explicit dirty-artifact handoff before recommending downstream strategy work.\n- Do not imply the research workflow is complete while approved artifacts remain untracked or uncommitted unless the user explicitly asked not to ship.\n- If stopping for approval before writing, the approval request remains the next action; do not include downstream routing.\n\n## Intent-Aware Routing\n\nBefore applying the default `## Next-Skill Routing` sequence, classify the user's immediate intent and route to the missing action that best serves that intent:\n\n- Strategy refresh: recommend the missing or stale positioning, programming, portfolio, metrics, or product-media artifact.\n- Recording prep: recommend the missing series spec, script, build proof, walkthrough guide, or validation artifact needed before recording.\n- Upload prep: recommend packaging, title\u002Fthumbnail, description, chapters, or final metadata work before broader strategy work.\n- Performance review: recommend metrics, cadence, portfolio, peer benchmark, or owner-analytics export work before new content planning.\n- Owner analytics or private\u002Fmanual platform evidence: route to an explicit manual\u002Fguide handoff instead of inventing unavailable metrics.\n- Dirty intended artifacts: route to shipping\u002Fcommit\u002Fhandoff first, not another creator strategy skill.\n\nUse the default next-skill sequence only when no stronger user intent, missing artifact, manual blocker, or dirty-artifact handoff applies.\n\n## Next-Step Routing\n\nAfter writing the approved artifact and completing the artifact handoff checks, recommend the next contextual creator-media skill in the final response as `Recommended next skill: \u003Ccommand>`.\n\nDefault recommendation: `$youtube-description-optimizer` when the main remaining work is description, chapters, pinned comment, metadata, or launch copy; `$youtube-title-thumbnail-audit` when title\u002Fthumbnail packaging needs a deeper channel or peer comparison; `$youtube-format-research` from the `remotion` pack when the video should be re-edited for pacing, format, visual rhythm, or production grammar; otherwise `$youtube-video-audit` after the video is public and enough time has passed to evaluate performance.\n\nBefore recommending `$youtube-format-research`, verify the `remotion` pack is enabled in `.agents\u002Fproject.json.enabled_packs`. If it is missing, recommend `npx skillpacks install remotion` first.\n\n## Alignment Page\n\nFollow the shared alignment-page convention via the packaged convention resolver; output path is `alignment\u002Fyoutube-video-prelaunch-audit-{topic}.html`.\n\n## Default Shipping Contract\n\nFollow the shared shipping contract convention in CLAUDE.md.\n",{"name":5,"type":52,"version":53,"description":7,"argument-hint":54,"context_intake":55,"required_conventions":56},"research","v0.5","\u003Cunlisted video URL or ID> [--script \u003Cpath>] [--thumbnail \u003Cpath-or-url>] [--thumbnail-asset \u003Cpath-or-url>]... [--launch-date YYYY-MM-DD] [--social \u003Cplatforms>] [--compare-channel \u003Cslug>]","artifact_only",[57],"alignment-page","master","96e2912af886dd1606b1b97df707715aef062b02","packs\u002Fyoutube-ops\u002Fcodex\u002Fyoutube-video-prelaunch-audit\u002Farchive\u002Fv0.5",0,"https:\u002F\u002Fgithub.com\u002FGeorgeQLe\u002Fagentic-skills","https:\u002F\u002Fagentic-skills-blush.vercel.app","https:\u002F\u002Fgithub.com\u002FGeorgeQLe","georgeqle.com","George Le is a futurist and serial tech entrepreneur who wants to work toward a world where humanity is free from robotic tasks.","2026-11-10 04:07:24",{"source":8,"skillName":5,"commands":69,"prompt":79,"zipAvailable":80},[70,73,76],{"tool":71,"command":72},"npx","npx skills add GeorgeQLe\u002Fagentic-skills --skill youtube-video-prelaunch-audit",{"tool":74,"command":75},"bunx","bunx skills add GeorgeQLe\u002Fagentic-skills --skill youtube-video-prelaunch-audit",{"tool":77,"command":78},"pnpm","pnpm dlx skills add GeorgeQLe\u002Fagentic-skills --skill youtube-video-prelaunch-audit","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FGeorgeQLe\u002Fagentic-skills\u002Fblob\u002Fmaster\u002Fpacks\u002Fyoutube-ops\u002Fcodex\u002Fyoutube-video-prelaunch-audit\u002Farchive\u002Fv0.5\u002FSKILL.md",true,[],[83,94,104,116,129,140],{"skillNo":84,"name":85,"nameZh":6,"description":86,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":87,"categories":88,"keywords":89,"publishedAt":47},"01M6G0NJES15RJKZE6YZ0TSYGF","source-checkout-allowed","Valid source-checkout-only fixture.","https:\u002F\u002Fgithub.com\u002FGeorgeQLe\u002Fagentic-skills\u002Fblob\u002Fmaster\u002Ftests\u002Ffixtures\u002Fskill-install-routing\u002Fvalid\u002Fsource-checkout-allowed\u002FSKILL.md",[],[90,91,92,42,43,93],"source checkout allowed","checkout","fixture","valid",{"skillNo":95,"name":96,"nameZh":6,"description":97,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":98,"categories":99,"keywords":100,"publishedAt":47},"01M6G0NFZ3R1MNB1E3DVTM0WB7","deck-install-valid","Valid deck install fixture.","https:\u002F\u002Fgithub.com\u002FGeorgeQLe\u002Fagentic-skills\u002Fblob\u002Fmaster\u002Ftests\u002Ffixtures\u002Fskill-install-routing\u002Fvalid\u002Fdeck-install\u002FSKILL.md",[],[101,102,103,93,92,43],"deck install valid","deck","install",{"skillNo":105,"name":106,"nameZh":6,"description":107,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":108,"categories":109,"keywords":110,"publishedAt":47},"01M6G0ND3QZQC4MDZ9NVB97PT2","codex-pack-guard-valid","Valid Codex Pack Availability Guard fixture.","https:\u002F\u002Fgithub.com\u002FGeorgeQLe\u002Fagentic-skills\u002Fblob\u002Fmaster\u002Ftests\u002Ffixtures\u002Fskill-install-routing\u002Fvalid\u002Fcodex-pack-guard\u002FSKILL.md",[],[111,112,113,93,114,115,92,43],"codex pack guard valid","pack","guard","codex","availability",{"skillNo":117,"name":118,"nameZh":6,"description":119,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":120,"categories":121,"keywords":125,"publishedAt":47},"01M6G0NA9YB3NKGZKD3S96JMNB","codex-missing-skill-valid","Valid Codex missing skill fallback fixture.","https:\u002F\u002Fgithub.com\u002FGeorgeQLe\u002Fagentic-skills\u002Fblob\u002Fmaster\u002Ftests\u002Ffixtures\u002Fskill-install-routing\u002Fvalid\u002Fcodex-missing-skill-fallback\u002FSKILL.md",[122],{"categoryNo":123,"categoryName":124,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",[126,127,93,114,43,128,92],"codex missing skill valid","missing","fallback",{"skillNo":130,"name":131,"nameZh":6,"description":132,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":133,"categories":134,"keywords":136,"publishedAt":47},"01M6G0N7PC0EKFD40ZWQAXSAQ9","codex-base-skill-fallback-valid","Valid Codex base skill fallback fixture.","https:\u002F\u002Fgithub.com\u002FGeorgeQLe\u002Fagentic-skills\u002Fblob\u002Fmaster\u002Ftests\u002Ffixtures\u002Fskill-install-routing\u002Fvalid\u002Fcodex-base-skill-fallback\u002FSKILL.md",[135],{"categoryNo":123,"categoryName":124,"taxonomyType":21,"taxonomyTypeDesc":22},[93,114,128,137,138,139,43,92],"base skill","codex base skill fallback valid","base",{"skillNo":141,"name":142,"nameZh":6,"description":143,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":144,"categories":145,"keywords":146,"publishedAt":47},"01M6G0N4VRR2YKZQ6N3Y6S2BQA","claude-pack-guard-valid","Valid Claude Pack Availability Guard fixture.","https:\u002F\u002Fgithub.com\u002FGeorgeQLe\u002Fagentic-skills\u002Fblob\u002Fmaster\u002Ftests\u002Ffixtures\u002Fskill-install-routing\u002Fvalid\u002Fclaude-pack-guard\u002FSKILL.md",[],[93,113,112,147,115,43,92],"claude pack guard valid"]