Skip to content

ui(skill): consistent result rendering across add/remove/update #239

Description

@codeaholicguy

Current output

skill add (from renderSkillInstallResult):

  -> ~/.claude/skills/frontend-design/SKILL.md (already exists, skipped)
Successfully installed: frontend-design
ℹ  Source: anthropics/skills
ℹ  Installed to (global): claude, codex

skill remove:

  -> Removed from /path/claude/skills/foo
✔ Successfully removed from 3 location(s).

Problems

  1. -> result lines are unstyled and inconsistent: install uses -> target (action) with a parenthetical that sometimes contains a sentence (already exists, skipped), remove uses -> Removed from target — plain text, no color, no glyph, different phrasing for the same "per-location result" concept.
  2. Successfully installed: line is plain ui.text while remove uses ui.success (✔) — the most important line of the output has no success styling in add.
  3. Naive pluralization: 3 location(s), feature doc(s) (docs command).
  4. Metadata lines switch to info styling (Source:, Installed to) while the equivalent lines in remove are also ui.info but labeled Note: — the key (Source/Installed to/Note) and styling conventions don't line up between the two flows.
  5. ui.summary in skill update (updated/skipped/failed with error details) is the best output in the skill family — but add/remove don't follow its pattern; three render styles for three subcommands.

Expectation

  • One per-item line convention across add/remove/update: ✔/⚠/✖ <target> — <action or reason> with color by outcome (installed green, skipped dim/yellow, failed red).
  • Headline result through ui.success/ui.warning consistently (✔ Installed frontend-design from anthropics/skills).
  • Metadata (Installed to, Source, Note: cached copy preserved) as dim lines under the headline, same order in every flow.
  • Pluralization via the shared helper (3 locations).
  • Long term: converge on the ui.summary shape used by skill update so all mutating skill subcommands render alike.

Files: packages/cli/src/commands/skill/skill.render.ts (renderSkillInstallResult, renderSkillRemoveResult, renderUpdateSummary)

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions