Skip to main content

Documentation Guide

Overview

Write documentation for engineers building on Mississippi, not marketing copy for a product launch.

These rules apply to public docs under docs/Docusaurus/docs/ and define the writing contract the rest of the docs set should follow.

Mission

  • optimize for correctness, clarity, navigability, and maintainability
  • treat source code, tests, verified samples, design docs, and runtime evidence as the only valid basis for technical claims
  • prefer precise explanation over promotional tone

Non-Negotiable Truth Rules

  • Do not invent APIs, configuration keys, defaults, guarantees, limits, exception types, or behavior.
  • Do not assume Orleans behavior unless Mississippi evidence proves the claim.
  • If a claim cannot be verified from source code, tests, verified samples, design docs, or runtime evidence, do not state it as fact.
  • If sources conflict, reconcile them before publishing; if they cannot be reconciled, remove or narrow the claim.
  • Distinguish guaranteed behavior, default behavior, typical behavior, implementation detail, unsupported behavior, and future intent.

Choose The Page Type First

Every documentation page must answer one primary question and use one page type only.

Page TypeUse It ForDo Not Turn It Into
getting-startedFirst successful outcome for a new userA long tutorial or production guide
tutorialsGuided learning from start to finishA reference dump
how-toFast task completion for a competent userA beginner walkthrough
conceptsMental models, architecture, guarantees, trade-offsA procedural task guide
referenceExact contracts, options, defaults, constraintsA concept essay
operationsProduction guidance, safety, rollout, telemetryGeneric best-practice prose
troubleshootingSymptom-driven diagnosis and resolutionA subsystem overview
migrationVersion-to-version change guidanceRelease notes
release-notesConcise versioned changes and required actionA migration guide

Decide Which Page Type You Need

Use this decision matrix before writing.

If the reader needs to...Use this page typeStart here
Get to a first working result quicklygetting-startedGetting-Started Pages
Learn by building something end to endtutorialsTutorial Pages
Complete a specific task reliablyhow-toHow-To Guides
Understand how Mississippi works and what it guaranteesconceptsConcept Pages
Look up exact contracts or configurationreferenceReference Pages
Run Mississippi safely in productionoperationsOperations Pages
Diagnose a specific failure from evidencetroubleshootingTroubleshooting Pages
Upgrade between versions safelymigrationMigration Pages
See what changed in a releaserelease-notesRelease Notes

File And Navigation Rules

  • Keep the Docusaurus filesystem aligned with the intended sidebar structure where practical.
  • Every new public folder should include _category_.yml.
  • Use meaningful stable filenames instead of numbered filenames.
  • Use sidebar_position for sibling ordering.
  • Keep page scope narrow so one page answers one primary question.

Frontmatter Rules

Every public page must include these fields:

---
id: <kebab-case-doc-id>
title: <Title Case Page Title>
sidebar_label: <Short Sidebar Label>
sidebar_position: <number>
description: <One-sentence summary>
---

Add these only when they materially improve navigation or routing:

pagination_label: Short previous/next text
slug: /stable/public/url
tags: [controlled, taxonomy]
draft: true

Required Page Structure

Every doc must follow this structure in order:

  1. frontmatter
  2. H1 title
  3. ## Overview
  4. core content sections for the page type
  5. closing section(s)

Closing Section Rules

  • If the page is a section entry page, it must end with ## Learn More.
  • Otherwise, the page must end its core content with ## Summary followed by ## Next Steps.
  • Use the exact heading casing shown here. Do not substitute Recap, Related content, or lowercase variants of Next Steps.
  • Optional appendix sections such as ## References or ## Source Code may follow those closing sections.

Section Entry Page Rules

Section entry pages are landing pages for a documentation area.

  • They must orient the reader before listing ownership or links.
  • They must not read like placeholders, migration notes, or internal status updates.
  • They should explain what the area is for, what belongs there, when to start there, and how it fits the rest of Mississippi.
  • They should name representative package entry points when the area can be adopted independently.
  • They should use ## Current Coverage instead of apology language when describing what is available today.

Use Section Entry Pages for the detailed landing-page standard.

Markdown And Docusaurus Rules

  • Use .md unless the page genuinely needs MDX components.
  • Use relative Markdown links for internal docs links.
  • Use tabs only for true parallel variants such as OS, language, or hosting mode.
  • Use admonitions only when the information materially changes reader behavior.
  • All code fences must declare a language.
  • Prefer Mermaid source over screenshots for diagrams.

Mermaid Rules

Introduce every diagram with one sentence that explains what the reader should learn from it.

  • Use flowchart LR only when the diagram has four or fewer nodes; use flowchart TB when it has more than four. Docs render at a fixed width and readers scroll vertically, so wide LR diagrams overflow or become unreadably compressed.
  • Keep diagrams small and focused on one main point.
  • Use labels that match Mississippi terminology.

Code Example Rules

  • Every runnable example must come from an existing verified sample, a newly verified sample, or executable verification tied to tests or builds.
  • Include enough surrounding code for reuse and orientation.
  • Do not present partial snippets as copy-paste-ready programs.
  • If code is intentionally omitted, mark the omission with language comments, not ellipses.
  • Introduce each code block with one sentence that explains what it demonstrates.

Distributed-Systems Checklist

Apply this checklist only when the page describes runtime semantics, lifecycle, persistence, messaging, deployment, or failure behavior.

  • activation or lifecycle boundaries
  • concurrency or scheduling assumptions
  • ordering guarantees and non-guarantees
  • retry behavior and timeout behavior
  • persistence or durability semantics
  • failure handling and recovery implications
  • serialization and version compatibility implications
  • deployment or cluster assumptions
  • diagnostics or telemetry needed to validate behavior
  • security constraints
  • unsupported or dangerous patterns

Definition Of Done

A documentation change is not done until all of the following are true:

  • the page type is correct
  • the page is in the correct folder for the current information architecture
  • frontmatter is complete
  • internal links resolve
  • the Docusaurus site builds successfully
  • code examples are verified
  • claims about defaults, guarantees, and failure modes are evidenced
  • terminology is consistent with the codebase
  • the page links to adjacent content
  • the page does not overclaim what the framework guarantees

Migration Stance

Mississippi is in a hybrid transition.

  • New or substantially rewritten docs should follow this model immediately.
  • Existing feature docs may keep their current physical locations until they are touched.
  • Page type is the required content contract even when folder layout still reflects older feature-oriented structure.

Tone And Language

  • Define the reader before writing.
  • Use active voice and present tense.
  • Use one idea per sentence.
  • Avoid marketing language and vague qualifiers.
  • Use RFC 2119 terms only in rules sections.

Summary

  • choose the page type before writing
  • keep every technical claim tied to repository evidence
  • follow the required structure and closing-section rules
  • validate links, examples, and build output before treating a docs change as complete

Next Steps