Skip to content

app: grouped skills view with review-pipeline toggle - #26

Closed
alejandro-nexcade wants to merge 2 commits into
alejandro/skills-discovery-corefrom
alejandro/skills-view
Closed

app: grouped skills view with review-pipeline toggle#26
alejandro-nexcade wants to merge 2 commits into
alejandro/skills-discovery-corefrom
alejandro/skills-view

Conversation

@alejandro-nexcade

Copy link
Copy Markdown
Collaborator

What

PR 2/7 of the overnight UX program (Track B frontend — cockpit-docs/OVERNIGHT_UX_PLAN.md). Stacked on #25.

  • SkillsView rebuilt as grouped master/detail: pinned ✦ REVIEW PIPELINE group, then Personal / per-marketplace Plugins / Project / Cockpit store (store keeps Install/sync/New affordances on its header).
  • Search across all groups; detail pane renders the skill body through the shared safe <Markdown> component with source chip + path.
  • "Use in review" toggle → set_skill_review_pipeline, optimistic flip reconciled with the returned list; per-skill in-flight guard so a rapid double-toggle can't race; failure rolls back via re-read and still surfaces the error.
  • External sources are strictly read-only: editing is gated on CockpitStore at the button, in handleSave, and by the backend write path.
  • Reviewer pass applied: selection uses border-primary (brand stays reserved for pipeline/agent identity), toggle race guard, save gate.

Verified

tsc clean · vitest 290 (16 new: 13 grouping/search helpers + 3 store toggle behaviors) · vite build ok. Frontend-only diff; no Rust touched.

🤖 Generated with Claude Code

LifeLex and others added 2 commits July 3, 2026 02:11
Rebuild the Skills view (PR 2 of the overnight UX program) as a
source-grouped master/detail. The left list groups skills by install
source with mono uppercase headers and counts: a pinned REVIEW PIPELINE
group, PERSONAL, one PLUGINS group per marketplace, PROJECT, and a
COCKPIT STORE group that always shows (it carries the Install/sync
affordances). A substring search filters across all groups.

The detail pane shows the selected skill's name, path, source chip,
description, and body via the shared <Markdown> renderer, plus a
"Use in review" card wired to set_skill_review_pipeline. The SKILL.md
editor is gated strictly on source.kind === "CockpitStore"; external
sources (personal/plugin/project) are read-only with a managed note, so
an external skill can never be copied into the store via save_skill.

Grouping and search are pure helpers in lib/skill-groups.ts with unit
tests covering group order, marketplace splitting, pipeline pinning,
cross-group search, and empty-source handling. Store gains a
setSkillReviewPipeline action (optimistic flip, reconciled with the
refreshed list).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Selection uses border-primary (brand stays reserved for pipeline
identity); review-pipeline toggles are disabled per-skill while a
command is in flight so a stale response can't clobber the final
click; handleSave re-asserts editability locally; failure rollback
re-reads before surfacing the error so the message survives. Store
tests pin all three behaviors.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants