Skip to content

Latest commit

 

History

History
322 lines (204 loc) · 32.5 KB

File metadata and controls

322 lines (204 loc) · 32.5 KB

プライバシーポリシー / Privacy Policy

対象 / Scope: Reftrix Preference Profiling, Part-Level Analysis & Section Visual Embedding 最終更新 / Last Updated: 2026-03-13 バージョン / Version: 1.2.0


1. プロファイリングの目的 / Purpose of Profiling

Reftrixは、デザイン検索結果をユーザーの嗜好に基づいてパーソナライズするためにプロファイリングを行います。具体的には、ユーザーのデザインに対するフィードバック(好み・不満・コメント)を蓄積し、嗜好プロファイルを構築します。このプロファイルは検索結果のリランキング(スコア調整)に使用され、ユーザーにとってより関連性の高いデザインパターンが上位に表示されるようになります。

Reftrix performs profiling to personalize design search results based on user preferences. Specifically, it accumulates user feedback on designs (likes, dislikes, comments) to build a preference profile. This profile is used for search result reranking (score adjustment), ensuring that design patterns more relevant to the user appear higher in results.

主な用途 / Primary Uses:

  • デザイン検索結果のリランキング(preference embeddingとsearch resultsのコサイン類似度に基づくスコア調整) / Search result reranking (score adjustment based on cosine similarity between preference embedding and search results)
  • ユーザーのデザイン嗜好の学習と検索体験の継続的な向上 / Learning user design preferences for continuous search experience improvement

プロファイリングの性質 / Nature of Profiling:

本プロファイリングは、検索結果の表示順序の調整のみを目的としています。法的効果やそれに類する重大な影響をデータ主体に対して生じさせるものではありません(GDPR Art. 22(1)の適用範囲外)。

This profiling is solely for adjusting the display order of search results. It does not produce legal effects or similarly significantly affect the data subject (outside the scope of GDPR Art. 22(1)).


2. 収集データ / Data Collected

対象テーブル / Tables

データ項目 / Data Item カラム / Column 説明 / Description
嗜好テキスト / Preference text preference_text Claudeエージェントがフィードバックから生成した嗜好サマリテキスト(10-1000文字) / Preference summary text generated by Claude agent from feedback (10-1000 chars)
嗜好ベクトル / Preference embedding preference_embedding preference_textから生成された768次元ベクトル(multilingual-e5-base) / 768-dimensional vector generated from preference_text (multilingual-e5-base)
個別フィードバック / Individual feedback preference_signals 個別フィードバック記録: signal_type (hearing_positive/hearing_negative/hearing_neutral), signal_weight, target_type, target_id, feedback_text / Individual feedback records
フィードバック回数 / Interaction count interaction_count 累積フィードバック回数 / Cumulative feedback count
タイムスタンプ / Timestamps created_at, updated_at プロファイル作成日時・最終更新日時 / Profile creation and last update timestamps

データの性質 / Nature of Data

  • アーキテクチャ / Architecture: ローカルファースト・シングルユーザー構成(データはユーザーのローカルPostgreSQLに保存) / Local-first, single-user architecture (data stored in user's local PostgreSQL)
  • データ主体 / Data Subjects: Reftrix MCPツールを使用する個人ユーザー / Individual users of the Reftrix MCP tool
  • データカテゴリ / Data Category: デザイン嗜好に関する個人データ(デザインの好み・フィードバックテキスト) / Personal data related to design preferences (design likes/dislikes, feedback text)

3. データ処理の法的根拠 / Legal Basis for Processing

GDPR Art. 6(1) — 処理の適法性 / Lawfulness of Processing

法的根拠 / Legal Basis 条項 / Article 適用 / Application
同意 / Consent Art. 6(1)(a) ユーザーが preference.hear MCPツールを明示的に使用することでフィードバックを提供。自発的な操作に基づく。 / User explicitly provides feedback by using the preference.hear MCP tool. Based on voluntary action.
正当な利益 / Legitimate interest Art. 6(1)(f) ユーザーが自発的にツールを使用し、検索結果のパーソナライズを求めた場合。 / When the user voluntarily uses the tool and seeks personalized search results.

GDPR Art. 22 — 自動化された個人の意思決定 / Automated Individual Decision-Making

Reftrixのプロファイリングは、検索結果のスコア調整(リランキング)に限定されており、以下の理由からArt. 22(1)の制限の対象外です:

Reftrix's profiling is limited to search result score adjustment (reranking) and is outside the restrictions of Art. 22(1) for the following reasons:

  • 法的効果なし / No legal effects: 検索結果の表示順序変更は、データ主体に対する法的効果や契約上の影響を生じさせない / Changes to search result display order do not produce legal effects or contractual impacts on the data subject
  • 重大な影響なし / No similarly significant effects: デザインパターンの表示順序は、データ主体の権利・自由・利益に対して重大な影響を及ぼさない / Design pattern display order does not significantly affect the data subject's rights, freedoms, or interests
  • ユーザーコントロール / User control: ユーザーはいつでもプロファイルをリセットまたは完全削除可能 / Users can reset or completely delete their profile at any time

透明性 / Transparency

  • GDPR Art. 13/14: 新規プロファイル作成時に profiling_notice をレスポンスに含めて通知(セクション7参照) / Notification via profiling_notice in response when creating a new profile (see Section 7)
  • GDPR Art. 12: 本ドキュメントおよび DATA_RETENTION.md により、処理に関する情報を明確かつ平易な言語で提供 / This document and DATA_RETENTION.md provide clear and plain language information about processing

4. 保持期間 / Retention Period

方針 / Policy

嗜好プロファイルデータは、ユーザーが明示的に削除するまで保持されます。自動的な期限切れや定期削除はありません。

Preference profile data is retained until the user explicitly deletes it. There is no automatic expiration or scheduled deletion.

根拠 / Rationale

  • GDPR Art. 5(1)(e) — 保存制限の原則: Reftrixはローカルファースト・シングルユーザーのMCPツールです。データはユーザーのローカル環境に保存され、ユーザーが継続的にツールを使用する間、検索品質の向上に寄与します。ユーザーが能動的に使用し続ける限り、パーソナライズ目的での保持は適切です。 / Storage limitation principle: Reftrix is a local-first, single-user MCP tool. Data is stored in the user's local environment and contributes to search quality while the user continues using the tool. Retention for personalization is appropriate while the user actively uses the tool.

削除方法 / Deletion Methods

方法 / Method MCPツール / MCP Tool 動作 / Behavior
ソフトリセット / Soft reset preference.reset(profile_id, confirm: true) preference_text, preference_embedding をクリア。interaction_count を 0 にリセット。preference_signals はCASCADE削除。プロファイルレコード自体は残存。 / Clears preference_text, preference_embedding. Resets interaction_count to 0. preference_signals CASCADE deleted. Profile record remains.
完全削除 / Hard delete preference.reset(profile_id, confirm: true, hard_delete: true) プロファイルレコードおよび全関連シグナルを完全に物理削除。完全に不可逆。 / Permanently deletes profile record and all associated signals. Completely irreversible.

詳細は DATA_RETENTION.md を参照してください。 / See DATA_RETENTION.md for details.


5. ユーザーの権利 / User Rights

GDPRに基づき、データ主体は以下の権利を行使できます。ReftrixではすべてMCPツールを通じて直接行使可能です。

Under the GDPR, data subjects can exercise the following rights. In Reftrix, all rights can be exercised directly via MCP tools.

アクセス権 / Right of Access (Art. 15)

preference.get MCPツールにより、プロファイルに保存されている全データ(嗜好テキスト、フィードバック回数、作成日時、更新日時)を閲覧できます。

The preference.get MCP tool allows viewing all data stored in the profile (preference text, interaction count, creation date, update date).

データポータビリティ権 / Right to Data Portability (Art. 20)

preference.get({ include_signals: true }) により、全シグナルデータを含む構造化JSON形式でプロファイルデータをエクスポートできます。この形式は機械可読であり、別のシステムへのデータ移行にも使用可能です。

preference.get({ include_signals: true }) exports profile data in structured JSON format including all signal data. This format is machine-readable and can be used for data migration to another system.

訂正権 / Right to Rectification (Art. 16)

プロファイルをリセット(preference.reset)した後、新規フィードバックをpreference.hearで提供することにより、プロファイルを再構築できます。

After resetting the profile (preference.reset), the profile can be rebuilt by providing new feedback via preference.hear.

削除権 / 忘れられる権利 / Right to Erasure / Right to be Forgotten (Art. 17)

preference.reset({ hard_delete: true }) により、プロファイルレコードおよび全関連シグナルを完全に物理削除できます。この操作は不可逆であり、監査証跡として全環境でlogger.warnが出力されます(PII truncate済み)。

preference.reset({ hard_delete: true }) permanently deletes the profile record and all associated signals. This operation is irreversible, and an audit trail is output via logger.warn in all environments (PII truncated).

処理の制限権 / Right to Restriction of Processing (Art. 18)

preference.reset() (ソフトリセット)により、嗜好データをクリアしつつプロファイル枠を維持できます。リセット後は、嗜好に基づくリランキングが適用されなくなります。

preference.reset() (soft reset) clears preference data while maintaining the profile shell. After reset, preference-based reranking is no longer applied.


6. MCPツールによる権利行使方法 / Exercising Rights via MCP Tools

権利 / Right GDPR条項 / GDPR Article MCPツール / MCP Tool パラメータ / Parameters
データアクセス / Data access Art. 15 preference.get profile_id
データエクスポート / Data export Art. 20 preference.get profile_id, include_signals: true
プロファイルリセット / Profile reset Art. 18 preference.reset profile_id, confirm: true
完全削除 / Full deletion Art. 17 preference.reset profile_id, confirm: true, hard_delete: true

使用例 / Usage Examples

# データアクセス(プロファイル閲覧) / Data access (view profile)
preference.get(profile_id: "<uuid>")

# データエクスポート(シグナル含む) / Data export (including signals)
preference.get(profile_id: "<uuid>", include_signals: true)

# プロファイルリセット(ソフト) / Profile reset (soft)
preference.reset(profile_id: "<uuid>", confirm: true)

# 完全削除(GDPR忘れられる権利) / Full deletion (GDPR Right to Erasure)
preference.reset(profile_id: "<uuid>", confirm: true, hard_delete: true)

7. Profiling Notice(GDPR Art. 13/14)

通知タイミング / Notification Timing

新規プロファイルが作成された際(初回の preference.hear 呼び出し時)、レスポンスに profiling_notice フィールドが含まれます。これはGDPR Art. 13(データ主体から直接収集する場合の情報提供義務)およびArt. 14に基づく透明性要件を満たすものです。

When a new profile is created (on the first preference.hear call), the response includes a profiling_notice field. This fulfills the transparency requirements under GDPR Art. 13 (information obligations when collecting data directly from the data subject) and Art. 14.

通知内容 / Notice Content

profiling_notice には以下の情報が含まれます:

The profiling_notice includes the following information:

項目 / Item 内容 / Content
メッセージ / Message プロファイリングの開始を通知するメッセージ / Message notifying the start of profiling
目的 / Purpose デザイン検索結果のパーソナライズ / Personalization of design search results
削除方法 / Deletion method preference.reset ツールによる削除手順 / Deletion procedure via preference.reset tool
保持ポリシー / Retention policy 明示的削除まで保持(自動消去なし) / Retained until explicit deletion (no auto-purge)

レスポンス例 / Response Example

{
  "success": true,
  "data": {
    "profile_id": "01926a3b-...",
    "samples": [...],
    "profiling_notice": {
      "message": "A new preference profile has been created. Your design feedback will be used to personalize search results.",
      "purpose": "Search result personalization via preference-based reranking",
      "deletion_method": "Use preference.reset with hard_delete: true to permanently delete all profile data",
      "retention_policy": "Data is retained until you explicitly delete it. No automatic expiration."
    }
  }
}

2回目以降の呼び出し / Subsequent Calls

2回目以降の preference.hear 呼び出しでは、profiling_notice は含まれません。プロファイリングに関する情報は、本ドキュメントおよび DATA_RETENTION.md からいつでも参照可能です。

On subsequent preference.hear calls, profiling_notice is not included. Information about profiling is available at any time from this document and DATA_RETENTION.md.


8. Part-Level Analysis

対象 / Scope

Part-Level Analysis は、Webページ内のUIパーツ(ボタン、フォーム、ナビゲーション等)を個別に抽出・分析し、component_parts / component_part_embeddings テーブルに保存する機能です。

Part-Level Analysis extracts and analyzes individual UI parts (buttons, forms, navigation, etc.) within web pages and stores them in the component_parts / component_part_embeddings table.

収集データ / Data Collected

データ項目 / Data Item カラム / Column 説明 / Description
パーツ種別 / Part type partType 16種類(button, link, image, video, form, input, heading, card, navigation, footer, cta, hero_image, icon, badge, tag, avatar) / 16 types
テキストベクトル / Text embedding text_embedding パーツのテキスト内容から生成された768次元ベクトル(multilingual-e5-base) / 768-dimensional vector generated from part text content (multilingual-e5-base)
視覚ベクトル / Visual embedding visual_embedding パーツのスクリーンショットから生成された768次元ベクトル(DINOv2 ViT-B/14)。piiRiskLevel='high' の場合はスキップ(null) / 768-dimensional vector generated from part screenshot (DINOv2 ViT-B/14). Skipped (null) when piiRiskLevel='high'
バウンディングボックス / Bounding box boundingBox ページ上のパーツ位置とサイズ(x, y, width, height) / Part position and size on page (x, y, width, height)
計算済みスタイル / Computed styles computedStyles CSSプロパティのJSON(色、フォント、余白等) / JSON of CSS properties (color, font, margin, etc.)
テキスト内容 / Text content textContent パーツ内のテキスト(part.inspect でopt-in取得) / Text within the part (opt-in retrieval via part.inspect)
HTML内容 / HTML content innerHTML パーツのHTML構造(part.inspect でopt-in取得) / HTML structure of the part (opt-in retrieval via part.inspect)
PII リスクレベル / PII risk level piiRiskLevel none, low, medium, high の4段階 / 4 levels: none, low, medium, high
CSSクラス / CSS classes cssClasses パーツに適用されているCSSクラス名 / CSS class names applied to the part
属性 / Attributes attributes パーツのHTML属性(JSON) / HTML attributes of the part (JSON)

データの性質 / Nature of Data

  • アーキテクチャ / Architecture: ローカルファースト・シングルユーザー構成(Preference Profilingと同一) / Local-first, single-user architecture (same as Preference Profiling)
  • データ主体 / Data Subjects: 分析対象Webページのコンテンツ所有者。ユーザー自身の個人データではなく、クロール対象サイトのUIコンポーネントに関するデータ / Content owners of analyzed web pages. Not the user's own personal data, but data about UI components of crawled sites
  • データカテゴリ / Data Category: UIデザインパターンデータ。ただし、フォーム入力フィールドやパスワードフィールド等のパーツには間接的にPIIが含まれる可能性がある / UI design pattern data. However, parts such as form input fields and password fields may indirectly contain PII

PII保護措置 / PII Protection Measures

Part-Level Analysisでは、パーツの種類と属性に基づいてPIIリスクレベルを自動判定し、リスクレベルに応じた保護措置を適用します。

In Part-Level Analysis, PII risk levels are automatically determined based on part type and attributes, and protective measures are applied according to the risk level.

piiRiskLevel 判定基準 / Criteria 保護措置 / Protection
high フォーム入力(パスワード、メールアドレス等)、個人情報を含むと推定されるコンポーネント / Form inputs (password, email, etc.), components estimated to contain personal data visual embedding 生成をスキップ(visual_embedding = null) / Visual embedding generation skipped (visual_embedding = null)
medium 一般的なフォームフィールド、ユーザー入力エリア / General form fields, user input areas 通常処理(visual embedding 生成あり) / Normal processing (visual embedding generated)
low テキストブロック、メディア要素 / Text blocks, media elements 通常処理 / Normal processing
none ボタン、アイコン、ナビゲーション等の静的UIパーツ / Static UI parts such as buttons, icons, navigation 通常処理 / Normal processing

データ処理の法的根拠 / Legal Basis for Processing

Part-Level Analysisは、ユーザーが page.analyze MCPツールを明示的に実行することでデータ収集が開始されます。ユーザーの自発的な操作に基づく処理です。

Part-Level Analysis data collection begins when the user explicitly executes the page.analyze MCP tool. Processing is based on the user's voluntary action.

  • GDPR Art. 6(1)(f) — 正当な利益: ユーザーが自発的にツールを使用し、UIデザインパターンの分析・検索を求めた場合。 / Legitimate interest: When the user voluntarily uses the tool and seeks UI design pattern analysis and search.

削除方法 / Deletion Methods

component_parts / component_part_embeddingsweb_pages テーブルに CASCADE 外部キーで紐づいています。WebPageレコードを削除すると、関連するすべての component_parts / component_part_embeddings が自動的に削除されます。

component_parts / component_part_embeddings is linked to the web_pages table via CASCADE foreign key. Deleting a WebPage record automatically deletes all associated component_parts / component_part_embeddings.

  • GDPR Art. 17(忘れられる権利) / Right to Erasure: WebPageの削除により、全関連 component_parts / component_part_embeddings(テキスト内容、ベクトル、バウンディングボックス、スタイル情報を含む)が完全に物理削除されます。 / Deleting a WebPage permanently removes all associated component_parts / component_part_embeddings (including text content, vectors, bounding boxes, and style information).

詳細は DATA_RETENTION.md を参照してください。 / See DATA_RETENTION.md for details.

Section Visual Embedding

Part-Level Analysisに加え、セクション単位でもDINOv2 ViT-B/14によるvisual embeddingを生成します。セクションのスクリーンショット領域(startY/height)をcropし、768次元のL2正規化ベクトルをsection_embeddings.vision_embeddingに保存します。

In addition to Part-Level Analysis, visual embeddings are also generated at the section level using DINOv2 ViT-B/14. The section screenshot area (startY/height) is cropped and a 768-dimensional L2-normalized vector is stored in section_embeddings.vision_embedding.

条件 / Condition 動作 / Behavior
セクション高さ < 10px / Section height < 10px visual embedding スキップ(null) / Visual embedding skipped (null)
piiRiskLevel='high' パーツを含むセクション / Section containing piiRiskLevel='high' parts visual embedding スキップ(null)— GDPR Art. 5(1)(c) データ最小化 / Visual embedding skipped (null) — GDPR Art. 5(1)(c) data minimisation
スクリーンショット未取得 / Screenshot unavailable text embedding のみ保持 / Only text embedding retained

削除方法はPart-Level Analysisと同様、WebPageレコードのCASCADE削除で自動実行されます。

Deletion follows the same CASCADE pattern as Part-Level Analysis — automatically executed when a WebPage record is deleted.


9. 関連ドキュメント / Related Documents

ドキュメント / Document 内容 / Description
DATA_RETENTION.md(同ディレクトリ) / (same directory) データ保持ポリシー、削除方法の詳細、セキュリティ措置 / Data retention policy, deletion method details, security measures
` 嗜好プロファイリング監査是正ガイド(SEC/TDA/LCC 18項目のトリアージ結果) / Preference profiling audit remediation guide (SEC/TDA/LCC 18-item triage results)

免責事項 / Disclaimer

本ドキュメントは一般的な法的情報の提供を目的としており、特定の事案に対する法的助言を構成するものではありません。 具体的な法的判断が必要な場合は、資格を有する弁護士にご相談ください。

This document is intended to provide general legal information and does not constitute legal advice for any specific case. If specific legal judgment is needed, please consult a qualified attorney.

法的調査日 / Legal Research Date: 2026-03-13

法的リサーチソース / Legal Research Sources


変更履歴 / Changelog

日付 / Date バージョン / Version 内容 / Description
2026-03-13 1.2.0 Section Visual Embedding プライバシー情報追加(PII保護、高さ制限、CASCADE削除) / Added Section Visual Embedding privacy information (PII protection, height limit, CASCADE deletion)
2026-03-13 1.1.0 Part-Level Analysis プライバシーセクション追加(PII保護措置、CASCADE削除) / Added Part-Level Analysis privacy section (PII protection measures, CASCADE deletion)
2026-03-08 1.0.0 初版作成(LCC-5: プロファイリングセクション) / Initial version (LCC-5: Profiling section)