⚙️ 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(メール) + ②Slack chat.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.waitUntilawait に変更(waitUntilが環境により未発火でメール/Slack来ない問題の根治)。
  • Slack通知 → 動作確認済: bot @scale-ai-team が C0B6WL6CLFR 未参加で channel_not_found→自己join不可(missing_scope)→大串がbotをチャンネル招待→postMessage ok:true→Slack terasu_問い合わせ に全項目届くのをスクショ確認。
  • 送信先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はハードコード。誤って公開リポに出さない。

次のセッションで取り得る選択肢

  1. 【最優先・大串待ち】Formshield OFF後の最終確認: 大串が xkokjean のFormshieldをOFF + Spamのテストをnot spam化 → 本番contactから再テスト → Inbox入り+メール+Slackの3点確認で問い合わせフォーム完全クローズ。
  2. <title> を案Bに変更(未適用・保留中): 「HP制作ならTERASU(テラス)|月額1万円・最短3営業日」。Codexロックで戻していた。preview→prodで反映。
  3. FV「水たまり」形状の選定(ver14.x lab・未選定): ?shape=puddle-a/b/c/d(80点スムーズ凹多角形・曲線のみ・非対称右下伸び)。大串が見比べ中。floatnum採用・数字は黒。
  4. 3理由デザイン / メニュー黒背景デザイン / about料金ブロック の選定(ver14.1 lab・未選定)
  5. Phase2 コンテンツ拡充(業種別LP・コラム)= タスク#10。

引き継ぎファイル

/tmp/handoff_20260602_082826.txt