仕様ドキュメント

要件定義

02-requirements_ja.md

要件定義書——反社会的勢力チェックアプリケーション

原典:原典サマリー①チェック基準 · ②事務フロー · ③事務取扱 · ④検索結果一覧表

スコープ

ファブフォワードの反社会的勢力スクリーニング業務をデジタル化・部分自動化するウェブアプリケーションを構築する。現行のExcel/メールベースの手作業プロセスを、構造化された監査可能なシステムに置き換える。

スコープ内

  • 日経テレコン連携によるネガティブニュース検索
  • 政府オープンデータOSINTチェック(官報、金融庁、国土交通省、法人番号)
  • インターネット検索エンジンチェック(Google)
  • EDINET開示書類検索(上場企業向け)
  • チェックシートのワークフロー管理
  • 検索結果一覧表の管理
  • 監査証跡およびエビデンス保持

スコープ外

  • 帝国データバンク(TDB)連携——コストにより除外
  • 有料サードパーティ反社チェックAPI(RISK EYES、RiskAnalyze等)——将来検討
  • 日経テレコンからの記事本文自動取得(コスト上の理由。ヒット件数の自動取得のみ対象)

機能要件

FR-1:チェック依頼管理

ID 要件
FR-1.1 ユーザーは以下を入力して新規チェック依頼を作成できる:会社名、代表者名、会社住所、役員リスト、企業種別(上場/非上場)、役員情報の開示有無
FR-1.2 CSV/Excelアップロードによる一括チェック依頼の入力に対応する
FR-1.3 各チェック依頼に一意の管理番号とタイムスタンプを付与する
FR-1.4 チェック依頼はステータスフローに従う:下書き → 提出済 → 審査中 → FF法務待ち → 完了 → アーカイブ
FR-1.5 ユーザーは元のチェックシート(PDF/画像)を依頼に添付できる

FR-2:エンティティ解決・法人番号検索

ID 要件
FR-2.1 チェック依頼作成時、国税庁法人番号Web-APIを呼び出し、会社名・住所から13桁の法人番号を解決する
FR-2.2 解決された法人番号を、当該エンティティの全チェック結果を紐付ける主キーとして使用する
FR-2.3 APIから返された基本法人情報(正式名称、住所、登記日、変更履歴)を表示する
FR-2.4 解決できないエンティティ(個人事業主、海外法人等)には内部管理IDを発番する

FR-3:EDINETチェック(上場企業)

ID 要件
FR-3.1 上場企業について、EDINET APIを照会して開示書類を取得する
FR-3.2 有価証券報告書から役員名を抽出・表示する
FR-3.3 抽出された役員名をチェック対象リストに自動投入する
FR-3.4 EDINETチェック結果(確認済/該当なし)をタイムスタンプとともに記録する

FR-4:日経テレコン検索

ID 要件
FR-4.1 事務取扱に定義された約50のネガティブキーワードセットを使用して、各対象の日経テレコン検索クエリを生成する
FR-4.2 各チェック対象(会社名、代表者、各役員)について、個別の検索クエリ文字列をコピペまたは直接利用可能な形で生成する
FR-4.3 日経テレコンの記事検索ページをワンクリックで開くリンクを提供する
FR-4.4 ユーザーは対象ごとの検索結果を記録する:ヒット件数(0件またはN件)、FF法務へのエスカレーション要否
FR-4.5 ヒット件数 > 0の場合、システムが自動的にFF法務レビュー用フラグを立て、エスカレーション日時を記録する
FR-4.6 FF法務ユーザーは、記事レビュー所見と判定をシステム上で直接記録できる
FR-4.7 キーワードセット全体を管理者ユーザーが設定変更できる(追加/削除/編集)

FR-5:インターネット検索エンジンチェック

ID 要件
FR-5.1 日経テレコンと同一のキーワードパターンを使用して、各対象のGoogle検索URLを生成する
FR-5.2 ワンクリックで新規ブラウザタブに検索を開くことができる
FR-5.3 ユーザーはインターネット検索結果を記録する:ネガティブデータなし / ネガティブデータあり(内容記述付き)
FR-5.4 オプションとして、Google Custom Search APIによる自動検索クエリを実行し、サマリー結果を表示する(オン/オフ設定可能)

FR-6:政府オープンデータOSINTチェック

ID 要件
FR-6.1 官報:インターネット版官報を検索し、当該エンティティに関する破産公告、解散公告、その他の法的手続を照合する
FR-6.2 金融庁:金融庁の行政処分データベースおよび免許・登録リストを照合する
FR-6.3 国土交通省:国土交通省のネガティブ情報等検索システムで建設・不動産業界の違反を照合する
FR-6.4 すべてのOSINTチェック結果を、情報源・タイムスタンプ・一致詳細とともに自動記録する
FR-6.5 いずれかの政府データベースで完全一致した場合、チェック依頼に自動アラートフラグを付与する

FR-7:結果管理・検索結果一覧表

ID 要件
FR-7.1 反社チェック検索結果一覧表のデジタル版を、必要な全フィールド(No.、検索日、会社名、代表者名、住所、検索結果、調査確認、備考)で管理する
FR-7.2 各チェック対象行に、日経テレコンおよびインターネット検索の両結果を記録する
FR-7.3 チェック依頼ごとの最終判定は次のいずれか:取引開始に懸念ない / FF法務にエスカレーション / 取引謝絶
FR-7.4 取引謝絶の場合、理由とエビデンスを記載するコメントの入力を必須とする
FR-7.5 検索結果一覧表を既存のスプレッドシートレイアウトに合わせたExcel/CSV形式でエクスポートできる
FR-7.6 個別のチェック結果を監査エビデンス用PDFとしてエクスポートできる

FR-8:ワークフロー・通知

ID 要件
FR-8.1 ロールベースアクセス:営業(依頼作成)、法務(チェック実施)、FF法務(エスカレーションレビュー)、コンプライアンス担当役員(謝絶の最終承認)
FR-8.2 ステータス遷移時のメール/アプリ内通知:提出、FF法務エスカレーション、完了、謝絶
FR-8.3 ダッシュボード表示:未処理チェック、進行中チェック、エスカレーション中、最近完了
FR-8.4 設定可能な閾値(デフォルト:5営業日)を超えて進行中のままの依頼に対する遅延アラート

FR-9:継続モニタリング

ID 要件
FR-9.1 チェック有効期限(年次再チェック必要)を管理する
FR-9.2 既存取引先の年次再チェック期限到来時に自動アラートを送信する
FR-9.3 任意のタイミングで臨時再チェックを手動起動できる

FR-10:データ保持・監査

ID 要件
FR-10.1 すべてのチェックデータを、規程に基づき取引関係終了後5年間保持する
FR-10.2 完全な監査証跡:誰が、いつ、何を実施・変更したかを記録
FR-10.3 アーカイブ済みレコードは読み取り専用だが検索可能
FR-10.4 すべての外部APIコールをリクエスト/レスポンスメタデータ(機密内容を除く)とともにログ記録する

非機能要件

NFR-1:技術スタック

ID 要件
NFR-1.1 ランタイム:Bun
NFR-1.2 フレームワーク:Next.js(App Router)
NFR-1.3 言語:TypeScript(strictモード)
NFR-1.4 UI:React(適切な箇所ではServer Componentsを使用)
NFR-1.5 データベース:PostgreSQL(Prisma ORM経由)
NFR-1.6 デプロイ:Dockerコンテナ、セルフホスト可能

NFR-2:パフォーマンス

ID 要件
NFR-2.1 法人番号検索のレスポンス:2秒以内
NFR-2.2 OSINTチェック(全政府情報源合計):エンティティあたり10秒以内
NFR-2.3 ダッシュボードページの読み込み:1秒以内
NFR-2.4 50エンティティの一括インポート処理:5分以内

NFR-3:セキュリティ

ID 要件
NFR-3.1 すべての外部サービス認証情報(日経テレコン等)は暗号化して保存、ソースコードには含めない
NFR-3.2 ロールベースアクセス制御をAPIレベルで適用する
NFR-3.3 すべてのアクションを認証済みユーザーIDとともにログ記録する
NFR-3.4 HTTPS通信のみ。URLパラメータにPIIを含めない
NFR-3.5 30分間の無操作でセッションタイムアウト

NFR-4:ローカライゼーション

ID 要件
NFR-4.1 UIの主要言語:日本語
NFR-4.2 日時表示はすべてJST(Asia/Tokyo)
NFR-4.3 コードコメントおよび変数名は英語

NFR-5:コンプライアンス

ID 要件
NFR-5.1 政府サイトのスクレイピングはrobots.txtを遵守し、ポライトクロール遅延を実装する
NFR-5.2 著作権のある記事の全文保存は行わない——メタデータのみ(情報源、日付、見出しの有無)
NFR-5.3 個人情報の取扱いは個人情報保護法に準拠する