CtrlK
BlogDocsLog inGet started
Tessl Logo

m05-type-driven

CRITICAL: Use for type-driven design. Triggers: type state, PhantomData, newtype, marker trait, builder pattern, make invalid states unrepresentable, compile-time validation, sealed trait, ZST, 类型状态, 新类型模式, 类型驱动设计

59

Quality

68%

Does it follow best practices?

Impact

No eval scenarios have been run

SecuritybySnyk

Passed

No known issues

Optimize this skill with Tessl

npx tessl skill review --optimize ./skills/m05-type-driven/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Discovery

72%

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 excels at trigger term coverage and distinctiveness, providing an extensive list of Rust-specific type-driven design keywords including Chinese translations. However, it lacks concrete action descriptions — it tells Claude when to select the skill but not what the skill actually does (e.g., implement type state patterns, refactor code to use newtypes, design builder APIs). The format reads more like a tag cloud than a proper skill description.

Suggestions

Add concrete action verbs describing what the skill does, e.g., 'Implements type state patterns, designs newtype wrappers, refactors code to make invalid states unrepresentable, and applies compile-time validation using Rust's type system.'

Restructure to separate the 'what' from the 'when', e.g., start with capability descriptions, then follow with 'Use when...' and the trigger terms.

DimensionReasoningScore

Specificity

The description names the domain (type-driven design in Rust) and lists specific concepts like type state, PhantomData, newtype, marker trait, builder pattern, but doesn't describe concrete actions (e.g., 'implement', 'refactor', 'design'). It reads more like a keyword list than a description of capabilities.

2 / 3

Completeness

The 'when' is partially addressed via 'Use for type-driven design' and the trigger list, but the 'what' is very weak — it doesn't explain what concrete actions the skill performs (e.g., designing types, refactoring code, generating patterns). The description is essentially a trigger keyword list without explaining what the skill actually does.

2 / 3

Trigger Term Quality

Excellent coverage of natural trigger terms users would use: 'type state', 'PhantomData', 'newtype', 'marker trait', 'builder pattern', 'make invalid states unrepresentable', 'compile-time validation', 'sealed trait', 'ZST', plus Chinese equivalents. These are terms Rust developers would naturally use when seeking this kind of help.

3 / 3

Distinctiveness Conflict Risk

The description targets a very specific niche — Rust type-driven design patterns — with highly distinctive terms like PhantomData, ZST, sealed trait, and type state. This is unlikely to conflict with other skills.

3 / 3

Total

10

/

12

Passed

Implementation

64%

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

This is a well-organized, concise reference skill for type-driven design in Rust. Its strengths are token efficiency, clear tables for decision-making, and good pattern coverage. Its weaknesses are incomplete executable examples for several patterns and lack of explicit validation/verification steps in the workflow.

Suggestions

Add complete, executable examples for Builder, Sealed Trait, and Marker Trait patterns—currently these only have one-line signatures in the Quick Reference table.

Add a brief verification step or feedback loop, e.g., 'If the code compiles with the type state pattern, invalid transitions are statically prevented—try calling authenticate() on a Disconnected connection to confirm a compile error.'

DimensionReasoningScore

Conciseness

The content is lean and well-structured with tables, concise examples, and no unnecessary explanations of concepts Claude already knows. Every section earns its place—no padding about what newtypes are conceptually or how Rust's type system works in general.

3 / 3

Actionability

The Newtype and Type State examples provide concrete, executable Rust code, but several patterns (Builder, Sealed Trait, Marker Trait) only show signatures or one-liners without complete executable examples. The 'Trace Up/Down' sections are conceptual navigation aids rather than actionable instructions.

2 / 3

Workflow Clarity

The 'Thinking Prompt' section provides a reasonable decision sequence, and the Decision Guide table helps select patterns. However, there are no explicit validation checkpoints or feedback loops—e.g., no guidance on how to verify that a type-state design is correct or how to iterate if the design doesn't compile as expected.

2 / 3

Progressive Disclosure

The skill references related skills (m09-domain, m04-zero-cost, m06-error-handling, m15-anti-pattern) which is good, but no bundle files exist to support these references. The content is moderately long with inline examples that could potentially be split out, though the current length is manageable.

2 / 3

Total

9

/

12

Passed

Validation

90%

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

Validation10 / 11 Passed

Validation for skill structure

CriteriaDescriptionResult

frontmatter_unknown_keys

Unknown frontmatter key(s) found; consider removing or moving to metadata

Warning

Total

10

/

11

Passed

Repository
actionbook/rust-skills
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.