Skip to content

Migrate docs to Antora + publish Dokka as sibling /api/ #494

@michalharakal

Description

@michalharakal

Goal

Migrate mainline SKaiNET's docs to Antora following Divio documentation principles (Tutorials / How-to / Reference / Explanation), add a GitHub Actions workflow to build and publish the site, integrate the existing Gradle-generated ops-docs (via the `generateDocs` custom task) into the Antora Reference section, and bundle the Dokka-generated API reference as a sibling `/api/` path of the Antora site. Use the same Docker image as `SKaiNET-transformers` (`node:20-alpine` + `@antora/cli` + `asciidoctor-kroki` + mermaid-cli via Chromium/Puppeteer).

Context

Several pre-staging signals show this migration was anticipated but never finished:

  • `docs/modules/operators/generated/` already matches Antora's module layout
  • `docs/nav.adoc` exists as a stub written in Antora xref style
  • `.gitignore` has a commented `## antora` section listing `_public` and `.cache`
  • The custom `GenerateDocumentationTask` already outputs AsciiDoc with backend-status tables

Mainline has Dokka 2.1.0 fully configured (`dokkaGenerate` aggregates ~21 modules), currently published to GitHub Pages via `dokka-pages.yml` which will be superseded by the new workflow.

Phased execution (6 commits)

  1. Scaffold — `antora.yml`, `antora-playbook.yml`, `docs/modules/ROOT/nav.adoc` (minimal), landing page, `docs/.docker/Dockerfile` (verbatim from transformers).
  2. Content migration — 11 `.md` files converted to `.adoc` and placed under Divio categories; images moved; 3 mermaid fences hand-fixed; nav populated.
  3. Repoint ops-docs generator — change `documentation { outputDirectory }` in root `build.gradle.kts` to the new Antora path; delete old `docs/modules/operators/` tree.
  4. Ops-status matrix emitter — extend `GenerateDocumentationTask` with `emitOpsStatusMatrix()` writing a single-page operator × backend matrix.
  5. GitHub Actions workflow — new `.github/workflows/docs.yml` with gha cache on the Docker image, `generateDocs` + `dokkaGenerate` pre-steps, Antora in container, Pages deploy gated on `develop`. Delete `dokka-pages.yml`.
  6. Dokka bundle wiring — `bundleDokkaIntoSite` Copy task in root `build.gradle.kts`; invoked from workflow after Antora writes `docs/build/site/`.

Plan authored and saved locally before execution. Each commit verified with a local `docker run ... antora ... --failure-level=warn` build before pushing.

Out of scope

  • Redesigning the docs content itself (conversions are mechanical, voice/style unchanged).
  • Moving LLM-specific guides out of mainline — they stay here with a top-of-page cross-link to `SKaiNET-transformers`, following the repo-split policy from 2026-04-13.
  • External link checking (noisy; add later).
  • Publishing the Docker image to GHCR (transformers doesn't; keeping parity).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions