inkfinite (an infinite canvas/whiteboard) monorepo ink.stormlightlabs.org
svelte rust tauri svg canvas perfect-freehand
inkfinite AGENTS.md
2.0 kB
Markdown
at main

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 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 #

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