Repository navigation
Link the AI-debate cluster by its search phrases, with a Related block - #297
Merged
Merged
Conversation
The AI-debate pages now link to each other with the phrases people
search for ("AI debate practice", "AI debate coach", "best AI debate
tools", "which AI is best for debate", "AI debate generator", plus
"free vs paid AI debate tools" and "how to prepare for a debate with
AI").
- Each cluster page gets a "More on AI debate" block.
- Each /debateowl-vs-* page gets one sentence of its own that links
/best-ai-debate-tools.
- The home page guide hub gets an "AI debate" group, and the English
footer gets an "AI debate" column.
- llms.txt gets an "AI debate" section, and llms-full.txt picks it up
from there.
src/config/ai-debate-cluster.json is the one list. Both page
generators, the hub, the footer and the /tools pages read it.
/ai-debate is in the list but switched off ("live": false) until its
page ships. Switching it on adds the "AI debate partner" link
everywhere, a "Try an AI debate" line on the /tools pages, and an
English-page link on the /hu and /es hubs. check-site fails the build
if it is switched on before the page exists.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Caution Review failedThe pull request is closed. Walkthrough
Merge Risk:
|
…-related-blocks # Conflicts: # public/ai-debate-coach/index.html # public/best-ai-for-debate/index.html # src/locales/en.json # src/locales/es.json # src/locales/hu.json
Programcode
marked this pull request as ready for review
November 2, 2026 18:09
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.
Task 3 from the 2026-11-02 organic spec. The AI-debate cluster pages now link to each other with the phrases people search for, and the home page, the footer, every /debateowl-vs-* page and llms.txt link into the cluster.
Draft only. Do not merge or deploy without Adam's OK.
Depends on the /ai-debate PR (Task 1)
The spec asks for links to /ai-debate, which is not on main yet. Task 1's thread is building that page. This PR includes every /ai-debate link the spec asks for, but a
"live": falseflag insrc/config/ai-debate-cluster.jsonkeeps them out of the pages until Task 1's PR lands. With the flag off, no page links /ai-debate and CI stays green. With it on, the build's check-site step fails on 53 broken /ai-debate links, so nobody can switch it on before the page exists. I tested both states.Once Task 1 has merged:
"live": trueon/ai-debateinsrc/config/ai-debate-cluster.json.python3 scripts/generate_seo_content.pyand commit the regeneratedpublic/pages.That adds an "AI debate partner" link to the Related blocks, the hub, the footer and llms.txt. Every /debateowl-vs-* page gets "Or argue a motion now against our AI debate partner." The /tools pages get "Want to argue against an AI? Try an AI debate", and the /hu and /es hubs get a link to the English page with
hreflang="en".Task 1 also wires /ai-debate into the footer, the hub and llms.txt itself. Whoever flips the flag should drop one of the two copies. The /ai-debate page is a React page that Task 1 owns, so this PR cannot add the Related block to it. It can render
AI_DEBATE_LINKSfromsrc/lib/seo/ai-debate-cluster.ts, which reads the same list.What changed
src/config/ai-debate-cluster.jsonlists the cluster pages and their anchors. Both page generators, the home page hub, the footer and the /tools pages read it.scripts/seo_cluster.pyrenders the "More on AI debate" block. This is the spec's<RelatedAiDebate />. It is Python because the cluster pages are generated static HTML, not React.The anchors are the spec's six, plus "free vs paid AI debate tools" and "how to prepare for a debate with AI". Without those two, both pages had only 5 inlinks, below the spec's minimum of 10. The hub and footer chips start with a capital letter to match the chips around them. The generated pages use the exact lowercase phrases.
Two existing generator rules shape the block on the two comparison-template pages (/free-vs-paid-ai-debate-tools and /how-to-prepare-for-a-debate-with-ai). Those pages must link /best-ai-for-debate exactly once and at most 3 sibling comparison pages. Their bodies already do both, so the block skips /best-ai-for-debate and the sibling pages there. I did not loosen either rule.
To avoid conflicts with the Task 2 retitling thread, this PR changes no titles, H1s, body copy or
dateModifieddates. If both PRs touch the same generated page, merge main, rerun the generator and commit.Inbound links
These counts come from
node scripts/check-links.mjs --report. It counts how many other sitemap pages link to each page. "Before" is main at 9c64912, built in a scratch worktree.Broken links: none. check-site passes, and it resolves every internal link, sitemap URL and llms.txt URL. No new link has
rel="nofollow".Checks
npm run verifyat the head passed all 9 steps: docs, jargon, typecheck, guards, lint, edge, build, smoke and sw-offline.python3 scripts/check_templating.pyand the guide-content guards pass.vercel curland both show the new links.Not run: the full desktop and mobile e2e suite, the agentic suite and WebKit. The change is links on static pages and two React components.
🤖 Generated with Claude Code
Summary by CodeRabbit
New Features
Documentation