Workflow-driven skill that plans and implements the cross-tenant leak-test suite - from surface inventory to the runtime CI gate a multi-tenant codebase must pass on every PR. The planning section inventories tenant-bearing surfaces (tables, APIs, object storage, search, queues, caches), classifies each by isolation model (silo / pool / bridge, per references/isolation-models.md), and derives the OWASP WSTG-ATHZ-02 coverage matrix. The battery defines the canonical test patterns (read-other-tenant-by-id, list-leak, spoofed-tenant-id-in-body, JWT-replay, FK-cross-tenant, unique-collision side channel, object-storage IDOR, search-index-direct-query, async-job-context-reload, cache-key-collision), the 404-vs-403 disclosure trade-off, the Postgres-RLS-direct patterns, and the CI integration (non-superuser non-BYPASSRLS role, fail the build on any leak). Use when designing or implementing a tenant-isolation test suite, adding the CI gate to an existing project, or investigating a leak finding.
90
90%
Does it follow best practices?
Impact
94%
1.05xAverage score across 3 eval scenarios
High
Do not use without reviewing
Test file created
100%
100%
Two disjoint tenants in the fixture
50%
100%
Cross-tenant probe on every operation
100%
100%
Write attempts asserted not to have mutated anything
100%
100%
Positive control alongside each negative
28%
50%
List leakage asserted by content, not count
0%
100%
Identifiers do not collide across tenants
100%
100%
Plan file created
100%
100%
Inventory covers all five surface types
100%
100%
Search index leak identified
100%
100%
Cache key leak identified
100%
100%
Async consumer leak identified
100%
100%
Probes given per surface
100%
100%
Two-tenant fixture stated as a requirement
100%
100%
Correctly-scoped surfaces not reported as gaps
100%
100%
Both deliverables produced
100%
100%
Privileged session identified as the primary cause
100%
100%
Colliding identifiers identified
100%
100%
Shared mutable repository identified
100%
21%
Rewritten suite uses unprivileged per-tenant sessions
100%
100%
Rewritten suite would fail if the predicate were removed
100%
100%
Fixture rebuilt per test with distinct identifiers
50%
100%