Repository navigation
Rewrite the generic debate guides in plain language - #260
Merged
Merged
Conversation
site.json now holds one sentence for what a DebateOwl case contains and one for "no free plan, but the /tools pages are free". The home page FAQ (EN, HU, ES), the SoftwareApplication JSON-LD on / and the guides, and llms.txt quote them. The case generator card, How it works and the hero demo use the new section names (Opening, Argument, Evidence, If they say..., Closing). The rebuttal generator, coach and best-tools guides describe DebateOwl's output in plain words instead of warrants, contentions and frameworks. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Stack the demo's form and sample so the case sections get the full width, shorten the sample lines, and move the owl clear of the text. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Warning Review limit reachedEnable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. Next included review available in 59 minutes. View limit details
Note 🎁 Summarized by CodeRabbit Free
Comment |
This was referenced Oct 28, 2026
npm run seo:jargon runs scripts/check_jargon.py --max 1, and verify runs it after the docs check. The case-writing guide no longer repeats its short answer's format sentence in "What a debate case is". Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Stacked on #259: merge #259 first, then this PR.
npm run verifynow runsscripts/check_jargon.py --max 1, and that gate passes only with #259's product-page copy. Rebasing wasn't an option, soseo/case-format-everywhereis merged into this branch with a normal merge (5ee4af62). Until #259 lands, this PR's diff also shows #259's changes.Task 3 from the 28 Oct site spec: a plain-language pass on the generic guides, so the text AI answers quote no longer teaches DebateOwl's case in the old contention/warrant model.
What changed
scripts/seo_guides.py(bodies, FAQs feeding FAQPage, definitions),scripts/seo_answers.py(the short answer under each H1) and thePAGESdescription and lead fields inscripts/generate_seo_content.py.public/was regenerated withpython3 scripts/generate_seo_content.py. Nothing inpublic/was hand-edited, and a second run is byte-identical./how-to-write-a-debate-case. The first answer sentence and the main structure section describe the DebateOwl format: an opening, two to four arguments each with an explanation, evidence and why it matters, "If they say… we answer…" replies, a closing line and sources. The "claim vs warrant" FAQ is now "What goes into each argument?" with a plain answer./how-to-weigh-in-debate. The H1 subtitle is now "Compare which harm or benefit matters more, and give the judge a reason to prefer your side." The meta description had no "impact calculus" and is unchanged. The term stays once in the body as the other name for weighing./lincoln-douglas-debatekeeps value, criterion and framework, the format's own rules. Each gets a plain gloss on first use./policy-debatehas none of these terms, so there was nothing to gloss./how-to-practice-rebuttalsand/how-to-cross-examine-in-debatenow use plain words. They come from those pages' descriptions.scripts/check_jargon.py(stdlib only). It counts the terms in each guide's visible text and JSON-LD.--max Nexits 1 when a non-exempt page goes over N, and--jsonprints machine output.npm run verify.npm run seo:jargonrunscheck_jargon.py --max 1, with/lincoln-douglas-debateand/policy-debateexempt, right after the docs check.docs/testing.mdlists it in the gate ladder. On this branch's own commits it fails on coach, rebuttal generator and best-tools, which Describe the DebateOwl case format on the home page, llms.txt and JSON-LD #259 rewrites, hence the stacking above./how-to-write-a-debate-case. "What a debate case is" no longer repeats the short answer's format sentence. It now says every case DebateOwl writes follows the shape the paragraph before it lays out, so you can compare a generated draft with your own part by part.CONTENT_DATEis unchanged, and no unchanged page moved.Jargon counts (
scripts/check_jargon.py)\b(frameworks?|contentions?|warrants?|impact calculus)\b, visible text / JSON-LD.Every other guide was 0 / 0 before and after.
Format pages that keep their own terms, listed separately: /lincoln-douglas-debate 28 / 8 → 26 / 8 (glossed on first use), /policy-debate 0 / 0.
Acceptance criteria
scripts/, runs innpm run verify, and produced the before/after table above./how-to-write-a-debate-case: the first answer sentence and the structure section describe the format, and the FAQ is "What goes into each argument?"./how-to-weigh-in-debatesubtitle and meta description have no "impact calculus". The body keeps it once.audit.py, which isn't on this VPS, ran against a localvite previewof this build. It checked all 52 sitemap URLs: every one returns 200 with a one-sentence 70–160 character description, no duplicates, a self-canonical and the favicon link, and every subpage title ends| DebateOwl. The three home pages keep their brand-first titles, the same as on main.Verification
npm run verify, Node 22.23.2,NODE_OPTIONS=--max-old-space-size=3072, local, at heade8b6cf53(with Describe the DebateOwl case format on the home page, llms.txt and JSON-LD #259 merged in and the jargon gate wired in): exit 0.seo:jargonpassed, unit 96 files / 714 tests, collaboration 30, edge 493 passed / 0 failed, build with prerender, sitemap (52 URLs), check-site and check-links clean, Playwright@smokedesktop Chromium 47 passed. The earlier head,8d81a5f9, also passed. GitHub Actions is billing-blocked, so this is a local pass, not CI.python3 scripts/generate_seo_content.pyrun twice gives a byte-identicalpublic/.public/*/index.htmlparse. No<title>, canonical, hreflang or H1 text changed. The<h1>lines in the diff move only because the "Updated" date sits on the same line.~/.t3/scratch/debateowl-site-1028/shots/how-to-write-a-debate-case-{desktop,mobile}.pngon the VPS.Relation to the other two PRs
Stacked on #259 (see the top), so it must merge after #259. Independent of #258 (About and Contact). The three branches trial-merge with 0 conflicts. If a merge conflicts in
public/, rerunpython3 scripts/generate_seo_content.py.🤖 Generated with Claude Code