Why it beats a plain document prompt
Answer first, design second.
Executives must grasp the recommendation in 60 seconds. A pretty palette with a buried conclusion is not a business document.
Answer first (BLUF)
Action titles where the title is the conclusion, one-page reports, SCQA executive summaries, RAG dashboards. Message structure comes before any design.
Consistent company brand
Both company-template inheritance and a brand-kit.json interview. Capture colors, fonts, logo, and policy once and apply them across every format.
Verification, not eyeballing
The builder never self-approves. An independent critic runs office-gate to judge spelling, facts, emoji, and color contrast - then reads the rendered PNG to catch text overflow and leftover placeholders.
Not one default template
Format and operation pick the mode.
Read the signal, route to the right library and design. Every build mode is verified by the same office-gate.
| Mode | Signal | Output |
| DOCX | report · proposal · draft · official letter | python-docx body document |
| PPTX | deck · report slides · precise tables/shapes | python-pptx precise control |
| XLSX | settlement · KPI · dashboard · formulas/charts | openpyxl conditional formatting/charts |
| HWPX | Hangul official doc · public/corporate standard | python-hwpx first-class |
| PDF | multi-page PDF generation · PDF read | Chromium/WeasyPrint · pdfplumber |
| READ | read existing documents · extract tables | unified parser matrix |
| CONVERT | format conversion (hwpx↔docx↔pdf↔xlsx) | LibreOffice + H2Orestart |
| BRAND | apply company template/style (overlay) | .superoffice/brand-kit.json |
Capture the brand once, apply everywhere
brand-kit.json - the differentiator for execs.
Template-file inheritance (Presentation("brand.pptx")) plus a short interview (≤5 questions) capture colors, fonts, logo, and policy. Company colors must still pass contrast-gate AA.
primary #273340
accent #3D5A80
RAG green
RAG amber (dark text)
RAG red
A deterministic gate, not a vibe check
Predictable failure is greppable.
A script computes the verdict, so silent defects cannot pass. Binary documents are scanned by exporting body text/cells first.
$ bash templates/office-gate.sh .superoffice/q1-report body.txt
-- safety-gate (universal, no band) --
body.txt:4 [emoji] no emoji, use bracket markers [현황]
-- korean-gate --
body.txt:7 [korean-spacing] "할수있다" -> "할 수 있다"
-- integrity-gate --
body.txt:1 [year] 2026 unsourced - cite in facts.json or cut
# after fixing, re-run
$ bash templates/office-gate.sh .superoffice/q1-report body.txt
== SAFETY GATE: PASS ==
== KOREAN GATE: PASS ==
== INTEGRITY GATE: PASS == (sourced facts)
== CONTRAST GATE: PASS == (WCAG AA)
== OFFICE PREFLIGHT: PASS ==
safety-gateEmoji / PII / insecure links / forbidden words (no band - adult business docs).
korean-gateWord spacing + common spelling (korean-rules.json). Only near-certain errors block.
integrity-gateEvery number/date/stat in facts.json must be sourced. Unsourced figures blocked.
contrast-gateText/background pairs on covers, charts, badges at WCAG AA. Company colors too.
render verifyOfficeCLI (optional) renders docx/pptx/xlsx to PNG - overflow, overlap, and leftover placeholders are inspected visually, with view issues/validate as deterministic backup. Absent tool is logged as "unverified", never faked.
Role-separated, subagent-default
The builder does not grade its own work.
A conductor dispatches brand-interviewer → producer → critic in fresh contexts; outputs accumulate in the vault.
- ReadDeclare format / audience / purpose / conversion target in one line.
- BrandInherit a company template or capture brand-kit.json in ≤5 questions.
- Builddoc-producer / xlsx-producer. Message structure + palette, real assets only.
- CritiqueIndependent. Run office-gate.sh plus a rendered-PNG visual pass, log every violation, no edits.
- VerifySmallest fix per violation, re-run until green. Cap 3 cycles.
Install + quickstart
It lives in ~/.claude/skills/superoffice.
Self-contained, graceful fallback. A missing library or converter is logged as a placeholder + [substitution], never faked.
# install the skill
git clone https://github.com/cskwork/superoffice-skills ~/.claude/skills/superoffice
# then, in Claude Code
/superoffice "Q1 results report as docx"
/superoffice "new-business proposal deck, company template" # PPTX + BRAND
/superoffice "monthly KPI dashboard as xlsx" # XLSX
/superoffice "cooperation official letter as hwpx" # HWPX
/superoffice "extract the tables from this xlsx" # READ