schema_version during 0.xAccepted (decided 2026-10-02). The criterion for raising schema_version is itself decided in a separate ADR once the 1.0 criteria are met (see “Conditions for revisiting” at the end).
The output JSON of traceability, impact, and coverage carries schema_version and record_kind. An external tool can use these values to decide whether it can read the JSON it received.
traceability’s behaviors[] did not list a Behavior that has no Scenario (design doc cli-read-model-design.md §5.3). knowledge reconcile can create such a Behavior, so an external tool that later wanted to add a Scenario to it could not look up its behavior_uid. Fixing this adds elements to behaviors[]. No existing field changes, but it forces the question of whether schema_version should be raised.
The criterion for raising schema_version has not been decided.
During 0.x, do not raise schema_version of the read output JSON (traceability, impact, coverage). This holds whether a change adds or removes a field, adds or removes elements, or corrects a meaning.
The behaviors[] fix (list every Behavior that exists in Knowledge) is the first application of this decision, and traceability’s schema_version stays at 1.
traceability from 1 to 2 with this change. An external tool that stops on a version mismatch would stop on a change that only added elements. A number raised without a criterion cannot serve as a precedent for the next change. Rejected.schema_version does not guarantee the output is unchanged.Decide the criterion for raising schema_version once the 1.0 criteria defined in PROJECT.md are met. One starting point is “raise when an existing field’s meaning or type changes, or when an existing way of reading becomes wrong, and treat added elements as compatible”. This is undecided and is not adopted by this ADR.