docs: page descriptions, titles, structured data and crawler files for search and answer engines - #116
Merged
Conversation
…r search and answer engines A crawl of tests.agentrust-io.com on 2026-09-14 found 21 of 22 pages sharing the site description, JSON-LD with no Organization @id and an inline Organization on every page, no robots.txt directives or sitemap line, and llms.txt sections that predate the five tabs. hooks/seo.py gives each page its own description; overrides/main.html adds the title rule, per-page JSON-LD and breadcrumbs under the hub organization; robots.txt is added and copied by the docs workflow; llms.txt follows the tabs and now lists the limitations and self-verification pages. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013aK3gVWzNdcM3hZ2o2awK2
Indented continuation lines of a skipped list item are no longer read as prose, so CHANGELOG's description is no longer the wrapped second line of its first bullet, and double quotes in a derived description become apostrophes. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013aK3gVWzNdcM3hZ2o2awK2
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.
A crawl of every tests.agentrust-io.com sitemap URL on 2026-09-14 found 21 of 22 pages sharing one meta description, "Conformance test suite for TRACE: Trust Runtime Attestation and Compliance Evidence", because Material falls back to the site description.
The same fixes are going into every AgenTrust docs site from one shared kit.
Changes
hooks/seo.py, registered underhooks:in mkdocs.yml, sets each page's description from its first paragraph of prose, capped at 155 characters. Front matter still wins.hooks/is excluded from the docs.overrides/main.htmlnow has the title block the old comment described: the home page uses its front-matter title alone, and a title that already names the site gets no suffix. og:title matches, og:site_name is AgenTrust. The JSON-LD graph has one Organization underhttps://agentrust-io.com/#organization, the WebSite, a WebPage or TechArticle per page with its own title, description and URL, and a BreadcrumbList on inner pages. The home page SoftwareApplication names theagentrust-trace-testspackage with its PyPI URL, codeRepository, the Apache-2.0 license, operatingSystem, and the organization by @id.robots.txtis added with the ten crawlers agentrust-io.com names and the sitemap line, and docs.yml copies it into the build and triggers on it and onhooks/.Checked, on a build that replicates docs.yml (allowlist copy including robots.txt, docs_dir rewrite,
mkdocs build --strictwith mkdocs 1.6.1, mkdocs-material 9.7.7, mkdocs-llmstxt 0.5.0)pytest tests/test_docs_match_the_modules.py tests/test_obligation_accounting.py: 82 passed.Generated with Claude Code
https://claude.ai/code/session_013aK3gVWzNdcM3hZ2o2awK2