docs: cadence 7–13 min jitter; commit often, push only at end

Soft range instead of fixed 9m; helper defaults to no push.
This commit is contained in:
Hernâni Marques 2026-07-17 20:04:35 +02:00
parent cce1fcbe09
commit 140b3bd16f
No known key found for this signature in database
2 changed files with 94 additions and 55 deletions

View file

@ -9,49 +9,47 @@ default ops laptop yet.
## Git commit / push cadence (existing model)
Observed in `koopa-admin-log` and `francpaysan-admin-log` histories
(active work on 2026-07-17):
Observed in `koopa-admin-log` / `francpaysan-admin-log` histories, plus ops preference:
| Rule | Practice |
|------|----------|
| **Interval** | About **711 minutes** between publishable steps while a topic is open (bursts of 02min are fine for tiny follow-ups) |
| **Message** | `area: short description` — e.g. `monitoring: …`, `landings: …`, `docs: …`, `scripts: …`, `todo: …` |
| **Size** | One logical change (or a tight bundle), not end-of-day megacommits |
| **Push** | After each commit when the remote accepts auth (`git push origin …`) |
| **Commits** | **Prefer frequent** small commits over rare large ones |
| **Interval** | Soft range **713 minutes** while a topic is open — **not** a fixed 9minute metronome; denser 02min bursts for tiny follow-ups are fine |
| **Message** | `area: short description` — e.g. `monitoring: …`, `landings: …`, `docs: …` |
| **Push** | **Only at the end of a work session** (`CADENCE_PUSH=1` or manual `git push`) — not after every commit |
### Agent / human workflow
1. Finish a small slice of work.
2. `git status` / diff → commit with the area-prefix style.
3. `git push` (or run the helper below).
4. Continue; next commit window ~**711 min** later (or sooner if the next slice is ready).
1. Finish a small slice → commit (`area: …`). Repeat often.
2. Do **not** push after each commit.
3. When the topic/session is done → one `git push` (or `CADENCE_PUSH=1`).
4. Soft next-commit window: about **713 min** (jitter), sooner if the next slice is ready.
### Helper script
From the admin-log root:
```bash
# dry-run
CADENCE_DRY=1 ./scripts/git-cadence-commit-push.sh
# commit + push this repo if dirty (skips secrets.env / *password* / *token*)
# commit only if dirty (default: no push; skips secrets)
./scripts/git-cadence-commit-push.sh
# other checkout
./scripts/git-cadence-commit-push.sh ~/taler/src/francpaysan-admin-log
# end of session — push commits that are already local
CADENCE_PUSH=1 ./scripts/git-cadence-commit-push.sh
# soft timer: only commit if last commit age ≥ random target in 713 min
CADENCE_JITTER=1 ./scripts/git-cadence-commit-push.sh
```
Optional timer (every 9min ≈ mid of 711):
Optional user cron (check every 7min; **jitter** keeps effective gaps in **713 min**):
```bash
# user crontab example
*/9 * * * * $HOME/src/koopa/koopa-admin-log/scripts/git-cadence-commit-push.sh >>$HOME/.cache/git-cadence-koopa.log 2>&1
*/9 * * * * $HOME/src/koopa/koopa-admin-log/scripts/git-cadence-commit-push.sh $HOME/taler/src/francpaysan-admin-log >>$HOME/.cache/git-cadence-lfp.log 2>&1
*/7 * * * * CADENCE_JITTER=1 $HOME/src/koopa/koopa-admin-log/scripts/git-cadence-commit-push.sh >>$HOME/.cache/git-cadence-koopa.log 2>&1
```
**Auth note (this host):** `francpaysan-admin-log``ssh://git@git.gnunet.org/…` works.
`koopa-admin-log``https://git.hacktivism.ch/…` needs credentials / SSH key for
`git.hacktivism.ch` (push may stay local until that is fixed).
**Auth note:** `francpaysan-admin-log` (gnunet SSH) pushes OK.
`koopa-admin-log` (hacktivism HTTPS) needs credentials/SSH key before end-of-session push works from this host.
## What runs without Android