Twelve skills that had been sitting uncommitted in the working tree: the architecture contract, accounting reference, change-control rulebook, failure archaeology, debugging playbook, diagnostics scripts, ledger-analysis toolkit, research frontier, run/operate runbook, build-and-env, test-coverage campaign, and validation/QA guide. Updates three frontier statuses to match what actually shipped today rather than checking in a roadmap that describes closed work as open: - A1 double-entry hardening -> partly-done. The create half is enforced; what remains is running the existing audit_linked_legs.py against a prod backup. - B3 safety rails -> partly-done. Idempotency shipped, including the note that the index is not unique-when-not-null and why. dry_run is still open. - D3 CSV import -> unblocked but still gated. Its stated blocker was B3's idempotency keys, which now exist. Also gitignores .claude/settings.local.json, which is per-machine and was showing up as untracked on every status. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01L3qYLuu9jgXsCRXmJ18YGY
fin skill library — index
13 skills, authored 2026-07-05 against commit 082b608. Each SKILL.md is self-contained, ends with a "Provenance and maintenance" section (re-verification one-liners), and states when NOT to use it. Code beats skills; skills beat memory.
Task → skill map
| You are about to… | Load |
|---|---|
Query/record finances via the fin CLI |
fin |
| Change any code, schema, or doc — find the gate | fin-change-control |
| Debug "a number looks wrong" / triage any failure | fin-debugging-playbook |
| Fix something that looks like an obvious bug | fin-failure-archaeology first (is it settled?) |
| Design/refactor; add endpoint, table, account type | fin-architecture-contract |
| Reason about money: types, spending math, FX, RSU | fin-accounting-reference |
| Set up an environment, run tests, build images | fin-build-and-env |
| Deploy, back up, configure env vars, operate prod | fin-run-and-operate |
| Measure data integrity; before/after evidence | fin-diagnostics-and-tooling (scripts/) |
| Claim a change works; write/extend e2e tests | fin-validation-and-qa |
| Expand test coverage / add CI (the campaign) | fin-test-coverage-campaign |
| Prove an accounting property; predict a delta | fin-ledger-analysis-toolkit |
| Choose the next project / roadmap | fin-research-frontier |
Ownership (one home per fact)
- Backup/restore runbook → fin-run-and-operate §3 (others cross-reference).
- Accounting formulas/definitions → fin-accounting-reference; proof methods on top → fin-ledger-analysis-toolkit.
- Invariant catalog incl. unenforced gaps (U1–U8) → fin-ledger-analysis-toolkit.
- Test inventory (certified/not) → fin-validation-and-qa §2; coverage expansion → fin-test-coverage-campaign.
- Settled design questions & incident chronicle → fin-failure-archaeology.
- Config catalog → fin-run-and-operate §2.
Standing rules baked into every skill
- The prod SQLite DB (volume
sqlite_data,/data/fin.db) is sacred: never test against it, back up before migrations. - Behavior changes route through fin-change-control's gates; accounting claims need level-(a)/(b) evidence (fin-validation-and-qa).
- Anything date-stamped "as of 2026-07-05" may have drifted — run the skill's provenance one-liners before relying on it.