{"owner":"agentscope-ai","repo":"console","hasSkills":true,"totalSkillsCount":4,"totalTokensCount":1520,"categories":["mcp-config","marketplace","plugin-manifest","cursor-rule"],"hasMcp":true,"mcpConfig":{"mcpServers":{"console":{"command":"npx","args":["-y","@modelcontextprotocol/server-console"]}}},"found":[".cursor/mcp.json",".claude-plugin/marketplace.json",".claude-plugin/plugin.json",".cursorrules (kubestellar-console.mdc)"],"skills":{".cursor/mcp.json":"# Model Context Protocol (MCP) Configuration\n\nPath: `.cursor/mcp.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/agentscope-ai/console/HEAD/.cursor/mcp.json)",".claude-plugin/marketplace.json":"# Claude Plugin Marketplace Catalog\n\nPath: `.claude-plugin/marketplace.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/agentscope-ai/console/HEAD/.claude-plugin/marketplace.json)",".claude-plugin/plugin.json":"# claude-plugin Plugin Manifest\n\nPath: `.claude-plugin/plugin.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/agentscope-ai/console/HEAD/.claude-plugin/plugin.json)",".cursorrules (kubestellar-console.mdc)":"---\ndescription: \"KubeStellar Console — Multi-cluster Kubernetes dashboard development rules\"\nglobs: **/*.tsx, **/*.ts, **/*.go, web/src/**/*.ts, web/src/**/*.tsx, pkg/**/*.go, cmd/**/*.go\nalwaysApply: false\n---\n# KubeStellar Console Development Rules\n\n## Project Structure\n- Frontend: React + TypeScript in `/web/`\n- Backend: Go (Fiber v2) in root directory\n- Build: `cd web && npm run build && npm run lint` before every commit\n- Cards: Dashboard card components in `web/src/components/cards/`\n- Hooks: Data fetching hooks in `web/src/hooks/`\n\n## Card Development\n- All data fetching MUST go through `useCache`/`useCached*` hooks\n- Always destructure and pass `isDemoData` and `isRefreshing` to `useCardLoadingState()`\n- Never use demo data during loading: `isDemoFallback && !isLoading`\n- Hook ordering: `useCardLoadingState` AFTER hooks providing `isDemoData`\n\n## Array Safety\n- NEVER call `.join()`, `.map()`, `.filter()`, `.forEach()`, `for...of` on values that might be undefined\n- Always guard: `(data || []).map(...)` or `(data || []).join(', ')`\n\n## No Magic Numbers\n- Numeric literals should be named constants, except trivial literals (`0`, `1`, `-1`) in clear local contexts\n- Use constants from `lib/constants/` (time.ts, network.ts, ui.ts)\n\n## Styling\n- Tailwind CSS with `cn()` utility for merging classNames\n- Never use raw hex colors — use semantic Tailwind classes (`text-foreground`, `bg-primary`, `bg-card`)\n- Status colors: `text-green-400`/`bg-green-500/10` (success), `text-yellow-400`/`bg-yellow-500/10` (warning), `text-red-400`/`bg-red-500/10` (error), `text-cyan-400`/`bg-cyan-500/10` (info) — these map to the design system's semantic status tokens and are the only permitted palette classes\n\n## Internationalization\n- All user-facing strings use `t()` from `react-i18next`\n- Keys in `web/src/locales/en/` JSON files\n- Never use raw strings for UI text\n\n## Go Backend\n- Fiber v2 handlers: `func(c *fiber.Ctx) error`\n- Use `fiber.NewError(statusCode, message)` for errors\n- Always `make([]T, 0)` not `var x []T` (nil → null in JSON)\n- Use `log/slog` for structured logging\n- Multi-cluster queries use goroutines + sync.WaitGroup\n\n## Cluster Deduplication\n- Always use `DeduplicatedClusters()` when iterating clusters\n- Multiple kubeconfig contexts can point to same physical cluster\n"},"files":{".cursor/mcp.json":"# Model Context Protocol (MCP) Configuration\n\nPath: `.cursor/mcp.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/agentscope-ai/console/HEAD/.cursor/mcp.json)",".claude-plugin/marketplace.json":"# Claude Plugin Marketplace Catalog\n\nPath: `.claude-plugin/marketplace.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/agentscope-ai/console/HEAD/.claude-plugin/marketplace.json)",".claude-plugin/plugin.json":"# claude-plugin Plugin Manifest\n\nPath: `.claude-plugin/plugin.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/agentscope-ai/console/HEAD/.claude-plugin/plugin.json)",".cursorrules (kubestellar-console.mdc)":"---\ndescription: \"KubeStellar Console — Multi-cluster Kubernetes dashboard development rules\"\nglobs: **/*.tsx, **/*.ts, **/*.go, web/src/**/*.ts, web/src/**/*.tsx, pkg/**/*.go, cmd/**/*.go\nalwaysApply: false\n---\n# KubeStellar Console Development Rules\n\n## Project Structure\n- Frontend: React + TypeScript in `/web/`\n- Backend: Go (Fiber v2) in root directory\n- Build: `cd web && npm run build && npm run lint` before every commit\n- Cards: Dashboard card components in `web/src/components/cards/`\n- Hooks: Data fetching hooks in `web/src/hooks/`\n\n## Card Development\n- All data fetching MUST go through `useCache`/`useCached*` hooks\n- Always destructure and pass `isDemoData` and `isRefreshing` to `useCardLoadingState()`\n- Never use demo data during loading: `isDemoFallback && !isLoading`\n- Hook ordering: `useCardLoadingState` AFTER hooks providing `isDemoData`\n\n## Array Safety\n- NEVER call `.join()`, `.map()`, `.filter()`, `.forEach()`, `for...of` on values that might be undefined\n- Always guard: `(data || []).map(...)` or `(data || []).join(', ')`\n\n## No Magic Numbers\n- Numeric literals should be named constants, except trivial literals (`0`, `1`, `-1`) in clear local contexts\n- Use constants from `lib/constants/` (time.ts, network.ts, ui.ts)\n\n## Styling\n- Tailwind CSS with `cn()` utility for merging classNames\n- Never use raw hex colors — use semantic Tailwind classes (`text-foreground`, `bg-primary`, `bg-card`)\n- Status colors: `text-green-400`/`bg-green-500/10` (success), `text-yellow-400`/`bg-yellow-500/10` (warning), `text-red-400`/`bg-red-500/10` (error), `text-cyan-400`/`bg-cyan-500/10` (info) — these map to the design system's semantic status tokens and are the only permitted palette classes\n\n## Internationalization\n- All user-facing strings use `t()` from `react-i18next`\n- Keys in `web/src/locales/en/` JSON files\n- Never use raw strings for UI text\n\n## Go Backend\n- Fiber v2 handlers: `func(c *fiber.Ctx) error`\n- Use `fiber.NewError(statusCode, message)` for errors\n- Always `make([]T, 0)` not `var x []T` (nil → null in JSON)\n- Use `log/slog` for structured logging\n- Multi-cluster queries use goroutines + sync.WaitGroup\n\n## Cluster Deduplication\n- Always use `DeduplicatedClusters()` when iterating clusters\n- Multiple kubeconfig contexts can point to same physical cluster\n"},"items":[{"name":"marketplace.json","path":".claude-plugin/marketplace.json","rawUrl":"https://raw.githubusercontent.com/agentscope-ai/console/HEAD/.claude-plugin/marketplace.json","title":"Claude Plugin Marketplace Catalog","category":"marketplace","format":"json","content":"# Claude Plugin Marketplace Catalog\n\nPath: `.claude-plugin/marketplace.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/agentscope-ai/console/HEAD/.claude-plugin/marketplace.json)","tokens":300,"sizeBytes":200},{"name":"plugin.json","path":".claude-plugin/plugin.json","rawUrl":"https://raw.githubusercontent.com/agentscope-ai/console/HEAD/.claude-plugin/plugin.json","title":"claude-plugin Plugin Manifest","category":"plugin-manifest","format":"json","content":"# claude-plugin Plugin Manifest\n\nPath: `.claude-plugin/plugin.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/agentscope-ai/console/HEAD/.claude-plugin/plugin.json)","tokens":300,"sizeBytes":186},{"name":"mcp.json","path":".cursor/mcp.json","rawUrl":"https://raw.githubusercontent.com/agentscope-ai/console/HEAD/.cursor/mcp.json","title":"Model Context Protocol (MCP) Configuration","category":"mcp-config","format":"json","content":"# Model Context Protocol (MCP) Configuration\n\nPath: `.cursor/mcp.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/agentscope-ai/console/HEAD/.cursor/mcp.json)","tokens":300,"sizeBytes":179},{"name":".cursorrules","path":".cursorrules (kubestellar-console.mdc)","rawUrl":"https://raw.githubusercontent.com/PatrickJS/awesome-cursorrules/main/rules/kubestellar-console.mdc","title":"Awesome Cursorrules: kubestellar console","category":"cursor-rule","format":"markdown","content":"---\ndescription: \"KubeStellar Console — Multi-cluster Kubernetes dashboard development rules\"\nglobs: **/*.tsx, **/*.ts, **/*.go, web/src/**/*.ts, web/src/**/*.tsx, pkg/**/*.go, cmd/**/*.go\nalwaysApply: false\n---\n# KubeStellar Console Development Rules\n\n## Project Structure\n- Frontend: React + TypeScript in `/web/`\n- Backend: Go (Fiber v2) in root directory\n- Build: `cd web && npm run build && npm run lint` before every commit\n- Cards: Dashboard card components in `web/src/components/cards/`\n- Hooks: Data fetching hooks in `web/src/hooks/`\n\n## Card Development\n- All data fetching MUST go through `useCache`/`useCached*` hooks\n- Always destructure and pass `isDemoData` and `isRefreshing` to `useCardLoadingState()`\n- Never use demo data during loading: `isDemoFallback && !isLoading`\n- Hook ordering: `useCardLoadingState` AFTER hooks providing `isDemoData`\n\n## Array Safety\n- NEVER call `.join()`, `.map()`, `.filter()`, `.forEach()`, `for...of` on values that might be undefined\n- Always guard: `(data || []).map(...)` or `(data || []).join(', ')`\n\n## No Magic Numbers\n- Numeric literals should be named constants, except trivial literals (`0`, `1`, `-1`) in clear local contexts\n- Use constants from `lib/constants/` (time.ts, network.ts, ui.ts)\n\n## Styling\n- Tailwind CSS with `cn()` utility for merging classNames\n- Never use raw hex colors — use semantic Tailwind classes (`text-foreground`, `bg-primary`, `bg-card`)\n- Status colors: `text-green-400`/`bg-green-500/10` (success), `text-yellow-400`/`bg-yellow-500/10` (warning), `text-red-400`/`bg-red-500/10` (error), `text-cyan-400`/`bg-cyan-500/10` (info) — these map to the design system's semantic status tokens and are the only permitted palette classes\n\n## Internationalization\n- All user-facing strings use `t()` from `react-i18next`\n- Keys in `web/src/locales/en/` JSON files\n- Never use raw strings for UI text\n\n## Go Backend\n- Fiber v2 handlers: `func(c *fiber.Ctx) error`\n- Use `fiber.NewError(statusCode, message)` for errors\n- Always `make([]T, 0)` not `var x []T` (nil → null in JSON)\n- Use `log/slog` for structured logging\n- Multi-cluster queries use goroutines + sync.WaitGroup\n\n## Cluster Deduplication\n- Always use `DeduplicatedClusters()` when iterating clusters\n- Multiple kubeconfig contexts can point to same physical cluster\n","tokens":620,"sizeBytes":2319}],"systemPromptSnippet":"<yakaai_skills repo=\"agentscope-ai/console\">\n<!-- File: .claude-plugin/marketplace.json (Tokens: ~300 | Category: marketplace) -->\n# Claude Plugin Marketplace Catalog\n\nPath: `.claude-plugin/marketplace.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/agentscope-ai/console/HEAD/.claude-plugin/marketplace.json)\n\n<!-- File: .claude-plugin/plugin.json (Tokens: ~300 | Category: plugin-manifest) -->\n# claude-plugin Plugin Manifest\n\nPath: `.claude-plugin/plugin.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/agentscope-ai/console/HEAD/.claude-plugin/plugin.json)\n\n<!-- File: .cursor/mcp.json (Tokens: ~300 | Category: mcp-config) -->\n# Model Context Protocol (MCP) Configuration\n\nPath: `.cursor/mcp.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/agentscope-ai/console/HEAD/.cursor/mcp.json)\n\n<!-- File: .cursorrules (kubestellar-console.mdc) (Tokens: ~620 | Category: cursor-rule) -->\n---\ndescription: \"KubeStellar Console — Multi-cluster Kubernetes dashboard development rules\"\nglobs: **/*.tsx, **/*.ts, **/*.go, web/src/**/*.ts, web/src/**/*.tsx, pkg/**/*.go, cmd/**/*.go\nalwaysApply: false\n---\n# KubeStellar Console Development Rules\n\n## Project Structure\n- Frontend: React + TypeScript in `/web/`\n- Backend: Go (Fiber v2) in root directory\n- Build: `cd web && npm run build && npm run lint` before every commit\n- Cards: Dashboard card components in `web/src/components/cards/`\n- Hooks: Data fetching hooks in `web/src/hooks/`\n\n## Card Development\n- All data fetching MUST go through `useCache`/`useCached*` hooks\n- Always destructure and pass `isDemoData` and `isRefreshing` to `useCardLoadingState()`\n- Never use demo data during loading: `isDemoFallback && !isLoading`\n- Hook ordering: `useCardLoadingState` AFTER hooks providing `isDemoData`\n\n## Array Safety\n- NEVER call `.join()`, `.map()`, `.filter()`, `.forEach()`, `for...of` on values that might be undefined\n- Always guard: `(data || []).map(...)` or `(data || []).join(', ')`\n\n## No Magic Numbers\n- Numeric literals should be named constants, except trivial literals (`0`, `1`, `-1`) in clear local contexts\n- Use constants from `lib/constants/` (time.ts, network.ts, ui.ts)\n\n## Styling\n- Tailwind CSS with `cn()` utility for merging classNames\n- Never use raw hex colors — use semantic Tailwind classes (`text-foreground`, `bg-primary`, `bg-card`)\n- Status colors: `text-green-400`/`bg-green-500/10` (success), `text-yellow-400`/`bg-yellow-500/10` (warning), `text-red-400`/`bg-red-500/10` (error), `text-cyan-400`/`bg-cyan-500/10` (info) — these map to the design system's semantic status tokens and are the only permitted palette classes\n\n## Internationalization\n- All user-facing strings use `t()` from `react-i18next`\n- Keys in `web/src/locales/en/` JSON files\n- Never use raw strings for UI text\n\n## Go Backend\n- Fiber v2 handlers: `func(c *fiber.Ctx) error`\n- Use `fiber.NewError(statusCode, message)` for errors\n- Always `make([]T, 0)` not `var x []T` (nil → null in JSON)\n- Use `log/slog` for structured logging\n- Multi-cluster queries use goroutines + sync.WaitGroup\n\n## Cluster Deduplication\n- Always use `DeduplicatedClusters()` when iterating clusters\n- Multiple kubeconfig contexts can point to same physical cluster\n</yakaai_skills>"}