
This skill should be used when the user asks about "webui", "web ui", "vibe coding", "WebUIServer", "web interface", "browser Claude Code", "web frontend", "React admin dashboard", "web/src", "VibeCoding page", "WebSocket /api/vibe/ws", "webui config", "port 9830", "static file serving", "webuiSession", "claude code subprocess from web", "project dropdown", "work dir select", "listProjects", "Management API frontend", "multi tab vibe", "TabBar", "VibeSession component", "copy work dir", "clipboard copy", "disconnect confirm", "断开确认", "复制路径", "copyWorkDir", "AgentSystemPrompt", "project awareness", "/project command in agent", "attachment upload", "sendWithAttachments", "file upload vibe", "image upload vibe", "drag drop vibe", "paste image vibe", or needs to debug, extend, or understand the browser-based Vibe Coding interface and its Go backend.
Use when encountering IM platform card callback timeouts (error 200340), "card interaction timeout", "card page turn slow", "renderListCard slow", "renderDeleteModeCard slow", "ListSessions slow", "3 second timeout", "session list cache", "sessionListCache", "listSessionsCached", or when adding new card rendering code that calls expensive I/O operations (ListSessions, file scanning, JSONL parsing) in card callback paths.
This skill should be used when the user asks about "multi tab", "multiple tabs", "tab isolation", "TabBar", "VibeSession", "multi-instance frontend", "independent WebSocket per tab", "tab state management", "pure frontend multi-instance", "component splitting for multi-instance", "React multi-tab pattern", "display:none keep alive", "tab close confirmation", "disconnect confirm", "confirmation modal pattern", "tabState", "createTabState", "hidden tab WebSocket", "parallel sessions", "multi-panel UI", or needs to implement, debug, or extend any multi-tab / multi-instance UI pattern where each tab maintains independent backend connections and isolated state.
This skill should be used when the user asks about "message flow", "how messages are processed", "Engine handleMessage", "interactive session", "agent session lifecycle", "processInteractiveEvents", "event loop", "how cc-connect talks to Claude Code", "stdio protocol", "stream-json", "permission request flow", "streaming preview", "how typing indicator works", "pending messages queue", "session lock", "TryLock", "how API key is passed", "provider proxy", "ANTHROPIC_API_KEY", "router_url", "authentication", "how Claude Code is started", or needs to debug, extend, or understand the end-to-end message processing pipeline from IM platform to agent execution.
This skill should be used when the user asks about "config validation", "startup validation", "required config", "config.toml required fields", "validate()", "database.dsn required", "management.port required", "config error on startup", "Error loading config", "config test fixtures", "validBaseConfig", "baseConfigTOML", "config_test.go fixtures", or needs to add new required config fields, debug config loading errors, or understand how cc-connect validates configuration at startup.
This skill should be used when the user asks to "add a feature", "implement a new command", "add a new platform", "add a new agent", "create a new module", "extend the engine", "add i18n strings", "add cross-cutting functionality", or needs guidance on the cc-connect project architecture, coding conventions, and development workflow.
This skill should be used when the user asks "where is function X", "which file contains", "engine file structure", "engine.go split", "engine_commands.go", "engine_cards.go", "engine_session.go", "engine_events.go", "engine_util.go", "engine_workspace.go", "find function in engine", "engine file layout", "engine file map", or needs to quickly locate a specific function, type, or constant across the engine's split file structure.
This skill should be used when the user asks about "slash command", "builtin command", "builtinCommandNames", "builtinCommandDefs", "handleCommand", "command routing", "command registration", "command dispatch", "add a command", "add slash command", "composite command", "command aliases", "/help", "command i18n", "disabled commands", "command prefix matching", "matchPrefix", "matchBuiltinPrefix", "initBuiltinCommands", "commandHandler", "builtinCommandDef", "command registry pattern", or needs to debug, extend, or understand how built-in slash commands are registered, routed, and rendered in the help menu.
This skill should be used when the user asks about "session key", "SessionKey", "thread isolation", "thread_isolation", "share_session_in_channel", "BaseSessionKeyer", "base session key", "session binding", "different threads different sessions", "session key format", "per-user session", "per-channel session", or needs to debug, extend, or understand how session keys are constructed across platforms and how they affect routing, project binding, and conversation isolation.
This skill should be used when the user asks about "shared platform", "multi-project", "project router", "ProjectRouter", "platform deduplication", "/project command", "project selection", "project binding", "multiple projects sharing one bot", or needs to debug, extend, or understand the multi-project shared platform routing system.
This skill should be used when the user asks about "export markdown", "export chat", "download markdown", "export conversation", "导出 Markdown", "导出聊天记录", "ExportRequest", "ExportMessage", "handleVibeExportMarkdown", "buildExportMarkdown", "POST /api/vibe/export", "exportVibeSession", "chat export", "markdown download", "sanitizeFilename", "Content-Disposition attachment", "export button vibe", "history export", "tool_use in export", "message type mapping export", or needs to debug, extend, or understand the chat history Markdown export feature including the full-stack data flow from frontend trigger to file download.
This skill should be used when the user asks about "attachment upload", "file upload", "image upload", "paste image", "drag drop file", "vibe attachment", "pendingAttachments", "sendWithAttachments", "fileToAttachment", "AttachmentItem", "base64 attachment", "WebSocket attachment protocol", "multimodal content", "image content block", "file content block", "clipboard paste image", "drag and drop upload", "attachment preview", "file size limit", "10MB limit", "ExtFromMime", "附件上传", "图片上传", "拖拽上传", "粘贴图片", "附件预览", "文件大小限制", or needs to debug, extend, or understand the WebUI attachment upload feature including the full-stack data flow from browser to Claude Code CLI.
This skill should be used when the user asks about "vibe history", "chat history persistence", "vibe chat database", "ChatStore biz_type", "cc_sessions biz_type", "cc_chat_messages biz_type", "vibe MySQL", "vibe session save", "/api/vibe/sessions", "VibeHistory component", "handleVibeSessions", "handleVibeSessionMessages", "ListSessions", "GetMessages", "chat history sidebar", "load history session", "continue conversation from history", "vibe chatstore integration", "webuiSession chatStore", "chatStore is nil", "MySQL DSN format", "mysql driver log", "slogWriter", "chatstore log", "database operation log", "vite proxy /api/vibe", "404 api vibe sessions", "unified history", "IM history in vibe", "listAllSessionsSQL", "biz_type filter", "history includes IM", "history source tag", or needs to debug, extend, or understand how Vibe Coding chat messages are persisted to MySQL and loaded as browsable history in the frontend.
This skill should be used when the user asks about "permission request", "control_request", "control_response", "permission prompt tool", "permission-prompt-tool stdio", "permission popup not showing", "permission dialog missing", "authorize tool use", "allow deny button", "webuiSession permission", "respondPermission", "updatedInput", "control_cancel_request", "permission cancelled", "permission_cancelled", "pendingInputs", "permission flow webui", "vibe permission", "前端没有弹出授权", "权限请求不显示", "权限弹窗", "webuiSession vs claudeSession", "webui parity", or needs to debug, extend, or understand how tool permission requests flow between Claude Code CLI, the Go WebUI backend, and the React frontend.