{"owner":"symfony","repo":"console","hasSkills":true,"totalSkillsCount":1,"totalTokensCount":620,"categories":["cursor-rule"],"hasMcp":false,"mcpConfig":null,"found":[".cursorrules (kubestellar-console.mdc)"],"skills":{".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":{".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":".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=\"symfony/console\">\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>"}