Appendix A — Glossary
This appendix is a flat, alphabetical reference for every named construct the series introduces. Each entry is a two-to-four sentence definition followed by a deep link to the chapter that defines it. No prose, no narrative — scan for the term you need.
Entries are grouped into nine sections:
- Decorators — the six class and method decorators that wire the chain.
- Base classes and core types —
Feature,Requirement<S>,ACResult,Priority,TestLevel. - Requirement IDs (22) — every
REQ-*that governs the package. - Feature IDs (25) — every
*Featureclass that@Satisfiesone or more requirements. - Styles (5) — the built-in
RequirementStylepresets. - Scaffolders (7) — the pluggable test-generator registry.
- DDD vocabulary — the tactical-design terms the package re-enters in chapter 20.
- FSM vocabulary — the three finite-state machines that drive lifecycle.
- External standards referenced — EARS, SIL, ISO 29148, SysML, BDD, Volere, A3, PDCA, Kanban Classes of Service.
@Exclude
Method decorator that removes a helper from requirement scanning. The compliance scanner and the ESLint rule both skip any method tagged @Exclude(), so utility functions inside a @FeatureTest-decorated class do not inflate the AC-verification registry. Used sparingly — only for genuinely local helpers that are neither ACs nor test methods. Defined in chapter 03.
@Expects
Method decorator placed on an abstract AC method of a Feature to declare which TestLevels are expected to verify it. The compliance scanner reads the arguments statically via AST (the runtime is a no-op) and builds the AC × TestLevel matrix that planWrites consumes. Absence of @Expects defaults to [TestLevel.Unit], keeping the common case zero-config. Defined in chapter 03.
@FeatureTest
Class decorator that binds a test class to a Feature subclass. It is generic over the Feature type, so @Verifies invoked on its methods gains keyof T safety and the compiler catches AC typos. It also auto-registers the class with vitest (generating a describe block internally), so no test file in the package contains bare describe or it calls — satisfying REQ-DOG-FOOD. Defined in chapter 03.
@Refines
Class decorator placed on a Requirement to declare that it refines (derives from, decomposes) one or more parent Requirements, aligned with SysML's refine/derive relation. It populates a bidirectional registry (getRefinementLinks()), so both parent.refinedBy() and child.refines() views are available to the trace core. Defined in chapter 03.
@Satisfies
Class decorator placed on a Feature to declare that it satisfies one or more Requirements, aligned with SysML's satisfy relation. The decorator populates a bidirectional registry (getSatisfactionLinks()), so both feature.satisfies() and requirement.satisfiedBy() queries are O(1) at scanner time. This is the single hop that connects the WHY tier to the WHAT tier. Defined in chapter 03.
@Verifies
Method decorator that binds a test method to the AC it verifies. The generic parameter is the Feature type carried by the enclosing @FeatureTest, and the argument is constrained to keyof T & string — so a typo in an AC name is a compile error, not a runtime "test not found". This is the single hop that connects the PROOF tier to the HOW-MEASURED tier. Defined in chapter 03.
ACResult
The discriminated return type of every abstract AC method on a Feature. Its shape forces tests to return a structured pass/fail record rather than a bare boolean or a thrown assertion, making AC outcomes first-class data that the compliance reporter can aggregate. Defined in chapter 03b.
Feature
Abstract base class representing the WHAT tier of the four-tier chain. A Feature subclass declares zero or more abstract AC methods returning ACResult, and is wired to the WHY tier via @Satisfies(Req1, Req2, …) class decorators. Every AC is verified by one or more tests via @FeatureTest + @Verifies. Defined in chapter 03b.
Priority
Enum-like branded type carried on both Requirement and Feature specs, used by the style validators and the compliance gate. IndustrialStyle keys its SIL gates on Priority; AgileStyle couples it to INVEST scoring. Defined in chapter 03b.
Requirement<S>
Abstract base class representing the WHY tier, generic over a RequirementStyle S. The type parameter pulls in the style's vocabulary, validators, templates and reporter, so a single Requirement is a style-aware object rather than a free-form record. Fields include typed statement, rationale, fitCriteria, verificationMethod, source, risk, refines, tracedTo, and history. Defined in chapter 03b.
TestLevel
Enum over the seven test levels the scaffolder registry supports: Unit, Functional, EndToEnd, Accessibility, Internationalisation, Visual, Performance. @Expects(…levels) uses it to declare expected verification coverage, and planWrites uses it to route generated test files into per-level directories. Defined in chapter 03b.
REQ-AI-AS-IMPLEMENTER-ADAPTER
Requires that an AI coding agent can be driven as a pluggable adapter whose inputs are AC names and whose outputs are ACResult-returning test methods, with the DSL as contract. Defined in chapter 05.
REQ-AUDIT-TRAIL-HOOKS
Requires that every requirement mutation (create / approve / amend / retire) emits an append-only HistoryEntry usable as a 21 CFR Part 11-style electronic record. Defined in chapter 05.
REQ-BOOTSTRAP-ZERO-FRICTION
Requires that a fresh install of the package produces a working requirements compliance run within one command, with no per-project configuration file required. Defined in chapter 04.
REQ-DISCOVERABLE-TRACEABILITY
Requires that any spec, feature, AC or test be navigable to its neighbours in the requirement graph without out-of-band documentation. Defined in chapter 04.
REQ-DOG-FOOD
Requires that the package contain zero describe / it calls — every test must be expressed through @FeatureTest and @Verifies, proving the DSL is usable by its own authors. Defined in chapter 04.
REQ-DSL-COMPLETE
Requires that the DSL express every requirement-engineering concept the package needs — no escape hatch to plain strings, plain objects, or untyped YAML. Defined in chapter 04.
REQ-EDITOR-FIRST-CLASS
Requires that VS Code (and any JSON-schema-aware editor) provide completion, hover and validation on every requirement and feature spec file out of the box. Defined in chapter 05.
REQ-LIVE-FEEDBACK
Requires that the developer see compliance feedback (missing ACs, orphan tests, style violations) within the same second they save a file — not at CI time. Defined in chapter 05.
REQ-LOW-FRICTION-ACS
Requires that declaring a new AC cost one line of code (one abstract method) and carry zero boilerplate — the common case must be the cheap case. Defined in chapter 04.
REQ-MULTI-FSM-ORCHESTRATION
Requires that three finite-state machines (project lifecycle, per-feature, per-AC) run concurrently and cross-validate each other at every state transition. Defined in chapter 05.
REQ-ORTHOGONAL-TOGGLING
Requires that every style, scaffolder, and validator be independently toggleable without touching core DSL code, following open/closed at the plugin boundary. Defined in chapter 05.
REQ-PARALLEL-DELIVERABLE
Requires that the DSL ship as a standalone @frenchexdev/requirements package usable outside the host CV site — no implicit coupling to the parent monorepo. Defined in chapter 04.
REQ-PROPERTY-INVARIANTS
Requires that structural invariants of the DSL (bidirectional registry consistency, history monotonicity, ID uniqueness) be property-tested with fast-check, not merely example-tested. Defined in chapter 05.
REQ-REFACTOR-SAFE
Requires that renaming a Feature, a Requirement, or an AC never silently break traceability — compiler and codemod together catch every reference. Defined in chapter 05.
REQ-ROUND-TRIP-EDITABLE
Requires that every spec be editable either as TypeScript source or through a JSON-schema-driven editor, with round-trip equivalence between the two representations. Defined in chapter 04.
REQ-SCAFFOLD-EXTENSIBILITY
Requires that new test levels (beyond the seven built-ins) be addable by registering a TestScaffolder port — no fork, no core patch. Defined in chapter 05.
REQ-SCENARIO-DRIVEN-WORKFLOW
Requires that recorded scenarios (TUI sessions, AI adapter runs) be replayable deterministically from a JSON export, acting as regression fixtures for the workflow layer itself. Defined in chapter 05.
REQ-SPEC-IS-SOURCE-OF-TRUTH
Requires that the TypeScript spec file be the canonical artifact — no auxiliary database, no JIRA synchronisation boundary, no second source of record. Defined in chapter 04.
REQ-TUI-MODERN
Requires that interactive wizards (feature new, requirement new) use a modern TUI adapter (@clack/prompts), not home-grown readline. Defined in chapter 05.
REQ-VERSIONED-TRACEABILITY
Requires that every spec carry a $schemaVersion and an append-only history log, so traceability holds across schema migrations and never loses prior states. Defined in chapter 04.
REQ-VISUAL-TRACEABILITY
Requires that the requirement graph be renderable as a Mermaid diagram directly from the registry, with no manual diagram maintenance. Defined in chapter 05.
REQ-VOCAB-INDUSTRY-ALIGNED
Requires that every DSL term map to a SysML / ISO-29148 / Volere term where one exists — invented vocabulary is a last resort, not a default. Defined in chapter 04.
AuditHooksFeature
Delivers the HistoryEntry emitter and the append-only log writer that satisfy REQ-AUDIT-TRAIL-HOOKS. Defined in chapter 06.
BaseTypesFeature
Delivers the branded primitive types (RequirementId, FeatureId, AcName, IsoDate, Sentence, Percentage) and their runtime guards. Defined in chapter 06.
ClackAdapterFeature
Delivers the @clack/prompts shell that backs feature new and requirement new wizards, satisfying REQ-TUI-MODERN. Defined in chapter 06.
ComplianceCoreFeature
Delivers the AST-driven compliance scanner that reads @FeatureTest/@Verifies/@Expects decorators and computes the AC × test matrix. Defined in chapter 06.
ComplianceReportFeature
Delivers the requirements compliance [--strict] CLI command and its human-readable / JSON report formats. Defined in chapter 06.
DecoratorsFeature
Delivers the six decorators themselves (@FeatureTest, @Verifies, @Expects, @Exclude, @Satisfies, @Refines) and their runtime registries. Defined in chapter 06.
FeatureBidirectionalSyncFeature
Delivers the two-way diff between a TypeScript spec file and its JSON editor representation, satisfying REQ-ROUND-TRIP-EDITABLE. Defined in chapter 06.
FeatureHeuristicSuggesterFeature
Delivers the name-similarity suggester that proposes @Satisfies / @Verifies candidates when a spec is created or renamed. Defined in chapter 06.
FeatureMermaidGraphFeature
Delivers the Mermaid-graph emitter that renders the full Requirement → Feature → AC → Test chain, satisfying REQ-VISUAL-TRACEABILITY. Defined in chapter 06.
FeatureNewCommandFeature
Delivers the requirements feature new interactive wizard, including the satisfiedBy multiselect that can recurse into requirement new. Defined in chapter 06.
FeatureRenameCodemodFeature
Delivers the rename codemod that updates every reference to a Feature, Requirement, or AC across the tree, satisfying REQ-REFACTOR-SAFE. Defined in chapter 06.
FeatureSchemaCommandFeature
Delivers the requirements schema register command that writes the JSON Schemas into .vscode/settings.json, satisfying REQ-EDITOR-FIRST-CLASS. Defined in chapter 06.
FeatureSyncCommandFeature
Delivers the requirements feature sync <spec> command with coloured diff and three-way Apply / Review / Cancel prompt. Defined in chapter 06.
FeatureTraceExplorerTuiFeature
Delivers the interactive TUI trace explorer that walks the graph from a seed node in either direction. Defined in chapter 06.
FeatureWatchModeFeature
Delivers the file-watcher that re-runs compliance within the save-to-feedback budget, satisfying REQ-LIVE-FEEDBACK. Defined in chapter 06.
PropertyTestingFeature
Delivers the fast-check invariant suite (16 properties × 200 runs) that proves registry and history structural laws, satisfying REQ-PROPERTY-INVARIANTS. Defined in chapter 06.
RequirementCommandsFeature
Delivers the requirements requirement new | sync | list | show | orphan command family. Defined in chapter 06.
ScaffoldCoreFeature
Delivers generateScaffoldForSpec and planWrites — the core that turns a Feature spec plus its @Expects matrix into a write plan. Defined in chapter 06.
ScaffolderRegistryFeature
Delivers the TestScaffolder port and the seven built-in implementations (unit / functional / e2e / a11y / i18n / visual / perf), satisfying REQ-SCAFFOLD-EXTENSIBILITY. Defined in chapter 06.
ScenarioOrchestratorFeature
Delivers the scenario replay engine that satisfies REQ-SCENARIO-DRIVEN-WORKFLOW, including record / play / validate / export commands. Defined in chapter 06.
SmartConstructorsFeature
Delivers the parse-don't-validate smart constructors for every branded primitive, returning ParseError on failure rather than throwing TypeError. Defined in chapter 06.
TestBindingsScannerFeature
Delivers the AST scanner that walks test files and extracts every @FeatureTest / @Verifies binding for the compliance core. Defined in chapter 06.
TogglingFeature
Delivers the style / scaffolder / validator toggle system that satisfies REQ-ORTHOGONAL-TOGGLING. Defined in chapter 06.
TraceCoreFeature
Delivers the graph queries trace gaps, trace matrix <feature>, and trace chain <id> <ac> over the bidirectional registries. Defined in chapter 06.
VersioningFeature
Delivers the $schemaVersion field and the migration pipeline that satisfies REQ-VERSIONED-TRACEABILITY. Defined in chapter 06.
AgileStyle
A RequirementStyle preset aligned with Scrum / XP / SAFe / BDD. Its validator enforces the INVEST criteria (Independent, Negotiable, Valuable, Estimable, Small, Testable) on each requirement, and its templates produce Given/When/Then scenarios compatible with Gherkin-based runners. Defined in chapter 11.
DefaultStyle
The baseline RequirementStyle, aligned with ISO/IEC/IEEE 29148 and Volere, with EARS statements as the primary pattern. It is the style every requirement in the package uses unless otherwise specified, and the style Requirement<S> defaults to when S is left inferred. Defined in chapter 08.
IndustrialStyle
A heavy-gate RequirementStyle aligned with IEC 61508 / 61511 / 62443 / 61131-3 / 61850, ISA-88/95/18.2, 21 CFR Part 11, and GAMP 5. It drives a thirteen-state lifecycle and a SIL 1–4 priority coupling, so a requirement cannot be approved without a validated hazard analysis and a signed electronic record. Defined in chapter 09.
KanbanStyle
A RequirementStyle aligned with David J. Anderson's Kanban Method. It models requirements as work items with explicit Classes of Service (Standard, Fixed-Date, Expedite, Intangible) and couples validators to WIP limits and cycle-time distributions rather than to EARS patterns. Defined in chapter 11.
LeanStyle
A RequirementStyle aligned with Toyota's Lean tradition: A3 problem-solving, PDCA cycles, Gemba walks, Value Stream Mapping, and Kaizen. Its templates emit A3 headings (Background, Current Condition, Goal, Analysis, Countermeasures, Plan, Follow-up) and its validator enforces root-cause evidence before a requirement can leave the analysed state. Defined in chapter 10.
a11y scaffolder
Emits @FeatureTest/@Verifies test skeletons routed to test/a11y/, wired to the accessibility tooling of the host project (axe, pa11y). Selected when an AC declares @Expects(TestLevel.Accessibility). Defined in chapter 14.
e2e scaffolder
Emits @FeatureTest/@Verifies test skeletons routed to test/e2e/, wired to the host project's end-to-end runner (Playwright in this monorepo). Selected when an AC declares @Expects(TestLevel.EndToEnd). Defined in chapter 14.
functional scaffolder
Emits test skeletons routed to test/functional/ — tests that exercise full modules through their public API without external process boundaries. Selected when an AC declares @Expects(TestLevel.Functional). Defined in chapter 14.
i18n scaffolder
Emits test skeletons routed to test/i18n/, verifying that translated strings, plural forms, and locale-dependent formatting hold for the locales the host project ships. Selected when an AC declares @Expects(TestLevel.Internationalisation). Defined in chapter 14.
perf scaffolder
Emits test skeletons routed to test/perf/, asserting runtime budgets against measured baselines. Selected when an AC declares @Expects(TestLevel.Performance). Defined in chapter 14.
unit scaffolder
Emits test skeletons routed to test/unit/ — the default level when no @Expects is present. Targets pure functions and single-class behaviour with no I/O. Defined in chapter 14.
visual scaffolder
Emits test skeletons routed to test/visual/, comparing rendered output against stored baselines. Selected when an AC declares @Expects(TestLevel.Visual). Defined in chapter 14.
Aggregate
A cluster of Entity and Value Object instances treated as a single consistency boundary. In the DSL re-reading of chapter 20, each Feature plus its AC methods forms an aggregate rooted on the Feature class — the registry never exposes ACs outside the Feature they belong to. Defined in chapter 20.
Bounded Context
A linguistic and model boundary within which a term has a single, unambiguous meaning. The package itself is one bounded context; each style (DefaultStyle, IndustrialStyle, …) is a sub-context with its own vocabulary. Defined in chapter 20.
Entity
An object with identity that persists across mutations. In the DSL, Requirement and Feature subclasses are entities keyed by their class name; their AC methods and history entries hang off that identity. Defined in chapter 20.
Policy
A named rule that governs state transitions or validations. In the DSL, style validators (INVEST, SIL gates, A3 completeness) are policies attached to the RequirementStyle and applied at transition time by the per-feature and per-AC FSMs. Defined in chapter 20.
Use Case
An application-layer coordinator orchestrating domain objects to fulfil an intent. Each CLI command (compliance, trace gaps, feature new, …) is one use case; its handler depends on domain types (Feature, Requirement<S>) and on ports (FileSystem). Defined in chapter 20.
Value Object
An immutable object defined by its attributes, with no identity of its own. In the DSL, EarsStatement, FitCriterion, Rationale, Evidence, and RequirementSource are value objects — two instances with the same fields are the same value. Defined in chapter 20.
PerAcFsm
The innermost of the three finite-state machines. One instance per AC method on every Feature; its state records whether the AC is unverified, verified-by-unit, verified-by-functional, verified-by-e2e (and so on), failing, or excluded. Its transitions are triggered by compliance-scan events. Defined in chapter 15.
PerFeatureFsm
The middle FSM. One instance per Feature class; its state aggregates the PerAcFsm states (fully-covered, partially-covered, orphan, retired) and couples to the style validator's lifecycle (draft / reviewed / approved / amended). Defined in chapter 15.
ProjectLifecycleFsm
The outermost FSM. A single instance per package; its state aggregates the PerFeatureFsm instances and the strict-compliance gate (green / yellow / red). The CLI's compliance --strict exit code is a direct projection of this FSM's current state. Defined in chapter 15.
21 CFR Part 11
US Food and Drug Administration regulation governing electronic records and electronic signatures in FDA-regulated industries. IndustrialStyle and AuditHooksFeature align with its Part E requirements — append-only records, attributable signatures, audit trails. Defined in chapter 09.
A3
A Toyota problem-solving format that fits a full analysis onto a single A3-size sheet, with eight canonical headings from Background to Follow-up. LeanStyle templates emit these headings and its validator enforces completeness before a requirement can be approved. Defined in chapter 10.
BDD
Behaviour-Driven Development, popularised by Dan North: requirements expressed as Given/When/Then scenarios tied to executable specifications. AgileStyle templates produce BDD-compatible scenarios, and the functional scaffolder maps Given/When/Then arms onto test methods. Defined in chapter 11.
EARS
Easy Approach to Requirements Syntax, five structured patterns (Ubiquitous, Event-driven, State-driven, Optional-feature, Unwanted-behaviour) plus a free-form fallback. DefaultStyle uses EarsStatement as its primary statement discriminated union, so the editor can auto-complete the correct pattern arm. Defined in chapter 08.
GAMP 5
Good Automated Manufacturing Practice guidance from ISPE, the de-facto standard for validating computerised systems in regulated pharmaceutical and life-sciences contexts. IndustrialStyle references it as a source for its heavy-gate lifecycle and for the required evidence types. Defined in chapter 09.
IEC 61508
International Electrotechnical Commission standard on functional safety of electrical, electronic and programmable electronic safety-related systems. It defines the Safety Integrity Level (SIL) concept that IndustrialStyle couples to Priority. Defined in chapter 09.
ISO 29148
ISO/IEC/IEEE 29148:2018, the canonical standard for systems-and-software-engineering requirements processes. DefaultStyle's vocabulary (statement / rationale / fit criterion / verification method / source / priority / risk) maps one-to-one to its required attributes. Defined in chapter 08.
Kanban Classes of Service
David J. Anderson's classification of work items into Standard, Fixed-Date, Expedite, and Intangible service classes, each with its own policy and SLA. KanbanStyle exposes the classification as a discriminated union on Requirement.priority and drives its flow metrics off it. Defined in chapter 11.
PDCA
The Deming / Shewhart Plan-Do-Check-Act cycle, the backbone of continuous-improvement practice. LeanStyle's lifecycle maps each state transition onto a PDCA quadrant, so a requirement's history reads as a sequence of closed PDCA loops. Defined in chapter 10.
SIL
Safety Integrity Level, four discrete risk-reduction tiers defined by IEC 61508 (SIL 1 = lowest, SIL 4 = highest). IndustrialStyle projects Priority onto SIL and gates approval on the evidence class each tier demands (hazard analysis, FMEA, independent assessment). Defined in chapter 09.
SysML
Systems Modelling Language, an OMG standard extending UML for systems engineering. Its satisfy, refine, derive and verify relations are the direct ancestors of the DSL's @Satisfies, @Refines, and @Verifies decorators. Defined in chapter 19b.
Volere
The requirements template and process developed by James and Suzanne Robertson. DefaultStyle borrows its fit-criterion / rationale / source separation, which is why the DSL's Requirement carries those as distinct typed fields rather than one free-form description. Defined in chapter 08.
See also
- Chapter 03 — The decorator surface
- Chapter 04 — Twenty-two requirements, part one
- Chapter 05 — Twenty-two requirements, part two
- Chapter 06 — Twenty-five features mapped
- Chapter 08 — Styles, a plural rhetoric
- Chapter 09 — Style deep dive: Industrial / SIL
- Chapter 10 — Style deep dive: Lean
- Chapter 11 — Style deep dive: EARS / Agile / Kanban
- Chapter 14 — AST extraction and registry
- Chapter 15 — Scenarii and the three FSMs
- Chapter 19b — External vocabulary: JIRA / SysML / ISO 29148 / BDD
- Chapter 20 — Requirements meet DDD, revisited
- Index