⚙️ Vault運用
2026-06-02_0828_TERASU_HP_contact_form
最終更新 2026年06月02日 / 90_Meta/Claude作業ログ/2026-06-02_0828_TERASU_HP_contact_form.md
2026-06-02 08:28 - /handoff 実行
対象システム
TERASU公式HP(Cloudflare Pages project = scale-hp-showcase / 本番 terasu.scale-group.co.jp)
ローカル正本: /Users/oogushiyuuki/Library/CloudStorage/GoogleDrive-y-ogushi@scale-group.co.jp/マイドライブ/AI/scale-hp-showcase/
セッション背景
長時間マルチスレッドのTERASU公式HPセッション。直近の主題は お問い合わせフォームをSCALE HPと同じ座組(メール通知+Slack通知)にする こと。それ以前に、著作権コード指紋ゼロ化(ver13.2 prod)・FV水たまり形状ラボ・メニューデザインラボ・OG画像・hp-flowコマンドのブラッシュアップ等を実施済。
完了タスク(詳細)
A. お問い合わせフォーム メール+Slack通知(メインスレッド・ほぼ完了)
functions/api/contact.js新規/改修: フォーム → ①Formspree(メール) + ②Slackchat.postMessageの二重通知。SCALE HPと同座組。- CF7(Contact Form 7)系JS 4本を
contact/index.htmlから撤去 → 「送信するを押すとずっとロード中」を根治(CF7がsubmitを横取りしCF7形式レスポンスを期待→自前{ok}を解釈不能で固まっていた)。送信は自前inlineハンドラ(capture phaseでpreventDefault→fetch('/api/contact')→r.json()→「お問い合わせを受け付けました」表示)。 - 撤去したCF7由来の「変なテキスト」も削除(大串FB「送信する以降に変なテキスト入ってる」)。
- 配信を
context.waitUntil→awaitに変更(waitUntilが環境により未発火でメール/Slack来ない問題の根治)。 - Slack通知 → 動作確認済: bot @scale-ai-team が C0B6WL6CLFR 未参加で
channel_not_found→自己join不可(missing_scope)→大串がbotをチャンネル招待→postMessage ok:true→Slackterasu_問い合わせに全項目届くのをスクショ確認。 - 送信先Formspreeフォーム誤り修正: ver15.0は
xojpkzzg(=SCALE側フォーム)に流れていた→TERASU専用xkokjean(お問い合わせ(TERASU)) に修正(ver15.1)。本番反映済。
B. (本セッション前半) 完了済の他スレッド
- 著作権コード指紋ゼロ化 ver13.2 prod反映済: kurokitec/wp-content/wp-includes/wp-admin/wp-json/WordPress 全0件。デザイン・レイアウト・アニメ・内容は1pxも変えずコード裏側だけTERASUオリジナル化。class prefix化はvendor.js整合問題で見送り(次フェーズ)。
- OG画像(リンク共有画像): Codexが最終版
img/og-terasu-hp-v11.jpgを作成・og:image反映済(live)。 - hp-flowコマンド ブラッシュアップ済(11ステップ): ver番号管理+複数パターンプレビュー+リンク混同事故防止プロトコル+Step7スマホ最適化(SEO前・PC崩れ注意)を追加。
- Preview Deploy必須ルール + Vercel Pro採用方針 を3箇所(global CLAUDE.md / memory / Vault実装ルール)に永続化済。
編集ファイル
functions/api/contact.js- Formspree(xkokjean)+Slack(C0B6WL6CLFR)二重通知。配信await化。L7-12に定数。contact/index.html- CF7系JS4本撤去 + 自前submitハンドラ(js-terasu-contactform) + googlesitekit-cf7の未閉じ<script defer>撤去(これが直後のinlineハンドラを飲み込んでいた)。
デプロイ・バックアップ
- 本番ver15.1 (
terasu.scale-group.co.jpで確認済) - pre/post backup:
scale-hp-showcase_2026-06-02_0817.tar.gz(ver15.0) /scale-hp-showcase_2026-06-02_0823.tar.gz(ver15.1) - デプロイ:
bash ~/Obsidian/scripts/scale_deploy.sh terasu prod(terasu_prod_guard OK: demos=1417/lp.html有/新HPマーカー全一致) - ※TERASU HPは静的HTMLのため changelog.ts は無し(ver管理は バージョン管理表 + index.htmlの
<!-- TERASU-VER: -->マーカー)
試したこと・学び(重要)
- メール通知が来ない真因 = Formshield(MLスパムフィルタ):
xkokjeanフォームの Formspree設定で Formshield が ON → Cloudflare Function 経由のサーバ送信(リファラ無し/サーバIP)を毎回 bot=Spam判定 → Inbox入らずメール飛ばない。テスト送信が実際にSpamタブに入ったのをスクショ確認。 - Formspree無料プランの制約: ①送信先メアド指定は有料(無料は送信先=Formspreeアカウントのメール固定) ②Formshieldがサーバ送信を弾く。→ 大串は「Formspree無料のまま・SCALEと同じであればOK」と決定(=Resend切替は不採用)。
- waitUntilのバックグラウンド配信は環境により発火しない→awaitが確実。
- CF7由来JSは
.wpcf7-formクラスのsubmitを問答無用で横取りする→自前フォームでは撤去必須。
ユーザーFB(重要)
- 「Formspree無料のままでいい・SCALEと同じであれば」→ Resend不採用。各サイト自分のFormspreeフォーム=SCALEと同座組で確定。
- 「メールはbackoffice宛てに来ればOK・Slackは C0B6WL6CLFR」→ ただし無料プランは送信先=アカウントのメール(SCALEも同様)なので「SCALEと同じ」を優先。
- (既出FB) TERASUをSCALEと同じに(解釈が逆だった→SCALEが参照元)。メニューは「黒背景部分のデザイン」を変えたい(入場アニメではない)。OGカードは「TERASUロゴとTERASU文字以外いらない・明るさは黒木テックに合わせる」。
注意ポイント・退化リスク
- ver13.2の著作権ゼロ化を退化させない(kurokitec/wp-* 文字列を再混入させない)。FV ver12確定実装(clip-unlock/structure-fix/bgbody/gpu/title-reveal)も保護。
- Codexと同じ
scale-hp-showcaseを共有→編集前に必ずai_session_lock.sh acquire scale-hp-showcase claude-code+ 解放。Drive競合コピー注意。 - 公開ドメイン修正は preview→大串OK→prod の2段必須(contact系の確定修正は本番影響小だったが原則厳守)。
- contact.js のSLACK_TOKEN/CHANNELはハードコード。誤って公開リポに出さない。
次のセッションで取り得る選択肢
- 【最優先・大串待ち】Formshield OFF後の最終確認: 大串が
xkokjeanのFormshieldをOFF + Spamのテストをnot spam化 → 本番contactから再テスト → Inbox入り+メール+Slackの3点確認で問い合わせフォーム完全クローズ。 <title>を案Bに変更(未適用・保留中): 「HP制作ならTERASU(テラス)|月額1万円・最短3営業日」。Codexロックで戻していた。preview→prodで反映。- FV「水たまり」形状の選定(ver14.x lab・未選定): ?shape=puddle-a/b/c/d(80点スムーズ凹多角形・曲線のみ・非対称右下伸び)。大串が見比べ中。floatnum採用・数字は黒。
- 3理由デザイン / メニュー黒背景デザイン / about料金ブロック の選定(ver14.1 lab・未選定)。
- Phase2 コンテンツ拡充(業種別LP・コラム)= タスク#10。
引き継ぎファイル
/tmp/handoff_20260602_082826.txt