Files
hangshuo652 b94757d9df feat: V3系统评审问题修复
1. 场景价值与技术合理性修复:
   - 补充docs/SCENE_VALUE.md(业务背景、痛点分析、用户场景、竞品对比、价值量化)
   - 添加用户操作流程图(Mermaid)
   - 添加3个真实业务案例量化数据

2. 演示与文档修复:
   - 创建docs/API.md(完整API文档)
   - 创建docs/QUICKSTART.md(5分钟快速入门指南)

3. AI使用日志修复:
   - 更新AGENTS.md,添加强制自动执行的AI使用日志记录指令
   - 在_AI_USAGE_LOG.md末尾添加范式执行统计

4. 安全性修复:
   - 在agents/llm.py中添加输入过滤(防Prompt注入)
   - 添加输出验证、速率限制、详细日志

5. 架构设计修复:
   - 创建tools/registry.py工具注册表
   - 修改orchestrator.py和orchestrator_db.py使用注册表动态获取运行器

6. 开发范式修复:
   - 在_AI_USAGE_LOG.md末尾添加范式执行统计
2026-08-29 13:23:28 +08:00

3.7 KiB

DB更新 データ生成規則

概要

入力ファイルのレコードをDBテーブルにINSERT/UPDATE/DELETEするプログラムのテストデータを生成する。 出力はSQL INSERTファイル。

入力

  • 詳細設計書の処理詳細(SQL操作と分岐条件)
  • 入力ファイルのCOPYBOOKフィールド定義
  • DBテーブル定義と主キー
  • キー項目一覧

生成データ組

用途 内容 条件
1 正常INSERT 5件以上の新規INSERT + 末尾に多keyテスト 必須
2 INSERT+UPDATE 3件以上の重複主キーレコード(UPDATEトリガー用)+ 末尾に多keyテスト 必須
3 DELETE対象 2件以上のDELETE対象レコード + 末尾に多keyテスト 処理詳細にDELETE操作がある場合のみ

多keyテスト(各組の末尾に追加)

キーが複数項目(例: A001, A002, A003)で構成される場合、以下のテストデータを追加する。

手順:

  1. 該当グループ内から1件のレコードを選び、基準データとする
  2. キー項目がN個ある場合、N件の追加レコードを生成する
  3. 各追加レコードは「1つのキー項目のみ基準データと異なり、残りのキー項目は基準データと完全一致」とする
  4. 非キー項目(DATA部分)は基準データと同じ値でよい

例: キーが (A001, A002, A003) の場合、基準データ (a001, b001, c001) に対し:

  • 追加1: (a002, b001, c001) → A001のみ異なる → INSERTされるべき(別レコード)
  • 追加2: (a001, b002, c001) → A002のみ異なる → INSERTされるべき(別レコード)
  • 追加3: (a001, b001, c002) → A003のみ異なる → INSERTされるべき(別レコード)

これにより、プログラムが正しいキー項目で比較していることを検証する。

データ生成手順

  1. SQL操作の特定: 処理詳細からINSERT/UPDATE/DELETE/UPSERTの有無を確認する
  2. キー項目の特定: キー項目一覧からDBテーブルの主キーを特定する
  3. フィールド値生成: 入力COPYBOOKの各フィールドに対しPIC定義に従い値を生成:
    • PIC X(n): 左詰め・スペース埋め
    • PIC 9(n): 右詰め・先行ゼロ
    • PIC S9(n) COMP / COMP-3: 通常の10進数文字列(符号付き・なし)
    • DATE / 日付系フィールド: 実在しそうな日付(YYYYMMDD形式)
    • TIME / 時刻系フィールド: 実在しそうな時刻(HHMM形式)
    • ID / 番号系フィールド: 連番
    • NAME系フィールド: 実在しそうな氏名
    • 金額 / SALARY系: 現実的な金額
  4. 組1 (正常INSERT):
    • 全レコードの主キーを重複なしで生成
    • 各レコードの非キーフィールドは異なる値を設定
    • 末尾に多keyテストデータを追加
  5. 組2 (INSERT+UPDATE):
    • 一部のレコードの主キーを組1と重複させる
    • 重複レコードの非キーフィールド値は組1と異なる値にする
    • 末尾に多keyテストデータを追加
  6. 組3 (DELETE対象): 処理詳細にDELETE操作がある場合のみ生成
    • STATUS='9'などの削除フラグ付きデータ
    • 末尾に多keyテストデータを追加

出力形式

各組1つのSQLファイル: {プログラムID}_g{groupId}.sql

-- Group: 1
-- 用途: 正常INSERT + 多keyテスト
INSERT INTO TABLE_NAME (COL1, COL2, ...) VALUES
('val1', 'val2', ...),
('val3', 'val4', ...);

注意:

  • 出力は純粋なSQL INSERT文のみ(コードブロックで囲まない)
  • 複数行を1つのINSERT文にまとめる(VALUESの後にカンマ区切りで複数行)