markharness

0039: 0.xの間は読み取り出力JSONのschema_versionを上げない

ステータス

Accepted(2026-10-02決定)。schema_versionを上げる基準そのものは、1.0の基準を満たす時点で別のADRで決める(末尾「再検討の条件」)。

背景

traceability・impact・coverageの出力JSONは、schema_versionとrecord_kindを持つ。外部ツールはこの値で、受け取ったJSONを読めるかを判断できる。

traceabilityのbehaviors[]は、Scenarioを持たないBehaviorを出していなかった(設計書 cli-read-model-design.md §5.3)。knowledge reconcileはScenarioを持たないBehaviorを作れるため、外部ツールがそのBehaviorにScenarioを追加しようとしても、behavior_uidを引けなかった。これを直すとbehaviors[]の要素が増える。既存のフィールドは変わらないが、「schema_versionを上げるべきか」を決める必要が出た。

schema_versionを上げる基準は、まだ決まっていない。

決定

0.xの間は、読み取り出力JSON(traceability・impact・coverage)のschema_versionを上げない。 フィールドの追加・削除、要素の増減、意味の訂正のいずれでも上げない。

今回のbehaviors[]の修正(Knowledgeに存在する全Behaviorを出す)は、この決定を適用する最初の例であり、traceabilityのschema_versionは1のままとする。

理由

検討した代替案

帰結

再検討の条件

PROJECT.mdが定める1.0の基準を満たす時点で、schema_versionを上げる基準を決める。検討の出発点として、「既存のフィールドの意味・型が変わる、または既存の読み方が誤りになるときに上げ、要素の追加は互換とする」案がある。これは未決であり、本ADRでは採用しない。