Files
cc-ci/STATUS-lvl5.md
2026-06-11 11:29:32 +00:00

4.9 KiB
Raw Blame History

STATUS — Phase lvl5 (L5 lint rung + de-cap)

DONE

Phase complete 2026-06-11: M1 PASS (cfc87fd) + M2 PASS (13cad1f), both <24h, no VETO. The 5-rung ladder (L5 = abra recipe lint on the exact tested ref) and the de-capped level semantics (pass/fail/skip/unver; fails AND unverified rungs block, intentional skips climb; no cap/cap_reason anywhere) are live on main @ a521d43 and verified end-to-end (results.json schema 2 → card → dashboard → badge → PR comment, drone path included). Cleanup done: throwaway PR custom-html#4 closed, branch lvl5-lintdemo deleted; WC5 stage-completeness observation filed in machine-docs/DEFERRED.md.

M2 claim — proven in real CI

WHAT: plan-phase-lvl5 §4 M2: P3 matrix complete for ALL 19 enrolled recipes; P4 runs done (genuine L5, lint-blocked L4, N/A-skip climb, drone path ×3, canaries at re-derived designed levels, synthesized unver-blocks run); old artifacts render; durations not inflated; before/after table complete; card/dashboard/badge visually verified.

WHERE: main @ dc924c679b4ae6dd1e21bfe9d231acb28b58ddf8 (implementation merged 08e6cc8 after M1 + PR-path fix 68c3486). Evidence runs (all artifacts at https://ci.commoninternet.net/runs/<n>/{results.json,summary.png,badge.svg,lint.txt}):

run what it proves EXPECTED content
398 hedgedoc cold genuine L5, full clean climb level=5, all 5 rungs pass, schema=2, no cap keys, dur 100s
399 custom-html-tiny cold N/A-skip climb (was L2 @ #205) level=5, backup_restore=skip + declared reason in skips.intentional, dur 45s
405 custom-html PR4 (!testme) lint-blocked L4 + verdict-neutral level=4, lint=fail rules_failed=[R011], drone build status SUCCESS, dur 61s
406 immich PR2 (!testme) drone path L5 on real PR level=5, dur 199s (shot baseline 198-199s — no inflation)
407 plausible PR3 (!testme) drone path L5 on real PR level=5, dur 164s (shot baseline 166s)
413 mumble cold table row (no prior artifact) level=5, dur 80s
415/416 bkp-bad/rst-bad (SRC+REF) canaries at re-derived designed level verdict FAILURE (red), level=1, rungs {install pass, upgrade skip (no version tags on mirror), backup_restore fail, functional unver, lint pass}
host /var/lib/cc-ci-runs/lvl5-unver-demo/results.json synthesized unver-blocks (mission ex. #3) hand-run STAGES=install,upgrade,custom on custom-html: level=2, backup_restore=unver in skips.unintentional, functional+lint pass above it

HOW to verify (cold):

  1. Fresh clone main; cc-ci-run -m pytest tests/unit/ -q → EXPECTED 247 passed (new since M1: test_run_lint_detached_pr_tree_lints_exact_ref — PR-path regression, see fix 68c3486: abra lint checks out the repo's DEFAULT BRANCH, so run_lint forces local main AT the tested ref + repoints origin to the scratch itself; found live in builds 400-402 where the rung correctly degraded to unver/level 4 with run verdicts unaffected). nix develop .#lint --command bash scripts/lint.sh → PASS.
  2. Fetch each run's results.json above and check the EXPECTED column; drone build statuses via API (only 415/416 red — and red by tier failure, not by lint).
  3. Visuals: Read summary.png of 398 (level 5 of 5, lint row PASS, green 5 badge), 399 (backup/restore row "INTENTIONAL SKIP" + reason, level 5), 405 (lint row FAIL red, level 4 of 5, badge #a0b93f); badges are number+colour ONLY.
  4. Old artifacts: /runs/370/{results.json,summary.png} 200 + render (pre-lvl5 schema-1 with cap fields); dashboard / and /recipe/immich 200 with mixed-schema rows; unit history-compat tests (test_card/test_dashboard old-schema cases).
  5. lint.txt served: /runs/398/lint.txt 200 (full abra table; rc/status header).
  6. P3 matrix + §2.9 before/after table: BACKLOG-lvl5.md (19/19 lint pass sweep — re-runnable per the documented scratch method; baseline column from latest artifacts; REAL column from the runs above; canary re-derivation note).
  7. Dashboard runtime is the rolled image cc-ci-dashboard:15addbc7bf45 (reconcile per DECISIONS Phase 3/U2 — no host switch).

Notes for the verdict:

  • The throwaway lint-violation PR (custom-html#4, branch lvl5-lintdemo) is left OPEN and marked do-not-merge so you can re-run !testme independently; Builder will close branch+PR after M2.
  • Level shifts vs baseline are exactly the rule change (table): formerly-capped intentional-N/A recipes climb; nothing else moved.
  • Observation (pre-existing, out of phase scope, noted in JOURNAL): WC5 promote-on-green-cold does not require all stages — the STAGES-filtered green hand-run promoted custom-html's canonical. Filed as a JOURNAL note; flag if you want it as a finding.

(history) M1 claim — implementation complete (pre-merge): PASS @cfc87fd

Branch phase-lvl5 @ 3d8d286 (claim 24baac5); 246 unit tests cold-green, repo lint PASS, mirror-context decision reviewed, verdict-neutral confirmed. Merged to main 08e6cc8.