PJR-8PJ4 成果物カタログのサイドバー表示名と新規 schema のエディタ関連付けを整える
1. 概要
サイドバーは親ノードが成果物カタログであるにもかかわらず、各アイテムも成果物カタログを繰り返していた。また大半のアイテムは生成物 H1 由来のためドメイン slug 表記だった。あわせて PJR-269Z で追加した dct-index.schema.yaml が .vscode/settings.json の yaml.schemas に登録されておらず、dct-index.yaml が汎用の dct.schema.yaml で検証されてエディタ上でエラーになっていた。表示名は dct-index.yaml の name を正本として内容だけを表示し、schema は専用マッピングを追加して汎用パターンから除外する。
2. 完了条件
- 成果物カタログ配下のサイドバー項目が、親ノードと重複する接頭辞を持たず、内容だけを表示する。
- 表示名は
dct-index.yamlのnameを正本とし、宣言にドメインを追加すればサイドバーへ自動的に反映される。 dct-index.yamlがエディタ上でdct-index.schema.yamlにより検証され、汎用のdct.schema.yamlによるエラーが出ない。- ドメイン別カタログ(
dct-<domain>.yaml)はエディタ上で従来どおりdct.schema.yamlにより検証される。 dct-plan-<domain>.yamlも専用 schema へ関連付けられ、将来生成したときに同じ問題が起きない。- 新しい schema を追加したときに
package.jsonと.vscode/settings.jsonの両方を更新する旨が standard に明記されている。
3. 作業内容
| No | 作業 | 担当 | 状態 | メモ |
|---|---|---|---|---|
| 1 | サイドバーの表示名を内容のみに変更する | ARC | done | dct-index.yaml の name を使い、無い場合は接頭辞除去にフォールバック |
| 2 | 新規 schema をエディタの yaml.schemas へ登録する | ARC | done | dct-index と dct-plan の専用マッピングを追加 |
| 3 | 汎用パターンから新規 schema の対象を除外する | ARC | done | extglob docs/**/dct-!(index|plan-*).yaml を使用 |
| 4 | 適用状況をエディタで確認する | ARC | done | 不正キーを一時追加し、両ファイルで検証が効くことを確認 |
| 5 | 再発防止のルールを standard へ追記する | ARC | done | document-metadata-standard の バリデーション へ追記 |
4. 対応結果
orchestrator が exec を介さず直接実装した。
.vitepress/config.mtsに、成果物カタログ配下のリンクだけを対象とする表示名解決を追加した。dct-<domain>のdomainをキーにdct-index.yamlのnameを引き、見つからない場合は既存表示名から「成果物カタログ」の接頭辞を除去する。YAML パーサは持ち込まず、- domain:と直後のname:の対応だけを読む軽量な実装とした。- 実際のサイドバー生成結果を確認し、20 件すべてが内容のみの日本語表示になることを確認した。
.vscode/settings.jsonにdct-index.schema.yamlとdct-plan.schema.yamlの専用マッピングを追加し、汎用のdct.schema.yamlは extglob で両者を除外するようにした。- 当初 extglob は使えないと判断したが、これは誤りだった。バンドル内に同名クラスが2つあり、
yaml.schemasの照合に使われるのは picomatch を用いる YAML schema サービス側だった。picomatch は extglob を完全にサポートする。利用者による実機確認で誤りが判明し、picomatch でパターンを検証して裏付けた。 - 再発防止として、
document-metadata-standardのバリデーションへ、スキーマ追加時の登録先を置き場所別に明記した。docs/specdojo/schemas/v1/(言語中立)はpackage.jsonの検証 script と.vscode/settings.jsonのyaml.schemas、Frontmatter 用なら.remarkrc.yamlのschemaRules。docs/ja/specdojo/schemas/v1/(言語別の本文構成検証)は.remarkrc.yamlのremark-md-contentのschemas。あわせてschemaRulesが最初に一致したスキーマだけを適用すること、汎用パターンとの重なりは extglob で除外すること、適用確認の方法も記載した。
残課題はない。
5. 関連ドキュメント
- 表示名の正本を宣言化した項目: PJR-269Z dct-index.md を dct-index.yaml から自動生成し、順序とグループ分割を宣言で制御する
- 再発防止を追記した規範: ドキュメントメタ情報標準
- 変更したファイル:
.vitepress/config.mts、.vscode/settings.json