# アクシスさん用フォーム送信システム — テスト版

Chrome拡張機能（Manifest V3）。お問い合わせフォームを自動解析・自動入力・自動送信する。アクシス社のメンバー用にカスタマイズされた専用版。

## 本番版との関係

- **本番:** [/root/axis-form-sender/](../axis-form-sender/) — v2.7.3（通常運用）
- **テスト:** [/root/axis-form-sender-test/](./) — v2.7.3.1 / version_name=`2.7.3-test`
- テスト版は **本番と並行稼働** できるよう、拡張機能名に「(テスト)」を付けて別物として識別される
- `manifest.json` の `description` に「tabsPerBatch=50 / 本番と並行稼働用」とある
- 変更を検証してOKなら本番側にマージ、次の `axis-form-sender-vX.Y.Z.zip` を作ってリリース

## ディレクトリ構造の重要な注意

- `/root/` 直下に `axis-form-sender-vX.Y.Z.zip` が多数ある（v1.0.0〜v2.7.3）= 各リリースのアーカイブ
- `/root/axis-form-sender-test.zip` = テスト版配布用のZIP（作業後に再パッケージング）
- 本番とテストは **別ディレクトリで独立管理**。片方の変更がもう片方に自動で波及することはない

## 主要ファイル

| ファイル | 役割 | 行数 |
|---|---|---|
| [background.js](background.js) | Service Worker（バッチ処理、タブ管理、送信制御） | 3481 |
| [content.js](content.js) | コンテンツスクリプト（フォーム検出・入力・送信の本体） | 10358 |
| [sidepanel.html](sidepanel.html) / [sidepanel.js](sidepanel.js) | サイドパネルUI（バッチ/プロファイル/NGリスト） | 492 / 2749 |
| [manifest.json](manifest.json) | 拡張機能設定 | — |
| [generate-mappings.js](generate-mappings.js) | SITE_MAPPINGS自動生成ツール | 371 |
| [verify-batch.js](verify-batch.js), [form-verifier-server.js](form-verifier-server.js) | 送信検証ツール | — |

## 機能概要（運用観点）

- **バッチ送信:** CSVで会社リストを読み込み → HPからお問い合わせフォームを自動探索 → 本文生成 → 自動入力・送信
- **CSV形式:** `会社名, HP URL, Instagram URL`（3列目は解析に任意）
- **NGリスト:** 成約済みドメインを登録して送信対象から除外（CSV入出力可）
- **タブ並列数:** `tabsPerBatch` — 本番10、テスト版は50相当で検証中
- **テンプレート変数:** `{{会社名}}` `{{担当者名}}` `{{エリア}}` `{{注目ポイント}}` `{{強みフレーズ}}` `{{送信先ジャンル}}` `{{アピールポイント}}`
- **AI解析:** DeepSeek（会社情報抽出）、Vision（gpt-5.4-mini、ビジュアルラベル解析）。APIキー未設定時もデフォルトキーで動作
- **SITE_MAPPINGS:** 手動46件 + 自動生成 + コミュニティ共有で数百サイト対応

## よく聞かれる作業

1. **バグ修正:** ユーザーが特定サイトで入力不具合を報告 → SITE_MAPPINGS に対象ドメインの明示マッピング追加が定番の解決策（CHANGELOG v4.20〜v4.21 参照）
2. **テスト版リリース:** `manifest.json` の version を上げる → ZIP化（`axis-form-sender-test.zip`）
3. **本番昇格:** テスト版の変更を本番ディレクトリにコピー → `manifest.json` の name/description/version を本番用に戻す → `axis-form-sender-vX.Y.Z.zip` を作成

## パッケージング

```bash
cd /root && rm -f axis-form-sender-test.zip && \
  zip -r axis-form-sender-test.zip axis-form-sender-test \
  -x "*.DS_Store" "*/node_modules/*"
```

## 制約・注意

- **Instagram解析には捨てアカのログイン状態が必要**（運用ガイド参照）
- **送信履歴はブラウザローカル保存** → メンバー間では共有されない。リストをエリア×ジャンルで分担する運用
- **CAPTCHA突破はしない**、**自動送信は明示的に有効化されたときのみ**
- 拡張機能インストール後、フォルダを移動すると再読み込みが必要

## ドキュメント

- [CHANGELOG.md](CHANGELOG.md) — 詳細な変更履歴（v2.10〜v4.33）
- [CHANGELOG_V2.1.md](CHANGELOG_V2.1.md) — v2.1系
- [FEATURES.md](FEATURES.md) — 機能仕様
- [QUICK_REFERENCE.md](QUICK_REFERENCE.md) — 開発者向けクイックリファレンス
- [TEST_INSTRUCTIONS.md](TEST_INSTRUCTIONS.md) — テスト手順
- [インストールガイド.md](インストールガイド.md) — エンドユーザー向け
- [運用ガイド.md](運用ガイド.md) — アクシス社メンバー向け運用ルール
- [README-VERIFIER.md](README-VERIFIER.md) — 送信検証サーバー

## セッション復旧時のチェックリスト

1. `manifest.json` で現在のバージョン確認
2. `CHANGELOG.md` の先頭を読んで直近の変更把握
3. 本番ディレクトリ（../axis-form-sender/）との diff で未反映の変更を把握
4. ユーザーに「前回どこまで進んだか」を確認してから着手
