CtrlK
BlogDocsLog inGet started
Tessl Logo

react-vendoring

React vendoring and react-server layer boundaries. Use when editing entry-base.ts, $$compiled.internal.d.ts, compiled/react* packages, or taskfile.js copy_vendor_react. Covers the entry-base.ts boundary (all react-server-dom-webpack/* imports must go through it), vendored React channels, type declarations, Turbopack remap to react-server-dom-turbopack, ComponentMod access patterns, and ESLint suppression for guarded requires.

74

Quality

93%

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

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

A lean, high-signal internal skill: it captures fragile, undocumented invariants (the entry-base.ts boundary, the Turbopack remap, the ESLint comment placement) in minimal tokens with a concrete worked example. The only weaknesses are the elided type in the code sample and the absence of an explicit verification step after the workflow.

Suggestions

Replace the elided type in the code sample ("export let renderToPipeableStream: ... | undefined") with the actual type or a complete, compilable snippet so the example is copy-paste ready.

Add an explicit verification step to the "Adding Node.js-Only React APIs" workflow (e.g., a build command or a quick runtime check confirming the export resolves in the (react-server) layer) instead of relying on the indirect "$runtime-debug" pointer.

State the concrete failure signature ("The react-server condition must be enabled") in the workflow section itself, so a verification failure can be immediately diagnosed without cross-referencing the boundary section.

DimensionReasoningScore

Conciseness

Every section conveys non-public repo knowledge Claude cannot infer (vendoring channels via makeAppAliases, the rspack (react-server) layer constraint, the silent Turbopack remap, the eslint-disable-next-line placement gotcha). There is no padding and no explanation of concepts Claude already knows.

5 / 5

Actionability

The 3-step "Adding Node.js-Only React APIs" procedure with a real TypeScript snippet and the concrete ESLint comment-placement rule are mostly executable, but the code elides the type ("export let renderToPipeableStream: ... | undefined"), so it is not fully copy-paste ready — a gap versus the score-5 anchor.

4 / 5

Workflow Clarity

The numbered sequence (add type declarations, export from entry-base.ts behind a process.env guard, access via ComponentMod) is clear and correctly ordered, and the runtime failure mode is documented, but there is no explicit post-change verification checkpoint — validation is only indirectly reachable via the "$runtime-debug" related skill. This sits between the score-3 (implicit checkpoints) and score-5 (explicit validation steps) anchors, noticeably above the midpoint.

4 / 5

Progressive Disclosure

There are no bundle files (no references/, scripts/, or assets/), and the ~59-line body is tightly organized into well-labeled sections with nothing that clearly belongs in a separate file. Cross-links under "Related Skills" ($flags, $dce-edge, $runtime-debug) are one level deep and clearly signaled, satisfying the simple-skill exception for well-organized single-file skills.

5 / 5

Total

18

/

20

Passed

Description

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

The description is exemplary: it states a clear niche, enumerates concrete capabilities, and gives explicit file-level trigger conditions. It uses third person with no fluff or over-claims.

DimensionReasoningScore

Specificity

The description lists multiple concrete, repo-specific capabilities: "the entry-base.ts boundary (all react-server-dom-webpack/* imports must go through it), vendored React channels, type declarations, Turbopack remap to react-server-dom-turbopack, ComponentMod access patterns, and ESLint suppression for guarded requires" — comprehensive with no vague filler.

5 / 5

Completeness

Both halves are explicit: the "what" ("React vendoring and react-server layer boundaries... Covers the entry-base.ts boundary...") and a concrete "when" ("Use when editing entry-base.ts, $$compiled.internal.d.ts, compiled/react* packages, or taskfile.js copy_vendor_react"), matching the top anchor with concrete trigger phrases.

5 / 5

Trigger Term Quality

It names the exact artifacts a developer would mention or paste: "entry-base.ts", "$$compiled.internal.d.ts", "compiled/react* packages", "taskfile.js copy_vendor_react", "react-server-dom-turbopack", plus "ESLint" and "Turbopack". File names with extensions give comprehensive natural trigger coverage for this domain; nothing significant is missing.

5 / 5

Distinctiveness Conflict Risk

This is a tightly scoped Next.js-internal concern with unique trigger files and task names; no generic phrasing that would collide with other skills, so conflict risk is minimal.

5 / 5

Total

20

/

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

metadata_version

'metadata.version' is missing

Warning

metadata_field

'metadata' should map string keys to string values

Warning

Total

14

/

16

Passed

Repository
vercel/next.js
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.