CtrlK
BlogDocsLog inGet started
Tessl Logo

element-hiding

Use when reviewing a website for layout and functionality issues caused by adblocker filter rules targeting common ad-related class names and IDs.

56

Quality

63%

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/element-hiding/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

53%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.

A compact, well-sectioned overview for a simple skill, with a clearly signaled single reference file. Weaknesses are duplicated content between Quick Reference and Check/Fix (and with rule.md), an underspecified verification method for identifying hidden elements, and no post-fix re-test checkpoint.

Suggestions

Specify how to detect hidden elements: e.g., open uBlock Origin's logger ('More' → 'Filter list' hits) or run the EasyList selectors ($$('##.ad, ##.banner, ...')) in the browser devtools console, rather than just 'test the page with uBlock Origin enabled'.

Add a post-fix validation step: re-test with uBlock Origin enabled and grep the codebase (CSS/JS selectors, tests) for the old class/ID before considering the rename complete.

De-duplicate: keep one blocked-pattern list (the fuller one in references/rule.md or a short one in Check), and drop the repeated rename advice from Quick Reference.

DimensionReasoningScore

Conciseness

The body is short but noticeably redundant: the blocked-name list appears twice ('Common blocked names: .ad, .ads, .advertisement, .banner...' in Quick Reference and again '.ad, .ads, .advertisement, .banner, .sponsor, #ad, #banner...' in Check), and the rename advice is repeated in Quick Reference ('Rename affected elements using semantic, content-specific class names') and Fix. The opening paragraph also duplicates rule.md's 'Why It Matters' verbatim. This fits anchor 3 (mostly efficient but could be tightened) rather than 4, where duplication would be only a minor trim.

3 / 5

Actionability

There is concrete material — a specific pattern list ('.ad, .ads, .advertisement, .banner, .sponsor, #ad, #banner, .cookie-notice, .consent') and copy-ready replacement names ('.privacy-controls or .cookie-preferences instead of .cookie-banner or .gdpr-notice') — but the core Check action is underspecified: 'Test the page with uBlock Origin enabled in a browser to identify elements that are hidden' gives no method for detecting hidden elements (devtools inspection, uBlock's logger, a selector audit) and no before/after code example lives in SKILL.md. This is anchor 3 (some concrete guidance but incomplete, missing key details) rather than 4, where the gaps would be minor.

3 / 5

Workflow Clarity

The Check → Fix → Explain sequence is present and readable, but validation is only implicit: 'Test your site with uBlock Origin enabled' appears once up front, with no checkpoint to re-test after renaming or verify the rename didn't break existing CSS/JS selectors. This matches anchor 3 (sequence present but checkpoints missing or implicit) rather than 4, which requires most checkpoints present. The skill is non-destructive, so no lower cap applies.

3 / 5

Progressive Disclosure

The body is a compact overview with a clearly signaled, one-level-deep, verified reference: 'For full implementation details, code examples, and framework-specific guidance, see references/rule.md' (the file exists, 158 lines). This fits anchor 4 (good structure, references mostly clear, minor gaps) rather than 5 because content duplicated between SKILL.md and rule.md — the identical opening paragraph and the pattern lists — sits inline where the overview could simply point to the reference.

4 / 5

Total

13

/

20

Passed

Description

73%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 well-scoped, third-person description with an explicit 'Use when...' trigger and a clearly distinct niche. Its main weakness is that it describes only the reviewing trigger context without stating the skill's concrete actions, and it misses common trigger synonyms (uBlock, EasyList, 'ad blocker', hidden elements).

Suggestions

State the skill's concrete actions alongside the trigger, e.g., 'Identifies elements hidden by adblocker filter rules (EasyList/uBlock) and suggests semantic renames — e.g., .cookie-banner → .privacy-controls. Use when reviewing a website for layout or functionality issues caused by adblockers.'

Add common trigger synonyms users actually say: 'ad blocker', 'uBlock Origin', 'EasyList', 'elements hidden/missing'.

DimensionReasoningScore

Specificity

The description names the domain precisely ('layout and functionality issues caused by adblocker filter rules targeting common ad-related class names and IDs') but lists only a single action verb ('reviewing'). It matches anchor 3 (domain plus 1-2 concrete actions, not comprehensive) — not 4 because it never states what the skill does about found issues (e.g., identify, rename, fix), and not 2 because the domain is far more specific than 'Processes PDF files'.

3 / 5

Completeness

It has an explicit, specific 'when' clause ('Use when reviewing a website for layout and functionality issues caused by adblocker filter rules...') and the 'what' is derivable from that same clause (reviewing for adblocker-caused hiding of class names/IDs). It fits anchor 4 (both present, one could be more explicit) rather than 5 because the 'what' is merged into the 'when' clause — there is no standalone statement of the skill's concrete actions — and rather than 3 because the 'when' is explicit, not merely implied.

4 / 5

Trigger Term Quality

Natural terms a user would say are present: 'reviewing a website', 'layout and functionality issues', 'adblocker', 'filter rules', 'class names and IDs'. This is good coverage of the niche's phrase space (anchor 4), falling short of anchor 5 because common synonyms and tool names are missing — no 'ad blocker' (spaced variant), 'uBlock', 'EasyList', 'hidden elements', or 'cookie banner not showing'.

4 / 5

Distinctiveness Conflict Risk

'Adblocker filter rules targeting common ad-related class names and IDs' carves out a clear niche with distinct triggers (adblockers, filter rules, class names/IDs) that virtually no other skill would claim. This matches anchor 5 — clear niche, distinct triggers, minimal conflict risk; not 4 because there is no meaningful overlap with a neighboring skill's territory.

5 / 5

Total

16

/

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
thedaviddias/Front-End-Checklist
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.