# Codex Project Instructions ## Project intent - Keep this repository a stable, local-first Claude Code monitoring platform. - Maintain correctness across hooks, API, DB, websocket, and UI. ## Priorities - Correctness over cleverness. - Small, scoped, reversible diffs. - Preserve existing behavior unless change is requested. - Update docs whenever workflow or architecture changes — follow `skills/update-project-docs/` automatically at the end of every change-set (README.md — Vietnamese, the default — and README.en.md; docs/OVERVIEW.md + OVERVIEW.vi.md, ARCHITECTURE, wiki + i18n + cache bump, server/client READMEs, docs/*). - Every applicable source file you create or update (`.js/.ts/.tsx/.cjs/.mjs/.py/.sh/.css`) must start with the authorship header: a truthful file overview plus the exact line `@author Nguyễn Ngọc Trí Vĩ `. See `skills/file-headers/` and `.claude/rules/file-headers.md`; verify with `bash skills/file-headers/scripts/check-headers.sh`. ## Workspace stage AgentHub's `codex` workspaces — lanes in the API and CLI — (like every non-Claude AI tool workspace) carry no pipeline: the dashboard shows no stage for them and never infers or advances one, so there is no `agenthub stage` call to make while you work here as Codex. ## Where to work - `server/` for API/routes/data processing. - `client/` for React UI behavior. - `scripts/` for hook/install/import/cleanup utilities. ## Validation expectations - Backend changes: run `npm run test:server` when possible. - Frontend changes: run `npm run test:client` when possible. - Full suites take 5–6 minutes, so while iterating run only what the change touches: `npm run test:server -- server/__tests__/.test.js`, and in `client/` `NODE_ENV=test npx vitest related --run` (or `vitest run `). Run the full suite once before committing, and always when the change touches something every screen uses (`Layout`, `Sidebar`, `StatusBar`, `tailwind.config.js`, global CSS, shared hooks/lib) — the per-screen snapshots catch that. - If any check is skipped, report it explicitly. ## Safety expectations - Keep destructive capabilities behind explicit configuration gates. - Never broaden destructive behavior without explicit user request. - Treat hook execution path as fail-safe and non-blocking. ## Useful commands - Setup: `npm run setup` - Dev: `npm run dev` - Build/start: `npm run build` then `npm start`