fix(public): add in-content conversion CTA to the /specimen proof page - #155
Conversation
The homepage routes its 'Read the specimen' call-out to /specimen, but the page ended at the Confidentiality section with only the nav CTA to convert. A reader who finishes the sample report had no in-content next step. Add a dark .band (house pattern from shared.css, as used on /pricing and /agents) after the report with an explicit .cta link to /#start, a no-guarantees note, and a >=44px tap target. Include .band in the specimen reveal-on-scroll selector, update the locked heading outline (new h2), and guard the CTA shape in check-site.mjs so it cannot silently regress. Supersedes the conflict-locked PR #107 (fix/specimen-conversion-cta), which carried the same change set but has been DIRTY against main since 2026-08-11.
There was a problem hiding this comment.
nish3451 has reached the 50-credit limit for trial accounts. To continue receiving code reviews, upgrade your plan.
|
Note Reviews pausedIt looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (1)
🚧 Files skipped from review as they are similar to previous changes (1)
📝 WalkthroughWalkthroughThe specimen page adds an appraisal CTA band before the footer. CSS styles the CTA, and reveal animation includes the band. Static checks validate the CTA content, styling, and heading hierarchy. ChangesSpecimen appraisal CTA
Estimated code review effort: 2 (Simple) | ~10 minutes Mergeability Score: ⚪ Minimal · up to This PR adds a localized in-content conversion CTA to the specimen page with matching styling, scroll behavior, and regression checks; no actionable merge-blocking risk remains beyond normal checks and review. Possibly related PRs
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
🧹 Nitpick comments (1)
scripts/check-site.mjs (1)
1675-1675: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick winAssert the
.noteelement, not only its text.Line 1675 searches for the sentence anywhere inside
specimenCtaBand[1]. If the text moves into another band child, the check still passes while the.band .notestyling is removed. Match the.noteelement before checking its text.Proposed guard
- if (!/No revenue, ranking, ROAS, conversion, booked-call or sales-volume guarantees\. Only the work\./.test(specimenCtaBand[1])) { + const specimenCtaNote = specimenCtaBand[1].match(/<div class="note">([\s\S]*?)<\/div>/); + if (!specimenCtaNote || !/No revenue, ranking, ROAS, conversion, booked-call or sales-volume guarantees\. Only the work\./.test(specimenCtaNote[1])) {The supplied
public/shared.csscontext defines.band .noteas the styled note element.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@scripts/check-site.mjs` at line 1675, Update the assertion using specimenCtaBand[1] to first require the presence of the .band .note element, then verify that element contains the expected guarantee text. Do not allow matching the sentence elsewhere in the band to satisfy the check.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Nitpick comments:
In `@scripts/check-site.mjs`:
- Line 1675: Update the assertion using specimenCtaBand[1] to first require the
presence of the .band .note element, then verify that element contains the
expected guarantee text. Do not allow matching the sentence elsewhere in the
band to satisfy the check.
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro Plus
Run ID: fdf34a5d-a6e7-4e33-81a1-07003dd60ed7
📒 Files selected for processing (5)
public/specimen.csspublic/specimen.htmlpublic/specimen.jsscripts/check-site.mjsscripts/test-heading-hierarchy.mjs
There was a problem hiding this comment.
nish3451 has reached the 50-credit limit for trial accounts. To continue receiving code reviews, upgrade your plan.
There was a problem hiding this comment.
nish3451 has reached the 50-credit limit for trial accounts. To continue receiving code reviews, upgrade your plan.
There was a problem hiding this comment.
nish3451 has reached the 50-credit limit for trial accounts. To continue receiving code reviews, upgrade your plan.
There was a problem hiding this comment.
nish3451 has reached the 50-credit limit for trial accounts. To continue receiving code reviews, upgrade your plan.
There was a problem hiding this comment.
nish3451 has reached the 50-credit limit for trial accounts. To continue receiving code reviews, upgrade your plan.
There was a problem hiding this comment.
nish3451 has reached the 50-credit limit for trial accounts. To continue receiving code reviews, upgrade your plan.
There was a problem hiding this comment.
Your trial has ended. Reactivate Greptile to resume code reviews.
There was a problem hiding this comment.
Your trial has ended. Reactivate Greptile to resume code reviews.
There was a problem hiding this comment.
Your trial has ended. Reactivate Greptile to resume code reviews.
There was a problem hiding this comment.
Your trial has ended. Reactivate Greptile to resume code reviews.
There was a problem hiding this comment.
Your trial has ended. Reactivate Greptile to resume code reviews.
There was a problem hiding this comment.
Your trial has ended. Reactivate Greptile to resume code reviews.
There was a problem hiding this comment.
Your trial has ended. Reactivate Greptile to resume code reviews.
There was a problem hiding this comment.
Your trial has ended. Reactivate Greptile to resume code reviews.
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
There was a problem hiding this comment.
Your trial has ended. Reactivate Greptile to resume code reviews.
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
There was a problem hiding this comment.
Your trial has ended. Reactivate Greptile to resume code reviews.
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
There was a problem hiding this comment.
Your trial has ended. Reactivate Greptile to resume code reviews.
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
There was a problem hiding this comment.
Your trial has ended. Reactivate Greptile to resume code reviews.
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
There was a problem hiding this comment.
Your trial has ended. Reactivate Greptile to resume code reviews.
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
There was a problem hiding this comment.
Your trial has ended. Reactivate Greptile to resume code reviews.
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
…nt main and live (2026-08-14) (#195) The review item "[unreviewed-by-opus] The /specimen proof page contains no in-content conversion CTA" is already fixed: PR #155 (b81281f) landed the .band conversion CTA on /specimen on 2026-08-14, superseding the conflict-locked PR #107. This receipt re-verifies the fix against current origin/main (2088b6b) and the live deployment (release 5c6521a): the band CTA to /#start is on source, guarded by check-site.mjs, served live, and covered by the passing test suite. No code change was needed. Co-authored-by: nish3451 <nish3451@users.noreply.github.com> Co-authored-by: CommandCodeBot <noreply@commandcode.ai>
… on current state (#203) #107 closed 2026-08-14 (stale duplicate, conflict-locked since 2026-08-11); #155 merged 2026-08-13 as b81281f and is on current main and live. The specimen.html band hunks are byte-identical as the item states, and no open PR carries the fix — the cluster is fully resolved. Co-authored-by: nish3451 <nish3451@users.noreply.github.com> Co-authored-by: CommandCodeBot <noreply@commandcode.ai>
…current main and live (2026-08-20, lane 1) (#273) Review item 94ec723c9e ([unreviewed-by-opus] The /specimen proof page contains no in-content conversion CTA) is already resolved: PR #155 (b81281f) added the .band CTA on 2026-08-13 and it is intact on current main (92d55c3) and live. Close the item out with a fresh re-verification receipt so it cannot be re-opened by tracker drift. Co-authored-by: minimax-vps <minimax-vps@local> Co-authored-by: CommandCodeBot <noreply@commandcode.ai>
Finding
[unreviewed-by-grok] The /specimen proof page contains no in-content conversion CTA — the page the homepage routes its "Read the specimen" call-out to (
public/index.htmlline 249).Fix
The reader who finishes the sample report previously ended at the Confidentiality section with only the nav CTA to convert. This adds an in-content conversion step right where the report ends:
.bandblock after the report with an explicit.ctalink to/#start(same request surface as the nav CTA), a no-guarantees note, and the house copy voice./#starttarget, the no-guarantees note, and the tap-target padding cannot silently regress.[1, 2, 2, 2, 2, 3, 2, 2].Supersession note
PR #107 (
fix/specimen-conversion-cta) carried the identical change set but has beenCONFLICTING/DIRTY against main since 2026-08-11 and is stale. This branch is cut fresh from current origin/main and carries the same fix cleanly — it is the superior delivery path for this finding; #107 can be closed.Validation
npm run check✓ ·test:headings6/6 ✓ ·test:sitemap7/7 ✓ ·test:contract8/8 ✓ ·test:worker55/55 ✓ ·test:ui16/16 ✓Summary by CodeRabbit