CtrlK
BlogDocsLog inGet started
Tessl Logo
PluginPublic

testland/cross-tenant-data-leak-tests

Use when designing or adding tenant isolation tests to a multi-tenant app, adding a CI leak gate, or investigating a leak. Inventories tenant-bearing surfaces, then tests read-by-ID, list leaks, spoofed tenant IDs, JWT replay, storage IDOR, search, jobs and caches, plus Postgres row-level security.

Quality

89%

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

81%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.

A well-engineered, highly actionable skill body: the canonical battery, anti-patterns table, and diagnosis loop give Claude concrete, executable guidance with genuine validation checkpoints. The main gaps are semi-skeletal code in a few tests (undefined helpers) and a two-level reference chain that leaves several bundle files undiscoverable from the body.

Suggestions

Make Tests 4, 8, and 9 self-contained: define or import the helpers they rely on (sign_jwt, enqueue_export, run_job, app) or replace Test 8's inspect.getsource introspection with a concrete assertion against a fixture route, so every snippet in the canonical battery is copy-paste runnable.

Surface the second-level reference files directly from SKILL.md — e.g., add one-line pointers to create-policy-syntax.md, policy-and-bypass-patterns.md, tenant-context-patterns.md, and the per-engine files (mysql-mariadb.md, sqlserver.md, cockroachdb.md, vitess.md) in the References section — so all bundle files are discoverable one level deep.

Trim incidental commentary (e.g., the 404-vs-403 trade-off aside and the Test 8 explanation) or fold it into the anti-patterns table, which already carries similar guidance more compactly.

DimensionReasoningScore

Conciseness

The body is dense with tables, executable code, and brief high-value commentary (e.g., the non-obvious fact that FK and UNIQUE checks bypass RLS), with almost no explanation of concepts Claude already knows. Minor trimming is possible — some test commentary ("The trade-off: debugging slightly harder", the Test 8 inline explanation) and the somewhat long Test 8/9 snippets could be tightened — so it sits at the score-4 anchor rather than 5.

4 / 5

Actionability

Ten concrete pytest snippets, a role-verification SQL query, and a paste-ready GitHub Actions workflow make the guidance mostly executable. It falls short of score 5 because Tests 4, 8, and 9 depend on undefined helpers (sign_jwt, enqueue_export, run_job, app) and Test 8's source-introspection assertion is closer to a sketch than runnable code.

4 / 5

Workflow Clarity

The sequence is explicit and well-validated: the planning phase produces concrete committed artifacts, Steps 1–3 build and gate the suite (with SQL verification of the connection role and a merge-blocking CI job), and Step 4 is a full diagnosis feedback loop ending in "Write the minimal regression test before fixing". This matches the score-5 anchor's explicit validation steps and error-recovery loop.

5 / 5

Progressive Disclosure

The body is a clear overview with well-signaled, real references (isolation-models, attack-patterns, framework-skeletons, row-level-security, other-engines) all one link away. It falls short of the score-5 one-level-deep ideal because reference files chain to a second level (row-level-security.md → create-policy-syntax.md, policy-and-bypass-patterns.md, tenant-context-patterns.md; other-engines.md → per-engine files), and only 5 of the 14 bundle files are surfaced directly from SKILL.md, making the rest harder to discover.

4 / 5

Total

17

/

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: it explicitly states what the skill does and when to use it, with an unusually specific enumeration of the test patterns covered. The only weakness is a handful of missing natural synonyms (e.g., "cross-tenant", "data leak") that would broaden trigger coverage.

DimensionReasoningScore

Specificity

The description lists multiple concrete actions — "Inventories tenant-bearing surfaces, then tests read-by-ID, list leaks, spoofed tenant IDs, JWT replay, storage IDOR, search, jobs and caches, plus Postgres row-level security" — with comprehensive coverage of the domain. It exceeds the score-4 anchor ('minor gaps in coverage') because no meaningful capability of the skill is left unenumerated.

5 / 5

Completeness

Both halves are explicit: an "Use when designing or adding tenant isolation tests..., adding a CI leak gate, or investigating a leak" trigger clause with three concrete scenarios, and a clear statement of what the skill does (inventory surfaces, then run a specific battery of leak tests). This matches the score-5 anchor exactly and is well above score 4's 'when could be more explicit'.

5 / 5

Trigger Term Quality

Good natural keyword coverage: "tenant isolation tests", "multi-tenant app", "CI leak gate", "investigating a leak", "Postgres row-level security" are phrases users would plausibly say. It falls short of the score-5 anchor because common synonyms like "cross-tenant", "data leak", or "tenant separation" are absent, leaving a few natural entry points uncovered.

4 / 5

Distinctiveness Conflict Risk

The multi-tenant isolation-testing niche is clearly staked out with distinct trigger phrases, so it is unlikely to fire for unrelated skills. It does not overlap meaningfully with general security-testing or database skills because the scope is pinned to tenant isolation and leak gates.

5 / 5

Total

19

/

20

Passed

Validation

100%

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

Validation — 16 / 16 Passed

Validation for skill structure

No warnings or errors.

Reviewed

On this page