Content
61%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 highly actionable with concrete, executable TypeScript and explicit limits, but it ships a large source implementation inline with no bundle files, and its batch/destructive workflows omit validation feedback loops. Organization is solid, but progressive disclosure and workflow-validation gaps pull the overall score down.
Suggestions
Move the full QueuedTaskRunner implementation into scripts/semaphore.ts and reference it from SKILL.md, keeping only the usage pattern inline, to improve both conciseness and progressive disclosure.
Add explicit validation/verification steps to the batched upsert and delete workflows (e.g., confirm applied item count, verify deletes, retry on 429) with a fix-and-retry feedback loop, which would lift the workflow-clarity cap.
Split the per-section API reference and decision-guide material into a references/ file so SKILL.md acts as a concise overview pointing one level deep to details.
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | The prose is lean (decision tables, terse pitfalls, checklists, no basic-concept filler), but a ~115-line full QueuedTaskRunner class implementation is inlined in SKILL.md when it could be offloaded, so it is mostly efficient with substantial padding that could be tightened. | 3 / 5 |
Actionability | Provides copy-paste-ready TypeScript for search, list, query, pagination, batching, deletes, and semaphore usage, with concrete numeric limits and BAD/GOOD contrast examples covering the common cases. | 5 / 5 |
Workflow Clarity | Sections are well-organized with a pitfalls list and summary checklist, but the batch upsert and delete workflows lack validation/verification checkpoints or error-recovery feedback loops, and the rubric caps batch/destructive operations without validation at 3. | 3 / 5 |
Progressive Disclosure | No bundle files exist (references/scripts/assets absent) and the full QueuedTaskRunner source is inlined despite the body itself instructing the reader to place it in src/shared/utils/semaphore.ts; content that clearly belongs in a separate file is inlined with minimal signaling. | 2 / 5 |
Total | 13 / 20 Passed |