aida-demo-data は何をしますか?
モデル階層: standard。小さなスクリプトや一連のアプリ操作の作成には注意が必要ですが、アウトラインファイルからデータの形状が分かっていれば、日常的な作業です。
デフォルトの経路: アプリ自体を通じて
-
1つのウォークスルーのみが使用するデータ(選択するための2番目の競合他社): 自身の
setup:ステップで、do:/check:/actions:と同じ文法で定義します。キャプチャ前に実行され、録画されることはありません。setup: { as: admin, steps: [...] }とすることで、別のロールとしてサインインできます。 -
複数のウォークスルーが必要とする、またはどのウォークスルーも残さない開始データ(「アレックスは朝のブロックにいる」): 設定の
statesエントリにフックを定義し、アプリのAPI経由で投入します(決定事項15)。データベースは使用しません。states: { "alex-in-morning": { description: "アレックスは朝のブロックにいる", as: "admin", // フック自身のサインイン済みセッション setup: "./states/alex-in-morning.mjs", // その `setup` エクスポート。デフォルトがない場合 check: "./states/alex-in-morning.mjs", // その `check` エクスポート。デフォルトがない場合 }, },フックは
ctx.request(サインイン済みセッションを保持するAPIクライアント。相対パスはbaseUrlに対して解決されます)、ctx.page、ctx.runId、ctx.envを受け取ります。checkは状態がすでに存在し、変更がない場合に true を返します。setupは冪等である必要があります(「必ずそうなっていることを確認する」)。状態が必要なキャプチャのたびに実行されるため、最初に以前の実行のコピーを削除する場合があります。as:がない場合、フックはウォークスルー自身のセッションを共有します。API経由でサインインするフックは、as:を別のロールに設定する必要があります。設定しないと、録画からサインアウトしてしまいます。 -
セットアップが作成する、実行間で衝突してはならないレコード:
setupデータ内で{{run.id}}を使用して命名します(フック内ではctx.runId)。これが入力テキスト、ナレーション、キャプションに表示されないようにします。スクリーンショットが実行ごとに変わってしまうためです。 -
すべての値は
references/safety.mdに従います。@example.comメールアドレス、予約済みの架空の電話番号、発明された名前。実際のレコードを名前を変更しただけでもコピーして開始点にしないでください。 -
アプリが専用のデモアカウントまたはワークスペースをサポートしている場合はそれを使用し、本番アカウントは使用しないでください。クイックモード(専用のデモ環境がない場合)では、何かを保存する前にユーザーに確認を求めます。
シードスクリプト: エンジニアの明示的な要求がある場合のみ
- エンジニアが名前を指定して要求した場合(例:「デモDB用のシードスクリプトを書いて」)にのみ、データベースに直接書き込むシードスクリプトを作成します。デフォルトユーザーやvibe coderは決して受け取りません。AIDAがデータベースアクセスを必要としないことが重要なポイントです。
- シードスクリプトを作成する場合: それは、データベースキャプチャの安全性チェックが受け入れるもの(このマシン上、またはユーザが使い捨てとして指定したブランチ上。
aida doctorで確認できます)のみを対象とし、同じ安全なデモデータ値を使用し、ウォークスルーファイル内ではなく、アプリ自身のシードツールと一緒に配置します。
ルール
- ウォークスルーで読み取り専用とマークされたステップの副作用としてデータを作成しないでください。ウォークスルーがセットアップデータを必要とする場合、それを明示的に(
needs、setup:)指定し、隠れた状態にしないでください。 - 録画されたウォークスルーにクリーンアップステップを追加しないでください。データを削除するウォークスルーは
clearsでその旨を宣言します。再実行時は、冪等なセットアップフックまたはデータベースのリセットによって開始データが復元されます。
トークンルール
references/tokens.md を参照してください。小さく、ターゲットを絞ってください。スキーマやアプリ全体ではなく、1つのカードのデータ形状のみに焦点を当てます。