Skip to content

fix(ops): stop operator copy from doubling the article before offerName - #178

Merged
nish3451 merged 19 commits into
mainfrom
fix/operator-copy-offername-article-lane1-20260815
Aug 19, 2026
Merged

fix(ops): stop operator copy from doubling the article before offerName#178
nish3451 merged 19 commits into
mainfrom
fix/operator-copy-offername-article-lane1-20260815

Conversation

@nish3451

@nish3451 nish3451 commented Aug 15, 2026

Copy link
Copy Markdown
Collaborator

What

The canonical offer name "The Website Correction" already starts with "The". Five operator copy sites interpolated offerName directly after an article, producing doubled-article text in operator-facing output:

  • scripts/draft-client-kickoff.mjs — "Thanks for approving the ${config.offerName}..."
  • scripts/draft-loom-recording-script.mjs — "...positions the ${config.offerName} as the obvious next step."
  • scripts/draft-recording-sharpness-brief.mjs — "CTA: Offer the ${config.offerName} at..."
  • scripts/draft-sales-call-prep.mjs — "The ${FOUNDER_PILOT.offerName} is exactly a..."
  • scripts/draft-prospect-message.mjs — "...the exact one-page ${config.offerName} scope."

Fix

Dropped the redundant article at all five sites and added a regression guard in scripts/check-product-truth.mjs (part of npm run ci) that fails any active operator copy source interpolating the offer name directly after "the".

Verification

  • node --check on all changed files
  • node scripts/check-product-truth.mjs exit 0 (guard active)
  • Mutation test: reintroducing the bug makes the truth gate exit 1
  • Full npm test exit 0
  • git diff --check clean

Related: #144 (identical unmerged prior attempt — this lands the same fix fresh on current main).

Summary by CodeRabbit

  • Bug Fixes
    • Corrected generated sales and marketing copy to prevent duplicated articles before offer names.
    • Updated kickoff, follow-up, recording, slide, and sales-call messaging for more natural wording.
  • Validation
    • Added automated checks to detect potential doubled-article output in generated copy.
    • Verified syntax, content validation, mutation, tests, and change checks successfully.

The canonical offer name "The Website Correction" already starts with "The".
Five operator copy sites interpolated it directly after an article,
producing doubled-article text ("the The Website Correction", "The The
Website Correction") in kickoff, loom script, sharpness brief, sales-call
prep, and prospect follow-up output.

Drop the redundant article at those sites and add a check-product-truth
guard that fails any active operator copy source interpolating offerName
directly after "the".

Co-authored-by: CommandCodeBot <noreply@commandcode.ai>
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Your trial has ended. Reactivate Greptile to resume code reviews.

@coderabbitai

coderabbitai Bot commented Aug 15, 2026

Copy link
Copy Markdown

Review Change Stack

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Free

Run ID: cdc02444-0c98-4292-83cf-19e15f722ae0

📥 Commits

Reviewing files that changed from the base of the PR and between 4b8e240 and 3136264.

📒 Files selected for processing (7)
  • .lane/reports/fix-operator-copy-offername-article-lane1-20260815.md
  • scripts/check-product-truth.mjs
  • scripts/draft-client-kickoff.mjs
  • scripts/draft-loom-recording-script.mjs
  • scripts/draft-prospect-message.mjs
  • scripts/draft-recording-sharpness-brief.mjs
  • scripts/draft-sales-call-prep.mjs

📝 Walkthrough

Walkthrough

The change corrects doubled-article wording in five generated offer-copy scripts. It also adds a check-product-truth validation pass and documents the affected scripts and verification results.

Changes

Offer name copy

Layer / File(s) Summary
Generated copy updates
scripts/draft-client-kickoff.mjs, scripts/draft-loom-recording-script.mjs, scripts/draft-prospect-message.mjs, scripts/draft-recording-sharpness-brief.mjs, scripts/draft-sales-call-prep.mjs
The scripts now generate corrected offer-name wording without redundant articles or possessive phrasing.
Regression validation
scripts/check-product-truth.mjs, .lane/reports/fix-operator-copy-offername-article-lane1-20260815.md
check-product-truth detects offer names interpolated directly after “the”. The Lane 1 report records the affected scripts and verification results.

Estimated code review effort: 2 (Simple) | ~10 minutes

Merge Risk: ⚪ Minimal · up to 31362

This localized change removes duplicated article text from operator-facing copy and adds a guard against recurrence; no actionable merge-blocking risk remains.


Note

🎁 Summarized by CodeRabbit Free

Your 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 @coderabbitai help to get the list of available commands.

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Your trial has ended. Reactivate Greptile to resume code reviews.

nish3451 added a commit that referenced this pull request Aug 15, 2026
… — source fixed in PR #143, live blocked on missing Cloudflare token (#178) (#177)

Co-authored-by: nish3451 <noreply@github.com>

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Your trial has ended. Reactivate Greptile to resume code reviews.

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Your trial has ended. Reactivate Greptile to resume code reviews.

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Your trial has ended. Reactivate Greptile to resume code reviews.

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Your trial has ended. Reactivate Greptile to resume code reviews.

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Your trial has ended. Reactivate Greptile to resume code reviews.

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Your trial has ended. Reactivate Greptile to resume code reviews.

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Your trial has ended. Reactivate Greptile to resume code reviews.

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Your trial has ended. Reactivate Greptile to resume code reviews.

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Your trial has ended. Reactivate Greptile to resume code reviews.

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Your trial has ended. Reactivate Greptile to resume code reviews.

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Your trial has ended. Reactivate Greptile to resume code reviews.

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Your trial has ended. Reactivate Greptile to resume code reviews.

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Your trial has ended. Reactivate Greptile to resume code reviews.

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Your trial has ended. Reactivate Greptile to resume code reviews.

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Your trial has ended. Reactivate Greptile to resume code reviews.

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Your trial has ended. Reactivate Greptile to resume code reviews.

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Your trial has ended. Reactivate Greptile to resume code reviews.

@nish3451
nish3451 merged commit 527f961 into main Aug 19, 2026
2 checks passed
nish3451 added a commit that referenced this pull request Aug 21, 2026
…main by PR #80 (duplicate guard) (#234)

The duplicate-PR guard (PR #80, merged 2026-08-19) is now live on main,
preventing the same-fix duplication pattern at the CI level. The named
duplicate pairs (#36/#44, #39/#49, #40/#52) are functionally superseded:
their underlying fixes are on main via PRs #135, #145, and #178. The
prior 2026-08-15 lane run had concluded the guard existed but was stuck
unmerged; on 2026-08-19 it landed and the item is resolved at the
root-cause level.

Verification-only run (no product or test files touched):
- PR #80 source commit 2091c7a and merge commit 0a9909b are ancestors of origin/main
- scripts/test-pr-duplicates.mjs → 'test-pr-duplicates: ok' (exit 0)
- Superseding PRs #135 (d4f3ef4), #145 (fc44b42), #178 (77f6922) all on main
- Guard workflow runs on pull_request events; not a required status, so existing work never blocks

Co-authored-by: minimax-vps <minimax-vps@nish3451.dev>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant