Claude 334da9bc59 Fix inconsistencies left by the dropdown-audit corrections
The targeted edits in the previous commit left the document
self-contradictory in places. This reconciles it.

- The stale-export rule contradicted the append-only invariant on
  PayrollExport. Staleness is now derived from
  PayPeriod.unlockedAt rather than written as a flag, and the
  period gains unlockedAt/unlockedBy to support it.
- Invariant count was still seven after an eighth was added.
- Lot references were a mix of the old Lot 0-4 numbering and the
  current WP-xx packages; all now use WP-xx.
- Articles/conversations were said to be deferred to "lot 5" while
  HR analytics were wrongly listed as deferred too.
- Section 1 now carries all five audit findings, including the
  non-terminal pay-period lock and the closed enumerations.

Adds the matching tests: the unlock/re-export cycle, cross-view
consistency, mutation refusal while locked, and CSP enforcement.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Cr9dkEHwbDgkWPnyGj1Rjv
2026-08-07 14:56:51 +00:00
2026-08-07 16:45:54 +02:00
2026-08-07 16:42:54 +02:00
S
Description
No description provided
15 MiB
0 Stars 1 Watchers 0 Forks
Languages
TypeScript 97%
CSS 1.2%
Shell 0.7%
JavaScript 0.5%
PLpgSQL 0.4%
Other 0.2%