PJR-484B 成果物の type に requirement と glossary を足し、rulebook の宣言と lint で照合する
1. 概要
schema に requirement と glossary を足し、rulebook 107 件の frontmatter に扱う成果物の type を宣言させる。Markdown の成果物・sample・テンプレートの type を宣言にそろえ、違えば lint でエラーにする
- PJR-RYK8 の決定(1-B・2-B)に従い、type の値を足し、rulebook の宣言を正本として成果物の type を照合する。
2. 完了条件
- 成果物の frontmatter の schema の type に
requirement(システム機能・非機能要件・受入基準)とglossary(用語集)がある。 - rulebook の frontmatter の schema に、扱う成果物の type を宣言する必須のフィールドがある(名前の案は
deliverable_type。変える場合は理由を記録する)。 - rulebook 107 件すべてに宣言がある。
projectはプロジェクトの管理文書(prj・pm・dct・tml など)に限る。割り当ての一覧(rulebook・type・理由)を本個票の対応結果に書き、index の rulebook など迷ったものは理由と一緒に書く。 - Markdown の成果物・sample・テンプレート(
frontmatter_template)の type が宣言と一致している。 lint:fmなど既存の検査で、Markdown の成果物・sample・テンプレートの type が rulebook の宣言と違えばエラーにし、文面に宣言された type を示す。document-metadata-standardとrulebook-authoring-standardに、値の意味・宣言の書き方・検査を書く。- CHANGELOG の
## [Unreleased]に、移行の手順(rulebook への宣言の追加と type の書き換え)を書く。公開済みの版の節は変えない。 - YAML の type と YAML の表示用ページは PJR-0D0T で扱うため、本項目では変えない。
- 単体テストで、宣言の必須・type のずれのエラー・新しい値を確かめる。
- 作業の中で
npm run typecheck・npm run lint:ts・npm run lint:md・npm run lint:fm・npm run test:unitが通り、親の検証 7 件が通る。 - 設計で決めることは executor が決め、理由を本個票の対応結果に書き、報告の
handoffにも書く。
3. 作業内容
| No | 作業 | 担当 | 状態 | メモ |
|---|---|---|---|---|
| 1 | schema に値と rulebook の宣言のフィールドを追加する | executor | done | - |
| 2 | rulebook 107 件に宣言を足し、割り当てを記録する | executor | done | - |
| 3 | Markdown の成果物・sample・テンプレートをそろえる | executor | done | - |
| 4 | lint の照合を実装する | executor | done | - |
| 5 | standard・CHANGELOG を更新し、テストを足す | executor | done | - |
4. 対応結果
4.1. 実施内容
- 成果物 schema に
requirementとglossaryを追加した。分類の enum は成果物 schema の$defs.deliverableTypeに集約し、rulebook schema の必須項目deliverable_typeから参照する。templateと互換用のsampleは成果物側のみ許可する。 - rulebook 107 件すべてに宣言を追加した。Markdown 対象 rulebook の本文にある成果物 type の表・記述例も宣言値へそろえた。YAML 対象 rulebook の本文・データ・表示用ページは PJR-0D0T の範囲として維持した。
- Markdown sample 50 件の Frontmatter を宣言へ移行した。既存のプロダクト成果物・プロジェクト成果物と Markdown テンプレートの
frontmatter_templateは既に宣言と一致し、type の書き換えは不要だった。 lint:fmが使う frontmatter plugin に照合処理を追加した。schema のパスにマッチしないテンプレートにも適用する。宣言不一致は宣言された値と置き換え先を示す。宣言欠落、参照先不明、曖昧な ID もエラーにする。- ドキュメントメタ情報標準 と Rulebook 記述標準 に分類の意味・宣言方法・検査を追記し、CHANGELOG の Unreleased に移行手順を記載した。
- 単体テストに宣言必須、新しい値、不一致の置き換え先、sample、テンプレートの生成物 type、
rulebook: none、表示用ページ除外、ID 解決・曖昧さ・同梱 fallback・ローカル優先、recipe 除外、includes非遡及を追加した。実行は指定された親 runner の検証に委ねる。
4.2. 設計判断と申し送り
- フィールド名は提案どおり
deliverable_typeとした。rulebook 自身のtype: rulebookと、扱う成果物の分類を区別できるためである。 - index は内容で分類する。
sf-index・bes-index・nfr-indexはrequirement、テスト系 index はtest、構成・システム設計・技術スタックの index はarchitecture、運用系 index はoperations。カタログやタイムラインは管理文書なのでprojectとした。 prj-success-criteria-and-acceptance-criteriaはプロジェクトの成功・受入の管理基準なのでprojectとし、製品の受入基準を定義する BAC/SAC のrequirementと区別した。- 影響調査 5 系統は仕様本文を各専門成果物へ委譲し、変更要否・影響度・対応方針を判断する管理報告なので
project。トレーサビリティ 2 系統も型付き参照から派生する管理ビューなのでprojectとした。 - 移行全体の合意・範囲・体制を扱う MIP は
project、DMD はデータの抽出・変換・検証を定義するdata、COP/OTP はoperations、MTP/NTP はtestとした。概念クラス図 CCD は構成図ではなくデータモデルなのでdata。非推奨 CSTD も後継 STSD と同じdataとした。 - 主 rulebook の宣言のみを正本とし、
includesはたどらない。テンプレート自身のtype: templateは比較せず、frontmatter_template.specdojoの type と rulebook を比較する。recipe 等の専用種別は成果物照合から除外する。 - 完全 ID でローカル rulebook を解決し、未導入分を同梱 rulebook から補う。同じ完全 ID はローカルを優先し、未修飾 ID は一意なときだけ許可する。宣言の欠落・参照の不明や曖昧さを黙ってスキップしない。
- YAML データと
generated/配下の YAML 表示用ページは本照合の対象外。表示用ページはyaml-pagesの生成マーカーも確認して除外し、それ以外の生成 Markdown は照合する。PJR-0D0T では宣言に従い YAML の type と表示用ページをそろえる。BDD 等の YAML 本文に残る旧 type の記述も同項目で追従する。 - 参照した skill の旧
docs-contents-guideは、supersedesを宣言している 成果物リファレンス に置き換えて確認した。類似 rulebook と sample は各系統の既存文書を用いた。 - 親 runner 指定の 7 検査は sandbox 内では実行しない。実際の成否は親 runner が evidence/result へ追記する。result は reporter/runner が記入し、個票のステータスと登録簿一覧は変更していない。
4.3. 割り当て一覧(107 件)
以下は今回の判断の記録であり、今後の照合の正本は各 rulebook の宣言とする。
| rulebook | type | 理由 |
|---|---|---|
| atc-index-rulebook | test | 検証の方針・ケース・実施計画を定義するため。index は管理用という名前だけで project にせず、収録する成果物と同じ分類とする |
| atc-rulebook | test | 検証の方針・ケース・実施計画を定義するため |
| bac-rulebook | requirement | 機能・非機能要件、業務イベントの要求、受入条件を定義するため |
| bdd-rulebook | data | 概念モデル・データの構造や状態・保管・変換を定義するため |
| bds-rulebook | ui | 画面または帳票の利用者向け仕様を定義するため |
| bes-index-rulebook | requirement | 機能・非機能要件、業務イベントの要求、受入条件を定義するため。index は管理用という名前だけで project にせず、収録する成果物と同じ分類とする |
| bes-rulebook | requirement | 機能・非機能要件、業務イベントの要求、受入条件を定義するため |
| bps-rulebook | flow | 業務プロセスと情報の流れを定義するため |
| br-rulebook | rule | 業務の判断条件・規則を定義するため |
| ccd-mermaid-rulebook | data | 業務概念とデータの関係を表す概念モデルであり、システム構成図ではないため。includes の記法部品も主 rulebook と同じ成果物を扱う |
| cdfd-mermaid-rulebook | flow | 業務プロセスと情報の流れを定義するため。includes の記法部品も主 rulebook と同じ成果物を扱う |
| cdfd-overview-rulebook | flow | 業務プロセスと情報の流れを定義するため |
| cdfd-rulebook | flow | 業務プロセスと情報の流れを定義するため |
| cdfd-uc-rulebook | flow | 業務プロセスと情報の流れを定義するため |
| cdsd-rulebook | data | 概念モデル・データの構造や状態・保管・変換を定義するため |
| cld-rulebook | data | 概念モデル・データの構造や状態・保管・変換を定義するため |
| cnd-mermaid-rulebook | architecture | システム構成・設計・技術選定を定義するため。includes の記法部品も主 rulebook と同じ成果物を扱う |
| cnd-rulebook | architecture | システム構成・設計・技術選定を定義するため |
| cop-index-rulebook | operations | 運用・本番切替・引継ぎの設計や手順を定義するため。index は管理用という名前だけで project にせず、収録する成果物と同じ分類とする |
| cop-rulebook | operations | 運用・本番切替・引継ぎの設計や手順を定義するため |
| cpd-mermaid-rulebook | architecture | システム構成・設計・技術選定を定義するため。includes の記法部品も主 rulebook と同じ成果物を扱う |
| cpd-rulebook | architecture | システム構成・設計・技術選定を定義するため |
| cstd-rulebook | data | 非推奨文書だが後継 STSD と同じ状態モデルを扱うため |
| cxd-mermaid-rulebook | architecture | システム構成・設計・技術選定を定義するため。includes の記法部品も主 rulebook と同じ成果物を扱う |
| cxd-rulebook | architecture | システム構成・設計・技術選定を定義するため |
| dct-index-rulebook | project | プロジェクトの計画・体制・管理記録を扱うため。index は管理用という名前だけで project にせず、収録する成果物と同じ分類とする |
| dct-rulebook | project | プロジェクトの計画・体制・管理記録を扱うため |
| dec-rulebook | project | プロジェクトの計画・体制・管理記録を扱うため |
| dmd-index-rulebook | data | 移行データの抽出・変換・冪等性・検証の共通設計であり、データ仕様の索引であるため |
| dmd-rulebook | data | データ単位のマッピング・変換・検証を定義するため |
| etc-index-rulebook | test | 検証の方針・ケース・実施計画を定義するため。index は管理用という名前だけで project にせず、収録する成果物と同じ分類とする |
| etc-rulebook | test | 検証の方針・ケース・実施計画を定義するため |
| gl-rulebook | glossary | 用語と定義の正本を管理するため |
| ifd-mermaid-rulebook | architecture | システム構成・設計・技術選定を定義するため。includes の記法部品も主 rulebook と同じ成果物を扱う |
| ifx-api-rulebook | api | 方式を問わず外部 I/F の契約を定義するため |
| ifx-cmd-rulebook | api | 方式を問わず外部 I/F の契約を定義するため |
| ifx-file-rulebook | api | 方式を問わず外部 I/F の契約を定義するため |
| ifx-index-rulebook | api | 方式を問わず外部 I/F の契約を定義するため。index は管理用という名前だけで project にせず、収録する成果物と同じ分類とする |
| ifx-msg-rulebook | api | 方式を問わず外部 I/F の契約を定義するため |
| imp-business-rulebook | project | 変更要求の影響度・変更要否・対応方針を判断する管理報告であり、仕様本文は各専門成果物へ委譲するため |
| imp-data-rulebook | project | 変更要求の影響度・変更要否・対応方針を判断する管理報告であり、仕様本文は各専門成果物へ委譲するため |
| imp-interface-rulebook | project | 変更要求の影響度・変更要否・対応方針を判断する管理報告であり、仕様本文は各専門成果物へ委譲するため |
| imp-operations-rulebook | project | 変更要求の影響度・変更要否・対応方針を判断する管理報告であり、仕様本文は各専門成果物へ委譲するため |
| imp-test-rulebook | project | 変更要求の影響度・変更要否・対応方針を判断する管理報告であり、仕様本文は各専門成果物へ委譲するため |
| itc-index-rulebook | test | 検証の方針・ケース・実施計画を定義するため。index は管理用という名前だけで project にせず、収録する成果物と同じ分類とする |
| itc-rulebook | test | 検証の方針・ケース・実施計画を定義するため |
| mip-index-rulebook | project | 移行全体の範囲・体制・成功条件を合意する管理計画。実行手順は cop/otp に分離するため |
| mm-rulebook | project | プロジェクトの計画・体制・管理記録を扱うため |
| mtp-rulebook | test | 検証の方針・ケース・実施計画を定義するため |
| nfr-availability-rulebook | requirement | 機能・非機能要件、業務イベントの要求、受入条件を定義するため |
| nfr-index-rulebook | requirement | 機能・非機能要件、業務イベントの要求、受入条件を定義するため。index は管理用という名前だけで project にせず、収録する成果物と同じ分類とする |
| nfr-integrity-rulebook | requirement | 機能・非機能要件、業務イベントの要求、受入条件を定義するため |
| nfr-maintainability-rulebook | requirement | 機能・非機能要件、業務イベントの要求、受入条件を定義するため |
| nfr-operations-rulebook | requirement | 機能・非機能要件、業務イベントの要求、受入条件を定義するため |
| nfr-performance-rulebook | requirement | 機能・非機能要件、業務イベントの要求、受入条件を定義するため |
| nfr-reliability-rulebook | requirement | 機能・非機能要件、業務イベントの要求、受入条件を定義するため |
| nfr-security-safety-rulebook | requirement | 機能・非機能要件、業務イベントの要求、受入条件を定義するため |
| nfr-usability-rulebook | requirement | 機能・非機能要件、業務イベントの要求、受入条件を定義するため |
| ntp-rulebook | test | 検証の方針・ケース・実施計画を定義するため |
| opd-index-rulebook | operations | 運用・本番切替・引継ぎの設計や手順を定義するため。index は管理用という名前だけで project にせず、収録する成果物と同じ分類とする |
| opd-rulebook | operations | 運用・本番切替・引継ぎの設計や手順を定義するため |
| opr-index-rulebook | operations | 運用・本番切替・引継ぎの設計や手順を定義するため。index は管理用という名前だけで project にせず、収録する成果物と同じ分類とする |
| opr-rulebook | operations | 運用・本番切替・引継ぎの設計や手順を定義するため |
| otp-index-rulebook | operations | 運用・本番切替・引継ぎの設計や手順を定義するため。index は管理用という名前だけで project にせず、収録する成果物と同じ分類とする |
| otp-rulebook | operations | 運用・本番切替・引継ぎの設計や手順を定義するため |
| pjr-rulebook | project | プロジェクトの計画・体制・管理記録を扱うため |
| pm-change-request-log-rulebook | project | プロジェクトの計画・体制・管理記録を扱うため |
| pm-communication-plan-rulebook | project | プロジェクトの計画・体制・管理記録を扱うため |
| pm-issue-log-rulebook | project | プロジェクトの計画・体制・管理記録を扱うため |
| pm-members-rulebook | project | プロジェクトの計画・体制・管理記録を扱うため |
| pm-organization-rulebook | project | プロジェクトの計画・体制・管理記録を扱うため |
| pm-plan-rulebook | project | プロジェクトの計画・体制・管理記録を扱うため |
| pm-quality-management-plan-rulebook | project | プロジェクトの計画・体制・管理記録を扱うため |
| pm-raci-rulebook | project | プロジェクトの計画・体制・管理記録を扱うため |
| pm-risk-register-rulebook | project | プロジェクトの計画・体制・管理記録を扱うため |
| pm-roles-rulebook | project | プロジェクトの計画・体制・管理記録を扱うため |
| pr-rulebook | project | プロジェクトの計画・体制・管理記録を扱うため |
| prj-assumptions-constraints-dependencies-rulebook | project | プロジェクトの計画・体制・管理記録を扱うため |
| prj-charter-rulebook | project | プロジェクトの計画・体制・管理記録を扱うため |
| prj-comparison-of-alternatives-rulebook | project | プロジェクトの計画・体制・管理記録を扱うため |
| prj-issues-and-approach-rulebook | project | プロジェクトの計画・体制・管理記録を扱うため |
| prj-overview-rulebook | project | プロジェクトの計画・体制・管理記録を扱うため |
| prj-scope-rulebook | project | プロジェクトの計画・体制・管理記録を扱うため |
| prj-stakeholder-register-rulebook | project | プロジェクトの計画・体制・管理記録を扱うため |
| prj-success-criteria-and-acceptance-criteria-rulebook | project | プロジェクトの成功と受入の管理基準であり、製品の受入要件 bac/sac とは責務が異なるため |
| sac-rulebook | requirement | 機能・非機能要件、業務イベントの要求、受入条件を定義するため |
| sch-rulebook | project | プロジェクトの計画・体制・管理記録を扱うため |
| sf-index-rulebook | requirement | 機能・非機能要件、業務イベントの要求、受入条件を定義するため。index は管理用という名前だけで project にせず、収録する成果物と同じ分類とする |
| sf-rulebook | requirement | 機能・非機能要件、業務イベントの要求、受入条件を定義するため |
| sld-rulebook | data | 概念モデル・データの構造や状態・保管・変換を定義するため |
| stc-index-rulebook | test | 検証の方針・ケース・実施計画を定義するため。index は管理用という名前だけで project にせず、収録する成果物と同じ分類とする |
| stc-rulebook | test | 検証の方針・ケース・実施計画を定義するため |
| stsd-mermaid-rulebook | data | 概念モデル・データの構造や状態・保管・変換を定義するため。includes の記法部品も主 rulebook と同じ成果物を扱う |
| stsd-rulebook | data | 概念モデル・データの構造や状態・保管・変換を定義するため |
| sysd-critical-flows-rulebook | architecture | システム構成・設計・技術選定を定義するため |
| sysd-cross-cutting-policy-rulebook | architecture | システム構成・設計・技術選定を定義するため |
| sysd-index-rulebook | architecture | システム構成・設計・技術選定を定義するため。index は管理用という名前だけで project にせず、収録する成果物と同じ分類とする |
| sysd-rulebook | architecture | システム構成・設計・技術選定を定義するため |
| tml-rulebook | project | プロジェクトの計画・体制・管理記録を扱うため |
| trc-requirements-to-specs-rulebook | project | 型付き参照から派生する任意の管理ビューであり、要求本文やテスト仕様の正本ではないため |
| trc-requirements-to-tests-rulebook | project | 型付き参照から派生する任意の管理ビューであり、要求本文やテスト仕様の正本ではないため |
| tsd-index-rulebook | architecture | システム構成・設計・技術選定を定義するため。index は管理用という名前だけで project にせず、収録する成果物と同じ分類とする |
| tsd-rulebook | architecture | システム構成・設計・技術選定を定義するため |
| tsp-index-rulebook | test | 検証の方針・ケース・実施計画を定義するため。index は管理用という名前だけで project にせず、収録する成果物と同じ分類とする |
| uis-rulebook | ui | 画面または帳票の利用者向け仕様を定義するため |
| utc-index-rulebook | test | 検証の方針・ケース・実施計画を定義するため。index は管理用という名前だけで project にせず、収録する成果物と同じ分類とする |
| utc-rulebook | test | 検証の方針・ケース・実施計画を定義するため |
4.4. 検証
- 変更対象 166 件を Prettier で整形し、追加した照合処理と変更した frontmatter plugin の
node --checkが通った。 - hook と同じ
node --import tsx tools/catalog-validate-if-configured.mjsは終了コード 0。未作成成果物に対する既存のbased_on検証警告は残るが、検証エラーはない。 node --import tsx src/specdojo.ts register buildは終了コード 0 で登録簿の派生ビューを生成した。登録簿一覧の正本と状態項目は編集していない。git diff --checkはエラーなし。- rulebook 宣言は 107 件(
project: 34、requirement: 15、glossary: 1、flow: 5、rule: 1、data: 10、ui: 2、api: 5、architecture: 13、test: 13、operations: 8)。 - 検証結果は executor evidence と親 runner の追記を参照する。親検証の 7 件(型・TS/Markdown/Frontmatter lint・schema・単体・結合)は指定に従って親 runner が実行する。