Content
88%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 is a dense, well-structured router: a progressive-disclosure routing table, a precise legacy-pattern guard with named signals, explicit safety defaults including a verbatim verification instruction, and a numbered freshness workflow with stop conditions and fallbacks. The only notable issues are the repeated raffle/security reference instruction across rows and prose, and a referenced templates/starter-kit path that is absent from the bundle.
Suggestions
State the raffle/paid-draw → security-and-best-practices.md rule once (e.g., as a global Safety Default or a single note under the routing table) instead of repeating it in four table rows and twice in prose, freeing tokens without losing the requirement.
Ship the templates/starter-kit/ directory (README, consumer, deploy script, test) referenced in the routing table, or drop the template row and rely solely on the already well-specified inline canonical fallback so no referenced path dangles.
Trim the long compound sentences in the routing table (e.g., the starter-kit row mixes load, adapt, return-format, and fallback instructions) by moving the fallback prescription into the Safety Defaults section it duplicates.
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | The body is dense and assumes Claude's competence — it never explains what VRF or a smart contract is — but the clause 'For any raffle, lottery, paid draw, or bounded winner selection, also load and follow security-and-best-practices.md' is repeated in four routing-table rows and twice more in prose, which is redundant token spend that could be stated once. It is not a 3 because there is no padding or explanation of already-known concepts. | 4 / 5 |
Actionability | Guidance is fully executable for an instruction-only skill: exact API shape ('VRFV2PlusClient.RandomWordsRequest with extraArgs encoded by _argsToBytes(ExtraArgsV1({nativePayment: ...}))'), exact types ('Subscription IDs are uint256, never uint64'), a verbatim verification instruction to emit beside live values, exact fallback URLs (docs.chain.link/vrf/llms.txt) and header behavior, and a completely specified canonical inline integration fallback. No steps are missing for the common cases, so it meets the 5 rather than the 4 anchor. | 5 / 5 |
Workflow Clarity | The Freshness Policy is a numbered 7-step sequence with explicit stop conditions ('Stop when the page answers. Fetch at most three pages') and an error-recovery fallback (.md fetch fails or is thin → Context7, ask for the missing fact only), and Safety Default 2 is an explicit verify-before-deploy checkpoint. Checkpoints and feedback loops are explicit rather than mostly present, fitting the 5 anchor. | 5 / 5 |
Progressive Disclosure | The body is a lean router over seven one-level-deep references/ files that all resolve, with in-body anchors (e.g. '#unbiased-winner-indices', '#paid-raffle-safety-contract') matching real headings in security-and-best-practices.md. However, the routing table points to templates/starter-kit/README.md, which does not exist in the bundle — a dangling path that the inline fallback mitigates but does not fix, so it falls just short of the 5 anchor; it is well above the 3 anchor because everything else is clearly signaled and one level deep. | 4 / 5 |
Total | 18 / 20 Passed |