Product
Register
product
Platform
web
Users
Engineering and quality teams who plan, author, and trace technical documentation throughout a systems-engineering project lifecycle. Primary users work with V-Model deliverables — generating and maintaining SRS, SVD, STD, and STR documents from source code repositories.
The deliverable set targets defense and aerospace documentation standards (MIL-STD, ECSS). Document type names, lifecycle stage naming, and traceability structure follow that regime — they are domain terminology, not labels to be reworded for friendliness.
Sessions are long and task-focused: a user configures a project once, then returns repeatedly to author, regenerate, review, and trace. There is no casual or first-time-visitor audience.
Product Purpose
MILTON provides a unified workspace where teams configure project templates, link documentation blocks to source repositories, generate PDF deliverables, and trace requirements through every stage of development — all driven by AI-assisted document generation that keeps the documentation set consistent with the codebase.
Positioning
The documentation workspace that closes the loop between source code and V-Model artifacts — so traceability, compliance, and consistency are built into the engineering workflow rather than bolted on after the fact.
Operating Context
The user’s path through the product, as the shipped routes describe it:
- Project — create a project, land on its dashboard (
/projects/:id/dashboard). - Sources (
/projects/:id/sources) — register Git repositories by URL, set file exclusions, optionally enable LLM-assisted naming, then run a cluster scan that returns detected clusters and components. Repositories are cloned server-side onto a shared volume; the scan snapshot is cached per repository. - Configuration (
/projects/:id/config) — set the project’s LLM behavior via three presets (Writer,Coder,Analyst) with per-project overrides and API keys stored encrypted. - Templates (
/projects/:id/templates,.../:templateId/edit) — build a document template on a node canvas (XYFlow) with a structure sidebar, style panel, live preview panel, manual text editor, a file-source table, and a command palette. Templates are instantiated into real documents. - Documents (
/projects/:id/documents,.../:documentId) — the generated document, block by block, with a PDF deliverable at the end. - Settings (
/settings) — account and application settings.
Generation is asynchronous and long-running. The client joins a SignalR document group and receives Progress, BlockUpdated, BlocksAdded, SectionsAdded, DocumentCompleted, and Error pushes while a document builds. Waiting is a first-class state in this product, not an edge case — progress, partial results, and failure of an individual block must all be legible without a page reload.
Access is authenticated (Keycloak behind a BFF) and multi-tenant. The session carries roles, permissions, and a tenantId; the UI is expected to reflect permission differences rather than assume a single all-powerful user.
Capabilities and Constraints
Content model. Documents are made of sections and polymorphic content blocks. Block types are fixed: Requirement, TestCase, TestResult, Text, Mermaid, Scanner, TraceMatrix. Each has genuinely different shape and density — a trace matrix and a paragraph of text cannot share one card treatment. Blocks may spawn further blocks during generation, so a document’s structure grows while the user watches it.
Frontend stack (existing, not up for re-selection). React 19 + TypeScript, Vite, TanStack Router (file-based routes) / Query / Table, Tailwind CSS v4, shadcn + Radix primitives, @xyflow/react for the template canvas, TipTap for rich text, dnd-kit for reordering, framer-motion, sonner for toasts, react-hook-form + zod. The API client under src/api/ is generated by orval from the API’s OpenAPI document — do not hand-edit it. Theming runs through next-themes with an explicit dark variant for every surface.
Hard technical constraints:
- No external CDNs or remote assets — ever. All fonts, CSS, JS, and images are vendored locally (Roboto and Roboto Slab ship via
@fontsource-variable). The application is built to run without internet access. - No third-party analytics, embeds, or hosted widgets.
- Committed brand marks live in
public/:M.svg,M-transparent-light.svg,M-transparent-dark.svg.
Undecided / not yet established: pricing, licensing, packaging, public marketing surface, onboarding for external customers, and localization. None of these have been decided; work must not assume them.
Brand Commitments
Personality. Precision, clarity, intelligence. Serious tool for serious documentation work — not flashy, not playful, but unmistakably well-crafted. The interface communicates confidence through restraint: clean hierarchy, purposeful spacing, color used sparingly to guide attention.
Name and marks. “MILTON”. The M marks in public/ are the only committed identity assets.
Anti-references (confirmed as binding):
- B2B SaaS clichés (generic dashboard templates, purple-to-blue gradients, over-rounded cards)
- “Startup playbook” design — no celebratory badges, no cartoon mascots, no gamification
- Over-styled documentation UIs that prioritize decoration over content density
- Dark patterns or “delightful” micro-interactions that get in the way of power users
Evidence on Hand
MILTON is internal and not yet deployed. There are no external users.
What exists: the running application and the documents it produces, the M brand marks, and the codebase itself.
What does not exist and must never be fabricated: customers, logos, testimonials, quotes, case studies, press, adoption numbers, benchmarks, uptime or accuracy metrics, certifications, pricing, and any claim of production use. If a surface needs proof, it uses real product output or it says nothing.
Product Principles
- Content first, chrome second. The document content and structure hierarchy drive layout decisions. Chrome (sidebar, header, panels) recedes when the user is focused on writing.
- Predictable structure. Every page answers “where am I and what can I do here?” within a glance. Consistent navigational patterns across projects, documents, templates, and settings.
- Precision over novelty. Standard controls that behave as expected. No custom interactions that break keyboard nav or screen readers.
- Density without clutter. Information-dense screens (document editors, trace link tables, template canvases) use careful whitespace and surface hierarchy to avoid overwhelming.
- Dark mode is a first-class citizen, not an afterthought. Every surface, token, and elevation value has an explicit dark variant designed for extended sessions.
- Long-running work stays legible. Generation takes minutes and streams in. Progress, partial documents, and per-block failure are designed states, not spinners bolted on afterward.
Accessibility & Inclusion
- WCAG AA as the baseline target. Body text contrast ≥ 4.5:1 measured against actual background tokens, not against white.
- Keyboard-navigable throughout — all interactive elements reachable and operable without a pointer.
prefers-reduced-motionrespected for every animation and transition.- Focus indicators visible at every interactive boundary.