CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

charmed-bubbles

Use the Bubbles v2 component library (charm.land/bubbles/v2, charmbracelet bubbles) inside a Bubble Tea v2 TUI: list, table, viewport, textinput, textarea, spinner, progress bar, filepicker, tree, paginator, timer, stopwatch, help, and key bindings. Use when adding a ready made widget or TUI component (text input, spinners, scrolling view, file picker) to a terminal app, wiring its focus, size, styles, and messages, or migrating v1 bubbles code. Not for the program loop itself (charmed-bubbletea), raw styling (charmed-lipgloss), or whole forms (charmed-huh).

80

Quality

100%

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

SKILL.md
Quality
Evals
Security

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.

A dense, well-structured skill: the shared v2 contract is taught once through a complete program, component specifics are delegated one level deep to purpose-labeled reference files, and the workflow ends in an explicit build-run-fix loop backed by a high-value mistakes section. Nothing is padded and every stated fact is version-specific rather than generally known.

DimensionReasoningScore

Conciseness

Every section carries library-specific, non-obvious facts ("Two do not: `table.DefaultStyles()` and `filepicker.DefaultStyles()` take no argument", "Key maps are functions now"), and nothing explains what Claude already knows. Time-sensitive version details (v2.2.1 pin, the v2.2-only `tree` package) are confined to the migration and 'Older versions' sections rather than scattered, so no trimming target remains.

5 / 5

Actionability

The spinner program is a complete, copy-paste-ready Go program covering the common case (one bubble wired through Init/Update/View), followed by concrete verification commands (`go vet ./...`, `go build ./...`). The trimmed key/help fragment is explicitly justified by the stated convention ("Go blocks headed `// examples/...` are trimmed from complete programs") with links to the complete sources.

5 / 5

Workflow Clarity

The 6-step workflow ends with an explicit validation checkpoint 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 migration path repeats the same validate-and-fix loop ("run `go vet ./...` and `go build ./...` and fix what remains").

5 / 5

Progressive Disclosure

The Components table maps every component group to a real reference file (all 8 files under references/ verified to exist) with a 'Read it for' purpose column, and each reference links back to the main skill — exactly one level deep with clear navigation. The body keeps only the shared contract, one full example, and the index inline, pushing component detail to the references.

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 answers both what and when with concrete trigger phrases and synonym coverage, including the package identifiers a user would paste. It also negatively scopes the three neighboring skills, making wrong-skill triggering unlikely. Voice is imperative/third person, so no penalty applies.

DimensionReasoningScore

Specificity

It enumerates the concrete capabilities ("list, table, viewport, textinput, textarea, spinner, progress bar, filepicker, tree, paginator, timer, stopwatch, help, and key bindings") and concrete actions ("wiring its focus, size, styles, and messages, or migrating v1 bubbles code"). Coverage is comprehensive — no shipped component is omitted — which matches the anchor-5 example rather than the 'minor gaps' anchor 4.

5 / 5

Completeness

Both halves are explicit: the 'what' ("Use the Bubbles v2 component library ... inside a Bubble Tea v2 TUI") and the 'when' ("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"). The 'when' clause is specific and trigger-phrase-rich, matching the anchor-5 example exactly.

5 / 5

Trigger Term Quality

Natural user phrasings are covered with synonyms ("text input, spinners, scrolling view, file picker", "terminal app", "widget") and, in place of file extensions, the package identifiers users paste ("charm.land/bubbles/v2, charmbracelet bubbles"). No common natural term for a real component is missing, so it sits at the comprehensive anchor 5 rather than anchor 4's 'a few natural terms missing'.

5 / 5

Distinctiveness Conflict Risk

It claims a clear niche (Bubbles v2 widgets inside Bubble Tea) and explicitly fences off the three adjacent skills: "Not for the program loop itself (charmed-bubbletea), raw styling (charmed-lipgloss), or whole forms (charmed-huh)." Conflict risk with sibling TUI skills is minimal, matching anchor 5.

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.

Repository

tpscloud/charmedimsure

Path

skills/charmed-bubbles/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.