2.3 KiB
2.3 KiB
AGENTS
Purpose
This repository is developed through agent-assisted workflow. Follow the repository documents first, then implement code.
Source of truth
Use the documents in this order when there is ambiguity:
docs/architecture.mddocs/module-decomposition.mddocs/data-model.mddocs/database-schema.mddocs/admin-api.mddocs/mcp-interface.mddocs/rust-design.mddocs/development-rules.mddocs/rust-code-rules.mddocs/implementation-plan.mddocs/product-editions.mddocs/commercial-boundaries.mddocs/frontend-roadmap.mddocs/refactoring-roadmap.md
If code and docs diverge, update docs first or together with code.
Workflow
- Follow
Red -> Green -> Refactor -> Commit. - Backend changes follow
TDDstrictly. Frontend layout, copy, and UX cleanup do not require strictTDD, but working frontend behavior should still be verified before commit. - Large features use their own branch:
feat/<feature-name>. - Commits must be atomic.
- Push periodically after one or more logically complete
RGR + commitcycles. - Do not wait for the whole feature to be finished before pushing.
- Delete merged feature branches both locally and in
origin. - During the current refactoring and small-fix phase, changes are merged directly into
mainon GitHub without opening PRs by default.
Language rules
- Commit messages must be in English.
- Code identifiers must be in English.
- Code comments are avoided by default.
- If a code comment is truly unavoidable, it must be in English.
Code rules
- Prefer self-documenting code.
- Keep domain logic separate from storage, transport, and orchestration.
- Do not create god-structs or giant services.
- Keep
pubsurface minimal. - Avoid
unwrap,expect,todo,dbg, andpanicin production code. unsafeis forbidden by default.
Commands
Use the canonical commands from justfile:
just fmtjust fmt-checkjust checkjust clippyjust testjust verify
Current execution mode
- Build the Rust workspace first.
- Keep the UI as a separate app outside the Cargo workspace.
- Implement one vertical slice at a time.
Task tracking
- Check
TASKS.mdbefore starting a new piece of work. - Update
TASKS.mdwhen a task starts, finishes, or gets blocked.