Drive interactive terminal programs (TUIs, REPLs, pagers, a debugger, another CLI's chat UI) that the Bash tool cannot script directly, by running them inside tmux and scripting them with send-keys / capture-pane. Use whenever a task needs you to launch, type into, read the live screen of, or tear down an interactive terminal program - e2e-testing a TUI, stepping a debugger, or answering a prompt a plain command would block on. Not for subagents you spawned with the Agent tool (use ReadSubagentScreen / SendSubagentInput for those).
Build interactive terminal forms and prompts with huh v2 (charm.land/huh/v2): Form/Group/Field composition, Select/MultiSelect/Input/Confirm/Text/FilePicker, embedding forms inside a Bubble Tea v2 model, standalone Run() prompts, theming, and filtering. Use when adding or reviewing any interactive form, picker, wizard, confirm, or approval prompt with this stack. v2's Theme became an interface and forms complete via internal command messages, so lead with the contract and the v1->v2 table - never write from v1 memory.
Build, consume, debug, or reason about Agent2Agent (A2A) protocol agents - Agent Cards and discovery, the Task lifecycle, Messages/Parts/Artifacts, the three transport bindings (JSON-RPC 2.0, gRPC, HTTP+JSON), request/response vs streaming (SSE) vs push notifications, security schemes, webhook security, and A2A error codes. Use whenever the work touches A2A: writing or reviewing an agent server or client, designing an agent card, delegating tasks between agents, wiring the CLI's A2A tools, or answering "how does A2A do X". The source of truth is the schema in inference-gateway/schemas - reference it, never hand-copy it, and always pin the spec version you target (v0.3.0 vs v1.0 differ in breaking ways).
Build and review Go CLI apps with Cobra and Viper (both used heavily here) - command-first architecture, RunE error handling, PersistentPreRunE setup, flag design, typed-struct config, the flag/env/file/default precedence hierarchy, and in-memory command tests. Use when adding commands or flags, wiring Viper config or env binding, or reviewing any cmd/ code. Distilled from spf13/go-skills (by Cobra's and Viper's author) and adapted to this repo's config layering.
Use the Bubbles v2 component library for Bubble Tea v2 (charm.land/bubbles/v2): viewport, textinput/textarea, spinner, progress, list, table, key, help. Use when adding or reviewing prebuilt TUI components - scrollable viewports, text inputs, spinners, progress bars, key bindings and help - with this stack. Each component is a sub-model you embed and delegate to; v2 constructors and key handling differ from v1, so lead with the contract and the v1->v2 table.
Build and review Bubble Tea v2 terminal UIs in Go (charm.land/bubbletea/v2) - The Elm Architecture: a tea.Model with Init/Update/View plus tea.Cmd/tea.Msg. Use whenever writing or reviewing a TUI, a tea.Model, Update/View methods, commands, key/mouse handling, or full-screen terminal apps with this stack, even if "Bubble Tea" isn't named. v2's API differs sharply from v1 - lead with the v1->v2 table so you don't write v1 code that won't compile.
Style and lay out terminal output in Go with Lip Gloss v2 (charm.land/lipgloss/v2) - styles, colors, borders, layout joins, and tables. Use when writing or reviewing terminal styling: foreground/background colors, padding/border/width, JoinHorizontal/ JoinVertical, Place, or lipgloss/v2/table, usually alongside Bubble Tea v2. v2's color and renderer model changed sharply from v1 - lead with the v1->v2 table so you don't reach for AdaptiveColor or a global renderer that no longer exist.