Milestone 0: Astro Starlight documentation site - #1
Merged
Merged
Conversation
Establishes the project's documentation site as a static Astro Starlight build under `docs/`. The site mirrors the upstream NUWCDIVNPT/stig-manager information architecture, with content adapted for this implementation's stack (Go backend, PostgreSQL 18, React 19 + shadcn/ui SPA, OIDC PKCE auth). - IA: Features, Installation & Setup, User Guide, Admin Guide, Reference (OpenAPI rendered inline), The Project. - OpenAPI v1 spec rendered via starlight-openapi from the upstream spec carried verbatim in `docs/openapi/stig-manager.yaml` so /api/v1 byte-compatibility is documented. - Tailwind/shadcn-flavoured neutrals via `src/styles/custom.css`. - CI workflow at `.github/workflows/docs.yaml`: install → astro check → build → linkinator → GitHub Pages deploy on main. - pnpm workspace scaffolded; web/api packages will be added in Milestone 1. - Repo root: README, LICENSE, .gitignore aligned to the project shape. Signed-off-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Co-Authored-By: Bryce Anglin <brycemanglin@gmail.com>
Contributor
Author
🤖 Devin AI EngineerI'll be helping with this pull request! Here's what you should know: ✅ I will automatically:
Note: I can only respond to comments from users who have write access to this repository. ⚙️ Control Options:
|
The previous workflow ran `pnpm install --frozen-lockfile` with `working-directory: docs` while a top-level `pnpm-workspace.yaml` was present. pnpm then expected the lockfile at the workspace root and failed with ERR_PNPM_NO_LOCKFILE. For Milestone 0 there is only one package, so removing `pnpm-workspace.yaml` makes `docs/` standalone and keeps the lockfile co-located with the package. The workspace file will be re-introduced in Milestone 1 alongside the `web/` package, at which point the lockfile will move to the repo root in the same change. Signed-off-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Co-Authored-By: Bryce Anglin <brycemanglin@gmail.com>
PLAN.md is a local planning scratchpad — the public roadmap lives in `docs/src/content/docs/project/roadmap.mdx` and is the canonical source for milestone status. Signed-off-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Co-Authored-By: Bryce Anglin <brycemanglin@gmail.com>
Signed-off-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Co-Authored-By: Bryce Anglin <brycemanglin@gmail.com>
linkinator's offline directory crawl reports zero scanned links when all internal links are absolute URLs (the site is built with `site: 'https://stig-manager-react.exonical.dev'`). A proper link check needs a real local server (e.g. lychee against `pnpm preview`), which we will add in a follow-up. Removing the step keeps CI honest: astro build already catches broken Markdown references. Also: the Caddy snippet in installation/reverse-proxy.mdx was tagged `caddyfile`, which Shiki / astro-expressive-code does not bundle, and which produced a build-time WARN about falling back to txt. Switching to a plain `txt` fence silences the warning without changing the rendered output. Signed-off-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Co-Authored-By: Bryce Anglin <brycemanglin@gmail.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
Establishes the project's documentation site as the foundation for the
full STIG Manager re-implementation — it lands before any backend
or frontend code so the spec is the source of truth.
docs/— Astro Starlight workspace (TypeScript strict, standalonepnpm package).
(Postgres 18), Authentication (OIDC), Environment Variables,
Data & Permissions, Logging, Reverse Proxy, Hardening & TLS.
Review Handling, Rule Exceptions.
starlight-openapi. 174operation pages are auto-generated from the YAML.
Related Repos, Roadmap, Examples, License & Intent.
docs/openapi/stig-manager.yamlfrom upstream so
/api/v1byte-compatibility is documented.src/styles/custom.css); darkmode auto by default with a manual selector.
.github/workflows/docs.yamlrunsastro checkandpnpm buildon every PR; deploys to GitHub Pages onmain(deploy step isoptional / skipped on PRs).
README.md,LICENSE(MIT),.gitignoreshaped forthe multi-package repo (just
docs/for now;web/,api/slotsreserved for Milestone 1).
Stack adjustments from upstream that are reflected throughout the docs:
net/http+chi+ oapi-codegen + sqlc).Local build is clean — 179 pages built in ~15 s with no warnings.
Screenshots
Homepage (dark mode):
OpenAPI reference (full list of operations rendered inline):
Review & Testing Checklist for Human
section (Features → Installation & Setup → User Guide → Admin
Guide → Reference → The Project) reads in the order you expect.
/reference/apiand click through a handful of operations toconfirm request/response schemas render correctly (e.g.
POST /collections,GET /collections/{id}/reviews,POST /stigs)./installation/databaseand/installation/environment-variablesmatches the Postgres 18 +Go-binary direction you want — those are the pages most likely to
need follow-up wording tweaks.
/project/roadmapand confirm the milestone orderingmatches what you want for Milestones 1–16.
cd docs && pnpm install && pnpm dev, then openhttp://127.0.0.1:4321.
Pages on the repo at Settings → Pages → Source: GitHub Actions.
Until then the
deploy preview / productionjob is intentionallyskipped.
Notes
docker-compose. Those come in Milestone 1 (next PR).
PLAN.mdplanning scratch — thepublic roadmap lives at
docs/src/content/docs/project/roadmap.mdxinstead and is thecanonical source for milestone status.
linkinatorbut the siteis built with an absolute
site:URL, so every internal link isabsolute and gets filtered out by the same regex that skips remote
URLs (i.e. it would scan zero links). I'll add a proper link check in
a follow-up — likely
lycheeagainstpnpm previewon a real localserver, gated to a separate job.
between this implementation and upstream will be tracked by editing
the spec in a future milestone PR; we did not alter it in this
one.
any forward-ported documentation language remain governed by
upstream's
LICENSE.md/INTENT.md.Link to Devin session: https://app.devin.ai/sessions/022810763c4643c0848ba894c1512b92
Requested by: @Exonical