Skip to content

Deepen the four format guides and shrink the shared About block - #233

Merged
Programcode merged 3 commits into
mainfrom
seo/deepen-thin-guides
Oct 26, 2026
Merged

Programcode merged 3 commits into
mainfrom
seo/deepen-thin-guides

Conversation

@Programcode

@Programcode Programcode commented Oct 26, 2026 •

Copy link
Copy Markdown
Owner

Spec 2, part 1 of 2 (formats first, as the spec asks once it grows past about 6 pages). Part 2 retires the 5 weak pages and deepens the 6 skills guides. It is #235, a separate draft PR stacked on this one.

What changed

  • Lincoln-Douglas, Policy, British Parliamentary and Congress are rewritten. Each one has:
    • a speech-time table
    • a worked example on an original practice motion
    • a "Common mistakes" section and a 15-minute drill
    • 3 or 4 FAQs of its own, which also replace the 2 shared default FAQs on these pages
    • 1 or 2 links to primary sources
  • The lead answers are rewritten so the sections don't repeat them. A 7-word-shingle check finds no overlap, apart from one Policy phrase that restates the speech times.
  • The speech times match src/lib/free-tools/formats.ts. LD, Policy and BP link to the timer with that format preselected (/tools/debate-timer?format=ld|policy|bp). The timer has no Congress preset, so the Congress table comes from the NSDA manual and the page points to the timer's custom format.
  • Sources I opened and checked the figures against:
    • the NSDA High School Unified Manual 2026-27 (v2027.1.2)
    • the NSDA Policy event page
    • the WUDC Debating & Judging Manual (Nov 2024)
  • The generator has two new features: a table block, and [label](https://...) links to primary sources.
  • The "About {product}" aside shrinks to one sentence with links to / and /debatelab-pricing on every guide except the pricing page, which keeps the definition and plan facts. / and llms.txt are unchanged.
  • CONTENT_DATE moves to 2026-10-26 and is now a floor for every guide's modified, because the aside changed on every page. Before this change, a page with its own older modified date would have kept a stale <lastmod>.
  • Titles and descriptions for the 4 pages now use {product}, set in seo_guides.py.

Word counts

These count visible words in <main>, leaving out the breadcrumb, the related-links block and the About aside.

Page Before After
/lincoln-douglas-debate 285 1,287
/policy-debate 265 1,272
/british-parliamentary-debate 255 1,320
/congress-debate 236 1,147

Note for Spec 1 (seo/internal-links-brand-entity)

internal_links() is untouched. The sections for these 4 slugs now live in scripts/seo_guides.py, and GUIDES replaces a page's sections wholesale. Put contextual in-body links for these pages in seo_guides.py. If you add them to the PAGES entries in generate_seo_content.py, they will be silently overwritten.

Review follow-up

In the Policy worked example, the permutation and solvency deficit row is now labelled "2AC answer:" instead of "2AR answer:". The page itself says judges discount new arguments in the last rebuttal, so a 2AR label contradicted it. A new "1AR and 2AR:" row extends and weighs those answers instead.

Verification

npm run verify ran locally at this head (11d7732) and passed. GitHub Actions is billing-blocked, so this is a local pass, not a CI pass.

  • docs:check, lint and typecheck passed.
  • vitest: 651 passed. Collaboration tests: 30 passed. Edge tests: 482 passed.
  • The build passed. check-site found no problems across 48 HTML files, and the sitemap has 45 URLs.
  • test:sw passed, and the Playwright smoke run passed 47 of 47.

Below 760px, tables stack each row into labelled cells, because a 3-column table didn't fit at 390px. I checked that layout and desktop in a real browser, and confirmed that ?format=bp preselects British Parliamentary in the timer.

🤖 Generated with Claude Code

Lincoln-Douglas, Policy, British Parliamentary and Congress each get a
speech-time table that matches the free timer's format data (Congress from
the NSDA manual, since the timer has no preset), a worked example on an
original practice motion, common mistakes, a 15-minute drill, their own
FAQs and links to the NSDA manual or the WUDC manual. Their lead answers
are rewritten so the sections do not repeat them.

The generator gains a table block and https links to primary sources. The
two-paragraph About block now appears only on the pricing page; every
other guide gets one line linking to the landing page and pricing.
CONTENT_DATE is now a floor for every guide, because that shared copy
changed on all of them.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Oct 26, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

Caution

Review failed

The pull request is closed.

  • 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.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The worked example labelled the permutation and solvency deficit as the
2AR answer, but they are new arguments, and the same page says judges
discount new arguments in the last rebuttal. They belong in the 2AC; the
1AR and 2AR now extend and weigh them instead.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@Programcode
Programcode marked this pull request as ready for review October 26, 2026 18:05
Copilot AI balanced review requested due to automatic review settings October 26, 2026 18:05
@Programcode
Programcode merged commit 988bb4a into main Oct 26, 2026
3 of 10 checks passed

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.

Programcode added a commit that referenced this pull request Oct 26, 2026
#233 and #235 deepened the guides and retired five of them. The generator
keeps main's per-page FAQs, primary-source links, tables, short About block
and CONTENT_DATE floor, and this branch's clusters, in-body links and entity
JSON-LD. LINKS_DATE is gone: CONTENT_DATE already dates every page from
2026-10-26, which covers the shared related links.

The retired slugs leave CLUSTERS; their phrases now link the guides their
301s point to. In-body links also go in list and step items, since the
deepened guides put much of their prose there. GuideHub renders nothing on
/es and /hu routes, which do not exist yet on main.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Programcode added a commit that referenced this pull request Oct 26, 2026
Conflicts resolved:
- i18n.ts: keep both default variable sets, product/brand/host from
  main and trialDays/proMonthly from this branch.
- en/es/hu.json: main's new hero headline and subheadline, this
  branch's {{trialDays}} trial badge.
- prerender/entry.tsx, check-site.mjs, docs/operations.md: keep both
  sides (main's entity graph and FAQ checks, this branch's localized
  pages and hreflang check).

GuideHub on /hu and /es now shows only the free tools at their
localized addresses, plus one link to the English guides on the home
page ("Angol nyelvű útmutatók", "Guías en inglés"). The Hungarian tool
labels use this branch's names (Vitaidőmérő, Vitatétel-generátor,
Jegyzetlap), and "cáfolást" follows the review.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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