Behavior model

August 14, 2026 · View on GitHub

synopsis.json is the stable integration surface. The root carries schemaVersion, title, source identity, modules, and non-fatal diagnostics. The hierarchy is:

SynopsisDocument
└── module
    └── feature
        └── scenario
            ├── given[]
            ├── when
            ├── then[]
            └── source

A scenario also carries its subject, language, and surface (Backend, Frontend, or Model). A step has readable text and may contain source evidence. Locations are repository-relative and optionally contain a browser URL.

The model intentionally does not contain C# symbols, TypeScript AST nodes, test-runner objects, or HTML. New input languages and new renderers meet at this boundary. Consumers must check schemaVersion; additive fields within 1.x are compatible, while changed meaning requires a new major schema version.