CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

setup-ts-deep-modules

Wire dependency-cruiser into a TypeScript repo so each package is a deep module, with implementation hidden in subfolders and reachable only through its entry-point files. User-invoked.

Quality

78%

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 ./.agents/skills/setup-ts-deep-modules/SKILL.md

The canonical home for this skill is setup-ts-deep-modules in mattpocock/skills

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 workflow is exemplary — clearly sequenced steps with per-step completion criteria and a genuine prove-it-fails validation loop — and the body is concise with well-chosen structure. The critical defect is that the referenced `dependency-cruiser.config.cjs` bundle file, which carries the four rules and the `$1` back-references the whole skill depends on, is missing from the bundle.

Suggestions

Ship the actual `dependency-cruiser.config.cjs` bundle file containing the four rules, the `PACKAGES_ROOT` variable, and the `$1` back-references — step 3 currently instructs copying a file that is not present, which blocks the skill's core deliverable.

If the config file cannot be bundled, inline a minimal working `.dependency-cruiser.cjs` example in the body so the rules are implementable as written.

Add the exact install command per detected package manager (e.g. `pnpm add -D dependency-cruiser`) so step 2 is copy-paste ready rather than leaving the flag choice to inference.

DimensionReasoningScore

Conciseness

The body is efficient: the ASCII layout tree, the four numbered rules, and per-step "Done when" criteria each earn their place, and it delegates vocabulary to the "codebase-design" skill instead of re-explaining it. Minor over-explanation could be trimmed — the "Entry points, not a barrel" paragraph and the Ousterhout gloss "a lot of behaviour behind a small interface" partially restate what the rules already imply — so it sits at the 4 anchor rather than the lean every-token-counts 5.

4 / 5

Actionability

Most steps are executable — package-manager detection via lockfiles is concrete ("pnpm-lock.yaml → pnpm"), the lint script is specified (`depcruise <packages-root>`), and the violation test gives a literal deep-import line to try. However, step 3 says "Copy [`dependency-cruiser.config.cjs`](./dependency-cruiser.config.cjs) to the repo root" and that file does not exist in the skill bundle, so the centerpiece artifact containing the four rules and the `$1` back-references is not actually available — a missing key detail that drops this below the 4 anchor's "minor gaps".

3 / 5

Workflow Clarity

The seven steps are clearly sequenced, each with an explicit "Done when" checkpoint, and step 6 is a full validation feedback loop: run and pass on the clean example, add a deep import and observe the failure with the named rule `tests-through-entrypoints`, revert and re-pass, with recovery guidance ("If step 2 does not fail, the rules are not wired correctly, so fix before finishing"). This matches the 5 anchor's validate-fix-retry pattern exactly; the 4 anchor's "minor validation gaps" does not apply.

5 / 5

Progressive Disclosure

The single-file body is well organized with clear sections and correctly defers the full rule configuration to a bundle file rather than inlining it, but the one referenced path (`./dependency-cruiser.config.cjs`) does not exist in the bundle — the skill directory contains no references/, scripts/, assets/, or config file at all. Scored against the actual bundle structure, the single one-level-deep reference is broken, so navigation to the key material fails; this is a real organizational gap, not the 4 anchor's "minor organization gaps".

3 / 5

Total

15

/

20

Passed

Description

78%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, specific description that clearly names the tool, the domain, and the concrete structural outcome, with explicit user-invocation signaling. Its only weakness is that the "when" tells who invokes it rather than the situations that call for it, and a few natural synonyms are missing.

DimensionReasoningScore

Specificity

The description names concrete actions — "Wire dependency-cruiser into a TypeScript repo", "implementation hidden in subfolders and reachable only through its entry-point files" — which lists several specific capabilities. It falls short of a 5 because it omits concrete outcomes the skill actually delivers (lint script wiring, example package scaffolding, README documentation), leaving minor coverage gaps.

4 / 5

Completeness

The "what" is clear and concrete (wire dependency-cruiser so packages are deep modules with hidden implementation), and "User-invoked" explicitly signals invocation mode, so the "Use when" cap at 3 does not apply. The "when" states who invokes it but not the situations that call for it, which is the "when could be more explicit" case of the 4 anchor rather than the fully concrete trigger phrases of a 5.

4 / 5

Trigger Term Quality

Natural keywords include "TypeScript repo", "package", "deep module", "entry-point files", "subfolders", and the tool name "dependency-cruiser" — good coverage of terms a user would plausibly say when requesting this setup. A few natural synonyms are missing (e.g. "package boundaries", "import rules", "module structure"), so it does not reach the comprehensive synonym coverage of a 5.

4 / 5

Distinctiveness Conflict Risk

The pairing of a specific tool ("dependency-cruiser") with a specific target ("TypeScript repo", "deep module", "entry-point files") carves out a clear niche with distinct triggers and virtually no overlap risk with other skills. It is not merely "somewhat specific" as in the 3 anchor; no closely related generic skill would collide with these triggers.

5 / 5

Total

17

/

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

tonykay/transcriber

Path

.agents/skills/setup-ts-deep-modules/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.