Close Trainlog Gate 0

This commit is contained in:
fy59 2026-09-05 19:16:08 +02:00
parent bc54d6b4ce
commit ebd4316ed6
4 changed files with 57 additions and 11 deletions

View file

@ -22,6 +22,7 @@ The project uses a simple pre-release changelog during early development.
### Changed ### Changed
- Gate 0 project contract review completed successfully.
- `ended_at` is optional for active or interrupted sessions. - `ended_at` is optional for active or interrupted sessions.
- Repetition and timed exercise modes are now mutually exclusive. - Repetition and timed exercise modes are now mutually exclusive.
- Exercise display-name anti-duplication semantics are defined. - Exercise display-name anti-duplication semantics are defined.

View file

@ -8,7 +8,7 @@ Current state:
```text ```text
TRAINLOG_FORMAT_V1=DRAFT TRAINLOG_FORMAT_V1=DRAFT
GATE_0=VALIDATION_PENDING GATE_0=PASS
``` ```
Incompatible changes are allowed until the format is explicitly marked `FROZEN`. Incompatible changes are allowed until the format is explicitly marked `FROZEN`.

View file

@ -3,8 +3,8 @@
## Status ## Status
```text ```text
GATE_0_REVIEW_01=IMPLEMENTED GATE_0_REVIEW_01=PASS
GATE_0=VALIDATION_PENDING GATE_0=PASS
TRAINLOG_FORMAT_V1=DRAFT TRAINLOG_FORMAT_V1=DRAFT
``` ```
@ -116,13 +116,44 @@ Expected result:
- every invalid fixture reports `PASS invalid`; - every invalid fixture reports `PASS invalid`;
- `git diff --check` prints nothing. - `git diff --check` prints nothing.
## Validation evidence
Canonical local validation reported:
```text
python tools/validate_json.py
PASS
```
Every positive fixture was accepted.
Every negative fixture was rejected for the intended reason.
`git diff --check` produced no output.
Reviewed commit:
```text
bc54d6b4ce10d098916823b6a79f72b39d9c7703
Harden Trainlog v1 exchange contract
```
The pushed GitHub mirror was read back and the review changes were verified.
## Gate decision ## Gate decision
Review #1 does not itself mark Gate 0 as PASS. ```text
GATE_0_REVIEW_01=PASS
GATE_0=PASS
```
Gate 0 becomes eligible for PASS after: Gate 0 is closed.
1. the canonical local validation succeeds; The exchange format remains deliberately unfrozen:
2. the review is committed;
3. the commit is pushed to Forgejo and GitHub; ```text
4. the mirrored repository is reviewed. TRAINLOG_FORMAT_V1=DRAFT
```
Gate 1 is responsible for completing the remaining format decisions and
freezing `TRAINLOG_FORMAT_V1`.

View file

@ -2,7 +2,14 @@
## Gate 0 — Project contract ## Gate 0 — Project contract
Status: VALIDATION PENDING — REVIEW #1 Status: PASS
Canonical result:
```text
GATE_0=PASS
GATE_0_REVIEW_01=PASS
```
Deliverables: Deliverables:
@ -26,7 +33,14 @@ Exit criteria:
- semantic invariants are documented; - semantic invariants are documented;
- repository clean after commit. - repository clean after commit.
Gate 0 is not PASS until the review #1 validation commands pass in the canonical working tree and the resulting commit is pushed. Gate 0 passed after:
- canonical local fixture validation succeeded;
- `git diff --check` succeeded;
- review commit `bc54d6b4ce10d098916823b6a79f72b39d9c7703` was pushed;
- the GitHub mirror was independently read back and reviewed.
Gate 1 is now the active gate.
## Gate 1 — Exchange format v1 freeze ## Gate 1 — Exchange format v1 freeze