fix(ops): stop operator copy from doubling the article before offerName - #144
fix(ops): stop operator copy from doubling the article before offerName#144nish3451 wants to merge 38 commits into
Conversation
offerName is the canonical "The Website Correction", so five operator copy templates rendered "the The Website Correction" (or "The The Website Correction") in generated kickoffs, loom scripts, sharpness briefs, sales call closes, and follow-up messages. Drop the redundant article at each interpolation site and add a product-truth guard that fails any active operator copy source interpolating the offer name directly after "the". Co-authored-by: CommandCodeBot <noreply@commandcode.ai>
Co-authored-by: CommandCodeBot <noreply@commandcode.ai>
|
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.
|
Warning Review limit reached
Next review available in: 7 minutes Limit details: You’ve used the included review currently available. Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits within each organization. For paid Pro and Pro+ reviews, CodeRabbit uses a developer's included PR review attempts over the past 7 days to set the current hourly allowance. At typical activity levels, the full plan allowance applies. Higher sustained activity can lower the allowance until earlier attempts leave the 7-day window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Free Run ID: 📒 Files selected for processing (7)
Note 🎁 Summarized by CodeRabbit FreeYour organization is on the Free plan. CodeRabbit will generate a high-level summary and a walkthrough for each pull request. For a comprehensive line-by-line review, please upgrade your subscription to CodeRabbit Pro by visiting https://app.coderabbit.ai/login. Comment |
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.
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.
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.
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.
|
Duplicate/superseded — closing in favour of #178. Identical title and change; keeping the newer one. (nothing-sits sweep 2026-08-19) |
Problem
Operator copy interpolates the canonical offerName "The Website Correction" directly after the word "the", producing ungrammatical doubled-article text in generated client-facing and operator-facing artifacts:
Fix
Drop the redundant article at all five interpolation sites, keeping the copy grammatical when
offerNameis "The Website Correction" (and still grammatical for any future offerName):scripts/draft-client-kickoff.mjs— "Thanks for approving ${config.offerName}..."scripts/draft-loom-recording-script.mjs— "...positions ${config.offerName} as the obvious next step."scripts/draft-recording-sharpness-brief.mjs— "CTA: Offer ${config.offerName} at..."scripts/draft-sales-call-prep.mjs— "${FOUNDER_PILOT.offerName} is exactly a..."scripts/draft-prospect-message.mjs— "the exact one-page scope for ${config.offerName}."Plus a regression guard in
scripts/check-product-truth.mjs(already part ofnpm run civiacheck-product-truth) that fails if any active operator copy source interpolates the offer name directly after "the", so this class of bug cannot silently return.Verification
node scripts/check-product-truth.mjs— passed with the new guard activenode scripts/test-active-operator-surfaces.mjs— passednode scripts/test-sales-intake-contract.mjs— passednode scripts/test-validated-service-client.mjs— passednode scripts/test-client-readiness-contract.mjs— passednode scripts/test-service-engine.mjs— passednode scripts/test-active-offer-projection.mjs— passednode scripts/check-agency-defaults.mjs— passednode --checkon all six changed files — passedNotes
This issue has two prior unattached attempts on
fix/operator-copy-offername-articleandfix/operator-copy-offer-articlethat were never merged; this branch is cut fresh from currentorigin/main(497d690) and includes the fifth site (prospect follow-up) plus the CI guard.