conventions/programming_general/git_commit.yaml
Natalie 59656b5b93 feat(conventions): apiVersion+semver versioning, run lint:yaml CLI, rename infra_manifest
Add document apiVersion (conventions/v1) + per-convention semver + updated date to
the schema and all seed conventions; manifest files carry their own apiVersion
(infra/v1). New ./run (symlink -> scripts/cli/run) with lint:yaml validating every
programming_*/<name>.yaml against the schema (name==filename, scope==dir). Rename
infra-manifest.yaml -> infra_manifest.yaml for name match. 4/4 valid.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-29 08:36:10 -04:00

28 lines
1.2 KiB
YAML

apiVersion: conventions/v1
version: 0.1.0
updated: "2026-06-29"
name: git_commit
title: Atomic commit + push protocol
scope: general
status: active
summary: Each verified logical change is its own scoped, conventional commit, pushed immediately; every agent commits the work it produced.
appliesTo: ["~/Code/**"]
rules:
- id: atomic
level: must
text: One logical, verified change per commit. Stage with scoped `git add <paths>` — never blind `git add -A`.
- id: verify_first
level: must
text: Tests / build / typecheck pass before the commit. Never commit unverified code.
- id: conventional
level: must
text: Conventional-commit message; end with the Co-Authored-By trailer.
- id: push_after
level: must
text: git push (fast-forward only) after each commit so work isn't stranded on one host. Never force-push.
- id: agent_owns_commit
level: must
text: Each agent (orchestrator or sub) commits + pushes its own work; never defer to a parent or a daemon. (The apricot ACS auto-commit-service is stale/offline.)
- id: branch
level: should
text: These repos work on main directly; don't auto-create branches unless the project requires it.