- Shipped
- August 14, 2026 at 10:43 PM UTC
- Author
- kamo
- Commit
- 1b4167c
The list has been wrong four times (58 -> 52 -> 47 -> 57) and every single time because it was edited by reasoning instead of regenerated. The file already said not to hand-edit; a comment does not stop anyone. unenforcedRightsParity.test.ts asserts the shipped set equals the committed analyzer output, and reports the drift as two directed diffs so which way it moved is the first thing you see. Verified by deliberately removing one entry: two tests fail and name VIEW_DASHBOARD. Also pins the specific rights each bad pass got wrong, in both directions — VIEW_ACCOUNTS and MANAGE_ORG_BRANDING must never be flagged, VIEW_DASHBOARD and VIEW_SALES_AGENTS must always be. Named individually because a set-equality check would still pass if the analyzer regressed and the JSON were regenerated from the regression. Spec 2.2 regenerated from the v3 output — it still listed the superseded 52 while the summary table said 57. Removed rights_inventory.json: it is the output of the two disproven passes and disagreed with the new one by 15 rights. Two inventories that contradict each other are worse than one.