* ci: add agent instructions and ClaudeCode hooks
* refactor: rename start-check and use schemas
* fix: remove redundant flow diagram
* refactor: add block utility
* docs: add reference to development documentation
* ci: add pretooluse hook
* test: remove unnecessary schema tests
* ci: add --all flag run fixer and linters in a single command
* ci: switch stop hook to `pnpm check --all`
* refactor: use simple git
* refactor: use zod/v4
* ci: prevent usages of pnpm vitest
* ci: add must read and code example for codeBlock
* fixup! simplegit by allowing user pagers and editors
* ci(agent hooks): run installs on worktree changes
* docs: shorten description
* chore: remove additional new line at the end
* explicitly fail if parsing fails
* fix: rename to kebabcase
* docs: reduce commands highlighted for local dev
* refactor: replace @containerbase/eslint-plugin and eslint-plugin-import-x with local rules and biome
The two containerbase ESLint rules (test-root-describe, no-tools-import) are now
implemented locally in tools/lint/rules.js, removing the external dependency.
All eslint-plugin-import-x rules are dropped: default, named, namespace, and
no-cycle are already covered by oxlint; no-unresolved is covered by TypeScript;
no-extraneous-dependencies is replaced by biome's noUndeclaredDependencies.
* fix: exclude eslint.config.mjs from type-checking
eslint-plugin-promise has no type declarations. Previously this was
masked by @types/eslint pulled in transitively via eslint-plugin-import-x.
The config file is not application code and gains nothing from type-checking.
* refactor: drop eslint-plugin-promise, move covered rules to oxlint
The promise rules target .then()/.catch() patterns which are rare in an
async/await codebase. The 4 rules oxlint supports (catch-or-return,
no-callback-in-promise, no-new-statics, valid-params) are moved there.
* fix: prettier formatting after removing eslint-disable comment