実装と確認で守る方針

この資料は、実装・変更・評価を行う人が、プロジェクトの重要な方針を確認するための補足です。実際の変更では、対象コード、関連テスト、適用される開発規約を確認してください。

1. 避ける実装と設計

<prohibited_rules>
  <rule id="no_network_code" severity="CRITICAL">
    <prohibited_pattern>
      WinInet, WinHTTP, Socket API (ws2_32.dll), curl, HTTP/HTTPS URL リテラルの実装
    </prohibited_pattern>
    <reason>最優先要件である「完全ローカル・外部通信ゼロ」を破るため</reason>
  </rule>

  <rule id="no_sound_code" severity="CRITICAL">
    <prohibited_pattern>
      PlaySound, Beep, MessageBeep, Media Foundation 音声再生
    </prohibited_pattern>
    <reason>最優先要件である「無音遵守 (Silent UI)」を破るため</reason>
  </rule>

  <rule id="no_pdf_direct_overwrite" severity="CRITICAL">
    <prohibited_pattern>
      PDF 原本ファイル (.pdf) に対する直接の書き込みオープンや上書き
    </prohibited_pattern>
    <reason>原本非破壊保護に違反するため。注釈は必ず別ファイル .clrop に記述すること</reason>
  </rule>

  <rule id="no_direct_file_replace_without_atomic" severity="HIGH">
    <prohibited_pattern>
      atomic_write::AtomicWriteUtf8 / AtomicWriteBytes を介さない直接ファイル置き換え
    </prohibited_pattern>
    <reason>クラッシュ・電源断時のデータ壊れゼロ(非破壊保存)を担保するため</reason>
  </rule>

  <rule id="no_unregistered_powershell_var" severity="MEDIUM">
    <prohibited_pattern>
      PowerShell スクリプトで Set-StrictMode 環境下での未宣言変数参照
    </prohibited_pattern>
    <reason>ビルド・リリース自動化スクリプトで VariableIsUndefined エラーを発生させるため</reason>
  </rule>
</prohibited_rules>