AGENTS.md@crates/crud · git:20261026.4f21256 · 2026-10-26 · sha256 2bf8795cfb04e0dd
AGENTS.md@crates/crud git:20261026.4f21256A
Immutable. This exact content never changes and is served at /api/v1/blob/2bf8795cfb04e0dd.
# Queries and Repositories These rules govern application implementation. For direct SQL inspection during debugging, see the root [diagnostics scope](../../AGENTS.md#diagnostics). - Put ordinary CRUD in the existing repositories and expose it through `CrudStore`, using Entity/Model/ActiveModel and typed projections. Follow a relevant existing method's structure, not a separate access path in a caller. - Use SeaQuery expressions within the ORM path where needed. Building a typed `Query` and executing a `Statement` through `query_*_raw` does not by itself satisfy the Entity/Model pattern for ordinary CRUD. - Low-level/raw SQL is a local exception: document the specific gap in the installed API and bind values as parameters. JOINs, transactions or query complexity alone do not justify it; existing SQL is not blanket precedent. - Gateway SQLite uses `foreign_keys=OFF`; declarative FK/relations may describe schema but do not enforce integrity or cascade deletion. Validate existence, ownership and access explicitly, and perform necessary dependent cleanup in the same atomic operation. PK/UNIQUE constraints remain effective. - Regressions must use project access paths and the runtime connection settings. A cascade test with FK enabled does not establish behavior with FK disabled. - Pass the operation's scoped database handle through helpers and repositories. Follow the root runtime, scheduling and transaction rules; do not create alternate connections or classify individual SQL calls here. - For schema changes read [migration rules](../migration/AGENTS.md); new tables require [generated Entity](../entity/AGENTS.md) before their ordinary CRUD.