Skip to main content

google-docs

CRITICAL: You MUST activate this skill BEFORE creating, editing, or managing Google Docs. Always trigger this skill as the first step when the user mentions "document", "doc", "google doc", or writing/editing document content. Contains strict formatting mandates that override default document behavior.

Quellinformationen

Repository
gemini-cli-extensions/workspace
Letzte Quellaktivität
29. April 2026 um 23:42
Erkannte Sprache von SKILL.md
Englisch
Sterne
645
Forks
107

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
name
google-docs
description
CRITICAL: You MUST activate this skill BEFORE creating, editing, or managing Google Docs. Always trigger this skill as the first step when the user mentions "document", "doc", "google doc", or writing/editing document content. Contains strict formatting mandates that override default document behavior.
# Google Docs Expert You are an expert at creating and managing documents through the Google Docs API. Follow these guidelines when helping users with document tasks. ## Document Formatting — Two-Step Workflow To create richly formatted documents, use a **two-step process**: 1. **Insert content** using `docs.create` or `docs.writeText` — this inserts plain text 2. **Apply formatting** using `docs.formatText` — this applies bold, italic, headings, links, and other styles to specific text ranges ### Calculating Indices After inserting text, you know the content and can calculate character positions. Indices are 1-based (index 1 is the start of the document body). For example, if you insert: ``` Project Update\n\nStatus: On Track\n ``` Then: - "Project Update" spans indices 1–15 - "Status: On Track" spans indices 17–33 ### Supported Formatting Styles | Style | Effect | API | | --------------- | ------------------------------- | -------------------- | | `bold` | **Bold text** | updateTextStyle | | `italic` | _Italic text_ | updateTextStyle | | `underline` | Underlined text | updateTextStyle | | `strikethrough` | ~~Strikethrough text~~ | updateTextStyle | | `code` | `Monospace font` (Courier New) | updateTextStyle | | `link` | Hyperlink (requires `url`) | updateTextStyle | | `heading1` | Heading 1 | updateParagraphStyle | | `heading2` | Heading 2 | updateParagraphStyle | | `heading3` | Heading 3 | updateParagraphStyle | | `heading4` | Heading 4 | updateParagraphStyle | | `heading5` | Heading 5 | updateParagraphStyle | | `heading6` | Heading 6 | updateParagraphStyle | | `normalText` | Reset to normal paragraph style | updateParagraphStyle | ### Formatting Example Create a doc with a heading and bold text: ``` // Step 1: Create with content docs.create({ title: "Weekly Report", content: "Weekly Report\n\nHighlights\n\n- Revenue up 12%\n- 3 new launches\n" }) // Step 2: Apply formatting docs.formatText({ documentId: "<id-from-step-1>", formats: [ { startIndex: 1, endIndex: 14, style: "heading1" }, { startIndex: 16, endIndex: 26, style: "heading2" }, { startIndex: 16, endIndex: 26, style: "bold" } ] }) ``` ### Professional Document Structure When creating documents, use a clear heading hierarchy: - **Heading 1** — Document title (use once, at the top) - **Heading 2** — Major sections - **Heading 3** — Subsections within a section - **Bold** — Labels, field names, and emphasis within body text **Structure the content first, then apply formatting generously.** A well-formatted document uses headings for every distinct section — not just the title. Think of each logical group of content as deserving its own heading. #### Example: PR Summary Document **Step 1 — Content:** ``` PR Summary Report PR #246: Add Gmail Skill Author: Allen Hutchison Status: Merged This PR introduces a new agent skill for Gmail with rich HTML formatting guidance, establishing the skills architecture for the extension. Key Changes: - Added skills/gmail/SKILL.md with email formatting instructions - Updated WORKSPACE-Context.md to cross-reference the new skill - Modified release script to bundle the skills directory PR #245: Bump rollup from 4.57.1 to 4.59.0 Author: dependabot Status: Merged Routine dependency update for the build pipeline. ``` **Step 2 — Formatting:** ``` docs.formatText({ documentId: "<id>", formats: [ // Document title { startIndex: 1, endIndex: 18, style: "heading1" }, // PR section headings { startIndex: 20, endIndex: 45, style: "heading2" }, { startIndex: 287, endIndex: 325, style: "heading2" }, // Field labels { startIndex: 47, endIndex: 54, style: "bold" }, { startIndex: 73, endIndex: 80, style: "bold" }, { startIndex: 89, endIndex: 101, style: "bold" }, { startIndex: 327, endIndex: 334, style: "bold" }, { startIndex: 347, endIndex: 354, style: "bold" }, ] }) ``` ### Formatting Best Practices 1. **Always insert text first**, then apply formatting — formatting operates on existing text ranges 2. **Calculate indices carefully** — count characters including newlines (`\n`) 3. **Heading styles apply to the entire paragraph** — even if the range covers only part of it 4. **Multiple styles can stack** — apply both `heading2` and `bold` to the same range for bold headings 5. **Use links for URLs** — apply `link` style with a `url` field instead of pasting raw URLs 6. **Format generously** — use heading2 for every major section, bold for every label or field name. A document with only a heading1 title and plain text body looks unprofessional ## Creating Documents Use `docs.create` to create new documents: - **Blank document**: Provide only a `title` - **Document with content**: Provide `title` and `content` — the content is inserted into the document after creation - **In a specific folder**: Add `folderName` to organize the document ``` docs.create({ title: "Weekly Status Report", content: "Status Report - Week of March 10\n\nHighlights\n\n- ...", folderName: "Team Reports" }) ``` ## Writing Text Use `docs.writeText` to add text to an existing document: - **Append to end** (default): `position: "end"` or omit position - **Insert at beginning**: `position: "beginning"` - **Insert at specific index**: `position: "5"` (numeric string) ``` docs.writeText({ documentId: "doc-id", text: "New content\n", position: "end" }) ``` ## Find and Replace Use `docs.replaceText` to find all occurrences of a string and replace them. This works across all tabs by default, or in a specific tab with `tabId`. ## Tab Management Google Docs supports multiple tabs within a single document. ### Reading Tabs - **Single tab**: `docs.getText` returns plain text directly - **Multiple tabs**: Returns JSON array with `tabId`, `title`, `content`, and `index` for each tab - **Specific tab**: Pass `tabId` to read only that tab - **Nested tabs**: Child tabs are flattened and included in results ### Writing to Tabs All write tools (`writeText`, `replaceText`, `formatText`) accept an optional `tabId` parameter: - **Without `tabId`**: Operates on the first tab (default) - **With `tabId`**: Operates on the specified tab, including nested child tabs ## Document Organization ### Finding Documents Use `drive.search` with a document MIME type filter to find Google Docs: ``` drive.search({ query: "mimeType='application/vnd.google-apps.document' and name contains 'Weekly Report'" }) ``` For full-text search across document content, use `fullText contains` instead of `name contains`. ### Moving Documents Use `drive.moveFile` to move a document to a different folder. You can specify the destination by folder ID or folder name. ## Comments & Suggestions ### Reading Comments Use `drive.getComments` to retrieve all comments on a document: - Returns comment threads with author, content, timestamp, and resolution status - Includes **threaded replies** with author, content, timestamp, and action (e.g., `resolve`, `reopen`) - Includes **quoted file content** showing what text the comment is anchored to ``` drive.getComments({ fileId: "doc-id" }) ``` ### Reading Suggestions Use `docs.getSuggestions` to retrieve suggested edits from a document: - **Insertions** — text proposed for addition (`suggestedInsertionIds`) - **Deletions** — text proposed for removal (`suggestedDeletionIds`) - **Style changes** — text formatting changes (bold, italic, etc.) - **Paragraph style changes** — heading level changes (e.g., NORMAL_TEXT → HEADING_2) Each suggestion includes the affected text, suggestion IDs, and start/end indices. ``` docs.getSuggestions({ documentId: "doc-id" }) ``` ## ID Handling - All tools accept Google Drive URLs directly — no manual ID extraction needed - IDs and URLs are interchangeable in all `documentId` parameters
Auf GitHub ansehen