# Agent Guide ## Rules - Use writing rust & reviewing rust when appropriate - Always using the writing skill when updating documentation - Write TSDoc/rustdoc comments for exported/public and contextually important symbols for maintainers - Helpers need more than 1 call-site to justify abstraction - Prefer the smallest end-to-end path through the shared document model before widening a feature's surface. Verify save/reopen, undo/redo, merge, inspection, and export where they apply. - Add shared fixtures and regression coverage with feature work. Optimize from measured bottlenecks rather than speculative architecture. - Run the full test suite through the root `pnpm test` command, or run a package's Vitest command from that package's directory. - Do not invoke a package-local vitest from the repository root Vitest will miss the package Vite config, collect unrelated generated Svelte tests, run browser imports in the forks pool, and fail aliases such as `$editor`. - The user will stage files so don't be alarmed by that. Try to not rely on git for reviewing the state of your edits. - Refrain from using the words "bounded" & "durable" and the phrase "load-bearing" ## Architecture For source ownership, dependency directions, and adapter boundaries, read the [architecture guide](apps/web/src/content/docs/development/architecture.md) before reorganizing internals. Keep `inkfinite-core` as one crate and follow that guide when deciding where new code belongs. ## Verification For affected editor surfaces, run the relevant Playwright visual tests (or add new ones) and inspect the baselines in `apps/web/e2e/visual/*-snapshots/` at their full captured size. `cargo clean` regularly as not to fill up too much space on disk. ### Code Quality ```sh cargo fmt --all -- --check cargo test --workspace --all-features cargo clippy --workspace --all-targets --all-features -- -D warnings pnpm format:check pnpm bindings:check pnpm bindings:test pnpm test pnpm check pnpm lint ```