最終更新: 2026/06/29 23:00
IntegrityGuard 運用ガイド (JTBD-012 dogfood 先出し)
対象: 電帳法 SaaS (JTBD-012) の Phase 0 dogfood を回す Operator (= 達希 = 1 人法人運営者)。 状態: 設計説明の先出し。実装は未着手。実装着手時に本ファイルを再確認 + 同期更新する。 由来: ADR-0175 amend #4 (VETO 解消 #4) で drp clone session 16 に起票。
1. ざっくり何のガイド
電帳法 SaaS の真実性確保は ADR-0175 で「3 号 (訂正・削除履歴システム) 主軸 + TSA Strategy 後付け」を確定した。実装は IntegrityGuard というモジュールで担う。
本ガイドは Operator が dogfood 中に判断する場面で必要な最小理解パスを先出しする。詳細仕様は ADR-0175 §仕様 を参照。
2. IntegrityGuard の 4 要素
IntegrityGuard は L3 アプリケーション層に配置する。4 ファイルで構成する。
| ファイル | 単独責務 |
|---|---|
immutable-versioning.ts | evidence_versions 表で「上書き不能」を担保。UPDATE は superseded_by のみ。DELETE は不可 |
logical-deletion.ts | evidence_deletions 表で「論理的に消す」状態を管理。物理削除はしない。tenant_id スコープ強制 |
append-only-audit-log.ts | integrity_audit_log 表に全操作を INSERT のみで残す。prev_log_hash でハッシュチェーン |
object-lock-adapter.ts | S3 Object Lock Compliance mode の WORM 最終ガード |
役割の重なり: immutable-versioning はアプリ層の論理ガード、object-lock-adapter はストレージ層の物理ガード。二重防御。
3. 4 モード切替表
ADR-0175 §決定で定義する 4 モード。
| モード | 3 号 (IntegrityGuard) | 1 号 (TSA Strategy) | 説明 | 適用 Phase |
|---|---|---|---|---|
| 3 号単独 | ON | OFF (NullStrategy) | dogfood で TSA なし | Phase 0 default |
| 1 号単独 | OFF | ON (SeikoTsaStrategy) | 撤退条件 #2 発火時の縮退 | 撤退対応 |
| 両方有効 | ON | ON (SeikoTsaStrategy) | 商用化以降の二重化 | Phase 1+ default |
| 両方無効 | OFF | OFF (NullStrategy) | テスト境界条件 | テストのみ |
3.1 切替方法
mode フラグの環境変数は実装時に確定する。仮称:
INTEGRITY_GUARD_ENABLED=trueで 3 号 ONTSA_STRATEGY=NullStrategyで TSA OFF /SeikoTsaStrategyで TSA ON
切替手順は実装後に本ファイルへ追記する。前提:
- wrangler secret put 等で値を変更する
- デプロイ smoke test で実装クラス名を ヘルスチェック endpoint で確認する
- mode フラグ変更履歴は
integrity_audit_log.operation = STRATEGY_SWITCHで自動記録する
3.2 切替判断のフロー
- Phase 0 開始時:
3 号単独で固定する - Phase 1 切替判断時 (= ADR-0175 §Confirmation 8 = 旧 #16・起案から 18 ヶ月以内):
両方有効に切替える - ADR-0175 §撤退条件 #2 発火時:
1 号単独への縮退を判断する - ADR-0175 §撤退条件 #3 発火時:
両方有効への前倒し or1 号単独縮退を判断する
4. Phase 0 開始前チェック
ADR-0175 §Confirmation の Phase 0 開始前必須 4 件を満たすまで Phase 0 は開始しない。
- #1 (旧 #3) 3 号要件 4 要素の実装 ADR が各要素ごとに起案済
- #2 (旧 #5) 規程文書法務レビュー完了記録あり (
docs/_internal/06_ops/regulation-document-review-{stamp}.md) - #3 (旧 #8) Object Lock Compliance mode 採用 + immutable versioning との役割分離が実装 ADR で明文化済
- #4 (旧 #15) TimestampToken 型の最小フィールド仮定義済
5. Phase 0 dogfood 中の確認項目
dogfood を回しながら定期的にチェックする項目。
- 国税庁 FAQ 改訂監視 (Confirmation #10 = 旧 #4): 自動差分監視の Slack 通知を確認する。年次手動レビューも行う
- audit log ハッシュチェーン整合性 (Confirmation #13 = 旧 #9): 日次バッチ結果を確認する。失敗時は ADR-0175 §撤退条件 #8 発動
- マルチテナント越境検知 (Confirmation #14 = 旧 #10): 月次レビューで CI 結果を確認する
6. Phase 1 切替判断チェック
ADR-0175 §Confirmation の Phase 1 商用化切替必須 4 件を満たすまで 両方有効 モードへ切替えない。
- #5 (旧 #2) Phase 1 TSA 切替時の本番回帰差分テストで動作差分 0 件
- #6 (旧 #12) JIIMA 事前照会回答書取得済 (= 2026-06-29 amend #2 で Phase 0 開始クリティカルパスから外し Phase 1 切替判断時点に後ろ倒し)
- #7 (旧 #13) ISMS/SOC2 取得方針の別 ADR が受理済 (=
tasks/prompts/draft_adr_isms_soc2_acquisition_decision.mdから本格 ADR へ) - #8 (旧 #16) Phase 1 切替最大許容遅延期間 18 ヶ月以内
改訂履歴
- 2026-06-29: 起票 (ADR-0175 amend #4 = VETO 解消 #4 / drp clone session 16 起票)