CtrlK
BlogDocsLog inGet started
Tessl Logo

testland/cross-tenant-data-leak-tests

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.

69

Quality

87%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Passed

No findings from the security scan

Overview
Quality
Evals
Security
Files

Quality

Content

77%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

The body is a strong, highly actionable core: an explicit plan-then-implement workflow with executable test patterns, role-verification SQL, a CI gate, and a failure-diagnosis loop. Weaknesses are the missing/dangling 'rls-reference' (cited five times but absent from the bundle, leaving key RLS claims unverifiable), two orphaned bundle reference files never linked from SKILL.md, project-specific helpers that keep some tests from being copy-paste ready, and repetition of the superuser warning across multiple sections.

Suggestions

Resolve the 'rls-reference' citations: either add the referenced RLS file to references/ and cite it with a markdown link like the other three references, or inline the specific claims (e.g. 'FK and UNIQUE constraint checks bypass RLS') and drop the citation — five citations to an unavailable file undermines the skill's authority on its most-common-bug topic.

Link references/models.md and references/test-surfaces.md from the planning section (or remove them from the bundle) so the isolation-model and surface-inventory guidance they contain is reachable from SKILL.md.

Tighten conciseness and actionability together: deduplicate the superuser/BYPASSRLS warning (keep the Step 1 table, cut the repetitions in the battery intro and anti-patterns table) and move the full CI workflow YAML plus 2–3 of the less-common battery tests (e.g. search-index, cache-collision) into references/framework-skeletons.md, leaving SKILL.md with one exemplar per pattern.

DimensionReasoningScore

Conciseness

The body is dense and assumes competence (no explanation of what RLS or CI is; every section delivers instructions, tables, or code), matching the 'efficient; minor instances of over-explanation that could be trimmed' anchor. It is not level 5 because the superuser/BYPASSRLS warning is repeated in Step 1, the battery intro, the RLS-direct section, and the anti-patterns table, and the ~50-line CI YAML plus several of the ten battery tests could move to references to slim the main file.

4 / 5

Actionability

Mostly executable: ten concrete test code blocks, a runnable role-verification SQL query, a complete GitHub Actions workflow, and a diagnosis checklist. It falls below the level-5 'fully executable, copy-paste ready' anchor because several helpers are project-specific and undefined (sign_jwt, enqueue_export, run_job, the cache client's tenant_id kwarg), fixtures are only named by convention, and Test 8's route-introspection assertion (grep-ing view source for '@tenant_required') is more a sketch than runnable code.

4 / 5

Workflow Clarity

The sequence is explicit and gated: plan (inventory → patterns → test cases → coverage matrix) → Step 1 role setup with a verification query and expected output → Step 2 battery → Step 3 CI gate that fails the build → Step 4 diagnosis with a feedback loop (reproduce, check role/policy, 'write the minimal regression test before fixing'). This matches the level-5 anchor: clear sequence, explicit validation steps, error-recovery loop, and a coverage-matrix checklist for the complex process.

5 / 5

Progressive Disclosure

Structure exists — three real, clearly-signaled, one-level-deep links (references/isolation-models.md, references/attack-patterns.md, references/framework-skeletons.md) — but scored against the actual bundle it has real gaps: 'rls-reference' is cited five times as the authority for key claims (FK/UNIQUE checks bypass RLS) yet no such file exists in the bundle and it is never given a path, and two bundle files (references/models.md, references/test-surfaces.md) are never referenced from SKILL.md, leaving them unnavigable. This fits the level-3 anchor (some structure, references present but not all clearly signaled) better than level 4's 'minor organization gaps', since a load-bearing reference is missing rather than merely misplaced.

3 / 5

Total

16

/

20

Passed

Description

92%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

A strong description: concrete capabilities are enumerated precisely, both what and when are explicitly stated, and the niche is distinct. The only weakness is that the trigger surface is narrower than the capability surface — a few natural phrasings a user might actually say (row-level security, authorization testing, BOLA) are represented only as jargon — and the description itself is dense enough that it borders on padded.

DimensionReasoningScore

Specificity

The description lists many concrete, distinct actions: 'inventories tenant-bearing surfaces (tables, APIs, object storage, search, queues, caches)', 'classifies each by isolation model (silo / pool / bridge)', 'derives the OWASP WSTG-ATHZ-02 coverage matrix', and names ten canonical test patterns (read-other-tenant-by-id, list-leak, spoofed-tenant-id-in-body, JWT-replay, FK-cross-tenant, etc.) plus CI integration details. This matches the level-5 anchor (multiple specific concrete actions, comprehensive coverage) and exceeds level 4, which expects coverage gaps.

5 / 5

Completeness

It explicitly answers both questions: the 'what' is 'plans and implements the cross-tenant leak-test suite ... from surface inventory to the runtime CI gate', and the 'when' is 'Use when designing or implementing a tenant-isolation test suite, adding the CI gate to an existing project, or investigating a leak finding' — concrete trigger phrases matching the level-5 anchor. Not level 4 because the 'when' clause is fully explicit, not merely adequate.

5 / 5

Trigger Term Quality

Natural trigger phrases are present ('tenant-isolation test suite', 'cross-tenant', 'leak', 'multi-tenant codebase', 'CI gate', 'IDOR'), which is good keyword coverage. It falls short of the level-5 'comprehensive coverage including synonyms' anchor because some natural user phrasings (e.g. 'row-level security', 'authorization tests', 'BOLA') appear only as jargon ('Postgres-RLS', 'WSTG-ATHZ-02') or are missing, and the trigger set is narrower than the capability list.

4 / 5

Distinctiveness Conflict Risk

The niche is clearly bounded (cross-tenant data-leak testing in multi-tenant codebases, ending in a CI gate that fails the build on leaks) and the triggers ('tenant-isolation test suite', 'leak finding') would not plausibly fire a general testing or unrelated security skill. This matches the level-5 'clear niche with distinct triggers; minimal conflict risk' anchor.

5 / 5

Total

19

/

20

Passed

Validation

93%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 15 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

referenced_paths_exist

Referenced path issues: 1 missing

Warning

Total

15

/

16

Passed

Reviewed

Table of Contents