docs(decisions-log): record the gate result -- rc 3, and why CI's green is not rc 0
The handoff entry asserted conclusions but did not carry its own gate numbers. Adds them, per CLAUDE.md section 7: lint / l0 / render-golden / l1 / spec-immutability : green gitea-settings : SKIPPED (SETTINGS_API_TOKEN unset) conformance L2/L3: SKIPPED (CLUSTER_AVAILABLE != true) => exit 3, UNDETERMINED. Not a PASS. Also records two things future sessions will otherwise re-learn the hard way: 1. spec-immutability skipped SPURIOUSLY from the worktree -- dev.sh looks for the spec repo at $REPO_ROOT/../home-network-k3s, which from a worktree is the wrong directory; it exists beside the MAIN checkout. Mounting it RO through the ENGINE shim turned the one tolerated skip into a real green, so R-TEST-06 is genuinely verified. The CLAUDE.md section 3 shim should mount two paths, not one. 2. CI's green tick does NOT mean rc 0. gate/conformance is `if: false` and reports success with "Has been skipped"; gate/gate runs `./ci/gate.sh || [ "$?" -eq 3 ]`, so CI tolerates exit 3 by declared design and would report the same green for the rc 3 above. Branch protection and the runner were measured against the API, not assumed: protected=true, user_can_push=false, required_approvals=1, context 'gate / gate (pull_request)', runner incluster-dind online. PR #23 left unmerged. Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>
This commit is contained in:
1 parent
d29a73cad8
commit
8697702d51
1 file changed
+40
@@ -5442,6 +5442,46 @@ conclusion rather than a cautious one.
|
||||
pings from the toolbox.
|
||||
- **`fix/crafty-oauth2-proxy-signin` is still unmerged**, so the pod still runs the pre-that-PR spec.
|
||||
|
||||
### Gate and CI — rc 3, and why CI's green does not contradict that
|
||||
|
||||
Local, pinned toolbox, from the worktree (`ENGINE` shim + `DEV_KUBECONFIG=/dev/null`), diff base
|
||||
`origin/main @ 20ea70d` → `HEAD @ d29a73c`:
|
||||
|
||||
| Stage | Result |
|
||||
|---|---|
|
||||
| `lint` | green |
|
||||
| `l0` | green — 19 cases, 0 failures, 0 skips |
|
||||
| `render-golden` | green — all 10 onboarded goldens reproduce |
|
||||
| `l1` | green — 3 cases, 0 failures, 0 skips |
|
||||
| `spec-immutability` | **green** (see below) |
|
||||
| `gitea-settings` | **SKIPPED** — `SETTINGS_API_TOKEN` unset |
|
||||
| `conformance` (L2/L3) | **SKIPPED** — `CLUSTER_AVAILABLE != true` |
|
||||
|
||||
**Exit code 3 — UNDETERMINED, not a PASS.** Nothing failed; nothing outside the green rows is
|
||||
certified. Touched requirements `R-DNS-01 R-NET-01 R-PLAT-02 R-STATE-01` remain L2/L3 UNVERIFIED.
|
||||
|
||||
`spec-immutability` — normally *the* tolerated skip — was closed rather than accepted. It had skipped
|
||||
**spuriously**: `dev.sh` resolves the spec repo at `$REPO_ROOT/../home-network-k3s`, which from a
|
||||
*worktree* is the wrong directory; the repo exists beside the **main** checkout. Mounting it read-only
|
||||
through the `ENGINE` shim turned the skip into a real green, so R-TEST-06 is genuinely verified here.
|
||||
Worth folding into the CLAUDE.md §3 worktree workarounds: the documented shim should mount **two**
|
||||
paths, the main `.git` *and* the sibling spec repo.
|
||||
|
||||
CI on `d29a73c`, statuses read by description and not by tick:
|
||||
|
||||
context='gate / gate (pull_request)' status='success' description='Successful in 1m35s'
|
||||
context='gate / conformance (pull_request)' status='success' description='Has been skipped'
|
||||
|
||||
**Neither green means rc 0.** `gate / conformance` is `if: false` in `.gitea/workflows/gate.yml` — it
|
||||
never runs and reports `success` with "Has been skipped", the exact trap CLAUDE.md §2 names. And
|
||||
`gate / gate`, the single required context, runs `./ci/gate.sh || [ "$?" -eq 3 ]` (line 134): **CI
|
||||
tolerates exit 3 by declared design**, so its green means "exited 0 *or* 3". It would report this
|
||||
identical green for the rc 3 above. Enforcement itself was measured directly rather than assumed
|
||||
(§2b): `branches/main` → `protected: true`, `user_can_push: false`, `required_approvals: 1`,
|
||||
`enable_status_check: true`, `status_check_contexts: ['gate / gate (pull_request)']`;
|
||||
`admin/actions/runners` → 1 runner, `incluster-dind`, `online`. **PR #23 is open, unmerged, and I did
|
||||
not merge it.**
|
||||
|
||||
### Operator actions required
|
||||
|
||||
1. **Nothing to do about the transport.** `transport=raknet` is correct, live, and answering. **Do not
|
||||
|
||||
Reference in new issue
Block a user