CtrlK
BlogDocsLog inGet started
Tessl Logo

sandi-metz-rules

This skill should be used when users request code review, refactoring, or code quality improvements for Ruby codebases. Apply Sandi Metz's four rules for writing maintainable object-oriented code - classes under 100 lines, methods under 5 lines, no more than 4 parameters, and controllers instantiate only one object. Use when users mention "Sandi Metz", "code quality", "refactoring", or when reviewing Ruby code for maintainability.

79

1.17x
Quality

67%

Does it follow best practices?

Impact

100%

1.17x

Average score across 3 eval scenarios

SecuritybySnyk

Passed

No known issues

Optimize this skill with Tessl

npx tessl skill review --optimize ./skills/sandi-metz-rules/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

35%

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

This skill is well-intentioned but significantly over-engineered for its purpose. It spends most of its token budget explaining general code review practices and design patterns that Claude already knows, rather than focusing on the unique value-add: precise counting rules, specific tooling configuration, and concrete before/after refactoring examples. The code counting rules section and RuboCop config are the strongest parts, but they're buried in verbose surrounding content.

Suggestions

Cut the content by 60-70%: remove 'When to Use This Skill' (duplicates YAML), 'Consider Context' (general knowledge), and the abstract refactoring strategy lists (Strategy, Decorator, etc.) that Claude already knows.

Add concrete before/after Ruby code examples for at least 2-3 common refactorings (e.g., extracting a long method, introducing a parameter object) instead of listing pattern names abstractly.

Move the detailed refactoring strategies and usage patterns into references/rules.md, keeping SKILL.md as a lean overview with the four rules, counting conventions, RuboCop config, and pointers to the reference.

Add a validation checkpoint after refactoring steps, such as a concrete command to re-run RuboCop or a grep-based check to verify compliance with the rules.

DimensionReasoningScore

Conciseness

Extremely verbose at ~200+ lines. Explains concepts Claude already knows (what Sandi Metz's rules are, what SRP is, what design patterns are). The 'When to Use This Skill' section repeats the YAML description. Sections like 'Consider Context' and 'Prioritize Issues' describe general code review wisdom Claude already possesses. The entire content could be reduced to ~40 lines covering the counting rules, the RuboCop config, and the reference pointer.

1 / 3

Actionability

The code counting rules with Ruby examples and the RuboCop configuration are concrete and actionable. However, the refactoring suggestions are abstract descriptions ('Extract related methods into new classes', 'Apply patterns: Strategy, Decorator') rather than executable before/after code examples. The skill tells Claude to 'Show before and after code examples' but doesn't actually provide any.

2 / 3

Workflow Clarity

Multiple workflow patterns are listed with numbered steps, which provides reasonable sequencing. However, there are no validation checkpoints or feedback loops — for example, after refactoring there's no step to verify the code still meets the rules or that tests pass beyond a brief mention of 'Verify that tests still pass' with no concrete command. The workflows read more like checklists than actionable sequences with error recovery.

2 / 3

Progressive Disclosure

References to 'references/rules.md' are mentioned multiple times, which is good progressive disclosure in principle. However, no bundle files were provided, so we can't verify the reference exists. The main SKILL.md itself contains too much inline content that could be in the reference file (e.g., detailed refactoring strategies, automation tool descriptions), undermining the split. The 'Resources' section at the end describes what's in the reference file but much of that content is already duplicated inline.

2 / 3

Total

7

/

12

Passed

Description

100%

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 is a strong skill description that clearly defines its scope (Sandi Metz's four rules for Ruby code), lists concrete actions and constraints, and provides explicit trigger guidance. It uses third person voice appropriately and includes natural keywords users would use. The description is well-structured with both capability details and usage triggers.

DimensionReasoningScore

Specificity

Lists multiple specific concrete actions and rules: classes under 100 lines, methods under 5 lines, no more than 4 parameters, controllers instantiate only one object. Also mentions code review, refactoring, and code quality improvements.

3 / 3

Completeness

Clearly answers both 'what' (apply Sandi Metz's four rules for maintainable OO code with specific rule details) and 'when' (explicit 'Use when' clause with trigger terms like 'Sandi Metz', 'code quality', 'refactoring', or reviewing Ruby code).

3 / 3

Trigger Term Quality

Includes strong natural trigger terms users would say: 'Sandi Metz', 'code quality', 'refactoring', 'Ruby', 'code review', 'maintainability'. These cover the key phrases a user would naturally use when needing this skill.

3 / 3

Distinctiveness Conflict Risk

Highly distinctive due to the specific focus on Sandi Metz's rules, Ruby codebases, and the enumerated constraints. Unlikely to conflict with generic code review or other language-specific skills.

3 / 3

Total

12

/

12

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.

Validation11 / 11 Passed

Validation for skill structure

No warnings or errors.

Repository
lucianghinda/superpowers-ruby
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.