A live menu built from the four real marketing routes plus the forty most recent published posts, each with its title and target keyword. It is handed to both writers and served as its own topic on the inquiry desk. On submission, internal and external link counts are extracted from the markdown and enforced.
Also called: internal linking · broken links in blog posts · link rules
- 1internalLinkMenu() reads published posts newest first and formats them as /blog/slug — "Title" (targets: keyword).
- 2Four marketing routes are appended, with a maintenance note that anything listed must resolve.
- 3The prompt instructs the writer to use at least two, only from this list.
- 4The submission gate counts markdown links starting with / as internal and http(s) as external, and refuses under two internal or zero external with a 422 and the exact problems.
The list exists for one stated reason: "Real routes only — a broken internal link is worse than no link, and this list is what stops the model inventing one." The outbound requirement comes from the voice rules: "A post that only links to itself reads as a brochure." Counting links at submission rather than trusting the instruction is what makes both rules real.
- Generated posts invented internal URLs that 404.
- Posts linked only to themselves and read as brochures.
- Link rules stated in a prompt were not enforced.
See it on your own jobs
Twenty minutes, your numbers, no slide deck. We’ll build one of your real buildings in front of you and send you the estimate link at the end — yours to keep either way.
or keep browsing features →