コンテンツにスキップ

Design Resolution コレクション

概要

wf2des の tenant-scoped な意思決定台帳(decision ledger) — コンポーネント選択のための自律的な品質ラチェット。人手による修正ループは存在しないため、品質はマシン側で収束させる必要がある。台帳は決定論的でバージョン付きの構造的セクションシグネチャを、セクションの構造的な KIND ごとに受理された最良のコンポーネント解決結果へ対応付ける。generation-assemble がこのコレクションを所有する — モデル選択の前に台帳を CONSULT(参照)し、決定論的ガードの後に score ratchet 経由で WRITE BACK(書き戻し)する。他のどの実行もこれに触れない。解決済みセクションの KIND ごとに 1 ドキュメント。構造的で LLM を用いない section_signature をキーとするため、同じセクション KIND はどの画面でもどの再実行でも同じエントリにヒットする。vector index や learning corpus ではない。

テーブル定義

論理名 物理名 カラム名 データ型 主キー リレーション ユニーク NULL許可 デフォルト値 備考
Design Resolution design_resolution _id string ◯ {organization_id}_{project_id}_{section_signature} — これそのものが同一性であり、別の代理キーはない
organization_id number テナント所有者。全 read/write の mandatory tenancy scope
project_id number project:id プロジェクトスコープ。全 read/write の mandatory tenancy scope
section_signature string 構造的なセクション同一性、バージョン付き(sig@1:…) — セクションの kit コンポーネント名・正規化名・子タイプ形状・テキスト数に対する sha256。決定論的で LLM を用いない(LLM が割り当てたロールは決して使わない)ため、同じセクション KIND はどの画面でもどの再実行でも同じエントリにヒットする
case string instance | compose
platform_design_id string design:id ◯ 解決されたコンポーネント(= design_component._id)。compose 解決では null
component_name string display/debug 用の便宜値
variant_policy object axis → value。書き込み前にレジストリの軸へ CLAMP される
provenance string mined | voted(Type Codes 参照)。mined evidence は vote より強い
score float 決定論的な意思決定品質(base + modeled + variant-completeness + scope-fit。mined = 1.0) — ラチェットの通貨
prompt_version string voted decision の出所
updated_at string 最後に ratchet が受理した書き込み(ISO-8601 UTC タイムスタンプ)

リレーション

  • _id = {organization_id}_{project_id}_{section_signature}、値による — 唯一の同一性であり代理キーはない。
  • project_id → project.id
  • platform_design_id → プラットフォームの design 行 id(type=component)= design_component._id、値による。
  • DocumentDB 内ではリレーションは強制されない。論理リレーションであり、アプリケーションコードで検証する。

インデックス

  • PRIMARY KEY (_id)
  • _id への SCORE-RATCHET upsert: voted の書き込みは、保持中のエントリが mined でなく、かつスコアが厳密に低い場合にのみ着地する(サーバサイドフィルタ。フェンス付き upsert での DuplicateKeyError は KEPT を意味し、そのように返される — エラーではない)。mined の書き込みはフェンスなし。同一の根拠は同一にスコアリングされる → 再実行で churn しない。より良い意思決定が勝つ → 単調改善。
  • すべての読み書きは organization_id + project_id(テナントスコープ)でフィルタする。

Type Codes

provenance:

  • mined: ファイル内の既存のデザイナー作成デザインから読み取られたもの — 投票を上回る唯一の権威(score = 1.0)。
  • voted: K-sample の自己整合性(self-consistency)選択投票。

case:

  • instance: 単一の登録済みコンポーネントがセクションを解決する。
  • compose: セクションが複数のユニットから合成される(各ユニットが再選択される)。

注記

  • generation-assemble が書き込みを所有する — assemble 専用。他のどの実行もこのコレクションに触れない。解決済みセクションの KIND ごとに 1 ドキュメント(画面ごとではない)。
  • CONSULT(assemble、選択の前): mined のエントリはそのセクションを LOCK し、selection call を skip する(LLM なし)。voted のエントリは診断用に保持され、現在の画面の選択を決して上書きしない。instance エントリは consult 時に再検証される: コンポーネントがセクションの候補に含まれない stale なエントリは投票へフォールスルーし、デフォルトバリアントのエントリはスコープ再検証される(default_size はデフォルトバリアントについてのみ語る)。
  • WRITE-BACK(assemble、ガードの後): unmatched でないすべてのセクション(および compose の子)の意思決定が、決定論的スコアとともに upsert される。ラチェットでフェンスされる。
  • evaluation では ledger read/write を無効化できるが、production default は両方 enabled である。
  • section_signature が要: 構造的で LLM を用いないため、画面や再実行をまたいで安定する — 台帳はインスタンスごとではなくセクション KIND ごとに蓄積される。
  • lineage ブロックはない — 台帳は構造的同一性をキーとする実行中の意思決定キャッシュであり、lineage 追跡されるアーティファクトではない。updated_at が最後に受理された書き込みを記録する。
  • assemble の consult/write-back ステップと score-ratchet フェンスについては wf2des I/O 定義 を参照。