New-app checklist: reviewed, a gate (onboarding), the wger pilot record, the existing apps' gap page
gates / gates (push) Successful in 2s

NEW-APP-CHECKLIST.md: the reviewer's draft reviewed - 60 rows in 10 groups, each with how/why and a since date;
7 rows added, 16 sharpened, 9 wrong claims fixed. onboarding/_TEMPLATE.md (one line per id), onboarding/wger.md
(the pilot, exempt app, 11 open rows each a register row), onboarding/EXISTING-APPS-GAPS.md (read only, from
scripts/onboarding_gaps.py). Gate onboarding (scripts/check-onboarding.py) in --fast: a template directory not
among the 53 published before 2026-10-01 needs a complete record; decoys in test_gate_decoys.py (16 cases, 5 gate
mutants seen red). CLAUDE.md, REUSE.md 5, README point to it. No template changed.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
This commit is contained in:
2026-10-01 15:20:52 +02:00
parent 6d72c091e0
commit dc0ab8b2a8
15 changed files with 1068 additions and 96 deletions
+7
View File
@@ -23,6 +23,8 @@ Gates, in order (all must pass; **non-zero exit on any failure**):
and its newest step IS the compose's images (runs in CI too)
9. test-record-move git history + the registry for MOVED refs only — an image move adds a PROVEN
ladder entry whose digests the registry still serves (hook; skipped on CI)
10. onboarding static, instant, whole repo — a NEW template directory carries a complete onboarding
record (NEW-APP-CHECKLIST.md; the 53 apps published before 2026-10-01 are exempt by name)
4. engine-major static, needs GIT HISTORY — no database engine pin crosses a MAJOR version
(operator ruling 2026-09-13; expires when Slice 4 / R-448 ships). Runs in the
pre-push hook, which has the full clone; on a SHALLOW clone (CI fetches at
@@ -107,6 +109,11 @@ GATES = [
# move must add a PROVEN entry whose digests the registry still serves.
("test-record", "check-test-record.py", True, True, False),
("test-record-move", "check-test-record-move.py", False, True, True),
# 2026-10-01 (operator request): a NEW template directory carries a complete onboarding record —
# onboarding/<app>.md answering every NEW-APP-CHECKLIST.md id, none open, every `done` naming evidence that
# exists. Static, files only, so it is --fast and bites in the hook AND in CI. The 53 apps published before
# the checklist are exempt by name inside the script.
("onboarding", "check-onboarding.py", False, True, False),
]
VERDICT = {0: "OK", 1: "FAILED", 2: "INCONCLUSIVE"}