Claude.ai Slash Command Skills Picker Parity

Detailed state graph, frame timing, DOM/CSS, animation, and API boundary report for the RocketMinds Claude org slash-command skills picker.

Capture: 2026-07-04 18:03:44Z / 22:03:44 Asia-Tbilisi. Viewport: 1091 x 818 CSS px. Issues: #708, #710.

Conclusion: Claude loads org/plugin skill catalogs on page bootstrap, then slash typing, filtering, keyboard movement, escape, and chip insertion are local composer behavior. Filtering, no-match, recovery, Escape suppression, and chip deletion did not call a skill-search API.

Open the full markdown report

Frame Evidence

Slash open frame contact sheet
Slash open: text appears before menu; menu first mounts before final placement.
Biz filter frame contact sheet
/biz filtering: local remount/reposition, no search API call.
Keyboard navigation frame contact sheet
Keyboard navigation keeps focus in composer and moves visual row highlight.
Escape close frame contact sheet
Escape removes the menu immediately and leaves /biz text.
Skill selection frame contact sheet
Selection replaces typed slash query with a non-editable skill chip.

Edge Case Timelines

Follow-up per-character captures cover bad queries, deleting back into valid matches, middle-token edits, Escape suppression, and chip deletion.

Type from slash to no-match contact sheet
Typing to no-match: menu disappears when candidate count reaches zero; fuzzy matching can briefly reappear for /bizzz-n.
Recover from no-match contact sheet
Backspacing from a bad query reopens the menu when the same active slash token has candidates again.
Middle delete and recover contact sheet
Middle-token delete closes the menu; typing the deleted character back in the middle stayed closed in this capture.
Escape suppression contact sheet
Escape deliberately dismisses the current slash token. Further edits to that token stayed closed; a fresh slash reopened.
Chip select and delete contact sheet
Selection inserts a chip and increments local usage. Backspace deletes the chip but does not roll usage back.

Edge Findings

AreaObserved Claude behaviorTegy parity target
No-matchNo empty dropdown. Menu is absent when candidate count is zero.Close the menu for zero candidates; do not show a no-results row unless product intentionally diverges.
RecoverySuffix backspacing from a bad query back into matching text reopens the menu.Keep an active suggestion session during normal suffix edits and reopen when candidates return.
Middle editDeleting inside /biz to /bz closed the menu; reinserting i in the middle stayed closed.Track active suggestion-session lifecycle, not only text prefix scanning.
EscapeEscape closes immediately, leaves text, and suppresses further edits to the same token.Add an escaped-token state that only resets on token clear/new slash trigger.
StorageTyping/deleting/Escape do not mutate slash storage. Selection increments LSS-slash-command-skill-usage; chip deletion does not undo it.Persist recency only on command selection.
Animation36 visible menu samples all had transitionDuration: 0s, animationName: none, and opacity: 1.Use instant mount/unmount and discrete height/reposition changes, not fades/slides.
APIAfter baseline bootstrap, per-character slash interactions made zero skill/plugin/search/conversation/completion calls.Filter locally from the loaded catalog.

State Graph

Idle
  -type '/'-> Slash token pending
  -menu mounts-> Menu open with all commands
  -type query-> Local filtering / remount / reposition
  -stable query-> Filtered menu open
  -Arrow keys-> Visual activeIndex changes, composer keeps focus
  -Escape-> Menu removed, text preserved
  -Select candidate-> Skill chip inserted, menu removed
  -Clear-> Idle

Critical UI Facts

AreaClaude behaviorTegy parity target
Menu mountAppears after slash text is already in ProseMirror. First placement can be 0,0 before Popper settles.Local suggestion plugin; tolerate one placement pass but avoid visible jank where possible.
AnimationComputed transitionDuration 0s, animationName none. Instant mount/unmount.No decorative fade/slide. Match instant menu with stable shadow.
GeometryMenu 267px wide, max-height 303px, about 9.5px above composer, 12px radius.Use compact popover above composer, width 240-268px, max-height about 303px.
Rowsdiv role=menuitem, height about 32px, 8px radius, highlighted by bg class not aria-selected.Keep focus in composer; track activeIndex and apply visual highlight.
SelectionInserts TipTap non-editable node node-skillChip plus trailing space.Use structured chip node; serialize explicitly at submit time.

Network Boundary

MomentNetwork observedMeaning
Page load/plugins/list-plugins?enabled_only=true, /skills/list-skills, bootstrap, MCP bootstrap.Catalog is server-bound at page/bootstrap time.
Type /Analytics/RUM only.Menu opens locally.
Type bizNo skill/plugin/search API request.Filtering is local.
Arrow/EscapeNo relevant API request.Pure local state transitions.
Select skillOne beacon-like POST https://a-api.anthropic.com/v1/b; localStorage usage key updated.Selection is local and tracked for recency; no chat submission occurs.

Evidence Files

All JSON evidence is redacted for UUIDs, plugin IDs, marketplace IDs, and emails. Screenshots are cropped around the composer/dropdown.