PJR-YKMA カタログの成果物に brief を設ける
1. 概要
成果物の外から継続して渡す前提を dct の brief に書けるようにし、schedule と register の両経路の plan に入れる
2. 完了条件
dct.schema.yamlの成果物にbriefを追加し、catalog validateが受け付ける。複数の成果物で共有する場合は YAML のアンカーを使えることを示す。- schedule の task の plan と、register 経由で成果物を対象にする plan の両方に、
briefを「前提」として載せる。3MY5 で設けた差し込み口を使う。briefが無い場合は載せない。 - dct の rulebook(カタログの記述規則)と関連ガイドに、
brief・overview・done_criteriaの使い分けを書く。 - 単体テストで、schema の検証と、両経路の plan への反映を確かめる。
CHANGELOG.mdの## [Unreleased]節(無ければ## [0.5.0]の上に作る)に追記する。0.5.0と公開済みの版の節は変えない。- 作業の中で
npm run typecheck・npm run lint:ts・npm run lint:md・npm run test:unitが通り、親の検証 7 件が通る。 - 設計で決めることは executor が決め、理由を本個票の対応結果に書き、報告の
handoffにも書く。保護された設定に触れる必要がある場合は、変更せずに案を本個票の対応結果とhandoffに書く。
3. 作業内容
| No | 作業 | 担当 | 状態 | メモ |
|---|---|---|---|---|
| 1 | schema と catalog の検証に brief を加える | executor | done | dct.schema.yaml と DctDeliverableItem に brief を追加し、sample で YAML アンカー共有例を記載 |
| 2 | 両経路の plan に反映する | executor | done | schedule / register 両経路で _DELIVERABLE_BRIEF_ 差し込み口へ反映し、未指定時は行を非表示化 |
| 3 | rulebook・ガイド・テストを更新する | executor | done | dct-rulebook.md・ryu-guide.md・plan 雛形・単体テスト(schema/plan 生成)・CHANGELOG を更新 |
4. 対応結果
dct.schema.yamlの成果物エントリ(DeliverableItem)にbrief(型:string、minLength: 1)を追加した。catalog validateで検証され、dct-sample.yamlに YAML アンカー(&anchor/*anchor)を用いた複数成果物間での共有例を記載した。src/shared/catalog-render.tsのDctDeliverableItemにbrief?: string;を追加した。- plan 生成処理(
src/exec/plans-core.ts,src/exec/plans-generation.ts)において、3MY5 で設けた差し込み口_DELIVERABLE_BRIEF_へdeliverableBrief(deliverable)の展開を接続した。成果物にbriefが定義されている場合は改行インデントを施して差し込み口へ渡し、未定義・空の場合はテンプレートから該当行を除外して plan に載せないようにした。schedule 起点(generateSinglePlan)および register 経由(generateRegisterApproachPlan)の両経路、および review plan の双方で動作する。 - plan 雛形(
xep-draft-template.md,xep-fully-guided-template.md,xrp-fully-guided-template.md)およびガイド(ryu-guide.md)の説明文を「値が無いときは載せない」方針へ更新した。 docs/ja/specdojo/rulebooks/dct-rulebook.mdの成果物エントリ表にbriefを追加し、第 6.14 節としてoverview(成果物の目的を 1 文で表す概要)・brief(成果物の外から継続して渡す前提)・done_criteria(検証可能な完了条件)の使い分けと YAML アンカーによる記述方法を明記した。あわせてryu-guide.mdにも使い分けの原則を追記した。CHANGELOG.mdの## [Unreleased]の追加機能節に本機能の追記を行った。公開済みの 0.5.0 以下の節は変更していない。- 設計判断:
briefの plan 反映において、3MY5 で設けた差し込み口_DELIVERABLE_BRIEF_を直接使用し、単一行・複数行(箇条書き等)のいずれでも Markdown のリスト構造が壊れないようインデント整形して展開する方式を採用した。brief未指定時は行そのものを省くことで、plan の対象成果物セクションの不要な行ノイズを排除した。 - 設計判断: YAML アンカーによる
brief共有は、カタログのルートレベルにカスタムプロパティを置かず(additionalProperties: falseに反するため)、先行する成果物エントリのbrief: &anchor |で定義し、後続成果物でbrief: *anchorとして参照する標準 YAML 記法を正本とし、サンプルおよび rulebook で明示した。 - 単体テスト:
tests/docs/specdojo/schemas/dct-schema.test.tsを新設し、dct.schema.yamlによるbrief(単一行、複数行、YAML アンカー、空文字・型不正の拒否)の検証を網羅した。またtests/src/exec/draft-plan.test.tsを拡張し、register / schedule 両経路でのbriefの plan への反映、YAML アンカー共有の反映、review plan への反映、未指定時に載らないことの検証を追加した。 - 保護された設定(
.specdojo/やpackage.jsonなど)の変更は不要であり、変更案もない。