CtrlK
BlogDocsLog inGet started
Tessl Logo

bem-structure

Expert guidance for writing, refactoring, and structuring CSS using BEM (Block Element Modifier) methodology. Provides proper CSS class naming conventions, component structure, and Optics design system integration for maintainable, scalable stylesheets.

52

Quality

65%

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/bem-structure/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

50%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 project-specific content (explicit & usage rules, flat-selector requirement, Optics-first policy, deviation documentation) is valuable and well-illustrated with GOOD/BAD pairs. However, it is buried in a verbose re-teaching of standard BEM methodology with duplicated rule statements, and the multi-step tasks it advertises (refactoring, Optics evaluation) have no workflow or validation guidance.

Suggestions

Cut the canonical BEM tutorial content (Block/Element/Modifier definitions, standard naming rules, generic naming-charset examples) — Claude already knows BEM — and keep only the project-specific deviations: the explicit-& rule, the ban on &__/&-- construction, flat selectors, kebab-case, and the Optics-first policy.

Add a short numbered workflow for the refactor/review use cases (e.g., 1. Identify blocks/elements in existing CSS, 2. Check Optics for an existing component before creating a block, 3. Apply naming rules, 4. Verify no tag/ID selectors remain), including how to locate and evaluate Optics components.

Fix the code defects and deduplicate: remove the stray '}' in the BAD block CSS example (line 168), fix the HTML comment misplaced inside an attribute (lines 380-384), and consolidate the rules repeated across 'Naming Convention', 'Rule Summary', and 'Miscellaneous Rules' into a single rules section; consider moving the full GOOD/BAD example catalog into a references/ file.

DimensionReasoningScore

Conciseness

The body re-explains standard BEM concepts Claude already knows ('BEM stands for Block Element Modifier', canonical bem.info naming rules for Block/Element/Modifier), restates the same rules in at least three places (Naming Convention bullets, Rule Summary, Miscellaneous Rules), and repeats near-identical example sets (.card/.menu/.search-form appear in multiple sections). This matches the 2 anchor (noticeably verbose, several padded sections) rather than 3, because the padding is pervasive rather than isolated; it is not 1 because the project-specific rules (& usage, flat selectors) are genuinely non-obvious.

2 / 5

Actionability

Abundant concrete, copy-pasteable GOOD/BAD CSS and HTML example pairs cover blocks, elements, modifiers, kebab-case, and & usage, satisfying the 4 anchor (mostly executable guidance with minor gaps). It misses 5 because of real defects: a stray '}' breaking the CSS example around lines 162-168, malformed HTML in the BAD example (a comment placed inside an attribute around lines 380-384), and no example of the Optics integration rule despite it being a headline instruction.

4 / 5

Workflow Clarity

The skill claims to guide 'writing, refactoring, and structuring' CSS plus checking Optics before creating new blocks, but provides no sequenced process for any of these — there is no 'review existing CSS → map blocks/elements → apply modifiers → verify' flow and no guidance on how to find or evaluate an Optics component. This lands at the 3 anchor (some guidance present, but the multi-step tasks lack sequence and checkpoints); it is not 2 because the rules themselves are coherent and unambiguous, and not 4 because the Optics-first decision point has no follow-through steps.

3 / 5

Progressive Disclosure

The ~390-line body has clear section headers but is fully monolithic with no bundle files — all of the canonical BEM reference material (which Claude largely knows) sits inline and could live in a reference file, keeping only the project-specific rules and a quick example set in SKILL.md. This matches the 3 anchor (some structure, content that should be separate is inline); it is not 2 because headers do make it navigable, and not 4 because nothing is split out despite the size.

3 / 5

Total

12

/

20

Passed

Description

66%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 solid, specific description with concrete named capabilities and a distinct BEM niche. Its main deficiency is the missing 'Use when...' trigger clause, which both caps completeness and leaves natural trigger phrases out of the description text itself.

Suggestions

Append an explicit trigger clause, e.g. 'Use when writing or refactoring CSS/SCSS, reviewing stylesheets for BEM compliance, or when the user mentions BEM, class naming conventions, or BEM-ifying their CSS.'

Move the natural trigger phrases currently buried in metadata.triggers ('bem-ify', 'fix my BEM', 'css review') into the description so they contribute to trigger matching and completeness.

DimensionReasoningScore

Specificity

The description lists several concrete capabilities — 'writing, refactoring, and structuring CSS', 'CSS class naming conventions, component structure, and Optics design system integration' — with only minor gaps (e.g., what 'integration' concretely means). It is not a fully comprehensive 5 since 'Expert guidance' and 'proper' add mild fluff without new information, but it clearly exceeds the 3 anchor (only 1-2 concrete actions).

4 / 5

Completeness

The 'what' is clear and multi-part (BEM guidance, naming conventions, component structure, Optics integration), but there is no 'Use when...' clause or equivalent explicit trigger guidance in the description itself, which caps completeness at 3 per the judging guidelines. It is not a 2 because the 'what' is concrete rather than vague, and not a 4 because the 'when' is entirely absent rather than just weakly implied.

3 / 5

Trigger Term Quality

Natural user phrases like 'refactoring CSS', 'BEM', 'CSS class naming', and 'stylesheets' are present and would naturally be said when this skill is needed. It falls short of 5 because common variations users actually say ('fix my CSS', 'BEM-ify', 'CSS review') are absent from the description (they only exist in metadata.triggers), and it slightly exceeds 3 because coverage goes beyond one or two generic keywords.

4 / 5

Distinctiveness Conflict Risk

'BEM (Block Element Modifier) methodology' carves out a clear niche with distinct triggers, so it is well above the 3 anchor (somewhat specific, real overlap risk). It stops short of 5 because the Optics design-system integration mention creates minor overlap risk with a hypothetical Optics/design-system skill, and 'CSS' generally could compete with a generic CSS-styling skill.

4 / 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

metadata_version

'metadata.version' is missing

Warning

Total

15

/

16

Passed

Repository
RoleModel/rolemodel-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.