Decks and docs
A deliverable is the file a client sees. Vocion builds it, checks it, lets you edit it and prints the PDF. Every outside editor is optional.
Part of the GTM app, from the proposals plugin. This page describes the deck format and tools shipping in v7.3.0.
What a deliverable is
There are two kinds, and both are artifacts.
| Kind | Shape | Use |
|---|---|---|
Deck (deck) | 16 slides, 1920 by 1080 px each | What a client sees in a meeting |
Document (document) | US-Letter sheets | What a client carries into their own business case |
Both use the same machinery: versions with undo, render-verify audits in a real Chromium browser, the red team before export, the export gate, data rooms, the Proposals board and learning from corrections. Nothing is built twice.
Vocion is enough on its own
A deck goes from draft to sent PDF without an outside editor, account or runtime.
- Generate it from the deal's data room. The Proposal Writer uses the
proposal-deckskill and your workspace's slide library and playbook. - Check it. Every create and every revision renders each slide, audits it and screenshots it.
- Edit it in place. Click text on the slide, reorder slides, add one from the slide library, or ask in chat. Each commit is a version with a one-line summary.
- Present it. Full screen, arrow keys, speaker notes in a second window.
- Print it.
export_deck_pdfprints one 1920 by 1080 page per slide through the export gate.
A person sends it. Exporting sends nothing.
The deck format
A deck is a vocion-deck/1 spec: a title, a slide order and one <section> of HTML per slide on a fixed 1920 by 1080 canvas. All styling is inline. Vocion adds three elements to plain HTML: <x-icon>, <x-shape> and <x-connector>. Images are Vocion-hosted assets referenced as asset:<id>. Speaker notes are plain text in one <aside>, up to 4,000 characters.
The audit uses facts from the rendered page:
- content outside the canvas
- text under 24 px
- more than 200 elements
- unknown elements, icon names or shape kinds
- unresolved assets and placeholders such as
[$__]or[date] - missing speaker notes
An unknown name is an audit failure that names it. It is never a silent blank.
The pane
One deliverable pane serves both kinds: page thumbnails, the selected slide or sheet, its notes, the version menu, the last receipt, Download (PDF, PowerPoint or Word) and Upload a new version. The Proposals board at /gtm/proposals lists decks and documents together.
House style
The proposal-deck skill is generic. A workspace supplies its own slide library and a playbook for each kind of deck. For example: a seller's concept deck before pricing, a priced proposal deck, and a case study deck where every number is traced to a source and quotes are held for the client's approval. The red team reads slide text and speaker notes.
Out and back
Vocion is the canonical copy. Every way out records where the deck went, and every way back is a new version that is re-rendered and re-audited. A person who asks for the PDF always gets it from Vocion's renderer, never from an adapter.
Check-out and check-in for assistants
deck_checkout returns the deliverable as files (a deck is deck.json plus slides/<id>.html, a document is document.html), short-lived URLs for its assets and a baseVersion. Any MCP client can edit those files: Claude, ChatGPT or another assistant. deck_checkin writes a new version.
A check-in made against an older baseVersion is refused with a slide-by-slide diff of what changed in Vocion since the checkout, so the person can redo the change on top. Files from Claude Slides import as-is. That is one adapter among several.
PowerPoint, Keynote and Google Slides
Export lays each slide out as native objects: text boxes with their computed font, size, weight and color, images and simple shapes. Notes go to the slide notes. Each object is named vocion:<slideId>:<path>, and a marker at the end of the notes records what was exported, because PowerPoint, Keynote and Google Slides all keep notes.
Import merges instead of replacing. A slide whose objects are still recognised gets its text edits applied to the original HTML. A new or restructured slide is converted to absolutely positioned HTML. Removed and reordered slides follow the file. The result is a new version with a report for each slide: kept, text edited, converted, added or removed.
| What happens | |
|---|---|
| Lossless | A slide whose text and notes were not edited comes back byte for byte. Slide order and deletion follow the file. |
| Merged | Edited text in a named text box, and edited notes. Only the changed span is rewritten, so bold, italic and links around it stay. |
| Converted | A slide where an object was added or deleted, and any slide that lost both its names and its marker (Google Slides can drop both). |
| Lossy | SVG, icons, shapes, connectors and anything with a gradient, shadow or filter is a picture in PowerPoint, so it is not editable there and an edit does not come back. Moved or resized objects and font, size or color changes are not applied to a recognised slide. Z-order follows DOM order. Fonts are named, not embedded, so wrapping can differ. |
Word, Google Docs and Pages
Export maps sheets to sections with page breaks, headings and paragraphs to styles, tables to tables, and images inline. Each paragraph carries a hidden bookmark vocion_<sheet>_<path>.
Import applies changed paragraph text back into the original sheet, matched by bookmark, then by text similarity (0.8 or better) for editors that drop bookmarks. A paragraph it cannot place is listed in the report as unplaced and is never guessed into a sheet. The report counts kept, edited and unplaced.
| What happens | |
|---|---|
| Round-trips | The text of headings, paragraphs, list items and table cells. Everything not edited is untouched. |
| One way | Page geometry, the pinned footer and page numbers are Word's to do. Class-driven colors and fonts are not in the DOCX, and layout is Word's flow. |
| Lost | Inline SVG. Remote and SVG images become an [image: alt] line. Image edits never come back. Added, split or merged paragraphs are reported as unplaced, and a deleted paragraph is left as it was. |
Tools
| Tool | Does |
|---|---|
render_deck | Create a deck from a spec in a data room. Render, audit, return the receipt |
read_deck | The deck as files: index, slides with notes, assets and the last receipt |
edit_deck | Operations applied together as one version: replace_slide, insert_slide, remove_slide, move_slide, replace_text, set_notes, set_title, set_asset |
verify_deck | Re-render and re-audit, optionally with the vision look |
export_deck_pdf | Print through the export gate |
deck_checkout, deck_checkin | The editor-neutral round trip. Work for decks and documents |
export_pptx, import_pptx | PowerPoint adapter for decks |
export_docx, import_docx | Word adapter for documents |
red_team_document and the export gate accept either kind. The gate holds an agent's export on a blocking finding. A person who asks for the PDF gets it, with the finding as one line of advice. See MCP tools.
Turn it on
# workspace.yaml
plugins: [proposals] # loads data-rooms first