コンテンツにスキップ

インフラ構成

Guinness は AWS 上に構築されており、管理者側・ユーザー側・AI ワーカーの 3 つの領域で構成されます。担当チームは 4D・NDVN・Plabs に分かれています。


全体構成図

graph TB
    Admin[サービス管理者]
    User[ユーザー]

    subgraph "4D — 管理者側"
        AdminFrontend["管理者フロントエンド\nAmplify / Next.js"]
        AdminAPI["API Gateway\n管理者エンドポイント"]
        AdminLambda["Lambda\napi-admin (Hono + Bun)"]
        AdminCognito["Cognito\n管理者プール"]
        AdminRDS["RDS PostgreSQL\n管理者 DB"]
    end

    subgraph "4D — ユーザー側"
        UserFrontend["ユーザーフロントエンド\nAmplify / Next.js"]
        UserAPI["API Gateway\nユーザーエンドポイント"]
        UserLambda["Lambda\napi-user (Hono + Bun)"]
        UserCognito["Cognito\nアプリプール"]
        UserRDS["RDS PostgreSQL\nユーザー DB"]
        UserSQS["SQS\nジョブキュー"]
        S3["Amazon S3\nアセットストレージ"]
    end

    Plugin[Figma プラグイン]

    subgraph "Plabs — AI ワーカー (guinness-ai-v2)"
        DesignImport["Lambda\ndesign-import"]
        CodeImport["Lambda\ncode-import"]
        Des2Code["Lambda\ndes2code"]
        WF2Des["Lambda\nwf2des (4 つの実行系)"]
        WF2DesGenSQS["SQS\nwf2des generation"]
        WF2DesEventsSQS["SQS\nwf2des-events (AI 所有)"]
        WF2DesEB["EventBridge\nコンポーネント再同期"]
        InternalAPI["internal-api\nwf2des-api (DocDB + S3)"]
        DocDB["DocumentDB\ndesign / code\n(埋め込みベクトル)\n+ 6 つの wf2des コレクション:\nwireframe / design_rule / design_component /\nproject_figma_file / design_generation_result /\ndesign_resolution"]
    end

    subgraph "外部サービス"
        OpenAI["OpenAI API"]
        FigmaREST["Figma REST\n(サービスアカウント PAT)"]
    end

    Admin --> AdminFrontend
    AdminFrontend --> AdminAPI
    AdminAPI --> AdminLambda
    AdminLambda --> AdminCognito
    AdminLambda --> AdminRDS

    User --> UserFrontend
    UserFrontend --> UserAPI
    UserAPI --> UserLambda
    UserLambda --> UserCognito
    UserLambda --> UserRDS
    UserLambda --> UserSQS
    UserLambda --> S3

    UserSQS --> DesignImport
    UserSQS --> CodeImport
    UserSQS --> Des2Code

    DesignImport -->|design upsert| DocDB
    CodeImport -->|code upsert| DocDB
    Des2Code -->|design/code read| DocDB

    DesignImport --> OpenAI
    CodeImport --> OpenAI
    DesignImport --> S3
    CodeImport --> S3
    Des2Code --> S3

    DesignImport -. "Webhook (プライベート VPC)" .-> UserLambda
    CodeImport -. "Webhook (プライベート VPC)" .-> UserLambda
    Des2Code -. "Webhook (プライベート VPC)" .-> UserLambda

    UserLambda -->|SendMessage generation parse/assemble| WF2DesGenSQS
    UserLambda -->|SendMessage wf2des-events send-only| WF2DesEventsSQS
    WF2DesGenSQS --> WF2Des
    WF2DesEventsSQS --> WF2Des
    WF2DesEB -->|invoke resync| WF2Des
    WF2Des -->|read/write 6 collections| DocDB
    WF2Des --> S3
    WF2Des --> FigmaREST
    WF2Des -. "ai-status webhook (generation) / component manifest (プライベート VPC)" .-> UserLambda

    Plugin --> InternalAPI
    InternalAPI --> DocDB
    InternalAPI --> S3

管理者側インフラ

4D が担当する管理者向け領域。4D スタッフが組織・ユーザー・管理者アカウントを管理する。

サブシステム サービス 役割
管理者フロントエンド Amplify / Next.js 管理者操作 UI
API Gateway API Gateway 管理者エンドポイントのルーティング
バックエンド Lambda (Hono + Bun) api-admin — ビジネスロジック
認証 Cognito 管理者プール 4D スタッフ向け認証・認可
データベース RDS PostgreSQL 管理者アカウント、組織、セッション

管理者認証フロー

sequenceDiagram
    participant Admin as サービス管理者
    participant FE as 管理者フロントエンド
    participant API as API Gateway
    participant Lambda as Lambda (api-admin)
    participant Cognito as Cognito(管理者プール)
    participant RDS as RDS PostgreSQL

    Admin->>FE: ログイン
    FE->>API: POST /v1/auth/login
    API->>Lambda: リクエスト転送
    Lambda->>Cognito: initiateAuth()
    Cognito-->>Lambda: JWT アクセストークン
    Lambda->>RDS: セッション作成
    Lambda-->>FE: 200 { token, admin }

    Admin->>FE: 管理操作
    FE->>API: 管理 API 呼び出し
    API->>Lambda: リクエスト処理
    Lambda->>RDS: データ操作
    RDS-->>Lambda: 結果
    Lambda-->>FE: レスポンス

セッションライフサイクル

stateDiagram-v2
    [*] --> Created: 管理者ログイン
    Created --> Active: セッションを DB に保存
    Active --> Expired: expires_at 超過
    Active --> Revoked: 管理者ログアウト
    Active --> Revoked: パスワードリセット
    Active --> Revoked: グローバルサインアウト
    Expired --> CleanedUp: スケジュール済みクリーンアップ
    Revoked --> CleanedUp: スケジュール済みクリーンアップ
    CleanedUp --> [*]: ソフト削除(deleted_at をセット)

セッションは期限切れ後も SESSION_RETENTION_DAYS(デフォルト: 90 日)の間保持され、その後ソフト削除される。

主要環境変数(api-admin)

変数 必須 説明
ADMIN_COGNITO_USER_POOL_ID Yes AWS Cognito User Pool ID
ADMIN_COGNITO_CLIENT_ID Yes AWS Cognito App Client ID
ADMIN_COGNITO_REGION No AWS リージョン(デフォルト: ap-northeast-1)
DATABASE_NAME Yes PostgreSQL データベース名
DATABASE_USER Yes PostgreSQL ユーザー
DATABASE_PASSWORD Yes PostgreSQL パスワード
DATABASE_HOST No PostgreSQL ホスト(デフォルト: localhost)
DATABASE_PORT No PostgreSQL ポート(デフォルト: 5432)
SESSION_CLEANUP_API_KEY Yes セッションクリーンアップ API キー
SESSION_RETENTION_DAYS No 期限切れセッションの保持日数(デフォルト: 90)
ALLOWED_ORIGINS No カンマ区切り CORS オリジン
PORT No サーバーポート(デフォルト: 8081)

ユーザー側インフラ

4D が担当するエンドユーザー向け領域。design import、code import、Des2Code などの AI 処理は SQS 経由で非同期実行される。

サブシステム サービス 役割
ユーザーフロントエンド Amplify / Next.js エンドユーザー操作 UI
API Gateway API Gateway ユーザーエンドポイントのルーティング
バックエンド Lambda (Hono + Bun) api-user — ビジネスロジック
認証 Cognito アプリプール エンドユーザー向け認証・認可
データベース RDS PostgreSQL ワークフロー成果物・ユーザー ID
ジョブキュー SQS AI ワーカーへの非同期ジョブ配信
ストレージ Amazon S3 アセットファイル(スクリーンショット等)

AI インフラ(guinness-ai-v2)

Plabs が担当する AI 変換ワーカー領域。SQS キューでトリガーされ、処理完了後に Webhook でバックエンドへ通知する。

ワーカー キュー 役割 実行時間
design-import design-import Figma デザインを DocumentDB に取り込み・埋め込みベクトル生成 約 2〜5 分
code-import code-import コードを DocumentDB に取り込み・埋め込みベクトル生成 約 1〜3 分
des2code des2code design embedding を code entries と照合し、S3 result artifact を書き込み、backend webhook で結果を通知 約 1〜5 分
page-import(計画中) page-import キャプチャ済み application page 1 件を検証・正規化 TBD
code2wf(計画中) code2wf 完了済みPage Import 1件を既存 DesignSpecModel を含むWF2Des-shaped result artifactへ変換 TBD
wf2des wf2des generation + wf2des-events + EventBridge Figma ワイヤーフレームをダイレクトアセンブリでネイティブな Figma デザインに変換する(4 つの実行系: generation parse/assemble、wf_parse、rule_process、component_sweep。埋め込みなし) パースプレビュー 約 60 秒未満、confirm→spec 約 2 分未満

design-import と code-import は PydanticAI をエージェントオーケストレーションに使用し、OpenAI API でモデル推論・埋め込み生成を行う。des2code は Des2Code-only で、既存 embedding を消費し、timestamp 付き S3 result artifact を書き込み、OpenAI 呼び出しも source code 生成も行わない。wf2des も限定的な LLM ステップ(ロール/意図のパース、アセンブリ時のセクション選択、asset-process のビジョンラベリング)に PydanticAI を使用するが、リトリーバル・埋め込み・ベクトル検索は一切行わない — プロジェクト自身のコンポーネントレジストリとルールセットからダイレクトにアセンブルする。

計画中の Page Import capture は信頼された local/CI CLI で実行し、Lambda は uploaded evidence の検証のみを行います。Code2WF は完了済み import を使用し、Figma plugin は wireframe を即時または再オープン時に materialize します。

AI 処理フロー(des2code)

sequenceDiagram
    participant User as ユーザー
    participant API as API Gateway
    participant Lambda as Lambda (api-user)
    participant PG as RDS PostgreSQL
    participant SQS as SQS
    participant Worker as des2code Lambda
    participant DocDB as DocumentDB
    participant S3 as Amazon S3

    User->>API: Des2Codeリクエスト
    API->>Lambda: リクエスト処理
    Lambda->>PG: INSERT (status: pending)
    Lambda->>SQS: ジョブをエンキュー
    Lambda-->>User: 202 Accepted

    SQS->>Worker: メッセージ消費
    Worker->>DocDB: デザイン埋め込みを取得
    Worker->>DocDB: コードコレクションに対してベクトル検索
    Worker->>S3: result artifact を PutObject

    Worker-)Lambda: POST /v1/webhooks/ai-status (success + matched codes + artifact ref)
    Lambda->>PG: 最新 Des2Code result/status/artifact ref を UPDATE

    User->>API: ステータス取得
    API-->>User: success + matched codes

AI 処理フロー(wf2des generation)

generation のハッピーパス。バックエンドは まず wf2des 行を書き込み(status '0'、phase parse)、エンキュー前にワイヤーフレームのスナップショットを取得する。完了は generation 専用の ai-status webhook を通じて返り、バックエンドがその行に反映する。

sequenceDiagram
    participant Designer as Designer
    participant Plugin as Figma Plugin
    participant WFAPI as internal-api (wf2des-api)
    participant Lambda as Lambda (api-user)
    participant PG as RDS PostgreSQL
    participant GenSQS as SQS (wf2des generation)
    participant Worker as wf2des Lambda
    participant DocDB as DocumentDB
    participant S3 as Amazon S3

    Lambda->>PG: INSERT wf2des row (status '0', phase parse)
    Lambda->>S3: Capture WF snapshot
    Lambda->>GenSQS: Enqueue parse job

    GenSQS->>Worker: Consume parse message
    Worker->>DocDB: Deterministic extract + LLM roles/intent → wireframe cache + result doc
    Worker->>S3: PutObject parse.json
    Worker-)Lambda: POST /v1/webhooks/ai-status (parse_done)
    Lambda->>PG: Set phase awaiting_confirm

    Plugin->>WFAPI: Preview parse (session token)
    WFAPI->>DocDB: Read parse artifacts
    Designer->>Plugin: Confirm
    Plugin->>Lambda: Confirm endpoint (CAS awaiting_confirm + attempt)
    Lambda->>GenSQS: Enqueue assemble job

    GenSQS->>Worker: Consume assemble message
    Worker->>DocDB: Rehydrate pins → candidate filter → LLM section selection → validator → computed confidence → result doc
    Worker->>S3: PutObject result artifact + manifest
    Worker-)Lambda: POST /v1/webhooks/ai-status (succeeded + manifest key)
    Lambda->>PG: Flip row to '1' completed + result refs + flag_count (one PG txn)

    Plugin->>WFAPI: Read spec → materialize native Figma

3 つの内部実行(wf_parse、rule_process、component_sweep)は wf2des-events intake queue と EventBridge スケジュールによって駆動され、webhook を使わない — 各実行の出力ドキュメントそのものが完了の記録となる。component_sweep だけはバックエンド側 PG に影響する例外で、ai-status webhook の代わりに、発見したコンポーネントの sweep manifest を発行し、バックエンドがそれをプラットフォーム design(type=component)レジストリの upsert として適用する。

Webhook 契約

すべてのワーカーは shared service X-API-Key を付けて、プライベート VPC 上の POST /v1/webhooks/ai-status にステータスを報告する。

ワーカー 更新される PG テーブル DocumentDB 書き込み
design-import design あり(design にアップサート)
code-import code あり(code にアップサート)
des2code backend-owned latest Des2Code result/status/artifact reference なし
page-import(計画中) page_import なし
code2wf(計画中) code2wf なし
wf2des wf2des(generation、ai-status 経由)+ プラットフォーム design type=component upsert(component_sweep の manifest から) あり(6 コレクション)
ステータス値 PG 値 意味
pending 0 エンキュー済み
success 1 完了
failed 2 失敗(SQS リトライの可能性あり)

wf2des は generation 行のために、このプラットフォーム 3 状態のステータスを 5 状態に 拡張 する — '3' rejected(デザイナーがパースを却下した場合。失敗ではない)と '4' cancelled を追加 — さらに status '0' の中に名前空間化された phase フィールド('0' parse / '1' awaiting_confirm / '2' assemble)を持つ。ai-status webhook を発行するのは generation の実行系のみで、3 つの内部実行は webhook を使わず、内部実行は wf2des 行を持たない。

データベース分離

AI ワーカーとバックエンドはデータベースを共有せず、Webhook のみで通信する。

サービス 所有 DB 通信方向
guinness-backend (4D) RDS PostgreSQL Webhook を受信
guinness-ai-v2 (Plabs) DocumentDB Webhook を送信

wf2des は 6 つの DocumentDB コレクション(wireframe、design_rule、design_component、project_figma_file、design_generation_result、design_resolution)と、wf2des-api データプレーン を所有する。これは internal-api アプリ内のルートグループで、DocumentDB + S3 のみ を読み書きし、Figma プラグインがプレビュー・配置・ファイル登録に使用する。他のワーカーと同様に、wf2des ワーカーも PostgreSQL には一切書き込まない — generation の PG 影響はすべて ai-status webhook ハンドラ(完了時に PG へ書き込む唯一の主体)がバックエンド側で適用する。

計画中の Page Import と Code2WF worker は S3 artifact を使用し、DocumentDB または PostgreSQL には接続しません。対応する PostgreSQL row は backend が所有します。

認証情報の分離

サービス 持つ認証情報 持たない認証情報
guinness-backend PostgreSQL 認証情報、SQS キュー URL、Webhook エンドポイント(受信) DocumentDB アクセス権限
guinness-ai-v2 DocumentDB 接続文字列、S3 artifact 書き込み権限、import worker 用 OPENAI_API_KEY、Webhook URL(送信)。wf2des 用にはさらに: wf2design 専用 の secret store に置く サービスアカウント Figma PAT(プラットフォームの figma_token テーブルや ENCRYPTION_KEY は決して使わない)、wf2des generation + wf2des-events queue の consume 権限、AI 所有の EventBridge スケジュール、wf2des-api が発行するプラグイン session token PostgreSQL アクセス権限

V2 目標配線(genai-infrastructure)

genai-infrastructure/aws/envs/dev/guinness-backend を目標配線の参照構成とする。各環境は同じ logical resource と permission を公開する。

リソース Terraform logical name 要件
design-import queue + DLQ guinness_ai_v2_design_import_queue, guinness_ai_v2_design_import_dlq backend が design-import payload を送信する。Lambda event source mapping は ReportBatchItemFailures を使う
code-import queue + DLQ guinness_ai_v2_code_import_queue, guinness_ai_v2_code_import_dlq backend が code-import payload を送信する。Lambda event source mapping は ReportBatchItemFailures を使う
des2code queue + DLQ guinness_ai_v2_des2code_queue, guinness_ai_v2_des2code_dlq backend REST API と MCP v2 が des2code payload を送信する。Lambda event source mapping は ReportBatchItemFailures を使う
page-import queue + DLQ(計画中) guinness_ai_v2_page_import_queue, guinness_ai_v2_page_import_dlq backend が Page Import validation job を送信する。Lambda event source mapping は ReportBatchItemFailures を使う
code2wf queue + DLQ(計画中) guinness_ai_v2_code2wf_queue, guinness_ai_v2_code2wf_dlq backend が完了済み Page Import conversion job を送信する。Lambda event source mapping は ReportBatchItemFailures を使う
Page Import / Code2WF S3 prefix(計画中) 既存の guinness_backend_ai_v2 bucket tenant/project scoped prefix に immutable import/generation artifact を保存する
Page Import orphan-upload lifecycle(計画中) 既存 guinness_backend_ai_v2 bucketのlifecycle rule。Terraform labelはTBD 設定済みincomplete-upload window後に page_import_state=orphan tagのobjectだけをexpireする。row作成後に page_import_state=retained へretagしたobjectは対象外
backend AI bucket lifecycle guinness_backend_ai_v2_des2code_results des2code_result=true tag 付き object を retention window 後に expire する
wf2des generation queue + DLQ guinness_ai_v2_wf2des_generation_queue, guinness_ai_v2_wf2des_generation_dlq backend 所有。backend が parse / assemble payload を送信する。Lambda event source mapping は ReportBatchItemFailures を使う
wf2des-events queue + DLQ guinness_ai_v2_wf2des_events_queue, guinness_ai_v2_wf2des_events_dlq AI 所有 の intake queue(rule / asset / plugin event)。backend は SendMessage のみ を持つ。Lambda event source mapping は ReportBatchItemFailures を使う
wf2des component-resync schedule guinness_ai_v2_wf2des_component_sweep_schedule AI 所有 の EventBridge スケジュール。component_sweep の再同期 sweep を起動する。cron / rate はデプロイごと
backend AI bucket wf2des prefix + lifecycle guinness_backend_ai_v2_wf2des_results {org}/{proj}/wf2des/ 配下の result + manifest artifact。object は retention window 後に expire する
wf2des PostgreSQL table wf2des (backend RDS) backend 所有 の generation 実行行(status / phase / attempt + result refs + flag_count)。AI 側アクセスなし

Backend runtime 変数:

変数 使用元 要件
DATABASE_* / RDS Proxy variables backend app, MCP v2 user/backend state と MCP API-key auth は PostgreSQL のみ
SQS_DESIGN_IMPORT_QUEUE_URL, SQS_DESIGN_IMPORT_QUEUE_ARN backend design API design-import へ SendMessage
SQS_CODE_IMPORT_QUEUE_URL, SQS_CODE_IMPORT_QUEUE_ARN backend code API code-import へ SendMessage
SQS_DES2CODE_QUEUE_URL, SQS_DES2CODE_QUEUE_ARN backend Des2Code API, MCP v2 des2code へ SendMessage
SQS_PAGE_IMPORT_QUEUE_URL, SQS_PAGE_IMPORT_QUEUE_ARN backend Page Import API(計画中) page-import へ SendMessage
SQS_CODE2WF_QUEUE_URL, SQS_CODE2WF_QUEUE_ARN backend Code2WF API(計画中) code2wf へ SendMessage
SQS_WF2DES_GENERATION_QUEUE_URL, SQS_WF2DES_GENERATION_QUEUE_ARN backend wf2des API(create / confirm) backend 所有の wf2des generation queue(parse / assemble)へ SendMessage
SQS_WF2DES_EVENTS_QUEUE_URL, SQS_WF2DES_EVENTS_QUEUE_ARN backend wf2des rule / asset / frame-registration path AI 所有の wf2des-events intake queue へ SendMessage のみ(backend が AI 所有インフラに持つ唯一の送信権限)
WEBHOOK_API_KEY backend webhook X-API-Key で期待する shared service key(wf2des の generation ai-status flip でも使用)
AI_V2_INTERNAL_URL, AI_SERVICE_TOKEN MCP v2 or backend proxy guinness-ai-v2 design/code internal API を service-token で読む。wf2des-api read route(X-AI-Service-Token)もカバーする
CLOUDFRONT_SECRET_HEADER MCP v2 local 以外で X-MCP-Token と比較する secret value

AI worker runtime 変数:

変数 使用元 要件
DOCUMENTDB_CONNECTION_STRING, DOCUMENTDB_NAME all AI workers design / code 用 DocumentDB access。backend には渡さない
DESIGN_TABLE_NAME, CODE_TABLE_NAME import workers, des2code collection 名。target は design と code
WEBHOOK_BASE_URL, WEBHOOK_API_KEY all AI workers backend POST /v1/webhooks/ai-status に completion/failure を POST
RESULT_BUCKET, DES2CODE_RESULT_TTL_DAYS des2code timestamp 付き result/failed artifact。object に des2code_result=true を tag する
OPENAI_API_KEY, DESC_MODEL, EMBEDDING_MODEL, EMBEDDING_DIMENSIONS design-import, code-import import analysis と embedding generation
6 つの wf2des コレクションの各コレクション名(+ DOCUMENTDB_NAME=guinness_v2) wf2des env で上書き可能なコレクション名: wireframe, design_rule, design_component, project_figma_file, design_generation_result, design_resolution
wf2des generation queue + wf2des-events queue の URL / ARN wf2des worker が consume する event source mapping(backend 所有の generation + AI 所有の intake)
EventBridge スケジュール(component_sweep 再同期) wf2des worker を直接起動する AI 所有のスケジュール。cron / rate はデプロイごと
WEBHOOK_BASE_URL, WEBHOOK_API_KEY wf2des(generation のみ) 完了時に POST /v1/webhooks/ai-status へ POST(X-API-Key)
RESULT_BUCKET + {org}/{proj}/wf2des/ prefix wf2des クライアント向けの result + manifest artifact。内部の parse / spec / feedback artifact も同じ prefix 配下
Figma サービスアカウント PAT secret ARN wf2des(component_sweep + snapshot / memo fallback) wf2design 専用 の secret store。プラットフォームの figma_token テーブルや ENCRYPTION_KEY は決して使わない。デプロイごと
モデルティア(fast / strong / vision)+ PROMPT_VERSION wf2des ロール/意図のパース(fast)、アセンブリ選択(strong)、asset のビジョンラベリング。実行ごとに固定。具体的な id はデプロイごと
DEFAULT_ORGANIZATION_ID wf2des シングルテナントのデフォルト 1。全ドキュメントに organization_id を付与
S3_BUCKET_NAME + Page Import schema/size limit page-import(計画中) scoped capture artifact を読み、normalized artifact を書き込む
RESULT_BUCKET code2wf(計画中) 既存AI bucketへWF2Des-shaped result artifactを書き込む

IAM 境界:

プリンシパル 許可が必要 要求してはいけないもの
backend app 3 つの import/des2code v2 queue に加えて backend 所有の wf2des generation queue と(送信のみ)AI 所有の wf2des-events queue への sqs:SendMessage、必要な S3 asset read/write、PostgreSQL access DocumentDB access
MCP v2 MCP auth 用 PostgreSQL read/update、des2code への sqs:SendMessage、internal AI/backend HTTP access deployed environment の DocumentDB access
design-import/code-import Lambdas 各 SQS queue consume、S3 input asset read、DocumentDB write、backend webhook call PostgreSQL access
des2code Lambda des2code queue consume、DocumentDB design/code read、S3 artifact write/tag、backend webhook call PostgreSQL access
backend app(計画中の追加) page-import/code2wf queue への send と tenant/project scoped S3 prefix の read/write DocumentDB access
page-import Lambda(計画中) page-import queue consume、capture object read、normalized object write、backend webhook call PostgreSQL、DocumentDB、browser execution
code2wf Lambda(計画中) code2wf queue consume、完了済みPage Import object read、result object write、backend webhook call PostgreSQL、DocumentDB、OpenAI API、Figma PAT/write access
wf2des Lambda wf2des generation + wf2des-events queue consume、EventBridge invoke、6 つの DocumentDB コレクション read/write、S3 artifact + snapshot read/write、サービスアカウント PAT secret 経由の Figma REST、backend ai-status webhook call PostgreSQL access
wf2des-api (in internal-api) DocumentDB + S3 read/write、プラグイン session token の発行/検証、X-AI-Service-Token の受け入れ PostgreSQL access, SQS access

V1 → V2 ワーカー移行マッピング

V1 ワーカー V2 ワーカー 主な変更点
design design-import デュアル埋め込み(visual + semantic)、MySQL 非アクセス
legacy code import predecessor code-import legacy code data → code コレクション、デュアル埋め込み、CSS 対応
legacy Des2Code/code-generation predecessor des2code Des2Code worker。結果は S3 に書き込み、Webhook で通知し、backend PostgreSQL が latest result/artifact reference として永続化
wireframe (V1 継続) wireframe → design のパスは、新規の wf2des ワーカー(下記参照)が担う。V1 ワーカーの 1:1 移植ではない
(新規 — V1 の前身なし) wf2des 新しいダイレクトアセンブリエンジン。プロジェクトの design rule のもとで Figma ワイヤーフレームをネイティブな Figma デザインに変換する(4 つの実行系。埋め込み / リトリーバルなし)。backend が wf2des 行 + エンドポイントを所有し、Figma プラグインが wf2des-api(internal-api 内)経由で read/write する
(新規 — V1 の前身なし) page-import(計画中) 1 ページの repository capture と deterministic validation/normalization
(新規 — V1 の前身なし) code2wf(計画中) 完了済みPage ImportからWF2Des-shaped result artifactを作成し、Figma pluginがその既存 DesignSpecModel をmaterializeする

チーム担当領域

領域 担当 主要サービス
管理者側フロントエンド・バックエンド・インフラ 4D AdminFrontend, api-admin, RDS PostgreSQL
ユーザー側フロントエンド・バックエンド・インフラ 4D UserFrontend, api-user, RDS PostgreSQL, SQS, S3
AI 変換エンジン Plabs design-import, code-import, des2code, wf2des(+ その Figma プラグインと internal-api 内の wf2des-api), DocumentDB