Content
85%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.
A dense, high-signal reference: executable verification code in two languages, test vectors, explicit fail-closed and replay/dedup guidance, and accurate provider quirks with no filler. The main defect is bundle integrity — the examples/ handler directories the body repeatedly points to are absent, and substantial content (test vectors, gotchas, ping payload) is duplicated between the body and the reference files.
Suggestions
Ship the examples/ bundle (examples/express/, examples/nextjs/, examples/fastapi/ with tests and extractVcsInfo()), or remove the 'For complete handlers with tests, see examples/...' and 'see extractVcsInfo() in the examples' pointers — in the current bundle they are dead links to the skill's most-promoted resource.
Deduplicate between SKILL.md and references: keep a one-line summary plus pointer for the test-vector table, the gotchas list, and the ping payload, letting references/verification.md and references/overview.md carry the full copies.
Trim the Related Skills section (drop per-item annotations or cut the list to the genuinely confusable ones like circle-webhooks) and state the Circle-vs-CircleCI disambiguation once instead of three times.
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | Nearly every sentence carries a non-obvious, provider-specific fact ("signs the raw request body bytes only — no timestamp, no delivery id", "`job-completed`... no `error`", "GitLab and GitHub App pipelines carry `pipeline.trigger_parameters`... and have no `vcs`") with zero explanation of concepts Claude already knows. Not 5 because of trimmable redundancy: the Circle-vs-CircleCI disambiguation appears three times (description, opening blockquote, and again in Related Skills), and the 12-item Related Skills list with per-item annotations is padding relative to the anchor of every token earning its place. | 4 / 5 |
Actionability | Two complete, copy-paste-ready verification implementations (Node and Python) with fail-closed guards, first-`=` parsing, and timing-safe comparison; four known-answer test vectors to validate an implementation; a concrete env var and a runnable local-test command ("npx hookdeck-cli listen 3000 circleci --path /webhooks/circleci"). This fully matches the anchor of executable, copy-paste-ready code covering the common cases; there is no vague or pseudocode guidance anywhere. | 5 / 5 |
Workflow Clarity | The single core action is unambiguous and fully sequenced: the verification procedure is embodied in executable code with explicit fail-closed rules ("reject if there is no `v1` entry"), the handler order is stated directly ("Verify, enqueue, respond — do the work afterwards"), and validation checkpoints are explicit — known-answer test vectors, the end-to-end Local Development flow ending in the "Test Ping Event" button, and error-recovery guidance ("Guard the lengths first (or try/catch), otherwise a truncated signature becomes a 500"). Under the simple-skill exception this matches the top anchor; not 4 because no checkpoint is missing for the skill's scope. | 5 / 5 |
Progressive Disclosure | The three real reference files are well signaled ("references/overview.md — Both event types, the full envelope..." etc.) and one level deep, but scored against the actual bundle the structure breaks down: "see [examples/express/](examples/express/), [examples/nextjs/](examples/nextjs/), [examples/fastapi/](examples/fastapi/)" and "see `extractVcsInfo()` in the examples" point at directories/files that do not exist in the bundle — dead links to the promoted complete handlers. Additionally, the test-vector table, the gotchas list, and the ping JSON payload are duplicated nearly verbatim between SKILL.md and references/verification.md / overview.md, i.e. content that belongs in the separate files is inlined. Not 4 because dead links to a load-bearing resource are more than a minor organization gap; not 2 because the body is well sectioned and the references that do exist are clearly signaled and easy to navigate. | 3 / 5 |
Total | 17 / 20 Passed |