bilig

Bilig formula bug clinic

If a workbook formula bug is blocking your Node service, send the smallest public case that proves it. The goal is not to collect private spreadsheets. The goal is to turn real failures into public fixtures that future evaluators can run.

Start with the WorkPaper clinic report when the blocker is an import, formula, persistence, or agent readback gap:

npm exec --package @bilig/workpaper@latest -- bilig-formula-clinic ./reduced.xlsx \
  --cells "Summary!B7,Inputs!B2"

That command runs locally, does not upload the workbook, imports the file into WorkPaper, samples formulas, reads the requested cells, and prints a Markdown report you can paste into the fixture form or discussion.

Good cases:

Open the fixture form when the reduced public fixture is ready: https://github.com/proompteng/bilig/issues/new?template=workbook_fixture.yml.

Discuss the shape first if you are still reducing the case: https://github.com/proompteng/bilig/discussions/414.

Generate a local report

Use the narrowest command that matches the blocker:

Blocker First local command What to paste
WorkPaper import, formula, or persistence mismatch npm exec --package @bilig/workpaper@latest -- bilig-formula-clinic ./reduced.xlsx --cells "Summary!B7,Inputs!B2" The Markdown clinic report with requested cells, formula samples, warnings, and actual readback.
Saved workbook compatibility question npm exec --yes --package @bilig/xlsx-formula-recalc@latest -- workbook-compatibility-report ./reduced.xlsx --json The compatibility report with unsupported functions, external links, volatile formulas, and inspected formula counts.

If the workbook is already reduced, run the clinic reporter locally and paste the Markdown output into the fixture form. It reads the file on your machine and does not upload workbook contents.

npm exec --package @bilig/workpaper@latest -- bilig-formula-clinic ./reduced.xlsx \
  --cells "Summary!B7,Inputs!B2"

That is the lowest-friction path for package users. It imports the workbook, samples formulas, reads the requested cells through WorkPaper, and prints a Markdown report.

If you want to pin or edit the reporter script directly:

mkdir bilig-formula-clinic
cd bilig-formula-clinic
npm init -y
npm pkg set type=module
npm install @bilig/workpaper
npm install --save-dev tsx typescript @types/node
curl -fsSLo formula-clinic-report.ts \
  https://proompteng.github.io/bilig/formula-clinic-report.ts
npx tsx formula-clinic-report.ts ./reduced.xlsx \
  --cells "Summary!B7,Inputs!B2"

Use --cells for the output cells that prove the bug. The report includes import warnings, formula samples, requested readback, and a fixture checklist.

What to send

Send one reduced public fixture, not the whole production workbook.

Include:

Do not attach confidential workbooks, customer data, financial models, or files that cannot be redistributed in a public test corpus. Replace names and numbers with neutral values while keeping the same formula shape.

Good discussion summary:

Reduced public workbook attached or linked. The clinic report reads Summary!B7
as "review" after the input edit, while Excel returns "approved" for the same
fixture. The service should return "approved".

Bad discussion summary:

My spreadsheet is wrong. Can Bilig support it?

Why this helps

A reduced workbook fixture is better than a broad bug report because it gives maintainers something concrete to merge:

When a case lands, the issue can point to the commit, release, and docs page that fixed it. That is the evidence a skeptical backend developer can inspect before adopting the package.

Fast local check

For saved workbook boundaries, first inspect compatibility risks:

npm exec --yes --package @bilig/xlsx-formula-recalc@latest -- \
  workbook-compatibility-report ./reduced.xlsx --json

If the report shows unsupported formulas, external links, macros, pivots, or volatile formulas, include that output with the reduced fixture.

For a pure WorkPaper case, reduce it to a script:

mkdir bilig-fixture-check
cd bilig-fixture-check
npm init -y
npm pkg set type=module
npm install @bilig/workpaper
npm install --save-dev tsx typescript @types/node

If the script is short enough to paste into an issue, it is probably a good fixture.

Useful references

If this helped you reduce a workbook bug but a gap still blocks adoption, open one concrete blocker or fixture note: https://github.com/proompteng/bilig/discussions/new?category=general.