Content
71%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 well-structured, knowledge-dense skill body with executable examples and a clear multi-step workflow including error-recovery guidance. Its main weakness is that the entire helper layer it references (parseSnapshot.ts, compareSnapshots.ts, findRetainers.ts, streamSnapshot.mjs, scratchpad/) is absent from the bundle, so the progressive-disclosure design and the runnable examples cannot be verified as shipped.
Suggestions
Ship the referenced helper files with the skill (helpers/parseSnapshot.ts, compareSnapshots.ts, findRetainers.ts, streamSnapshot.mjs) or inline minimal versions of them — currently every code example imports files that are not in the bundle.
Add an explicit validation checkpoint early in the workflow, e.g. after parsing, sanity-check that nodes/edges tuple counts divide evenly by meta.node_fields.length / meta.edge_fields.length before proceeding to comparison or retainer tracing.
Trim the 'Running Analysis' section (drop the repeated --max-old-space-size snippet and the 30-120 second note) since the same invocation already appears in the workflow examples, and state the memory flag once.
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | The body is dense with non-obvious, domain-specific knowledge (the ~2 GiB Buffer limit and ERR_FS_FILE_TOO_LARGE recovery path, edge-type semantics, VS Code retention patterns, streaming techniques) and avoids explaining concepts Claude already knows. Minor trimmable redundancy remains — the 'Running Analysis' section repeats the --max-old-space-size invocation already shown, and 'Typical analysis takes 30-120 seconds' adds little — so it fits the 4-anchor (efficient, minor instances that could be trimmed) rather than the 5-anchor's every-token-earns-its-place. | 4 / 5 |
Actionability | Guidance is mostly executable: import statements, bash commands with memory flags, concrete function options (maxPaths: 5, maxDepth: 25, maxAttempts: 200), and field-level results (result.topBySize, result.newObjectGroups). It falls short of the 5-anchor because the streamNumberTuples callback is left as an empty template and every referenced helper file is absent from the bundle, so the copy-paste examples cannot actually run as shipped. | 4 / 5 |
Workflow Clarity | A clear four-step sequence (Parse -> Compare -> Find Retainers -> Write Investigation Scripts) with an entry prerequisite, an error-recovery feedback loop (full-file read fails -> switch to streaming script), and documentation requirements (findings.md per dated subfolder). No explicit validation checkpoints exist (e.g., sanity-checking parsed node/edge counts against meta), which keeps it at the 4-anchor rather than 5; the destructive/batch cap does not apply since the analysis is read-only. | 4 / 5 |
Progressive Disclosure | The SKILL.md body is well-sectioned and correctly delegates implementation to one-level-deep, clearly signaled helper links (parseSnapshot.ts, compareSnapshots.ts, findRetainers.ts, streamSnapshot.mjs). However, the bundle contains no helpers/ or scratchpad/ files — none of the referenced paths exist — so the split the design depends on is not realized and navigation cannot be verified. This sits between the 4-anchor (good structure, minor gaps) and worse: the referenced files being missing is a structural defect, matching the 3-anchor's 'could be better organized / references not backed by real files'. | 3 / 5 |
Total | 15 / 20 Passed |