CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

convex-authz

Audit and harden a Convex app's authorization: identity-from-arg impersonation, missing per-document ownership checks, public queries leaking data by a client-supplied id, and writes into a parent/container the caller doesn't own. Scans for the 4 shapes, applies requireIdentity/requireOwner, verifies with tsc. TRIGGER on 'secure my app', 'audit auth/authz', 'who can access this data'. SKIP when there is no convex/ directory.

Quality

85%

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

The canonical home for this skill is convex-authz in openclaw/clawhub

SKILL.md
Quality
Evals
Security

Quality

Content

70%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 delivers an exceptionally concrete, well-sequenced audit workflow with real validation loops — the strongest part of the skill. Its weaknesses are duplication between the Workflow and Rules sections (the step-0 foundation check appears nearly verbatim twice) and a dangling dependency on content/convex-expert.md, which the hardening step requires verbatim but which is absent from the bundle.

Suggestions

Deduplicate the foundation check: the first Rules bullet restates workflow step 0 almost word-for-word — keep one canonical statement and cross-reference it ('see step 0') from the other location.

Ship the canonical pattern: either add content/convex-expert.md (or the requireIdentity/requireOwner code) to the bundle's references/ or inline the ~10-line helpers, since the hardening step instructs applying them 'verbatim' from a file that is not present.

Make the scan fully deterministic: only shape (a) has an actual regex; provide the grep patterns (or the exact commands) for shapes b–d so the 'objective, regex-based' scan step is reproducible without re-deriving the prose conditions.

DimensionReasoningScore

Conciseness

Mostly efficient with real tightening available: the step-0 foundation check is restated nearly verbatim as the first bullet in Rules, shape (d) is explained twice (workflow step and rule), and the intro's defect tally ('25 identity-from-arg + 13 missing-ownership-check + 6 PII-leak-by-argument = 44 of 214 confirmed defects') is padding. No time is wasted explaining concepts Claude already knows, so this stays above anchor 2.

3 / 5

Actionability

Highly concrete — an executable regex for shape (a), exact helper semantics ('requireIdentity(ctx) (throws 401 if ctx.auth.getUserIdentity() is null)', 'throws 404 if doc is null, throws 403 if doc.ownerId !== identity.subject'), and the exact command 'npx tsc --noEmit'. Falls short of anchor 5 because shapes b–d get prose descriptions instead of the deterministic greps the scan step promises, and the 'apply verbatim' pattern from content/convex-expert.md is never shown.

4 / 5

Workflow Clarity

Steps 0–4 are clearly sequenced with explicit validation checkpoints ('run npx tsc --noEmit… a hardening pass that doesn't typecheck is not done', 're-run the step-1 scan to confirm 0 remaining hits') and an explicit error-recovery branch for foundationless apps (internalize-and-defer with a user message). This matches the anchor: clear sequence, explicit validation, feedback path for the failure case.

5 / 5

Progressive Disclosure

Section structure (Workflow, Rules) is good and the skill is self-contained in one file, but it twice instructs applying the canonical pattern 'from content/convex-expert.md verbatim' — a file that is not shipped in the bundle (no references/ directory exists). A load-bearing external reference that doesn't resolve is more than the 'minor organization gaps' of anchor 4, but the structure is otherwise solid, keeping this above anchor 2.

3 / 5

Total

15

/

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: third-person voice, concrete capability list covering all four defect shapes, explicit trigger phrases, and a skip condition that sharply bounds conflict risk. The only gap is modest synonym coverage in the trigger terms ('permissions', 'access control').

DimensionReasoningScore

Specificity

Names four concrete defect shapes ('identity-from-arg impersonation, missing per-document ownership checks, public queries leaking data by a client-supplied id, and writes into a parent/container the caller doesn't own') plus specific actions ('Scans for the 4 shapes, applies requireIdentity/requireOwner, verifies with tsc') — comprehensive coverage of the skill's scope with no generic filler.

5 / 5

Completeness

Explicitly answers both what (audit and harden the four named authz shapes with scan/harden/verify actions) and when (concrete 'TRIGGER on' phrases plus a 'SKIP when there is no convex/ directory' condition). Both halves are concrete and explicit, matching the anchor-5 example structure.

5 / 5

Trigger Term Quality

Includes natural phrases users would say ('secure my app', 'audit auth/authz', 'who can access this data') plus 'authorization' in the opening line, but misses common synonyms like 'permissions' or 'access control'. Anchor 5 requires comprehensive synonym coverage, which this slightly falls short of.

4 / 5

Distinctiveness Conflict Risk

A clear Convex-only authorization niche with distinct triggers and an explicit skip condition ('SKIP when there is no convex/ directory') that prevents firing on non-Convex projects — minimal conflict risk with any other skill.

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.

Repository

FacundoLucci/autonomous-buyer

Path

.agents/skills/convex-authz/SKILL.md

Reviewed

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.