Reorganize docs around deliverables and build modes - #3733
Merged
Conversation
Restructure the documentation from an authoring-centric layout to a deliverable-centric one, making it clearer what docs-builder produces and providing a smoother onramp for newcomers. New top-level sections: - getting-started/ — decision tree, installation, serve, writing, pages & links - documentation/ — assembler, codex, isolated builds + syntax, configure, how-to - data/ (Structured Data) — MCP, API, OpenAPI, CLI Schema, exporters, release notes - integrations/ — docs-actions, elastic CLI - architecture/ — renamed from building-blocks, reframed as service architecture Key changes: - Remove asciidoc migration docs (no longer relevant) - Separate test fixtures into docs-tests/ with own docset.yml - Remove unsupported-feature stub pages (sidebars, passthrough, etc.) - Add comprehensive redirects for all moved paths - New content: assembler/codex/isolated build docs, exporters (Elasticsearch, LLM, OKF, plain text), docs-actions, elastic CLI, REST API placeholder, release notes explorer placeholder, serve & preview with HUD screenshots Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com> Co-authored-by: Cursor <cursoragent@cursor.com>
Combine the 11-page architecture/ section and the 12-page development/ section into a single 8-page development/ section organized by subsystem. New pages: - building-blocks.md — conceptual overview with mermaid diagrams (docset lifecycle, distributed model, assembly flow, link resolution) - link-infrastructure.md — merges link-service, link-index, link-catalog, outbound/inbound cross-links into one page with mermaid diagrams - navigation.md — merges 8 navigation sub-pages into 1 focused page (keeps SVG diagrams, drops C# implementation detail) Other changes: - Replace ASCII art in changelog-bundle-registry.md with mermaid diagram - Flatten ingest/ and link-validation/ subdirectories - Move all images to development/images/ - Add redirects for all old architecture/ and development/navigation/ paths - Update all cross-references throughout the docs Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com> Co-authored-by: Cursor <cursoragent@cursor.com>
- Fix broken relative path to developer-notes.md from deep in configure/ - Fix absolute include paths for release-notes snippets (now under data/) - Replace unsupported grid directive with list in navigation.md Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com> Co-authored-by: Cursor <cursoragent@cursor.com>
- Integrations nav title → Elastic Integrations - docs-actions nav title → GitHub - Simplify docs-actions page to link to the repo rather than attempting to document it; note it covers publishing, validation, style enforcement, and process enforcement Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com> Co-authored-by: Cursor <cursoragent@cursor.com>
Mark all development pages as old development notes likely to be deleted, with a warning admonition on each page and the landing page. Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com> Co-authored-by: Cursor <cursoragent@cursor.com>
Preserves the /syntax/ URL path that elastic.co/docs links to directly. Add documentation/syntax/ → syntax/ redirects for the intermediate location. Update all cross-references throughout the docs. Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com> Co-authored-by: Cursor <cursoragent@cursor.com>
Cover GitHub Pages publishing with the docs-builder action for isolated builds. Link to assembler/codex docs for more complex publishing setups. Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com> Co-authored-by: Cursor <cursoragent@cursor.com>
Document the branding: docset.yml config for white-labelling. Note that docs-builder is org-agnostic — Elastic chrome only applies when the GitHub org is 'elastic'. Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com> Co-authored-by: Cursor <cursoragent@cursor.com>
- Fold shell-autocompletion.md content into installation.md - Replace build-from-source section with a link to the GitHub repo - Add redirects for old shell-autocompletion paths Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com> Co-authored-by: Cursor <cursoragent@cursor.com>
Restructure so each build mode is its own section with scoped configuration, how-to guides, and infrastructure reference: - Isolated (baseline): docset.yml config, frontmatter, general how-tos - Assembler: site config, content sources, infrastructure, assembler how-tos - Codex: environment.yml config, infrastructure Renames: content-set-level → docset.yml, page-level → Frontmatter, site-level → assembler.yml. Content sources moved directly under assembler. Added infrastructure pages for both assembler and codex. Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com> Co-authored-by: Cursor <cursoragent@cursor.com>
Products and versions are global metadata, not assembler-specific. Give them their own top-level section between Documentation and Structured Data. Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com> Co-authored-by: Cursor <cursoragent@cursor.com>
Document version mutations (M.x, M.M, M+1, etc.) with examples and link to the substitutions syntax reference. Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com> Co-authored-by: Cursor <cursoragent@cursor.com>
Rename from synonyms.yml to search.yml (matching the actual config file name). Simplify to a brief description linking to the Elasticsearch exporter. Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com> Co-authored-by: Cursor <cursoragent@cursor.com>
…p-level pages - file-structure → isolated/urls.md (URL structure) - navigation concept → isolated/navigation.md (simple overview) - navigation reference stays at content-set/navigation.md (full reference) - extensions and cta moved from content-set/ to isolated/ (top-level) - content-set/index.md becomes docset.yml reference Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com> Co-authored-by: Cursor <cursoragent@cursor.com>
Redirects apply across build modes, not just isolated. Highlight that they are currently only implemented for assembler and codex builds. Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com> Co-authored-by: Cursor <cursoragent@cursor.com>
- navigation.md reference content → content-set/index.md (docset.yml ref) - Navigation patterns → isolated/navigation.md (concept page) - attributes.md → inlined as 'subs' section in docset.yml ref, links to substitutions syntax. Term 'attribute' replaced with 'substitution'. - Remove separate navigation.md and attributes.md pages Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com> Co-authored-by: Cursor <cursoragent@cursor.com>
Remove empty page.md shell and configure index. Promote content-set index to be the configure entry point with nav title 'Configuration'. Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com> Co-authored-by: Cursor <cursoragent@cursor.com>
…sions Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com> Co-authored-by: Cursor <cursoragent@cursor.com>
Add admonition noting this is Elastic-specific migration config that should not be manually edited. Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com> Co-authored-by: Cursor <cursoragent@cursor.com>
…structure - Flatten configure/site/ into configure/ (assembler.yml reference) - Extract navigation.yml as its own page under assembler - Add URLs page explaining path_prefix composition - Reorder: Configuration → Navigation → URLs → How-to → Infrastructure Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com> Co-authored-by: Cursor <cursoragent@cursor.com>
…s moves up Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com> Co-authored-by: Cursor <cursoragent@cursor.com>
Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com> Co-authored-by: Cursor <cursoragent@cursor.com>
…ranching - New environments.md merging content-sources + branching-strategy: publish environments, content source phases, branching strategies, CI configuration for tagged branching - Delete content-sources.md, branching-strategy.md, release-new-version.md - Move add-repo.md up from how-to/ to assembler/ - Remove empty how-to/ subfolder - Add redirects for all moved/deleted paths Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com> Co-authored-by: Cursor <cursoragent@cursor.com>
Content source phases are declared per repository in assembler.yml, defaulting to main/main for continuous deployment. Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com> Co-authored-by: Cursor <cursoragent@cursor.com>
Navigation: codex renders isolated nav as-is, landing page groups by codex.group. URLs: /g/group, /r/repository, then isolated URL structure. Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com> Co-authored-by: Cursor <cursoragent@cursor.com>
New page covering cross-link syntax, dependency declaration, validation flow (with sequence diagram), link index lifecycle, build resilience, and inbound validation. Placed after Catalog Configuration, with Redirects moved to follow it. Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com> Co-authored-by: Cursor <cursoragent@cursor.com>
- Split cross-links.md into:
- cross-links.md: syntax, declaring deps, validation, inbound checks
- distributed-builds.md: link index, link service, link catalog,
build resilience, assembler/codex composition
- Delete development/building-blocks.md, link-infrastructure.md,
link-validation.md — all useful content absorbed into the new pages
- Update all cross-references
Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Rewrite _redirects.yml with correct targets for all moved pages. Fix ~30 broken relative/absolute links across content files after the documentation-by-build-mode restructure. Zero errors/warnings. Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com> Co-authored-by: Cursor <cursoragent@cursor.com>
…tributed Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com> Co-authored-by: Cursor <cursoragent@cursor.com>
Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com> Co-authored-by: Cursor <cursoragent@cursor.com>
Point NavigationTestsBase at docs-tests/ docset instead of docs/. Update all test assertions for the new path structure: - Remove testing/ prefix from redirect, breadcrumb, and mover paths - Fix relative path depths in mover assertions - Read settings YAML from docs-tests/ on disk - Add nested-toc test fixture to docs-tests/ - Update PhysicalDocsetTests for new docs/ structure - Rename _redirects.yml to redirects.yml (matches docset.yml convention) All 1913 Markdown tests and 592 Configuration tests pass. Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com> Co-authored-by: Cursor <cursoragent@cursor.com>
…paths - Update Navigation.Tests/PhysicalDocsetTests for new docs/ structure (cross-links test now uses docs-tests/ docset) - Add redirects for all 28 testing/* paths to satisfy CI diff-validate (test fixtures moved to docs-tests/, redirects point to index.md) Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com> Co-authored-by: Cursor <cursoragent@cursor.com>
…dation - Update authoring Setup.fs to read redirect fixtures from docs-tests/ - Restore complex redirect test entries in _redirects.yml (needed by cross-link redirect authoring tests) - Regenerate links.json snapshot with new page paths and redirect entries - Add development/toc.yml (assembler requires named toc section) - Update Navigation.Tests/PhysicalDocsetTests for new structure - Add testing/* redirects for CI diff-validate Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com> Co-authored-by: Cursor <cursoragent@cursor.com>
Root cause: authoring tests read docs/_redirects.yml from disk and need complex redirect entries (with anchors, many:, etc.) for cross-link redirect testing. But the assembler validates that redirect targets exist as real files — the complex entries point to testing/redirects/* which only exist in the mock, not on disk. Fix: Setup.fs now merges docs-tests/redirects.yml entries into the mock _redirects.yml at test time, with path prefix rewriting (redirects/ → testing/redirects/). The real _redirects.yml stays simple (testing/* → index.md) for assembler validation. Also fixed: - copyTargetsFromRealDocsIntoMock checks docs-tests/ for testing/* paths - Final redirects.yml write uses merged version (was overwriting with original) - !redirects/ path prefix handled in replacements - PhysicalDocsetTests: development is now a toc: ref, not a folder - Regenerated links.json snapshot with correct redirect structure All 3007 tests pass (1913 + 599 + 181 + 314). Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com> Co-authored-by: Cursor <cursoragent@cursor.com>
- Add missing testing/redirects/* entries to _redirects.yml for CI diff-validate (third-page, 4th-page, 6th-page, 7th-page, 9th-page, first-page-old, second-page-old) - Add development/link-validation toc section required by assembler navigation config - Fix Windows line ending issue in redirect YAML merge (handle \r\n) - Strip simple redirect entries before merging complex test entries to avoid YAML duplicate key errors Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com> Co-authored-by: Cursor <cursoragent@cursor.com>
Remove ~100 lines of redirects for paths that only existed within this PR's commit history (architecture/*, documentation/configure/*, documentation/syntax/*, documentation/how-to/*, etc.). Keep only redirects from main's actual paths to their final destinations. 178 lines down from 284. Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com> Co-authored-by: Cursor <cursoragent@cursor.com>
Mpdreamz
enabled auto-merge (squash)
July 28, 2026 09:54
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.
Why
The docs were organized around authoring tasks (syntax, configure, contribute) which made sense when docs-builder was primarily a docs tool. Now that it has multiple deliverables (assembler, codex, isolated builds, exporters, MCP, API, release notes, OpenAPI/CLI schema support), newcomers had no clear path to understand what docs-builder produces or how to onboard to a specific build mode.
What
Complete restructuring of the documentation from an authoring-centric layout to a deliverable-centric one:
Dedicated test docset:
docs-tests/Test fixture content (redirects, mover pages, nested structures, settings YAML, release notes fixtures) is now separated into
docs-tests/with its owndocset.yml. This cleanly splits real published documentation (docs/) from content that only exists to exercise test scenarios.docs-builder servedefaults todocs/(the real docs)docs-builder serve --path docs-testspicks up the test docsetNavigationTests,MoverTests,BreadCrumbTests,SettingsInclusion, etc.) now build againstdocs-tests/instead ofdocs/testing/docs-tests/without cluttering the published docsAll 2505 tests pass (1913 Markdown + 592 Configuration).
Also removes obsolete migration docs and unsupported-feature stubs, and adds comprehensive redirects for every moved path.