厳格な設定バリデーション(doctorのみの移行)

目標

  • ルート$schemaメタデータを除き、すべての場所で未知の設定キーを拒否(ルート+ネスト)。
  • スキーマなしのプラグイン設定を拒否し、そのプラグインをロードしない。
  • ロード時のレガシー自動移行を削除。移行はdoctor経由のみ。
  • 起動時にdoctor(ドライラン)を自動実行。無効な場合、診断コマンド以外をブロック。

非目標

  • ロード時の後方互換性(レガシーキーは自動移行しない)。
  • 認識されないキーのサイレントドロップ。

厳格なバリデーションルール

  • 設定はすべてのレベルでスキーマと正確に一致しなければならない。
  • 未知のキーはバリデーションエラー。ただしルートの$schemaが文字列の場合を除く。
  • plugins.entries.<id>.configはプラグインのスキーマでバリデーション。スキーマがないプラグインはロードを拒否

Doctorフロー

  • 設定ロード時に毎回Doctor実行(デフォルトはドライラン)。
  • 設定が無効な場合: openclaw doctor --fixの実行を指示。
  • openclaw doctor --fix: 移行適用、未知キー削除、更新設定の書き込み。

コマンドゲーティング(設定無効時)

許可(診断のみ): openclaw doctoropenclaw logsopenclaw healthopenclaw helpopenclaw statusopenclaw gateway status

それ以外はすべて「Config invalid. Run openclaw doctor --fix.」でハードフェイル。