Close Trainlog Gate 0
This commit is contained in:
parent
bc54d6b4ce
commit
ebd4316ed6
4 changed files with 57 additions and 11 deletions
|
|
@ -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.
|
||||||
|
|
|
||||||
|
|
@ -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`.
|
||||||
|
|
|
||||||
|
|
@ -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`.
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue