--- name: docouture-docs-internals description: "How a docouture Antora documentation site is put together: the playbook, the docs/antora.yml component descriptor, the four names that must agree, the ROOT+main default layout, promoting Guides/Reference to their own modules, the per-artifact-module strategy for a monorepo, and the home-page vs. content-page patterns. USE WHEN adding a page or module, renaming the site/component, deciding whether a section or artifact earns its own module, building a landing/home page, or diagnosing a site that builds with zero pages or fails with 'start page not found'. EXAMPLES: 'add a new module', 'rename this docs site', 'build a marketing home page', 'the site builds but has no pages', 'start page not found', 'should this artifact get its own module'." --- # Site structure This site was scaffolded by `docouture new` (`@inditextech/docouture-cli`). This skill covers the pieces that make it hang together — where each name is set, how a page becomes reachable, and the two page patterns (home vs. content) worth copying rather than reinventing. - `reference/naming.md` — the four names that must agree, and how to fix them when they don't (`docouture doctor` checks this automatically). - `reference/page-patterns.md` — the home-page block structure, the recurring content-page shapes, the always-present `ROOT` + `main` layout, and how a site grows more modules (promoted sections, or one per artifact in a monorepo). - `reference/antora-extensions.md` — what `@inditextech/docouture-antora-extensions` (a different kind of extension from the authoring blocks in `docouture-writing-docs-pages`) provides: the module switcher, site footer, search index and `llms.txt` generation. For AsciiDoc authoring itself — xrefs, admonitions, code blocks, this site's custom blocks — see the `docouture-writing-docs-pages` skill. For *which* modules/pages a site should have in the first place, see `docouture-getting-started` (new site) or `docouture-documenting-changes` (an existing site gaining a new module/artifact). ## The moving pieces ``` docs/ antora-playbook.yml site title, content source, UI bundle, asciidoc/antora extensions antora-playbook.local.yml same shape, but content.sources[] is just `branches: HEAD` — what `docouture dev` and PR verification build against, since a PR/feature-branch checkout doesn't have `main` or a release tag package.json name, devDependencies (docouture-cli, ui-bundle, the two extension packages), the `build`/`dev` scripts src/ antora.yml component descriptor: name, title, version, nav modules//nav.adoc navigation tree, one per module ``` The whole starter template — `package.json`, both playbooks, the nested `src/` — was copied under this repository's own `docs/`, so `antora-playbook.yml` lives at `/docs/antora-playbook.yml` and the component descriptor ends up one level further down, at `docs/src/antora.yml`. That's why `antora-playbook.yml`'s `content.sources[0]` reads `url: ..` (this repo's root, one level up from `docs/`) and `start_path: docs/src`. `docs/build/` (git-ignored) is generated output, not part of this tree — **never edit or delete it directly.** If `docouture dev` is running, it owns that directory and rebuilds it live on every save; a second, ad-hoc build into the same path (or clearing it by hand) pulls the site out from under that running server. ## Versioning `docs/antora.yml`'s `version`/`prerelease` fields are identical on `main` regardless of which versioning mode this site uses (`version: prerelease`, `prerelease: true`) — what differs is only which git refs `antora-playbook.yml`'s `content.sources[0]` aggregates from (`tags: ['docs/stable']` vs. `tags: ['docs/v*']`). If this site was scaffolded with `--mode versioned`, see the `docouture-docs-versioning` skill for cutting a release; a **standalone**-mode site (the default) has no separate skill for this — `docouture doctor` and the `docouture-release.yml` workflow are all that's needed.