CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

devtools-setting-migration

Workflow for splitting an existing SettingRegistration into a SettingDescriptor (placed in the lowest layer where used: core/, models/, or ui/settings/) and SettingUIDescriptor (registered in a higher-level -meta.ts file, outside of core/ and models/).

Quality

73%

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 ./.agents/skills/devtools-setting-migration/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

63%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 body delivers highly actionable, domain-specific guidance with concrete code, exact paths, and real verification commands organized into a clear six-step workflow. Its weaknesses are redundancy — rules restated and code duplicated between the workflow steps and the Concrete Examples — and lack of any bundle-file structure for the API reference and extended examples.

Suggestions

Deduplicate the code examples: the SettingDescriptor definition from Step 2 and the registration from Step 3 reappear nearly verbatim in Example 1; keep one canonical version and show the examples as diffs from it.

Move the Interface Reference Summary (and optionally the full worked examples) into a references/ file and link to it from SKILL.md to cut body tokens.

Add error-recovery guidance to Step 6, e.g. what to check when autoninja or ./dt lint fails (BUILD.gn sources entries, devtools_grd_files.gni references).

DimensionReasoningScore

Conciseness

Mostly efficient domain-specific content with no filler, but rules are restated multiple times ('NEVER place descriptors in panels/' appears in Key Principles, Step 1, and Example 2) and the Step 2/Step 3 code blocks reappear nearly verbatim in Example 1, so it could be tightened.

3 / 5

Actionability

Provides copy-paste-ready TypeScript, exact file paths, BUILD.gn instructions, and real commands (autoninja -C out/Default, ./dt lint) covering core, panel, and conditional-setting cases; minor gaps include elided 'options: [...]' arrays and example blocks referencing UIStrings/i18nLazyString without full import context.

4 / 5

Workflow Clarity

Six clearly sequenced steps with an explicit create-vs-update decision strategy and a verification step (GN build, dt lint, unit tests); however, there is no error-recovery guidance for when verification fails, so checkpoints fall just short of the top anchor.

4 / 5

Progressive Disclosure

Sections are well-organized with clear headers, but everything is inline in a single ~290-line file: the Interface Reference Summary (an API reference) and the full worked examples are content that clearly belongs in separate reference files, and the only external pointer is to another skill (devtools-imports) rather than bundle files.

3 / 5

Total

14

/

20

Passed

Description

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

The description is precise and highly domain-specific, clearly stating what the workflow does and where each artifact goes, with minimal conflict risk. Its main weaknesses are the complete absence of 'Use when...' trigger guidance and a few missing natural trigger terms such as 'migration' or 'moduleSetting'.

Suggestions

Add an explicit trigger clause, e.g. 'Use when migrating a legacy SettingRegistration, removing registerSettingExtension calls from core/ or models/ -meta.ts files, or replacing moduleSetting(name) with resolve(descriptor)'.

Include the natural phrases users would actually say when needing this skill ('settings migration', 'setting registration', 'moduleSetting') to broaden trigger coverage.

DimensionReasoningScore

Specificity

Quotes: 'splitting an existing SettingRegistration into a SettingDescriptor... and SettingUIDescriptor (registered in a higher-level -meta.ts file)' — names multiple concrete actions with explicit placement rules, but omits parts of the workflow such as replacing moduleSetting with resolve and BUILD.gn updates, leaving minor coverage gaps.

4 / 5

Completeness

The 'what' is explicit and precise, but there is no 'Use when...' clause or equivalent trigger guidance, which per the judging guidelines caps completeness at 3.

3 / 5

Trigger Term Quality

Includes the natural terms a DevTools developer would say ('SettingRegistration', 'SettingDescriptor', 'SettingUIDescriptor', '-meta.ts', 'core/', 'ui/settings/'), but misses common variations such as 'settings migration', 'moduleSetting', or 'registerSettingExtension'.

4 / 5

Distinctiveness Conflict Risk

A hyper-niche DevTools setting-refactoring workflow with distinct artifact names (SettingDescriptor, SettingUIDescriptor, -meta.ts); minimal overlap or conflict risk with other skills.

5 / 5

Total

16

/

20

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.

Validation — 16 / 16 Passed

Validation for skill structure

No warnings or errors.

Repository

ChromeDevTools/devtools-frontend

Path

.agents/skills/devtools-setting-migration/SKILL.md

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.