# RuleBook: Invariants for Correctness ## User / DB Rules i) User never manually inserts, deletes, or modifies rows in: * `fin_security` * `scrape_state` iii) One logical month = one `scrape_state` row (`source_name = MLI__` is unique and immutable) ## Website Rules iv) Website never updates data for a month once that month has passed v) Website lists instruments in a stable, append-only order within a month vi) Ticker (`sym_ticker`) uniquely identifies an instrument on the site vii) Month headers are semantic and human-readable (e.g., `January 2026`, not random IDs) ## Time & Execution Rules ix) System clock on the user's machine is reasonably correct