Development status — BusDK modules
Development status
This page summarizes the implementation state of each BusDK module using test evidence as the primary proof of readiness. A capability is treated as verified only when it is covered by at least one test (Go unit test or e2e script) in the module repository. Readiness is grouped by documented use cases so you can see what works today for each journey. Per-module detail, including the specific test files that prove each claim, is in each module’s CLI reference under Development state. Implement modules in Depends on before the dependent.
Use cases index
Accounting workflow — Accounting workflow overview: create repository baseline, define master data and evidence, record invoices and journal entries, import/reconcile bank transactions, and close periods with validate/VAT/report steps.
Sale invoicing (sending invoices to customers) — Sale invoicing: create sales invoices, render PDFs, and complete outbound invoice delivery.
Inventory valuation and COGS postings — Inventory valuation and COGS: define items, record voucher-backed movements, and compute as-of valuation for reporting and COGS.
Spreadsheet workbooks — Workbook and validated tabular editing: use local web workbook flows over schema-validated workspace datasets and formula projection.
Finnish bookkeeping and tax-audit compliance — Finnish bookkeeping and tax-audit compliance: maintain audit trail/retention and produce VAT, period reporting, and tax-audit outputs.
Finnish company reorganisation (yrityssaneeraus) — audit and evidence pack — Finnish company reorganisation — audit and evidence pack: produce evidence-pack outputs for court-supervised reorganisation.
Developer module workflow with Cursor CLI — Developer module workflow: scaffold modules and run plan/work/spec/e2e workflows with Cursor runtime.
Developer module workflow with Gemini CLI — Developer module workflow: same developer workflow path with Gemini runtime.
Developer module workflow with Claude CLI — Developer module workflow: same developer workflow path with Claude runtime.
Developer module workflow with Codex CLI — Developer module workflow: same developer workflow path with Codex runtime.
Finnish payroll handling (monthly pay run) — Finnish payroll handling: maintain employee register, run monthly payroll, produce posting intent, and reconcile pay-day bank transactions.
Orphan modules — Modules not mapped to a documented use case.
Accounting workflow
See Accounting workflow overview for the intended flow. The end-user bookkeeping web UI for this flow is books (design in bus-books SDD). Module readiness:
| Module | Readiness | Biggest next | Biggest blocker |
|---|---|---|---|
| books | 20% (Basic structure) — serve and capability URL verified by e2e; token gating, workspace checks, embedded API, default backends, minimal UI, read-only 403 by unit tests; no bookkeeping screen flow test-covered; user cannot complete any workflow step in the UI. | Inbox and core screens (Journal, Periods, VAT, Bank, Attachments, Validate); integration tests (PLAN.md). | None known. |
| bus | 50% (Primary journey) – single entrypoint; no-args and missing-subcommand verified; e2e for dispatch would raise confidence. | E2E for dispatch; bus help when bus-help missing. |
None known. |
| init | 70% (Broadly usable) – config-only or full baseline verified by e2e; step order and --no-<module> exclusions proven. |
Help list each per-module flag and --no-<module> (PLAN.md). |
None known. |
| config | 90% (Broadly usable) – init and set verified by e2e and unit tests; workspace-config step complete; set no-flags no-op not verified. | Set no-flags no-op (no write, no message) per PLAN.md. | None known. |
| accounts | 70% (Broadly usable) – chart lifecycle and sole-proprietor verified; define-master-data step completable. | Report-account-mapping schema (FR-ACC-006); document journal add regression location or add when journal available (PLAN.md). | None known. |
| entities | 50% (Primary journey) – init, add, list verified; user can define counterparties. | Go library path accessors (NFR-ENT-002). | None known. |
| period | 90% — add/open/close/lock and year-rollover opening verified; user can complete period lifecycle. | Optional: automatic result-to-equity transfer at year end. | None known. |
| attachments | 60% (Stable) – Register evidence and list; init/add/list, dry-run, path accessors, and workspace-relative diagnostics verified. | None in PLAN.md. | None known. |
| journal | 70% (Broadly usable) – Record-postings and balance steps usable; init, add, balance, dry-run, NFR-JRN-001 verified. | Optional add-from-stdin (PLAN.md); README/help alignment. | period writing closed-period file for full workflow. |
| balances | 60% (Stable) – Opening/cutover: user can complete init, add, import (incl. –allow-unknown-accounts), validate, list, apply and replace; e2e and unit tests verify effective-record, replace-marker, balanced transaction. | Optional: period library; e2e bus journal validate when bus on PATH. | None known. |
| invoices | 80% — record-invoices and postings step completable; pdf not verified. | Help alignment (add –due-date optional, init workspace root); optional attachment_id validation (FR-005). |
pdf for bus invoices pdf. |
| bank | 70% — init, file and profile import, list verified by e2e; user can complete bank step including ERP history via profile. | None in PLAN.md. | None known. |
| reconcile | 80% (Broadly usable) — match, allocate, list, propose, and apply are verified; two-phase reconciliation flow is available with dry-run and idempotent re-apply. | Add apply-allocation coverage and optional propose/apply selectors when product needs them (PLAN.md). | None known. |
| validate | 80% (Broadly usable) — run and schema/invariant checks are verified; parity and journal-gap with thresholds (including relative and bucket thresholds), dry-run, empty stdout on success, and validate --output no-op are verified by unit and e2e tests. |
Additional accounting invariants and broader Table Schema coverage (PLAN.md). | None known. |
| vat | 80% — Close-step VAT from invoice or journal (init→validate→report→export) with source_refs and index update verified; e2e and unit tests. | None in PLAN.md. | None known. |
| reports | 90% (Broadly usable) – Trial-balance, general-ledger, profit-and-loss, balance-sheet, account-ledger with text/csv/json/markdown/kpa/pma/pdf, built-in statutory layouts (including full fi-* ids), layout-file selection, and migration-review artifacts (journal-coverage, parity, journal-gap) verified by e2e and unit tests; user can complete report step. |
None in PLAN.md. | None known. |
70% — Render step test-verified; user can produce PDF from file or stdin; bus invoices pdf not in invoices. |
None in PLAN.md. | None known. |
Sale invoicing (sending invoices to customers)
See Sale invoicing (sending invoices to customers) for the outbound journey: creating sales invoices, rendering PDFs, and sending them to customers. This is distinct from the accounting workflow, which also records incoming and third-party invoices. Module readiness for the sale-invoicing path:
| Module | Readiness | Biggest next | Biggest blocker |
|---|---|---|---|
| bus | 50% (Primary journey) – single entrypoint; no-args and missing-subcommand verified; e2e for dispatch would raise confidence. | E2E for dispatch; bus help when bus-help missing. |
None known. |
| init | 70% (Broadly usable) – config-only or full baseline verified by e2e; step order and --no-<module> exclusions proven. |
Help list each per-module flag and --no-<module> (PLAN.md). |
None known. |
| entities | 50% (Primary journey) – init, add, list verified; user can define customers. | Go library path accessors (NFR-ENT-002). | None known. |
| accounts | 70% (Broadly usable) – chart for income/VAT accounts verified. | Report-account-mapping schema (FR-ACC-006); document journal add regression or add when journal available (PLAN.md). | None known. |
| invoices | 80% — create, validate, list, postings verified; pdf step blocked by pdf. | Help alignment (add –due-date optional, init workspace root); optional attachment_id validation (FR-005). |
pdf for bus invoices pdf. |
70% — PDF step test-verified; user can produce PDF from file or stdin; bus invoices pdf not in invoices. |
None in PLAN.md. | None known. |
Inventory valuation and COGS postings
See Inventory valuation and COGS postings. This use case covers defining inventory items, recording append-only movements with voucher references, and computing as-of valuation for reporting and COGS postings. Module readiness:
| Module | Readiness | Biggest next | Biggest blocker |
|---|---|---|---|
| inventory | Core workflow implemented and test-covered — init, add, move, valuation, validate, status; workspace-root layout and path API; remaining work: SDD alignment, more tests, bus-reports integration. | Further SDD alignment; additional tests; integration with bus-reports. | None known. |
Spreadsheet workbooks
See Spreadsheet workbooks. This use case covers a local web-based workbook over workspace datasets with schema-validated editing and formula projection. Module readiness:
| Module | Readiness | Biggest next | Biggest blocker |
|---|---|---|---|
| sheets | 20% (Basic structure) — serve and capability URL verified by e2e; token gating by unit tests; grid, schema panel, validation UI not test-backed; no workbook journey step completable. | Embed api in-process; UI assets; workbook tabs; grid CRUD and schema panel; validation UI. Advances workbook use case. | api embed and UI assets required before grid over workspace is real. |
| api | 90% — User can complete API-driven discovery, CRUD, validation, schema read/mutation, event stream, read-only; stable validate success key ordering verified in e2e. | None in PLAN.md. | None known. |
| data | 80% — Package/resource lifecycle, schema evolution, table and workbook-style read (cell/range, –header, –anchor-col/–anchor-row, –decimal-sep, –formula), row mutate; table workbook documented in SDD and CLI reference (KD-DAT-005). | Import-profile library contract for invoices/bank. | None known. |
| bfl | 60% (Stable) – parse, format, validate, eval, funcset list and CLI contract verified by e2e and unit tests; formula engine ready for data projection. | Range and array semantics in data; formula source in API responses. | None known. |
| agent | 40% — detect, render, set, run, format and resolution order verified by e2e; optional sheets agent chat not test-backed. | Order/config; AGENTS.md; adapters; sheets integration. | None known. |
Finnish bookkeeping and tax-audit compliance
See Finnish bookkeeping and tax-audit compliance. Module readiness for the compliance-facing parts (VAT, close/lock, filing, tax-audit pack):
| Module | Readiness | Biggest next | Biggest blocker |
|---|---|---|---|
| period | 90% — close, lock, opening with append-only and locked state verified. | Optional: automatic result-to-equity at year end. | None known. |
| vat | 80% — VAT report and export with invoice/voucher refs; closed-period/–force and rate validation verified; close-step completable from either source. | None in PLAN.md. | None known. |
| validate | 80% (Broadly usable) — workspace validation before close/filing is verified, including parity and journal-gap with CI thresholds and dry-run support. | Additional accounting invariants and broader Table Schema coverage (PLAN.md). | None known. |
| reports | 90% (Broadly usable) – Reports, traceability (basis in JSON), statutory layouts (including full fi-* layouts), and PDF verified by e2e; user can produce statement outputs for compliance. |
None in PLAN.md. | None known. |
| filing | 60% (Stable) – delegation to prh/vero/tax-audit-pack, list, flags, pass-through, workdir/env verified by e2e and unit tests. | Bundle assembly or document delegation (FR-FIL-001); tax-audit-pack parameter set (OQ-FIL-001). | Stable bundle contract for filing targets. |
| filing-prh | High — validate, bundle, PRH-required content (FR-PRH-002), and PRH SBR taxonomy in iXBRL implemented and covered by e2e; ready for PRH filing within current bundle contract. | Extended bundle metadata when filing-target specs available; README/doc links; follow-ups from bus-filing bundle contract. | filing bundle contract. |
| filing-vero | 50% — produce and verify Vero bundle from fixture; FR-VERO-002, NFR-VERO-001, NFR-VERO-002 verified by e2e and unit tests; full journey blocked by filing bundle contract. | Continue bundle-contract alignment with filing for the full end-to-end filing journey. | filing bundle contract. |
Finnish company reorganisation (yrityssaneeraus) — audit and evidence pack
See Finnish company reorganisation (yrityssaneeraus) — audit and evidence pack. Module readiness:
| Module | Readiness | Biggest next | Biggest blocker |
|---|---|---|---|
| period | 90% — close, lock, opening for snapshots verified. | Optional: automatic result-to-equity at year end. | None known. |
| reports | 90% (Broadly usable) – Trial balance and ledgers as audit evidence; statutory layouts and PDF verified by e2e; user can produce evidence-pack reports. | None in PLAN.md. | None known. |
| validate | 80% (Broadly usable) — workspace validation before evidence pack is verified, including parity and journal-gap checks for migration and CI workflows. | Additional accounting invariants and broader Table Schema coverage (PLAN.md). | None known. |
| attachments | 60% (Stable) – Link source documents to records for audit; init/add/list, dry-run, path accessors verified. | None in PLAN.md. | None known. |
| journal | 70% (Broadly usable) – Append path, balance, NFR-JRN-001 verified; audit columns in period CSV. | Optional add-from-stdin (PLAN.md); README/help alignment. | period writing closed-period file for full workflow. |
| invoices | 80% — invoice evidence-pack baseline verified; pdf not in journey. | Help alignment (add –due-date optional, init workspace root); optional attachment_id validation (FR-005). |
pdf for bus invoices pdf. |
| bank | 70% — import (file and profile) and list verified; basis for reconciliation evidence. | None in PLAN.md. | None known. |
| reconcile | 80% (Broadly usable) — reconciliation evidence path covers match, allocate, list, propose, and apply; dry-run and idempotent re-apply are verified. | Add apply-allocation coverage and optional propose/apply selectors when product needs them (PLAN.md). | None known. |
| loans | 70% (Core workflow implemented and verified) – loan registry, event, amortize, list, validate, balances, schedule, and postings are verified by unit and e2e tests. | Incremental SDD alignment and additional output-format/integration coverage. | None known. |
| budget | 70% (Broadly usable) – init/add/set/report are verified with deterministic output; users can maintain budget rows and produce budget-vs-actual output. | Improve variance summaries and validation detail for large datasets; expand schema constraint support. | None known. |
| assets | 90% — Full lifecycle and postings verified; FR-AST-003, FR-AST-004 and dispose required-args verified by unit and e2e. | None in PLAN.md. | None known. |
Developer module workflow with Cursor CLI
See Developer module workflow with Cursor CLI. Module readiness:
| Module | Readiness | Biggest next | Biggest blocker |
|---|---|---|---|
| dev | 60% (Stable) — init, set, flags, context, pipeline list/preview verified by e2e; plan/work/spec/e2e/stage/commit and repo-local pipeline override by unit tests with stub agent; user can complete init and run workflow steps. | Top-level list (PLAN.md); action/script generate once agent exposes stdout API. | None known. |
| agent | 40% — detect, render, set, run with Cursor stub and resolution order verified by e2e; user can select runtime and run a prompt. | Order/config (FR-AGT-005a); AGENTS.md; per-runtime adapters. | None known. |
| preferences | 70% (Broadly usable) – get, set, set-json, unset, list; key-path and format verified by e2e. | Key-path validation for list; canonical JSON; path resolution tests. | None known. |
Developer module workflow with Gemini CLI
See Developer module workflow with Gemini CLI. Module readiness:
| Module | Readiness | Biggest next | Biggest blocker |
|---|---|---|---|
| dev | 30% (Some basic commands) — same CLI; init and flags verified by e2e; run/work/spec/e2e with Gemini not test-covered. | Top-level list (PLAN.md); e2e work/spec/e2e with Gemini; action/script generate once agent exposes stdout API. | None known. |
| agent | 30% — detect/selection contract only (e2e stub); set runtime gemini and BUS_AGENT=gemini tested; run with Gemini not exercised in e2e. | E2e that runs run --agent gemini with real or hermetic Gemini; order/config; adapters. |
None known. |
| preferences | 70% (Broadly usable) – get, set, set-json, unset, list; key-path and format verified by e2e (runtime-agnostic). | Key-path validation for list; canonical JSON; path resolution tests. | None known. |
Developer module workflow with Claude CLI
See Developer module workflow with Claude CLI. Module readiness:
| Module | Readiness | Biggest next | Biggest blocker |
|---|---|---|---|
| dev | 30% (Some basic commands) — same CLI; init and flags verified by e2e; run/work/spec/e2e with Claude not test-covered. | Top-level list (PLAN.md); e2e work/spec/e2e with Claude; action/script generate once agent exposes stdout API. | None known. |
| agent | 30% — detect/selection contract only (e2e stub); run with Claude CLI not exercised in e2e. | E2e that runs run --agent claude with real or hermetic Claude; order/config; adapters. |
None known. |
| preferences | 70% (Broadly usable) – get, set, set-json, unset, list; key-path and format verified by e2e (runtime-agnostic). | Key-path validation for list; canonical JSON; path resolution tests. | None known. |
Developer module workflow with Codex CLI
See Developer module workflow with Codex CLI. Module readiness:
| Module | Readiness | Biggest next | Biggest blocker |
|---|---|---|---|
| dev | 30% (Some basic commands) — same CLI; init and flags verified by e2e; run/work/spec/e2e with Codex not test-covered. | Top-level list (PLAN.md); e2e work/spec/e2e with Codex; action/script generate once agent exposes stdout API. | None known. |
| agent | 30% — detect/selection contract only (e2e stub); run with Codex CLI not exercised in e2e. | E2e that runs run --agent codex with real or hermetic Codex; order/config; adapters. |
None known. |
| preferences | 70% (Broadly usable) – get, set, set-json, unset, list; key-path and format verified by e2e (runtime-agnostic). | Key-path validation for list; canonical JSON; path resolution tests. | None known. |
Finnish payroll handling (monthly pay run)
See Finnish payroll handling (monthly pay run). Module readiness:
| Module | Readiness | Biggest next | Biggest blocker |
|---|---|---|---|
| payroll | 20% (Validate and export only) – validate and export verified by e2e and unit tests with workspace-root payroll datasets; init, run, list, employee not implemented; user cannot complete pay-run journey. | init, run, list, employee (PLAN.md); e2e run→export→journal. | None known. |
| accounts | 70% (Broadly usable) – chart lifecycle and sole-proprietor verified; user can define accounts prerequisite for wage expense, withholding, net payable. | Report-account-mapping schema (FR-ACC-006); document journal add regression or add when journal available (PLAN.md). | None known. |
| entities | 50% (Primary journey) – init, add, list and --id/--name verified; user can define party references for employees. |
Go library path accessors (NFR-ENT-002). | None known. |
| period | 90% — period open/close/lock and opening for payroll month verified. | Optional: automatic result-to-equity at year end. | None known. |
| journal | 70% (Broadly usable) – Posting path ready for payroll export; init, add, balance, closed-period reject verified. | Optional add-from-stdin (PLAN.md); README/help alignment. | period writing closed-period file for full workflow. |
| bank | 70% — import (file and profile) and list verified for pay-day statement flow. | None in PLAN.md. | None known. |
| reconcile | 80% (Broadly usable) — payroll bank reconciliation works with match/allocate and the two-phase propose/apply flow; dry-run and idempotent re-apply are verified. | Add apply-allocation coverage and optional propose/apply selectors when product needs them (PLAN.md). | None known. |
The full journey from empty workspace through employee register and monthly payroll run to journal append is not yet covered by e2e tests. Users can today maintain payroll data in workspace datasets (by hand or another tool), run bus payroll validate and bus payroll export <run-id>, and append the export output to the journal manually or via script; init, run, list, and employee add/list are not implemented.
Orphan modules
Modules not mapped to any documented use case appear here with overall completeness, value promise, and whether a new use case document should be added. Module names are shown without the bus- prefix and linked to the module CLI reference.
| Module | Readiness | Biggest next | Biggest blocker |
|---|---|---|---|
| replay | 70% — Core export/apply/render and idempotency verified by golden, roundtrip, and e2e; user can migrate workspace and re-run log; export does not yet include row-level invoice/bank facts; full replay may need extra scripts; ERP history still uses generated scripts. | First-class profile-driven ERP import replay (FR-RPL-008); row-level invoice/bank export coverage. | None known. |
| run | 60% — Define/list/set/unset and run script token and pipeline; stop-on-first-failure, path escape, ambiguity, disabled script, expansion limits verified; prompt run stub-only. | Align agent/script output with SDD (stdout for piping); document script execution for .sh/.bat/.ps1 (PLAN.md). | None known. |
replay: 70% overall. Journey: user can complete export→apply→render and re-run the same log (idempotency); golden, roundtrip, and e2e verify deterministic logs, guard evaluation, and script rendering. Export does not yet include row-level invoice or bank facts (sales-invoices, purchase-invoices, bank-transactions); full migration replay may require additional scripts for those datasets. ERP history migration still uses generated scripts. No new use case doc needed — operator/automation tool, not a step in a documented end-user workflow.
run: 60% overall. Value promise: run user-defined prompt actions, script actions, and pipelines by name with a single entrypoint. Journey: user can define/list/set/unset and run script tokens and pipelines; context, list, pipeline preview, management commands, stop-on-first-failure, path escape, ambiguity, disabled script, and expansion limits verified by unit and e2e; prompt run stub-only. No new use case doc needed — generic runner, not journey-specific.