CtrlK
BlogDocsLog inGet started
Tessl Logo

author-migration

Author or scope a first-party Nx migration. Use whenever code removes, renames, or deprecates an option/flag/executor/generator-schema field, changes a default, or bumps a dependency, and someone asks whether existing workspaces need a migration so they don't break on `nx migrate`/upgrade. Covers writing the colocated update-VER/NAME.{ts,spec.ts,md} set, the migrations.json entry (version, requires, implementation, prompt, documentation) or packageJsonUpdates group, and the AI-agent prompt/runbook .md for prompt-only or hybrid (generator + prompt) migrations. Also covers porting an upstream framework's own migrations into Nx. Invoke BEFORE writing, fixing, or editing any migration, migration prompt/runbook, or packageJsonUpdates group, and before concluding a breaking change needs no migration at all.

68

Quality

85%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Passed

No findings from the security scan

SKILL.md
Quality
Evals
Security

Quality

Content

73%Weight 40%Scale 1-5

Reviews 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.

DimensionReasoningScore

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

Description

92%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

An exemplary skill description: it states concrete artifacts and fields, gives explicit and varied 'Use when.../Invoke BEFORE...' triggers, and occupies a distinct Nx-migration niche. Only minor synonym coverage (codemod, ng-update interop) keeps trigger term quality from full marks.

DimensionReasoningScore

Specificity

The description lists multiple concrete, comprehensive actions: "Author or scope a first-party Nx migration", "writing the colocated update-VER/NAME.{ts,spec.ts,md} set, the migrations.json entry (version, requires, implementation, prompt, documentation) or packageJsonUpdates group", "the AI-agent prompt/runbook .md for prompt-only or hybrid migrations", and "porting an upstream framework's own migrations into Nx". It names the exact artifacts and fields; nothing is abstract padding.

5 / 5

Completeness

Both halves are explicit and concrete. What: author or scope a first-party Nx migration covering the colocated file set, migrations.json entry, packageJsonUpdates group, prompt runbooks, and upstream ports. When: "Use whenever code removes, renames, or deprecates..." and "Invoke BEFORE writing, fixing, or editing any migration... and before concluding a breaking change needs no migration at all." This matches the anchor-5 example structure exactly.

5 / 5

Trigger Term Quality

Strong natural trigger terms: "removes, renames, or deprecates an option/flag/executor/generator-schema field", "changes a default", "bumps a dependency", "`nx migrate`/upgrade", "breaking change". A few natural variants users would say are absent (e.g. "codemod", "ng update"/Angular CLI interop, "update script"), keeping it just below comprehensive anchor 5.

4 / 5

Distinctiveness Conflict Risk

It carves a clear niche ("first-party Nx migration", "migrations.json", "packageJsonUpdates group", "update-VER/NAME.{ts,spec.ts,md} set") that no generic skill would collide with, and the triggers are anchored to Nx-specific surfaces. Third-person/verb-led phrasing throughout, no conflict overlap with unrelated skills.

5 / 5

Total

19

/

20

Passed

Validation

87%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 14 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

allowed_tools_field

'allowed-tools' contains unusual tool name(s)

Warning

relative_links

Relative link issues: 12 missing, 1 suspicious

Warning

Total

14

/

16

Passed

Repository
nrwl/nx
Reviewed

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.