{"id":"2ef52d84-1e85-4962-98e6-1ff4c09f22ea","shortId":"5YGRBj","kind":"skill","title":"bilig-workpaper","tagline":"Use Bilig WorkPaper for spreadsheet-style formulas in Node.js services and AI agent tools without driving Excel or browser spreadsheet UIs.","description":"# Bilig WorkPaper Agent Skill\n\nUse this skill when an agent needs spreadsheet-style formulas through files,\nterminal commands, TypeScript, HTTP routes, or MCP tools instead of Excel UI\nautomation.\n\n## When To Use\n\nUse Bilig for:\n\n- backend pricing, quote, payout, budget, import-validation, or forecast logic;\n- formula readback after writing input cells;\n- deterministic cell-address workflows for coding agents;\n- MCP clients that can run a stdio server;\n- reduced XLSX formula/import bug reports.\n\nDo not use it for manual spreadsheet editing, Office macros, VBA, pivots,\ncharts, COM automation, or exact Excel desktop behavior unless the task is an\nexplicit compatibility comparison.\n\n## Command Safety\n\nDo not build shell commands by concatenating user text. Treat the commands below\nas literal templates, validate workbook paths before use, and reject values\ncontaining newlines, backticks, `$(`, `;`, `&`, `|`, `<`, or `>`. Prefer MCP\nclient `command` plus `args` arrays or direct TypeScript calls when inserting\nuser-provided paths or cell references.\n\n## MCP Path\n\nWhen the agent host supports stdio MCP, start the file-backed WorkPaper server\nwith an argument array, not a shell-concatenated string:\n\n```json\n{\n  \"command\": \"npm\",\n  \"args\": [\n    \"exec\",\n    \"--package\",\n    \"@bilig/headless@0.23.3\",\n    \"--\",\n    \"bilig-workpaper-mcp\",\n    \"--workpaper\",\n    \"./pricing.workpaper.json\",\n    \"--init-demo-workpaper\",\n    \"--writable\"\n  ]\n}\n```\n\nUseful MCP tools:\n\n- `list_sheets`\n- `read_range`\n- `read_cell`\n- `set_cell_contents`\n- `get_cell_display_value`\n- `export_workpaper_document`\n- `validate_formula`\n\nAfter each write, read the dependent output cell and export the WorkPaper\ndocument as persistence proof.\n\n## TypeScript Path\n\nUse `@bilig/headless` directly when workbook logic belongs in a service, worker,\ntest, or route:\n\n```ts\nimport { WorkPaper, exportWorkPaperDocument, serializeWorkPaperDocument } from \"@bilig/headless\";\n\nconst workbook = WorkPaper.buildFromSheets({\n  Inputs: [\n    [\"Metric\", \"Value\"],\n    [\"Customers\", 20],\n    [\"Average revenue\", 1200],\n  ],\n  Summary: [\n    [\"Metric\", \"Value\"],\n    [\"Revenue\", \"=Inputs!B2*Inputs!B3\"],\n  ],\n});\n\nconst inputs = workbook.getSheetId(\"Inputs\");\nconst summary = workbook.getSheetId(\"Summary\");\nif (inputs === undefined || summary === undefined) {\n  throw new Error(\"Workbook is missing required sheets\");\n}\n\nworkbook.setCellContents({ sheet: inputs, row: 1, col: 1 }, 32);\nconst revenue = workbook.getCellDisplayValue({ sheet: summary, row: 1, col: 1 });\nconst saved = serializeWorkPaperDocument(exportWorkPaperDocument(workbook, { includeConfig: true }));\n\nconsole.log({ revenue, savedBytes: saved.length });\n```\n\n## Required Proof\n\nA successful response should include:\n\n- exact edited sheet and A1 cell;\n- before values for relevant inputs and dependent outputs;\n- after values read from the recalculated workbook;\n- persistence evidence from serialized or exported WorkPaper state;\n- limitations for unsupported formulas or Excel-only features.\n\nIf any proof step fails, report the blocker instead of claiming the workbook was\nupdated.\n\n## References\n\n- Docs map: https://proompteng.github.io/bilig/llms.txt\n- Agent handbook: https://proompteng.github.io/bilig/headless-workpaper-agent-handbook.html\n- MCP guide: https://proompteng.github.io/bilig/mcp-workpaper-tool-server.html\n- Formula clinic: https://proompteng.github.io/bilig/formula-bug-clinic.html\n- Repository: https://github.com/proompteng/bilig","tags":["bilig","workpaper","proompteng","agent-skills","agent-tools","ai-agents","claude-code","claude-skills","excel-formulas","formula-engine","headless-spreadsheet","mcp"],"capabilities":["skill","source-proompteng","skill-bilig-workpaper","topic-agent-skills","topic-agent-tools","topic-ai-agents","topic-claude-code","topic-claude-skills","topic-excel-formulas","topic-formula-engine","topic-headless-spreadsheet","topic-mcp","topic-mcp-server","topic-model-context-protocol","topic-nodejs"],"categories":["bilig"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/proompteng/bilig/bilig-workpaper","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add proompteng/bilig","source_repo":"https://github.com/proompteng/bilig","install_from":"skills.sh"}},"qualityScore":"0.462","qualityRationale":"deterministic score 0.46 from registry signals: · indexed on github topic:agent-skills · 24 github stars · SKILL.md body (3,490 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-18T19:05:12.221Z","embedding":null,"createdAt":"2026-05-18T19:05:12.221Z","updatedAt":"2026-05-18T19:05:12.221Z","lastSeenAt":"2026-05-18T19:05:12.221Z","tsv":"'/bilig/formula-bug-clinic.html':431 '/bilig/headless-workpaper-agent-handbook.html':421 '/bilig/llms.txt':416 '/bilig/mcp-workpaper-tool-server.html':426 '/pricing.workpaper.json':217 '/proompteng/bilig':435 '0.23.3':211 '1':327,329,337,339 '1200':293 '20':290 '32':330 'a1':362 'address':82 'agent':17,28,35,86,182,417 'ai':16 'arg':163,207 'argument':196 'array':164,197 'autom':55,114 'averag':291 'b2':299 'b3':301 'back':191 'backend':62 'backtick':156 'behavior':119 'belong':268 'bilig':2,5,26,60,213 'bilig-workpap':1 'bilig-workpaper-mcp':212 'bilig/headless':210,263,282 'blocker':403 'browser':23 'budget':66 'bug':98 'build':132 'call':168 'cell':78,81,176,231,233,236,251,363 'cell-address':80 'chart':112 'claim':406 'client':88,160 'clinic':428 'code':85 'col':328,338 'com':113 'command':44,128,134,141,161,205 'comparison':127 'compat':126 'concaten':136,202 'console.log':347 'const':283,302,306,331,340 'contain':154 'content':234 'custom':289 'demo':220 'depend':249,370 'desktop':118 'determinist':79 'direct':166,264 'display':237 'doc':412 'document':241,256 'drive':20 'edit':107,359 'error':317 'evid':380 'exact':116,358 'excel':21,53,117,393 'excel-on':392 'exec':208 'explicit':125 'export':239,253,384 'exportworkpaperdocu':279,343 'fail':400 'featur':395 'file':42,190 'file-back':189 'forecast':71 'formula':11,40,73,243,390,427 'formula/import':97 'get':235 'github.com':434 'github.com/proompteng/bilig':433 'guid':423 'handbook':418 'host':183 'http':46 'import':68,277 'import-valid':67 'includ':357 'includeconfig':345 'init':219 'init-demo-workpap':218 'input':77,286,298,300,303,305,311,325,368 'insert':170 'instead':51,404 'json':204 'limit':387 'list':226 'liter':144 'logic':72,267 'macro':109 'manual':105 'map':413 'mcp':49,87,159,178,186,215,224,422 'metric':287,295 'miss':320 'need':36 'new':316 'newlin':155 'node.js':13 'npm':206 'offic':108 'output':250,371 'packag':209 'path':148,174,179,261 'payout':65 'persist':258,379 'pivot':111 'plus':162 'prefer':158 'price':63 'proof':259,352,398 'proompteng.github.io':415,420,425,430 'proompteng.github.io/bilig/formula-bug-clinic.html':429 'proompteng.github.io/bilig/headless-workpaper-agent-handbook.html':419 'proompteng.github.io/bilig/llms.txt':414 'proompteng.github.io/bilig/mcp-workpaper-tool-server.html':424 'provid':173 'quot':64 'rang':229 'read':228,230,247,374 'readback':74 'recalcul':377 'reduc':95 'refer':177,411 'reject':152 'relev':367 'report':99,401 'repositori':432 'requir':321,351 'respons':355 'revenu':292,297,332,348 'rout':47,275 'row':326,336 'run':91 'safeti':129 'save':341 'saved.length':350 'savedbyt':349 'serial':382 'serializeworkpaperdocu':280,342 'server':94,193 'servic':14,271 'set':232 'sheet':227,322,324,334,360 'shell':133,201 'shell-concaten':200 'skill':29,32 'skill-bilig-workpaper' 'source-proompteng' 'spreadsheet':9,24,38,106 'spreadsheet-styl':8,37 'start':187 'state':386 'stdio':93,185 'step':399 'string':203 'style':10,39 'success':354 'summari':294,307,309,313,335 'support':184 'task':122 'templat':145 'termin':43 'test':273 'text':138 'throw':315 'tool':18,50,225 'topic-agent-skills' 'topic-agent-tools' 'topic-ai-agents' 'topic-claude-code' 'topic-claude-skills' 'topic-excel-formulas' 'topic-formula-engine' 'topic-headless-spreadsheet' 'topic-mcp' 'topic-mcp-server' 'topic-model-context-protocol' 'topic-nodejs' 'treat':139 'true':346 'ts':276 'typescript':45,167,260 'ui':25,54 'undefin':312,314 'unless':120 'unsupport':389 'updat':410 'use':4,30,58,59,102,150,223,262 'user':137,172 'user-provid':171 'valid':69,146,242 'valu':153,238,288,296,365,373 'vba':110 'without':19 'workbook':147,266,284,318,344,378,408 'workbook.getcelldisplayvalue':333 'workbook.getsheetid':304,308 'workbook.setcellcontents':323 'worker':272 'workflow':83 'workpap':3,6,27,192,214,216,221,240,255,278,385 'workpaper.buildfromsheets':285 'writabl':222 'write':76,246 'xlsx':96","prices":[{"id":"d22f8fb8-0a71-4157-9be9-52db701527fa","listingId":"2ef52d84-1e85-4962-98e6-1ff4c09f22ea","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"proompteng","category":"bilig","install_from":"skills.sh"},"createdAt":"2026-05-18T19:05:12.221Z"}],"sources":[{"listingId":"2ef52d84-1e85-4962-98e6-1ff4c09f22ea","source":"github","sourceId":"proompteng/bilig/bilig-workpaper","sourceUrl":"https://github.com/proompteng/bilig/tree/main/skills/bilig-workpaper","isPrimary":false,"firstSeenAt":"2026-05-18T19:05:12.221Z","lastSeenAt":"2026-05-18T19:05:12.221Z"}],"details":{"listingId":"2ef52d84-1e85-4962-98e6-1ff4c09f22ea","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"proompteng","slug":"bilig-workpaper","github":{"repo":"proompteng/bilig","stars":24,"topics":["agent-skills","agent-tools","ai-agents","claude-code","claude-skills","excel-formulas","formula-engine","headless-spreadsheet","mcp","mcp-server","model-context-protocol","nodejs","skillsmp","spreadsheet","spreadsheet-formulas","typescript","workbook-api","workbook-automation","xlsx","xlsx-recalculation"],"license":"mit","html_url":"https://github.com/proompteng/bilig","pushed_at":"2026-05-18T18:49:24Z","description":"Formula WorkPaper runtime for Node.js services and agent tools: edit cells, recalculate, verify readback, persist JSON.","skill_md_sha":"ceaed5278cb81075d7de9dbbaa292353d998b5aa","skill_md_path":"skills/bilig-workpaper/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/proompteng/bilig/tree/main/skills/bilig-workpaper"},"layout":"multi","source":"github","category":"bilig","frontmatter":{"name":"bilig-workpaper","description":"Use Bilig WorkPaper for spreadsheet-style formulas in Node.js services and AI agent tools without driving Excel or browser spreadsheet UIs."},"skills_sh_url":"https://skills.sh/proompteng/bilig/bilig-workpaper"},"updatedAt":"2026-05-18T19:05:12.221Z"}}