Atlas: Contributing
Atlas documents itself here rather than in a separate wiki — if this page gets out of date, that’s a bug in Atlas.
Adding a page
Section titled “Adding a page”- Pick the audience: does this belong in
content/docs/public/**orcontent/docs/internal/**? If you’re unsure, it’s internal — public is the opt-in direction, not the default. - Create the
.mdxfile under the right section directory. - Fill in required frontmatter:
title,description,visibility,type. Seesrc/content.config.tsfor the full schema and enums. - Run
npm run dev:publicornpm run dev:internalto preview. - Run
npm run docs:validatebefore opening a PR.
Frontmatter
Section titled “Frontmatter”| Field | Required | Notes |
|---|---|---|
title | yes | |
description | yes | One sentence, shows in search + /llms.txt |
visibility | yes | Must match the directory (public/internal) |
type | yes | guide, concept, tutorial, reference, system, service, adr, rfc, runbook, specification, incident, postmortem, experiment |
status | no (default active) | draft, active, deprecated, proposed, accepted, superseded, archived |
owner | recommended | See config/owners.yml |
lastReviewed / reviewInterval | recommended for anything operational | Powers npm run docs:freshness |
verified | no (default true) | Set false and use <MurmurCallout kind="unverified"> for anything not confirmed against source |
Using components
Section titled “Using components”Import from ~/components/atlas/* (see
src/components/atlas/README.md for the full catalog). Reach for plain
Markdown first — a component should earn its place over a table, list, or
blockquote.
Adding a diagram
Section titled “Adding a diagram”Prefer D2 (diagrams/source/*.d2) for real topology/architecture; Mermaid
is fine inline for a simple sequence diagram. Run npm run diagrams after
editing a .d2 file and commit the regenerated SVG — CI
(npm run diagrams:check) fails a PR that doesn’t.
Generating reference docs
Section titled “Generating reference docs”Never hand-edit a file under content/docs/public/reference/** or
.../developers/*-reference.mdx — those are generated. Edit the source
(schemas/manifests/*.json, schemas/openapi/*.yaml) and run
npm run docs:generate.
Templates
Section titled “Templates”templates/*.md has starting points for ADR, RFC, RUNBOOK, SYSTEM,
SERVICE, INCIDENT, POSTMORTEM, EXPERIMENT, and SPEC documents. Copy one
into the right content directory rather than starting from a blank file.
Public vs. internal
Section titled “Public vs. internal”See ADR-0002 for how isolation is enforced at the build level.
Reviewing stale docs
Section titled “Reviewing stale docs”npm run docs:freshness reports pages past their reviewInterval,
grouped by severity. It’s advisory, not a merge gate — see the script’s own
header comment for the severity rules.
Deployment
Section titled “Deployment”Static output only — see docs/engineering/cloudflare-access.md for the Cloudflare Pages + Access deployment model.
Troubleshooting the docs build
Section titled “Troubleshooting the docs build”- A page 404s locally — did you run
npm run stage:public/stage:internal(ordev:public/dev:internal, which do it for you) after adding the file?src/content/docs/is regenerated, not live. - Build fails with a schema error — check the frontmatter against
src/content.config.ts;type/statusare strict enums. npm run checkfails on diagrams — you edited a.d2file without runningnpm run diagramsafterward; commit the regenerated SVG.