Skip to content
Agentmart
Submit a tool

export

Export a spec from the store to Google Docs.

Skill by NitinJ

IndexedMIT★ 5
Write a review

Chalk Labs

Need help deploying export?

Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.

Book a call

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/nitinj-export

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Export a spec from the store to Google Docs. Auto-invoked when the owning session's Stop/UserPromptSubmit hook surfaces a queued export (the human clicked "Export to Google Docs" in the review UI); can also be run manually. Reads the spec HTML, creates a Google Doc via the connected Google Drive MCP, and reports the Doc link back so the dropdown shows it.

Use cases: documents, design, frontend, agent-building

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md and code. Checked Nov 1, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/export

Tools it pre-approves 4

From allowed-tools in SKILL.md: the agent may use these without asking you each time.

  • Read,
  • Bash,
  • mcp__claude_ai_Google_Drive__create_file,
  • mcp__claude_ai_Google_Drive__get_file_metadata

What's inside

Skill name
export
Description
Export a spec from the store to Google Docs. Auto-invoked when the owning session's Stop/UserPromptSubmit hook surfaces a queued export (the human clicked "Export to Google Docs" in the review UI); can also be run manually. Reads the spec HTML, creates a Google Doc via the connected Google Drive MCP, and reports the Doc link back so the dropdown shows it.
License
MIT
Allowed tools
Read,, Bash,, mcp__claude_ai_Google_Drive__create_file,, mcp__claude_ai_Google_Drive__get_file_metadata
Instructions
95 lines in SKILL.md · view on GitHub

Before installing

  • Pre-approves some shell commands
  • Instructions call the network

Files (1)

  • SKILL.md

SKILL.md (first lines)

# export

Export one or more specs from the store to **Google Docs**. The browser can't call
the Drive MCP — only this session can — so the UI queues a request and the hook
routes here. The hook message lists each queued spec **id** and title.

`${CLAUDE_PLUGIN_ROOT}` below denotes the installed plugin directory. Claude and
Pi export it; Codex provides the exact value in SpecForge SessionStart context.
Substitute that value in every path and shell command. Specs live at
`~/.specforge/specs/<id>/spec.html`.

## 1. Locate the spec file

For each queued spec id:

```
node "${CLAUDE_PLUGIN_ROOT}/lib/specforge-cli.mjs" comments <id> --all
```

prints `{ specId, htmlPath, ... }` (`--all` because this flow wants the full
comment history; the default payload is batch-scoped to pending threads).
`htmlPath` is the on-disk spec (clean content —
the review layer is injected only at serve time, so the file is plain house HTML).
Use the spec **title** from the hook message for the Doc title.

**A spec with child specs exports as one flat document, not as its root alone.**
A Doc has no folder, so a recipient given only the parent gets a document with
holes in it and no way to tell how much is missing. Ask the daemon for the
flattened tree instead of reading `htmlPath`:

```
curl -s "http://127.0.0.1:4180/spec/<id>?flat=1"
```

That is the root's document with every descendant appended, each in its own
section, section ids namespaced so the anchors inside it still resolve. Check
first with `curl -s "http://127.0.0.1:4180/api/spec/<id>/children"`, and use
`htmlPath` unchanged when the list is empty, which is every spec written before
child specs existed.

## 2. Mark it in-progress

So the dropdown shows "Exporting…" (the hook already does this when it routes here;
do it explicitly for a manual run):

```
node "${CLAUDE_PLUGIN_ROOT}/lib/specforge-cli.mjs" export-working <id>
```

## 3. Create the Google Doc via the Drive MCP

Use the document step 1 settled on — the flattened tree for a spec with
children, `htmlPath`'s full contents for a spec without. Reading `htmlPath` here
regardless is the mistake this sentence exists to prevent: it makes a Doc of the
root alone, which is exactly the document with holes in it that step 1 is about.

Create the doc with your connected Google
Drive MCP's create-file tool (`mcp__claude_ai_Google_Drive__create_file`, or the
equivalent on whatever Drive MCP is connected):

- `title`: the spec title
- `textContent`: the full spec HTML
- `contentMimeType`: `text/html`

Drive converts HTML → a Google Doc (headings, lists, tables, bold/links survive;
the rich CSS/charts/`<script>` are dropped — this is a structural export). The
response carries `mimeType` and `viewUrl`.

**Verify the conversion:** the response `mimeType` must be
`application/vnd.google-apps.document`. If it isn't (the upload stayed an `.html`
file), delete nothing — instead re-create with the body text extracted to plain
text and `contentMimeType: text/plain` (always converts to a Doc, just unstyled).

The shareable link is the response's `viewUrl` (shape:
`https://docs.google.com/document/d/<fileId>/edit`).

## 4. Report the link back

```
node "${CLAUDE_PLUGIN_ROOT}/lib/specforge-cli.mjs" export-done <id> --url "<viewUrl>"
```

On any failure (MCP not connected, auth, conversion both ways failed):

```
node "${CLAUDE_PLUGIN_ROOT}/lib/specforge-cli.mjs" export-done <id> --error "<short reason>"
```

The dropdown shows the **Open Google Doc** link (or the error) on its next poll.

## 5. Report

Briefly tell the human: which spec(s) exported and the Doc link(s).

From NitinJ/specforge, MIT.

More from NitinJ/specforge

Signals

Stars
5
Forks
0
Open issues
1
Last commit (this folder)
Sep 8, 2026 (1 month ago)

From GitHub (fetched Oct 24, 2026).

Details

License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from NitinJ

Done for you

Rather not set it up yourself?

Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.

See how we build AI agents →Read the case studies

Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.

launches shipped
50+
launches shipped
media placements
500+
media placements
founders on every account
2
founders on every account

Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block

Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.

Get export running in your business

Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.

Goes to the Chalk Labs founders, not the newsletter. Privacy

Need help deploying export?

CallGet help
Cite this page

export skill. Agent Mart. https://agentmart.dev/skills/nitinj-export (last updated 2026-10-24)