| Artifact ID: | 704de304deb2a1478c4e5f1af38eafa8bf599ced1c1b0fd8ea519664c85cb866 |
|---|---|
| Page Name: | checkin/b3ad657cf8eb9747a1e867a55aead92712f7aed3dc2d13de59aee93d89b88097 |
| Date: | 2026-08-29 01:29:41 |
| Original User: | dmestas |
| Mimetype: | text/x-markdown |
Rung 6: the decision card
The landing page's scattered decision surface — a checks div near the head, merge notes mid-page, verbs in the composer footer — becomes one card, the merge-box shape every reviewer already reads (GitHub's roll-up rows, GitLab's widget stack, Gerrit's chips), in this forge's voice.
Anatomy
Stacked status rows, each icon + headline + muted subline:
- Checks — a roll-up (
All checks have passed — 2 successful checks/1 failing check — name/Waiting for 1 required check — name) that folds when green and opens when something needs attention; expanded rows keep the word-chips, gain right-aligned meta (run 78228d22 · 14 minutes ago) with relative times, and hold the Re-run. - Mergeability —
No conflicts with trunk — accepting writes the merge check-in/ conflict with files + fix steps behind the summary / already-landed / stacked /Mergeability unknown — the store could not be asked, and unknown must not read as clean. - Protection, only when it bites: shield, owners named.
- The verbs: Update from trunk, Accept (primary when go; ghost-dashed when refused, the reason sentence beside it,
Accept anywaycollapsed inline for owners).
The composer footer keeps Comment and Reject — a rejection is a speech act and rides the forum capability; the merge verbs ride i and live with the evidence. Reject/accept never render as siblings, which the old layout implied.
Also
checksSummary computes the roll-up from the same rows the expansion shows, so the sentence and the detail cannot disagree; disabled buttons in the card go ghost (dashed, muted) — a refused verb must not look pressable; the card renders for every reader, verbs gated.