flowCreate.solutions

Project Documentation Structure

This document defines the standard documentation structure for Flow Create Solutions projects.

It supports both:

  • Multi-repo: backend and frontend live in separate repositories.
  • Monorepo: multiple modules live in one repository (e.g., backend/, frontend/, infra/).

Non-negotiables

  • Every major module has a docs/ folder.
  • Every docs/ folder has an index.md that acts as a curated entry point.
  • Project docs do not duplicate standards: link to the centralized standards site for cross-project conventions.

Multi-repo structure (each repo is a module)

Use this when backend and frontend are separate repos.

Required

repo/
  README.md
  docs/
    index.md
    overview.md
    local_setup.md
    architecture.md
    operations.md
    troubleshooting.md
  • README.md
    • What is this repo/module?
    • How to run locally (one “happy path” command)
    • Link to docs/index.md
    • Links to relevant standards pages (don’t restate conventions)
  • docs/index.md
    • The “home page” for this module’s documentation
    • Short module description and quick links
    • Points to project-specific truth (ports, env vars, commands)
  • docs/overview.md
    • Scope and responsibilities
    • Key workflows and constraints
    • Links to standards for conventions
  • docs/local_setup.md
    • Exact steps for this repo (versions/ports/commands/env vars)
    • Must reference .env.example (or equivalent) when applicable
  • docs/architecture.md
    • High-level diagram and key boundaries
    • Links to standards architecture/conventions where applicable
  • docs/operations.md
    • Deploy notes, health checks, alerts, rollback guidance (project-specific)
  • docs/troubleshooting.md
    • Common symptoms → likely causes → actions
docs/
  api.md
  security.md
  testing.md
  decisions/
    YYYYMMDD_short_title.md
  • docs/api.md: API usage notes; link to OpenAPI/Swagger where available.
  • docs/security.md: project-specific threats/mitigations; link to standards security docs for baseline controls.
  • docs/testing.md: how to run tests in this repo; link to standards testing philosophy for structure.
  • docs/decisions/: ADRs for decisions that should persist beyond a PR description.

Monorepo structure (multiple modules in one repo)

Use this when the repository contains multiple major modules like /backend, /frontend, /infra.

Required (system-level + per-module)

repo/
  README.md
  docs/
    index.md
  backend/
    docs/
      index.md
      overview.md
      local_setup.md
      architecture.md
      operations.md
      troubleshooting.md
  frontend/
    docs/
      index.md
      overview.md
      local_setup.md
      architecture.md
      operations.md
      troubleshooting.md
  • README.md (repo-level)
    • What is this system?
    • Which modules exist and where their docs live
    • A single “happy path” local run (or a short menu of 2–3 commands)
    • Link to docs/index.md and each module docs entrypoint
  • docs/index.md (system home)
    • System overview + module map
    • Links to each module docs home
    • Pointers to standards for conventions
  • <module>/docs/* (module specifics)
    • Same required pages as the multi-repo standard
docs/
  architecture.md
  operations.md
  decisions/
    YYYYMMDD_short_title.md
  • docs/architecture.md: cross-module topology (only what’s needed; keep it high level).
  • docs/operations.md: system-level runbooks (deploy, rollback, incidents).
  • docs/decisions/: system-level ADRs.

When project docs need to reference how we do something as a company, link to the live Engineering Standards website rather than duplicating content:

Examples (website links):

Project docs should instead contain:

  • Exact environment variable names and example values (never secrets)
  • The local run command(s) that actually work
  • The ports used in dev and where they’re configured
  • How to deploy and roll back this specific system
  • Known failure modes and real troubleshooting steps