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, 类型状态, 新类型模式, 类型驱动设计
Install with Tessl CLI
npx tessl i github:actionbook/rust-skills --skill m05-type-driven89
Does it follow best practices?
If you maintain this skill, you can automatically optimize it using the tessl CLI to improve its score:
npx tessl skill review --optimize ./path/to/skillValidation for skill structure
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.
This description excels at trigger term coverage with comprehensive keywords including multilingual support, making it highly discoverable. However, it reads more like a keyword list than a proper description - it lacks explanation of what concrete actions Claude performs and doesn't have an explicit 'Use when...' clause despite having a 'Triggers:' section.
Suggestions
Add a clear capability statement before the triggers, e.g., 'Guides implementation of type-driven design patterns in Rust, helping encode invariants at compile time and design APIs that prevent invalid states.'
Convert 'Triggers:' to a proper 'Use when...' clause that describes user scenarios, e.g., 'Use when designing Rust APIs, implementing state machines, or when the user wants to leverage the type system for safety.'
| Dimension | Reasoning | Score |
|---|---|---|
Specificity | Names the domain (type-driven design) and lists specific patterns/concepts (type state, PhantomData, newtype, marker trait, builder pattern), but doesn't describe concrete actions - it's more a list of concepts than actions Claude would perform. | 2 / 3 |
Completeness | Has explicit 'Triggers:' section which partially addresses 'when', but lacks a clear 'what does this do' explanation - it lists concepts but doesn't explain what actions Claude performs with them. Missing explicit 'Use when...' clause. | 2 / 3 |
Trigger Term Quality | Excellent coverage of natural terms including technical keywords users would actually search for (PhantomData, newtype, builder pattern, sealed trait, ZST), conceptual phrases ('make invalid states unrepresentable', 'compile-time validation'), and even Chinese translations for multilingual support. | 3 / 3 |
Distinctiveness Conflict Risk | Highly distinctive with very specific Rust-focused type system concepts (PhantomData, ZST, sealed trait) that are unlikely to conflict with other skills. The niche is clearly type-driven design patterns in Rust. | 3 / 3 |
Total | 10 / 12 Passed |
Implementation
100%Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.
Excellent type-driven design skill that exemplifies concise, actionable documentation. The tabular format maximizes information density while maintaining clarity. The Trace Up/Down pattern effectively connects this skill to the broader skill ecosystem without verbose explanation.
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | Extremely lean and efficient. Uses tables for quick reference, minimal prose, and assumes Claude understands Rust type system concepts. Every section earns its place with no unnecessary explanation of what newtypes or PhantomData are. | 3 / 3 |
Actionability | Provides executable Rust code examples for newtype and type state patterns. Decision guides and pattern tables give concrete, copy-paste ready implementations with clear purpose mapping. | 3 / 3 |
Workflow Clarity | Clear decision flow through 'Thinking Prompt' section with numbered steps. Trace Up/Down sections provide explicit navigation for when to apply patterns. Anti-patterns table provides validation checkpoints for design decisions. | 3 / 3 |
Progressive Disclosure | Well-structured with clear sections progressing from core question to patterns to decision guides. Related Skills section provides one-level-deep references to other skills (m09-domain, m04-zero-cost, etc.) without nesting. | 3 / 3 |
Total | 12 / 12 Passed |
Validation
75%Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.
Validation — 12 / 16 Passed
Validation for skill structure
| Criteria | Description | Result |
|---|---|---|
description_trigger_hint | Description may be missing an explicit 'when to use' trigger hint (e.g., 'Use when...') | Warning |
metadata_version | 'metadata' field is not a dictionary | Warning |
license_field | 'license' field is missing | Warning |
frontmatter_unknown_keys | Unknown frontmatter key(s) found; consider removing or moving to metadata | Warning |
Total | 12 / 16 Passed | |
Table of Contents
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.