ask
Adaptive vault reader skill. Receives a natural language question, uses graph.json as the primary index (Phase 2.0) before any glob/grep, then self-assesses…
Internal fetcher module for Google Docs and Sheets. Fetches content via MCP (preferred, when available), Google API with bearer token or public URL export (fallback), or browser DOM extraction via Claude in Chrome (last resort) and returns Markdown. Used by /bedrock:learn and
$ npx -y skills add iurykrieger/claude-bedrock --skill gdoc-to-markdown --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/gdoc-to-markdownContext preview
The summary Claude sees to decide when to auto-load this skill.
Internal fetcher module for Google Docs and Sheets. Fetches content via MCP (preferred, when available), Google API with bearer token or public URL export (fallback), or browser DOM extraction via Claude in Chrome (last resort) and returns Markdown. Used by /bedrock:learn and
name: gdoc-to-markdown description: > Internal fetcher module for Google Docs and Sheets. Fetches content via MCP (preferred, when available), Google API with bearer token or public URL export (fallback), or browser DOM extraction via Claude in Chrome (last resort) and returns Markdown. Used by /bedrock:learn and /bedrock:sync — not intended for direct user invocation. user_invocable: false allowed-tools: Bash, Read, Write, WebFetch, ToolSearch, mcp__claude-in-chrome__*
Internal module — invoked by `/bedrock:learn` Phase 1 and `/bedrock:sync` Phase 2, not user-invocable.
Fetches a Google Docs document or Google Sheets spreadsheet and converts it to a local Markdown file. Supports both document types with automatic detection. Three layers in fallback order: **MCP (preferred) → API / Public Export → Browser DOM extraction.**
**Dependency:** Browser fallback (Layer 3) requires `scripts/extract.js` (relative to this skill directory).
---
Parse the URL. Accept these formats:
**Google Docs:**
**Google Sheets:**
**Detect type:**
Extract the `{docId}` — the string between `/d/` and the next `/` or end of path.
---
The preferred layer. Checks if a Google Docs/Drive MCP server is installed and authenticated.
Use ToolSearch to check if any Google Docs or Google Drive MCP tools are available:
ToolSearch(query: "google docs drive document", max_results: 5)
Evaluate the result:
> **MCP not available:** No Google Docs/Drive MCP server installed. > When a Google Docs MCP becomes available, install it for direct document access. > Falling back to API (Layer 2).
Use the Google Docs MCP tools to fetch the document content. The specific tool depends on what the MCP exposes.
> **MCP fetch failed:** {error message}. > Falling back to API (Layer 2).
If an MCP is installed but not authenticated, guide the user:
> **MCP not authenticated:** A Google Docs MCP server is installed but requires authentication. > Complete the authentication flow as prompted by the MCP server. > After authentication, Google documents can be fetched directly via MCP.
Ask the user: "Would you like to authenticate the Google Docs MCP now, or skip to API fallback (Layer 2)?"
---
Uses the Google Drive/Sheets API with a bearer token or public URL export.
> **API not available:** This document requires authentication and no `GOOGLE_ACCESS_TOKEN` is set. > Generate a token at https://developers.google.com/oauthplayground/ with the `https://www.googleapis.com/auth/drive.readonly` scope. > Export: `export GOOGLE_ACCESS_TOKEN="your-token"`. > Falling back to Browser extraction (Layer 3).
Inform the caller which strategy is being used and whether the document is a **Doc** or **Sheet**.
---
Use `WebFetch`:
WebFetch(
url: "https://www.googleapis.com/drive/v3/files/{docId}/export?mimeType=text/markdown",
headers: { "Authorization": "Bearer {GOOGLE_ACCESS_TOKEN}" },
prompt: "Return the COMPLETE raw content exactly as-is. Do not summarize or truncate."
)If WebFetch cannot send the Authorization header, fall back to Bash:
curl -sL -H "Authorization: Bearer ${GOOGLE_ACCESS_TOKEN}" \
"https://www.googleapis.com/drive/v3/files/{docId}/export?mimeType=text/markdown"> **API authentication failed:** Google API returned 401. The token may be expired or invalid. > Refresh your token at https://developers.google.com/oauthplayground/. > Falling back to Browser extraction (Layer 3).
> **API access denied:** Google API returned 403. You do not have access to this document. > Verify document sharing permissions in Google Docs.
> **Document not found:** Google API returned 404. The document ID may be incorrect. > Verify the URL or document ID.
> **API returned empty:** The document appears to be empty or the export failed. > Falling back to Bro
Second Brain automation for Obsidian vaults — entity management, ingestion, compression, and sync via Claude Code skills
Adaptive vault reader skill. Receives a natural language question, uses graph.json as the primary index (Phase 2.0) before any glob/grep, then self-assesses…
Vault alignment engine. Detects and fixes 5 types of structural misalignments: broken backlinks, concept fragmentation, entity miscategorization, duplicated…
Internal fetcher module for Confluence pages. Fetches content via Atlassian MCP (preferred), REST API with Basic Auth (fallback), or browser DOM extraction via…
Read-only vault health diagnostic. Generates a report without modifying any files. Checks: graphify-out integrity, setup verification, orphan entities,…
Ingests an external data source into the Second Brain. Fetches content from Confluence, Google Docs, GitHub repositories, remote URLs, or any local file format…
Single write point for the vault. Centralizes entity detection, textual matching, entity creation/update, and bidirectional linking. Accepts structured input…