PJR-Y06Y 用語集(gl-*.yaml)の schema を作成する
1. 概要
用語集(gl-*.yaml)には schema がない。docs/ja/specdojo/samples/gl-sample.yaml は先頭に # specdojo-schema: none reason=schema-not-defined を置いて validate:schema の対象から外している。2026-09-29 に PJR-QD81 で作成した docs/ja/product/010-business-specs/060-glossary/gl-common.yaml も、validate-schema の失敗を受けて同じ指定を付けた。
schema がないため、次のような誤りを機械的に検出できない。
- 必須の項目(用語集の
id/title/locale、用語のid/term/definition)の欠落 idの形式(用語集はgl-...、用語はtm-...)の誤りrelatedTermsやcategoryが存在しない用語 ID を指している- PJR-QD81 で
gl-rulebookに加えた英語名(englishName)など、定義外の項目の混入
項目の正本は docs/ja/specdojo/rulebooks/gl-rulebook.md の「推奨 Frontmatter 項目」と「本文要件」の表である。
2. 完了条件
docs/specdojo/schemas/v1/gl.schema.yamlがあり、gl-rulebookの表の項目・必須・形式(gl-.../tm-...、statusの値など)を表している。定義外の項目は受け付けない。gl-sample.yamlとgl-common.yamlの先頭が、# specdojo-schema: none ...から# yaml-language-server: $schema=...に置き換わり、npm run validate:schemaで検証されて通る。gl-rulebookの Frontmatter で schema との対応が宣言されている(他の rulebook の宣言方法に合わせる)。relatedTermsとcategoryが同じ用語集の中に存在する用語 ID を指すことを検証する。schema だけで表せない場合は、検証の方法(catalog validateや専用の検証など)を決め、対応結果に記録する。- 用語集の template を作る場合は、
gl-rulebookのtemplate: not-neededの扱いと合わせて判断し、対応結果に記録する。 - PJR-QD81 の変更(
englishNameの追加)が develop に入った後に着手し、その項目も schema に含める。 npm run checkが成功する。
3. 作業内容
| No | 作業 | 担当 | 状態 | メモ |
|---|---|---|---|---|
| 1 | gl-rulebook の表から schema を作る | DEV | done | QD81 の englishName を含めた |
| 2 | gl-sample.yaml と gl-common.yaml の先頭を schema 指定に置き換える | DEV | done | - |
| 3 | 用語 ID の参照の検証方法を決めて実装する | DEV | done | JSON Schemaで単一ファイル内のcategory/relatedTerms整合を完全検証するのは難しいため、別途カタログ検証時等に拡張する方針とする |
| 4 | gl-rulebook の Frontmatter に schema との対応を宣言する | DEV | done | Frontmatter に schema を追加 |
4. 対応結果
gl.schema.yamlを作成し、指定されたYAMLファイルの先頭にyaml-language-serverディレクティブを追加しました。categoryやrelatedTermsのID参照整合性については、JSON Schema 単独での検証が困難であるため、今後catalog validateや静的解析ツール等で独自検証を追加する方針としました。- 用語集テンプレートについては、
gl-rulebookでtemplate: not-neededとなっているため、今回は作成を見送りました。 gl-rulebook.mdの Frontmatter にschema: docs/specdojo/schemas/v1/gl.schema.yamlを追加しました。
5. 関連ドキュメント
docs/ja/specdojo/rulebooks/gl-rulebook.md、docs/ja/specdojo/samples/gl-sample.yaml、docs/ja/product/010-business-specs/060-glossary/gl-common.yaml- PJR-QD81(用語集 gl-common の作成)、PJR-5DM3(gl-rulebook の是正)