AGENTS.md ยท diff

git:20261018.c23110e to git:20261019.9e8456a

10 added, 0 removed. Audit A to A.

# Repository review guidance
## File-size review policy
The repository's 500-line maintainability guideline applies to source-code files, not declarative data files.
Do not raise line-count, file-length, "file too large", or split-the-file findings for `*.json` files. This includes command-extension sources under `contributions/command-sources/`, portable fixtures under `tests/fixtures/`, generated JSON, schemas, manifests, contracts, and other declarative JSON.
Large JSON files are expected when they enumerate command matchers, fixtures, schemas, or generated data. Review them for correctness, security, schema validity, duplication, malformed data, trust-boundary mistakes, and unnecessary generated churn, but never require splitting or shrinking them solely because of line count or file size.
Continue applying the 500-line guideline to source code where appropriate.
## Approval invariant
Every command Guard pauses for review must offer Allow once and Always allow, and every part of Guard must honor an approval until the user removes it or the command's hash changes. Read `docs/guard/approval-invariant.md` before changing approval tokens, retry bindings, scope contracts, saved decisions or the review card. A change that makes a review once-only, or drops Always allow for a class of commands, breaks this invariant. Findings about what an approval token binds, and how to bind it more tightly without removing a choice, are in scope.
+ ## Python runtime review policy
+
+ HOL Guard is moving its runtime from Python to Rust (`rust/crates/`). Report new Python runtime logic under `src/`.
+
+ When a pull request adds or grows `*.py` code under `src/`, report one finding for the pull request that asks whether the new logic belongs in Rust instead. Runtime logic means command parsing, matching, classification, decisions, scanning, hashing, secure file I/O, hook handling, or other deterministic hot-path work. Name the likely crate when it is clear, and use `docs/guard/native-hook-data-plane-ownership.md` for what Rust already owns.
+
+ Do not report tests and tooling (`tests/`, `ci/`, `scripts/`, `conftest.py`), deleted or shrinking Python, thin shims or glue that only call the native runtime, parse arguments, or render its result, or fixes to existing Python that has no Rust equivalent yet.
+
+ Raise the finding as a question, not a blocker.
+