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

March 22, 2026 · View on GitHub

対象 / 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 textpreference_textClaudeエージェントがフィードバックから生成した嗜好サマリテキスト(10-1000文字) / Preference summary text generated by Claude agent from feedback (10-1000 chars)
嗜好ベクトル / Preference embeddingpreference_embeddingpreference_textから生成された768次元ベクトル(multilingual-e5-base) / 768-dimensional vector generated from preference_text (multilingual-e5-base)
個別フィードバック / Individual feedbackpreference_signals個別フィードバック記録: signal_type (hearing_positive/hearing_negative/hearing_neutral), signal_weight, target_type, target_id, feedback_text / Individual feedback records
フィードバック回数 / Interaction countinteraction_count累積フィードバック回数 / Cumulative feedback count
タイムスタンプ / Timestampscreated_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)

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

法的根拠 / Legal Basis条項 / Article適用 / Application
同意 / ConsentArt. 6(1)(a)ユーザーが preference.hear MCPツールを明示的に使用することでフィードバックを提供。自発的な操作に基づく。 / User explicitly provides feedback by using the preference.hear MCP tool. Based on voluntary action.
正当な利益 / Legitimate interestArt. 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

方法 / MethodMCPツール / MCP Tool動作 / Behavior
ソフトリセット / Soft resetpreference.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 deletepreference.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

権利 / RightGDPR条項 / GDPR ArticleMCPツール / MCP Toolパラメータ / Parameters
データアクセス / Data accessArt. 15preference.getprofile_id
データエクスポート / Data exportArt. 20preference.getprofile_id, include_signals: true
プロファイルリセット / Profile resetArt. 18preference.resetprofile_id, confirm: true
完全削除 / Full deletionArt. 17preference.resetprofile_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 methodpreference.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 typepartType16種類(button, link, image, video, form, input, heading, card, navigation, footer, cta, hero_image, icon, badge, tag, avatar) / 16 types
テキストベクトル / Text embeddingtext_embeddingパーツのテキスト内容から生成された768次元ベクトル(multilingual-e5-base) / 768-dimensional vector generated from part text content (multilingual-e5-base)
視覚ベクトル / Visual embeddingvisual_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 boxboundingBoxページ上のパーツ位置とサイズ(x, y, width, height) / Part position and size on page (x, y, width, height)
計算済みスタイル / Computed stylescomputedStylesCSSプロパティのJSON(色、フォント、余白等) / JSON of CSS properties (color, font, margin, etc.)
テキスト内容 / Text contenttextContentパーツ内のテキスト(part.inspect でopt-in取得) / Text within the part (opt-in retrieval via part.inspect)
HTML内容 / HTML contentinnerHTMLパーツのHTML構造(part.inspect でopt-in取得) / HTML structure of the part (opt-in retrieval via part.inspect)
PII リスクレベル / PII risk levelpiiRiskLevelnone, low, medium, high の4段階 / 4 levels: none, low, medium, high
CSSクラス / CSS classescssClassesパーツに適用されているCSSクラス名 / CSS class names applied to the part
属性 / Attributesattributesパーツの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 datavisual 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

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 < 10pxvisual embedding スキップ(null) / Visual embedding skipped (null)
piiRiskLevel='high' パーツを含むセクション / Section containing piiRiskLevel='high' partsvisual embedding スキップ(null)— GDPR Art. 5(1)(c) データ最小化 / Visual embedding skipped (null) — GDPR Art. 5(1)(c) data minimisation
スクリーンショット未取得 / Screenshot unavailabletext 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.


ドキュメント / 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


変更履歴 / Changelog

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