概要
変数を使うと手順書を再利用可能にできます。一度定義すれば、ステップの値で{{variableName}} 構文で参照できます。値は対話プロンプト、環境変数、コンテキストファイル、シークレット、固定値から取得できます。
変数ソース
変数は手順書内でsource とともに定義し、値の解決方法を決定します:
| ソース | 説明 | 用途例 |
|---|---|---|
prompt | 実行時にユーザーに入力を求める(CLI のみ) | ログイン認証情報、ワンタイム値 |
fixed | 静的にハードコードされた値 | ベース URL、定数 |
context | --context マークダウンファイルから AI が抽出 | ドキュメントに記載された値 |
env | 環境変数から取得 | AWS_REGION、APP_URL |
expression | テンプレート式を評価 | {{Date.now()}}、計算値 |
data | データファイルから取得 | バッチワークフローでの行固有の値 |
例
解決優先順位
実行時に変数は以下の順序で解決されます。最初にマッチしたものが使用されます:| 優先度 | ソース | 説明 |
|---|---|---|
| 1 | secrets | --secrets フラグまたは SDK の secrets オプションの値 |
| 2 | data | データファイルの値 |
| 3 | context | --context マークダウンからの AI 抽出 |
| 4 | env | 環境変数 |
| 5 | expression | テンプレート式の評価 |
| 6 | fixed | 定義内の静的値 |
| 7 | prompt | 対話プロンプト(CLI のみ) |
--secrets で値を渡すと、他のソースを上書きします。
シークレットの扱い
シークレットはログやレポートに表示されるべきではない機密値です。指定方法は 2 つあります:--secrets フラグで指定
キー・バリューペアの JSON ファイルを作成します:
sensitive: true フラグで指定
手順書内で個別の変数を sensitive としてマークします:
コンテキストベースの解決
変数がsource: context の場合、AI が --context マークダウンファイルを読み取り、変数の説明に基づいて値を抽出します。値がドキュメント化されているがハードコードされていない場合に有用です:
adminUrl を https://admin.example.com/dashboard に解決します。
テンプレート構文
二重中括弧で変数を任意の文字列フィールドに参照できます:- シンプルな参照:
{{variableName}} - キャプチャされたオブジェクトのドット記法:
{{captured.field}} - 最大 3 階層のネスト
ベストプラクティス
- 認証情報には
promptを使用 — 手順書にパスワードをハードコードしない - 環境固有の値には
envを使用 — ベース URL、API エンドポイント、リージョン - ドキュメント化された値には
contextを使用 —context.mdを信頼できるソースとして維持 - 機密値にはマークを付ける —
sensitive: trueまたは--secretsでマスクを確保 - シークレットはバージョン管理から除外 —
secrets.jsonを.gitignoreに追加