f410b6c902
The engine's campaigns ran on toy star graphs. complex-graphs.js adds four production-shaped generators: - community: stochastic block model with nested groups (groups of groups), tuple-to-userset access, defeasible blocked overlay, cross-community delegation chains - scale-free: preferential attachment, power-law degree distribution, hub-heavy adjacency - hierarchy: org-tree (org -> dept -> team -> member) with 3-hop ownership chains - dense-adversarial: maximal overlap on small graphs — reciprocal edges, self-loops, multi-rule policies (cycle + cache-collision pressure) complex-graph-crucible.test.js runs four crucibles over them: structural shape assertions across seeds, exhaustive normal/binary/snapshot parity with bounds on every query, a 300-effort rigor fuzz campaign over (generator, seed, user, relation, object) triples enforcing allow/deny + possibility agreement across all three evaluation modes, and a reachability guard proving complex policies (TTU, chain) are actually exercised rather than denied trivially. Generator fixes along the way: sub-groups own their own resources so the one-level TTU is structurally reachable, and departments own resources so the 3-hop chain terminates. Full rigor 234/234.