docs: add AGENT.md and update compression engine module

This commit is contained in:
Andrew Phillips
2025-09-11 17:24:38 -03:00
committed by Andrew Phillips (aider)
parent d27776ac23
commit 022bc70f53
3 changed files with 71 additions and 388 deletions

65
AGENT.md Normal file
View File

@@ -0,0 +1,65 @@
# Agent Configuration
**IMPORTANT:** Prefer to use the `write_file` tool if the edit is for the majority of a file, or if you are correcting previous problems made edits from other tools.
## Commands
**IMPORTANT:** Always export `TERM=dumb`.
**IMPORTANT:** The cargo command cannot be ran in parallel.
### Build
- Build: `TERM=dumb cargo build`
- Build release: `TERM=dumb cargo build --release`
### Test
- Run all tests: `TERM=dumb cargo test`
- Run specific test: `TERM=dumb cargo test TEST_NAME`
- Run tests with output: `TERM=dumb cargo test -- --nocapture`
### Lint/Format Commands
- Check formatting: `TERM=dumb cargo fmt --check`
- Format code: `TERM=dumb cargo fmt`
- Lint: `TERM=dumb cargo clippy`
- Lint with errors: `TERM=dumb cargo clippy -- -D warnings`
## Code Style Guidelines
### Imports
- Group imports in order: standard library, external crates, local modules
- Use explicit imports over glob imports (`use std::fs::File;` not `use std::fs::*;`)
### Formatting
- Use rustfmt (configured via rustfmt.toml if exists)
- Max line length: 100 characters
- Indent with 4 spaces
### Types
- Prefer explicit types in public API
- Use `&str` for string literals, `String` for owned strings
- Use `Option<T>` for optional values, `Result<T, E>` for error handling
### Naming Conventions
- Use snake_case for variables and functions
- Use PascalCase for types and traits
- Use UPPER_SNAKE_CASE for constants and statics
### Error Handling
- Use `anyhow::Result` for most error handling
- Use `anyhow::Context` to add context to errors
- Avoid `unwrap()` in production code
### Documentation
- Document all public APIs with rustdoc
- Use examples in documentation when helpful
## Procedures
### Fix build problems
Use this plan with sequential thinking:
- Check the project using `TERM=dumb cargo check`
- Identify the cause of any errors and warnings
- If there are no errors or warnings, stop
- If there are errors are warnings, create a plan to fix errors and warnings
- Fix the files one at a time, not in parallel
- Use the `write_file` tool to output the complete version of the corrected file