Guidance for structuring Ark documentation using the Diataxis framework...
Guidance for structuring Ark documentation using Diataxis adapted for Ark's needs.
docs/content/
āāā Introduction
āāā Quickstart
āāā Tutorials ā Linear learning paths
āāā How-to Guides ā Task-oriented, by persona
āāā Core Concepts ā Understanding "why" and "how"
āāā Reference ā Factual lookup material
āāā Marketplace ā External link
āāā Disclaimer
| Diataxis | Ark Term | Why |
|---|---|---|
| Explanation | Core Concepts | More accessible |
Purpose: Hands-on lessons for newcomers.
Characteristics:
Writing style:
Content belongs here if:
Examples: Quickstart, Running the Dashboard, Starting a New Project, Complete Worked Example
Purpose: Help competent users complete specific tasks.
Organized by persona:
Writing style:
Content belongs here if:
Purpose: Explain what Ark is, how it's designed, and why.
Topics:
Writing style:
Content belongs here if:
Purpose: Factual lookup material.
Organized by type:
Writing style:
Content belongs here if:
Is the reader LEARNING or WORKING?
ā
āā LEARNING (studying)
ā āā Hands-on, step-by-step? ā TUTORIALS
ā āā Understanding concepts? ā CORE CONCEPTS
ā
āā WORKING (applying)
āā Completing a task? ā HOW-TO GUIDES
āā Looking up facts? ā REFERENCE
Hub pages link to content without moving files:
tutorials.mdx - Lists tutorials in order.how-to-guides.mdx - Groups by persona.core-concepts.mdx - Groups by topic.reference/index.mdx - Groups by type.Hub pages should:
| Persona | Sections |
|---|---|
| End users | Quickstart, Tutorials |
| Agent builders | Tutorials, How-to (Build) |
| Platform engineers | How-to (Operate), Reference |
| Contributors | How-to (Extend), Core Concepts |
rk. Never ARK. This matches the repo's CLAUDE.md and is enforced in review.Learn how to [contribute to Ark](url).To contribute, see [here](url).| Don't put in... | This content... |
|---|---|
| Tutorials | Explanations, choices. |
| How-to guides | Teaching, complete reference. |
| Core concepts | Instructions, reference. |
| Reference | Instructions, explanations. |
CRD and service reference pages follow a consistent template. Use reference/resources/query.mdx, team.mdx, and tools.mdx as the models:
title and a description of the form "<Kind> CRD reference ā ...".## Spec ā a single annotated YAML example, comments grouped Required / optional.## Fields ā a table with columns Field | Type | Required | Description, including enum values, defaults, and cross-field rules.## Status ā a status YAML block, a ### Status fields table, a ### Phases table where a phase enum exists, and a ### Print columns line naming the columns kubectl get renders.## Related ā links to adjacent pages.For an overview/index page, use one table listing every resource with its Kind and API version. Don't keep a second overlapping overview page ā one topic, one page. The same applies to service APIs: one service, one reference page (Ark API, Broker Service), with the built-in OpenAPI/Swagger framed as the always-current source of truth.
Reference docs must be true to the code, not to intent or memory. Pages can read plausibly and still be wrong ā this is the most common defect. Before writing or reviewing a reference page, verify every claim:
ark/api/v1alpha1/*_types.go and the generated CRD in ark/config/crd/bases/. +kubebuilder:validation:Enum, +kubebuilder:default, and the json tags are authoritative ā not the existing prose.ark/internal/controller/, ark/internal/validation/). Migration targets, same- vs cross-namespace resolution, and validation rules live here. Example: a deprecated graph team strategy migrates to sequential (edges discarded), not selector ā confirmed in validation/defaults.go. Verify even when a reviewer asserts otherwise.kubectl explain, kubectl get <kind> (for the print columns), and real resource YAML. For a service API, hit the running service's /openapi.json and Swagger.git grep <pattern> <tag> shows when something changed; git merge-base --is-ancestor <commit> <tag> confirms what actually shipped. Don't label a section "Unreleased" or cite a version (e.g. there is no v0.2.0) without checking.This session's rewrites found extensive fictional fields (spec.model, systemPrompt, spec.agents), non-existent CLI commands (ark check, ark describe; it's devspace run routes, not make routes), and wrong migration targets ā all in pages that looked fine.
cd docs && npm run build (Turbopack). The production build catches MDX and mermaid errors the dev server silently tolerates, and prints a page count on success. Never push a docs change without a clean build.