b7c573f8d9
The repo root already IS the `ccam` plugin root (`"source": "./"`), so the conventional `skills/` dir at the root is the plugin's skills dir — while `.claude/skills/` only loaded for a session whose cwd was inside this checkout. That is useless for a lane working in another repo, which is why `ccam skills install` existed at all. Move all seven skills to `skills/`: they now reach every plugin user as `/ccam:<name>` (bare `/<name>` as an alias). `ccam skills install` stays as the fallback for a plain checkout without the plugin, sourcing from the new path. Agents deliberately do NOT move. A plugin agent is addressed as `ccam:qc-local`, which would break the `subagent_type: qc-local` references in ship-feature-lane; `ccam lanes agents install` keeps writing them into the lane's own `.claude/agents/`, the highest-priority agent source. MCP was already plugin-shipped via `plugins/ccam/.mcp.json`. Mechanical fallout: ~115 source files carry a doc-comment pointer to `.claude/skills/file-headers/`, repointed to `skills/file-headers/`. The generic Claude Code config-surface examples in openapi/cc-config (`.claude/ skills/code-reviewer`) describe any user's layout and are left alone. Also fixes the two file-headers scripts, whose `ROOT=` climbed four levels from `.claude/skills/file-headers/scripts/` and would have escaped the repo from the new depth — it scanned sibling projects until corrected to three. npm run test:server (1160 pass), test:client (422 pass), mcp:typecheck, mcp:build + mcp:check-build all green.
36 lines
1.8 KiB
Markdown
36 lines
1.8 KiB
Markdown
# Codex Project Instructions
|
|
|
|
## Project intent
|
|
- Keep this repository a stable, local-first Claude Code monitoring platform.
|
|
- Maintain correctness across hooks, API, DB, websocket, UI, and MCP integration.
|
|
|
|
## 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 + VN/CN/KO mirrors, 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ĩ <vinnt@smartgift.vn>`. See `skills/file-headers/` and `.claude/rules/file-headers.md`; verify with `bash skills/file-headers/scripts/check-headers.sh`.
|
|
|
|
## Where to work
|
|
- `server/` for API/routes/data processing.
|
|
- `client/` for React UI behavior.
|
|
- `mcp/` for local MCP server tooling.
|
|
- `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.
|
|
- MCP changes: run `npm run mcp:typecheck` and `npm run mcp:build`.
|
|
- 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`
|
|
- MCP helpers: `npm run mcp:install`, `npm run mcp:build`, `npm run mcp:start`
|