refund-decide について
refund-decideは、確認済みのポリシー情報に基づいて米国のサブスクリプションの返金可否を判定するリモートMCPサーバーです。結果はALLOWED、DENIED、UNKNOWNで、対象範囲外や証拠不足の場合はUNKNOWNを返します。
主な機能
- 01米国のサブスクリプション返金判定
- 02ALLOWED、DENIED、UNKNOWNの結果
- 03証拠不足時はUNKNOWNを返す処理
- 04認証不要のステートレスな利用
活用シーン
- 01返金依頼への回答前に資格を確認
- 02ポリシー情報が不足する案件を審査へ回す
MCP 対応
安定したリモートMCPエンドポイント `https://refund.decide.fyi/api/mcp` で `refund_eligibility` ツールを提供します。返金資格を確認するRESTエンドポイントもあります。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://refund.decide.fyi/api/mcpclaude mcp add --transport http ndkasndakn-refund-decide https://refund.decide.fyi/api/mcp{"mcpServers":{"ndkasndakn-refund-decide":{"type":"http","url":"https://refund.decide.fyi/api/mcp"}}}Cursor で開く{"servers":{"ndkasndakn-refund-decide":{"type":"http","url":"https://refund.decide.fyi/api/mcp"}}}VS Code で開く{"mcpServers":{"ndkasndakn-refund-decide":{"type":"http","url":"https://refund.decide.fyi/api/mcp"}}}{"mcpServers":{"ndkasndakn-refund-decide":{"serverUrl":"https://refund.decide.fyi/api/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
1| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| plan | enum | はい | プランの種類。現在は 'individual' プランのみサポートされています。individual |
| region | enum | はい | 地域コード。現在は 'US' のみサポートされています。US |
| vendor | enum | はい | ベンダー識別子(小文字で、単語はアンダースコアで区切ります)。1password | adobe | amazon_music_unlimited | amazon_prime | amc_plus | apple_app_store | apple_arcade | apple_music | apple_tv_plus | audible | bitwarden | britbox | bumble | calm | canva | chatgpt_plus | claude_pro | coursera_plus | crunchyroll | dashlane | deezer | discord_nitro | discovery_plus | disney_plus | doordash_dashpass | dropbox_us | duolingo | ea_play | espn_plus | evernote | expressvpn | figma | fitbit_premium | fubo_tv | github_pro | google_one | google_play | grammarly | headspace | hellofresh | hinge | hulu | icloud_plus | instacart_plus | keeper | kindle_unlimited | lastpass | linkedin_premium | masterclass | max | microsoft_365 | midjourney | mlb_tv | myfitnesspal_premium | netflix | new_york_times | nfl_plus | nintendo_switch_online | noom | nordvpn | notion | paramount_plus | patreon | peacock | peloton | playstation_plus | proton | reddit_premium | ring_protect | roblox_premium | scribd | shutterstock | siriusxm | slack | sling_tv | snapchat_plus | soundcloud_go | spotify | squarespace | starz | strava | substack | surfshark | telegram_premium | tidal | tinder | todoist | twitch | uber_one | ubisoft_plus | wall_street_journal | walmart_plus | washington_post | weightwatchers | wix | x_premium | xbox_game_pass | youtube_premium | youtube_tv | zoom |
| days_since_purchase | number | はい | サブスクリプションの購入から経過した日数。 |
| qualifying_conditions_met | boolean | いいえ | ベンダーポリシーに、初回購入、未使用の特典、対象となる年間プランなど、出典固有の条件がある場合に必須です。 |
詳細
decide.fyi Decision API
ワークフローアプリケーション、安定した MCP notary リモート、意思決定メモパケット、実行ゲートを支える決定論的な Decision API エンジン
位置付け: Decide Runtime は汎用の決定論的な意思決定エンジンです。Decide Services は、その上に構築されたスタンドアロンの専門的なチェック機能です。Policy Notaries は既存のファミリーです。Krafthaus は、インテイク、レビュー、実行への引き継ぎを含め、Decide 上に構築されたワークフローアプリケーションを所有します。MCP、REST、SDK のインターフェースは、それらが公開するプロダクトに属し、自動的に Krafthaus に属するわけではありません。
エコシステムの所有権に関する契約をご覧ください。サービスやランタイムとの直接統合に Krafthaus アプリは必要ありません。ポリシーチェックはサービスファミリーの一つであり、汎用 Decision API の定義ではありません。
実行前にエージェントのツール呼び出しをゲートする
Decide を使用して、ツールに状態を変更する権限を与える前に、エージェントが提案したアクションを決定論的なルールブックに照らして評価します。呼び出し元は、認証情報と実行の制御権を保持したまま、再現可能な Decision Record を受け取り、yes、no、review に振り分けます。
本番環境における決定性の境界
本番環境で確定的な判定を行う場合は、バージョン管理された宣言型ルールブックを使用してください。
ランタイムアーキテクチャ: docs/RULEBOOK_RUNTIME_ARCHITECTURE.md。
機械可読スキーマ:https://api.decide.fyi/schemas/rulebook-v1.schema.json。
アクティブなランタイムマニフェスト:https://api.decide.fyi/manifests/rulebook-runtime-v1.json。
下流アプリケーションのバインディング:decide_application_binding_v1。
本番環境のコアは hybrid_declarative_rulebook_with_trusted_adapters です。宣言型ルールブックを直接使用でき、登録済みのファーストパーティ信頼済みアダプターは制限されたファクトを提供できますが、顧客が実行可能なルールブックは拒否されます。サポートされるどちらのバインディングモードでも、判定を選択するバインディングとして使用されるのは Rulebook v1 のみです。
{
"mode": "rulebook",
"rulebook": {
"schema_version": "rulebook_v1",
"rulebook_id": "pricing_exception",
"version": "2026-06-11",
"input_schema": {
"required": ["discount_percent"],
"properties": {
"discount_percent": { "type": "number" }
}
},
"rules": [
{
"rule_id": "approve_standard_discount",
"priority": 50,
"condition": {
"field": "discount_percent",
"operator": "lte",
"value": 15
},
"outcome": {
"decision": "yes",
"verdict": "APPROVE",
"action": "approve_discount",
"reason_code": "WITHIN_STANDARD_LIMIT"
}
}
],
"default_outcome": {
"decision": "review",
"verdict": "REVIEW",
"action": "route_to_owner",
"reason_code": "NO_RULE_MATCHED"
}
},
"context": {
"inputs": {
"discount_percent": 10
}
}
}
mode: "rulebook" は LLM を呼び出しません。リクエストのルールブックを公開済みの JSON Schema に照らして検証し、ルールブックのハッシュを計算し、範囲が制限された条件を評価して、アプリケーション判定、アクション、理由コード、一致したルール、evaluator_version とともに yes、no、review を返します。レスポンスには、適用されるスキーマの URL とハッシュを含む rulebook_contract、直接または信頼済みアダプターのバインディングモードを示す runtime_binding、宣言型エバリュエーターが使用した正規化済み入力またはアダプターファクトの SHA-256 ハッシュである input_hash、さらに決定論的な実行タプルを対象にしたバンドルハッシュを含む rulebook_attestation_v1 バンドルも含まれます。
本番環境のデプロイでは、このバンドルハッシュに rulebook_attestation_signature_v1 Ed25519 エンベロープで署名できます。検証キーは /.well-known/rulebook-attestation-keys.json で公開されます。
署名のない Rulebook 判定を返さずにフェイルクローズするには、本番環境で DECIDE_RULEBOOK_ATTESTATION_SIGNATURE_REQUIRED=true を設定してください。ローテーション後も古い Decision Record を検証できるようにするには、廃止した公開検証キーを DECIDE_RULEBOOK_ATTESTATION_KEY_HISTORY_JSON で公開してください。
ルールブックのリクエストに、Decide が生成した Decision Record の情報を事前に含めることはできません。runtime_binding、trusted_adapter、adapter_facts、rulebook_attestation、application_verdict、action などのフィールドは、リクエスト本文、context.inputs、アダプターファクトの各境界ではレスポンス専用です。これらをリクエストに含めようとすると RULEBOOK_OUTPUT_MATERIAL_FORBIDDEN が返されます。
従来の single、multi、runtime リクエストは、AI 支援による探索には引き続き利用できますが、本番環境における拘束力のある判定ではありません。これらのレスポンスには、authority: "advisory_only" と production_verdict: false を含む decision_contract に加え、production_binding_required: true とサポートされている本番バインディングモードが含まれます。決定論的な実行が必要な呼び出し元は、mode: "rulebook" を使用し、rulebook_contract、runtime_binding、および Rulebook の証明資料を取得する必要があります。
公開 Decision Record 境界では、評価が成功すると、テナント単位の不変スナップショットとして登録されます。過去の再生では、呼び出し元による上書きや現在のアプリケーションのデプロイを信頼せず、元の正規入力と保存されたルールブックのスナップショットが復元されます。
Rulebook v1 は、制約された事実の正規化を行う、登録済みのファーストパーティの信頼済みアダプターにも対応しています。アダプターリクエストでは、厳密なセマンティックバージョンとマニフェストハッシュを固定します。レスポンスでは、同梱された実装のソースハッシュに加え、正規入力・出力ハッシュと適用された実行契約を証明します。各呼び出しは、空の環境を使用するワーカー内で一度だけ実行され、厳格な時間・リソース制限が設けられ、一般的な周辺機能は拒否されます。宣言型ルールブックのみが、拘束力のある判定を選択します。docs/TRUSTED_ADAPTERS_V1.md を参照してください。
現在のリファレンスアプリケーションでは、本番環境における両方のパターンを実証しています。Solana Execution Gate、Decision Memo Readiness Gate、Krafthaus Workflow Readiness Binding は、Rulebook v1 の前に信頼済みアダプターを使用します。一方、Refund、Trial、Cancel、Return Policy MCP notary は、正規化された事実を Rulebook v1 に直接渡し、安定した REST および MCP インターフェースを通じて署名済みのルールブック結果を公開します。
評価器、アダプター、またはルールブックの変更をリリースする前に、ローカルの過去再生ゲートを実行してください。
npm run rulebook:migration-dry-run -- --json
--candidate-rulebook、--candidate-adapter、--candidate-evaluator-version を使用して、本番ルーティングを変更する前に、提案された移行をゴールデン再生コーパスと比較してください。
リリースゲートでは、候補アーティファクト、予想される差分、承認状況をまとめてレビューできる rulebook_migration_v1 マニフェストを推奨します。
npm run rulebook:migration-dry-run -- --migration path/to/migration.json --json
マニフェストのスキーマは https://api.decide.fyi/schemas/rulebook-migration-v1.schema.json で公開されています。ドライランでは、再生の前にマニフェストがこの閉じたスキーマに準拠しているかを検証します。
本番ルーティングまたはランタイム契約の変更をリリースした後は、本番ランタイムのスモークテストを実行してください。
npm run smoke:rulebook-runtime
このテストはランタイムの外部から https://api.decide.fyi にアクセスし、公開済みの hybrid_declarative_rulebook_with_trusted_adapters マニフェスト、閉じた Rulebook v1 スキーマ、証明鍵エンドポイント、保護された Decision API エッジを常に検証します。DECIDE_RULEBOOK_RUNTIME_SMOKE_API_KEY を指定すると、ライブの宣言型評価、拒否動作、アドバイザリーのみの従来メタデータもテストします。GitHub Actions は、公開境界チェックを定期/手動実行の Rulebook Runtime Production Smoke ワークフローとして実行し、オプションのスモークテスト用認証情報が設定されている場合は、認証付きチェックも実行します。
従来の single、multi、runtime モードは、AI 支援を行うインターフェースです。これらは、定義が曖昧なビジネス上の判断において、本番環境の決定論を保証する境界ではありません。
アーキテクチャ:
JavaScript SDK と CLI
公開されている @decide-fyi/sdk
クライアントは、Decision API の呼び出し、Decision Record と Decision Packet
の検証、Rulebook への準拠、リプレイ、実行レシート、結果の報告に対応しています。
npm install @decide-fyi/sdk
正規のパッケージソースは sdk/ で、ライセンスは Apache-2.0 です。
パッケージのリリース要件とソースの対応関係については、
sdk/SOURCE_PROVENANCE.md に記載されています。
ワンクリックインストール
ボタンを使用すると、正規の4ツール構成の Decide Policy Notaries サーバーがインストールされます。既存の個別エンドポイントも互換性のため引き続き利用できます。
安定版 MCP リモートサーバー
| サーバー | ドメイン | ツール | 判定 |
|---|---|---|---|
| Policy Notaries | policy.decide.fyi | 以下の4つのツールすべて | ポリシー固有の判定 |
| Refund Notary | refund.decide.fyi | refund_eligibility | ALLOWED / DENIED / UNKNOWN |
| Cancel Notary | cancel.decide.fyi | cancellation_penalty | FREE_CANCEL / CANCEL_AT_PERIOD_END / PENALTY / LOCKED / UNKNOWN |
| Return Notary | return.decide.fyi | return_eligibility | RETURNABLE / EXPIRED / NON_RETURNABLE / UNKNOWN |
| Trial Notary | trial.decide.fyi | trial_terms | TRIAL_AVAILABLE / NO_TRIAL / UNKNOWN |
ステートレスで、認証不要、1分あたり100リクエストです。対象範囲はポリシーごとに異なります。米国の個人プランの既存ベンダー100社に加え、Typeform Basic の解約のみ対象範囲が限定されています。対象範囲または最新のレビュー済み根拠が不足している場合、結果は安全側に倒して UNKNOWN になります。Typeform の統合を参照してください。
クイックスタート
MCP 経由で接続(Claude Desktop / Windsurf / その他のクライアント)
{
"mcpServers": {
"decide-policy-notaries": { "url": "https://policy.decide.fyi/api/mcp" }
}
}
個別サーバーとの互換性を保つ設定
既存のインストールでは、引き続き個別のリモートサーバーを使用できます。 これらは正規のスイートと同じツール名およびレスポンス契約を公開します。
{
"mcpServers": {
"refund-decide": { "url": "https://refund.decide.fyi/api/mcp" },
"cancel-decide": { "url": "https://cancel.decide.fyi/api/mcp" },
"return-decide": { "url": "https://return.decide.fyi/api/mcp" },
"trial-decide": { "url": "https://trial.decide.fyi/api/mcp" }
}
}
REST API
# Refund eligibility
curl -X POST https://refund.decide.fyi/api/v1/refund/eligibility \
-H "Content-Type: application/json" \
-d '{"vendor":"adobe","days_since_purchase":12,"region":"US","plan":"individual","qualifying_conditions_met":true}'
# Cancellation penalty
curl -X POST https://cancel.decide.fyi/api/v1/cancel/penalty \
-H "Content-Type: application/json" \
-d '{"vendor":"adobe","region":"US","plan":"individual","billing_cadence":"annual"}'
# Return eligibility
curl -X POST https://return.decide.fyi/api/v1/return/eligibility \
-H "Content-Type: application/json" \
-d '{"vendor":"adobe","days_since_purchase":12,"region":"US","plan":"individual","qualifying_conditions_met":true}'
# Trial terms
curl -X POST https://trial.decide.fyi/api/v1/trial/terms \
-H "Content-Type: application/json" \
-d '{"vendor":"adobe","region":"US","plan":"individual","offer_confirmed":true,"observed_trial_days":7,"observed_card_required":true,"observed_auto_converts":true}'
実際に確認した事実に基づいて、エビデンスフィールドを設定してください。時間枠だけでは、ソース固有の条件が満たされている証明にはなりません。承認が必要なポリシーは、呼び出し側が qualifying_conditions_met を設定しても UNKNOWN のままです。トライアルの結果には、最新のオファーの観測が必要です。
ローカル開発時のチェック
ローカル開発サーバーを起動します。
npx vercel dev
別のターミナルで以下を実行します。
# Handler-level smoke checks (no running server required)
npm run smoke
# MCP endpoint checks (requires a running server)
npm run mcp:check
# Self-contained local MCP check; starts/stops vercel dev on localhost:3000
npm run mcp:check:local
# End-to-end workflow fixture (example -> result)
npm run workflow:test
# Production customer-key verification after provisioning a key
DECIDE_SMOKE_API_KEY='<customer-key>' npm run smoke:customer-key
保護された Zendesk 参照ワークフロー
Zendesk のルートは、保護された参照アダプターです。助言的な分類、ポリシーの判定結果、推奨される Zendesk アクションの形式を返しますが、Zendesk への書き込み、実行の承認、または本番環境で拘束力を持つ Decision Record の作成は行いません。すべての応答で
workflow_contract.execution_allowed: false が設定されます。
本番アーキテクチャ(Rulebook v1 のアクション境界、および下流の副作用に先立って必要となる Decision Record を含む)については、
docs/POLICY_MCP_SUPPORT_WORKFLOW.md を参照してください。
エンドポイント
POST https://refund.decide.fyi/api/v1/workflows/zendesk/refundPOST https://cancel.decide.fyi/api/v1/workflows/zendesk/cancelPOST https://return.decide.fyi/api/v1/workflows/zendesk/returnPOST https://trial.decide.fyi/api/v1/workflows/zendesk/trial
リクエスト
{
"ticket_id": "ZD-9001",
"workflow_type": "refund",
"question": "Should this Adobe annual plan refund request proceed under policy?",
"vendor": "adobe",
"region": "US",
"plan": "individual",
"days_since_purchase": 5,
"qualifying_conditions_met": true
}
本番ワークフローのリクエストには、サーバー間 Bearer トークンが必要です。
curl -sS -X POST https://refund.decide.fyi/api/v1/workflows/zendesk/refund \
-H "Authorization: Bearer $WORKFLOW_API_TOKEN" \
-H "Content-Type: application/json" \
-d @workflow-request.json
refund と return では、days_since_purchase と、要求された場合はソース固有の状態を示す証拠を含めてください。キャンセルでは billing_cadence が必要になる場合があります。トライアルの自動化には、offer_confirmed に加え、観測された期間、カードの要否、自動移行の状態が必要です。必要なコンテキストが不足している場合、ワークフローは承認せずにエスカレーションします。
テスト専用フィクスチャモード
decision_override は、NODE_ENV=test と WORKFLOW_TEST_MODE=1 の両方が設定された、明示的なローカルテストおよび CI テストでのみ使用できます。デプロイ済みのルートでは拒否されるため、連携の手段として使用してはなりません。
{
"decision_override": "yes"
}
応答(例)
{
"ok": true,
"flow": "zendesk_refund_v1",
"ticket_id": "ZD-9001",
"decision": { "c": "yes", "request_id": "req_123" },
"policy": { "verdict": "ALLOWED", "code": "WITHIN_WINDOW" },
"workflow_contract": { "production_verdict": false, "execution_allowed": false },
"action": {
"type": "approve_refund",
"execution_allowed": false,
"zendesk_tags": ["decide", "decide_yes", "refund_allowed"]
}
}
返金ノータリー
エンドポイント: POST https://refund.decide.fyi/api/v1/refund/eligibility
MCP ツール: refund_eligibility
バージョン管理されたルールと提示されたソース固有の事実が自動化を裏付ける場合に限り、返金の可否を評価します。
入力: vendor、days_since_purchase、region、plan、および条件に応じて qualifying_conditions_met
{"refundable":true,"verdict":"ALLOWED","code":"WITHIN_WINDOW","message":"Refund is allowed. Purchase is 12 day(s) old, within 14 day window.","vendor":"adobe","window_days":14,"qualifying_conditions_met":true,"automation_safe":true}
コード: WITHIN_WINDOW、OUTSIDE_WINDOW、NO_REFUNDS、MISSING_REQUIRED_CONTEXT、UNSUPPORTED_VENDOR
キャンセルノータリー
エンドポイント: POST https://cancel.decide.fyi/api/v1/cancel/penalty
MCP ツール: cancellation_penalty
早期解約手数料、契約による制約、または無料キャンセルといった、キャンセルに伴うペナルティを確認します。
Adobe のキャンセルはレビューのみです。請求間隔だけでは、契約、タイミング、州固有の条件、または更新時の分岐を特定できません。この例は安全なレビュー応答であり、手数料の見積もりではありません。廃止済みまたは現行ではないポリシーの証拠についても、レビューが必要です。
入力: vendor、region、plan、および条件に応じて billing_cadence
{"verdict":"UNKNOWN","code":"MISSING_REQUIRED_CONTEXT","vendor":"adobe","billing_cadence":"annual","policy_decision_mode":"review_only","required_context":["manual_policy_review"],"automation_safe":false}
コード: NO_PENALTY、EARLY_TERMINATION_FEE、CONTRACT_LOCKED、MISSING_REQUIRED_CONTEXT、UNSUPPORTED_VENDOR
既知のベンダー ID があっても、すべての範囲を自動化できるとは限りません。各応答の automation_safe、policy_decision_mode、policy_evidence を確認してください。WeightWatchers の返金、キャンセル、返品のソースは廃止されています。履歴は引き続き参照できますが、新たな自動判定のために情報を取得したり、利用したりすることはできません。対象範囲の信頼性と採用条件を参照してください。
返品ノータリー
エンドポイント: POST https://return.decide.fyi/api/v1/return/eligibility
MCP ツール: return_eligibility
バージョン管理されたルールと提示されたソース固有の事実が自動化を裏付ける場合に、サブスクリプションの購入を取り消せるかどうかを評価します。
入力: vendor、days_since_purchase、region、plan、および条件に応じて qualifying_conditions_met
{"returnable":true,"verdict":"RETURNABLE","code":"FULL_RETURN","message":"Return is available. Purchase is 5 day(s) old, within 14-day window.","vendor":"adobe","return_type":"full_refund","method":"self_service","qualifying_conditions_met":true,"automation_safe":true}
コード: FULL_RETURN、PRORATED_RETURN、CREDIT_RETURN、OUTSIDE_WINDOW、NO_RETURNS、MISSING_REQUIRED_CONTEXT、UNSUPPORTED_VENDOR
トライアルの判定
エンドポイント: POST https://trial.decide.fyi/api/v1/trial/terms
MCP ツール: trial_terms
現在のオファーの観測結果に基づいて、利用可否と条件を評価します。静的なトライアルの利用可否は公開しません。
入力: vendor、region、plan、offer_confirmed。確認済みの場合は、observed_trial_days、observed_card_required、observed_auto_converts も指定します。
{"verdict":"TRIAL_AVAILABLE","code":"AUTO_CONVERTS","message":"A live 7-day adobe trial offer was confirmed. Credit card required. Auto-converts to paid plan.","vendor":"adobe","trial_days":7,"card_required":true,"auto_converts":true,"offer_confirmed":true,"automation_safe":true}
コード: AUTO_CONVERTS、NO_AUTO_CONVERT、TRIAL_NOT_AVAILABLE、MISSING_REQUIRED_CONTEXT、UNSUPPORTED_VENDOR
サポート対象ベンダーレジストリ(異なるベンダー 101 社)
バージョン管理された JSON レジストリが、正式なベンダーカタログです。ポリシーの適用期間、チャネル、承認の分岐は個別に変更される可能性があるため、簡潔な Markdown テーブルはあえてここに重複して掲載していません。契約テストでは、各ポリシーのルール、ソース、検出結果が一致することを確認します。Typeform はキャンセルのみを対象としており、返金、返品、トライアルは対象外です。
| ファミリー | ルール | 公式ソースレジストリ | 自動化の分類 |
|---|---|---|---|
| 返金 | v1_us_individual.json | policy-sources.json | deterministic、conditional、review_only |
| キャンセル | v1_us_individual_cancel.json | cancel-policy-sources.json | deterministic、conditional、review_only |
| 返品/取消 | v1_us_individual_return.json | return-policy-sources.json | deterministic、conditional、review_only |
| トライアル | v1_us_individual_trial.json | trial-policy-sources.json | observed ライブオファーモード |
deterministic:サポート対象の米国個人プランの範囲では、標準ポリシーが明確に定められています。conditional:自動化には、ソース固有の条件が確認済みであることを呼び出し元が明示的に表明する必要があります。review_only:ポリシーが承認、チャネル、契約条件、例外、または自動化するには十分に明確でないソースの文言に依存しています。observed:トライアルの条件を返すには、現在のアカウントまたはプロモーションでライブオファーが提示されている必要があります。
対象範囲: デフォルトでは米国の個人プランです。Typeform のキャンセルには、Basic、直接契約、セルフサービスのプラットフォームサブスクリプションに対する明示的な例外が適用されます。
データの鮮度
各ポリシーファミリーには、バージョン管理されたルールとソースメタデータがあります。キャンセルには 101 件のベンダー識別子があり、ほかの 3 つのファミリーにはそれぞれ 100 件あります。 ソーストラッカーは、公式のベンダー文書および利用規約を監視します。 ページの文面を判定結果に自動的に反映することはありません。
- ソースの毎日確認 —
Daily Policy Checkワークフローは、返金、キャンセル、返品、トライアルの各ソースを毎日 1 回確認します。重要なシグナルは人によるレビューキューに送られます。取得を行っても、適用可能性の確認が更新されるわけではありません。 - 人による確認の鮮度:
npm run audit:policy-freshnessは、トラッカーの稼働時間とは別に、ソースのレビューからの経過期間を報告します。新しいポリシー評価には、現在のリクエストに紐づく証拠 も必要です。証拠がない場合や古い場合は、レビューに回されます。 - 追跡対象のポリシーソース URL — 各ポリシーファミリーには、公式ポリシーページへのリンクを含む独自のソースファイルが
rules/にあります。 - コンプライアンスエクスポート —
GET /api/compliance-exportは、追跡対象のソース、ハッシュ、保留中の変更候補の CSV スナップショットを返します(機械可読形式で出力するには?format=jsonを指定します)。 - バージョン管理されたルール — 各ルールファイルには、古さを検出するための
rules_versionフィールドが含まれています。
アーキテクチャ
- ステートレスな判定ランタイム — ポリシーへの呼び出しでセッションが作成されたり、ポリシールールが変更されたりすることはありません
- 決定論的 — 同じ入力には常に同じ出力が返されます
- バージョン管理されたルール — 変更を追跡できるよう、ルールファイルにバージョンが含まれます
- 定期的な監視 — GitHub Action が6時間ごとに、すべてのベンダーのポリシーページを確認します
- サーバーレス — Vercel のサーバーレス関数上で実行されます
- 依存関係ゼロ — コアの計算ロジックに外部依存関係はありません
- ホスト名ルーティング — Vercel のミドルウェアがサブドメインを適切な MCP エンドポイントにルーティングします
制限事項
- 米国のみ — 現在は米国地域のみをサポートしています
- 個人プランのみ — ビジネスプラン/エンタープライズプランはまだサポートされていません
- 暦日 — 期間は営業日ではなく暦日に基づきます
- フェイルクローズの分岐 — 承認が必要なケース、チャネルに依存するケース、曖昧なケース、または情報が不完全なケースは、確認のため
UNKNOWNを返します - 試用に関するライブエビデンス — 試用の提供状況と条件は、評価対象となるアカウントまたはプロモーションについて確認する必要があります
変更履歴
v1.3.1 (2026-07-16)
変更点:
- Policy Notary で、明示的な
deterministic、conditional、review_only、ライブオファーの各モードを使用するようになりました。情報が不完全なリクエストや承認が必要なリクエストは、フェイルクローズされます。 - 監視のタイムスタンプがポリシーの系譜ハッシュを変更しなくなり、ゴールデンリプレイの生成で不完全な判定が拒否されるようになりました。
- 正規 MCP メタデータで、フェイルクローズの契約と確認済み試用エビデンスのフィールドについて説明するようになりました。
v1.3.0 (2026-07-15)
追加:
- 1つの接続を通じて4つすべての Policy Notary ツールを公開する、正規の
policy.decide.fyi/api/mcpサーバー。 - ライブのツール定義をソースとする、生成済みの Official Registry メタデータと Smithery サーバーカードメタデータ。
変更点:
- ワンクリックインストールリンクで、4つのツールを備えた Policy Notaries サーバーがインストールされるようになりました。
- Refund、Cancel、Return、Trial の各専門 MCP URL は、安定した互換性サーフェスとして維持されています。
未リリース
追加:
- ポリシー監視エビデンスをエクスポートする
GET /api/compliance-exportエンドポイント(デフォルトは CSV、?format=jsonで JSON)。 - コンプライアンスエクスポートの JSON と CSV のパスを対象とするスモークテスト。
- リモートサーバーの発見、プローブ、完了した Policy Notaries の評価を区別する、非公開の
report:mcp-adoption運用レポート。 - MCP クライアントの申告に基づく属性情報、保守的な後続アクションの推定、集計のみの出力を備えた、トークンで保護された Console の導入状況スナップショット。
- 接続の意図、公開 REST の証明、MCP 評価、Krafthaus ワークフローへの引き継ぎの各指標を明確に区別する、サービス専用の Policy Notaries ガイドファネル。
変更点:
- ランディングページで Decide を Decision API エンジンとして位置付け、Policy MCP Notaries を1つのリファレンスアプリケーションとして紹介するようになりました。
- 本番環境の Zendesk リファレンスルートでサーバー間認証が必要になりました。未設定の場合はフェイルクローズされ、返されるすべてのアクション形式が実行されないことを明示するようになりました。
v1.2.1 (2026-02-08)
変更点:
- サブドメインのホームページに、関連する Notary カード(返金/キャンセル/返品/試用)が表示されるようになりました。
server.json、MCP のinitialize、/.well-known/*でバージョンメタデータが統一されました。
v1.2.0 (2026-02-02)
追加:
- Cancel Notary MCP (cancel.decide.fyi) — キャンセル料チェッカー
- Return Notary MCP (return.decide.fyi) — 返品資格チェッカー
- Trial Notary MCP (trial.decide.fyi) — 無料試用条件チェッカー
- すべてのサブドメインを対象とする、ホスト名ベースのミドルウェアルーティング
- キャンセル、返品、試用に関するポリシーのソースファイルと毎日の確認
- ランディングページにおける Systems/Agents モードの位置付け
- 4つすべてのサーバーのカードを掲載した MCP カタログ
修正:
- 毎日のポリシーチェッカー:
contents:write権限を追加し、シェルロジックを修正 - 404 の原因となっていた未使用の Cloudflare メールデコードスクリプトを削除
v1.1.0 (2026-02-01)
追加:
- 対応ベンダーを64社から100社に拡大
- 毎日のポリシーチェック用 GitHub Action(08:00 UTC に cron 実行)
- ポリシーソースの URL を
rules/policy-sources.jsonで追跡 - エージェントが検出しやすいよう、inputSchema に MCP ベンダーの
enumを追加
修正:
- Vercel での
ERR_IMPORT_ATTRIBUTE_MISSINGクラッシュ(Node 22 の import attributes)
v1.0.0 (2026-01-15)
追加:
- REST API と MCP サーバーを備えた初回リリース
- 9 社のベンダーに対応
公開ポリシー API と保護された判定 API
4 つのポリシーサーバーはすべて無料で利用できます。認証は不要です。API キーも不要です。
読み取り専用のポリシー対応状況カタログでは、米国の個人向けの各ポリシー範囲を、対応済み、要確認、提供確認済み、廃止、または劣化として一覧表示します。?policy=cancel&vendor=adobe で絞り込めます。ベンダー ID が登録されていることは、対応を保証するものではありません。現在の範囲ステータスと、判定の automation_safe、証拠、必要なコンテキストを確認してください。カタログの読み取りでは、ツールの評価もアクションの実行も行われません。監視が行われていない場合は、正常であると報告せず、そのことを明示します。カタログの仕様を参照してください。
本番環境では、/api/decide に信頼できるプロキシまたは API 認証情報が必要です。ローカル環境とプレビュー環境では、DECIDE_API_AUTH_REQUIRED=1 を設定して同じ境界を有効にできます。DECIDE_API_KEY または DECIDE_PROXY_SHARED_TOKEN を設定した場合も有効になります。
動的な顧客キーを使って decide を decidesite プロキシの背後で実行する場合は、次の設定も行ってください。
DECIDE_PROXY_SHARED_TOKEN:信頼できるプロキシからの呼び出しに必要な共有シークレット。x-decide-proxy-tokenヘッダーで渡します。DECIDE_API_KEY:信頼できるサーバー側の呼び出し元向けの、任意のバックエンド直接認証情報。DECIDE_GEMINI_MODE:デフォルトはdisabledです。このハードゼロ状態では、従来のアドバイザリーモードsingle、multi、runtimeのリクエストは、API キーを読み取ったりプロバイダーにリクエストしたりせずにDECIDE_AI_DISABLED_ZERO_COSTを返します。Rulebook v1 は引き続き利用可能で、Gemini は一切使用しません。DECIDE_GEMINI_MODE=paid:アドバイザリーモードで、明示的にゼロ以外のコストを許可します。このモードには、制限付きのサーバー側GEMINI_API_KEYも必要です。DECIDE_GEMINI_MODELに指定できるのはgemini-3.1-flash-liteのみです。モデルの変更には、環境変数だけの切り替えではなく、レビュー済みのコードリリースが必要です。DECIDE_GEMINI_BUDGET_KV_REST_API_URLとDECIDE_GEMINI_BUDGET_KV_REST_API_TOKEN:アトミックなプロバイダー試行ガード用の、Redis 互換 REST ストアです。このストアがないか利用できない場合、有料アドバイザリーは Gemini の呼び出し前にフェイルクローズします。従来のDECIDE_KV_REST_API_*/KV_REST_API_*名は互換性のためのフォールバックです。専用の認証情報を推奨します。- コンパイル済みのプロバイダー試行上限は、1 日あたり10回、1 か月あたり100回、ライフタイムで500回、同時リクエスト1件です。
DECIDE_GEMINI_DAILY_CALL_CAP、DECIDE_GEMINI_MONTHLY_CALL_CAP、DECIDE_GEMINI_LIFETIME_CALL_CAPでは、これらの上限を引き下げることしかできません。 DECIDE_GEMINI_TIMEOUT_MS:有料モードにおける唯一のプロバイダーへのタイムアウトです。デフォルトは8秒で、これを超える値は設定できません。DECIDE_GEMINI_MAX_PROMPT_CHARS:取得前のアドバイザリープロンプトの上限です。デフォルトは4,096文字で、これを超える値は設定できません(256文字まで引き下げ可能)。
有料モードでは、プロバイダーへの試行を正確に1回行い、別のモデルへのフォールバックは一切行いません。Gemini 3.1 Flash-Lite では、プロバイダーのデフォルトである1候補、サポート対象の最低レベルである minimal の思考レベル、デフォルトの温度設定を使用します。出力上限は single が8トークン、multi が128トークン、runtime が512トークンです。プロバイダー側でゼロドルの境界を設けるには、Gemini の Google Cloud プロジェクトを課金にリンクしないでください。アプリケーションのカウンターは呼び出し回数を制限しますが、通貨額を証明するものではありません。
/api/decide の一般的なレート制限は、サーバーレスインスタンスごとに IP あたり1分間に20リクエストです。これは不正利用を防止するための制御であり、Gemini のコスト境界ではありません。信頼できるプロキシが一般的なレート制限を回避する場合でも、永続的なプロバイダー試行ガードは適用されます。
初回顧客への引き継ぎと、キーを使用した本番環境での検証については、docs/FIRST_CUSTOMER_RUNBOOK.mdを参照してください。
ポリシー取得フック(ポリシーチェッカーのブラウザーフックレーン用)
直接の取得がブロックされる場合、日次チェッカーの取得アダプターとして POST /api/policy-fetch-hook を使用します。
リクエストボディ:
{
"url": "https://example.com/policy",
"vendor": "example_vendor",
"policy_type": "refund",
"timeout_ms": 18000
}
認証:
Authorization: Bearer <POLICY_CHECK_BROWSER_HOOK_TOKEN>またはx-hook-token: <token>
サーバー環境変数:
POLICY_CHECK_BROWSER_HOOK_TOKEN(エンドポイント認証に必須)POLICY_FETCH_CLOUDFLARE_ACCOUNT_IDとPOLICY_FETCH_CLOUDFLARE_API_TOKEN(任意。設定すると、まず Cloudflare Browser Run を使用します。トークンの権限は Browser Rendering Write に限定してください)POLICY_FETCH_CLOUDFLARE_CACHE_TTL_SECONDS(任意。デフォルトは 21600 秒。ポリシーの種類をまたいでレンダリング結果を再利用します)POLICY_FETCH_BROWSERLESS_TOKEN(任意のセカンダリーブラウザープロバイダー)POLICY_FETCH_BROWSERLESS_CONTENT_URL(任意の上書き値。デフォルトはhttps://production-sfo.browserless.io/content)POLICY_FETCH_ALLOWED_HOSTS(任意のカンマ区切りホスト許可リスト)
チェッカー(GitHub Actions、リポジトリ decide):
- シークレット
POLICY_CHECK_BROWSER_HOOK_URL= デプロイ済みエンドポイント URL(標準:https://api.decide.fyi/api/policy-fetch-hook) - シークレット
POLICY_CHECK_BROWSER_HOOK_TOKEN= ランタイム環境変数と同じトークン - 変数
POLICY_CHECK_FETCH_LANES_DEFAULT=direct,zendesk_api,mirror,browser_hook - 任意の変数
POLICY_CHECK_BROWSER_HOOK_MIN_INTERVAL_MSは、ブラウザーフックリクエスト間の間隔を制御します(デフォルトは10500。Cloudflare Browser Rendering Free の制限に適しています)。
ご質問は、[email protected] または X の @decidefyi までお問い合わせください。
リンク
- ウェブサイト: https://decide.fyi
- ポリシーアラート: https://www.decide.fyi/resources/policy-alerts
- 返金: https://refund.decide.fyi
- 解約: https://cancel.decide.fyi
- 返品: https://return.decide.fyi
- トライアル: https://trial.decide.fyi
- X/Twitter: @decidefyi
- MCP 仕様: https://modelcontextprotocol.io
Decide は API エンジンです。アプリケーションがプリミティブを実証します。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。
