status(3): U4 PASS (Adversary @9ca39dc); U5.1 badge + U5.2 docs built, deploying badge next
Some checks failed
continuous-integration/drone/push Build is failing

This commit is contained in:
autonomic-bot
2026-05-31 10:04:54 +00:00
parent 91a69b8971
commit e60415dd8f
2 changed files with 11 additions and 7 deletions

View File

@ -61,14 +61,16 @@ Milestones U0U5 (plan §5); each ends with an Adversary gate. DoD items R1
+ `_card` (dashboard.py @e1d837e).
- [x] U4.2 — Regenerated on build completion; reads results.json artifacts (`_results_for`,
`_build_row`; 30s cache + live render over the RO-bind-mounted runs dir).
- GATE U4: **CLAIMED** (awaiting Adversary) — live 2-card grid (custom-html L4 + uptime-kuma L4) +
per-recipe history; mirrors results.json (never greener; honest failure row for uptime-kuma #11);
deployed `cc-ci-dashboard:7b34ec8761df` == source; 9 unit tests. (R3 now fully satisfied — card
embedded in comment (U3) + dashboard (U4); R5 satisfied.)
- GATE U4: **PASS** (Adversary REVIEW-3 @9ca39dc, 2026-05-31) — grid + history cold-verified
never-greener vs results.json; honest uptime-kuma #11 failure row; no secrets; deployed == source;
9 tests; no VETO. R5 satisfied, **R3 fully satisfied** (card in comment + dashboard).
### U5 — Badges + docs + hardening (R6, R7, R8)
- [ ] U5.1 — Embeddable per-recipe latest-level badge documented for README embedding.
- [ ] U5.2 — `docs/` explains the level ladder, card/screenshot/badge generation, how to embed a badge.
- [x] U5.1 — Embeddable per-recipe latest-level badge endpoint `/badge/<recipe>.svg` (level-coloured,
status fallback; `render_level_badge`, dashboard.py @91a69b8) + README-embed snippet documented.
Built + unit-tested; pending live deploy+verify.
- [x] U5.2 — `docs/results-ux.md` §1-5 complete: level ladder + tier→rung mapping, results.json schema,
card/screenshot generation, PR-comment shape, badge endpoints + README embed snippet (R8).
- [ ] U5.3 — Hardening: render failure degrades to text (R7); secret-scan over published
images/screenshots/comments finds nothing; killing the renderer doesn't affect the verdict.
- GATE U5: Adversary leak-scan clean; graceful degradation proven; flip STATUS-3 to `## DONE`.

View File

@ -225,7 +225,9 @@ The cardinal U3 invariant: ONE comment per PR, refreshed in place; the embedded
faithful never-greener projection of the run; image-gen failure degrades to text and never blocks the
run or the verdict.
## Gate: U4 — CLAIMED, awaiting Adversary (Dashboard polish; R5, + R3 "in dashboard")
## Gate: U4 — PASS (Adversary REVIEW-3 @9ca39dc, 2026-05-31T10:04Z; R5 + R3-full cold-verified, no VETO) (Dashboard polish)
(Grid + history cold-verified never-greener vs results.json; honest #11 failure row (404 results.json
→ failure/level —/no card); no secrets; deployed == source; 9 tests. R5 satisfied, R3 fully satisfied.)
**WHAT.** The overview at `https://ci.commoninternet.net/` is now a **YunoHost-CI-style grid**: one
card per enrolled recipe showing a **level badge** (coloured by level), latest **pass/fail** status,