CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

path-to-regexp-v8-migration

Migrate @data-client/rest path strings from path-to-regexp v6 to v8 syntax. Use when upgrading path-to-regexp, updating RestEndpoint.path or resource path strings, or when seeing errors about unexpected ?, +, (, or ) in paths.

72

Quality

90%

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

87%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.

An excellent lean reference: every rule is a concrete before→after transformation, content is tightly organized with no padding, and the single external link is clearly signaled. The main weakness is that it reads as a lookup table rather than a sequenced migration workflow — there is no explicit find→transform→verify order and no validation step despite this being a batch, codebase-wide change with a known failure mode (Unexpected ? at compile time).

Suggestions

Add a short ordered workflow at the top: (1) locate v6 paths using the 'Where to Find Paths' search patterns, (2) apply the transformation rules, (3) verify — so the implicit sequence becomes explicit.

Add a validation checkpoint at the end, e.g. 'Verify: run the typescript-tests/ suite or confirm path-to-regexp compile() no longer throws Unexpected ? / Unexpected + on each migrated path.'

Include a common-failure note in the verification step: the body already states that dropping the backslash before a literal ? causes 'Unexpected ?' at compile() time — surface that as an explicit check rather than an inline caveat.

DimensionReasoningScore

Conciseness

The body is lean with zero padding: every section is a terse rule plus a before→after example block, with no explanation of concepts Claude already knows (no "what is a URL parameter" filler). Phrases like "`?` suffix removed. Wrap the optional segment (including its prefix) in `{}`." assume competence and every token earns its place. The v6/v8 version mentions are the substance of the skill, not incidental time-sensitive padding, so they are not penalized.

5 / 5

Actionability

Every rule is expressed as copy-paste-ready concrete transformations: "/:id? → {/:id}", "/:path+ → /*path", "/resource\?p=1 → /resource\\?p=1", and the combined examples cover the genuinely tricky cases ("/search\\?q=:q?&page=:page? → /search?{q=:q}{&page=:page}"). Per the rubric's code_vs_instruction note, an instruction-only skill with this density of concrete guidance fully meets anchor 5, including the "Where to Find Paths" search targets and the type-inference rules.

5 / 5

Workflow Clarity

The sequence (find paths via the search patterns → apply the transformation rules → check type inference) is present but implicit — the rules are organized as a lookup reference rather than an ordered migration procedure, and there is no validation checkpoint (e.g., "run typescript-tests" or "verify compile() no longer throws Unexpected ?") despite the skill itself noting that removing a backslash "causes `Unexpected ?` at `compile()` time". Since migrating paths across a codebase is a batch operation, the rubric's validation cap applies, keeping this at anchor 3 rather than 4.

3 / 5

Progressive Disclosure

This is a simple single-purpose skill with no bundle files and no need for external references; the body is compact and well-organized into clearly labeled sections (Migration Rules, Combined Examples, Where to Find Paths, Type System). The one external pointer ("Reference: [path-to-regexp README errors section]...") is clearly signaled at the top and one level deep, matching the simple-skill exception in the rubric's scoring notes.

5 / 5

Total

18

/

20

Passed

Description

87%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.

A strong description: third-person, concise, and explicitly covering both what the skill does and when to use it with concrete, error-message-derived triggers. The only minor gap is that trigger coverage could include a few more synonyms (e.g., "v6", "optional parameter").

DimensionReasoningScore

Specificity

The description names the exact domain and concrete objects: "Migrate @data-client/rest path strings from path-to-regexp v6 to v8 syntax" plus specific targets like "RestEndpoint.path or resource path strings". It stays just short of anchor 5 because it describes a single migration action rather than multiple distinct concrete actions, but exceeds anchor 3 since the named objects and syntax versions make the action set specific with only minor coverage gaps.

4 / 5

Completeness

It explicitly answers both questions: what ("Migrate @data-client/rest path strings from path-to-regexp v6 to v8 syntax") and when ("Use when upgrading path-to-regexp, updating RestEndpoint.path or resource path strings, or when seeing errors about unexpected ?, +, (, or ) in paths") with concrete trigger phrases. This matches the anchor 5 example structure exactly.

5 / 5

Trigger Term Quality

Triggers include natural phrases a user would actually say or see: "upgrading path-to-regexp", "updating RestEndpoint.path", and especially "seeing errors about unexpected ?, +, (, or ) in paths", which matches real error text. It falls short of anchor 5's comprehensive synonym coverage — missing variations like "v6", "deprecated path syntax", or "optional parameter" that users might also say.

4 / 5

Distinctiveness Conflict Risk

This is a clear niche — a version-specific syntax migration for a named library (@data-client/rest) and package (path-to-regexp) — with distinct triggers (specific error characters, named API fields). Minimal conflict risk with any other skill; nothing generic remains.

5 / 5

Total

18

/

20

Passed

Validation

100%

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

Validation — 16 / 16 Passed

Validation for skill structure

No warnings or errors.

Repository

reactive/data-client

Path

.agents/skills/path-to-regexp-v8-migration/SKILL.md

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.