What problem does it solve? When modifying a mature self-hosted finance application, developers risk unknowingly violating settled design decisions — such as money serialization rules, cache invalidation semantics, or authorization boundaries — that were each forged by a documented production incident. This Skill loads the architectural contract before any change that touches routes, money handling, sessions, caching, migrations, or the projection engine, preventing regressions of already-fixed bug classes. ## Core Features & Use Cases - Decision Register: A numbered register (D1–D22+) where each entry records the decision, why it exists, the incident that forged it, and what breaks if violated — covering the installation singleton, Decimal-vs-f64 money rules, DB sessions, projection cache TTL/invalidation, and the embedded-Postgres container design. - Invariant Catalog: Explicit invariants like "reads never mutate", "engine purity (no I/O, no f64)", and "view=mine is a display filter, not authorization", each with regression-test pointers. - Weak Points & Boundary Guidance: Known weak spots (W1–W8) plus clear routing to sibling skills for build setup, FIRE math, change control, and debugging. - Use Case: Before adding a new mutating handler, load this Skill to learn that every mutation must await refresh_projection_after_mutation, that snapshot writes deliberately must NOT, and that transaction mutations invalidate conditionally based on savings_source mode. ## Quick Start Load the FutureFin architecture contract and tell me which decisions and invariants apply before I add a new API route that mutates ledger data.