CtrlK
BlogDocsLog inGet started
Tessl Logo

setup-ts-deep-modules

在 TypeScript repo 中接入 dependency-cruiser,让每个 package 成为 deep module:implementation 隐藏在 subfolders 中,只能通过 entry-point files 访问。User-invoked。

57

Quality

66%

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

Fix and improve this skill with Tessl

tessl review fix ./skills/in-progress/setup-ts-deep-modules/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

70%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 well-sequenced, validation-rich workflow with exemplary done-when checkpoints and a prove-the-rules-bite feedback loop, and it is largely token-efficient. Its critical weakness is that the load-bearing artifact — the dependency-cruiser config containing all four rules — is referenced but missing from the bundle, leaving both actionability and the disclosure structure unrealized.

Suggestions

Ship the referenced `dependency-cruiser.config.cjs` in the skill bundle so step 3's copy instruction is actually executable.

Alternatively, inline the four rules (or at minimum the `$1` back-reference pattern they depend on) in the body, since the Notes assume config details never shown.

Consolidate the barrel-file discouragement, which currently appears in "Entry points, not a barrel", step 7, and the Notes, into a single authoritative statement.

DimensionReasoningScore

Conciseness

The body is dense and assumes Claude's competence — vocabulary is delegated to the codebase-design skill and dependency-cruiser is never explained — but barrel-file discouragement is repeated in three places ("Entry points, not a barrel", step 7, and Notes) and the four rules are stated then re-referenced. Fits anchor 4 (efficient with minor trimmable redundancy); not 5 due to the repetition, not 3 because there is no padded concept explanation.

4 / 5

Actionability

Steps include concrete lockfile-to-package-manager mapping, the `lint:boundaries` script, and an exact violation probe (`import { thing } from "../lib/impl"`), but step 3's core instruction — copying `./dependency-cruiser.config.cjs` — references a file that is absent from the bundle, and the four rules exist only as prose with the `$1` back-reference implementation never shown. The skill cannot be executed as written; fits anchor 3 (concrete guidance but missing key details); not 4 because a critical artifact is missing rather than a minor gap, not 2 because most steps are specific and runnable.

3 / 5

Workflow Clarity

Seven sequenced steps each end in an explicit "Done when" checkpoint, and step 6 is a full validation feedback loop: clean example must pass, an injected deep import must fail with `tests-through-entrypoints`, revert must pass again — with an explicit recovery directive to fix the wiring before proceeding. Matches anchor 5 (explicit validation steps, error-recovery loop, per-step checklists); not 4 because checkpoints are comprehensive rather than having minor gaps.

5 / 5

Progressive Disclosure

The body is well-sectioned and the single reference (the config file) is clearly signaled and one level deep, but scored against the actual bundle: the directory contains only SKILL.md, so the sole referenced path `dependency-cruiser.config.cjs` does not resolve and the intended split is never realized. Sits between anchors 3 and 4 — the dangling sole reference is more than a minor organization gap, though the reference itself is not buried.

3 / 5

Total

15

/

20

Passed

Description

62%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 specific and highly distinctive, with a clear statement of what the skill does, but it lacks any explicit "Use when..." trigger guidance and misses common natural synonyms a user might say. The "User-invoked" flag partially compensates but does not substitute for explicit trigger phrases.

Suggestions

Add an explicit trigger clause, e.g. "Use when the user wants to enforce package boundaries / module boundaries or set up dependency-cruiser in a TypeScript repo."

Include natural synonyms users would actually say — "package boundaries", "module boundaries", "import restrictions", "architecture rules" — alongside "deep module" and "entry-point files".

Briefly mention the operational outcome (adds enforced rules + proves violations are caught) so the "what" covers the full scope of the skill.

DimensionReasoningScore

Specificity

Names the domain and several concrete actions ("接入 dependency-cruiser", "implementation 隐藏在 subfolders 中", "只能通过 entry-point files 访问"), but omits operational specifics like writing enforcement rules, wiring checks, and verification. Fits anchor 4 (several specific actions, minor gaps); not 5 because coverage of what the skill actually does is incomplete, not 3 because it goes beyond 1-2 actions.

4 / 5

Completeness

The "what" is clear (integrate dependency-cruiser to make each package a deep module with entry-point-only access), but the only trigger guidance is "User-invoked.", which is an invocation-mode flag rather than a "Use when..." clause. Per the rubric guideline, a missing explicit trigger clause caps completeness at 3; not 4 without an explicit when, not 2 because the what is concrete.

3 / 5

Trigger Term Quality

Contains strong domain terms ("dependency-cruiser", "deep module", "entry-point files") but misses the natural phrasings users would say such as "package/module boundaries", "import restrictions", or "architecture rules". Fits anchor 3 (relevant keywords, missing common variations); not 4 because coverage is narrow, not 2 because the terms are specific rather than generic.

3 / 5

Distinctiveness Conflict Risk

Occupies a clear niche combining a specific tool ("dependency-cruiser"), a specific architecture concept ("deep module"), and a specific access convention ("entry-point files") in TypeScript repos — minimal overlap with any generic linting or setup skill. Matches anchor 5; not 4 because no meaningful conflict risk is identifiable.

5 / 5

Total

15

/

20

Passed

Validation

93%

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

Validation — 15 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

relative_links

Relative link issues: 2 missing, 1 deeper-than-1-level

Warning

Total

15

/

16

Passed

Repository
vinvcn/mattpocock-skills-zh-CN
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.