⚙️ Vault運用

2026-07-20_1557_SCALE_FORM_Phase1

最終更新 2026年07月20日 / 90_Meta/Claude作業ログ/2026-07-20_1557_SCALE_FORM_Phase1.md

SCALE FORM Phase1 完了ログ(2026-07-20)

命名決定(大串)

「同名で世代交代」。対外呼称=SCALE FORM/リポ・CF project=scale-form-sales(既存Next.js版scale-formとの物理衝突回避・旧版は触らない)。

成果物(本番稼働中 https://scale-form-sales.pages.dev )

  • リポ: GitHub scale-group-jp/scale-form-sales(private)・スタートカード CLAUDE.md
  • 認証: PBKDF2(作成時ハッシュ)+HMAC署名cookie+スライディング延長+名簿照合(MEMBER_REVOKED)。lazy-hash構造は作らない
  • D1(scale-form-sales-db): per-row設計(projects/member_rows/form_targets/form_campaigns/form_templates/form_sends/app_config)・generated column+index・form_sendsは冪等UNIQUE制約
  • API: login/me/projects/targets(digest/since)/targets/bulk(完全スキップ重複防止+D1実読検証)/health/poc/detect
  • フロント: ログイン→案件→対象リスト(仮想スクロール)→CSV取込。401バナー/verバッジ/トースト。form2段階防御
  • deploy.sh: 必須ファイル/関数チェック+node --check+?v=自動更新+tar.gz backup+本番実バイト検証+APIヘルスチェック
  • Browser Rendering PoC実証: 実在3種検証。terasu/contactでcompany/name/tel/email/message全マッピング成功(4.7秒)。example.comはフォームなし正しく判定。docs/Phase1_PoCレポート.md

依頼書§3の事故継承(最初から実装)

per-row/blob禁止/完了保証型書き込み(bulkのD1実読検証)/仮想スクロール/silent fail禁止(401区別)/スライディングセッション/JST表示Date経由/完全スキップ重複防止/ASCII safeヘッダ。

課題(Phase2以降)

  • リンク自動探索はdomcontentloadedでJS描画前→networkidle+wait改善(Phase2)
  • 選択肢フィールドのAIマッピング(Phase3)
  • GitHub Actions自動デプロイ未設定(今はdeploy.sh手動)

Phase2(送信エンジン: Queues+Cron/冪等性/レート制御/全ステータス/送信ログ/Slack通知)は大串OK後。