Tool-neutral entry point for AI coding agents (Claude Code, GitHub Copilot, Cursor, Codex, Aider, Continue, etc.) working on this repo.
All project conventions, architecture notes, critical rules, and testing requirements live in CLAUDE.md. That file is the canonical guide — read it first, and follow it regardless of which AI tool you are using.
Tool-specific overrides (if any):
- GitHub Copilot:
.github/copilot-instructions.md
If a tool-specific file conflicts with CLAUDE.md, CLAUDE.md wins.
- Start the console:
./startup-oauth.sh(requires.envwith GitHub OAuth) or./start-dev.sh(mock user, no OAuth). - Ports: backend
8080, frontend5174, kc-agent WebSocket8585. - Pre-PR gate: Do not run
npm run buildornpm run lintlocally; CI validates both on the PR. - Testing is mandatory for UI and API work — see the "MANDATORY Testing Requirements" section in
CLAUDE.md.
- No magic numbers — use named constants.
- No hardcoded secrets — use env vars only.
- Array safety — guard with
(data || [])before.map/.filter/.join/for...of. - Use
DeduplicatedClusters()when iterating clusters. - All card data fetching goes through
useCache/useCached*hooks. - User-facing strings use
t()fromreact-i18next— never raw strings. - Netlify Functions (
web/netlify/functions/*.mts) must be updated alongside Go API handlers, since production (console.kubestellar.io) runs on Netlify, not the Go backend.
When you finish a task, summarize what changed and note that build/lint are validated by CI on the PR. Do not push or open PRs unless explicitly asked.