Files
eleith 5437202774
ci/woodpecker/pr/config Pipeline was successful
ci/woodpecker/pr/hledger Pipeline was successful
ci/woodpecker/pr/jobs Pipeline was successful
ci/woodpecker/pr/snapshots Pipeline was successful
ci/woodpecker/pr/web Pipeline was successful
ci/woodpecker/pr/worker Pipeline was successful
ci/woodpecker/push/config Pipeline was successful
ci/woodpecker/push/hledger Pipeline was successful
ci/woodpecker/push/jobs Pipeline was successful
ci/woodpecker/push/snapshots Pipeline was successful
ci/woodpecker/push/web Pipeline was successful
ci/woodpecker/push/worker Pipeline was successful
refactor: clarify report ownership and simplify docs and tests
2026-11-07 09:44:46 -08:00

1.8 KiB

Development principles

Readable code first

  • Make folder, file and function names explain ownership. Keep feature code and its tests together.
  • Let operations show meaningful phases. Keep resource lifetimes and cleanup together.
  • Improve awkward producer output before adding consumer workarounds. Prefer deletion over speculative abstractions.
  • Use comments only for necessary external context, not to narrate code. Keep docs and PR descriptions plain and short.

Financial boundaries

Hledger owns accounting. Preserve exact values, separate commodities and explicit missing or ambiguous states. Category-chart grouping is the only browser arithmetic: exact, within one saved period and commodity, without changing native data.

Browsing reads saved data; financial work requires an explicit request. Preserve private data and completed publications. Unsupported reports require explicit preparation, not automatic migration or deletion.

Tests

Keep tests that protect valuable rules we own: financial fidelity, privacy, access, complete publication and resource ownership. Test at the owning layer with a few representative cases, not repeated matrices. Do not test hledger, Chart.js, framework behavior, UI copy or appearance. Exact financial strings are data, not copy.

Use disposable fictional inputs, never operator journals. Keep a small browser smoke suite for important workflows. Test counts and coverage are not goals.

Review

Prepare one commit's changes unstaged, then stop for owner review. After approval, run code, readability and test reviews, then relevant checks. Stage and commit only with approval and passing checks. Push and open a PR only with approval; the owner merges. PR descriptions briefly explain the change and checks, without a process diary.