Read .github/copilot-instructions.md — the canonical agent guidance for this repo. The four rules agents break most:
- Never hardcode an MCP tool name. They live only in
tools/lib/contracts/mcp-capabilities.mjs;tools/test-contract-guard.mjsfails the build otherwise. - Output changes are golden-gated.
npm run test:goldenandnpm run test:golden:compilemust pass; intended changes regenerate goldens (:update) in the same commit with the diff explained. VENDOR-MANIFEST.jsonis generated. Touching atools/libmodule meansnpm run vendor-manifestin the same commit; changing its exports also means naming it under## Unreleasedindocs/CHANGELOG.md(tools/test-vendor-manifest.mjs).- Branch contract:
codex/<topic>fromorigin/develop, PR intodevelop;mainadvances only by promotion PR.npm run lint+npm testgreen before every push. No build step — plain ESM, not TypeScript.