﻿# AI_CORE_NODE: SAFETY_AND_NONNEGOTIABLES

<ai_node_schema version="1.0" category="safety-policy">
  <summary>本リポジトリの最優先3大ルール (外部通信ゼロ、非破壊保存・データ保全、無音遵守) の詳細仕様と検証手法</summary>
</ai_node_schema>

## 1. 外部通信ゼロ方針 (No-Network Policy)

### 原則
配布物、アプリ本体、依存ライブラリ、関連ツール、ビルド生成物のすべてにおいて、**一切のネットワーク通信を行わない**設計を義務付けます。

### 適用範囲と無効化措置
- **自動アップデート・更新確認**: 実装禁止およびコンパイルオプションで除去。
- **テレメトリ・クラッシュレポート・広告SDK**: 配布物に含めない。
- **オンライン辞書・Web検索・翻訳**: 無効化。
- **LibreOffice コンパイル時**: `wininet`, `winhttp`, `curl`, `oauth2`, `updatefeed` などのネットワークモジュールをカスタムパッチおよびビルドフラグで完全カット。

### 検証
- 静的検査ツール `safety_scans` による API 走査。
- バイナリスキャン `binary_scan.py` による `WS2_32.dll` / `WININET.dll` などの通信 DLL リンク検出スキャン。

---

## 2. ファイル破壊・情報損失ゼロ (Data Protection & Non-Destructive Storage)

### 原則
異常終了、クラッシュ、電源断、権限エラーなどの異常系が発生した場合でも、ユーザーの PDF 原本やノート、注釈データを破棄・損壊させない設計にします。

### 安全機構
1. **原本非破壊**: PDF 原本は読み取り専用で扱い、注釈は別ファイル `.clrop` に保存。
2. **アトミック書き込み (`run_atomic_write`)**:
   - 一時ファイル（`.tmp`）へ書き込み・検証を完了した後に、元のファイルへアトミック置換。
3. **Stage ガード (`_stage`)**:
   - 編集途中の状態を stage 領域に自動保存し、次回起動時に安全に自動復元・ロールバック可能。

---

## 3. 無音遵守 (Silent UI Policy)

### 原則
アプリから突然の音やビープ音を鳴らさない設計にします。入力エラーや警告は静かな視覚通知（ダイアログやステータス表示）で伝えます。

### 実装ルール
- `PlaySound`、`Beep`、`MessageBeep` の使用を禁止。
- メディアの自動再生を実装しない。
- Windows の「一般の警告音」が鳴る未解消の既知問題については、発生経路を特定して解消する（音量設定変更による回避は認めない）。
