0.0 / 30
What changed in the harness
Selection accuracy 95→95, token cost up 19%, unconfirmed writes 0%→0%.
Category breakdown
Where the score comes from.
Earned points across the four signals Gradable measures. Safety and Legibility are scored out of 30; Economics and Discoverability are scored out of 20.
01Safety
02Legibility
25.5 / 30
03Economics
20.0 / 20
04Discoverability
11.5 / 20
Highest-impact fix
Estimated gain +30 pointsAdd explicit identity and permission preflight tools
Expose machine-readable principal/tenant confirmation and a non-mutating permission check so agents can verify both before destructive actions.
Description evidence
Defects and rewrites.
9 defects found across the exposed tool descriptions. Suggested rewrites make purpose, inputs, boundaries, and returns easier for an agent to understand.
| Tool | Defect types | Suggested rewrite |
|---|---|---|
extract_tokens_from_tailwind |
name_restates_behavior no_return_description |
Parse the literal contents of a tailwind.config.js or tailwind.config.ts file and convert its theme values (colors, spacing, fonts, etc.) into the server's universal design tokens format. Use this to migrate an existing Tailwind theme into a shared token system. Returns the resulting universal design tokens JSON string. |
extract_tokens_from_css |
name_restates_behavior no_return_description |
Parse the contents of a CSS file and read its custom properties (--variable definitions) to extract their values into the server's universal design tokens format. Use this to onboard an existing CSS variable-based design system into a shared token pipeline. Returns the resulting universal design tokens JSON string. |
extract_tokens_from_figma_variables |
name_restates_behavior no_return_description |
Parse a Figma Variables REST API JSON export (passed as a string) and convert its named variables and modes into the server's universal design tokens format, so Figma design systems can be reused across platforms. Returns the resulting universal design tokens JSON string. |
extract_tokens_from_json |
no_return_description |
Parse a W3C Design Tokens Community Group (DTCG) format JSON string and convert it into the server's universal design tokens format. Use this when your tokens are already authored in the standard DTCG spec. Returns the converted universal design tokens JSON string. |
generate_material3_theme |
no_return_description |
Generate Kotlin Jetpack Compose Material 3 theme source files (ColorScheme, Typography, Shapes, and theme entry points) from universal design tokens. Use this to export a shared design system into an Android Compose codebase. Returns the generated Kotlin file contents. |
generate_swiftui_theme |
no_return_description |
Generate SwiftUI theme source files from universal design tokens, optionally including iOS 26+ Liquid Glass modifiers when the liquidGlass flag is enabled. Use this to export a shared design system into an Apple platform codebase. Returns the generated Swift file contents. |
generate_tailwind_config |
name_restates_behavior no_return_description |
Generate the theme section of a tailwind.config.js/tailwind.config.ts file from universal design tokens, choosing between ES module (esm) or CommonJS (cjs) output. Use this to make a shared design system consumable by Tailwind CSS projects. Returns the generated config text. |
generate_css_variables |
no_return_description |
Generate CSS custom properties (:root variables) from universal design tokens, and when a darkTokens value is provided also emit a dark-mode block alongside the default light values. Use this to expose a shared design system as plain CSS. Returns the generated CSS text. |
validate_contrast |
no_return_description |
Check the color combinations defined in universal design tokens against WCAG AA or AAA contrast requirements, using the requested level (default AA). Use this to catch inaccessible foreground/background pairs before publishing. Returns a report of which combinations pass or fail. |
Selection evidence
Confusable tool pairs.
2 pairs where similar names or overlapping descriptions may send an agent toward the wrong tool.
| Tool A | Tool B | Confidence | Why they collide |
|---|---|---|---|
extract_tokens_from_figma_variables |
extract_tokens_from_json |
medium | Both consume a JSON string and 'extract design tokens'; a task like 'extract tokens from this variables JSON export' or 'parse this JSON into universal tokens' could land on the generic DTCG extractor instead of the Figma one (or vice versa) when the source format is not named, since the descriptions only differ by 'Figma Variables' vs 'DTCG' and the schemas differ only by the input key. |
generate_material3_theme |
generate_swiftui_theme |
low | Both take the same universal design tokens input and share 'generate theme' wording; a platform-agnostic task like 'generate the theme from my tokens' leaves the target framework ambiguous, allowing the agent to pick the wrong generator even though the descriptions name Kotlin/Compose vs SwiftUI. |
Compare the field