Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion docs/operations.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ Vercel builds and serves the frontend from the Git repository. Merging to `main`
- rewrites of the app routes (`/app`, `/login`, `/share`, `/expocit/sources`) to `app-shell.html`; any other path that is not a file gets `404.html` with a real 404 status;
- `trailingSlash: false`, which 308-redirects `/app/settings/` to `/app/settings` before routing, since rewrite and redirect sources match exactly;
- 301 redirects from the retired brand pages (`/debatelab`, `/debatelab-by-programcode`, and the rest) to `/`;
- 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;
- no-cache headers for `/`, `index.html`, `app-shell.html`, `theme-init.js`, and `sw.js`, and immutable caching for hashed `/assets/`;
- `noindex` headers for `/app`, `/login`, and `/share` routes;
- Content Security Policy and the other response security headers, including the `Permissions-Policy` that allows the microphone for the app's own origin only.
Expand All @@ -52,7 +53,9 @@ After `vite build`, [`scripts/prerender.mjs`](../scripts/prerender.mjs) renders

[`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`. Each `<lastmod>` 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, and the landing page's last source commit. A page without a date is listed without `<lastmod>`.

The guide pages in `public/<slug>/index.html` are generated, not hand-edited: run `python3 scripts/generate_seo_content.py` and commit its output. Short pages live in its `PAGES` list; pages with long-form copy, their own highlight-card descriptions, and their own FAQs (which also feed the page's FAQPage JSON-LD) live in [`scripts/seo_guides.py`](../scripts/seo_guides.py). Keep `PAGES` in order, because each page's related-guide links are picked by position.
The guide pages in `public/<slug>/index.html` are generated, not hand-edited: run `python3 scripts/generate_seo_content.py` and commit its output. Short pages live in its `PAGES` list; pages with long-form copy, their own highlight-card descriptions, and their own FAQs (which also feed the page's FAQPage JSON-LD) live in [`scripts/seo_guides.py`](../scripts/seo_guides.py). Keep `PAGES` in order, because each page's related-guide links are picked by position. A guide entry can set its own `modified` date, which overrides `CONTENT_DATE` for that page alone.

To retire a guide, delete its `PAGES` entry and its `public/<slug>/` folder (the generator never deletes), add its redirects to `vercel.json`, and repoint any link to it. Two guides that answer the same search should become one page, not two thin ones.

The site origin, product name, brand line, and organization name live in [`src/config/site.json`](../src/config/site.json). The app's head tags, the prerender and sitemap scripts, and the guide generator all read it, and guide copy names the product with a `{product}` token. Do not hardcode those strings in new code or copy.

Expand Down
18 changes: 9 additions & 9 deletions public/ai-debate-case-generator/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -19,19 +19,19 @@
</head>
<body>
<main class="wrap">
<nav class="nav" aria-label="Primary"><a class="brand" href="/">DebateLab by Pi-Stack</a><div><a href="/ai-debate-practice">AI practice</a><a href="/debate-case-generator">Case generator</a><a href="/debate-rebuttal-practice">Rebuttal practice</a><a href="/debate-evidence-finder">Evidence finder</a><a href="/app">Open app</a></div></nav>
<nav class="nav" aria-label="Primary"><a class="brand" href="/">DebateLab by Pi-Stack</a><div><a href="/ai-debate-practice">AI practice</a><a href="/ai-debate-case-generator">Case generator</a><a href="/debate-rebuttal-practice">Rebuttal practice</a><a href="/debate-evidence-finder">Evidence finder</a><a href="/app">Open app</a></div></nav>
<div class="breadcrumb"><a href="/">DebateLab</a> / AI Debate Case Generator with Citations</div>
<section class="hero"><span class="eyebrow">Tool guide</span><h1>AI Debate Case Generator with Citations</h1><p class="lead">Draft faster, verify carefully, and walk into the round with a structured case.</p><div class="cta"><a class="btn primary" href="/app">Start practicing</a><a class="btn secondary" href="/">See DebateLab</a></div></section>
<section class="grid" aria-label="Highlights"><article class="card"><h3>Structured case drafts</h3><p class="muted">Each draft has a thesis, a framework, contentions with warrants and impacts, the case the other side is likely to run, and counters to it.</p></article><article class="card"><h3>Evidence leads</h3><p class="muted">Turn on web research to get sources alongside the draft, then check each one against the original before it goes on a card.</p></article><article class="card"><h3>Format templates</h3><p class="muted">Set the format and your role so the draft fits British Parliamentary, Policy, a classroom debate or a custom structure.</p></article></section>
<article class="article section"><h2>What the case generator produces</h2><p>Generate takes the motion from your Current Debate and returns a structured case, not a block of prose. Every draft has the same parts, so you always know where to look:</p><ul><li>Thesis: the one-sentence reason your side should win.</li><li>Framework: how the judge should decide the round, such as the definition, the burden or the weighing standard you will argue for.</li><li>Contentions: each with a claim, the warrant that makes it true, and the impact that makes it matter.</li><li>Predicted opponent case: the arguments a strong team on the other side is likely to run.</li><li>Counters: first responses to that predicted case.</li></ul><p>Because the opponent case is part of the draft, you start preparing rebuttals at the same time as your own case. When one section is weak, regenerate just that section; the rest of the case stays where it is. Finished cases export to PDF or DOCX.</p><h2>From motion to verified case in seven steps</h2><ol><li>Start a Current Debate with the exact motion wording. Small wording changes, such as should against would, change the burden.</li><li>Add the sources you already trust to the Library. Active sources are used when the case is generated, so the draft builds on your research instead of ignoring it.</li><li>Set the format and your role, and add instructions if you need a particular angle, for example a principled argument or an economic one.</li><li>Turn on web research if you want evidence leads, and generate the case.</li><li>Read the predicted opponent case first and decide which of your contentions actually answers it. Cut contentions that do not clash with anything.</li><li>Regenerate any section that is vague, then verify every evidence lead against its original source.</li><li>Rewrite the final case in your own words and time a full reading of it before you call it ready.</li></ol><h2>Worked example: a generated case, and what the debater changed</h2><div class="card"><h3>Motion: This house would introduce a four-day school week</h3><p><strong>Side:</strong> Proposition.</p><p><strong>Thesis:</strong> A shorter week concentrates instruction where it works and gives schools a recruitment advantage they cannot buy with pay.</p><p><strong>Framework:</strong> The round should be decided by learning outcomes for students across the school, not by the convenience of any single group.</p><p><strong>Contention 1:</strong> Teacher retention. Claim: a four-day week keeps experienced teachers. Warrant: schools competing for staff cannot always raise salaries, but they can offer time. Impact: experienced teachers are among the strongest in-school drivers of student learning.</p><p><strong>Predicted opposition:</strong> Childcare costs for working parents on the fifth day, and lost instruction time for students who are already behind.</p><p><strong>Counter:</strong> Schools can run an optional fifth-day programme for families who need it, and longer remaining days protect total instruction hours.</p><p><strong>Evidence lead to verify:</strong> Research on districts that moved to four-day weeks, looking at attendance, teacher turnover and test results. Read the methodology: results differ between rural and urban districts.</p><p><strong>What the debater changed:</strong> Cut a weaker cost-saving contention the opposition would easily mitigate, and moved the instruction-hours counter into the first speech so it was on the table before the opposition raised it.</p></div><p>The draft gave the debater a full structure in minutes. The judgement calls, which contention to cut and where to pre-empt the opposition, were still theirs, and that is where the round was won.</p><h2>Checking citations before they reach a card</h2><p>Generated evidence is a starting point. Before any source goes into a speech:</p><ul><li>Open the original. If you cannot find it, do not use it.</li><li>Find the exact sentence that supports your claim, and check that the surrounding paragraph does not qualify it.</li><li>Check the date, the author and who published it. A think-tank brief and a peer-reviewed study carry different weight.</li><li>Make sure the evidence supports your link, not just your topic. A study showing four-day weeks save money does not prove they improve learning.</li><li>Record the full citation so you can produce it if an opponent or judge asks.</li></ul><p>Factoids is useful here: give it a single statement from your case and it researches that statement and suggests searches you can use to confirm it.</p><h2>Adapting a generated case to your format</h2><h3>World Schools (WSDC)</h3><p>A WSDC case is split between the first and second speakers, with a team line both can repeat. Use the thesis as the team line, give the first speaker the framework and the first contention, and keep the strongest contention for the second speaker so the case builds rather than front-loads. Generate with the custom format and say this in the instructions.</p><h3>British Parliamentary (BP)</h3><p>Set the format to British Parliamentary and choose your role. Opening government needs a clear definition and mechanism in the draft. Closing teams should treat the generated case as material the opening half will probably use, and look in the predicted opponent case for an extension nobody else in the room is likely to run.</p><h3>Public Forum (PF)</h3><p>A PF constructive is four minutes, which usually means two contentions with evidence, not four. Since PF teams often find out their side shortly before the round, generate both sides of the resolution in the same debate and prepare the counters for each.</p><h3>Lincoln-Douglas (LD)</h3><p>In LD, the framework section becomes your value and criterion. Check that every contention explicitly links back to the criterion; if one does not, regenerate it with an instruction to tie it to the standard you chose. Prepare a short defence of the criterion itself, because the negative will often attack it first.</p><h2>Mistakes to avoid with generated cases</h2><ul><li>Reading the draft in round. Judges hear the difference between a case you wrote and one you are reading for the first time.</li><li>Keeping every contention. Three well-defended points beat five thin ones.</li><li>Skipping the predicted opponent case. It is the fastest route to your rebuttals.</li><li>Citing an evidence lead you never opened.</li></ul></article>
<section class="section article"><h2>Related DebateLab guides</h2><div class="links"><a href="/ai-debate-practice">AI Debate Practice Platform</a>
<a href="/debate-case-generator">AI Debate Case Generator</a>
<a href="/debate-rebuttal-practice">Debate Rebuttal Practice &amp; Argument Analyzer</a>
<a href="/ai-debate-coach">AI Debate Coach for Strategy, Structure &amp; Practice</a>
<a href="/debate-evidence-finder">Debate Evidence Finder for Source-Backed Cases</a>
<a href="/argument-flowchart">Argument Flowchart Tool for Debate Prep</a>
<a href="/online-debate-timer">Online Debate Timer for Practice Rounds</a>
<a href="/how-to-write-a-debate-case">How to Write a Debate Case Guide</a></div></section>
<section class="section article"><h2>Related DebateLab guides</h2><div class="links"><a href="/public-forum-debate">Public Forum Debate Prep with AI</a>
<a href="/lincoln-douglas-debate">Lincoln-Douglas Debate Prep with AI</a>
<a href="/policy-debate">Policy Debate Prep with AI</a>
<a href="/british-parliamentary-debate">British Parliamentary Debate Prep with AI</a>
<a href="/congress-debate">Congressional Debate Prep with AI</a>
<a href="/world-schools-debate">World Schools Debate Prep with AI</a>
<a href="/how-to-weigh-in-debate">How to Weigh in Debate: Magnitude, Probability, Timeframe</a>
<a href="/how-to-cross-examine-in-debate">How to Cross-Examine in Debate Guide</a></div></section>
<section class="section faq article"><h2>Frequently asked questions</h2><details><summary>Does the case generator write a complete case?</summary><p>It writes a complete draft: thesis, framework, contentions with warrants and impacts, the likely opposing case and counters. Treat it as a structure to cut, verify and rewrite in your own words.</p></details><details><summary>Are the generated citations reliable?</summary><p>They are research leads. With web research on, the draft includes sources, but you should open every one, confirm the exact claim and record the full citation before using it.</p></details><details><summary>Which debate formats does the generator support?</summary><p>You can set the format to British Parliamentary, Policy, Classroom or Custom and choose your role. For WSDC, Public Forum and Lincoln-Douglas, use Custom and describe the structure in the instructions.</p></details><details><summary>Can I change one part of a case without starting over?</summary><p>Yes. Regenerate a single section and the rest of the case stays on screen unchanged.</p></details><details><summary>Can I export a generated case?</summary><p>Yes. Cases export to PDF and DOCX, and cases created in a Current Debate are saved to it automatically.</p></details></section>
</main>
<footer class="footer"><div class="wrap">DebateLab by Pi-Stack: <a href="/">Home</a> / <a href="/privacy">Privacy</a> / <a href="/terms">Terms</a> / <a href="/sitemap.xml">Sitemap</a></div></footer>
Expand Down
Loading
Loading