Verio keeps a project’s design controls as YAML under .verio, and every file it writes names its schema on the first line:
# yaml-language-server: $schema=https://verio.dev/schema/requirements.schema.jsonEditors use it to complete and validate as you type. It is there for everything else too — a script, or an agent asked to change a requirement — so that what a file is allowed to contain travels with the file rather than living only in the tool that wrote it.
The project record — what it is called, and what makes a folder a Verio project.
The design, and whatever part of it is not kept in a file of its own.
The requirements tree: user needs, requirements, specifications, tests.
The software architecture (IEC 62304 5.3), as sections of prose.
The SOUP list (IEC 62304), scanned from the project’s own dependencies.
The ISO 14971 analysis: each risk with its hazard, harm, estimates and controls.
One version: the interval it covers, and the changes it carries, keyed by identifier inside it. unreleased.yaml is the one being worked on.
A standalone risk analysis, for a file that keeps only that.
These are the schemas the tool itself validates against, served from the same source — not a copy that can drift from it.