[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6CPX3WCNNSPDASWMH3W9SPN":3,"skill-same:01M6CPX3WCNNSPDASWMH3W9SPN":142},{"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":29,"publishedAt":43,"linkOnly":44,"markdownContent":45,"markdownBody":46,"frontMatter":47,"refName":48,"commitSha":49,"skillDirectory":50,"forksCount":51,"repositoryHtmlUrl":52,"repositoryHomepageUrl":6,"ownerHtmlUrl":53,"ownerBlogUrl":54,"ownerDescription":55,"updatedAt":56,"install":57,"resources":70},"01M6CPX3WCNNSPDASWMH3W9SPN","sora",null,"Use when the user asks to generate, remix, poll, list, download, or delete Sora videos via OpenAI’s video API using the bundled CLI (`scripts\u002Fsora.py`), including requests like “generate AI video,” “Sora,” “video remix,” “download video\u002Fthumbnail\u002Fspritesheet,” and batch video generation; requires `OPENAI_API_KEY` and Sora API access.","khalidsaidi\u002Fskillrunner","khalidsaidi","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F4368721?v=4","01M6CPK1G2TKAWA8BSNSANBNWJ","Khalid Saidi","01M6CPK1M7RGKV85142PWBEJ54",1,"MIT","https:\u002F\u002Fgithub.com\u002Fkhalidsaidi\u002Fskillrunner\u002Fblob\u002Fmain\u002Fregistry\u002Fskills\u002Fopenai-sora\u002Fupstream\u002FSKILL.md",[18,23,26],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000010","后端与接口","SCENARIO","使用场景",{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000016","图像与多媒体",{"categoryNo":27,"categoryName":28,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",[5,30,31,32,33,34,35,36,37,38,39,40,41,42],"cli","delete","generate","openai","batch","api","Video","access","download","video generation","list","user","use","2026-11-10 10:12:30",false,"---\nname: \"sora\"\ndescription: \"Use when the user asks to generate, remix, poll, list, download, or delete Sora videos via OpenAI\\u2019s video API using the bundled CLI (`scripts\u002Fsora.py`), including requests like \\u201cgenerate AI video,\\u201d \\u201cSora,\\u201d \\u201cvideo remix,\\u201d \\u201cdownload video\u002Fthumbnail\u002Fspritesheet,\\u201d and batch video generation; requires `OPENAI_API_KEY` and Sora API access.\"\n---\n\n\n# Sora Video Generation Skill\n\nCreates or manages short video clips for the current project (product demos, marketing spots, cinematic shots, UI mocks). Defaults to `sora-2` and a structured prompt augmentation workflow, and prefers the bundled CLI for deterministic runs. Note: `$sora` is a skill tag in prompts, not a shell command.\n\n## When to use\n- Generate a new video clip from a prompt\n- Remix an existing video by ID\n- Poll status, list jobs, or download assets (video\u002Fthumbnail\u002Fspritesheet)\n- Batch runs (many prompts or variants)\n\n## Decision tree (create vs remix vs status\u002Fdownload vs batch)\n- If the user has a **video id** and wants a change → **remix**\n- If the user has a **video id** and wants status or assets → **status\u002Fpoll\u002Fdownload**\n- If the user needs many prompts\u002Fassets → **create-batch**\n- If the user asks for two versions with a small change (same shot, different subject\u002Fdetail) → **create** the base, then **remix** for the variation\n- Otherwise → **create** (or **create-and-poll** if they need a ready asset in one step)\n\n## Workflow\n1. Decide intent: create vs remix vs status\u002Fdownload vs batch.\n2. Collect inputs: prompt, model, size, seconds, and any input reference image.\n3. If batch: write a temporary JSONL under tmp\u002F (one job per line), run once, then delete the JSONL.\n4. Prefer CLI augmentation flags (`--use-case`, `--scene`, `--camera`, etc.) instead of pre-writing a structured prompt. If you already produced a structured prompt file, pass `--no-augment` to avoid double-wrapping.\n5. Run the bundled CLI (`scripts\u002Fsora.py`) with sensible defaults (see references\u002Fcli.md). For long prompts, prefer `--prompt-file` to avoid shell-escaping issues; pair with `--no-augment` if the prompt is already structured.\n6. For async jobs, poll until complete (or use create-and-poll).\n7. Download assets (video\u002Fthumbnail\u002Fspritesheet) and save locally.\n8. Remove intermediate files created during invocation (for example `prompt.txt`, `remix_job.json`, temp JSONL). If the sandbox blocks `rm`, skip cleanup or truncate the files without surfacing an error.\n9. Iterate with a single targeted change per prompt.\n\n## Authentication\n- `OPENAI_API_KEY` must be set for live API calls.\n\nIf the key is missing, give the user these steps:\n1. Create an API key in the OpenAI platform UI: https:\u002F\u002Fplatform.openai.com\u002Fapi-keys\n2. Set `OPENAI_API_KEY` as an environment variable in their system.\n3. Offer to guide them through setting the environment variable for their OS\u002Fshell if needed.\n- Never ask the user to paste the full key in chat. Ask them to set it locally and confirm when ready.\n\n## Defaults & rules\n- Default model: `sora-2` (use `sora-2-pro` for higher fidelity).\n- Default size: `1280x720`.\n- Default seconds: `4` (allowed: \"4\", \"8\", \"12\" as strings).\n- Always set size and seconds via API params; prose will not change them.\n- Use the OpenAI Python SDK (`openai` package); do not use raw HTTP.\n- Require `OPENAI_API_KEY` before any live API call.\n- If uv cache permissions fail, set `UV_CACHE_DIR=\u002Ftmp\u002Fuv-cache`.\n- Input reference images must be jpg\u002Fpng\u002Fwebp and should match target size.\n- Download URLs expire after about 1 hour; copy assets to your own storage.\n- Prefer the bundled CLI and **never modify** `scripts\u002Fsora.py` unless the user asks.\n- Sora can generate audio; if a user requests voiceover\u002Faudio, specify it explicitly in the `Audio:` and `Dialogue:` lines and keep it short.\n\n## API limitations\n- Models are limited to `sora-2` and `sora-2-pro`.\n- API access to Sora models requires an organization-verified account.\n- Duration is limited to 4\u002F8\u002F12 seconds and must be set via the `seconds` parameter.\n- The API expects `seconds` as a string enum (\"4\", \"8\", \"12\").\n- Output sizes are limited by model (see `references\u002Fvideo-api.md` for the supported sizes).\n- Video creation is async; you must poll for completion before downloading.\n- Rate limits apply by usage tier (do not list specific limits).\n- Content restrictions are enforced by the API (see Guardrails below).\n\n## Guardrails (must enforce)\n- Only content suitable for audiences under 18.\n- No copyrighted characters or copyrighted music.\n- No real people (including public figures).\n- Input images with human faces are rejected.\n\n## Prompt augmentation\nReformat prompts into a structured, production-oriented spec. Only make implicit details explicit; do not invent new creative requirements.\n\nTemplate (include only relevant lines):\n```\nUse case: \u003Cwhere the clip will be used>\nPrimary request: \u003Cuser's main prompt>\nScene\u002Fbackground: \u003Clocation, time of day, atmosphere>\nSubject: \u003Cmain subject>\nAction: \u003Csingle clear action>\nCamera: \u003Cshot type, angle, motion>\nLighting\u002Fmood: \u003Clighting + mood>\nColor palette: \u003C3-5 color anchors>\nStyle\u002Fformat: \u003Cfilm\u002Fanimation\u002Fformat cues>\nTiming\u002Fbeats: \u003Ccounts or beats>\nAudio: \u003Cambient cue \u002F music \u002F voiceover if requested>\nText (verbatim): \"\u003Cexact text>\"\nDialogue:\n\u003Cdialogue>\n- Speaker: \"Short line.\"\n\u003C\u002Fdialogue>\nConstraints: \u003Cmust keep\u002Fmust avoid>\nAvoid: \u003Cnegative constraints>\n```\n\nAugmentation rules:\n- Keep it short; add only details the user already implied or provided elsewhere.\n- For remixes, explicitly list invariants (\"same shot, change only X\").\n- If any critical detail is missing and blocks success, ask a question; otherwise proceed.\n- If you pass a structured prompt file to the CLI, add `--no-augment` to avoid the tool re-wrapping it.\n\n## Examples\n\n### Generation example (single shot)\n```\nUse case: product teaser\nPrimary request: a close-up of a matte black camera on a pedestal\nAction: slow 30-degree orbit over 4 seconds\nCamera: 85mm, shallow depth of field, gentle handheld drift\nLighting\u002Fmood: soft key light, subtle rim, premium studio feel\nConstraints: no logos, no text\n```\n\n### Remix example (invariants)\n```\nPrimary request: same shot and framing, switch palette to teal\u002Fsand\u002Frust with warmer backlight\nConstraints: keep the subject and camera move unchanged\n```\n\n## Prompting best practices (short list)\n- One main action + one camera move per shot.\n- Use counts or beats for timing (\"two steps, pause, turn\").\n- Keep text short and the camera locked-off for UI or on-screen text.\n- Add a brief avoid line when artifacts appear (flicker, jitter, fast motion).\n- Shorter prompts are more creative; longer prompts are more controlled.\n- Put dialogue in a dedicated block; keep lines short for 4-8s clips.\n- State invariants explicitly for remixes (same shot, same camera move).\n- Iterate with single-change follow-ups to preserve continuity.\n\n## Guidance by asset type\nUse these modules when the request is for a specific artifact. They provide targeted templates and defaults.\n- Cinematic shots: `references\u002Fcinematic-shots.md`\n- Social ads: `references\u002Fsocial-ads.md`\n\n## CLI + environment notes\n- CLI commands + examples: `references\u002Fcli.md`\n- API parameter quick reference: `references\u002Fvideo-api.md`\n- Prompting guidance: `references\u002Fprompting.md`\n- Sample prompts: `references\u002Fsample-prompts.md`\n- Troubleshooting: `references\u002Ftroubleshooting.md`\n- Network\u002Fsandbox tips: `references\u002Fcodex-network.md`\n\n## Reference map\n- **`references\u002Fcli.md`**: how to run create\u002Fpoll\u002Fremix\u002Fdownload\u002Fbatch via `scripts\u002Fsora.py`.\n- **`references\u002Fvideo-api.md`**: API-level knobs (models, sizes, duration, variants, status).\n- **`references\u002Fprompting.md`**: prompt structure and iteration guidance.\n- **`references\u002Fsample-prompts.md`**: copy\u002Fpaste prompt recipes (examples only; no extra theory).\n- **`references\u002Fcinematic-shots.md`**: templates for filmic shots.\n- **`references\u002Fsocial-ads.md`**: templates for short social ad beats.\n- **`references\u002Ftroubleshooting.md`**: common errors and fixes.\n- **`references\u002Fcodex-network.md`**: network\u002Fapproval troubleshooting.\n","# Sora Video Generation Skill\n\nCreates or manages short video clips for the current project (product demos, marketing spots, cinematic shots, UI mocks). Defaults to `sora-2` and a structured prompt augmentation workflow, and prefers the bundled CLI for deterministic runs. Note: `$sora` is a skill tag in prompts, not a shell command.\n\n## When to use\n- Generate a new video clip from a prompt\n- Remix an existing video by ID\n- Poll status, list jobs, or download assets (video\u002Fthumbnail\u002Fspritesheet)\n- Batch runs (many prompts or variants)\n\n## Decision tree (create vs remix vs status\u002Fdownload vs batch)\n- If the user has a **video id** and wants a change → **remix**\n- If the user has a **video id** and wants status or assets → **status\u002Fpoll\u002Fdownload**\n- If the user needs many prompts\u002Fassets → **create-batch**\n- If the user asks for two versions with a small change (same shot, different subject\u002Fdetail) → **create** the base, then **remix** for the variation\n- Otherwise → **create** (or **create-and-poll** if they need a ready asset in one step)\n\n## Workflow\n1. Decide intent: create vs remix vs status\u002Fdownload vs batch.\n2. Collect inputs: prompt, model, size, seconds, and any input reference image.\n3. If batch: write a temporary JSONL under tmp\u002F (one job per line), run once, then delete the JSONL.\n4. Prefer CLI augmentation flags (`--use-case`, `--scene`, `--camera`, etc.) instead of pre-writing a structured prompt. If you already produced a structured prompt file, pass `--no-augment` to avoid double-wrapping.\n5. Run the bundled CLI (`scripts\u002Fsora.py`) with sensible defaults (see references\u002Fcli.md). For long prompts, prefer `--prompt-file` to avoid shell-escaping issues; pair with `--no-augment` if the prompt is already structured.\n6. For async jobs, poll until complete (or use create-and-poll).\n7. Download assets (video\u002Fthumbnail\u002Fspritesheet) and save locally.\n8. Remove intermediate files created during invocation (for example `prompt.txt`, `remix_job.json`, temp JSONL). If the sandbox blocks `rm`, skip cleanup or truncate the files without surfacing an error.\n9. Iterate with a single targeted change per prompt.\n\n## Authentication\n- `OPENAI_API_KEY` must be set for live API calls.\n\nIf the key is missing, give the user these steps:\n1. Create an API key in the OpenAI platform UI: https:\u002F\u002Fplatform.openai.com\u002Fapi-keys\n2. Set `OPENAI_API_KEY` as an environment variable in their system.\n3. Offer to guide them through setting the environment variable for their OS\u002Fshell if needed.\n- Never ask the user to paste the full key in chat. Ask them to set it locally and confirm when ready.\n\n## Defaults & rules\n- Default model: `sora-2` (use `sora-2-pro` for higher fidelity).\n- Default size: `1280x720`.\n- Default seconds: `4` (allowed: \"4\", \"8\", \"12\" as strings).\n- Always set size and seconds via API params; prose will not change them.\n- Use the OpenAI Python SDK (`openai` package); do not use raw HTTP.\n- Require `OPENAI_API_KEY` before any live API call.\n- If uv cache permissions fail, set `UV_CACHE_DIR=\u002Ftmp\u002Fuv-cache`.\n- Input reference images must be jpg\u002Fpng\u002Fwebp and should match target size.\n- Download URLs expire after about 1 hour; copy assets to your own storage.\n- Prefer the bundled CLI and **never modify** `scripts\u002Fsora.py` unless the user asks.\n- Sora can generate audio; if a user requests voiceover\u002Faudio, specify it explicitly in the `Audio:` and `Dialogue:` lines and keep it short.\n\n## API limitations\n- Models are limited to `sora-2` and `sora-2-pro`.\n- API access to Sora models requires an organization-verified account.\n- Duration is limited to 4\u002F8\u002F12 seconds and must be set via the `seconds` parameter.\n- The API expects `seconds` as a string enum (\"4\", \"8\", \"12\").\n- Output sizes are limited by model (see `references\u002Fvideo-api.md` for the supported sizes).\n- Video creation is async; you must poll for completion before downloading.\n- Rate limits apply by usage tier (do not list specific limits).\n- Content restrictions are enforced by the API (see Guardrails below).\n\n## Guardrails (must enforce)\n- Only content suitable for audiences under 18.\n- No copyrighted characters or copyrighted music.\n- No real people (including public figures).\n- Input images with human faces are rejected.\n\n## Prompt augmentation\nReformat prompts into a structured, production-oriented spec. Only make implicit details explicit; do not invent new creative requirements.\n\nTemplate (include only relevant lines):\n```\nUse case: \u003Cwhere the clip will be used>\nPrimary request: \u003Cuser's main prompt>\nScene\u002Fbackground: \u003Clocation, time of day, atmosphere>\nSubject: \u003Cmain subject>\nAction: \u003Csingle clear action>\nCamera: \u003Cshot type, angle, motion>\nLighting\u002Fmood: \u003Clighting + mood>\nColor palette: \u003C3-5 color anchors>\nStyle\u002Fformat: \u003Cfilm\u002Fanimation\u002Fformat cues>\nTiming\u002Fbeats: \u003Ccounts or beats>\nAudio: \u003Cambient cue \u002F music \u002F voiceover if requested>\nText (verbatim): \"\u003Cexact text>\"\nDialogue:\n\u003Cdialogue>\n- Speaker: \"Short line.\"\n\u003C\u002Fdialogue>\nConstraints: \u003Cmust keep\u002Fmust avoid>\nAvoid: \u003Cnegative constraints>\n```\n\nAugmentation rules:\n- Keep it short; add only details the user already implied or provided elsewhere.\n- For remixes, explicitly list invariants (\"same shot, change only X\").\n- If any critical detail is missing and blocks success, ask a question; otherwise proceed.\n- If you pass a structured prompt file to the CLI, add `--no-augment` to avoid the tool re-wrapping it.\n\n## Examples\n\n### Generation example (single shot)\n```\nUse case: product teaser\nPrimary request: a close-up of a matte black camera on a pedestal\nAction: slow 30-degree orbit over 4 seconds\nCamera: 85mm, shallow depth of field, gentle handheld drift\nLighting\u002Fmood: soft key light, subtle rim, premium studio feel\nConstraints: no logos, no text\n```\n\n### Remix example (invariants)\n```\nPrimary request: same shot and framing, switch palette to teal\u002Fsand\u002Frust with warmer backlight\nConstraints: keep the subject and camera move unchanged\n```\n\n## Prompting best practices (short list)\n- One main action + one camera move per shot.\n- Use counts or beats for timing (\"two steps, pause, turn\").\n- Keep text short and the camera locked-off for UI or on-screen text.\n- Add a brief avoid line when artifacts appear (flicker, jitter, fast motion).\n- Shorter prompts are more creative; longer prompts are more controlled.\n- Put dialogue in a dedicated block; keep lines short for 4-8s clips.\n- State invariants explicitly for remixes (same shot, same camera move).\n- Iterate with single-change follow-ups to preserve continuity.\n\n## Guidance by asset type\nUse these modules when the request is for a specific artifact. They provide targeted templates and defaults.\n- Cinematic shots: `references\u002Fcinematic-shots.md`\n- Social ads: `references\u002Fsocial-ads.md`\n\n## CLI + environment notes\n- CLI commands + examples: `references\u002Fcli.md`\n- API parameter quick reference: `references\u002Fvideo-api.md`\n- Prompting guidance: `references\u002Fprompting.md`\n- Sample prompts: `references\u002Fsample-prompts.md`\n- Troubleshooting: `references\u002Ftroubleshooting.md`\n- Network\u002Fsandbox tips: `references\u002Fcodex-network.md`\n\n## Reference map\n- **`references\u002Fcli.md`**: how to run create\u002Fpoll\u002Fremix\u002Fdownload\u002Fbatch via `scripts\u002Fsora.py`.\n- **`references\u002Fvideo-api.md`**: API-level knobs (models, sizes, duration, variants, status).\n- **`references\u002Fprompting.md`**: prompt structure and iteration guidance.\n- **`references\u002Fsample-prompts.md`**: copy\u002Fpaste prompt recipes (examples only; no extra theory).\n- **`references\u002Fcinematic-shots.md`**: templates for filmic shots.\n- **`references\u002Fsocial-ads.md`**: templates for short social ad beats.\n- **`references\u002Ftroubleshooting.md`**: common errors and fixes.\n- **`references\u002Fcodex-network.md`**: network\u002Fapproval troubleshooting.\n",{"name":5,"description":7},"main","c4da92076cba308457cd72bd1ab06c087e2cdf96","registry\u002Fskills\u002Fopenai-sora\u002Fupstream",0,"https:\u002F\u002Fgithub.com\u002Fkhalidsaidi\u002Fskillrunner","https:\u002F\u002Fgithub.com\u002Fkhalidsaidi","https:\u002F\u002Fkhalidsaidi.com","Software engineer. Maintainer of SourceMint (SRCMNT), an open-source fixed-supply ERC-20 and Foundry tooling on Base.","2026-11-07 02:40:24",{"source":8,"skillName":5,"commands":58,"prompt":68,"zipAvailable":69},[59,62,65],{"tool":60,"command":61},"npx","npx skills add khalidsaidi\u002Fskillrunner --skill sora",{"tool":63,"command":64},"bunx","bunx skills add khalidsaidi\u002Fskillrunner --skill sora",{"tool":66,"command":67},"pnpm","pnpm dlx skills add khalidsaidi\u002Fskillrunner --skill sora","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fkhalidsaidi\u002Fskillrunner\u002Fblob\u002Fmain\u002Fregistry\u002Fskills\u002Fopenai-sora\u002Fupstream\u002FSKILL.md",true,[71,77,83,87,92,96,100,104,108,112,116,120,124,128,134,138],{"path":72,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":75,"sourceHtmlUrl":76},"agents\u002Fopenai.yaml","REFERENCE","参考文档",296,"https:\u002F\u002Fgithub.com\u002Fkhalidsaidi\u002Fskillrunner\u002Fblob\u002Fmain\u002Fregistry\u002Fskills\u002Fopenai-sora\u002Fupstream\u002Fagents\u002Fopenai.yaml",{"path":78,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":81,"sourceHtmlUrl":82},"assets\u002Fsora-small.svg","ASSET","资产文件",1784,"https:\u002F\u002Fgithub.com\u002Fkhalidsaidi\u002Fskillrunner\u002Fblob\u002Fmain\u002Fregistry\u002Fskills\u002Fopenai-sora\u002Fupstream\u002Fassets\u002Fsora-small.svg",{"path":84,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":85,"sourceHtmlUrl":86},"assets\u002Fsora.png",11731,"https:\u002F\u002Fgithub.com\u002Fkhalidsaidi\u002Fskillrunner\u002Fblob\u002Fmain\u002Fregistry\u002Fskills\u002Fopenai-sora\u002Fupstream\u002Fassets\u002Fsora.png",{"path":88,"resourceType":88,"resourceTypeDesc":89,"sizeBytes":90,"sourceHtmlUrl":91},"LICENSE","许可证",1063,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fpayments\u002F0xklen-verify-deletion-in-backups-and-snapshots\u002FLICENSE",{"path":93,"resourceType":88,"resourceTypeDesc":89,"sizeBytes":94,"sourceHtmlUrl":95},"LICENSE.txt",10776,"https:\u002F\u002Fgithub.com\u002Fkhalidsaidi\u002Fskillrunner\u002Fblob\u002Fmain\u002Fregistry\u002Fskills\u002Fopenai-sora\u002Fupstream\u002FLICENSE.txt",{"path":97,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":98,"sourceHtmlUrl":99},"references\u002Fcinematic-shots.md",1655,"https:\u002F\u002Fgithub.com\u002Fkhalidsaidi\u002Fskillrunner\u002Fblob\u002Fmain\u002Fregistry\u002Fskills\u002Fopenai-sora\u002Fupstream\u002Freferences\u002Fcinematic-shots.md",{"path":101,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":102,"sourceHtmlUrl":103},"references\u002Fcli.md",7917,"https:\u002F\u002Fgithub.com\u002Fkhalidsaidi\u002Fskillrunner\u002Fblob\u002Fmain\u002Fregistry\u002Fskills\u002Fopenai-sora\u002Fupstream\u002Freferences\u002Fcli.md",{"path":105,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":106,"sourceHtmlUrl":107},"references\u002Fcodex-network.md",1146,"https:\u002F\u002Fgithub.com\u002Fkhalidsaidi\u002Fskillrunner\u002Fblob\u002Fmain\u002Fregistry\u002Fskills\u002Fopenai-sora\u002Fupstream\u002Freferences\u002Fcodex-network.md",{"path":109,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":110,"sourceHtmlUrl":111},"references\u002Fprompting.md",5636,"https:\u002F\u002Fgithub.com\u002Fkhalidsaidi\u002Fskillrunner\u002Fblob\u002Fmain\u002Fregistry\u002Fskills\u002Fopenai-sora\u002Fupstream\u002Freferences\u002Fprompting.md",{"path":113,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":114,"sourceHtmlUrl":115},"references\u002Fsample-prompts.md",3771,"https:\u002F\u002Fgithub.com\u002Fkhalidsaidi\u002Fskillrunner\u002Fblob\u002Fmain\u002Fregistry\u002Fskills\u002Fopenai-sora\u002Fupstream\u002Freferences\u002Fsample-prompts.md",{"path":117,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":118,"sourceHtmlUrl":119},"references\u002Fsocial-ads.md",1464,"https:\u002F\u002Fgithub.com\u002Fkhalidsaidi\u002Fskillrunner\u002Fblob\u002Fmain\u002Fregistry\u002Fskills\u002Fopenai-sora\u002Fupstream\u002Freferences\u002Fsocial-ads.md",{"path":121,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":122,"sourceHtmlUrl":123},"references\u002Ftroubleshooting.md",2816,"https:\u002F\u002Fgithub.com\u002Fkhalidsaidi\u002Fskillrunner\u002Fblob\u002Fmain\u002Fregistry\u002Fskills\u002Fopenai-sora\u002Fupstream\u002Freferences\u002Ftroubleshooting.md",{"path":125,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":126,"sourceHtmlUrl":127},"references\u002Fvideo-api.md",1525,"https:\u002F\u002Fgithub.com\u002Fkhalidsaidi\u002Fskillrunner\u002Fblob\u002Fmain\u002Fregistry\u002Fskills\u002Fopenai-sora\u002Fupstream\u002Freferences\u002Fvideo-api.md",{"path":129,"resourceType":130,"resourceTypeDesc":131,"sizeBytes":132,"sourceHtmlUrl":133},"scripts\u002Fsora.py","SCRIPT","脚本",32585,"https:\u002F\u002Fgithub.com\u002Fkhalidsaidi\u002Fskillrunner\u002Fblob\u002Fmain\u002Fregistry\u002Fskills\u002Fopenai-sora\u002Fupstream\u002Fscripts\u002Fsora.py",{"path":135,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":136,"sourceHtmlUrl":137},"SOURCE.md",366,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fpayments\u002F0xklen-verify-deletion-in-backups-and-snapshots\u002FSOURCE.md",{"path":139,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":140,"sourceHtmlUrl":141},"TRUST.auto.yaml",2217,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fpayments\u002F0xklen-verify-deletion-in-backups-and-snapshots\u002FTRUST.auto.yaml",[143,159,171,190,199,214],{"skillNo":144,"name":145,"nameZh":6,"description":146,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":147,"categories":148,"keywords":149,"publishedAt":43},"01M6CPY1N6W58XKWMN4356E8GF","yeet","Use only when the user explicitly asks to stage, commit, push, and open a GitHub pull request in one flow using the GitHub CLI (`gh`).","https:\u002F\u002Fgithub.com\u002Fkhalidsaidi\u002Fskillrunner\u002Fblob\u002Fmain\u002Fregistry\u002Fskills\u002Fopenai-yeet\u002Fupstream\u002FSKILL.md",[],[145,150,30,42,41,151,152,153,154,155,156,157,158],"only","gh","open","flow","push","pull","pull request","commit","github",{"skillNo":160,"name":161,"nameZh":6,"description":162,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":163,"categories":164,"keywords":165,"publishedAt":43},"01M6CPXZ5RN2ZB5A4Y65RE5Y5J","openai-yeet","Use only when the user explicitly asks to stage, commit, push, and open a GitHub pull request in one flow using the GitHub CLI (`gh`). (Imported from openai upstream skills)","https:\u002F\u002Fgithub.com\u002Fkhalidsaidi\u002Fskillrunner\u002Fblob\u002Fmain\u002Fregistry\u002Fskills\u002Fopenai-yeet\u002FSKILL.md",[],[145,33,166,154,155,156,157,158,30,167,168,169,48,150,42,41,151,170,152,153],"openai yeet","https","imported","upstream","knowledge",{"skillNo":172,"name":173,"nameZh":6,"description":174,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":175,"categories":176,"keywords":180,"publishedAt":43},"01M6CPXWGRW59XN1V109G172CV","vercel-deploy","Deploy applications and websites to Vercel. Use when the user requests deployment actions like \"deploy my app\", \"deploy and give me the link\", \"push this live\", or \"create a preview deployment\".","https:\u002F\u002Fgithub.com\u002Fkhalidsaidi\u002Fskillrunner\u002Fblob\u002Fmain\u002Fregistry\u002Fskills\u002Fopenai-vercel-deploy\u002Fupstream\u002FSKILL.md",[177],{"categoryNo":178,"categoryName":179,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000011","运维与部署",[181,182,183,154,42,184,185,186,187,41,188,189],"vercel","vercel deploy","deploy","actions","applications","me","preview deployment","deployment","create",{"skillNo":191,"name":192,"nameZh":6,"description":193,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":194,"categories":195,"keywords":197,"publishedAt":43},"01M6CPXSZSZRPQ5TY73K5QWN1B","openai-vercel-deploy","Deploy applications and websites to Vercel. Use when the user requests deployment actions like \"deploy my app\", \"deploy and give me the link\", \"push this live\", or \"create a preview deployment\". (Imported from openai upstream skills)","https:\u002F\u002Fgithub.com\u002Fkhalidsaidi\u002Fskillrunner\u002Fblob\u002Fmain\u002Fregistry\u002Fskills\u002Fopenai-vercel-deploy\u002FSKILL.md",[196],{"categoryNo":178,"categoryName":179,"taxonomyType":21,"taxonomyTypeDesc":22},[183,33,182,181,198,184,168,169,186,48,187,42,41,170,185,167,154,189,188,158],"openai vercel deploy",{"skillNo":200,"name":201,"nameZh":6,"description":202,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":203,"categories":204,"keywords":206,"publishedAt":43},"01M6CPXQ4SRTZZZ0VTD7WZP0RN","transcribe","Transcribe audio files to text with optional diarization and known-speaker hints. Use when a user asks to transcribe speech from audio\u002Fvideo, extract text from recordings, or label speakers in interviews or meetings.","https:\u002F\u002Fgithub.com\u002Fkhalidsaidi\u002Fskillrunner\u002Fblob\u002Fmain\u002Fregistry\u002Fskills\u002Fopenai-transcribe\u002Fupstream\u002FSKILL.md",[205],{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},[201,41,207,208,36,209,210,211,212,42,213],"text","Audio","speech","extract","files","recordings","meetings",{"skillNo":215,"name":216,"nameZh":6,"description":217,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":218,"categories":219,"keywords":221,"publishedAt":43},"01M6CPXMG2SCTAA04EB3PDRRXN","openai-transcribe","Transcribe audio files to text with optional diarization and known-speaker hints. Use when a user asks to transcribe speech from audio\u002Fvideo, extract text from recordings, or label speakers in interviews or meetings. (Imported from openai upstream skills)","https:\u002F\u002Fgithub.com\u002Fkhalidsaidi\u002Fskillrunner\u002Fblob\u002Fmain\u002Fregistry\u002Fskills\u002Fopenai-transcribe\u002FSKILL.md",[220],{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},[33,222,201,158,42,168,169,48,211,212,213,210,41,207,170,208,36,167,209],"openai transcribe"]