name: orchestration-design description: "Use when designing runtime control flow from a settled module architecture — swimlane flowchart, staged outcomes, fail-close paths, execution invariants, log channels. Trigger phrases: orchestration design, control flow, swimlane, fail-close, runtime design."
オーケストレーション設計(制御フロー・fail-close・ログ/版)
モジュール構成(architecture-design)を、端から端の実行として固める。誰が何の順で動き、失敗でどう倒れ、何を記録するか。 表現はスイムレーン付フローチャート(分岐/繰返し/失敗経路を見せる)。シーケンス図は使わない。 原則:spec-principles(PR6 価値経路を遮断しない/PR2 機構=fail-close)。
参照
- 物理アーキテクチャ=architecture-design(モジュール・ポート・IF)。
- 失敗の型(
Result/StageOutcome)=domain-model。 - 安定化策(fail-close・トランザクション・版スタンプ)=要件(あれば S# 一覧)。
手順
- レーンを決める:外部アクタ+層(コア/外部サービス/永続)を
subgraphレーンに。 - 段を直列に並べる:各段は
Result(成功/失敗)を返す。失敗は下流を走らせない=横断的に出口へ伝播(fail-close)。 - 実行順序の不変条件を明文化:検証→…→副作用 の順を型で強制(副作用段は上流成功時だけ走る=半端を残さない)。
- 良性 no-op と 異常を分ける:続けて無害なものは fail-open(空結果)、疑わしきは fail-close+明示通知。
- ログ/版の章を足す:チャネル分離(制御/診断/永続ログ)と版スタンプ(実行・入力・モデル・雛形・設定の版を串刺し)。版は
MAJOR.MINOR(MAJOR=構造/型→対応ロジック改修、MINOR=内容のみ)。 - 疑似コードで段の直列と分岐(
match outcome)を示し、副作用の到達条件を可視化。
判断基準
- PR6:どのイベントも入力→価値(出力)まで連続。失敗経路も「黙って空」にしない(明示通知)。
- fail-close は横断経路(特定プロセス内の正常フローでなく、全段に効く error 経路)。
- 外部(LLM 等)出力が必ず検証段を通る:制御フロー上、検証を飛ばす経路を作らない。
- ログ:制御チャネルを診断で汚さない(追従が壊れる)。版スタンプは再現性の証跡。
点検観点(done)
- 1枚のスイムレーンで端から端が追える。失敗経路が各段から出口へ繋がる。
- 副作用段が上流成功を前提にしている(型で担保)。
- 版スタンプの素材(実行/設定/モデル/雛形版)が揃い、同一入力×同一版で再現を説明できる。
- 段境界がログに出る(各段の開始/終了/失敗)。
成果物テンプレ
- スイムレーン flowchart(mermaid
subgraphレーン)。 - 実行順序の不変条件リスト(番号付き)。
run_*()疑似コード(matchで成功/失敗を漏れなく分岐)。- ログ3チャネル表+版スタンプ定義(
MAJOR.MINOR・版↔対応ロジック対応)。