life. scored. について
life. scored. は、信用・保険数理・融資などのスコアを公開ルールで再構成するアプリです。根拠を調べたい人向けで、各ルールには引用または推測の表示があり、重みも確認・編集できます。
主な機能
- 01スコア規則と引用の表示
- 02根拠あり・推測の区別
- 03重みの確認と編集
- 04ローカルでの説明文生成
- 05リンクによる結果共有
活用シーン
- 01スコアに対する各要因の影響確認
- 02引用に基づくルールの評価
- 03重みを調整した結果の比較
MCP 対応
ルールブック、入力スキーマ、方法論、フィードバック方法をクライアントに公開するリモート MCP サーバーを提供します。個人データは受け付けず、公開ルールに基づくスコア計算は Agent 側で行えます。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://lifescored.com/mcpclaude mcp add --transport http com-lifescored https://lifescored.com/mcp{"mcpServers":{"com-lifescored":{"type":"http","url":"https://lifescored.com/mcp"}}}Cursor で開く{"servers":{"com-lifescored":{"type":"http","url":"https://lifescored.com/mcp"}}}VS Code で開く{"mcpServers":{"com-lifescored":{"type":"http","url":"https://lifescored.com/mcp"}}}{"mcpServers":{"com-lifescored":{"serverUrl":"https://lifescored.com/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
4このツールにパラメーターはありません。
詳細
人生はスコア化される。
あなたはすでに数字です。
クレジットスコア、保険数理上の評価、折り返し連絡の確率。このアプリは、そうした数字をオープンに再構築します。すべてのルールに出典または推測である旨を示し、すべての重みを可視化して編集可能にしています。判断ではなく、透明性を重視します。
技術スタック
- Svelte 5 + SvelteKit。静的ページとして事前レンダリングし、Cloudflare Workers にデプロイします
- 動的エンドポイントは 1 つです。
POST /api/narrative— KV にキャッシュされた Gemini のナラティブを返し、決定論的なローカルフォールバックも備えています(API キーがなくてもアプリは完全に機能します) - すべてのユーザーデータはブラウザー内に保存されます(localStorage + URL フラグメントによる共有リンク)
- トラフィックの測定には Cloudflare Web Analytics を使用します。Cookie を使わず、集計データのみを扱うため、入力内容を見ることはできません。そもそも入力内容がデバイスの外に出ることはありません。
開発
npm install
npm run dev # localhost:5173 でアプリを起動(ナラティブはローカルコンポーザーにフォールバック)
npm test # vitest スイート:ルールブックの不変条件、エンジン、コーデック、Worker ハンドラー
npm run check # svelte-check
npm run types # wrangler.jsonc の変更後に Cloudflare バインディングを再生成
ナラティブのキャッシュミスが発生すると、NarrativeBudget SQLite Durable Object で 1 回分の呼び出し枠をアトミックに予約します。上限は、UTC 日ごとに全体で 200 回、IPv4 アドレスまたは IPv6 /64 ネットワークごとに 10 回です。IPv4 にマッピングされた IPv6 アドレスには、IPv4 の上限が適用されます。同じネットワークを使う人々は上限を共有する場合があります。キャッシュヒットとローカルコンポーザーは引き続き利用できます。上流への呼び出しが失敗した場合も予約は消費されます。予約に失敗した場合はローカルフォールバックを使用します。キャッシュヒットでは割り当て枠を消費しません。コーディネーターが保存するのは日ごとのアドレスハッシュのみで、翌日の最初の予約時に前日分のエントリーを削除します。プロフィールの入力内容やナラティブのテキストを参照することはありません。KV はナラティブのキャッシュにのみ使用します。
npm run build は、アダプターが生成した Worker に Durable Object のエクスポートを追加します。既存のワークフローを通じて、そのビルドをデプロイしてください。Wrangler は wrangler.jsonc のバージョン管理されたマイグレーションを通じてコーディネーターを作成します。バインディングを変更した後は npm run types を実行してください。このヘルパーはソースからクラスを解決するため、クリーンなクローンでもチェックが機能します。
デプロイ(Cloudflare 無料プラン)
デプロイは、main へのプッシュごとに GitHub Actions から自動的に実行されます
(.github/workflows/deploy.yml)。ワークフローでは
テストスイート全体と型チェックを実行し、その後にのみビルドとデプロイを行います。プルリクエストでは
同じチェックに加えて、デプロイを行わない Worker のドライランを実行します。
初回のみのセットアップ:
シークレットは hush に保存します。OS のキーチェーンに一度保存し、
そのまま利用先に渡すため、ターミナルに貼り付けたり、エコーや表示されたりすることはありません。
このプロジェクトの hush アイテムには lifescored- プレフィックスが付いているため、キーチェーンで検索するとまとめて表示されます。
(hush を使わない場合は、hush pipe … -- プレフィックスを省き、npx wrangler / gh コマンドをそのまま実行してください。hush はコマンドをラップするだけです。)ローカル開発にはシークレットは一切必要ありません。ナラティブはローカルコンポーザーにフォールバックします。
-
KV ネームスペースを作成し、その ID を
wrangler.jsoncに貼り付けます。npx wrangler kv namespace create NARRATIVE_KV -
Gemini キーを Worker シークレットとして設定します(デプロイ後も保持されます。省略可能です。 省略すると、ローカルのナラティブフォールバックを使って AI なしで実行できます)。
hush set lifescored-gemini-key # 一度だけ貼り付けます。非表示のダイアログが開きます hush pipe lifescored-gemini-key -- npx wrangler secret put GEMINI_API_KEY -
GitHub Actions にデプロイ用の認証情報を設定します (Settings → Secrets and variables → Actions)。
hush set lifescored-cloudflare-api-token # 「Edit Cloudflare Workers」トークン hush pipe lifescored-cloudflare-api-token -- gh secret set CLOUDFLARE_API_TOKEN gh secret set CLOUDFLARE_ACCOUNT_ID --body "<your-account-id>" # アカウント ID はシークレットではありません
main にプッシュすると、アクションがデプロイします。代わりに手動でデプロイするには、次を実行します。
npm run deploy
自分でデプロイする
リポジトリをフォークし、上記の初回セットアップを自分の Cloudflare アカウントで行ってから、 プッシュします。Gemini キーがなくても、アプリは完全に機能します。
ルールブックの編集
ルールは src/lib/rulebook/<domain>.ts にあります。各ルールは宣言型で、ロジック、
エビデンスタグ(SOURCED/SPECULATIVE)、アクセス日を含む引用、純粋関数
position(inputs)(測定値を数値の位置に正規化したもの)、宣言済みの
bounds(マイナスの下限を設定するのは、引用元の制度自体が減算する場合のみ。資産のルールには上限がありません)、
および重みを所得の基準値 1.0× に対して正当化する weightRationale があります。エンジンは
points = round(position × weight) を計算します。
ルールを追加すると、UI、重みエディター、共有用コーデック、概要ページのソース一覧に自動的に反映されます。npm test は不変条件(範囲、整数スコア、引用の存在)を検証します。
エージェントから利用する(MCP またはスキル)
ルールブック全体と正確な計算方法を公開しているため、任意のエージェントが自身の側でスコアを計算できます。個人に関する情報が lifescored.com に送信されることはありません。
- MCP サーバー — 公式レジストリの
com.lifescored/mcp。エンドポイントはhttps://lifescored.com/mcpです(ステートレスな Streamable HTTP、認証不要、個人データを受け付けません)。ツール:get_rulebook、get_input_schema、get_methodology、how_to_give_feedback。 - スキル — すぐに使える
skills/lifescored/スキルです。エージェントのスキルディレクトリ(例:~/.claude/skills/)にコピーします。MCP を優先し、利用できない場合はrules.jsonにフォールバックします。 - 生データ —
https://lifescored.com/rules.jsonおよび/llms.txt。
コントリビューション
すべてのコミットには GitHub イシュー番号を記載する必要があります。例:feat: add presets (#2) または refs #5。commit-msg フックがこれを自動的に強制します。このフックは .githooks/ を指す core.hooksPath を使ってインストールされ、npm install 時に有効になります(prepare スクリプトが git config core.hooksPath .githooks を実行します)。マージコミットとリバートは対象外です。イシューの検索または作成には、gh issue list / gh issue create を使います。
ライセンス
MIT — LICENSE を参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。