このプロジェクトについて

Aetherfieldは、企業が排出量データを追跡、モデリング、報告、対策するためのB2Bサステナビリティ・インテリジェンス・プラットフォームです。散在する手動のESGデータと運用上の洞察の間のギャップに対処し、サステナビリティを年次の報告業務から継続的な実践へと変革します。 このリポジトリには、プリレンダリングされたマーケティングサイトと認証済みプラットフォームの両方が、単一のNext.js App Routerアプリケーションに含まれており、別個のバックエンドサービスはありません。主な機能は以下の通りです。 - **マーケティングサイト**: 7つの公開ルート(ホームページ、ジャーナル、記事、キャリア、求人一覧、会社概要、デザインシステム)があり、コンテンツは型付き定数として保持されます。デモリクエスト、ダブルオプトインのニュースレター登録、履歴書の非公開アップロードを伴う求人応募のための公開書き込みパスは、すべてレート制限とボット保護が施されています。 - **プラットフォーム**: メンバーシップと招待状を持つマルチテナント組織、段階的な行を持つCSV活動インポート、公開および顧客提供の排出係数セット(DEFRA 2025/2026がシード)、日付有効な係数選択、スコープ1/2/3計算エンジン(ロケーションベースおよびマーケットベースのスコープ2)、予測付き目標追跡、生成されたESGレポート、再計算、しきい値アラート、保持パージのための3つの夜間cronジョブ。 - **AI統合**: 1つのモジュールがVercel AI Gatewayを介してESGレポートの物語的な散文を起草します。LLMは数値を生成しません。すべての算術は純粋関数で決定的です。生成された物語は、計算された数値の閉じた許可リストに対してトークンごとにチェックされ、チェックに失敗したドラフトは破棄されます。レンダリングされ丸められたレポートセクションのみがプロバイダーに送信されます。 **技術スタック**: Next.js 16.2.12(App Router、Turbopack)、React 19.2.4、TypeScript 5、Tailwind CSS 4(設定不要)、node-postgresを使用したNeon Postgres、Drizzle ORM、Better Auth(自己ホスト)、Resend + React Email、Upstash Redisレート制限、Vercel Blob(非公開)、BotIDボット保護、Zod検証、アニメーション用のGSAPとMotion、AI SDK、テスト用のVitestとPlaywright。 **アーキテクチャ**: UI、Server Actions(唯一の変更パス)、Route Handlers(外部呼び出しのみ)、データ層(lib/db)、ドメイン層(純粋関数)で階層化されています。UIはRoute Handlersを通じて変更を行いません。すべての変更はサーバー側で認証および検証されます。公開フォームは一貫したパスに従います:クライアント検証、BotIDチェック、レート制限、サーバー側Zod検証、認証、データベース書き込み、メール通知(失敗しても書き込みは失敗しません)。 **開始方法**: Node.js 20以上、Neon Postgresデータベース(プールおよび直接接続文字列)、オプションでVercel CLIが必要です。セットアップには、.env.exampleのコピー、マイグレーションの実行、変換係数のシードが含まれます。ローカルデータベースモードはありません。 **テスト**: Vitestはlib/domain(純粋関数のみ)に限定されています。Playwrightは、本番ビルドに対してChromium、Firefox、WebKitをカバーし、再現性のためにWebKitはルートレスPodmanコンテナで実行されます。 **個人データの取り扱い**: CVは署名付きURLを持つ非公開ブロブストレージに保存され、ダブルオプトインのニュースレター、リクエスト本文/メール/CVのログ記録なし、夜間パージによる有限保持、実際の組織削除。 **デプロイ**: Node.jsランタイムを使用したVercel Fluid Compute。3つの夜間cronがvercel.jsonで宣言されています。Neonのスケール・トゥ・ゼロのコールドスタートが予想されます。 **ドキュメント**: AGENTS.mdはコントリビューター契約です。docs/にはサーフェスごとのビルド記録が含まれ、prompts/にはリポジトリを構築した番号付き実装プロンプトが保持されています。