# DFD — <system (Level 0) or feature (Level 1/2)> (/docs/maintain/_templates/dfd)

- **Status:** Draft
- **Last updated:** YYYY-MM-DD
- **Related ADRs:** ADR-NNNN

> Snapshot of the system as it stands today. Edit in place; never record what changed.
> Conventions: `content/docs/maintain/dfd/index.mdx`. Levels balance — a child's flows match its parent's.

## Scope [#scope]

Which process this decomposes, and its parent diagram.

## Diagram [#diagram]

Draw this diagram with Archify too. In a copy, wrap the fence in
`<Diagram src="/diagrams/<project-slug>/<slug>.html" title="…">` … `</Diagram>`, with nothing else
inside: the page shows the Archify view and its Markdown the Mermaid. Outside the templates, a
bare Mermaid fence fails the build (ADR-0022).

```mermaid
flowchart LR
  Ext["External Entity"]

  subgraph Trust["Trust boundary — the site"]
    P1(("1.0<br/>Process name"))
    D1[("D1 · Data store")]
  end

  Ext -->|"data that moves"| P1
  P1 -->|"record written"| D1
  D1 -->|"record read"| P1
  P1 -->|"result returned"| Ext
```

## External entities [#external-entities]

| Entity | Role |
|---|---|

## Processes [#processes]

| # | Process | Input → Output |
|---|---|---|

## Data stores [#data-stores]

| ID | Store | Contents | Classification |
|---|---|---|---|
| D1 | | | Public / Internal / Confidential / Restricted — see [`../security/data-classification.mdx`](../security/data-classification.mdx) |

## Trust boundary crossings [#trust-boundary-crossings]

Every flow that crosses a boundary, with how it is authorised and whether private content can
travel on it.

| Flow | Direction | Authorisation | Private content? |
|---|---|---|---|
