Skip to content
design

Reports and docs

The Fumadocs report library and the documentation bosund serves, written for engineers, evaluators, and customers.

On this page

Systems · Audio

Voice pipeline, from microphone to answer

A spoken request passes through six hops before bosun answers. Each hop runs within a fixed latency budget, so a slow model never holds up a safety call.

6 hops820 ms medianUpdated 5 Oct 2026
1Capture and wake wordaudio/capture40 ms
2Speech to textaudio/asr/nvidia310 ms
3Intent and slotsdialogue/nlu22 ms
Illustrative systems report: kicker, title, lead, meta pills and a hop list. Timings and paths are sample data, not measured Bosun results.

Reports are native MDX pages in the Fumadocs site under reports/content/docs/, organized by audience: product/ for crew and customers, features/ for evaluators, systems/ for working engineers. The documentation is a Fumadocs site in docs/, statically exported, built into bosund and served at /docs/. Both are read at a desk, on a laptop or a large screen, and both take the system's tokens, typefaces, icons and patterns.

01Same language as the appA report about the anchor watch looks like the anchor watch: the same surfaces, readouts and alarm rows.
02Prose firstA report is read, so prose sits in one reading column. Diagrams and hop traces use the available figure area within the page shell.
03Linked, never orphanedEvery report with a sibling carries a Related band, and every report links back to the system overview.

What reports and docs take from the system

System elementIn reports and docs
TokensShared bosunkit stylesheets with Night, Dusk, Day, and Bright themes
TypefacesIBM Plex Sans and IBM Plex Mono
SurfacesOne flat surface, hairlines between regions, the accent for now and active
IconsOpenBridge for maritime subjects, Lucide for generic ones
PatternsReadout strip, alarm row and status pill when a report shows what the crew sees
LayoutOne reading column for prose, a bounded figure area that respects navigation and the table of contents

A docs page

NavigationAnchor watchPassage planningWeather routingTides
Passage planningAsk bosun to plan a passage by voice or in chat. It checks the forecast, the tides and the vessel's limits before it suggests a departure time.GET /routing/passages/{id}
A docs page in the system: sidebar, title, prose and a code block

The report types guide defines daily and weekly activity reports, capability records, technical deep dives, audits, benchmarks, plans, and investor updates. Each has a reusable MDX starter.

Adoption: the reports site uses shared bosunkit styles; the documentation site's adoption of them is pending.

Numbers in a column

Investor communications provides reusable quarterly reports and emails, plus fundraising briefs and outreach. These starters use the kit's Day palette and reading roles; the report embeds IBM Plex and the email has fallback fonts and inline styles.

Do
8.4 m11.1 m9.7 m
Set a column of numbers in tabular figures, so every row takes the same width and the column reads as a column.
Don't
8.4 m11.1 m9.7 m
Don't let proportional digits jitter the column. 11.1 is wider than 8.4, so the units underneath stop lining up.

Shared report components

Use Report metadata for publication details and Report blocks for facts, metrics, comparisons, processes and commit records. Mermaid renders editable diagrams; Report figure presents existing artwork. The reports site imports these same Bosunkit implementations.

A report readers can assess

Start with a title, a short description and the report's conclusion or purpose. Set audience, publication date, category, tags, confidentiality and status in frontmatter. Distinguish the period being reported from the date published or updated. An unknown date or classification stays explicit; a confidentiality label does not enforce access. The metadata component presents those fields without repeating them as a second paragraph of loose labels.

Choose the report type before choosing its blocks. A daily activity report needs outcomes and evidence; a feature report needs scope and limits; a technical investigation needs methods, observations and open questions. Use a metric only when its unit, basis and source are known. Identify illustrative examples beside the figure, so copying a screenshot cannot turn them into apparent results.

Select a block for the information

Reader's questionPresentation
What changed, and why does it matter?A short lead and a summary panel
What are the key facts?A fact list or metadata, with stable labels
How does this compare?A comparison table or chart with a shared basis
What happened in sequence?A process, timeline or commit group
How is the system connected?Mermaid with a caption and source, or a report figure for authored artwork
What remains uncertain?A limitation, risk or decision block with evidence and an owner when known

Give large charts room on desktop while keeping their text legible. The prose measure and figure width have separate roles; neither may cover the “On this page” column. On a phone, let dense tables and code scroll within their frame. Use a diagram's expand control when fitting it would make its labels unreadable.

Reading beyond the browser

Use language-tagged fences for code, YAML and EPL. Preserve indentation and line breaks in the source; long lines scroll horizontally without soft wrapping. Avoid encoding an essential finding only in color, hover content or a component's decorative icon.

Check search and the Markdown export after adding data-bearing JSX props: static text extraction must expose the same facts as the page. Mermaid source remains readable when rendering fails. For a printed or static copy, verify the actual output, its fonts, diagram assets and links; an interactive browser preview does not establish that every export format includes them.

  • Grid: the report page layout.
  • Content: how reports and docs are written.
  • Typography: the type roles reports use.