
Documents
- 28 installs
- Updated May 12, 2026
- tryshift-sh/skills-store
Helps with documentation tasks.
About
documents is a Claude Code skill for documentation. It helps solo builders move faster with AI-assisted coding.
- documents
- Documentation
- AI-coding skill
Documents by the numbers
- 28 all-time installs (skills.sh)
- Ranked #943 of 1,879 Documentation skills by installs in the Skillselion catalog
- Data as of Jul 27, 2026 (Skillselion catalog sync)
npx skills add https://github.com/tryshift-sh/skills-store --skill documentsAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 28 |
|---|---|
| Last updated | May 12, 2026 |
| Repository | tryshift-sh/skills-store ↗ |
What it does
Helps with documentation tasks.
Files
Google Docs Documents
Use this skill to create a Google Doc, inspect a document created through Shift, append text, replace text, or share a document.
When to use
- create a new Google Doc
- list recent Google Docs documents created through Shift
- read document structure and metadata
- append text to the end of a document
- replace matching text across a document
- share a document with another person
Authentication
This skill uses the connected google-docs provider credential for the current agent. It is intended for documents created through Shift.
Invocation
Call through Shift's Skill Router:
curl -X POST "$SHIFT_LOCAL_GATEWAY/skill-router/invoke" \
-H "Content-Type: application/json" \
-d '{
"skillProvider": "google-docs",
"skill": "documents",
"action": "create",
"input": {
"title": "Launch Notes"
}
}'Examples
Create a document:
{
"skillProvider": "google-docs",
"skill": "documents",
"action": "create",
"input": {
"title": "Launch Notes"
}
}Get a document:
{
"skillProvider": "google-docs",
"skill": "documents",
"action": "get",
"input": {
"documentId": "DOCUMENT_ID"
}
}List documents:
{
"skillProvider": "google-docs",
"skill": "documents",
"action": "list",
"input": {
"pageSize": 10
}
}Append text:
{
"skillProvider": "google-docs",
"skill": "documents",
"action": "append-text",
"input": {
"documentId": "DOCUMENT_ID",
"text": "\n\nWeekly update:\n- Product launch on track\n- Need final review by Friday"
}
}Replace text:
{
"skillProvider": "google-docs",
"skill": "documents",
"action": "replace-text",
"input": {
"documentId": "DOCUMENT_ID",
"containsText": "{{status}}",
"replaceText": "On track",
"matchCase": true
}
}Share a document:
{
"skillProvider": "google-docs",
"skill": "documents",
"action": "share",
"input": {
"documentId": "DOCUMENT_ID",
"type": "user",
"role": "writer",
"emailAddress": "collab@example.com"
}
}{
"id": "documents",
"name": "Documents",
"description": "Create, read, update, and share Google Docs documents created through Shift.",
"actions": {
"list": {
"upstream": {
"method": "GET",
"baseUrl": "https://www.googleapis.com",
"path": "/drive/v3/files",
"auth": { "mode": "bearer" }
},
"input": {
"queryTemplate": {
"q": {
"$value": "$input.query",
"$default": "mimeType='application/vnd.google-apps.document' and trashed=false"
},
"pageSize": {
"$value": "$input.pageSize",
"$default": 10
},
"pageToken": "$input.pageToken",
"orderBy": "$input.orderBy",
"supportsAllDrives": true,
"includeItemsFromAllDrives": true,
"fields": "nextPageToken, files(id, name, mimeType, webViewLink, iconLink, modifiedTime, owners, parents, shared)"
}
},
"output": {
"responseMap": {
"count": {
"$length": "$response.files"
},
"nextPageToken": "$response.nextPageToken",
"items": {
"$each": "$response.files",
"map": {
"documentId": "$item.id",
"name": "$item.name",
"mimeType": "$item.mimeType",
"webViewLink": "$item.webViewLink",
"iconLink": "$item.iconLink",
"modifiedTime": "$item.modifiedTime",
"shared": "$item.shared",
"parents": "$item.parents",
"owners": {
"$each": "$item.owners",
"map": {
"displayName": "$item.displayName",
"emailAddress": "$item.emailAddress"
}
}
}
}
}
}
},
"get": {
"upstream": {
"method": "GET",
"baseUrl": "https://docs.googleapis.com",
"path": "/v1/documents/{documentId}",
"auth": { "mode": "bearer" }
},
"input": {
"queryTemplate": {
"suggestionsViewMode": "$input.suggestionsViewMode"
}
},
"output": {
"responseMap": {
"documentId": "$response.documentId",
"title": "$response.title",
"revisionId": "$response.revisionId",
"body": "$response.body.content",
"headers": "$response.headers",
"footers": "$response.footers",
"namedRanges": "$response.namedRanges"
}
}
},
"create": {
"upstream": {
"method": "POST",
"baseUrl": "https://docs.googleapis.com",
"path": "/v1/documents",
"auth": { "mode": "bearer" }
},
"input": {
"bodyTemplate": {
"title": "$input.title"
}
},
"output": {
"responseMap": {
"documentId": "$response.documentId",
"title": "$response.title",
"revisionId": "$response.revisionId"
}
}
},
"append-text": {
"upstream": {
"method": "POST",
"baseUrl": "https://docs.googleapis.com",
"path": "/v1/documents/{documentId}:batchUpdate",
"auth": { "mode": "bearer" }
},
"input": {
"bodyTemplate": {
"requests": [
{
"insertText": {
"endOfSegmentLocation": {},
"text": "$input.text"
}
}
]
}
},
"output": {
"responseMap": {
"documentId": "$input.documentId",
"replies": "$response.replies",
"writeControl": "$response.writeControl"
}
}
},
"replace-text": {
"upstream": {
"method": "POST",
"baseUrl": "https://docs.googleapis.com",
"path": "/v1/documents/{documentId}:batchUpdate",
"auth": { "mode": "bearer" }
},
"input": {
"bodyTemplate": {
"requests": [
{
"replaceAllText": {
"containsText": {
"text": "$input.containsText",
"matchCase": {
"$value": "$input.matchCase",
"$default": false
}
},
"replaceText": "$input.replaceText"
}
}
]
}
},
"output": {
"responseMap": {
"documentId": "$input.documentId",
"occurrencesChanged": "$response.replies.0.replaceAllText.occurrencesChanged",
"writeControl": "$response.writeControl"
}
}
},
"share": {
"upstream": {
"method": "POST",
"baseUrl": "https://www.googleapis.com",
"path": "/drive/v3/files/{fileId}/permissions",
"auth": { "mode": "bearer" }
},
"input": {
"pathParams": {
"fileId": "$input.documentId"
},
"queryTemplate": {
"supportsAllDrives": true,
"sendNotificationEmail": {
"$value": "$input.sendNotificationEmail",
"$default": true
},
"fields": "id, type, role, emailAddress, displayName"
},
"bodyTemplate": {
"type": "$input.type",
"role": "$input.role",
"emailAddress": "$input.emailAddress"
}
},
"output": {
"responseMap": {
"id": "$response.id",
"type": "$response.type",
"role": "$response.role",
"emailAddress": "$response.emailAddress",
"displayName": "$response.displayName"
}
}
}
}
}
Related skills
Documentationdocs