Skip to content

Describe the new case format on the public guides - #252

Merged
Programcode merged 3 commits into
mainfrom
seo/case-format-copy
Oct 28, 2026
Merged

Programcode merged 3 commits into
mainfrom
seo/case-format-copy

Conversation

@Programcode

@Programcode Programcode commented Oct 28, 2026 •

Copy link
Copy Markdown
Owner

Merge after #244 and the ai and export-gdoc Edge Function deploy that follows it. This PR describes the case Generate writes after #244. Until #244 is live, production still writes the old case, and these pages would describe output nobody gets yet.

What changed

The public guides still described the old case: thesis, framework, burden of proof, contentions with warrants and impacts, a predicted opponent case and counters. They now describe the case Generate writes: an opening (a hook, then "Today we will show N arguments that prove…"), arguments (point, explanation, evidence with source and year, why it matters), "If they say… we answer…" replies, a closing line and sources. The case generator page also says how each speaker role shapes the speech, including the conclusor's "why we win" points in place of new arguments.

The copy lives in the generator scripts, and every page here comes from them:

  • scripts/seo_guides.py: guide bodies, feature cards, worked examples, FAQs (they feed the FAQPage JSON-LD) and the definitions (they feed the DefinedTerm).
  • scripts/seo_answers.py: the short answer under each H1.
  • scripts/generate_seo_content.py: meta descriptions and leads in PAGES. llms.txt takes its guide lines from these.

Then python3 scripts/generate_seo_content.py rebuilt the pages. Running it a second time gave a byte-identical diff, so a rebuild reproduces this output.

Pages changed

  • /ai-debate-case-generator: meta and og description, lead, short answer, definition, feature cards, the "what it produces" list, the draft-vs-finished table, the steps, the worked example, the per-format tips, the mistakes list and the FAQ. The LD tip no longer says "each contention links back to the criterion". It now says to put your value and criterion in the Instructions and check that each argument's why it matters ties back to the criterion.
  • /debateowl-vs-chatgpt: the comparison table row, "Structured output", the worked example and "Which should you use?". The short answer no longer says it "predicts the opposing case".
  • /how-to-write-a-debate-case: the steps, the worked example, the checklist and the FAQs now teach the same shape (opening, arguments, If they say…, closing line, sources). The meta and lead changed too. The format-specific notes (PF fits two arguments, LD value and criterion, BP extension, WSDC split) stay.
  • /debate-topics-for-students: "predicted opposing case" replaced.
  • /argument-flowchart: meta (no more "claims, warrants, impacts and weighing"), lead, cards, steps, the example and the FAQ. "Starts with a thesis" is now "starts with a top node for your case's main line". The app still labels that node Thesis, so the node list keeps the name. A new paragraph says what importing a generated case builds: the "we will show" line, one node per argument, "If they say…" claims as attacks and our answers as rebuttals.
  • /ai-debate-coach, /debate-rebuttal-practice, /debate-evidence-finder, /ai-debate-practice: the softer mentions (predicted opponent case, "burdens, clash, weighing" as what the coach covers, "check the warrant", "weak warrants, missing weighing").
  • Same "predicted opponent case" claim, found by the grep: /best-ai-debate-tools, /debateowl-vs-windebate, /debateowl-vs-debateclub, /how-to-practice-rebuttals, /ai-rebuttal-generator.
  • public/llms.txt: the guide lines that come from the meta descriptions above.

Each changed guide's modified date is now 2026-10-28, so its sitemap lastmod, dateModified and "Updated" line move. CONTENT_DATE stays as it is, because no shared copy changed.

Left alone

  • The format guides (/how-to-weigh-in-debate, /lincoln-douglas-debate, /public-forum-debate, /policy-debate). They teach those formats, and their warrants, criteria and weighing are correct there.
  • Pedagogy on other guides, such as "attack the warrant" in rebuttal drills and cross-ex. It teaches debate and makes no claim about what DebateOwl generates. Attack still returns a weighing analysis, so the pages that say so are still right.
  • None of these guides has a Hungarian or Spanish version. Only the home and tools pages are localized, and their descriptions (pageHead in the locales) contain no old-format claims. The in-app labels in src/locales/* belong to Generate writes cases the way school debaters prepare them #244.
  • The case generator page has no WebApplication node. Its JSON-LD is Article, FAQPage, DefinedTerm and BreadcrumbList, and the FAQ and DefinedTerm text is updated. WebApplication appears only on the free tool pages (src/lib/seo/tool-pages.ts), which make no case-format claims.
  • I didn't drop the 48px favicon link. favicon.ico already holds 16, 32 and 48px, so the favicon.png 48x48 link is redundant. Removing it touches all 31 guides, index.html and the embed, so it should go in its own small PR.
  • PAGES in generate_seo_content.py still holds old features and sections for 25 slugs. They never render, because the GUIDES entries override them, so a rebuild can't bring that text back. Deleting them is a separate cleanup.

Checks

  • All 31 application/ld+json blocks in public/*/index.html parse with Python json.loads.

  • Titles, canonicals and hreflang are unchanged. No <title>, rel="canonical", hreflang or og:title line is in the diff, and every canonical equals https://debateowl.com/<slug>. Every meta description is 160 characters or fewer.

  • For leftovers, I searched the visible text and JSON-LD of every page in public/, plus llms.txt, for sentences that pair an old-format term (thesis, framework, burden of proof, contention, warrant, weighing, criterion, predicted or opposing case, counters) with a DebateOwl or Generate claim. What remains is the format guides, pedagogy, competitor facts in the comparison tables and the new LD tip.

  • npm run verify (local, at the head commit; GitHub Actions is billing-blocked, so this is a local pass, not CI):

    Exit 0 at 72ed2f44, Node 22.23.2. docs:check, lint (eslint, knip, repo rules) and typecheck passed. Unit tests: 94 files, 690 tests passed. Collaboration: 5 files, 30 tests passed. Edge tests: 483 passed, 0 failed. Build and prerender passed, and so did test:sw. Playwright @smoke on desktop Chromium: 47 passed.

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Documentation
    • Updated debate guides and tool descriptions to explain generated cases as read-ready drafts with openings, evidence-backed arguments, replies to likely opposing claims, closing lines, and sources.
    • Revised guidance for coaching, rebuttal practice, evidence checking, flowcharts, and case writing to use clearer, more specific language.
    • Updated examples, FAQs, and product comparisons to reflect the revised case structure and speaker-role guidance.

The guides still described the old case: thesis, framework, burden of
proof, contentions with warrants and impacts, and a predicted opponent
case. Generate now writes an opening, arguments (point, explanation,
evidence, why it matters), "If they say… we answer…" replies, a closing
line and sources (#244). The copy changes in seo_guides.py, seo_answers.py
and the PAGES meta in generate_seo_content.py, and the pages and llms.txt
are regenerated from them. The LD, PF, Policy and weighing format guides
are unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Copilot AI balanced review requested due to automatic review settings October 28, 2026 09:25

Copilot AI 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.

Copilot was unable to review this pull request because the user who requested the review has insufficient remaining quota.

@coderabbitai

coderabbitai Bot commented Oct 28, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

Caution

Review failed

The pull request is closed.

Recent review info
Run configuration
Commits

Reviewing files that changed from the base of the PR and between 9868daa and 72ed2f4.

Files selected for processing: 18
  • public/ai-debate-case-generator/index.html
  • public/ai-debate-coach/index.html
  • public/ai-debate-practice/index.html
  • public/ai-rebuttal-generator/index.html
  • public/argument-flowchart/index.html
  • public/best-ai-debate-tools/index.html
  • public/debate-evidence-finder/index.html
  • public/debate-rebuttal-practice/index.html
  • public/debate-topics-for-students/index.html
  • public/debateowl-vs-chatgpt/index.html
  • public/debateowl-vs-debateclub/index.html
  • public/debateowl-vs-windebate/index.html
  • public/how-to-practice-rebuttals/index.html
  • public/how-to-write-a-debate-case/index.html
  • public/llms.txt
  • scripts/generate_seo_content.py
  • scripts/seo_answers.py
  • scripts/seo_guides.py

Included review availability: This review used your included allowance. Your plan provides up to 1 included review per hour; 0 remain after this review.

Walkthrough

The changes revise debate-guide content and SEO descriptions across case generation, case writing, practice, coaching, rebuttal, evidence, and flowchart topics. Product comparisons also adopt the revised case terminology. Modified dates are updated to October 28, 2026.

Changes: Guide content and metadata

Layer / File(s) Summary
Case structure and writing guidance
public/ai-debate-case-generator/index.html, public/how-to-write-a-debate-case/index.html, scripts/seo_guides.py, scripts/seo_answers.py
The guides describe openings, evidence-backed arguments, replies to the other side, closing lines, and sources. They also revise examples, FAQs, format guidance, and speaker-role descriptions.
Related debate workflows
public/ai-debate-*/index.html, public/argument-flowchart/index.html, public/debate-*/index.html, public/how-to-practice-rebuttals/index.html, public/llms.txt, scripts/generate_seo_content.py, scripts/seo_answers.py, scripts/seo_guides.py
Practice, coaching, rebuttal, evidence, and flowchart content adopts the revised case terminology. Related SEO descriptions, guide listings, and modified dates are updated.
Product comparison copy
public/best-ai-debate-tools/index.html, public/debateowl-vs-*/index.html, scripts/seo_answers.py, scripts/seo_guides.py
Comparison pages describe generated cases with “If they say…” replies instead of a predicted opposing case. Comparison content and modified dates are updated.

Estimated code review effort: 3 (Moderate) | ~20 minutes

  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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 Essentials by visiting https://app.coderabbit.ai/settings/billing.

Comment @coderabbitai help to get the list of available commands.

@Programcode
Programcode merged commit a04c156 into main Oct 28, 2026
2 of 9 checks passed
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.

2 participants