[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-openai-google-drive":3,"mdc--hb5o1r-key":35,"related-repo-openai-google-drive":531,"related-org-openai-google-drive":655},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":24,"repoUrl":25,"updatedAt":26,"license":27,"forks":28,"topics":29,"repo":30,"sourceUrl":33,"mdContent":34},"google-drive","manage files and folders in Google Drive","Use connected Google Drive as the single entrypoint for Drive, Docs, Sheets, and Slides work. Use when the user wants to find, fetch, organize, share, export, copy, or delete Drive files, or summarize and edit Google Docs, Google Sheets, and Google Slides through one unified Google Drive plugin.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},"openai","OpenAI","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fopenai.png",[12,16,18,21],{"name":13,"slug":14,"type":15},"Productivity","productivity","tag",{"name":17,"slug":4,"type":15},"Google Drive",{"name":19,"slug":20,"type":15},"Knowledge Management","knowledge-management",{"name":22,"slug":23,"type":15},"Documents","documents",3992,"https:\u002F\u002Fgithub.com\u002Fopenai\u002Fplugins","2026-04-06T18:42:15.44604",null,465,[],{"repoUrl":25,"stars":24,"forks":28,"topics":31,"description":32},[],"OpenAI Plugins","https:\u002F\u002Fgithub.com\u002Fopenai\u002Fplugins\u002Ftree\u002FHEAD\u002Fplugins\u002Fgoogle-drive\u002Fskills\u002Fgoogle-drive","---\nname: google-drive\ndescription: Use connected Google Drive as the single entrypoint for Drive, Docs, Sheets, and Slides work. Use when the user wants to find, fetch, organize, share, export, copy, or delete Drive files, or summarize and edit Google Docs, Google Sheets, and Google Slides through one unified Google Drive plugin.\n---\n\n# Google Drive\n\nUse this as the top-level router for Google file work inside the unified Google Drive plugin. Do not route the user toward separate Google Docs, Google Sheets, or Google Slides plugins.\n\nStart with Google Drive for file discovery and file lifecycle tasks, then route to narrower sibling skills only when the task becomes specific to Docs, Sheets, or Slides.\n\n## Workflow\n\n1. Ground the target file first.\n- If the user did not provide an exact file URL or ID, use Google Drive search, recent files, folder listing, or metadata reads to identify the right file.\n- If the request starts as \"find X and then update it,\" do the Drive discovery step first instead of guessing the target.\n\n2. Stay in the base Google Drive workflow for Drive-native tasks.\n- Use the base workflow for search, fetch, recent files, folders, sharing, copying, deleting, exporting, revision history, file moves, and other file-lifecycle work that is not primarily about editing Docs, Sheets, or Slides content.\n- For version-history requests, including \"previous version,\" \"revision history,\" \"what changed since the last version,\" or \"compare to the prior revision,\" ground the file, fetch the current content, use `list_file_revisions`, fetch the immediately previous revision or the user-named revision with `fetch_file_revision`, then compare the fetched revision against the current content. Do not say previous versions are unsupported until you have checked whether revision tools are available for the target file.\n- For file move requests, ground the source file and target folder, read the file metadata including its current parents, then use `update_file` with `addParents` for the target folder and `removeParents` for only the verified source parent or parents that should no longer contain it. Preserve unrelated parents, and verify the move by reading metadata or listing the target folder before the final response.\n- Before any export or download, read or reuse Drive metadata so the MIME type is known. Use `export_file` only for native Google Docs, Sheets, and Slides files. For PDFs, images, ZIPs, Office files, recordings, and other non-native Drive files, use `fetch(download_raw_file=True)` when raw bytes are needed or normal `fetch` for best-effort text extraction. Do not retry `export_file` after metadata shows a non-native MIME type.\n\n3. Route to the narrowest sibling skill that matches the file type and job.\n- Drive, Docs, Sheets, or Slides comment creation, comment replies, comment resolution, or review-by-comments: use [google-drive-comments](..\u002Fgoogle-drive-comments\u002FSKILL.md).\n- Google Docs net-new creation, content summary, revision planning, prose rewriting, or section edits: use [google-docs](..\u002Fgoogle-docs\u002FSKILL.md).\n- Google Sheets creation, local spreadsheet import, range inspection, table cleanup, data restructuring, formula design or repair, chart creation or repair, or batch updates: use [google-sheets](..\u002Fgoogle-sheets\u002FSKILL.md).\n- Google Slides deck summary, content edits, new deck creation, local presentation import, visual cleanup, structural repair, or template migration: use [google-slides](..\u002Fgoogle-slides\u002FSKILL.md).\n\n## Routing Rules\n\n- If the request is ambiguous between Drive and a file-type surface, use the artifact itself as the tie-breaker:\n  - Doc -> Docs skill\n  - Sheet -> Sheets skill\n  - Deck -> Slides skill\n- If the user wants to find a file and then edit it, do both in one flow: Drive for discovery, then the file-type skill for the edit.\n- If the user wants a Google Workspace outcome but has not named a file type yet, start with Drive discovery instead of asking them to choose among separate Google plugins.\n- If the user asks to create a new Google Doc, route to the Docs skill; it owns the mandatory local `.docx` -> native Google Docs import workflow and the explicit-user-override boundary. Do not create a blank Google Doc directly from this router.\n- If the user asks to import a local `.docx` into Google Docs, route to the Docs skill and use its native conversion workflow. Preserve the source file type only when the user explicitly asks for that.\n- If the user asks to create a new Google Sheet, route to the Sheets skill. The Sheets skill should prefer the `[@spreadsheets](plugin:\u002F\u002Fspreadsheets@openai-primary-runtime)` plugin or `$Excel` skill to create a local `.xlsx`, then import it as native Google Sheets.\n- If the user asks to import a local `.xlsx`, `.xls`, `.ods`, `.csv`, or `.tsv` into Google Sheets, route to the Sheets skill and use native Google Sheets conversion by default. Preserve the source file type only when the user explicitly asks for that.\n- If the user asks to create a new Google Slides deck, route to the Slides skill; it owns the mandatory local `.pptx` -> native Google Slides import workflow and the explicit-user-override boundary. Do not create a blank Google Slides deck directly from this router.\n- If the user asks to import a local `.ppt`, `.pptx`, or `.odp` into Google Slides, route to the Slides skill and use its native conversion workflow. Preserve the source file type only when the user explicitly asks for that.\n- If the user asks to export or download an existing Drive file, choose the action from metadata: native Google Docs, Sheets, and Slides files use `export_file`; non-native PDFs, images, ZIPs, CSVs, Office files, audio, and video use `fetch`, with `download_raw_file=True` for raw-file workflows.\n\n## Write Safety\n\n- Preserve the user's existing file organization, sharing state, and target artifact unless the request clearly asks to change them.\n- When a task can be satisfied by a file-level Drive operation alone, do not load heavier Docs, Sheets, or Slides skills.\n- For write-heavy Sheets or Slides work, read the specialized skill before the first large update so request shapes stay grounded.\n- For any file import or explicit direct create that returns a user-facing Google Workspace link, wait for the write action to complete and verify the created file with connector readback or Drive metadata readback before returning the URL. Use only a URL or id observed from the completed connector result or readback; never synthesize or predict the URL.\n\n## Related Skills\n\n- Comments: [google-drive-comments](..\u002Fgoogle-drive-comments\u002FSKILL.md)\n- Docs: [google-docs](..\u002Fgoogle-docs\u002FSKILL.md)\n- Sheets: [google-sheets](..\u002Fgoogle-sheets\u002FSKILL.md)\n- Slides: [google-slides](..\u002Fgoogle-slides\u002FSKILL.md)\n",{"data":36,"body":37},{"name":4,"description":6},{"type":38,"children":39},"root",[40,47,53,58,65,75,89,98,193,202,255,261,457,463,486,492],{"type":41,"tag":42,"props":43,"children":44},"element","h1",{"id":4},[45],{"type":46,"value":17},"text",{"type":41,"tag":48,"props":49,"children":50},"p",{},[51],{"type":46,"value":52},"Use this as the top-level router for Google file work inside the unified Google Drive plugin. Do not route the user toward separate Google Docs, Google Sheets, or Google Slides plugins.",{"type":41,"tag":48,"props":54,"children":55},{},[56],{"type":46,"value":57},"Start with Google Drive for file discovery and file lifecycle tasks, then route to narrower sibling skills only when the task becomes specific to Docs, Sheets, or Slides.",{"type":41,"tag":59,"props":60,"children":62},"h2",{"id":61},"workflow",[63],{"type":46,"value":64},"Workflow",{"type":41,"tag":66,"props":67,"children":68},"ol",{},[69],{"type":41,"tag":70,"props":71,"children":72},"li",{},[73],{"type":46,"value":74},"Ground the target file first.",{"type":41,"tag":76,"props":77,"children":78},"ul",{},[79,84],{"type":41,"tag":70,"props":80,"children":81},{},[82],{"type":46,"value":83},"If the user did not provide an exact file URL or ID, use Google Drive search, recent files, folder listing, or metadata reads to identify the right file.",{"type":41,"tag":70,"props":85,"children":86},{},[87],{"type":46,"value":88},"If the request starts as \"find X and then update it,\" do the Drive discovery step first instead of guessing the target.",{"type":41,"tag":66,"props":90,"children":92},{"start":91},2,[93],{"type":41,"tag":70,"props":94,"children":95},{},[96],{"type":46,"value":97},"Stay in the base Google Drive workflow for Drive-native tasks.",{"type":41,"tag":76,"props":99,"children":100},{},[101,106,128,157],{"type":41,"tag":70,"props":102,"children":103},{},[104],{"type":46,"value":105},"Use the base workflow for search, fetch, recent files, folders, sharing, copying, deleting, exporting, revision history, file moves, and other file-lifecycle work that is not primarily about editing Docs, Sheets, or Slides content.",{"type":41,"tag":70,"props":107,"children":108},{},[109,111,118,120,126],{"type":46,"value":110},"For version-history requests, including \"previous version,\" \"revision history,\" \"what changed since the last version,\" or \"compare to the prior revision,\" ground the file, fetch the current content, use ",{"type":41,"tag":112,"props":113,"children":115},"code",{"className":114},[],[116],{"type":46,"value":117},"list_file_revisions",{"type":46,"value":119},", fetch the immediately previous revision or the user-named revision with ",{"type":41,"tag":112,"props":121,"children":123},{"className":122},[],[124],{"type":46,"value":125},"fetch_file_revision",{"type":46,"value":127},", then compare the fetched revision against the current content. Do not say previous versions are unsupported until you have checked whether revision tools are available for the target file.",{"type":41,"tag":70,"props":129,"children":130},{},[131,133,139,141,147,149,155],{"type":46,"value":132},"For file move requests, ground the source file and target folder, read the file metadata including its current parents, then use ",{"type":41,"tag":112,"props":134,"children":136},{"className":135},[],[137],{"type":46,"value":138},"update_file",{"type":46,"value":140}," with ",{"type":41,"tag":112,"props":142,"children":144},{"className":143},[],[145],{"type":46,"value":146},"addParents",{"type":46,"value":148}," for the target folder and ",{"type":41,"tag":112,"props":150,"children":152},{"className":151},[],[153],{"type":46,"value":154},"removeParents",{"type":46,"value":156}," for only the verified source parent or parents that should no longer contain it. Preserve unrelated parents, and verify the move by reading metadata or listing the target folder before the final response.",{"type":41,"tag":70,"props":158,"children":159},{},[160,162,168,170,176,178,184,186,191],{"type":46,"value":161},"Before any export or download, read or reuse Drive metadata so the MIME type is known. Use ",{"type":41,"tag":112,"props":163,"children":165},{"className":164},[],[166],{"type":46,"value":167},"export_file",{"type":46,"value":169}," only for native Google Docs, Sheets, and Slides files. For PDFs, images, ZIPs, Office files, recordings, and other non-native Drive files, use ",{"type":41,"tag":112,"props":171,"children":173},{"className":172},[],[174],{"type":46,"value":175},"fetch(download_raw_file=True)",{"type":46,"value":177}," when raw bytes are needed or normal ",{"type":41,"tag":112,"props":179,"children":181},{"className":180},[],[182],{"type":46,"value":183},"fetch",{"type":46,"value":185}," for best-effort text extraction. Do not retry ",{"type":41,"tag":112,"props":187,"children":189},{"className":188},[],[190],{"type":46,"value":167},{"type":46,"value":192}," after metadata shows a non-native MIME type.",{"type":41,"tag":66,"props":194,"children":196},{"start":195},3,[197],{"type":41,"tag":70,"props":198,"children":199},{},[200],{"type":46,"value":201},"Route to the narrowest sibling skill that matches the file type and job.",{"type":41,"tag":76,"props":203,"children":204},{},[205,219,231,243],{"type":41,"tag":70,"props":206,"children":207},{},[208,210,217],{"type":46,"value":209},"Drive, Docs, Sheets, or Slides comment creation, comment replies, comment resolution, or review-by-comments: use ",{"type":41,"tag":211,"props":212,"children":214},"a",{"href":213},"..\u002Fgoogle-drive-comments\u002FSKILL.md",[215],{"type":46,"value":216},"google-drive-comments",{"type":46,"value":218},".",{"type":41,"tag":70,"props":220,"children":221},{},[222,224,230],{"type":46,"value":223},"Google Docs net-new creation, content summary, revision planning, prose rewriting, or section edits: use ",{"type":41,"tag":211,"props":225,"children":227},{"href":226},"..\u002Fgoogle-docs\u002FSKILL.md",[228],{"type":46,"value":229},"google-docs",{"type":46,"value":218},{"type":41,"tag":70,"props":232,"children":233},{},[234,236,242],{"type":46,"value":235},"Google Sheets creation, local spreadsheet import, range inspection, table cleanup, data restructuring, formula design or repair, chart creation or repair, or batch updates: use ",{"type":41,"tag":211,"props":237,"children":239},{"href":238},"..\u002Fgoogle-sheets\u002FSKILL.md",[240],{"type":46,"value":241},"google-sheets",{"type":46,"value":218},{"type":41,"tag":70,"props":244,"children":245},{},[246,248,254],{"type":46,"value":247},"Google Slides deck summary, content edits, new deck creation, local presentation import, visual cleanup, structural repair, or template migration: use ",{"type":41,"tag":211,"props":249,"children":251},{"href":250},"..\u002Fgoogle-slides\u002FSKILL.md",[252],{"type":46,"value":253},"google-slides",{"type":46,"value":218},{"type":41,"tag":59,"props":256,"children":258},{"id":257},"routing-rules",[259],{"type":46,"value":260},"Routing Rules",{"type":41,"tag":76,"props":262,"children":263},{},[264,287,292,297,310,322,351,392,405,430],{"type":41,"tag":70,"props":265,"children":266},{},[267,269],{"type":46,"value":268},"If the request is ambiguous between Drive and a file-type surface, use the artifact itself as the tie-breaker:\n",{"type":41,"tag":76,"props":270,"children":271},{},[272,277,282],{"type":41,"tag":70,"props":273,"children":274},{},[275],{"type":46,"value":276},"Doc -> Docs skill",{"type":41,"tag":70,"props":278,"children":279},{},[280],{"type":46,"value":281},"Sheet -> Sheets skill",{"type":41,"tag":70,"props":283,"children":284},{},[285],{"type":46,"value":286},"Deck -> Slides skill",{"type":41,"tag":70,"props":288,"children":289},{},[290],{"type":46,"value":291},"If the user wants to find a file and then edit it, do both in one flow: Drive for discovery, then the file-type skill for the edit.",{"type":41,"tag":70,"props":293,"children":294},{},[295],{"type":46,"value":296},"If the user wants a Google Workspace outcome but has not named a file type yet, start with Drive discovery instead of asking them to choose among separate Google plugins.",{"type":41,"tag":70,"props":298,"children":299},{},[300,302,308],{"type":46,"value":301},"If the user asks to create a new Google Doc, route to the Docs skill; it owns the mandatory local ",{"type":41,"tag":112,"props":303,"children":305},{"className":304},[],[306],{"type":46,"value":307},".docx",{"type":46,"value":309}," -> native Google Docs import workflow and the explicit-user-override boundary. Do not create a blank Google Doc directly from this router.",{"type":41,"tag":70,"props":311,"children":312},{},[313,315,320],{"type":46,"value":314},"If the user asks to import a local ",{"type":41,"tag":112,"props":316,"children":318},{"className":317},[],[319],{"type":46,"value":307},{"type":46,"value":321}," into Google Docs, route to the Docs skill and use its native conversion workflow. Preserve the source file type only when the user explicitly asks for that.",{"type":41,"tag":70,"props":323,"children":324},{},[325,327,333,335,341,343,349],{"type":46,"value":326},"If the user asks to create a new Google Sheet, route to the Sheets skill. The Sheets skill should prefer the ",{"type":41,"tag":112,"props":328,"children":330},{"className":329},[],[331],{"type":46,"value":332},"[@spreadsheets](plugin:\u002F\u002Fspreadsheets@openai-primary-runtime)",{"type":46,"value":334}," plugin or ",{"type":41,"tag":112,"props":336,"children":338},{"className":337},[],[339],{"type":46,"value":340},"$Excel",{"type":46,"value":342}," skill to create a local ",{"type":41,"tag":112,"props":344,"children":346},{"className":345},[],[347],{"type":46,"value":348},".xlsx",{"type":46,"value":350},", then import it as native Google Sheets.",{"type":41,"tag":70,"props":352,"children":353},{},[354,355,360,362,368,369,375,376,382,384,390],{"type":46,"value":314},{"type":41,"tag":112,"props":356,"children":358},{"className":357},[],[359],{"type":46,"value":348},{"type":46,"value":361},", ",{"type":41,"tag":112,"props":363,"children":365},{"className":364},[],[366],{"type":46,"value":367},".xls",{"type":46,"value":361},{"type":41,"tag":112,"props":370,"children":372},{"className":371},[],[373],{"type":46,"value":374},".ods",{"type":46,"value":361},{"type":41,"tag":112,"props":377,"children":379},{"className":378},[],[380],{"type":46,"value":381},".csv",{"type":46,"value":383},", or ",{"type":41,"tag":112,"props":385,"children":387},{"className":386},[],[388],{"type":46,"value":389},".tsv",{"type":46,"value":391}," into Google Sheets, route to the Sheets skill and use native Google Sheets conversion by default. Preserve the source file type only when the user explicitly asks for that.",{"type":41,"tag":70,"props":393,"children":394},{},[395,397,403],{"type":46,"value":396},"If the user asks to create a new Google Slides deck, route to the Slides skill; it owns the mandatory local ",{"type":41,"tag":112,"props":398,"children":400},{"className":399},[],[401],{"type":46,"value":402},".pptx",{"type":46,"value":404}," -> native Google Slides import workflow and the explicit-user-override boundary. Do not create a blank Google Slides deck directly from this router.",{"type":41,"tag":70,"props":406,"children":407},{},[408,409,415,416,421,422,428],{"type":46,"value":314},{"type":41,"tag":112,"props":410,"children":412},{"className":411},[],[413],{"type":46,"value":414},".ppt",{"type":46,"value":361},{"type":41,"tag":112,"props":417,"children":419},{"className":418},[],[420],{"type":46,"value":402},{"type":46,"value":383},{"type":41,"tag":112,"props":423,"children":425},{"className":424},[],[426],{"type":46,"value":427},".odp",{"type":46,"value":429}," into Google Slides, route to the Slides skill and use its native conversion workflow. Preserve the source file type only when the user explicitly asks for that.",{"type":41,"tag":70,"props":431,"children":432},{},[433,435,440,442,447,449,455],{"type":46,"value":434},"If the user asks to export or download an existing Drive file, choose the action from metadata: native Google Docs, Sheets, and Slides files use ",{"type":41,"tag":112,"props":436,"children":438},{"className":437},[],[439],{"type":46,"value":167},{"type":46,"value":441},"; non-native PDFs, images, ZIPs, CSVs, Office files, audio, and video use ",{"type":41,"tag":112,"props":443,"children":445},{"className":444},[],[446],{"type":46,"value":183},{"type":46,"value":448},", with ",{"type":41,"tag":112,"props":450,"children":452},{"className":451},[],[453],{"type":46,"value":454},"download_raw_file=True",{"type":46,"value":456}," for raw-file workflows.",{"type":41,"tag":59,"props":458,"children":460},{"id":459},"write-safety",[461],{"type":46,"value":462},"Write Safety",{"type":41,"tag":76,"props":464,"children":465},{},[466,471,476,481],{"type":41,"tag":70,"props":467,"children":468},{},[469],{"type":46,"value":470},"Preserve the user's existing file organization, sharing state, and target artifact unless the request clearly asks to change them.",{"type":41,"tag":70,"props":472,"children":473},{},[474],{"type":46,"value":475},"When a task can be satisfied by a file-level Drive operation alone, do not load heavier Docs, Sheets, or Slides skills.",{"type":41,"tag":70,"props":477,"children":478},{},[479],{"type":46,"value":480},"For write-heavy Sheets or Slides work, read the specialized skill before the first large update so request shapes stay grounded.",{"type":41,"tag":70,"props":482,"children":483},{},[484],{"type":46,"value":485},"For any file import or explicit direct create that returns a user-facing Google Workspace link, wait for the write action to complete and verify the created file with connector readback or Drive metadata readback before returning the URL. Use only a URL or id observed from the completed connector result or readback; never synthesize or predict the URL.",{"type":41,"tag":59,"props":487,"children":489},{"id":488},"related-skills",[490],{"type":46,"value":491},"Related Skills",{"type":41,"tag":76,"props":493,"children":494},{},[495,504,513,522],{"type":41,"tag":70,"props":496,"children":497},{},[498,500],{"type":46,"value":499},"Comments: ",{"type":41,"tag":211,"props":501,"children":502},{"href":213},[503],{"type":46,"value":216},{"type":41,"tag":70,"props":505,"children":506},{},[507,509],{"type":46,"value":508},"Docs: ",{"type":41,"tag":211,"props":510,"children":511},{"href":226},[512],{"type":46,"value":229},{"type":41,"tag":70,"props":514,"children":515},{},[516,518],{"type":46,"value":517},"Sheets: ",{"type":41,"tag":211,"props":519,"children":520},{"href":238},[521],{"type":46,"value":241},{"type":41,"tag":70,"props":523,"children":524},{},[525,527],{"type":46,"value":526},"Slides: ",{"type":41,"tag":211,"props":528,"children":529},{"href":250},[530],{"type":46,"value":253},{"items":532,"total":654},[533,552,568,580,600,622,642],{"slug":534,"name":534,"fn":535,"description":536,"org":537,"tags":538,"stars":24,"repoUrl":25,"updatedAt":551},"accessibility-and-inclusive-visualization","make data visualizations accessible","Make data visualizations accessible and inclusive. Use when the user needs chart or diagram accessibility guidance, text alternatives for complex visuals, color and contrast review, keyboard support, reduced-motion behavior for animation or parallax, or an accessibility QA workflow for exported figures, UML-like diagrams, and dashboards.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[539,542,545,548],{"name":540,"slug":541,"type":15},"Accessibility","accessibility",{"name":543,"slug":544,"type":15},"Charts","charts",{"name":546,"slug":547,"type":15},"Data Visualization","data-visualization",{"name":549,"slug":550,"type":15},"Design","design","2026-06-30T19:00:57.102",{"slug":553,"name":553,"fn":554,"description":555,"org":556,"tags":557,"stars":24,"repoUrl":25,"updatedAt":567},"agent-browser","automate browser interactions for agents","Browser automation CLI for AI agents. Use when the user needs to interact with websites, verify dev server output, test web apps, navigate pages, fill forms, click buttons, take screenshots, extract data, or automate any browser task. Also triggers when a dev server starts so you can verify it visually.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[558,561,564],{"name":559,"slug":560,"type":15},"Agents","agents",{"name":562,"slug":563,"type":15},"Browser Automation","browser-automation",{"name":565,"slug":566,"type":15},"Testing","testing","2026-04-06T18:41:03.44016",{"slug":569,"name":569,"fn":570,"description":571,"org":572,"tags":573,"stars":24,"repoUrl":25,"updatedAt":579},"agent-browser-verify","verify dev server output with automated browser","Automated browser verification for dev servers. Triggers when a dev server starts to run a visual gut-check with agent-browser — verifies the page loads, checks for console errors, validates key UI elements, and reports pass\u002Ffail before continuing.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[574,575,578],{"name":562,"slug":563,"type":15},{"name":576,"slug":577,"type":15},"Local Development","local-development",{"name":565,"slug":566,"type":15},"2026-04-06T18:41:17.526867",{"slug":581,"name":581,"fn":582,"description":583,"org":584,"tags":585,"stars":24,"repoUrl":25,"updatedAt":599},"agents-sdk","build AI agents on Cloudflare Workers","Build AI agents on Cloudflare Workers using the Agents SDK. Load when creating stateful agents, durable workflows, real-time WebSocket apps, scheduled tasks, MCP servers, or chat applications. Covers Agent class, state management, callable RPC, Workflows integration, and React hooks. Biases towards retrieval from Cloudflare docs over pre-trained knowledge.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[586,587,590,593,596],{"name":559,"slug":560,"type":15},{"name":588,"slug":589,"type":15},"Cloudflare Workers","cloudflare-workers",{"name":591,"slug":592,"type":15},"SDK","sdk",{"name":594,"slug":595,"type":15},"Serverless","serverless",{"name":597,"slug":598,"type":15},"WebSockets","websockets","2026-04-06T18:39:51.717063",{"slug":601,"name":601,"fn":602,"description":603,"org":604,"tags":605,"stars":24,"repoUrl":25,"updatedAt":621},"ai-elements","build chat UIs with AI Elements","AI Elements component library guidance — pre-built React components for AI interfaces built on shadcn\u002Fui. Use when building chat UIs, message displays, tool call rendering, streaming responses, reasoning panels, or any AI-native interface with the AI SDK.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[606,609,612,615,618],{"name":607,"slug":608,"type":15},"Frontend","frontend",{"name":610,"slug":611,"type":15},"React","react",{"name":613,"slug":614,"type":15},"shadcn\u002Fui","shadcn-ui",{"name":616,"slug":617,"type":15},"UI Components","ui-components",{"name":619,"slug":620,"type":15},"Vercel","vercel","2026-04-06T18:40:59.619419",{"slug":623,"name":623,"fn":624,"description":625,"org":626,"tags":627,"stars":24,"repoUrl":25,"updatedAt":641},"ai-gateway","configure Vercel AI Gateway","Vercel AI Gateway expert guidance. Use when configuring model routing, provider failover, cost tracking, or managing multiple AI providers through a unified API.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[628,631,634,637,640],{"name":629,"slug":630,"type":15},"AI Infrastructure","ai-infrastructure",{"name":632,"slug":633,"type":15},"Cost Optimization","cost-optimization",{"name":635,"slug":636,"type":15},"LLM","llm",{"name":638,"slug":639,"type":15},"Performance","performance",{"name":619,"slug":620,"type":15},"2026-04-06T18:40:44.377464",{"slug":643,"name":643,"fn":644,"description":645,"org":646,"tags":647,"stars":24,"repoUrl":25,"updatedAt":653},"ai-generation-persistence","implement persistence patterns for AI generations","AI generation persistence patterns — unique IDs, addressable URLs, database storage, and cost tracking for every LLM generation",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[648,649,652],{"name":632,"slug":633,"type":15},{"name":650,"slug":651,"type":15},"Database","database",{"name":635,"slug":636,"type":15},"2026-04-06T18:41:08.513425",600,{"items":656,"total":849},[657,676,699,716,732,749,766,778,792,806,818,833],{"slug":658,"name":658,"fn":659,"description":660,"org":661,"tags":662,"stars":673,"repoUrl":674,"updatedAt":675},"prior-auth-packet-builder","build healthcare prior authorization packets","Build a concise prior authorization packet from local case files and payer policy docs.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[663,664,667,670],{"name":22,"slug":23,"type":15},{"name":665,"slug":666,"type":15},"Healthcare","healthcare",{"name":668,"slug":669,"type":15},"Insurance","insurance",{"name":671,"slug":672,"type":15},"Regulatory Compliance","regulatory-compliance",28169,"https:\u002F\u002Fgithub.com\u002Fopenai\u002Fopenai-agents-python","2026-04-16T05:11:39.180399",{"slug":677,"name":677,"fn":678,"description":679,"org":680,"tags":681,"stars":696,"repoUrl":697,"updatedAt":698},"aspnet-core","build ASP.NET Core web applications","Build, review, refactor, or architect ASP.NET Core web applications using current official guidance for .NET web development. Use when working on Blazor Web Apps, Razor Pages, MVC, Minimal APIs, controller-based Web APIs, SignalR, gRPC, middleware, dependency injection, configuration, authentication, authorization, testing, performance, deployment, or ASP.NET Core upgrades.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[682,685,687,690,693],{"name":683,"slug":684,"type":15},".NET","dotnet",{"name":686,"slug":677,"type":15},"ASP.NET Core",{"name":688,"slug":689,"type":15},"Blazor","blazor",{"name":691,"slug":692,"type":15},"C#","csharp",{"name":694,"slug":695,"type":15},"Web Development","web-development",23787,"https:\u002F\u002Fgithub.com\u002Fopenai\u002Fskills","2026-04-12T05:07:02.819491",{"slug":700,"name":700,"fn":701,"description":702,"org":703,"tags":704,"stars":696,"repoUrl":697,"updatedAt":715},"chatgpt-apps","build ChatGPT Apps SDK applications","Build, scaffold, refactor, and troubleshoot ChatGPT Apps SDK applications that combine an MCP server and widget UI. Use when Codex needs to design tools, register UI resources, wire the MCP Apps bridge or ChatGPT compatibility APIs, apply Apps SDK metadata or CSP or domain settings, or produce a docs-aligned project scaffold. Prefer a docs-first workflow by invoking the openai-docs skill or OpenAI developer docs MCP tools before generating code.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[705,708,711,714],{"name":706,"slug":707,"type":15},"Apps SDK","apps-sdk",{"name":709,"slug":710,"type":15},"ChatGPT","chatgpt",{"name":712,"slug":713,"type":15},"MCP","mcp",{"name":9,"slug":8,"type":15},"2026-04-12T05:07:05.468097",{"slug":717,"name":717,"fn":718,"description":719,"org":720,"tags":721,"stars":696,"repoUrl":697,"updatedAt":731},"cli-creator","build CLIs from API docs","Build a composable CLI for Codex from API docs, an OpenAPI spec, existing curl examples, an SDK, a web app, an admin tool, or a local script. Use when the user wants Codex to create a command-line tool that can run from any repo, expose composable read\u002Fwrite commands, return stable JSON, manage auth, and pair with a companion skill.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[722,725,728],{"name":723,"slug":724,"type":15},"API Development","api-development",{"name":726,"slug":727,"type":15},"CLI","cli",{"name":729,"slug":730,"type":15},"Codex","codex","2026-04-12T05:07:04.132762",{"slug":733,"name":733,"fn":734,"description":735,"org":736,"tags":737,"stars":696,"repoUrl":697,"updatedAt":748},"cloudflare-deploy","deploy projects to Cloudflare","Deploy applications and infrastructure to Cloudflare using Workers, Pages, and related platform services. Use when the user asks to deploy, host, publish, or set up a project on Cloudflare.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[738,741,744,745],{"name":739,"slug":740,"type":15},"Cloudflare","cloudflare",{"name":742,"slug":743,"type":15},"Cloudflare Pages","cloudflare-pages",{"name":588,"slug":589,"type":15},{"name":746,"slug":747,"type":15},"Deployment","deployment","2026-04-12T05:07:14.275118",{"slug":750,"name":750,"fn":751,"description":752,"org":753,"tags":754,"stars":696,"repoUrl":697,"updatedAt":765},"define-goal","define and set measurable project goals","Help the user define a concrete, measurable goal before starting work, especially when they ask to use the goal tool, create a goal, set an objective, clarify success criteria, or turn a fuzzy intention into a quantitative outcome. Use this skill for goal creation and goal refinement only; it does not manage durable snapshots, decision logs, or long-running execution artifacts.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[755,756,759,762],{"name":13,"slug":14,"type":15},{"name":757,"slug":758,"type":15},"Project Management","project-management",{"name":760,"slug":761,"type":15},"Strategy","strategy",{"name":763,"slug":764,"type":15},"Task Management","task-management","2026-05-23T06:17:16.870838",{"slug":767,"name":767,"fn":768,"description":769,"org":770,"tags":771,"stars":696,"repoUrl":697,"updatedAt":777},"figma","translate Figma designs into code","Use the Figma MCP server to fetch design context, screenshots, variables, and assets from Figma, and to translate Figma nodes into production code. Trigger when a task involves Figma URLs, node IDs, design-to-code implementation, or Figma MCP setup and troubleshooting.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[772,773,775,776],{"name":549,"slug":550,"type":15},{"name":774,"slug":767,"type":15},"Figma",{"name":607,"slug":608,"type":15},{"name":712,"slug":713,"type":15},"2026-04-12T05:06:47.939943",{"slug":779,"name":779,"fn":780,"description":781,"org":782,"tags":783,"stars":696,"repoUrl":697,"updatedAt":791},"figma-code-connect-components","connect Figma designs to code components","Connects Figma design components to code components using Code Connect mapping tools. Use when user says \"code connect\", \"connect this component to code\", \"map this component\", \"link component to code\", \"create code connect mapping\", or wants to establish mappings between Figma designs and code implementations. For canvas writes via `use_figma`, use `figma-use`.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[784,785,788,789,790],{"name":549,"slug":550,"type":15},{"name":786,"slug":787,"type":15},"Design System","design-system",{"name":774,"slug":767,"type":15},{"name":607,"slug":608,"type":15},{"name":616,"slug":617,"type":15},"2026-05-10T05:59:52.971881",{"slug":793,"name":793,"fn":794,"description":795,"org":796,"tags":797,"stars":696,"repoUrl":697,"updatedAt":805},"figma-create-design-system-rules","generate design system rules from Figma","Generates custom design system rules for the user's codebase. Use when user says \"create design system rules\", \"generate rules for my project\", \"set up design rules\", \"customize design system guidelines\", or wants to establish project-specific conventions for Figma-to-code workflows. Requires Figma MCP server connection.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[798,799,800,803,804],{"name":549,"slug":550,"type":15},{"name":786,"slug":787,"type":15},{"name":801,"slug":802,"type":15},"Documentation","documentation",{"name":774,"slug":767,"type":15},{"name":607,"slug":608,"type":15},"2026-05-16T06:07:47.821474",{"slug":807,"name":807,"fn":808,"description":809,"org":810,"tags":811,"stars":696,"repoUrl":697,"updatedAt":817},"figma-implement-design","translate Figma designs into application code","Translates Figma designs into production-ready application code with 1:1 visual fidelity. Use when implementing UI code from Figma files, when user mentions \"implement design\", \"generate code\", \"implement component\", provides Figma URLs, or asks to build components matching Figma specs. For Figma canvas writes via `use_figma`, use `figma-use`.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[812,813,814,815,816],{"name":549,"slug":550,"type":15},{"name":774,"slug":767,"type":15},{"name":607,"slug":608,"type":15},{"name":616,"slug":617,"type":15},{"name":694,"slug":695,"type":15},"2026-05-16T06:07:40.583615",{"slug":819,"name":819,"fn":820,"description":821,"org":822,"tags":823,"stars":696,"repoUrl":697,"updatedAt":832},"hatch-pet","create animated pets for Codex","Create, repair, validate, visually QA, and package Codex-compatible animated pets and pet spritesheets from character art, generated images, company or prospect brand cues, or visual references. Use when a user wants a lightweight-worker Codex pet workflow, a non-pixel custom pet style, a prospect or company mascot pet, or a full 8x9 animated pet atlas with transparent unused cells, QA contact sheets, and pet.json packaging. This skill composes the installed $imagegen system skill for visual generation and uses bundled scripts for deterministic spritesheet assembly.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[824,827,828,831],{"name":825,"slug":826,"type":15},"Animation","animation",{"name":729,"slug":730,"type":15},{"name":829,"slug":830,"type":15},"Creative","creative",{"name":549,"slug":550,"type":15},"2026-05-02T05:31:48.48485",{"slug":834,"name":834,"fn":835,"description":836,"org":837,"tags":838,"stars":696,"repoUrl":697,"updatedAt":848},"imagegen","generate and edit raster images","Generate or edit raster images when the task benefits from AI-created bitmap visuals such as photos, illustrations, textures, sprites, mockups, or transparent-background cutouts. Use when Codex should create a brand-new image, transform an existing image, or derive visual variants from references, and the output should be a bitmap asset rather than repo-native code or vector. Do not use when the task is better handled by editing existing SVG\u002Fvector\u002Fcode-native assets, extending an established icon or logo system, or building the visual directly in HTML\u002FCSS\u002Fcanvas.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[839,840,841,844,847],{"name":829,"slug":830,"type":15},{"name":549,"slug":550,"type":15},{"name":842,"slug":843,"type":15},"Image Generation","image-generation",{"name":845,"slug":846,"type":15},"Images","images",{"name":9,"slug":8,"type":15},"2026-05-15T06:23:24.312127",675]