docs(core): written specs, with sources, for the commands and reports
Max-testing pass, step 2: every domain decision in ledger.rs and reports.rs gets a GOAL / SOURCE / INVARIANTS / SCENARIOS block in its doc comment: post_entry, try_create_entry, close_period_to, mark_cleared, reconciliation_report, account_balance, create_invoice, create_bill, receive_payment, pay_bill, register_asset, dispose_asset, run_payroll, remit_payroll_taxes, set_line_class, set_entry_vendor; trial_balance(_as_of), profit_and_loss_for_period, balance_sheet_as_of, general_ledger, members_equity, cash_flow, profit_and_loss_by_class, snapshot. Sources trace to docs/spec/rules.md (and through it to Pacioli, the IRS, FASB); what no document settles is marked CONVENTION, DECISION, or ASSUMED for the owner to confirm. The specs are the input to spec-blind test writing (the next step): tests derived from the spec alone, never from the code. Also: rustdoc now runs in `just check` with -D warnings; fixed the seven existing broken intra-doc links and one bare URL. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GWVo7x3UHw5kwCUaWxiejX
This commit is contained in:
1 parent
4647611f96
commit
f0fe80a8db
7 files changed
+360
-7
No files matched your search
@@ -12,7 +12,7 @@
|
||||
//! * All mutations go through [`Ledger`] commands (`create_entry`, `add_line`,
|
||||
//! `post_entry`, `reverse_entry`). Posted entries are immutable; corrections
|
||||
//! are reversing entries.
|
||||
//! * Reports ([`trial_balance`], [`balance_sheet`], [`profit_and_loss`]) are
|
||||
//! * Reports ([`trial_balance`](reports::trial_balance), [`balance_sheet`](reports::balance_sheet), [`profit_and_loss`](reports::profit_and_loss)) are
|
||||
//! pure functions of a ledger, which is what makes the semantic oracle
|
||||
//! (`docs/oracle.md`) possible.
|
||||
|
||||
|
||||
Reference in new issue
Block a user