# XLSX Live Review

> Turn an already-filled .xlsx into a shareable, live-editable Google Sheet for human review and sign-off, then pull any edits back out as the .xlsx of record. Use this whenever a filled Excel deliverable (a filled template, a generated register, a cost model) needs a human to actually open, comment on, or edit it before it's considered final — not for generating a new spreadsheet from scratch. Triggers on: "let me review this in Sheets", "make this editable", "share this spreadsheet for review", "get sign-off on this xlsx", "live-edit this excel file".

- Skill: `soapboxbuild/xlsx-live-review` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add soapboxbuild/xlsx-live-review`
- Raw SKILL.md: https://api.skillmd.com/api/skills/soapboxbuild/xlsx-live-review/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Data & Analytics
- Author: soapboxbuild (https://skillmd.com/u/soapboxbuild)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/soapboxbuild/xlsx-live-review

---


# xlsx Live Review — Google Sheets Hand-off

## When to use this

Any workflow that fills a real `.xlsx` (a specific template with formulas, pivot
tables, or a fixed official structure — e.g. a government/utility program form) and
then needs a human to review or edit it before it's final. Do NOT use this to author
a spreadsheet from nothing — that's a from-scratch generation task, not a review
hand-off, and belongs to whatever tool is actually building the workbook.

**The original `.xlsx` bytes are the source of truth throughout.** This skill never
replaces them — it produces a *converted review copy* in Google Sheets, and (if the
human edits it) pulls the edits back out as a new `.xlsx`, but the original file
stays wherever the calling workflow already saved it.

## Step 1: Upload and convert

Call `upload_and_convert_to_sheet` with:
- `name` — a clear, human-facing filename (e.g. `"Cascade IEA Opportunity Register — for review.xlsx"`)
- `contentBase64` — the exact bytes just produced by whatever filled the template
- `shareWithEmail` — the reviewer's email if known up front (skip this and use
  `share_file` separately if you don't have it yet)
- `shareRole` — `"writer"` if they need to edit, `"commenter"` if they should only
  annotate, `"reader"` for view-only

This returns a `webViewLink` — that's the URL to hand the human.

## Step 2: Hand it to the reviewer

Tell the user directly: here's the link, please review/edit and let me know when
you're done (or approve as-is). Do not treat silence or an unrelated message as
approval — if it's ambiguous whether they're actually signing off, ask directly:
"Should I treat this as approved, or are there changes first?"

Note plainly, once, that this is a **converted copy** for review — Excel-specific
details (complex pivot cache internals, some conditional formats) may not carry over
perfectly into Sheets; the original `.xlsx` is unaffected and remains the real file.

## Step 3: If they edited it — pull the edits back out

Call `export_sheet_to_xlsx` with the same `fileId` returned in Step 1. This returns
fresh `.xlsx` bytes reflecting whatever the human changed in Sheets. Hand these back
to whichever workflow/skill owns saving the "real" file (e.g. re-save via
`soapbox-files`' `write_binary_file`) — this skill's job ends at handing back bytes,
it does not know where the calling workflow's file lives.

## Step 4: If they approved as-is

No export needed — just record the sign-off in whatever ledger/gate the calling
workflow uses (e.g. `gates.register_signoff` in an `iea-audit-plan`-style state
ledger). The Sheet can be left in Drive as a record of what was reviewed, or deleted
via `delete_file` if the calling workflow doesn't want it lingering — don't delete it
without checking, since some workflows want the reviewed copy kept as an audit trail.

