From 695f0dacd421267943a0db6bc370bc70058f019e Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Thu, 29 Oct 2026 10:10:48 +0000 Subject: [PATCH 1/2] Add a /best-ai-for-debate comparison for the AI Overview query. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The page answers which AI fits each debate goal, with a dated table and FAQ, ItemList and BreadcrumbList schema, and links from the existing guides. Competitor facts stay inside the October 2026 list, and the leftover framework wording is gone from the tools and practice guides. Co-authored-by: Gáborjáni-Szabó Ádám --- docs/operations.md | 4 +- public/ai-debate-practice/index.html | 11 +- public/best-ai-debate-tools/index.html | 12 +- public/best-ai-for-debate/index.html | 57 +++++++ public/debateowl-pricing/index.html | 9 +- public/debateowl-vs-chatgpt/index.html | 9 +- public/debateowl-vs-debateclub/index.html | 9 +- public/debateowl-vs-windebate/index.html | 9 +- public/fonts/fredoka-latin-wght-normal.woff2 | Bin 0 -> 29732 bytes public/fonts/nunito-latin-wght-normal.woff2 | Bin 0 -> 39128 bytes public/llms.txt | 5 + public/seo-pages.css | 12 ++ scripts/check-site.mjs | 18 ++- scripts/generate_seo_content.py | 151 ++++++++++++++++++- scripts/seo_guides.py | 107 ++++++++++++- src/components/landing/Footer.tsx | 3 + src/components/landing/GuideHub.tsx | 2 +- src/components/landing/ShortAnswer.tsx | 4 + src/lib/seo/tool-pages.ts | 2 +- src/locales/en.json | 2 + src/locales/es.json | 2 + src/locales/hu.json | 2 + src/pages/tools/ToolsHubPage.tsx | 1 + src/test/seo/best-ai-for-debate.test.ts | 76 ++++++++++ vercel.json | 9 ++ 25 files changed, 468 insertions(+), 48 deletions(-) create mode 100644 public/best-ai-for-debate/index.html create mode 100644 public/fonts/fredoka-latin-wght-normal.woff2 create mode 100644 public/fonts/nunito-latin-wght-normal.woff2 create mode 100644 src/test/seo/best-ai-for-debate.test.ts diff --git a/docs/operations.md b/docs/operations.md index 54c73905..602790f1 100644 --- a/docs/operations.md +++ b/docs/operations.md @@ -47,7 +47,7 @@ Vercel builds and serves the frontend from the Git repository. A push to `main` - 301 redirects from the retired brand pages (`/debatelab`, `/debatelab-by-programcode`, and the rest) to `/`; - 301 redirects from the renamed comparison and pricing pages (`/debatelab-pricing`, `/debatelab-vs-chatgpt`, `/debatelab-vs-debateclub`, `/debatelab-vs-windebate`, also under `/hu/` or `/es/` and with a trailing slash) to their `/debateowl-*` pages in one hop, query kept; - 301 redirects from retired guide slugs to the guide that replaced them, such as `/debate-weighing-guide` to `/how-to-weigh-in-debate`. The `trailingSlash` 308 runs first, so `/debate-weighing-guide/` reaches the same page in two permanent hops and needs no rule of its own; -- revalidating cache headers (`public, max-age=0, must-revalidate`, without `no-store`, so a document can enter the back/forward cache) for `/`, `index.html`, `app-shell.html`, and `theme-init.js`. `sw.js` stays `no-store` so a new service worker is not stuck in the HTTP cache. Hashed `/assets/` are immutable. The unhashed images in `public/` (the favicons, `apple-touch-icon.png`, the `icon-*.png` manifest icons, `hero-visual.jpg`, `placeholder.svg`) are cached for 30 days; the test reads `public/`, so a new icon file must be added to that rule. Jam's capture iframe is removed on `pagehide` (never via `unload`) so that cross-origin frame cannot veto the cache; +- revalidating cache headers (`public, max-age=0, must-revalidate`, without `no-store`, so a document can enter the back/forward cache) for `/`, `index.html`, `app-shell.html`, and `theme-init.js`. `sw.js` stays `no-store` so a new service worker is not stuck in the HTTP cache. Hashed `/assets/` are immutable. The unhashed images in `public/` (the favicons, `apple-touch-icon.png`, the `icon-*.png` manifest icons, `hero-visual.jpg`, `placeholder.svg`) are cached for 30 days; the test reads `public/`, so a new icon file must be added to that rule. The Latin Fredoka and Nunito files in `public/fonts/` are cached for a year. Jam's capture iframe is removed on `pagehide` (never via `unload`) so that cross-origin frame cannot veto the cache; - `noindex` headers for `/app`, `/login`, `/share` and `/embed/debate-timer`. The app shell's robots meta is `noindex, nofollow`, the same policy. Public pages, including the prerendered `/expocit/sources`, are `index, follow`. A route deletes the platform `Access-Control-Allow-Origin: *` header on HTML responses and leaves it on static assets; - Content Security Policy and the other response security headers, including the `Permissions-Policy` that allows the microphone for the app's own origin only. Jam is limited to `https://js.jam.dev` and `https://recorder.jam.dev`; `script-src` does not include `unsafe-eval`. Web Analytics and Speed Insights stay on this origin (`/_vercel/insights` and `/_vercel/speed-insights`), which `'self'` already allows. Every path except `/embed/debate-timer` refuses to be framed (`X-Frame-Options: DENY` and `frame-ancestors 'none'`). `/embed/debate-timer` allows any site to frame it and gets its own CSP, which permits only same-origin scripts and requests. The two rules use complementary sources (`/((?!embed/debate-timer$).*)` and `/embed/debate-timer`) so no path gets both, a new embed needs its path added to both, and `src/test/vercel-deployment-config.test.ts` fails if two matching rules ever set the same header. @@ -61,7 +61,7 @@ The landing page and the free tools also exist in Hungarian and Spanish, each at [`scripts/sitemap.mjs`](../scripts/sitemap.mjs) then writes `dist/sitemap.xml` from every page in `dist/` that names itself as canonical and is not `noindex`. A page with `hreflang` links in its head is listed with the same alternates as `xhtml:link` entries. Each `` is the `dateModified` the page declares in its JSON-LD: the guide pages' `CONTENT_DATE` in [`scripts/generate_seo_content.py`](../scripts/generate_seo_content.py), the legal pages' "last updated" dates, the tool pages' `TOOL_PAGES_MODIFIED`, and the landing page's last source commit. A page without a date is listed without ``. -[`scripts/check-site.mjs`](../scripts/check-site.mjs) runs next and fails the build when an internal link, a `#fragment`, a sitemap URL or an `llms.txt` URL does not resolve (it applies the `vercel.json` redirects and rewrites), when JSON-LD does not parse or carries HTML entities, when a FAQPage question is not visible on its page, when the home page's entity graph has an unresolved `@id`, a `WebSite` or `SoftwareApplication` not named for the product, or no `Organization.sameAs`, when a page's `publisher` or `about` names an `@id` the home page does not define, when an indexed page other than `/terms`, `/privacy`, and `/expocit/sources` lacks its question H2 (`#short-answer`) as the first H2, when a page's first heading is not its H1 or a heading skips a level (H1 to H3), when an image has no alt text, a button has no name or a form field has no label, or when a page's `hreflang` links do not resolve, leave out the page itself or `x-default`, disagree with ``, or differ from the set on a page they name. +[`scripts/check-site.mjs`](../scripts/check-site.mjs) runs next and fails the build when an internal link, a `#fragment`, a sitemap URL or an `llms.txt` URL does not resolve (it applies the `vercel.json` redirects and rewrites), when JSON-LD does not parse or carries HTML entities, when a FAQPage question is not visible on its page, when the home page's entity graph has an unresolved `@id`, a `WebSite` or `SoftwareApplication` not named for the product, or no `Organization.sameAs`, when a page's `publisher` or `about` names an `@id` the home page does not define, when an indexed page other than `/terms`, `/privacy`, and `/expocit/sources` lacks its question H2 (`#short-answer`) as the first H2 (a page whose H1 is already that question may instead put the answer in a `#short-answer` paragraph before the first H2), when a page's first heading is not its H1 or a heading skips a level (H1 to H3), when an image has no alt text, a button has no name or a form field has no label, or when a page's `hreflang` links do not resolve, leave out the page itself or `x-default`, disagree with ``, or differ from the set on a page they name. [`scripts/check-links.mjs`](../scripts/check-links.mjs) runs after it and fails the build when a sitemap page other than `/terms`, `/privacy` and `/expocit/sources` has fewer than 3 inbound links from other sitemap pages, or when the home page links to fewer than 15 distinct sitemap pages. `node scripts/check-links.mjs --report` prints every count after a build. The home page reaches the guides and tools through [`GuideHub.tsx`](../src/components/landing/GuideHub.tsx). diff --git a/public/ai-debate-practice/index.html b/public/ai-debate-practice/index.html index 1a307cb9..293e6637 100644 --- a/public/ai-debate-practice/index.html +++ b/public/ai-debate-practice/index.html @@ -23,14 +23,14 @@ - + - +
@@ -39,15 +39,16 @@
-
DebateOwl guide

AI Debate Practice for Stronger Cases, Rebuttals, and Speeches

Use a focused debate workspace for cases, rebuttals, sources, flowcharts, coaching, and timed practice.

Published · Updated

By the DebateOwl team

+
DebateOwl guide

AI Debate Practice for Stronger Cases, Rebuttals, and Speeches

Use a focused debate workspace for cases, rebuttals, sources, flowcharts, coaching, and timed practice.

Published · Updated

By the DebateOwl team

Can practising debate against an AI actually make you better?

Yes, if it shortens the loop of giving a speech, finding what failed, fixing one thing and giving it again. A useful session needs a motion, a side, real speech times, an opponent that responds to what you said and a verdict that names why you won or lost. DebateOwl's Sparring runs School 4-6-6-3, Lincoln-Douglas and Public Forum rounds this way. AI practice adds repetitions between team practices but does not replace them: judge adaptation, delivery under pressure and strategic judgement still develop fastest with a coach and real rounds.

Practice against AI opponents

Run a full Sparring round in School 4-6-6-3, Lincoln-Douglas or Public Forum, type or speak each speech, and finish with a judged verdict.

Turn feedback into drills

Take the weakest point from a verdict or a Crossfire debrief, rebuild it with Attack or Ask, and run that speech again.

Keep private prep out of search

Cases, sources, rounds and history stay inside your Current Debate behind sign-in. Only these public guides are indexed.

-

What a useful AI practice session looks like

Most debaters improve through repetitions with feedback: give a speech, find out what failed, fix one thing, give it again. AI practice is valuable when it shortens that loop, not when it hands you a finished speech to read.

A chat window can produce arguments on request, but it does not hold a round together. It forgets which side you are on, does not time you, and rarely tells you which of your points the judge would have dropped. Practice needs a motion, a side, a format with real speech times, an opponent that responds to what you actually said, and a verdict that names the reason you lost or won.

DebateOwl is built around that loop. You start a Current Debate for one motion, and every case, source, round and debrief you create stays filed under it. That means the AI opponent in your third practice round argues the same motion you wrote your case for, and your History shows how the debate developed across sessions.

A 45-minute practice session, step by step

This plan fits a weeknight. It assumes you have a motion but no case yet.

  1. Start a Current Debate with the motion written exactly as it will be announced (2 minutes). Add any articles or notes you already trust to the Library so later answers are grounded in them.
  2. Run Brainstorm on the motion and pick the two or three angles you can explain in one sentence each (5 minutes). Discard angles that need evidence you do not have.
  3. Generate a case for your side (10 minutes). Read its "If they say…" answers before your own arguments: they tell you what you will have to answer.
  4. Run a Sparring round in your format (15 minutes). Give every speech in full, at time, without pausing to edit. Voice mode lets you speak instead of type.
  5. Read the verdict and write down the single reason it gives for the decision (3 minutes).
  6. Rebuild only that part (5 minutes): ask Attack to stress-test the rewritten argument, or regenerate the one case section that failed.
  7. Give the rebuilt speech again against the timer (5 minutes). Compare it with the first attempt.

The discipline is in step six. Fixing one problem per session sticks; rewriting the whole case after every round mostly produces new problems.

Worked example: one practice round

Motion: This house would ban smartphones in secondary schools

Side and format: Proposition, run as a School 4-6-6-3 Sparring round.

First argument: Phones fragment attention in class, and attention is the input every other kind of learning depends on.

AI opponent's response: Schools already confiscate phones during lessons, so a ban changes only break times, where the harm you described does not happen.

What the verdict flagged: Proposition never explained what a ban adds over existing classroom rules, so the opposition's mitigation stood unanswered.

The drill: Ask Attack to find the gap in the argument, then rewrite it around breaks: social exclusion, cyberbullying during the school day, and the cost of teachers enforcing rules lesson by lesson.

Second attempt: The R1 speech now opens with the comparison: classroom rules depend on every teacher enforcing them every hour, while a ban sets one rule at the school gate. The opponent's mitigation becomes a point in your favour.

The example shows the pattern to look for. The first version was not wrong; it was incomplete in a way only a responsive opponent exposes. That is the gap AI practice fills between team practices.

Format-specific practice tips

World Schools (WSDC)

WSDC rounds reward a consistent team line, so practise as a team even when you use AI. Agree the line in one sentence, then have each speaker run their own section against the AI and check that the line survives. Points of Information matter in every substantive speech: use Crossfire with the AI asking the questions to rehearse taking a POI, answering in under fifteen seconds, and returning to your structure. Sparring does not run a WSDC round, so time the eight-minute substantives and four-minute reply yourself.

British Parliamentary (BP)

In BP, two teams on each bench compete with each other as well as with the other side. Practise both halves. For opening, generate a case with the Current Debate's format set to British Parliamentary and drill a clear definition and model in the first two minutes. For closing, take an opening case you have already generated and practise finding an extension it does not contain, then deliver it in seven minutes without repeating opening material.

Public Forum (PF)

Sparring runs Public Forum with four-minute constructives and rebuttals, three-minute summaries and two-minute final focuses. Use the round to practise the hardest skill in PF: keeping summary and final focus consistent. Before each summary, write the two issues you will collapse on, and check after the round whether your final focus extended exactly those issues and nothing new.

Lincoln-Douglas (LD)

The Lincoln-Douglas round follows the standard times: six-minute affirmative constructive, seven-minute negative constructive, four-minute first affirmative rebuttal, six-minute negative rebuttal and three-minute second affirmative rebuttal. The 1AR is where most affirmatives lose. Run it repeatedly against the same negative constructive and group similar responses and use the same test for how the judge should decide (your framework) across several arguments. That helps four minutes cover seven.

How to tell whether practice is working

Keep a short log for each session on paper or in a document. Track the same four things every time:

  • Arguments you dropped: anything the opponent said that you never answered. This number should fall first.
  • Time use: whether you finished each speech within ten seconds of the limit without rushing the last point.
  • Weighing: whether your final speech compared impacts explicitly, or just repeated them.
  • Verdict reasons: whether the judge's reason for the decision changes from session to session, or keeps naming the same weakness.

If the same verdict reason appears three sessions in a row, stop running full rounds and drill that one skill in isolation until it changes.

AI vs traditional prep

AI and traditional preparation are good at different parts of the work. AI is fast at structure; reading, coaching and real rounds are where judgement comes from. Most strong debaters use both and give each the tasks it does well.

TaskAI does it wellTraditional prep does it better
First case outlineDrafts an opening, arguments with evidence and "If they say…" answers in minutesChoosing which outline fits your team and your circuit
Rebuttal blocksLists likely arguments and first-draft answersTesting answers against opponents you have actually met
ResearchSuggests evidence leads and search directionsReading the original source, checking dates and context
Practice roundsA responsive opponent at any hour, at real speech timesUnpredictable opponents, panels and live crossfire
FeedbackA consistent verdict that names a reasonA coach who knows your habits and the judges you will face

A simple split works for most teams: use AI to get from a blank page to a first draft and for extra practice volume, then spend coaching time and team practice on strategy, delivery and the arguments the AI draft got wrong. Never read AI-suggested evidence in round until you have opened the original source yourself.

Where AI practice stops being enough

An AI opponent is consistent and always available, which is exactly what makes it a good training partner and a limited judge. It will not reproduce the judge who dislikes speed, the panel that splits, or the opponent who asks a question you never anticipated. Use AI rounds for volume between real practices, and save team practices and coached rounds for adaptation, delivery and the feedback only an experienced person can give.

+

What a useful AI practice session looks like

Most debaters improve through repetitions with feedback: give a speech, find out what failed, fix one thing, give it again. AI practice is valuable when it shortens that loop, not when it hands you a finished speech to read.

A chat window can produce arguments on request, but it does not hold a round together. It forgets which side you are on, does not time you, and rarely tells you which of your points the judge would have dropped. Practice needs a motion, a side, a format with real speech times, an opponent that responds to what you actually said, and a verdict that names the reason you lost or won.

DebateOwl is built around that loop. You start a Current Debate for one motion, and every case, source, round and debrief you create stays filed under it. That means the AI opponent in your third practice round argues the same motion you wrote your case for, and your History shows how the debate developed across sessions.

A 45-minute practice session, step by step

This plan fits a weeknight. It assumes you have a motion but no case yet.

  1. Start a Current Debate with the motion written exactly as it will be announced (2 minutes). Add any articles or notes you already trust to the Library so later answers are grounded in them.
  2. Run Brainstorm on the motion and pick the two or three angles you can explain in one sentence each (5 minutes). Discard angles that need evidence you do not have.
  3. Generate a case for your side (10 minutes). Read its "If they say…" answers before your own arguments: they tell you what you will have to answer.
  4. Run a Sparring round in your format (15 minutes). Give every speech in full, at time, without pausing to edit. Voice mode lets you speak instead of type.
  5. Read the verdict and write down the single reason it gives for the decision (3 minutes).
  6. Rebuild only that part (5 minutes): ask Attack to stress-test the rewritten argument, or regenerate the one case section that failed.
  7. Give the rebuilt speech again against the timer (5 minutes). Compare it with the first attempt.

The discipline is in step six. Fixing one problem per session sticks; rewriting the whole case after every round mostly produces new problems.

Worked example: one practice round

Motion: This house would ban smartphones in secondary schools

Side and format: Proposition, run as a School 4-6-6-3 Sparring round.

First argument: Phones fragment attention in class, and attention is the input every other kind of learning depends on.

AI opponent's response: Schools already confiscate phones during lessons, so a ban changes only break times, where the harm you described does not happen.

What the verdict flagged: Proposition never explained what a ban adds over existing classroom rules, so the opposition's mitigation stood unanswered.

The drill: Ask Attack to find the gap in the argument, then rewrite it around breaks: social exclusion, cyberbullying during the school day, and the cost of teachers enforcing rules lesson by lesson.

Second attempt: The R1 speech now opens with the comparison: classroom rules depend on every teacher enforcing them every hour, while a ban sets one rule at the school gate. The opponent's mitigation becomes a point in your favour.

The example shows the pattern to look for. The first version was not wrong; it was incomplete in a way only a responsive opponent exposes. That is the gap AI practice fills between team practices.

Format-specific practice tips

World Schools (WSDC)

WSDC rounds reward a consistent team line, so practise as a team even when you use AI. Agree the line in one sentence, then have each speaker run their own section against the AI and check that the line survives. Points of Information matter in every substantive speech: use Crossfire with the AI asking the questions to rehearse taking a POI, answering in under fifteen seconds, and returning to your structure. Sparring does not run a WSDC round, so time the eight-minute substantives and four-minute reply yourself.

British Parliamentary (BP)

In BP, two teams on each bench compete with each other as well as with the other side. Practise both halves. For opening, generate a case with the Current Debate's format set to British Parliamentary and drill a clear definition and model in the first two minutes. For closing, take an opening case you have already generated and practise finding an extension it does not contain, then deliver it in seven minutes without repeating opening material.

Public Forum (PF)

Sparring runs Public Forum with four-minute constructives and rebuttals, three-minute summaries and two-minute final focuses. Use the round to practise the hardest skill in PF: keeping summary and final focus consistent. Before each summary, write the two issues you will collapse on, and check after the round whether your final focus extended exactly those issues and nothing new.

Lincoln-Douglas (LD)

The Lincoln-Douglas round follows the standard times: six-minute affirmative constructive, seven-minute negative constructive, four-minute first affirmative rebuttal, six-minute negative rebuttal and three-minute second affirmative rebuttal. The 1AR is where most affirmatives lose. Run it repeatedly against the same negative constructive and group similar responses, and use the same test for how the judge should decide across several arguments. That helps four minutes cover seven.

How to tell whether practice is working

Keep a short log for each session on paper or in a document. Track the same four things every time:

  • Arguments you dropped: anything the opponent said that you never answered. This number should fall first.
  • Time use: whether you finished each speech within ten seconds of the limit without rushing the last point.
  • Weighing: whether your final speech compared impacts explicitly, or just repeated them.
  • Verdict reasons: whether the judge's reason for the decision changes from session to session, or keeps naming the same weakness.

If the same verdict reason appears three sessions in a row, stop running full rounds and drill that one skill in isolation until it changes.

AI vs traditional prep

AI and traditional preparation are good at different parts of the work. AI is fast at structure; reading, coaching and real rounds are where judgement comes from. Most strong debaters use both and give each the tasks it does well.

TaskAI does it wellTraditional prep does it better
First case outlineDrafts an opening, arguments with evidence and "If they say…" answers in minutesChoosing which outline fits your team and your circuit
Rebuttal blocksLists likely arguments and first-draft answersTesting answers against opponents you have actually met
ResearchSuggests evidence leads and search directionsReading the original source, checking dates and context
Practice roundsA responsive opponent at any hour, at real speech timesUnpredictable opponents, panels and live crossfire
FeedbackA consistent verdict that names a reasonA coach who knows your habits and the judges you will face

A simple split works for most teams: use AI to get from a blank page to a first draft and for extra practice volume, then spend coaching time and team practice on strategy, delivery and the arguments the AI draft got wrong. Never read AI-suggested evidence in round until you have opened the original source yourself.

Where AI practice stops being enough

An AI opponent is consistent and always available, which is exactly what makes it a good training partner and a limited judge. It will not reproduce the judge who dislikes speed, the panel that splits, or the opponent who asks a question you never anticipated. Use AI rounds for volume between real practices, and save team practices and coached rounds for adaptation, delivery and the feedback only an experienced person can give.

Frequently asked questions

Which formats can I spar against the AI in?

Sparring runs School 4-6-6-3, Lincoln-Douglas and Public Forum rounds with their speech order and times. For WSDC, British Parliamentary and other formats you can still generate cases, get coaching and drill rebuttals, and time speeches yourself.

Can I give my practice speeches out loud?

Yes. Sparring and Crossfire can run as spoken rounds in the browser, so you can practise delivery as well as content.

How often should I practise against an AI opponent?

Two or three focused sessions a week usually beats one long one. Each session should end with one specific fix that you drill before the next round.

Does AI practice replace a coach or real rounds?

No. It adds repetitions between team practices. Judge adaptation, delivery under pressure and strategic judgement still develop fastest with people.

Is AI debate prep better than traditional prep?

Neither is better on its own. AI is faster at outlines, block drafts and evidence leads; reading sources, coaching and real rounds build the judgement AI drafts lack.

Are my practice rounds private?

Yes. Rounds, verdicts and debriefs are saved to your account inside the Current Debate they belong to, behind sign-in. Search engines only see these public guides.

-