From 288b222286ad03f461e08f1bdf61424bd40dd64b Mon Sep 17 00:00:00 2001 From: jyviko <2501648+jyviko@users.noreply.github.com> Date: Tue, 13 Oct 2026 22:54:04 -0400 Subject: [PATCH] AGENTS.md: rebase merges, every commit bisectable, fixups folded with --autosquash Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01NmAttHhUZTokgPeEJia8sm --- AGENTS.md | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/AGENTS.md b/AGENTS.md index b559a63..89dc394 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -99,15 +99,22 @@ People trust ModelCraft with their models; a crash loses their work. **This outr 1. Work in your own worktree on a branch, with your own `CARGO_TARGET_DIR`. While you work: `cargo check` and the tests of the crates you touch (`cargo test -p `). Commit after each working step (a layer that compiles with its tests passing), not one big commit per PR. + Every commit lands on `main` as it is, so each one must build and pass its tests and say + what it does: `git bisect` walks them one by one. 2. When the change is done: review it once with `/simplify`, then `cargo fmt --all` and `cargo clippy -p --all-targets -- -D warnings` for each crate you touched, once. Regenerate what your change affects: `docs/features.md` when commands change (`cargo run -p modelcraft-cli -- features > docs/features.md`), `docs/oracle.md` when oracle cases or solver numerics change (`cargo xtask oracle`). - 3. Rebase onto the latest `origin/main` (never merge `main` into a branch), rerun the tests of - the touched crates, push, open the PR and merge it yourself: - `gh pr merge --squash --delete-branch`, run as its own command. - 4. Never run the full gate locally: no `cargo xtask ci`, no `cargo clippy --workspace`, no + 3. Fold every fix into the commit it fixes, never a separate "fmt", "clippy", "review fixes" or + "regenerate features.md" commit: `git commit --fixup `, then + `git rebase -i --autosquash origin/main` (`GIT_SEQUENCE_EDITOR=true` keeps it + non-interactive). A regenerated page goes into the commit that changed what it lists. + 4. Rebase onto the latest `origin/main` (never merge `main` into a branch), rerun the tests of + the touched crates, push, open the PR and merge it yourself with a rebase merge, which keeps + `main` linear and every commit bisectable: `gh pr merge --rebase --delete-branch`, run as + its own command. Never squash. Then remove your worktree and delete your local branch. + 5. Never run the full gate locally: no `cargo xtask ci`, no `cargo clippy --workspace`, no `cargo xtask wasm` or `oracle` unless step 2 calls for it. Never watch CI. GitHub CI runs `cargo xtask ci` (fmt, assets, licences, layers, clippy -D warnings, tests, wasm), the oracle, the heavy tests and the advisories once per merge on `main`; the coordinator