Engineering Docs Site
Publish this
Adventive Engineering/folder as a navigable, searchable static site for engineering colleagues, gated by Cloudflare Access atdocs.adventive.dev.
Status
Section titled “Status”- Owner: Jeffrey Lambert
- Status: Decisions locked, implementation staged 2026-04-27,
mkdocs build --strictverified clean (zero warnings) 2026-04-27: pending Jeffrey running./scripts/init-repo.shand Cloudflare Pages + Access provisioning - Started: 2026-04-27
- Production URL:
https://docs.adventive.dev(pending DNS + Pages setup) - Repository (planned):
adventive/adventive-engineering-docs(this folder, oncegit init+ remote add)
Publishing: validated ≠ deployed
Section titled “Publishing: validated ≠ deployed”Two separate pipelines act on a push to main, and it is easy to mistake one for the other:
.github/workflows/build.yml(“Validate docs build”) runsnpm run checkandnpm run build(Astro +starlight-links-validator) and uploads thedist/artifact. It validates; it does not publish. A green run here means the site builds, not that it is live.- Cloudflare Pages is what publishes
docs.adventive.dev. It builds frommainon every commit and deploys the result. If a change validated but isn’t visible, check the Pages deployment (did it build the latest commit?) and purge the edge cache / hard-refresh — not the GitHub Actions run.
New pages also need a sidebar entry: most sections use autogenerate, so a new file appears automatically, but ENGINEERING RESOURCES and a few top-level links are listed explicitly in astro.config.mjs and must be added there by hand.
Locked decisions
Section titled “Locked decisions”| # | Decision | ADR |
|---|---|---|
| 1 | The Adventive Engineering/ folder IS the docs repo (no mirroring) | decisions/2026-04-27-repo-this-folder-becomes-source.md |
| 2 | Production hostname: docs.adventive.dev | decisions/2026-04-27-subdomain-docs-adventive-dev.md |
| 3 | Auth via Cloudflare Access, identity bound to JumpCloud | decisions/2026-04-27-idp-jumpcloud.md |
| 4 | Exclude _archive/, _proposed/, all code/, all inputs/ | decisions/2026-04-27-content-exclusions.md |
What’s in this folder
Section titled “What’s in this folder”00-context.md: why we’re doing this, what it replaces01-architecture-assessment.md: MkDocs Material on Cloudflare Pages behind Access02-code-updates.md: repo layout, build config, Pages settings, Access policy03-deployment-management.md: CI/CD via GitHub Actions, observability04-runbook.md: how to add a project, publish a draft, restrict a doc05-appendix.md: alternatives evaluated, referencesdecisions/: ADRs locked 2026-04-27
Implementation files (staged 2026-04-27)
Section titled “Implementation files (staged 2026-04-27)”At repo root:
README.md: thin GitHub-browser READMEmkdocs.yml:docs_dir: docsrequirements.txt: pinned MkDocs Material + plugins;pygments<2.20cap.gitignore.github/workflows/build.yml: PR validationoverrides/partials/copyright.html: Material theme footer override
Inside docs/:
docs/README.md: site landing pagedocs/assets/extra.css: Adventive theme CSSdocs/projects/.pages,docs/system-infrastructure/.pages,docs/system-infrastructure/cloudflare/.pages: explicit nav order- Per-project
.pagesfiles for chapter ordering inside each project
The original ADR specified
docs_dir: .(nodocs/subdirectory). MkDocs 1.6 forbids this. The ADR was amended 2026-04-27 to allow a singledocs/subdirectory; intent (single source of truth, no copy/sync) is preserved. Seedecisions/2026-04-27-repo-this-folder-becomes-source.md.
Quick links
Section titled “Quick links”- Cloudflare Pages: https://developers.cloudflare.com/pages/
- MkDocs Material: https://squidfunk.github.io/mkdocs-material/
- Cloudflare Access for self-hosted apps: https://developers.cloudflare.com/cloudflare-one/applications/configure-apps/self-hosted-public-app/