Publish unified Starlight site - #1
Conversation
There was a problem hiding this comment.
Pull request overview
This PR introduces a unified Astro/Starlight documentation site intended to be published under the staged /preview/ path, migrates the project’s documentation corpus into Starlight content collections, and adds automated checks (Node tests + Playwright) to validate navigation, registries, Mermaid rendering, and base-path/link correctness as part of CI and the deployment workflow.
Changes:
- Add an Astro/Starlight site under
website/with intentional sidebar hierarchy, theming, and content collections for ACF entries, Wardline rules, and the trust lattice. - Add deterministic validation: Node test harnesses for routes/sidebar/link/base correctness, plus a Mermaid remark plugin and client-side renderer with accessible failure handling.
- Update GitHub Pages deployment workflow to build and nest the Starlight preview into the legacy MkDocs site under
/preview/, upload Playwright evidence, and pin key Actions/tool versions.
Reviewed changes
Copilot reviewed 107 out of 175 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| website/tsconfig.json | Adds strict Astro TypeScript configuration for the Starlight site. |
| website/tests/task15-harness.test.mjs | Adds end-to-end harness assertions tying together landing, PDFs, link validation, Playwright config, and workflow wiring. |
| website/tests/source-route-map.tsv | Defines source→route mapping contract for migrated content. |
| website/tests/sidebar-navigation.test.mjs | Verifies intentional sidebar structure and per-directory sidebar ordering/labels. |
| website/tests/remark-mermaid.test.mjs | Tests Markdown Mermaid fence transform behavior and escaping. |
| website/tests/mermaid-renderer.test.mjs | Tests client Mermaid renderer behavior, retries, notices, and dark theme variables. |
| website/tests/legacy-markdown-sources.txt | Freezes pre-cutover inventory list for legacy markdown sources. |
| website/tests/lattice-diagram.test.mjs | Tests lattice diagram generator outputs WCAG-contrasting styles for canonical nodes. |
| website/tests/expected-routes.txt | Enumerates canonical unified-site routes as an explicit cutover contract. |
| website/tests/dropped-sources.tsv | Documents intentionally dropped legacy sources and rationale. |
| website/tests/check-built-links.test.mjs | Adds unit tests for built-output link validation across root and preview bases. |
| website/src/styles/custom.css | Adds site typography and theme token overrides plus publication/disclaimer styling. |
| website/src/scripts/rules-index.mjs | Adds rules registry filtering and base-safe rule href generation. |
| website/src/scripts/mermaid-renderer.mjs | Adds client-side Mermaid renderer with idempotent scheduling and accessible failure notices. |
| website/src/scripts/filter-registry.mjs | Adds reusable, root-scoped progressive-enhancement controller for faceted registries. |
| website/src/scripts/acf-registry.mjs | Adds ACF registry filtering/view helpers and base-safe ACF href generation. |
| website/src/lib/lattice-diagram.mjs | Adds Mermaid lattice diagram source generator with contrast-based text color selection. |
| website/src/data/wardline-rules/rs-wl-112.yaml | Adds Rust preview rule metadata entry RS-WL-112. |
| website/src/data/wardline-rules/rs-wl-108.yaml | Adds Rust preview rule metadata entry RS-WL-108. |
| website/src/data/wardline-rules/py-wl-126.yaml | Adds Python rule metadata entry PY-WL-126. |
| website/src/data/wardline-rules/py-wl-125.yaml | Adds Python rule metadata entry PY-WL-125. |
| website/src/data/wardline-rules/py-wl-124.yaml | Adds Python rule metadata entry PY-WL-124. |
| website/src/data/wardline-rules/py-wl-123.yaml | Adds Python rule metadata entry PY-WL-123. |
| website/src/data/wardline-rules/py-wl-122.yaml | Adds Python rule metadata entry PY-WL-122. |
| website/src/data/wardline-rules/py-wl-121.yaml | Adds Python rule metadata entry PY-WL-121. |
| website/src/data/wardline-rules/py-wl-120.yaml | Adds Python rule metadata entry PY-WL-120. |
| website/src/data/wardline-rules/py-wl-119.yaml | Adds Python rule metadata entry PY-WL-119. |
| website/src/data/wardline-rules/py-wl-118.yaml | Adds Python rule metadata entry PY-WL-118. |
| website/src/data/wardline-rules/py-wl-117.yaml | Adds Python rule metadata entry PY-WL-117. |
| website/src/data/wardline-rules/py-wl-116.yaml | Adds Python rule metadata entry PY-WL-116. |
| website/src/data/wardline-rules/py-wl-115.yaml | Adds Python rule metadata entry PY-WL-115. |
| website/src/data/wardline-rules/py-wl-114.yaml | Adds Python rule metadata entry PY-WL-114. |
| website/src/data/wardline-rules/py-wl-113.yaml | Adds Python rule metadata entry PY-WL-113. |
| website/src/data/wardline-rules/py-wl-112.yaml | Adds Python rule metadata entry PY-WL-112. |
| website/src/data/wardline-rules/py-wl-111.yaml | Adds Python rule metadata entry PY-WL-111. |
| website/src/data/wardline-rules/py-wl-110.yaml | Adds Python rule metadata entry PY-WL-110. |
| website/src/data/wardline-rules/py-wl-109.yaml | Adds Python rule metadata entry PY-WL-109. |
| website/src/data/wardline-rules/py-wl-108.yaml | Adds Python rule metadata entry PY-WL-108. |
| website/src/data/wardline-rules/py-wl-107.yaml | Adds Python rule metadata entry PY-WL-107. |
| website/src/data/wardline-rules/py-wl-106.yaml | Adds Python rule metadata entry PY-WL-106. |
| website/src/data/wardline-rules/py-wl-105.yaml | Adds Python rule metadata entry PY-WL-105. |
| website/src/data/wardline-rules/py-wl-104.yaml | Adds Python rule metadata entry PY-WL-104. |
| website/src/data/wardline-rules/py-wl-103.yaml | Adds Python rule metadata entry PY-WL-103. |
| website/src/data/wardline-rules/py-wl-102.yaml | Adds Python rule metadata entry PY-WL-102. |
| website/src/data/wardline-rules/py-wl-101.yaml | Adds Python rule metadata entry PY-WL-101. |
| website/src/data/wardline-rules/.gitkeep | Keeps rules directory present in VCS even if YAML set changes. |
| website/src/data/trust-lattice.yaml | Adds canonical trust lattice state definitions and colors. |
| website/src/data/site.json | Adds dynamic publication metadata (version/date/status) used by pages/components. |
| website/src/data/sidebar.mjs | Defines intentional sidebar hierarchy and explicit reading order. |
| website/src/content/docs/wardline/what-a-wardline-is.mdx | Adds Wardline “What a Wardline Is” content under Starlight. |
| website/src/content/docs/wardline/rules/sink-rules.mdx | Adds Wardline sink rules content page referencing rule tables and ACF mapping. |
| website/src/content/docs/wardline/rules/rust-rules.mdx | Adds Wardline Rust preview rules content page and details. |
| website/src/content/docs/wardline/rules/engine-findings.md | Adds documentation for WLN-ENGINE findings family. |
| website/src/content/docs/wardline/rules/boundary-rules.mdx | Adds Wardline boundary rules content page. |
| website/src/content/docs/wardline/language-frontends.mdx | Adds Wardline language frontend registry and rubric documentation. |
| website/src/content/docs/wardline/index.mdx | Adds Wardline section landing page with versioning and reading paths. |
| website/src/content/docs/threat-model/stride/tampering.mdx | Adds STRIDE Tampering content page with ACF registry embed. |
| website/src/content/docs/threat-model/stride/spoofing.mdx | Adds STRIDE Spoofing content page with ACF registry embed. |
| website/src/content/docs/threat-model/stride/repudiation.mdx | Adds STRIDE Repudiation content page with ACF registry embed. |
| website/src/content/docs/threat-model/stride/information-disclosure.mdx | Adds STRIDE Information Disclosure content page with ACF registry embed. |
| website/src/content/docs/threat-model/stride/index.mdx | Adds STRIDE index page including Mermaid DFD and category table. |
| website/src/content/docs/threat-model/stride/elevation-of-privilege.mdx | Adds STRIDE Elevation of Privilege content page with ACF registry embed. |
| website/src/content/docs/threat-model/stride/denial-of-service.mdx | Adds STRIDE Denial of Service content page with ACF registry embed. |
| website/src/content/docs/threat-model/review-problem.md | Adds “Review Problem” threat model section content. |
| website/src/content/docs/threat-model/index.md | Adds Threat Model section landing page and navigation list. |
| website/src/content/docs/respond/index.md | Adds Respond section overview content. |
| website/src/content/docs/reference/about.mdx | Adds About page with publication metadata and suite description. |
| website/src/content/docs/index.mdx | Adds Starlight splash landing page with dynamic publication metadata and routes. |
| website/src/content/docs/assess/index.md | Adds Assess section overview content. |
| website/src/content/docs/assess/autonomy-assessment.md | Adds agent autonomy self-assessment content. |
| website/src/content/docs/appendices/index.md | Adds Appendices overview content. |
| website/src/content/docs/appendices/cross-model-defects.md | Adds Cross-Model Defect Chaining appendix content. |
| website/src/content/docs/acf/t4-safety-guard-erosion.md | Adds ACF-T4 entry content and metadata frontmatter. |
| website/src/content/docs/acf/t3-unstructured-signal-parsing.md | Adds ACF-T3 entry content and metadata frontmatter. |
| website/src/content/docs/acf/t2-silent-coercion.md | Adds ACF-T2 entry content and metadata frontmatter. |
| website/src/content/docs/acf/t1-authority-tier-conflation.md | Adds ACF-T1 entry content and metadata frontmatter. |
| website/src/content/docs/acf/s5-type-structure-avoidance.md | Adds ACF-S5 entry content and metadata frontmatter. |
| website/src/content/docs/acf/s4-type-annotation-erosion.md | Adds ACF-S4 entry content and metadata frontmatter. |
| website/src/content/docs/acf/s3-structural-identity-spoofing.md | Adds ACF-S3 entry content and metadata frontmatter. |
| website/src/content/docs/acf/s2-spurious-field-access.md | Adds ACF-S2 entry content and metadata frontmatter. |
| website/src/content/docs/acf/s1-fabricated-default.md | Adds ACF-S1 entry content and metadata frontmatter. |
| website/src/content/docs/acf/r6-scope-limited-triage.md | Adds ACF-R6 entry content and metadata frontmatter. |
| website/src/content/docs/acf/r5-remediation-induced-violation.md | Adds ACF-R5 entry content and metadata frontmatter. |
| website/src/content/docs/acf/r4-context-handover-assumption.md | Adds ACF-R4 entry content and metadata frontmatter. |
| website/src/content/docs/acf/r3-verification-displacement.md | Adds ACF-R3 entry content and metadata frontmatter. |
| website/src/content/docs/acf/r2-partial-completion.md | Adds ACF-R2 entry content and metadata frontmatter. |
| website/src/content/docs/acf/index.mdx | Adds ACF registry page embedding the registry component. |
| website/src/content/docs/acf/i1-verbose-error-response.md | Adds ACF-I1 entry content and metadata frontmatter. |
| website/src/content/docs/acf/e2-unvalidated-delegation.md | Adds ACF-E2 entry content and metadata frontmatter. |
| website/src/content/docs/acf/e1-implicit-privilege-grant.md | Adds ACF-E1 entry content and metadata frontmatter. |
| website/src/content/docs/acf/d2-review-capacity-exhaustion.md | Adds ACF-D2 entry content and metadata frontmatter. |
| website/src/content/docs/acf/d1-finding-flood.md | Adds ACF-D1 entry content and metadata frontmatter. |
| website/src/content.config.ts | Defines Astro content collections and schemas for docs, Wardline rules, and lattice data. |
| website/src/components/State.astro | Adds State component resolving lattice state metadata via content collection. |
| website/src/components/RuleTable.astro | Adds rules table component with ACF cross-links and accessibility wrappers. |
| website/src/components/RulesIndex.astro | Adds filterable rules index with progressive enhancement controller wiring. |
| website/src/components/Rule.astro | Adds rule link component resolving rule metadata and generating base-safe hrefs. |
| website/src/components/MarkdownContent.astro | Wraps markdown content and installs Mermaid renderer plus optional ACF infobox insertion. |
| website/src/components/LatticeTable.astro | Adds lattice state table component sourced from lattice collection. |
| website/src/components/LatticeDiagram.astro | Adds Mermaid lattice diagram component with accessible labeling. |
| website/src/components/Footer.astro | Adds footer disclaimer using dynamic publication metadata. |
| website/src/components/Banner.astro | Adds announcement banner using dynamic publication metadata. |
| website/README.md | Documents setup and validation commands for the Starlight site. |
| website/public/favicon.svg | Adds favicon SVG asset. |
| website/plugins/remark-mermaid.mjs | Adds remark plugin to transform Mermaid fences into <pre class="mermaid"> with safe escaping. |
| website/playwright.config.ts | Adds Playwright configuration enforcing base-safe navigation and deterministic evidence capture. |
| website/package.json | Adds scripts and pinned dependencies for build, checks, registries, and Playwright. |
| website/astro.config.mjs | Configures Starlight integration, custom components/CSS, Mermaid remark plugin, link validator, and base path handling. |
| website/AGENTS.md | Documents agent/dev workflow notes for Astro background dev server usage. |
| website/.vscode/launch.json | Adds VS Code launch configuration for Astro dev. |
| website/.vscode/extensions.json | Adds recommended VS Code extension list. |
| website/.node-version | Pins Node version for local/dev parity with CI. |
| website/.gitignore | Adds site-specific ignores for build output, Playwright artifacts, and env files. |
| source/pdf/metadata-wardline-community.yaml | Updates Wardline PDF metadata to match as-built specification and refreshed versioning. |
| source/pdf/metadata-suite-map.yaml | Updates document suite map PDF metadata to v0.3.0 publication details. |
| source/pdf/metadata-reviewing-ai-generated-code.yaml | Updates practical guide PDF metadata to v0.3.0 publication details. |
| source/pdf/metadata-governing-ai-generated-code.yaml | Updates governing briefing PDF metadata to v0.3.0 publication details. |
| source/pdf/metadata-community.yaml | Updates main discussion paper PDF metadata/version history to v0.3.0. |
| source/chapters/sdag-14-appendix-a-taxonomy.md | Updates a footnote anchor label for taxonomy appendix consistency. |
| .github/workflows/deploy.yml | Pins Actions, locks MkDocs deps, adds Node/Playwright build+test+preview nesting, and uploads Playwright evidence artifacts. |
| .github/legacy-pages-requirements.in | Introduces pinned MkDocs/MkDocs-material requirements for hash-locked installs. |
| .gitattributes | Marks PDFs as binary for correct diff/merge handling. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 21207997cc
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| "type": "module", | ||
| "version": "0.0.1", | ||
| "scripts": { | ||
| "dev": "astro dev", |
There was a problem hiding this comment.
Start the development server in background mode
When contributors or coding agents follow the README and run npm run dev, this script expands to foreground astro dev, holding the terminal indefinitely instead of using the repository-required background lifecycle. Add --background here or document a background-safe npm invocation so automated development sessions do not hang.
AGENTS.md reference: website/AGENTS.md:L3-L9
Useful? React with 👍 / 👎.
Summary
/preview/deployment pathValidation
npm run build:preview: 70 pages, registry checks, Astro diagnostics, internal links, and preview base-path checks passed/preview/sidebar verified on desktop and mobile