CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

worktree-ports

Discover and use stable per-app ports assigned to a local monorepo worktree. Use when starting, opening, testing, or debugging local apps, or when worktree slots, localhost ports, PORT, app URLs, or .worktree-env.json are involved.

68

Quality

86%

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

72%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 a lean, mostly actionable rule list with concrete commands, files, and template syntax, weakened by an implicit workflow order (usage rules before the config setup they depend on) and vague bundle navigation that leaves the config-format details undiscoverable. The usage path is well served; the first-time setup path is not.

Suggestions

Reorder (or number) the workflow so configuration precedes usage: author .worktree-env.json → set the slot variable in a worktree-local env file → start via the root `bun dev*` script → verify with `bun dev:info --json` before accessing apps.

Replace the generic "bundled in `scripts/`" pointer with named files and roles, e.g. `scripts/worktree-runtime.ts` (resolver) and `scripts/worktree-env.ts` (command wrapper).

Reference `assets/worktree-env.schema.json` where `exports`, app offsets, and range stride are mentioned, or inline a minimal `.worktree-env.json` example so the config-format rules are self-contained.

DimensionReasoningScore

Conciseness

Ten lean imperative bullets with zero padding — "Run `bun dev:info --json` before accessing local apps. Use the returned app URLs; never assume a port" — and no explanation of concepts Claude already knows. Every token earns its place; nothing could be cut without losing information.

5 / 5

Actionability

Mostly concrete and executable: named commands (`bun dev:info --json`), named files (`.env.worktree.local`, `.env.local`, `.worktree-env.json`), and exact template syntax (`{apps.<name>.url}`). Gaps keep it below 5: "Keep app offsets unique and below the configured range stride" and "Declare every variable an app needs under its `exports`" never say where these fields live, and no example `.worktree-env.json` is shown.

4 / 5

Workflow Clarity

The steps are present but ordered thematically rather than by execution — usage rules ("Run `bun dev:info --json` before accessing") precede the config setup (slot variable, `exports`, templates) that must actually come first, so the sequence is implicit. The sole checkpoint is the dev:info pre-access rule; there is no error-recovery guidance (e.g., what to do on a port conflict or unassigned slot), matching anchor 3 rather than anchor 4's "most checkpoints present".

3 / 5

Progressive Disclosure

Implementation is appropriately split out (the resolver and wrapper do live in `scripts/`), but the pointer "The generic resolver and command wrapper are bundled in `scripts/`" names no files or their roles, and `assets/worktree-env.schema.json` — which documents the `exports`, offsets, and range-stride fields half the bullets rely on — is never referenced at all. References are present but weakly signaled with a real navigation gap, matching anchor 3; it is not anchor 4 because the omissions exceed minor organization gaps.

3 / 5

Total

15

/

20

Passed

Description

95%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: it states a precise, concrete capability and pairs it with an explicit and richly varied trigger clause covering verbs (starting/testing/debugging), identifiers (PORT), and the exact config file name. Its only weakness is the narrow two-verb capability list, which undersells the configuration-side actions the body actually covers.

DimensionReasoningScore

Specificity

Concrete actions are explicit and precisely worded — "Discover and use stable per-app ports assigned to a local monorepo worktree" — but only two capability verbs are stated, leaving minor coverage gaps (config authoring, template resolution) versus the comprehensive multi-action anchor. It sits between anchor 3 (1-2 actions, not comprehensive) and anchor 4 (several actions, minor gaps), noticeably above the midpoint due to the precise domain wording.

4 / 5

Completeness

Explicitly answers both: what ("Discover and use stable per-app ports assigned to a local monorepo worktree") and when ("Use when starting, opening, testing, or debugging local apps, or when worktree slots, localhost ports, PORT, app URLs, or .worktree-env.json are involved") with concrete trigger phrases — a direct match to the anchor-5 example structure.

5 / 5

Trigger Term Quality

Comprehensive natural terms including synonyms and exact identifiers: "starting, opening, testing, or debugging local apps", "localhost ports", "PORT", "app URLs", and the config file name ".worktree-env.json". These are exactly the phrases a user would say when needing this skill, matching the anchor-5 example's synonym-plus-extension coverage.

5 / 5

Distinctiveness Conflict Risk

Clear niche (per-worktree port assignment in a local monorepo) with distinct triggers such as "worktree slots" and ".worktree-env.json" that no generic skill would claim, giving minimal conflict risk. It is not score 4 because there is no closely related skill with which these triggers could plausibly overlap.

5 / 5

Total

19

/

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

FranciscoMoretti/chat-js

Path

.agents/skills/worktree-ports/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.