CtrlK
BlogDocsLog inGet started
Tessl Logo

tpscloud/charmedimsure

Source-verified skills for the Charm terminal stack: Bubble Tea v2, Bubbles v2, Lip Gloss v2, Huh v2, Log v2, Glamour v2, plus the gum and vhs CLIs.

100

1.02x
Quality

100%

Does it follow best practices?

Impact

100%

1.02x

Average score across 9 eval scenarios

SecuritybySnyk

Passed

No findings from the security scan

Overview
Quality
Evals
Security
Files

Quality

Content

100%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 dense, library-specific v2 knowledge with zero tutorial filler: a complete runnable anchor program, exact API rules of thumb that flag exceptions, a symptom-keyed troubleshooting section, and clean one-level-deep disclosure into eight real reference files. Validation and feedback loops are present in both the main workflow and the migration path.

DimensionReasoningScore

Conciseness

Every paragraph carries v2-specific, non-general knowledge Claude would not already know: "Update returns the bubble's own concrete type (no type assertion needed)", "Most style constructors take an isDark bool ... Two do not: table.DefaultStyles() and filepicker.DefaultStyles()", "Key maps are functions now: textinput.DefaultKeyMap()". There is no generic Go or TUI tutorial padding, and the version-sensitive details (v2.2.1, the v2.2 tree addition) are confined to the intro pin and the dedicated "Older versions" section, matching the lean 'every token earns its place' anchor.

5 / 5

Actionability

The skill opens with a complete, runnable program (imports, model, Init/Update/View, main with error handling) that is copy-paste ready, and the rules of thumb give exact API names ("SetWidth, SetHeight, SetSize, Width(), Height()", "key.Matches(msg, binding)"). The only fragmentary block ("var keys = keyMap{...") is explicitly justified and linked: "Go blocks headed // examples/... are trimmed from complete programs", so it does not fall to the 'minor gaps' anchor.

5 / 5

Workflow Clarity

The six-step Workflow ends with an explicit validation and feedback loop: "Run go vet ./... and go build ./..., then run the program in a terminal. If a bubble is frozen, empty, or ignores keys, check Mistakes that cost time, fix, and rerun". The Mistakes section is a symptom-keyed error-recovery checklist ("the spinner freezes, the progress bar never animates"), and migration repeats the build-then-fix loop, matching the anchor for clear sequence with explicit validation and error-recovery feedback.

5 / 5

Progressive Disclosure

The body is a genuine overview (contract, one complete program, rules of thumb, migration summary, mistakes) with per-component detail split into all eight references files, each verified to exist and each one level deep. Navigation is well signaled via the Components index table with a "Read it for" purpose column plus dedicated pointers like "Read references/migration.md for the full search and replace table", matching the clear-overview anchor.

5 / 5

Total

20

/

20

Passed

Description

100%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 a model example: it names the exact library and versioned import paths, enumerates every component, gives an explicit 'Use when' clause with natural trigger phrases and v1 migration as a trigger, and closes with explicit exclusions of the three neighboring skills. Both what and when are answered concretely with no padding.

DimensionReasoningScore

Specificity

The description enumerates the full component surface concretely ("list, table, viewport, textinput, textarea, spinner, progress bar, filepicker, tree, paginator, timer, stopwatch, help, and key bindings") plus concrete wiring actions ("wiring its focus, size, styles, and messages, or migrating v1 bubbles code"). Coverage is comprehensive for the library with no identifiable gaps, matching the anchor for multiple specific concrete actions rather than the 'minor gaps' level below.

5 / 5

Completeness

What is explicit ("Use the Bubbles v2 component library ... inside a Bubble Tea v2 TUI" with every component named) and when is explicit with concrete triggers ("Use when adding a ready made widget or TUI component ... to a terminal app, wiring its focus, size, styles, and messages, or migrating v1 bubbles code"). This clearly matches the anchor that answers both what AND when with concrete trigger phrases, not the weaker 'when could be more explicit' level.

5 / 5

Trigger Term Quality

Natural user phrasings appear with synonyms and both import-path generations: "text input, spinners, scrolling view, file picker", "widget or TUI component", "terminal app", "charm.land/bubbles/v2, charmbracelet bubbles", "migrating v1 bubbles code". Terms a user would naturally say when needing this skill (spinner, list, table, progress bar, file picker, scrolling view, bubble tea) are all present, satisfying the comprehensive-synonyms anchor rather than 'a few natural terms missing'.

5 / 5

Distinctiveness Conflict Risk

The niche is precise (Bubbles v2 widgets inside Bubble Tea) and it actively disambiguates the three adjacent skills by name: "Not for the program loop itself (charmed-bubbletea), raw styling (charmed-lipgloss), or whole forms (charmed-huh)". Explicit exclusion of sibling skills gives minimal conflict risk, clearly above the 'minor overlap risk with closely related skills' anchor.

5 / 5

Total

20

/

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.

Reviewed

Table of Contents