When using Codex CLI in this project:
- approval_policy:
never(autonomous mode for routine work) - model_reasoning_effort:
xhigh(complex codebase, needs deep reasoning)
Override with: codex -c approval_policy=ask or codex -c model_reasoning_effort=medium as needed.
These repo-level rules are mandatory for all agents working in this project:
- Use Knots (
kno) as the only work-tracking system. - Do not use any alternate tracker in this repository.
- Never move knots to terminal states unless the user explicitly instructs you.
- Never use a PR workflow unless the user explicitly instructs you to use PRs.
This repository supports parallel agent work using Git worktrees.
- Do implementation work in a dedicated Git worktree.
- Worktrees may use short-lived local branches for isolation.
- Final integrated changes must be pushed to remote
main(origin/main). - Do not require reviews or pull requests unless the user explicitly requests them.
Each Git worktree is a separate checkout and does not share node_modules.
- After creating or switching to a worktree, run:
bun install --frozen-lockfile - Run dependency install before lint, typecheck, test, or build commands.
- Prefer
bun run <script>overbunx <tool>so plugins resolve from local project dependencies. - If
node_modulesis missing in the worktree, treat lint/typecheck results as invalid until install completes.
- File length: max 500 lines per source file
- Function length: max 100 lines per function
- Line length: max 100 columns per line
These are enforced by ESLint (max-lines, max-lines-per-function, max-len).
Before committing changes, ensure that the codebase passes all quality checks. Run the following commands:
- Linting:
bun run lint - Type Checking:
bunx tsc --noEmit - Testing:
bun run test(orbun run test:allto run all tests) - Building:
bun run build
Do not push code that fails these checks unless explicitly instructed.
Fix all failures, not just yours. Unless you are working on a specific non-implementation knot step (e.g., plan review, shipment review), you must fix all broken lint errors, type errors, formatting issues, and failing tests — even if they are pre-existing and not caused by your changes. Leave the codebase cleaner than you found it.