Content
70%Weight 40%Scale 1-5Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.
The body delivers an unusually rigorous, well-sequenced audit workflow with real regexes, precise helper semantics, and a genuine verify-and-re-scan feedback loop. Its weaknesses are redundancy (step 0 restated in Rules, exemption stated twice), run-on paragraphs, and a dangling reference to content/convex-expert.md whose 'verbatim' pattern the bundle never ships.
Suggestions
Inline the actual requireIdentity/requireOwner code (or ship convex-expert.md in the bundle) — the skill mandates applying the pattern 'verbatim' but the code appears nowhere, and content/convex-expert.md does not exist in the skill directory.
Deduplicate: the auth-foundation check is fully specified in Workflow step 0 and then repeated as the first Rules bullet — keep one authoritative statement and cross-reference it.
Provide literal grep regexes for shapes b, c, and d as done for shape a, since step 3 tells the reader to 're-run the step-1 scan' and only shape (a) has an executable regex.
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | There is significant duplication: the entire 'MANDATORY FIRST STEP' foundation check in Workflow step 0 is restated nearly verbatim as the first Rules bullet, and the internal-function exemption appears in both step 2 ('Never widen scope — an internal/admin function... stays internalQuery/internalMutation') and the Rules ('the one legitimate exception is an internalQuery/internalMutation'). The intro's defect statistics ('25 identity-from-arg + 13 missing-ownership-check + 6 PII-leak-by-argument = 44 of 214') add little operational value, and steps 0 and 2 are run-on paragraphs that could be tightened. Mostly purposeful content, but with clear tightening opportunities — anchor 3, not 4 (the redundancy is more than 'minor instances'). | 3 / 5 |
Actionability | Concrete guidance is strong: exact grep regex for shape (a), precise helper contracts ('throws 401 if ctx.auth.getUserIdentity() is null', 'throws 404 if doc is null, throws 403 if doc.ownerId !== identity.subject'), and a concrete verification command ('npx tsc --noEmit'). However, the canonical requireIdentity/requireOwner code itself is never shown — the skill says 'apply the canonical pattern from content/convex-expert.md verbatim — do not invent a new helper', yet no such file exists in the bundle, and shapes b-d get prose descriptions rather than the literal regexes promised by 'the 4 deterministic greps'. Mostly executable with a real gap — anchor 4, not 5. | 4 / 5 |
Workflow Clarity | The sequence is explicit and well-gated: step 0 (foundation check with a clear branch: internalize-and-defer on foundationless apps), step 1 (deterministic scan), step 2 (harden), step 3 (VERIFY: 'run npx tsc --noEmit... Then re-run the step-1 scan to confirm 0 remaining hits'), step 4 (report with diffs). This is a batch-edit operation and it has both an explicit validation checkpoint and a feedback loop (re-scan until 0 hits), matching anchor 5's 'explicit validation steps; feedback loops for error recovery'. | 5 / 5 |
Progressive Disclosure | There are no bundle files (no references/, scripts/, or assets/ directories), yet the body repeatedly directs the reader to 'content/convex-expert.md' and notes generation from 'content/capabilities/convex-authz.json' — paths that do not resolve inside the skill bundle, so the reference containing the canonical pattern to apply 'verbatim' is unnavigable. Meanwhile the operative content is inlined as two dense paragraph-walls (steps 0 and 2) that would be more usable split out. This matches anchor 3 ('references present but not clearly signaled; content that should be separate is inline') better than 4, where references would be mostly clear and resolvable. | 3 / 5 |
Total | 15 / 20 Passed |