Content
77%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 highly actionable, well-sequenced setup guide with copy-paste commands, complete configs, and an explicit verification checklist including failure-recovery tests. Its main weaknesses are the monolithic structure with dead ADR references (no bundle files exist to back them), one broken code example (missing EventSchemas import), and minor time-sensitive/duplicated content.
Suggestions
Create actual reference files in the bundle (e.g., references/adrs.md, references/k8s-manifest.yaml) and point the Decision Chain table and Tier 3 manifest at them, or remove the dead /adrs/* and /joel-deploys-k8s links — they currently navigate to nothing.
Fix the Step 2 client example: add `EventSchemas` to the import from "inngest" so the code is copy-paste runnable, and show how INNGEST_EVENT_KEY maps to the curl /e/key endpoint.
Move the "As of Feb 2026" signing-key note and other time-sensitive version details into a dedicated notes/compatibility section, and drop the duplicate service-naming explanation (keep it in Gotchas or Tier 3, not both).
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | The body is lean and command-first — nearly every section is executable code or a config with one-line rationale (e.g., "if step 3 of 5 fails, only step 3 retries"), assuming Claude's competence throughout. It misses score 5 because of minor trimmable material: the service-naming gotcha is explained twice (Tier 3 block and Gotchas #3), and the time-sensitive "As of Feb 2026" date stamp sits in the main flow rather than a deprecation/notes section; it is well above score 3's "some unnecessary explanation". | 4 / 5 |
Actionability | Almost everything is copy-paste executable: docker run commands, a full k8s StatefulSet+Service manifest, a six-step typed worker, a curl test event, and a launchd plist. It falls short of score 5 because the Step 2 client example uses `new EventSchemas().fromRecord<Events>()` without importing `EventSchemas`, so that file fails as written; the curl example's `/e/key` endpoint also assumes an event-key setup not wired to the earlier `.env.inngest` values. | 4 / 5 |
Workflow Clarity | The process is clearly sequenced (intent-alignment questions → tiered setup → worker steps 1–6 → patterns → persistence → gotchas) with an explicit Verification checklist including a failure-recovery test ("Kill the worker mid-function — restart worker, function resumes from last step") and reboot checks — matching the score-5 anchor's validation steps, feedback loops, and checklists. Error messages for failure modes ("Error: signing-key is required", "Cannot find module '@inngest/ai'") give concrete recovery guidance. | 5 / 5 |
Progressive Disclosure | Section headers are clear, but the skill is a ~430-line monolith with no bundle reference files (references/, scripts/, and adrs/ do not exist), while the body links to nonexistent paths like [ADR-0010](/adrs/0010-system-loop-gateway) and defers to an external joelclaw.com setup script — content that belongs in separate files (k8s manifest, launchd plist, patterns, ADR context) is inlined and navigation is partly dead. This matches the score-3 anchor ("references present but not clearly signaled; content that should be separate is inline") and is above score 2 only because the section structure itself is well-organized. | 3 / 5 |
Total | 16 / 20 Passed |