Skip to content

Batches and commits ​

A batch is one coherent, independently understandable outcome. It must be testable, reviewable, and safe to revert without depending on unrelated work.

Default size limits ​

These are reviewability guardrails, not a reason to split one atomic change into artificial fragments. Generated files, lockfiles, and approved snapshots are reported separately from hand-authored work.

Change classTypical batchesPer-batch guidePlan requirement
Tiny documentation or isolated correction1Up to 3 hand-authored files and about 100 changed linesShort declaration
Focused fix or small feature1–3Up to 5 hand-authored files and about 300 changed linesChecklist
Cross-layer feature4–8Up to 8 hand-authored files and about 400 changed linesWritten plan
Migration, security, release, or broad redesign9 or moreSame per-batch guideWritten plan and ledger

Exceeding a guide is allowed only when splitting would make the result less safe or less reviewable. State the reason in the plan and pull request.

What belongs together ​

  • A behavior change and its direct unit, integration, widget, or regression tests.
  • A contract change and the compatible adapter or migration necessary to keep existing data safe.
  • The documentation needed to explain a public behavior changed in the same batch.

What must be separated ​

  • Unrelated cleanup, formatting, dependency updates, and refactors.
  • Product behavior and an unrelated platform, deployment, or release change.
  • Data migration preparation, migration execution, and destructive cleanup when each can be reviewed or rolled back separately.
  • Generated output or localization regeneration from unrelated manual edits, unless the generator requires both in one atomic result.

Commit and push rule ​

Every completed batch ends with exactly one local commit. Before committing, run the selected focused validation and git diff --check; the commit message must describe the batch outcome.

A commit does not authorize a push. Do not push any branch, create a pull request, merge, release, deploy, or delete a remote branch unless the owner explicitly authorized that exact action. When push is authorized for a multi-batch task, push each completed batch so the remote history matches the batch ledger.

If the owner requires exactly N batches, preserve exactly N completed batches and exactly N local commits. Do not add “small extra” commits outside the ledger.

Released under the MIT License.