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.
66
83%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
Passed
No findings from the security scan
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.
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.
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.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.export_file only to convert a native Google Doc, Sheet, or Slide into an explicitly requested format; it returns an authenticated file reference, not inline bytes or base64. Google limits files.export responses to 10 MB; oversized exports fail rather than returning truncated content. For a larger native PDF, use download_file(id=file_id, mime_type="application/pdf") when the streaming action is available. It calls Google's files.download API and returns a top-level materializable file_uri. Once download_file is unavailable and canonical fetch uses that streamed download path, use fetch(url=google_drive_url, download_raw_file=True, raw_export_mime_type="application/pdf") instead. A native-file fetch that still uses files.export cannot bypass the 10 MB limit. For PDFs, images, ZIPs, Office files, recordings, and other stored, non-native files, use fetch(url=google_drive_url, download_raw_file=True). Use only the authenticated top-level file_uri or materialized workspace_path; never request inline base64 unless an existing caller explicitly opts into bounded legacy compatibility. Use fetch without download_raw_file for bounded, best-effort readable text. Do not retry export_file after metadata shows a non-native MIME type..docx -> native Google Docs import workflow and the explicit-user-override boundary. Do not create a blank Google Doc directly from this router..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.[@spreadsheets](plugin://spreadsheets@openai-primary-runtime) plugin or $Excel skill to create a local .xlsx, then import it as native Google Sheets..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..pptx -> native Google Slides import workflow and the explicit-user-override boundary. Do not create a blank Google Slides deck directly from this router..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.export_file for explicit conversions within Google's 10 MB limit. For a larger native PDF, prefer the currently available streaming download_file(id=file_id, mime_type="application/pdf"); after canonical fetch adopts the same streamed download path and download_file is removed, use fetch(url=google_drive_url, download_raw_file=True, raw_export_mime_type="application/pdf"). Stored, non-native PDFs, images, ZIPs, CSVs, Office files, audio, and video use fetch(url=google_drive_url, download_raw_file=True). Use the returned top-level file_uri or its authenticated, materialized workspace_path; do not expose inline binary, base64, or a bearer URL. Base64 is available only when an existing compatibility caller explicitly requests the bounded legacy behavior.openai/plugins
0722921
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.