dream-num/dsh-univer-office/univer-base
- community
Checking that the SKILL.md file is still in the repository.
Create, edit, calculate, inspect, export, and review Univer Base database Units through DSH tools and the Lite Interface. Use proactively for Base tables, fields, records, views, Formula fields, structured references, Sheet-backed external references, Base import/export, or any Base Unit task.
Install
npx vskill@latest install dream-num/dsh-univer-office/univer-baseSKILL.md
Univer Base Units
Load univer first. A Base is one Unit inside a .univer file:
- Tables own their fields, records, and views; views only add filter, sort, group, visibility, and type-specific presentation.
- The primary field is the record's visible identity for links, cards, and details. Define it with
insertTable(..., { primaryFieldName })instead of adding a duplicate label field. - Use stable Unit/Table/Field/Record/View IDs in Facade relationships and user-facing names for display. Record values and view config normally refer to Field IDs.
table.getFormulaName()is only the structured-reference name for formulas; it may differ from the table's display name.
Entry
Create the Base with univer_unit in a draft worktree, then call univer_inspect with its unitId before editing. univer_execute predefines univerAPI, api, and the selected FBase as base. Use base directly; these bindings are reserved and must not be redeclared.
Do not call createBase() after univer_unit just to obtain a handle. A new Base already contains Table 1 with a primary Name field and Grid; insertTable() also creates a Grid. Inspect first, then deliberately reuse, rename, or delete defaults.
Exact API
Use univer_api to show:
FUniver.getBase,FBase,FBaseTable,FBaseTableField,FBaseTableRecord,FBaseTableViewFEnum.BaseFieldType,FBase.insertTable,FBaseTable.addField,FBaseTable.addRecords,FBaseTable.createViewIGridViewConfig,ICalendarViewConfig,IGalleryViewConfig,IGanttViewConfig,IKanbanViewConfig,ICardLayoutConfig
Use focused discovery such as recordLink with the Base Unit filter. Follow every referenced child type: if a result says card?: ICardLayoutConfig, show ICardLayoutConfig instead of guessing its shape.
Core contracts
- Add fields one at a time with
FBaseTable.addField(...); there is noaddFieldsmethod. - Single/MultiSelect options use
{ id, name, color? }; records store option IDs, not labels. - Progress values follow its configured range: with
{ start: 0, end: 100 }, 75% is75, not0.75. - Money uses
BaseFieldType.Currencyand numeric values; Number is not a semantic substitute. - RecordLink config targets a Table ID and stores target Record IDs. Prefer its dedicated Facade methods when editing links.
- View config uses Field IDs. Kanban/Gallery card title and fields follow
ICardLayoutConfig;fieldSettingsdoes not replace the card contract.
OOXML Base table formulas
Base Formula fields must use exact Excel structured references:
Table[[#This Row],[Column]]orTable[@[Column]]reads one value from the formula record's row.Table[[#Data],[Column]]orTable[Column]reads the complete data column.- Unqualified
[@[Column]]is valid only for the current row of the Host table. table[Column]is invalid unlesstableis the real table identifier.
Resolve every table's formula identifier with table.getFormulaName(). It may differ from the display name when duplicated or illegal as an Excel table name.
A qualified #This Row reference to another Base table aligns by row position. Use it only when both tables deliberately share row order. For relational data, use a stable key or RecordLink with lookup logic. Use #Data only for intended full-column aggregation.
After writing a Formula field, subscribe to calculation completion before triggering the change, await it, and read computed record values. Stored formula text alone is not evidence.
Formula fields with a Sheet source
Persist the complete external-reference binding with the Formula field:
The formula qualifier and binding qualifier must match exactly. For broader cross-Unit formula work, load univer-cross-unit-formula as well.
Verification
After the last write, check:
univer_inspectfor tables, primary fields, field types and config, record counts, and view types. It is read-only and accepts no selector for Base.- In a fresh read-only
univer_execute, explicitlyreturnrecord values plusview.getConfig()/view.getProjection()for stored IDs and view bindings. For Formula fields, also verify formula source, external bindings, and calculated results. - Call
univer_screenshotwith the BaseunitId, selected worktree or trunk, and an explicit workspaceoutputdirectory. Inspect the returned full-workbench PNG for blank labels, exposed IDs, implausible dates/percentages, missing card fields, empty defaults, and the opening active table/view.
Base screenshots accept only common screenshot arguments; do not pass Sheet ranges, Slide pages, or Board selectors.
Base may export to .xlsx, .csv, or .tsv through univer_export. Await calculation and complete readback before export.
Security
- Security scanPassed, 100 of 100Pattern checks on the skill's files.
- Model reviewNot runA model review is scheduled for the next rescan.
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/univer-base/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-base)