docs: slim the agent conventions

The founding rule restated SPEC.md, which stays the source of truth
for the confinement budget. Commit bodies gain a length cap, and a
commit must build and work on its own; bisectability outranks the
one-component-per-commit split when the two collide.
This commit is contained in:
vhaudiquet committed 2026-10-29 21:47:19 +01:00
1 parent 062fdca59d
commit ed5786c4b5
2 files changed
+4 -14

No files matched your search

+4 -13
View File
@@ -1,18 +1,5 @@
# AGENTS.md
Conventions for working in this tree. They apply to every commit; the
whole history follows them.
## The founding rule
The SPEC states it; this file makes it operational. The host process
never calls `mount`, `umount2`, `unshare`, `setns`, `pivot_root`, or
any of the new mount API. New code stays inside the confinement budget
(SPEC, "Confinement budget"). Test T6 in `vm.rs` guards the rule; keep
it green. `unsafe` code lives in `krun.rs` (the FFI) and in explicit
`libc` call sites; every unsafe block carries a comment stating the
invariant that makes it sound.
## Before every commit
Run, in order, and make sure they are clean before committing:
@@ -60,8 +47,12 @@ Rules:
first letter, no trailing period, max ~72 characters.
- Body (optional): separated by a blank line, wrapped at 72 columns;
explain why rather than what. Reference issues as `#123`.
Keep body short for small changes (max. 4 lines) and expand into
max. 3 paragraphs for big changes.
- A commit touching several components should be split into one commit
per component when practical; otherwise use the dominant scope.
**Never break bisectability.**
Each commit should build and work on their own.
- **No merge commits.** Integrate work by rebasing onto the target
branch; the history stays linear.
-1
View File
@@ -15,7 +15,6 @@ serde_yaml = "0.9"
# HTTP downloads
reqwest = { version = "0.13", features = ["blocking", "stream"] }
# Tarball extraction
tar = "0.4"
flate2 = "1"