diff --git a/.lane/reports/reconcile-specimen-cta-prs-107-155-2026-08-14.md b/.lane/reports/reconcile-specimen-cta-prs-107-155-2026-08-14.md new file mode 100644 index 00000000..86f6b119 --- /dev/null +++ b/.lane/reports/reconcile-specimen-cta-prs-107-155-2026-08-14.md @@ -0,0 +1,57 @@ +# Lane report: reconcile/specimen-cta-prs-107-155-2026-08-14 + +Date: 2026-08-14 +Lane: tinystudio-io lane 1 +Item: "[unreviewed-by-opus] Reconcile the duplicate specimen-CTA PRs +#107/#155 — byte-identical specimen.html band hunks" + +## What I did + +Investigated the two-PR cluster against live GitHub state and found the +premise had fully decayed — the fix has already landed and the cluster is +already resolved: + +- **#107** (`fix/specimen-conversion-cta`): CLOSED 2026-08-14, never + merged. Its branch went conflict-locked against main; PR #155's + supersession note documents this. +- **#155** (`fix/specimen-conversion-cta-lane1`): **MERGED into main** + 2026-08-13 as commit `b81281f` ("fix(public): add in-content conversion + CTA to the /specimen proof page (#155)"). +- No open PR carries the fix: `gh pr list` shows no specimen-CTA delivery + path in the open set. This differs from the pricing-callout cluster + (#68/#114), where the fix had NOT yet landed and a surviving open PR + (#194) needed to be named. + +Verified the duplicate claim from the item: the two branches' hunks to +`public/specimen.html` are byte-identical. `git diff` of each branch +against its own merge-base (only the diff header/index lines differ, which +is expected since the branches were cut from different main bases; the +content hunks match exactly): + +- #107: `@@ -130,6 +130,13 @@` — adds the `.band` block (h2, copy, + `Request the appraisal`, note). +- #155: `@@ -131,6 +131,13 @@` — the identical block, same 7 added lines + (one-line context shift because main moved between the two cuts). + +Confirmed the survivor is on main and deployed: + +- `git merge-base --is-ancestor b81281f origin/main` → true (origin/main + head `d981610`, 2026-08-14). +- Live `https://tinystudio.io/specimen` serves the `.band`, the CTA + labelled "Request the appraisal", and the `/#start` target (verified by + fetch, 2026-08-14). +- `npm run check` and `npm test` pass on origin/main (head `d981610`), + including the static source guard in `scripts/check-site.mjs` ("Specimen + in-content conversion CTA" block) that fails CI if the band, CTA, note, + or >=44px tap target regress. + +## Actions + +- No GitHub state change was needed: #155 is merged, #107 is already + closed, and no open duplicate delivery path survives. +- Recorded the reconciliation closeout as evidence so the review queue + item can be closed as already resolved. + +## Evidence + +- docs/evidence/specimen-cta-prs-107-155-closeout-2026-08-14.md (this PR) diff --git a/docs/evidence/specimen-cta-prs-107-155-closeout-2026-08-14.md b/docs/evidence/specimen-cta-prs-107-155-closeout-2026-08-14.md new file mode 100644 index 00000000..d35ecef0 --- /dev/null +++ b/docs/evidence/specimen-cta-prs-107-155-closeout-2026-08-14.md @@ -0,0 +1,105 @@ +# Duplicate specimen-CTA PRs #107/#155 — reconciliation closeout (2026-08-14) + +Date: 2026-08-14 +Scope: the review item "[unreviewed-by-opus] Reconcile the duplicate +specimen-CTA PRs #107/#155 — byte-identical specimen.html band hunks". +This receipt records a state verification of the repository's pull requests +plus the reconciliation finding; it is process evidence, not a live-site +measurement. The site-side verification of the fix itself is carried by the +merged fix commit PR #155 and by the repo's standing `npm run check` and +`npm test` suites, re-run on the current head. + +Prior receipts: `docs/evidence/specimen-in-content-cta-rereverify-2026-08-14.md` +(PR #195, merged 2026-08-14) already re-verified the fix content on main +and live; this receipt is the sibling review item's closeout for the PR +cluster itself. + +## The item's premise (from the review queue) + +Two PRs carried the same fix — an in-content conversion CTA band on the +/specimen proof page — with byte-identical `public/specimen.html` band +hunks: PR #107 (`fix/specimen-conversion-cta`) and PR #155 +(`fix/specimen-conversion-cta-lane1`). A reviewer cannot tell which is +canonical from the diff alone; the reconciliation must name the surviving +delivery path and close the stale duplicate. + +## Current GitHub state (2026-08-14, this run) + +The premise has fully decayed: the fix has landed and no duplicate remains +open. + +| PR | head branch | state (2026-08-14) | mergeability | +|---|---|---|---| +| #107 | `fix/specimen-conversion-cta` | CLOSED 2026-08-14T11:06:43Z, never merged | — | +| #155 | `fix/specimen-conversion-cta-lane1` | **MERGED** 2026-08-13T22:09:21Z (`b81281f`) | merged | + +- **#155** is the surviving delivery path and already landed: its fix + commit `b81281f` ("fix(public): add in-content conversion CTA to the + /specimen proof page (#155)") is on `origin/main` + (`git merge-base --is-ancestor b81281f origin/main` → true; head + `d981610`, 2026-08-14). +- **#107** was closed 2026-08-14 without merging. Its branch went + conflict-locked against main; PR #155's supersession note records that + #107 had carried the same change set since 2026-08-11 without landing + and was stale. +- **No open PR carries the specimen-CTA fix.** The open-PR set + (`gh pr list --state open`, 2026-08-14) contains no specimen-CTA + delivery path. + +## The duplicate claim is confirmed: byte-identical specimen.html hunks + +The item says the two PRs carry byte-identical `public/specimen.html` band +hunks. Verified by diffing each branch against its own merge-base with +main, restricted to `public/specimen.html`: + +- PR #107 (`fix/specimen-conversion-cta`): hunk `@@ -130,6 +130,13 @@`, + +7 lines. +- PR #155 (`fix/specimen-conversion-cta-lane1`): hunk `@@ -131,6 +131,13 @@`, + +7 lines. + +The two hunks are byte-identical in content: the `.band` block with the +`