build-workbook — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited build-workbook (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
The Excel workbook is the source of truth for the year's bookkeeping. Everything downstream — PDF reports, statutory annual report, ERP push — derives from it.
This skill builds regnskab{YYYY}/{YYYY} {Company}-vN.xlsx. Use the xlsx plugin skill for the actual workbook construction.
-v1.xlsx.-v{N+1}.xlsx and edit there. Never edit a prior version in place.N is always the active workbook.This way the user can see exactly what changed between iterations.
settings/business.md — company name, registration number, fiscal year.countries/{country}/rules.md — posting rules. Section 1–3 lists which accounts are in active use; section 4 is the line-by-line rules; section 5 is the workbook layout.countries/{country}/chart_of_accounts.md — chart structure and account dimensions.regnskab{YYYY}/note{YYYY}.md — year-specific adjustments.-vN.xlsx) — opening balances come from its closing balances.The exact sheet list comes from countries/{country}/rules.md § 5. For DK that is:
Saldobalance — kontonr., kontonavn, primo, debet, kredit, ultimo.Bogføring (or Journal) — Bilag, Dato, Tekst, Modkonto, Debet, Kredit, Konto.Moms — empty if VAT-exempt.Notes — note{YYYY}.md content + følgenoter.Recon {Bank} — one per external account.Skatteopgørelse — bridge from accounting to taxable result.Årsregnskab — collapsed P&L and balance sheet.The scripts/import_xlsx_to_sqlite.py reader requires at minimum:
Journal (or Bogføring — both names are accepted) with these column headers in row 1: Bilag, Dato, Tekst, Konto nr., Konto navn, Debet, Kredit, Note, Bilag-fil.Saldobalance with: Type, Konto nr., Konto navn, Primo …, Debet …, Kredit …, Ultimo ….Other sheets are not required by the scripts but are required by the country's rules.md.
Saldobalance sheet.templates/workbook_template.xlsx (if present) or build sheets from scratch.Saldobalance!Primo.rules.md § 4 to determine debit + credit accounts. If a transaction does not fit any rule, halt and ask the user.Bogføring sheet with sequential Bilag IDs grouped by source document.note{YYYY}.md:Skatteopgørelse sheet first, then book on Bogføring).Saldobalance!Debet / Kredit / Ultimo from the journal sums.Recon {Bank} sheets — each must net to zero.Årsregnskab sheet: collapse dimensions, group by P&L vs. balance sheet, compute prior-year comparatives.From countries/{country}/rules.md § 4. The most common ones across countries:
Bilag ID and a reference in Bilag-fil (unless system-generated — see below).kr. 10.000,00 and ddmmyyyy for DK).System-generated entries (no Bilag-fil required, but flagged as is_system=1 for the bilagsoversigt):
regnskab{YYYY}/{YYYY} {Company}-vN.xlsx — the workbook itself.
After building, always invoke scripts/import_xlsx_to_sqlite.py {YYYY} to update regnskab{YYYY}/ledger.db. The reports skill needs that database.
Σdebet = Σkredit and primo + debet − kredit = ultimo per account).Bilag ID.Bilag-fil reference that points to a real file in input/.Recon {Bank} sheet nets to zero.note{YYYY}.md is reserved on the correct equity account.~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.