=== Form Sentry ===
Tags: contact form 7, spam, sales, privacy
Requires at least: 6.7
Requires PHP: 8.2
Stable tag: 0.1.0
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Contact Form 7の営業・勧誘を、外部APIを使わずに判定します。

== Description ==

日本語・英語の複合ルールで、売り手からの営業提案・面談要求・販促条件を判定します。
AIで書かれたかどうかを判別するものではありません。未知の言い換え・巧妙な回避には対応しきれません。

確認モードでは送信を止めずに判定だけ記録します。管理者が対象フォームの本文欄を選び、
自サイトの文面で確認したうえで拒否モードへ切り替えてください。

* 外部通信・APIキー・CAPTCHA不要
* Contact Form 7の既存スパム判定を維持
* 本文・氏名・メール・IPを保存しない直近20件の簡易履歴
* 保存せず試せるプレビュー
* 判断保留・判定不能時は本プラグインでは拒否しない

実際の問い合わせに対する検知率・誤検知率は未評価です。ルール点数は確率ではありません。
本文を保存しないため、履歴だけでは誤判定を確認できません。通常問い合わせのサンプルを
プレビューへ入力して確認してください。既存プラグインの保存・通信設定は別途ご確認ください。

== Installation ==

1. Contact Form 7をインストール・有効化する。
2. WordPress管理画面の「プラグイン → 新規追加 → プラグインのアップロード」からZIPを選ぶ。
3. Form Sentryを有効化し、「設定 → Form Sentry」を開く。
4. 判定したいフォームの本文欄（標準ではyour-message）を選択して保存する。
5. 確認モードで試す。拒否時の案内に別の連絡経路を記入する。
6. 動作を確認後、拒否モードへ変更する。

無効化すると本プラグインの判定は停止します。削除すると設定と履歴を削除します。
初版のサポート範囲はWordPress単一サイトです。マルチサイトのネットワーク有効化は未対応です。

== Frequently Asked Questions ==

= すべてのAI営業を止められますか？ =
いいえ。AI作成の検知ではなく、既知の営業表現の判定です。言い換えや購入文脈の追記で回避できます。
本文が20,000バイトを超える場合、不正な入力、設定欄の欠損や改名も判定不能として通します。
アクセス制限・容量制限・bot対策などは別のレイヤーで行ってください。

= WordPress以外でも使えますか？ =
同じルールを使うTypeScript/JavaScript SDKとPHP判定器があります。
このZIPはWordPress用です。SDKとNext.jsサンプルはソースリポジトリ側を参照してください。

= なぜ拒否されないのですか？ =
確認モード、対象欄未選択、判定保留、未対応表現、CF7のスパム判定スキップ設定を確認してください。
フォームを編集した場合は対象欄を選び直してください。

= 履歴はどのくらい残りますか？ =
表示は直近7日・最大20件です。WordPress transientの期限と削除処理を使います。
同時送信時に履歴が欠ける場合があるため、監査ログとしては利用しないでください。

== Changelog ==

= 0.1.0 =
* 初版。確認/拒否モード、フォーム別の欄選択、プレビュー、本文を含まない履歴。
