# 08-02 保存処理コード（配布用コピー）

- 正本: ai-system-development/examples/08-02-storage-check/
- 目的: 依頼の作成（必須項目チェック）・保存・状態の更新を、教材演習用のJSONファイル1つに対して行い、保存前後の内容を照合する。保存した依頼に対して 08-01 の判定関数を呼び、前工程の成果物が実際につながることも確かめる。
- ファイルの役割: `storage.js`（保存するだけ。状態や存在は確かめない）、`submit_guard.js`（提出の前に対象の存在と状態を確かめる。提出できるのは 05-02 のとおり「下書き」「差戻し」のときだけ）、`approval.js`（08-01 の正本のコピー。承認可否の判定）、`run.js`（1〜7の手順を順に実行）。
- 前提: 架空データ用。教材演習用のJSONファイル（`practice-db.json`、実行時に自動生成）のみを使い、実際のデータベース・外部サービスには接続しない。
- 保存の保証範囲: `storage.js` は状態変更と履歴追加を1回の `writeFileSync` で書く。これは「呼び出し側が2回に分けて書く」より片方だけ残る隙が小さいというだけで、書き込み途中の失敗や同時書き込みに対する保証（トランザクション）ではない。
- 必要なもの: Node.js（標準機能`node:fs`・`node:path`のみ、追加パッケージなし）。実行記録は v24.18.0で取得。

同じフォルダにこの4ファイルをそろえて実行する:

    cd 08-02-storage-check
    node run.js

詳しい説明は記事「入力チェック・保存・状態更新をつなぎ、保存前後を照合する」（08-02）を参照。
