# Requirements Management Guide

**Applies to:** this repository's GraphMD dataset and specification documents.
**Source of truth:** GraphMD records in `types/`, `records/`, `blocks/`, and `plugins/`, plus specification-side docs under `docs/00-Glossary/` and `docs/01-Requirements/`.

## Documentation Split

This repository keeps two kinds of documentation separate:

- **Specification-side docs:** terms, definitions, requirements, and generated or source specification records. These describe what must be true.
- **Implementation-side docs:** ADRs, RFCs, architecture notes, operations notes, reports, and reference material. These describe decisions, proposals, designs, and implementation guidance.

ADRs and RFCs may reference specifications, but they do not replace the specification source of truth.

## GraphMD Dataset

GraphMD content should live in the canonical dataset directories:

- `types/` for type definitions
- `records/` for first-class records
- `blocks/` for reusable content blocks
- `plugins/` for dataset plugins

Use wikilinks such as `[[type:recordId]]` when referring to GraphMD records. Keep generated specification artifacts separate from source records.

## Authoring Rules

- Put new terms in `docs/00-Glossary/Terms-and-Definitions.md`.
- Put requirements guidance and future requirements indexes under `docs/01-Requirements/`.
- Put ADRs under `docs/decisions/`.
- Put RFCs under `docs/rfcs/`.
- Do not encode a decision only as a requirement or a requirement only as a decision. Cross-link when both are relevant.
