docs: define v0.1 product and architecture contract

This commit is contained in:
hermes 2026-07-28 18:21:19 +00:00
commit c4fb0c6a01
12 changed files with 2130 additions and 64 deletions

38
AGENTS.md Normal file
View file

@ -0,0 +1,38 @@
# AGENTS.md
## Read first
- Read `PRD.md`, `CONTEXT.md`, and applicable ADRs before changing behavior.
- Keep the Rust harness synchronous and the Ghidra worker
capability-sandboxed.
- Treat JSON schemas, error codes, ordering, and exit statuses as public API.
## Change rules
- Add a regression test for every bug fix.
- Never change golden files or schemas implicitly.
- Keep the Rust operation registry, Java dispatch, schemas, and goldens in
exact parity.
- Preserve strict stdout/stderr framing.
- Preserve the worker's no-network and no-default-data-egress boundary.
- Do not add `unsafe`, an async runtime, database, daemon, or dependency
without an accepted design change.
- Do not weaken bounds, validation, sandboxing, or atomic store behavior.
## Required checks
- `cargo fmt --check`
- `cargo clippy --all-targets --all-features -- -D warnings`
- `cargo test --all-targets`
- `cargo deny check`
- `nix flake check`
## Source control
- Use Jujutsu for normal local change management.
- Use `jj status`, `jj diff`, `jj log`, `jj describe`, and `jj new`.
- Push Forgejo bookmarks through `jj git push`.
- Keep changes focused and preserve unrelated user work.
- Use direct Git commands only for interop or recovery that Jujutsu cannot
perform.
- Never run `git clean -xdf`; it can delete colocated `.jj/` metadata.