Yearly bookkeeping
End-of-year bookkeeping pipeline for a small holding company. Trigger when the user asks to "start regnskab YYYY", "lav årsregnskab", "bogfør året", "close the books YYYY", or creates a new regnskab{YYYY}/ folder. Drives the full input → markdown → xlsx → reports → approval → annual report → ERP pipeline by orchestrating the four phase-specific skills.From its SKILL.md
npx -y skills add NOGIT007/holding-accounting --skill yearly-bookkeepingAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
4.4 KB, ~1.0k tokens by cl100k_base, as published. Nobody here has run it
Yearly bookkeeping — orchestrator skill
This skill closes one accounting year for a holding company. It does not do the work itself — it orchestrates the four phase skills:
convert-inputs— source files → markdown.build-workbook— markdown → xlsx workbook.generate-reports— xlsx → 3 PDF reports.upload-to-erp(optional) — xlsx → ERP via the configured connector.
Mandatory pre-reads
Before doing anything, read these files in order. Do not paraphrase or skim.
settings/business.md— company profile (name, registration number, owner, fiscal year).countries/{country}/rules.md— posting rules tied to the chart of accounts.countries/{country}/tax.md— corporate tax rules.countries/{country}/compliance.md— bookkeeping-law controls.regnskab{YYYY}/note{YYYY}.md— year-specific notes from the user (proposed dividend, shareholder loan changes, extraordinary postings). If missing, STOP and ask the user to create it. A template lives attemplates/note_YYYY.md.template.
The active country is read from settings/.env (COUNTRY=...) or defaults to dk.
Then read the previous year's closing balances from the previous year's workbook. These become the opening balances for the year being processed.
Pipeline
Phase 1 — Confirm handover
- Verify
regnskab{YYYY}/input/exists and contains the expected source files. - Verify
regnskab{YYYY}/note{YYYY}.mdexists and is filled in. - If anything is missing, list what is missing and ask the user to upload before proceeding.
Phase 2 — Convert inputs
Invoke the convert-inputs skill. It produces regnskab{YYYY}/input/markdown/*.md. From this point on, always read the markdown versions — never the original PDFs / xlsx files.
Phase 3 — Build the workbook
Invoke the build-workbook skill. It produces regnskab{YYYY}/{YYYY} {Company}-vN.xlsx with all sheets defined in countries/{country}/rules.md § 5.
Phase 4 — Generate reports + approval gate
Invoke the generate-reports skill. It runs scripts/run_reports.py {YYYY} and produces the three PDFs in regnskab{YYYY}/output/.
Present in chat (not in a file yet):
- Saldobalance — all accounts with non-zero balances.
- Journal — full list of postings in the year.
- Reconciliation summary — diffs and unresolved items.
- Resultatdisponering — overført resultat, foreslået udbytte, hensat selskabsskat.
Link the three PDFs.
HARD STOP. Do not proceed to Phase 5 until the user replies with explicit approval ("OK", "godkendt", "approve", "ja generer", or similar).
Phase 5 — Final deliverables (after approval)
For DK companies:
- Use the
docxplugin skill to generate the annual report (årsrapport) inregnskab{YYYY}/output/. - Generate the XBRL xml (
regnskab{YYYY}/output/regnskab{YYYY}.xml). Verify validation. - Share both files via
computer://links.
For other countries: follow the statutory filing format defined in countries/{country}/.
Phase 5b — Optional ERP upload
If ERP_CONNECTOR is set in settings/.env, ask the user whether to push the year to the ERP. If yes, invoke the upload-to-erp skill.
Output conventions
- All deliverables live in
regnskab{YYYY}/output/— never elsewhere. - File names follow the patterns in
countries/{country}/rules.mdandscripts/README.md. - Numbers and dates use the format defined in the country's
rules.md.
Sanity checks before signing off
-
note{YYYY}.mdwas read and reflected in the Notes sheet. - Opening balances tie to prior year's closing balances exactly.
- Trial balance nets to zero.
- Each reconciliation nets to zero.
- Tax provision uses the country's current rate.
- Proposed dividend from
note{YYYY}.mdis reserved on the equity account. - All numbers and dates use the country's required format.
- Statutory filing (XBRL or equivalent) is well-formed.
- User has explicitly approved before any docx / xml / ERP push.
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.