docs: make the user guide self-contained Starlight source - #79
Merged
Conversation
docs/guide/ becomes content source for a Starlight site living in a separate repository, rather than documentation meant to be read on GitHub. Where the two readers conflict, Starlight wins. - Remove all 18 relative links leaving the folder (15 into docs/adr/, one to CONTEXT.md, one to a design doc, one to the Dockerfile). The rationale a user needs is absorbed into prose in their own language; the rest is cut. - Add title/description/sidebar.order frontmatter to every page and drop the body H1s, which Starlight renders from the title. Ordering is all-or-nothing there, so all eight pages declare one. - Rename README.md to index.md as the section landing page. - Rewrite the 18 internal cross-references as absolute /guide/... paths, since Astro never rewrites relative .md links. - Convert the blockquote callouts to typed asides: caution for security and spend, tip for recommendations, note for version and migration notes. - Gloss domain vocabulary inline (Person, SOUL, MEMORY) now that CONTEXT.md is not reachable from here, and disambiguate Argus's Service principal from the Kubernetes Service in the hosting guide. - Drop a `cp pkg/skill/builtin/...` command that only worked for someone who had cloned the repo. ADR 0022 records the decision, the GitHub-versus-Starlight trade-off and the requirements this places on the site repository. AGENTS.md states the rule so it survives. The Starlight conventions it relies on were verified against 0.41.5 / Astro 7.1.6 and are cited under docs/research/.
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.
docs/guide/becomes content source for a Starlight site living in a separate repository, rather than documentation meant to be read on GitHub. Where the two readers conflict, Starlight wins — that trade-off, and the reasoning behind it, is recorded in ADR 0022.What changed
docs/adr/, one toCONTEXT.md, one to a design doc, one to theDockerfile. The rationale a user actually needs is absorbed into prose in their own language; the rest is cut. Nothing in the guide now points at an ADR, a design document or a source path.title,description,sidebar.order), body<h1>s dropped since Starlight renders the heading fromtitle. Ordering is all-or-nothing in an autogenerated sidebar — a page withoutordersinks toNumber.MAX_VALUE— so all eight declare one.README.md→index.md, the section landing page./guide/…paths, because Astro never rewrites relative.mdlinks.cautionfor security and spend,tipfor recommendations,notefor version and migration notes.CONTEXT.mdis unreachable from here, and Argus's Service principal disambiguated from the KubernetesServicethroughout the hosting guide.cp pkg/skill/builtin/...command that only worked for somebody who had cloned the repo.AGENTS.mdstates the rule so it survives; theCONTEXT.mdService entry gains the Kubernetes disambiguation.Requirements this places on the site repository
All three are load-bearing and none can be satisfied from this repo:
src/content/docs/guide/. Starlight'sdocsLoader()hard-codes itsbaseto<srcDir>/content/docsand does not expose it, so the folder must physically appear there — submodule or CI sync. Mounted elsewhere, every internal link breaks silently.astro.config.mjs. An autogenerated group takes the directory name verbatim, sochannels/anddeployment/render lowercase. No_meta.json, no frontmatter override, no per-directory config can fix that from the content side.baseinto those, so a site deployed under a sub-path breaks all of them.The Starlight conventions relied on here were verified against Starlight 0.41.5 / Astro 7.1.6, with sources pinned to commit SHAs, in
docs/research/starlight-content-conventions.md.Known costs, accepted
docs/guide/no longer reads well on GitHub: internal links point at site slugs,:::cautionshows as literal text, and the folder has no landing page because GitHub does not renderindex.md.AGENTS.mdsection; a CI check would be a grep and was deliberately left out to keep this change scoped to documentation.Follow-ups, not addressed here
cpleaves a gap:argus skill lsshows only name and description, and the body is not exportable from the CLI. Closing it needs a command (argus skill export), not a doc change.skills.mdcontradictCONTEXT.md. The page states that skills are an analyst+ capability viewers cannot enumerate, and that RBAC is enforced at the tool layer. The glossary sayslist_skills/read_skillsit in every Session's registry whatever the Role, and calls Tool-layer RBAC a no-op today. Left untouched: correcting them means publicly documenting an unenforced control, which is a communication decision rather than a typo.