# report-to-google-doc

Turns an existing HTML analytics report into a DOCX and uploads it to Google Drive. Handy when the report has to reach someone as a link.

- skill · `type=skill` · Codex, ChatGPT · ★ 7604
- Author: Data Analytics Maintainers · official OpenAI repository
- License: LicenseRef-Proprietary · policy=link-only · description only; the file stays with the author
- Source: https://github.com/openai/plugins/tree/HEAD/plugins/data-analytics/skills/build-report/report-to-google-doc/SKILL.md
- Updated: 2026-10-08
- HTML: https://affpapa.org/en/nevibecode/skills/report-to-google-doc

## What it does

The skill takes one kind of input: an HTML report you already have. That means a local file, a downloaded copy of a blob-hosted report, or output from `$build-report` in HTML mode with the portable builder. A live report inside an MCP app is not converted.

The flow is HTML → DOCX → Drive upload. A bundled helper, `scripts/report_to_google_doc_plan.py`, runs against an absolute path and writes `skeleton.txt`, `manifest.json`, `preflight_checks.json`, `report.docx` and `docx_upload_plan.json`. Nothing goes to Drive until `preflight_checks.json` reads `status: "passed"` with zero errors. The upload itself goes through `mcp__codex_apps__google_drive._upload_file`, and the returned Drive URL is the deliverable.

Missing dependencies are handled in a local virtual environment: `beautifulsoup4`, `pillow` and `python-docx` are required, while `cairosvg` and headless Playwright are optional renderers. Pass an absolute path — a relative one leaves the helper without a report to read. The link alone is not the finish line: the uploaded file and the local DOCX structure get compared against the source report, covering headings, tables, links and images.

## Install

### Codex (native platform)

1. **Skills CLI (Vercel)**
```bash
npx skills add openai/plugins --skill report-to-google-doc -a codex
```

2. **Manually: put the files in place**
- File: `.agents/skills/report-to-google-doc/SKILL.md` — For all projects use ~/.agents/skills/

### Claude Code

1. **Skills CLI (Vercel)**
```bash
npx skills add openai/plugins --skill report-to-google-doc -a claude-code
```

2. **Manually: put the files in place**
- File: `~/.claude/skills/report-to-google-doc/SKILL.md` — Copy the whole skill folder; for one project use .claude/skills/report-to-google-doc/

### Cursor

**Manually: put the files in place**
- File: `.cursor/skills/report-to-google-doc/SKILL.md` — Cursor also reads .agents/skills/ and .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install openai/plugins report-to-google-doc
```

2. **Manually: put the files in place**
- File: `.github/skills/report-to-google-doc/SKILL.md`

### Gemini CLI

**Platform CLI**
```bash
gemini skills install https://github.com/openai/plugins --path plugins/data-analytics/skills/build-report/report-to-google-doc
```

### Windsurf (Devin Desktop)

**Manually: put the files in place**
- File: `.devin/skills/report-to-google-doc/SKILL.md` — The legacy .windsurf/skills/ path still works

### Claude.ai

**Claude.ai**
- Zip the folder and upload it in Settings → Capabilities → Skills

Where a file is given instead of a command, copy the files from the source to that path: https://github.com/openai/plugins/tree/HEAD/plugins/data-analytics/skills/build-report/report-to-google-doc/SKILL.md

## When to use it
- build a DOCX from a finished HTML report with charts
- share an analytics report as a Google Drive link
- catch sections and tables dropped during conversion
- keep metric definitions, source notes and links in the document
- produce a document whose tables and charts fit the page width

## Example prompts
- Convert `/tmp/analytics/report.html` into a Google Doc and give me the link
- Build the DOCX from this HTML report and upload it to Drive
- Check `preflight_checks.json` and upload `report.docx` if there are no errors

## Similar
- [training-report](https://affpapa.org/en/nevibecode/skills/training-report.md) — skill · 4200 installs
- [google-drive](https://affpapa.org/en/nevibecode/skills/sanjay3290-google-drive.md) — skill · 867 installs
- [google-ads-report](https://affpapa.org/en/nevibecode/skills/google-ads-report.md) — skill · 476 installs
- [recipe-create-doc-from-template](https://affpapa.org/en/nevibecode/skills/recipe-create-doc-from-template.md) — skill · 30800 installs
- [recipe-share-doc-and-notify](https://affpapa.org/en/nevibecode/skills/recipe-share-doc-and-notify.md) — skill · 30300 installs
- [doc-to-markdown](https://affpapa.org/en/nevibecode/skills/doc-to-markdown.md) — skill · 872 installs

From the same set: [openai/plugins](https://affpapa.org/en/nevibecode/by/openai/plugins.md) — 528 cards

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
