Content
73%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 exceptionally strong on actionable, executable guidance and on sequenced workflow with validation checkpoints — the Nx migration contract knowledge is deep and non-derivable. Its two weaknesses are the ~48KB inlined density (long run-on paragraphs that belong partly in reference files) and a broken progressive-disclosure layer: all cited companion files are missing from the bundle, so the skill's designed navigation does not exist.
Suggestions
Ship the missing companion files (runtime-contract.md, deprecated-patterns.md, templates/migrations-json.md, templates/spec-skeleton.md, templates/prompt-runbook.md, templates/documentation-md.md) or remove the references — as bundled, every one of the seven cited paths is broken, which makes sections 3–6 partially unactionable.
Offload the reference-grade gating rules from section 2 (the packageJsonUpdates group-ordering, chaining, and ladder paragraph especially) into runtime-contract.md, keeping the decision rules in SKILL.md; this would simultaneously fix the conciseness run-on problem and give the companion files real content.
Break the multi-clause sentences that each pack 3–5 rules (e.g. the `requires` OR-conditions bullet and the group-ladder paragraph) into separate bullets or a decision table so each rule is individually scannable.
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | There is no padding about concepts Claude already knows — nearly every sentence carries repo-specific contract knowledge (e.g. "an entry runs when `installed < version <= target`", "a group's `version` gate is inclusive on the installed side"). But the ~48KB body is dense with extremely long multi-clause sentences (the section-2 `packageJsonUpdates` paragraph alone packs five distinct rules into one run-on), and sections 2 and 4 inline reference-grade gating detail that duplicates what the cited companion files are supposed to hold. Mostly earns its tokens, but noticeably could be tightened and offloaded. | 3 / 5 |
Actionability | Fully executable guidance throughout: exact commands ("npx nx run-many -t test,lint -p <plugin>", "pnpm local-registry" + "npm adduser --registry http://localhost:4873" + "NX_SKIP_PROVENANCE_CHECK=true npx nx migrate <version>"), exact file layouts, API-level canon ("`export default async function update(tree: Tree)`", `joinPathFragments`, `jsonc-parser` `modify` + `applyEdits`), a runnable script (scripts/compute-target-versions.mjs), and named real exemplar migrations for every pattern. Copy-paste ready with common cases covered. | 5 / 5 |
Workflow Clarity | A clearly sequenced 7-step workflow (decompose → version/gating → scaffold → implement → test/validate → docs → pre-PR checklist) with explicit validation checkpoints: the validators block ("Run the repo validators; they must pass"), the real-repo pre-release validation with two alternative procedures, a dedicated 'What no validator checks' residual-analysis section, and a final checklist covering exactly that residue. Error-recovery feedback loops are present (the script's bail path tells the agent to compute by hand, parse-failure handling returns paths in `agentContext`). | 5 / 5 |
Progressive Disclosure | The body opens by listing companion files ("runtime-contract.md: how `nx migrate` consumes every migrations.json key... Read it before wiring an entry", "deprecated-patterns.md", "templates/") and cites templates/migrations-json.md, templates/spec-skeleton.md, templates/prompt-runbook.md, and a sibling skill — but none of these files exist in the bundle; only scripts/compute-target-versions.mjs is present. Navigation to the referenced material is broken, and the reference-grade detail those files would hold is inlined in the main body instead, which is exactly the anchor-2 pattern (content that clearly belongs in separate files is inlined). Scored against the actual bundle structure per the judging guideline, it cannot reach 3 despite the good signaling intent. | 2 / 5 |
Total | 15 / 20 Passed |