-
-
Notifications
You must be signed in to change notification settings - Fork 28
Open
Description
背景
共有インストラクション(facets/instructions/*.md)内で {report:filename} を使うと、ピースごとにレポート名が異なる場合に破綻する。
例: review-test.md が {report:test-plan.md} を参照しているが、default ピースでは test-scope.md というレポート名を使う。
現状の回避策として汎用記述(「Report Directory 内のレポートを参照」)に書き換えたが、これだとエージェントが関係ないファイルを見に行くリスクがある。{report:filename} の明示的な契約(どのファイルに依存するか)を維持したまま、共有インストラクションの再利用性を両立させたい。
提案
ピース YAML の movement に vars フィールドを追加し、共有インストラクション内のプレースホルダーにピース固有の値をインジェクションする。
ピース YAML 側
movements:
- name: testing-review
instruction: review-test
vars:
test_report: test-scope.mdインストラクション側
1. テスト計画レポート({report:{test_report}})と実装されたテストを突合する展開の流れ
{test_report}→test-scope.md(vars によるインジェクション){report:test-scope.md}→${reportDir}/test-scope.md(既存の report 展開)
処理順序
vars の展開を {report:} の展開より先に実行する。これにより {report:{var}} のネストが自然に解決される。
スコープ
varsはRecord<string, string>型(キー・値ともに文字列)- プレースホルダー構文:
{key}(既存の予約語task,iteration,previous_response等と衝突しないよう、vars の展開は予約語チェック後に行う) instruction_template内でもinstructionファイル内でも使用可能- vars が未定義の場合、プレースホルダーはそのまま残る(既存動作と同じ)
関連ファイル
src/core/piece/instruction/escape.ts—replaceTemplatePlaceholders()src/core/models/schemas.ts—PieceMovementSchemasrc/infra/config/loaders/pieceParser.ts— YAML パース
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels