Officecli Commonly Templates
Team-Commonly/commonly
A skill your agent uses when producing a polished, Commonly-branded deliverable (.docx brief / memo, .xlsx data matrix, .pptx deck) and you do not have specific brand guidance from the user.
Builds and edits Excel workbooks for the Brigade agent, with live formulas, formatting, dropdowns and multiple sheets, plus an optional recalculation check.
$ npx skills add spinabot/brigade --skill xlsx -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install spinabot/brigade xlsx --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/spinabot/brigade.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/xlsx .claude/skills/xlsx && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "xlsx" agent skill from https://github.com/spinabot/brigade/tree/main/skills/xlsx into .claude/skills/xlsx/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "xlsx", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/spinabot/brigade/tree/main/skills/xlsxType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add spinabot/brigade --skill xlsx -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install spinabot/brigade xlsx --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/spinabot/brigade.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/xlsx .agents/skills/xlsx && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "xlsx" agent skill from https://github.com/spinabot/brigade/tree/main/skills/xlsx into .agents/skills/xlsx/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "xlsx", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add spinabot/brigade --skill xlsx -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install spinabot/brigade xlsx --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/spinabot/brigade.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/xlsx .cursor/skills/xlsx && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "xlsx" agent skill from https://github.com/spinabot/brigade/tree/main/skills/xlsx into .cursor/skills/xlsx/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "xlsx", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/spinabot/brigade.git --path skills/xlsx--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add spinabot/brigade --skill xlsx -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install spinabot/brigade xlsx --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/spinabot/brigade.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/xlsx .gemini/skills/xlsx && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "xlsx" agent skill from https://github.com/spinabot/brigade/tree/main/skills/xlsx into .gemini/skills/xlsx/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "xlsx", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install spinabot/brigade xlsxInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add spinabot/brigade --skill xlsx -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/spinabot/brigade.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/xlsx .github/skills/xlsx && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "xlsx" agent skill from https://github.com/spinabot/brigade/tree/main/skills/xlsx into .github/skills/xlsx/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "xlsx", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add spinabot/brigade --skill xlsx -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install spinabot/brigade xlsx --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/spinabot/brigade.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/xlsx .opencode/skills/xlsx && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "xlsx" agent skill from https://github.com/spinabot/brigade/tree/main/skills/xlsx into .opencode/skills/xlsx/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "xlsx", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
xlsxBuilds and edits Excel workbooks for the Brigade agent, with live formulas, formatting, dropdowns and multiple sheets, plus an optional recalculation check.
Spreadsheet work in the Brigade runtime follows four routes. A quick table or multi-sheet dump goes through the make_document tool; live formulas, styling, conditional formatting, dropdowns, named ranges, frozen panes and merged cells go through a script using the exceljs library run with brigade exec-node; edits to an existing workbook use the edit_document tool; and an optional recalculation loop checks for formula errors.
Two rules apply throughout. Totals, percentages, ratios and growth are written as Excel formulas rather than computed values pasted in, so the sheet stays live when inputs change. Numbers are stored as numbers and shaped with a number format, never as text such as a currency string, because text will not sum or sort.
When editing someone else's workbook, the agent matches its column order, units and formats instead of the defaults here. The edit tool offers set_cells for targeted changes and append_rows for growing a table, and dates are passed as real date values with a date format rather than as strings.
2 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 4c2a18f. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
sofficeFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Brigade Spreadsheet Builder loads about 1.4k tokens when it runs. Until then it costs about 94 tokens; SKILL.md has 430 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from spinabot/brigade at commit 4c2a18f, republished under its MIT licence (© spinabot). 430 words, ~1,359 tokens.
.claude/skills/xlsx/SKILL.md (or your agent's skills folder).| Need | Path |
|---|---|
| Simple table / multi-sheet dump (headers + rows, optional per-column number format) | Path 1 — make_document tool |
| Live formulas, cell styling, conditional formatting, dropdowns, named ranges, freeze panes, merged cells, dates | Path 2 — script the exceljs library via brigade exec-node |
| Surgical edits to an existing workbook | Path 3 — edit_document tool |
| Guarantee no formula errors / get computed values | Path 4 — recalc-verify loop (optional soffice) |
The two non-negotiable rules (they separate a real model from a hack):
=B5*(1+$B$6)), never compute the number in code and paste a literal — so the sheet stays live when inputs change. This applies to every total, percentage, ratio, and growth.1200000, format for display ($#,##0) — never the string "$1.2M", or it won't sum or sort.make_document tool)make_document(format="xlsx", content={ sheets:[{ name, header, rows, numberFormats }] })Cells may be string | number | {formula, numFmt}. Fine for a straight data table. For styling, validation, charts, or a model → Path 2.
exceljs libraryBrigade bundles exceljs. write a gen.cjs, then run brigade exec-node gen.cjs:
// gen.cjs — illustrative
const ExcelJS = require("exceljs");
const wb = new ExcelJS.Workbook();
const ws = wb.addWorksheet("Model", { views: [{ state: "frozen", ySplit: 1 }] }); // freeze header row
ws.columns = [
{ header: "Item", key: "item", width: 28 },
{ header: "FY24 ($)", key: "v", width: 16, style: { numFmt: "$#,##0" } },
];
ws.getRow(1).font = { bold: true };
ws.getRow(1).fill = { type: "pattern", pattern: "solid", fgColor: { argb: "FFD9E2F3" } };
// Assumptions block — blue font marks hardcoded INPUTS (banker convention)
ws.getCell("E1").value = "Growth"; ws.getCell("E2").value = 0.18;
ws.getCell("E2").numFmt = "0.0%"; ws.getCell("E2").font = { color: { argb: "FF0000FF" } };
wb.definedNames.add("Model!$E$2", "growth"); // named range
ws.addRow({ item: "Revenue", v: 1200000 });
ws.addRow({ item: "Next year", v: { formula: "B2*(1+growth)" } }); // FORMULA, references the named input
ws.getCell("B3").font = { color: { argb: "FF000000" } }; // black = formula
// dropdown + conditional formatting
ws.getCell("A6").dataValidation = { type: "list", allowBlank: false, formulae: ['"Low,Med,High"'] };
ws.addConditionalFormatting({ ref: "B2:B3", rules: [
{ type: "cellIs", operator: "lessThan", formulae: ["0"], style: { font: { color: { argb: "FFFF0000" } } } } ]});
wb.xlsx.writeFile(process.argv[2] || "out.xlsx").then(() => console.log("wrote"));exceljs covers: number/date formats, font/fill/border/alignment, conditional formatting, data-validation dropdowns, named ranges, freeze panes, autofilter, merged cells, images, sheet protection, multi-sheet. Dates: pass a real new Date(...) and set a date numFmt (don't pass a string).
edit_document tool)set_cells {sheet?, cells:[{ref|row,col, value, numFmt?}]} — surgical edits; other sheets untouched.append_rows {sheet?, rows} — grow a table.
When editing someone's workbook, match its existing conventions exactly (column order, units, formats) — the template always wins over the defaults here.exceljs stores formula strings but does not evaluate them — a typo (#REF!, #DIV/0!) is invisible until the file is opened. If LibreOffice is present, force a recalc and inspect; otherwise hand-check ranges and keep formulas simple.
command -v soffice >/dev/null 2>&1 && soffice --headless --convert-to pdf --outdir /tmp out.xlsx # then read the PDF: no #REF!/#DIV/0! anywhereLoop: build → recalc → if any error token appears, fix the formula → recalc again. Target: zero formula errors in the delivered file.
$B$6) or by named range; document any sourced hardcode in a cell comment ("Source: 10-K FY24 p.45").$#,##0 with units in the header; percentages 0.0%; multiples 0.0x; negatives in parentheses; years as text.Re-open with edit_document/read or confirm the file unzips with the expected sheet names; if you used formulas, run the Path-4 recalc and confirm zero errors before declaring done.
© spinabot, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in skills/xlsx of spinabot/brigade.
Open the folder on GitHubat commit 4c2a18f
Brigade Spreadsheet Builder next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Brigade Spreadsheet Builder this skillspinabot/brigade | 11k | — | ~1.4k | Automated safety check: Pass | MIT | |
| Officecli Commonly TemplatesTeam-Commonly/commonly | 1.4k | — | ~1.7k | Automated safety check: Pass | Apache-2.0 | |
| Open-Sheet Workbook Creatorlianghsun/open-sheet | 127 | — | ~1.4k | Automated safety check: Pass | MIT | |
| Lark Sheetsrongxinzy/RongxinAI | 154 | 2 repos | ~5.3k | Automated safety check: Pass | AGPL-3.0 | |
| Officecli Data DashboardFerroxLabs/wayland | 608 | 4 repos | ~9.2k | Automated safety check: Pass | AGPL-3.0 | |
| XLSX Toolkitborghei/Claude-Skills | 886 | — | ~1.4k | Automated safety check: Pass | MIT |
Team-Commonly/commonly
A skill your agent uses when producing a polished, Commonly-branded deliverable (.docx brief / memo, .xlsx data matrix, .pptx deck) and you do not have specific brand guidance from the user.
lianghsun/open-sheet
Walks an agent through building a new spreadsheet workbook in an open-sheet project, from choosing a theme to settling the real numbers and workbook type.
rongxinzy/RongxinAI
飞书电子表格:创建和操作电子表格。支持创建表格、管理工作表与行列结构(增删/合并/调整尺寸/隐藏/冻结)、读写单元格(值/公式/样式/批注/单元格图片)、查找替换、多操作原子批量更新,以及图表、透视表、条件格式、筛选器、迷你图、浮动图片等对象的创建与维护。当用户需要创建电子表格、管理工作表、批量读写或编辑数据、统计汇总与可视化、表格美化、公式计算(含 Excel…
FerroxLabs/wayland
A skill your agent uses to build a multi-element Excel dashboard - Dashboard sheet on open, multiple formula-driven KPI cards, multiple charts, sparklines, and conditional formatting - from CSV or…
borghei/Claude-Skills
Audit Microsoft Excel (.xlsx) workbooks for formula density, external references, named ranges, hidden sheets, and data validation.
CatCatUncle/openworkbuddy
财务测算——收入/成本拆到能改的假设上,算单位经济,做敏感性,输出一份能自己改数的 Excel. An agent skill from CatCatUncle/openworkbuddy.
spinabot/brigade
Shows HTML content such as games, dashboards, visualizations and demos on a connected Brigade node's canvas, using a local canvas host server and a node bridge.
spinabot/brigade
Creates and edits Word documents along four paths of rising capability, from a quick tool to the docx library, an OOXML round-trip and pandoc, then verifies the file.
spinabot/brigade
Writes HTML compositions with a GSAP timeline that the render_video tool turns into deterministic MP4 videos from data, text or layouts.
spinabot/brigade
Diagnoses why a Brigade companion app can't pair or connect, by first identifying the real node-to-gateway route and then fixing auth.
spinabot/brigade
Connects an OAuth 2.0 account such as Gmail with the built-in oauth_authorize tool: an authorization link, automatic code capture and sealed token storage.
spinabot/brigade
Creates and edits PDFs in Brigade through four paths: a quick content tool, an edit tool for forms and merging, a pdf-lib script for full control, and HTML-to-PDF for styled layouts.
Works with
Categories
Builds and edits Excel workbooks for the Brigade agent, with live formulas, formatting, dropdowns and multiple sheets, plus an optional recalculation check. Spreadsheet work in the Brigade runtime follows four routes. A quick table or multi-sheet dump goes through the make_document tool; live formulas, styling, conditional formatting, dropdowns, named ranges, frozen panes and merged cells go through a script using the exceljs library run with brigade exec-node; edits to an existing workbook use the edit_document tool; and an optional recalculation loop checks for formula errors.
Brigade Spreadsheet Builder fits situations like: creating a spreadsheet or simple financial model with live formulas; making targeted edits to a workbook without disturbing its other sheets; adding dropdown validation, conditional formatting or frozen headers to a sheet.
Run `npx skills add spinabot/brigade --skill xlsx -a claude-code`. Or copy the skill folder (skills/xlsx in spinabot/brigade) into .claude/skills/xlsx in your project. Claude Code loads it when a task matches its description.
Run `npx skills add spinabot/brigade --skill xlsx -a codex`. Or copy the skill folder (skills/xlsx in spinabot/brigade) into .agents/skills/xlsx in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add spinabot/brigade --skill xlsx -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/xlsx, .gemini/skills/xlsx, .github/skills/xlsx and .opencode/skills/xlsx in your project.
Going by SKILL.md and its folder, Brigade Spreadsheet Builder needs the command-line tools its instructions call (soffice). Our summary lists: The Brigade agent runtime with its make_document and edit_document tools; soffice (LibreOffice) for the optional recalculation loop.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Brigade Spreadsheet Builder is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.4k tokens (SKILL.md is roughly 5.4k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Brigade Spreadsheet Builder: Officecli Commonly Templates (Team-Commonly/commonly, 1.4k stars), Open-Sheet Workbook Creator (lianghsun/open-sheet, 127 stars), Lark Sheets (rongxinzy/RongxinAI, 154 stars) and Officecli Data Dashboard (FerroxLabs/wayland, 608 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
spinabot (a GitHub organization) maintains it in spinabot/brigade, which has 11,299 GitHub stars. The repository holds 11 skills in this directory. The repository was last updated on October 8, 2026.
Source: spinabot/brigade on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.