dream-num/dsh-univer-office/univer
- community
Checking that the SKILL.md file is still in the repository.
Create, inspect, edit, import, export, and hand off multi-Unit .univer files through DSH tools and isolated worktrees. Use proactively for any task involving .univer files, spreadsheets or .xlsx/.csv/.tsv data, presentations or .pptx slides, .docx documents, Base databases, Board canvases, cross-Unit content, or exact Univer Facade API authoring; load this before the matching Unit skill.
Install
npx vskill@latest install dream-num/dsh-univer-office/univerSKILL.md
Univer files
Use the structured univer_* tools whenever the task creates, reads, changes, converts, or reviews office content. Do not wait for the user to name a tool. Do not invoke a global univer CLI, edit .univer storage directly, or substitute openpyxl, python-pptx, python-docx, ZIP manipulation, or another writer.
Start immediately
- Existing
.univer: calluniver_statusbefore selecting a Unit or worktree. - New
.univer: calluniver_new, thenuniver_worktreewithaction: "create". - Office source (
.xlsx,.csv,.tsv,.docx,.pptx): create the target.univerand draft worktree, then calluniver_import. - Before authoring content, load the matching Unit skill:
univer-sheet,univer-doc,univer-slide,univer-base, oruniver-board. - For an Embed or a Chart backed by another Unit's data, also load
univer-embed. For formulas that read another Unit, also loaduniver-cross-unit-formula.
Mental model
- A
.univerfile is the authoritative multi-Unit container. Each Sheet, Doc, Slide, Base, or Board is a top-level Unit with a stableunitId. - Sheet names, pages, paragraphs, tables, ranges, shapes, fields, records, and views live inside a Unit; none substitutes for
unitId. trunkis the reviewed main line. A worktree is an isolated scope for agent changes. There is no implicit current worktree.- Every content write requires the complete address:
file, draftworktreeId, andunitId. univer_executepersists only when Facade mutations occurred. A read-only execution produces no revision.readyrejects writes untilreopen.mergedanddiscardedare terminal; never reuse them.- Tool success is not correctness evidence. Read the changed model back and verify task-specific assertions.
SVG resources
When a Unit needs icons, logos, emoji, or illustrations, use the bundled resource library instead of inventing placeholders:
- Call
univer_resourceswithaction: "registries"when registry choice matters. - Call
univer_resourceswithaction: "find"and one or more semanticqueries; retain the exact returned handles. - Call it with
action: "export", thosehandles, and an explicit workspaceoutputdirectory. - Reference the exported SVG files from Slide SVG, or read one handle with
action: "read"when inline SVG text is required.
Only colorEditable: true resources may follow an authored color. Fixed logos, color emoji, and illustrations keep their intrinsic colors. Reuse the exported file; do not copy partial path data from it.
Facade API lookup
- No relevant class or API label is known: use
findwith API-name keywords or identifier fragments. - A class is known: use
showon the class to inspect its APIs. - A type or exact
Class.memberAPI label is known: useshowon that label for signatures, documentation, and examples.
find is case-insensitive. Each query is searched independently and returns its own matches; queries are not combined as AND, and find does not interpret intent. Pass a useful returned label to show instead of searching that label again.
Required workflow
- Call
univer_statusto discover Unit IDs and worktree states. - Create or select one draft worktree. Continue an existing worktree only after confirming its state.
- Create a Unit with
univer_unit, or import one withuniver_import. - Load the matching Unit skill before writing Facade code.
- Resolve unfamiliar Facade usage with
univer_apifollowing the lookup rules above. Never guess an unfamiliar signature, parameter type, or enum. - Mutate through
univer_execute, or throughuniver_compile_svgfor generated Slide page content. - Read the changed scope with
univer_inspect; use a fresh read-onlyuniver_executewhen inspection omits a required model field. - For every changed Slide page, call
univer_lintand resolve or explicitly justify each finding. - For visually relevant changes, call
univer_screenshotwith an explicit workspace output directory and the narrowest useful Unit-specific target. Inspect every returned image; screenshots complement rather than replace structural readback or Slide lint. - Export with
univer_export, or print a PDF withuniver_print_pdf, only when requested and only from the verified scope. - Mark the worktree
readyand confirm it withuniver_status.
univer_screenshot returns model-visible PNG evidence and writes the same PNGs under its explicit output directory. It requires an image-capable current model route. The DSH client also renders live worktree content and the ready review panel from tool results; that preview remains the user-facing handoff surface because there is no model-facing show/open tool. Claim visual verification only for images actually inspected in the current result.
Merge or discard only when the user explicitly requests that outcome. Both operations change review state and are not routine completion steps.
Rework after feedback
Continue in the same worktree only for changes to the same task and only after univer_status confirms that it is still ready or draft.
- If it is
ready, calluniver_worktreewithaction: "reopen". - If it is already
draft, continue directly. - Make the remaining changes and repeat the complete readback and Unit-specific verification.
- Mark it
readyagain and confirm the final status.
Never reopen or reuse a merged or discarded worktree; create a new worktree instead.
Tool map
| Stage | Tool | Use | |
|---|---|---|---|
| Start | univer_new | Create an empty .univer; never overwrites and never creates an implicit Unit. | |
| Start | univer_status | List trunk Units and worktrees, or inspect one explicit scope. | |
| Start | univer_worktree | create, ready, reopen, merge, or discard. | |
| Start | univer_unit | Create or remove a Sheet, Doc, Slide, Base, or Board in a draft worktree. | |
| Start | univer_import | Import local xlsx, csv, tsv, docx, or pptx as a new Unit. | |
| Write | univer_execute | Run version-matched Facade JavaScript against one Unit in a draft worktree. | |
| Write | univer_compile_svg | Compile workspace SVG into one explicit Slide page with browser text metrics. | |
| Verify | univer_inspect | Read structured Unit content from trunk or one worktree. | |
| Verify | univer_lint | Check Slide text off-page, container escape, and text overlap. | |
| Verify | univer_screenshot | Render Sheet, Doc, Slide, Base, or Board PNG evidence and return it to an image-capable model. | |
| Reference | univer_api | Find an unknown name, or show a known class, API, or type. | |
| Reference | univer_resources | List/find/read/export bundled SVG resources or clear their download cache. | |
| Deliver | univer_export / univer_print_pdf | Export Office files or print Sheet, Doc, Slide, or Board to PDF. |
Facade execution
univer_execute injects univerAPI, api (the same object), and one Unit-specific handle:
- Sheet:
workbook - Doc:
doc - Slide:
presentation - Base:
base - Board:
board
Do not redeclare injected variables. Use code only for a small snippet. For multi-line or reusable Facade logic, write a workspace JavaScript body file and pass it as codeFile; provide exactly one of code or codeFile.
Execution is Node ESM: require is unavailable, while dynamic import() and Buffer are available. For an explicit local workspace image, generate its data URI inside the execution instead of putting Base64 in the conversation:
Read only task assets inside the session workspace. Do not print or return the data URI. Resolve exact Facade methods with univer_api, check boolean/null returns, and retain stable IDs needed by later operations.
Import and export
- Import accepts workspace files only; URL import is unavailable.
- Export Sheet or Base to
.xlsx,.csv, or.tsv; Doc to.docx; Slide to.pptx. - Board export is unsupported.
- Export uses an explicit Unit and an explicit trunk or worktree scope. Recalculate formulas and finish readback before exporting.
Unsupported CLI-only capabilities
Do not invent equivalents for CLI maintenance, daemon/configuration, compile-typst, optimization, or shell command help. Use the bundled DSH tools for resources and screenshots; if the task requires another missing capability, report that exact gap.
Failure recovery
Tool failures use Error [CODE]: message. Route recovery by the code, not free text.
- For
GATEWAY_UNAVAILABLEorGATEWAY_REQUEST_TIMEOUT, retry oneuniver_statusread. After a write timeout, inspect status and content before continuing. - For
FILE_PERMISSION_DENIEDorSESSION_SCOPE_DENIED, use an accessible in-workspace path or ask the user to correct access; do not retry the same path. - For worktree or Unit state errors, refresh with
univer_status; reopenreadyworktrees and replace terminal ones.
Security
- Security scanPassed, 95 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/univer/SKILL.md
Popularity
- 7-day trend score
- 0
Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/dream-num/dsh-univer-office/univer)