feat(docs-site): rebuild the Pages site as a decision hub with sourced facts and real URLs - #35
Merged
Merged
Conversation
…d facts and real URLs - Path-based routing with build-time prerendering: per-page title, description, canonical and Open Graph tags, sitemap.xml, llms.txt, a real 404 page and redirect stubs plus an inline shim so legacy /#/ links keep working - Typed content model where every adoption fact (regions, deploy time, cost, IaC, topology, auth posture, status, teardown, what it deploys) carries a repository source that tests verify verbatim; unknowns render "not documented" - New Start, Concepts, Projects and Reference sections; project READMEs, the Self-Service docs, CHANGELOG, connector README and CONTRIBUTING rendered at build time from the sibling folders with sidebars, TOC and copy buttons - Accessibility: working skip link, focus and scroll management with route announcements, modal mobile menu, AA stage colour tokens with on-dark variants, underlined inline links, reflow at 320 px, legible Atlas SVG - Quality gates: Playwright + axe with colour contrast on every route at two widths, behavioural and wording specs, extended fail-closed validator, CI on Node 24 with current SHA-pinned actions and a browser-gates job - Root README: per-project cost paragraph (no Aurora), Blueprint networking wording, Tool Gateway authorizers, link to the published workshop Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
CodeQL flagged the summary-label sanitizer in the MDX details plugin as an incomplete multi-character sanitization. The value only ever lands in a Markdown text node, but the pattern was fragile. A shared stripTags() now removes angle-bracket sequences character by character (nested or split sequences cannot survive), and both call sites (details summaries and heading titles in the repo index) use it. Unit tests cover the cases. Co-Authored-By: Claude Fable 5.1 <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.
Summary
Rebuilds the GitHub Pages site (
docs-site/) from a hash-routed landing page into a decision-support documentation hub for the four projects, and fixes the factual and accessibility defects found in a full review of the site and the repository. Changes to the rest of the repository are limited to four files (rootREADME.md,assets/repository-atlas-journey.svg, the Pages workflow, and a new.github/dependabot.ymlfor GitHub Actions only). No file under the four project folders changed.Why
The previous site rendered about 3,200 words (under 3 percent of the roughly 117,000 words of Markdown in the repository) and sent every task-oriented click to a GitHub blob page. A 28-task persona simulation (platform engineer, security engineer, ML engineer, solutions architect, engineering director) could fully answer 1 task on the site. The same review found 33 factual claims that were wrong or unsourced (for example the cost notice named Aurora, which no project deploys), a skip link that rendered the 404 page because of hash routing, and colour-contrast failures on 9 of 10 pages that the test suite could not see because the contrast rule was disabled.
What changed on the site
index.htmlwith its own title, description, canonical, Open Graph and Twitter tags.sitemap.xml,llms.txt, a real404.htmland redirect stubs for the six old routes are generated. An inline shim in every page keeps old/#/...links working./start/(get started, which project fits, prerequisites, costs and cleanup, FAQ);/concepts/(agent factory, capability contracts with a capability-by-project posture matrix, architecture with all diagrams rendered on-site, glossary);/projects/<id>/landing pages with status, at-a-glance facts, quickstart, evidence, project-specific sections, figures, known limitations quoted verbatim, documentation index and teardown;/reference/(security matrix, support envelope).docs/set, its CHANGELOG, the Atlassian connector README and CONTRIBUTING.md are compiled at build time from the sibling folders (no copies) with a sidebar, table of contents, source link and copy buttons on code blocks. Raw HTML is never rendered. The workshop is linked to its public Workshop Studio listing on AWS Builder Center rather than mirrored; notebooks link to GitHub.validate_static.py(prerender outputs, unique titles, canonical and Open Graph tags, hash shim, no externally hosted assets, allow-listed AWS example account IDs, no other-repository references).Repository-side changes (kept minimal)
README.md: cost paragraph rewritten per project (the old sentence claimed all projects deploy DocumentDB and Aurora; none deploys Aurora); Blueprint "PrivateLink egress" replaced with what the code deploys (a private VPC with interface endpoints); Tool Gateway row states the actual authorizers (AWS_IAM in the Blueprint, Cognito JWT elsewhere); link to the workshop on the AWS workshop catalog, listed on AWS Builder Center.assets/repository-atlas-journey.svg: legibility and contrast only (text at 14 units or larger, light stage colours on the dark panel, bullet lists removed because the cards below repeat them). Stillrole="img"with title and description; validated by the existing checks..github/workflows/sample-agent-factory-pages.yml: Node 24 via.nvmrc, actions bumped to current majors pinned by commit SHA,persist-credentials: false, wider path filters for the content the site now renders, abrowser-gatesjob the deploy depends on, production deploys never cancelled,workflow_dispatch..github/dependabot.yml: GitHub Actions ecosystem only, weekly, so the SHA pins stay current.Verification
npm run typecheck,npm run lint(zero warnings),npm test(896 tests),npm run build(37 pages prerendered plus 404, 6 redirect stubs, sitemap and llms.txt),npm run validate:static,npm run audit(0 vulnerabilities),npm run test:browser(155 passed, 2 viewport-conditional skips, 0 failed) on Node 22 locally; CI runs the same on Node 24.distmatch repository files by hash.Decisions worth knowing
Agentic-ai-self-service/docs/MCP_CATALOG.mdis linked to GitHub rather than rendered because it contains a 12-digit number that the fail-closed validator rejects.Follow-ups outside this PR (repository content, not site)
workshop-building-agentic-ai-platform/README.mdsays the scoped deploy policies are{1..4}"split across four files"; seven exist. It also names "Aurora PostgreSQL" in the cost note; the stack runs Postgres as a Fargate sidecar.content/introduction/index.en.mdsays level 200 and one deployable region; the README andcontentspec.yamlsay 300 and three regions. The published Workshop Studio build is from an earliermainline(title, duration and regions differ from the repo).Agentic-ai-self-service/docs/COSTS.mdomits the always-on WAF web ACL; template count is six in code and README and seven inDEPLOYMENT_INTERNALS.mdand the architecture diagram;docs/MCP_CATALOG.md:128contains a real-looking 12-digit account ID.enterprise-mcp-governance-gateway/policies/manifest.jsonsetsvalidationMode: IGNORE_ALL_FINDINGSwhile its own comment saysFAIL_ON_ANY_FINDINGS; the Cedar action-form guidance in this project contradicts the Self-Service docs.🤖 Generated with Claude Code