trades-runtime について
HVAC、配管、電気、下水道業向けの、運用インテリジェンスとオペレーター用デスクを備えたローカル TypeScript シャドーランタイムです。サンプルまたはローカルデータを読み取り専用で扱い、ライブバックエンドは無効で、パイロットは未開始です。
主な機能
- 01オフィスと現場のシャドー実行
- 02ローカル運用デスクとアラートルール
- 03再訪問・保証・品質の概要
- 04時間記録・対応エリア・技術者候補
- 05CLI の状態・ヘルスコマンド
活用シーン
- 01サンプル拠点でオフィスと現場の手順を演習
- 02再訪問・保証の傾向とアラートを確認
- 03時間記録とサービス対応範囲をローカルで確認
- 04隔離環境でパイロットを準備
MCP 対応
MCP サーバーを提供しますが、READMEにはツールやクライアントとの連携方法の説明がありません。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://trades-runtime.vibelock.workers.dev/mcpclaude mcp add --transport http azieleliab-trades-runtime https://trades-runtime.vibelock.workers.dev/mcp{"mcpServers":{"azieleliab-trades-runtime":{"type":"http","url":"https://trades-runtime.vibelock.workers.dev/mcp"}}}Cursor で開く{"servers":{"azieleliab-trades-runtime":{"type":"http","url":"https://trades-runtime.vibelock.workers.dev/mcp"}}}VS Code で開く{"mcpServers":{"azieleliab-trades-runtime":{"type":"http","url":"https://trades-runtime.vibelock.workers.dev/mcp"}}}{"mcpServers":{"azieleliab-trades-runtime":{"serverUrl":"https://trades-runtime.vibelock.workers.dev/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
4このツールにパラメーターはありません。
詳細
Trades-Runtime
シャドウファーストのAIオペレーティングシステム/企業インテリジェンス層向けの非公開 TypeScript ランタイムです。対象となる現場業種:HVAC、配管、電気、下水道、および複数業種にまたがる業務。
作者/アイデンティティ: Aziel Eliab のみです。IDENTITY.mdを参照してください。エクスポートに法的な氏名、自宅、郡は含めません。
バージョン: 1.0.0(Local Softwares 1.0、インストール可能)
役割: trades-runtime
ライセンス: Apache-2.0
リリース: フリーソフトウェア(Apache-2.0)です。クローンして、お使いのマシンでローカルシャドウを実行してください。Aziel Eliab は作者であり、運用者ではありません。また、企業のパイロット運用も行っていません。
公開 Worker(デプロイされている場合): https://trades-runtime.vibelock.workers.dev
Glama で試す(掲載予定): https://glama.ai/mcp/servers/AzielEliab/trades-runtime — パッケージはリポジトリ内にあります(glama.json、Dockerfile、cli/mcp-stdio.mjs)。この Git ツリーだけを根拠に、Install Server が稼働中だと見なさないでください。2026-10-02 に確認:Glama の Latest/releaseVersion は 1.0.0-local です。公開バッジは現在も 1.0.0-local で、リポジトリ内の Softwares cite tip 1.0.0 とは一致していません。追いつきは未完了です。Official MCP Registry の表示も引き続き 1.0.0-local です。このリリースでは再公開しません。Local Softwares 1.0 です。この差は Field 1.0 の主張ではなく、Office Softwares 1.0 でもありません。このリリースでは Make Release を実行しません。docs/GLAMA.mdを参照してください。
ステータス: 1.0.0 インストール可能な Local Softwares 1.0(Track L ゲート;パイロット未開始;live_backends false;Field 1.0 の主張ではありません) — 0.4.12 おなじみのコマンド(help、softwares、version、health)を用意し、README 全体を読まなくても製品を確認できます。デスク機能は凍結されたままです(パイロット未開始) — 0.4.11 VibeLock Worker 上での無償提供用ユーザー UI(ブラウザー/PWA)。事前ダウンロード不要です。任意のカウント付きパッケージを用意し、運用者デスクは引き続きローカルです(パイロット未開始) — 0.4.10 Monitoring デスクでのローカル時間追跡、サービス提供エリアの切り替え、適切な技術者の提案(パイロット未開始) — 0.4.9 ServiceTitan と ProBooks の断片データを対象にしたローカル受信品質レポート、書き戻しを拒否するアラートからアクションへのスタブ、Option C の開始ゲート準備パネル(パイロット未開始) — 0.4.8 ローカルの走行距離と運転パフォーマンス、従業員と部門のランキング形式のパフォーマンスボード、部門をまたいだ協働の提案、そのボードに並ぶ従業員の摩擦率(パイロット未開始) — 0.4.7 地域市場に応じて調整される部品コスト、技術者ごとの trainingNeeded、部門の良好/不良な行動フラグ、ローカルのトラック台数(パイロット未開始) — 0.4.6 通話ごとの分類理由、コールバック/保証/未分類のフィルター、ループバック方式の週次コールバック率ダイジェスト、技術者向け朝会(パイロット未開始) — 0.4.5 ローカルのコールバック件数と保証件数、アラートダイジェストのエクスポート、スコアの説明、予約ブロックの記録(パイロット未開始) — 0.4.4 ローカル運用者デスクの仕上げ(テーマ、レーン表示、印刷可能なスナップショット;パイロット未開始) — 0.4.3 Option C BYO パイロット準備(ローカル実行手順書+npm run pilot:prep;パイロット未開始) — 0.4.2 運用者デスク上のローカルアラートルール — 0.4.1 0.4.0 の汎用ドロップインに、名称付きの業務アプリベンダープロファイルを追加 — Property Intelligence v1.0 とリポジトリ内で歩調を合わせる — ライブ依存のない中核機能+正直なスタブ — BYO 方式のローカル ServiceTitan+ProBooks+業務アプリからの受信 — ライブ書き込み、テナントデータ、ST/ProBooks への書き戻し、ホームへの通信、DOI、ホスト型アップローダー、本番環境の企業OSという主張はありません — Option C はコード準備完了/パイロット未開始 — Option D は未開始
製品は src/ 内のソフトウェアです。docs/ は簡素なローカルカタログ/UIです。GitHub Pages は意図的に無効化されています(live_backends: false)。Pages ワークフローはありません。PDF は一切公開しません。 実装者向け仕様書は、リポジトリ直下の specs/ にあります(docs/ の下ではありません)。
恒久ルール:Aziel が送る PDF はすべて、ソフトウェアとしてコード化して実装する仕様書です。
記録:TR-1.0-GATE-2026-09-28(Track L Local Softwares 1.0 ゲート。パイロット未開始) · TR-COMMANDS-2026-09-27(共通 CLI コマンドの help、softwares、version、health。desk は凍結済み。パイロット未開始) · TR-OPS-2026-09-27(ローカルの時間追跡、カバレッジ切り替え、適切な技術者の提案。パイロット未開始) · TR-DESK-VIEW-2026-09-27(ローカルの表示/非表示チェックボックス。Softwares のカードグリッドに変更なし。パイロット未開始) · TR-MOBILE-DESK-2026-09-27(スマートフォン幅のローカル desk。Softwares のカードに変更なし。パイロット未開始) · TR-QUALITY-2026-09-27(受信品質、アラートアクションのスタブ、Option C 開始ゲート。パイロット未開始) · TR-DRIVE-2026-09-27(走行距離、運転実績、従業員および部門のランキングボード。パイロット未開始) · TR-SOFTWARES-2026-09-27(部品コストと市場への適応、trainingNeeded、部門の動作フラグ、ローカルのトラック台数。パイロット未開始) · TR-HUDDLE-2026-09-26(通話ごとの分類理由、通話フィルター、週間コールバック率、朝のミーティング。パイロット未開始) · TR-CALLS-2026-09-26(コールバックと保証の件数、アラートダイジェスト、スコアの理由、予約ブロックの受領確認。パイロット未開始) · TR-DESK-POLISH-2026-09-25(ローカル desk の仕上げ。パイロット未開始) · TR-OPTION-C-PILOT-RUNBOOK-2026-10-02(人手による Option C の開始手順。カタログのパイロット未開始) · TR-PILOT-START-2026-10-02(オペレーターの分離環境で明示的に pilot:start --branch を実行。Field 1.0 ではない。Office Softwares 1.0 ではない) · TR-OPTION-C-PREP-2026-09-25(Option C の環境準備。パイロット未開始) · TR-ALERTS-2026-09-25(ローカルのアラートルール) · TR-VENDOR-2026-09-25(名前付きベンダープロファイル) · TR-DESK-2026-09-25(汎用ドロップイン+ローカルの人手による desk) · TR-AUDIT-2026-09-18C · TR-AUDIT-2026-09-18B · TR-AUDIT-2026-09-18 · TR-AUDIT-2026-09-17 · TR-CUT-2026-09-17 · TR-BOT-2026-09-17(継続的な概要) · TR-BYO-2026-09-17(TR-BOT §9 および TR-CUT R2–R3 を改訂)。
ご使用のマシンで試す
このリポジトリをマージしても、パイロットは開始されません。ソフトウェアを作成したのは Aziel Eliab です。運用担当者でも顧客でもなく、このリポジトリで店舗を運営しているわけでもありません。live_backends は false のままです。書き戻しはありません。新しくクローンしても、ServiceTitan や ProBooks のテナント、シークレットは不要です。
git clone https://github.com/AzielEliab/trades-runtime.git
cd trades-runtime
npm install
npm test
npm run demo
npm run shadow:office
npm run shadow:field
npm run desk
確認できる内容:
npm run demoは、合成のシャドーデイをターミナルに表示します。これはフィクスチャです。企業での結果ではなく、精度のパーセントも表示しません。npm run shadow:officeは、test/fixtures/sample-branch/office/にあるフィクスチャを使って、sample-shopというサンプルブランチでオフィスのシャドーを実行します。レシートにはoffice_softwares_1_0: false、pilot_started: false、live_backends: falseと記載されます。受け入れられたサンプルジョブ、ハドルの件数、チェックリスト形式の受信品質、書き戻しを拒否するアラートのスタブを確認できます。このコマンドはフィールドフラグを読み込みません。npm run shadow:fieldは、同じサンプルブランチで、test/fixtures/sample-branch/field/のフィクスチャを使ってフィールドのシャドーを実行します。ローカルフラグ(needsParts、safetyHold、vanDown、およびバンがない状態でラベル名を示す行。バンを勝手に作り出すことはありません)、タイムカード、対応エリア、適任技術者の提案を確認できます。field_softwares_1_0は false です。ライブ GPS フィードでも Field 1.0 でもありません。オフィスのシャドーとは別のコマンドです。npm run deskは、http://127.0.0.1:4174/ でローカルデスクを開きます。受信フォルダーが空の場合、ページには合成デモと表示されます。あなたの会社のものでも、ライブテナントでもありません。独自のエクスポートをdata/inbound/に配置するかどうかは任意で、データはあなたのマシン上にとどまります。
実際のブランチを自分のマシンに用意できた場合に限り、次の操作を行います。
npm run pilot:prep
npm run pilot:start -- --branch <branchId>
pilot_started を true に設定するソフトウェア上の経路はこれだけです。また、設定が有効になるのはあなたの分離環境のみです。ブランチがない、または無効な場合、準備が完了していない場合、受信データが空、または合成データのみの状態で --claim-company を指定した場合は、処理を拒否します。提供されるカタログでは pilot_started は false のままです。モードは SHADOW-SEALED のままです。書き込みにはオペレーターの承認が必要で、デフォルトでは無効です。レシートはライブ企業 OS でも、Office Softwares 1.0 でも、Field 1.0 でもありません。
インストール、テスト、デモ
npm install
npm test
npm run typecheck
npx tsx src/cli.ts help
npx tsx src/cli.ts softwares
npx tsx src/cli.ts version
npx tsx src/cli.ts health
npm run demo
npm run byo:admit-demo
npm run drop-in:demo
npm run desk
npm run shadow:office
npm run shadow:field
npm run pilot:prep
npm run pilot:start -- --branch <branchId>
npm run health:local
npm run shadow:sealed-demo
npm run manifest
npm run mcp
help はコマンド一覧を表示します(--help と -h も同じです)。softwares は各モジュールのスラッグ、ステータス、平易な言葉による説明を1行ずつ表示します(Softwares は大文字・小文字を問わず一致します)。version は製品名とバージョンに続いて、live_backends false、pilot_started false という正直な情報を1行表示します(--version と -V も同じです)。health は health-local と同じローカル状況カードを表示します。不明なコマンドを入力すると、不明であることを表示した後、ヘルプテキストを表示して、ゼロ以外のコードで終了します。コマンドを指定しない場合は、ヘルプを表示してゼロで終了します。
npm test は、人間の権限、confidence≠truth、CrossTrade の二次専用ルーティング、v0.2 の認識/価格表ロック/ミッションボード/ロケーション経済性、0.3.3 の実行スパイン(FragGate の受信、永続レシート、runAction)、追記専用 JSONL レシートの再起動後のリプレイ(data/receipts.jsonl または {tmpdir}/tr-replay-*/receipts.jsonl)、合成 BYO 受け入れデモ、汎用ドロップインデモ、ローカルオペレーターデスク、オプション C の封印済みシャドースキャフォールディング(自動昇格なし、エンゲージメントの差し戻し、必須決済フィールド)、およびオプション C のパイロット準備(マシンチェック、合成データの受け入れ、デスクの起動、pilot_started: false)を含む、基本原則のルールテストを実行します。
CI(.github/workflows/ci.yml)は、プルリクエストおよび main へのプッシュ時に npm ci、npm run typecheck、npm test を実行します。GitHub Pages は意図的に無効化されています。github.io の URL をテストの合格条件として扱わないでください。
npm run demo は、合成のシャドーデイを実行します。内容は Call-Fit、封印された反実仮想、人間によるオーバーライド、ハッシュチェーン付きレシート、軌跡の再ベースです。
ソフトウェア一覧
| 領域 | パス | ステータス |
|---|---|---|
| 正規 ID/イベント/モード | src/core/ | live-pure |
| 信頼度 ≠ 真実 | src/core/confidence.ts | live-pure |
| チェーン A/B/C/D | src/core/chains.ts | live-pure |
| 人間の権限 | src/core/human-authority.ts | live-pure |
| TradesCoherence、EvidencePacket、DecisionGate、ReceiptLedger、Shadow、Trajectory | src/inherited/ | live-pure |
| Call-Fit、経済性、CrossTrade、Chain D、従業員、Decision Fabric、分析 | src/domain/ | live-pure |
| コミュニケーション(イベントストリームチャネル) | src/domain/communications.ts | live-pure |
| 評価(品質ゲート付き) | src/domain/recognition.ts | live-pure |
| デイリーミッションボード | src/domain/mission-board.ts | live-pure |
| 再訪および保証のラベル | src/domain/call-class.ts | live-pure |
| 朝のミーティング+trainingNeeded | src/domain/huddle-board.ts | live-pure |
| 走行距離および運転パフォーマンス | src/domain/drive-miles.ts | live-pure |
| 従業員および部門のランキングボード | src/domain/performance-board.ts | live-pure |
| 共同作業および部門横断の提案 | src/domain/work-together.ts | live-pure |
| 従業員の摩擦率 | src/domain/friction.ts | live-pure |
| インバウンド品質レポート | src/domain/inbound-quality.ts | live-pure |
| アラートアクションのスタブ | src/desk/alert-actions.ts | live-pure |
| オプション C の開始ゲート | src/spine/option-c-start-gate.ts | live-pure |
| ローカルのポジションおよび監視ビュー | src/domain/local-positions.ts | live-pure |
| 価格表(ST シャドウ+現在/前回のコスト+LOCK) | src/domain/pricebook.ts | live-pure |
| トラック在庫数/フルフィルメント | src/domain/truck-stock.ts | live-pure |
| 天候/需要/月齢(実験的) | src/domain/weather-demand.ts | live-pure |
| メンテナンスの振り分け(需要優先) | src/domain/maintenance-routing.ts | live-pure |
| Property Intelligence v1.0 | src/domain/property-*.ts、neighborhood-*.ts、regional-recalibration.ts | live-pure |
| FragGate インバウンド | src/spine/fraggate-inbound.ts | live-pure |
| 永続的なレシート | src/spine/durable-receipts.ts | live-pure |
runAction() スパイン | src/spine/run-action.ts | live-pure |
| アクター/権限レジストリ | src/core/actor-registry.ts | live-pure |
| シャドウモード | src/core/shadow-modes.ts | live-pure |
| エンゲージメントルール(命令ではありません) | src/core/engagement-rules.ts | live-pure |
| 単一ブランチのシャドウ設定 | src/core/shadow-branch.ts | live-pure |
| 決済ハーネス | src/core/settlement-harness.ts | live-pure |
| ServiceTitan シャドウ(取り込み専用、書き戻しは承認ゲート経由) | src/spine/servicetitan-shadow.ts | live-pure |
| ProBooks シャドウ(取り込み専用、ピアからのインバウンド、書き戻しは承認ゲート経由) | src/spine/probooks-shadow.ts | live-pure |
| ローカル BYO インバウンドレイアウト | src/spine/inbound-layout.ts | live-pure |
| ローカルのインバウンド設定(クラウドアカウント不要) | src/spine/local-inbound-config.ts | live-pure |
| 汎用 trades-app ドロップイン | src/spine/drop-in.ts | live-pure |
| trades-app シャドウ(取り込み専用、書き戻しは承認ゲート経由) | src/spine/trades-app-shadow.ts | live-pure |
| ローカルの人間オペレーター用デスク(AZTrades シェルを含む) | src/desk/ | live-pure |
| AZTrades の現場時間(勤務、食事、運転) | src/desk/field-time.ts | live-pure |
| AZTrades の作業価格 | src/desk/job-price.ts | live-pure |
| SupplyHouse 公開 GET | src/desk/supplyhouse-public.ts | live-pure |
| AZTrades の物件カード | src/desk/property-card.ts | live-pure |
| AZTrades のローカルログイン | src/desk/local-login.ts | live-pure |
| AZTrades シェルのレンダリング | src/desk/aztrades-render.ts | live-pure |
| AZTrades のヒント設定 | src/desk/hint-prefs.ts | live-pure |
| 合成ドロップインデモ | src/demo/drop-in.ts | live-pure |
| ランタイム分離(インスタンスごとのレシート) | src/spine/runtime-isolate.ts | live-pure |
| 合成 BYO 承認デモ | src/demo/byo-admit.ts | live-pure |
| 合成シールドシャドウデモ | src/demo/shadow-sealed.ts | live-pure |
| オプション C のパイロット準備 | src/spine/option-c-prep.ts | live-pure |
| ローカルのヘルスカード | src/spine/health-local.ts | live-pure |
| フルフィルメントの状態機械 | src/domain/fulfillment-machine.ts | live-pure |
| ミッションボードの時計 | src/domain/mission-board.ts | live-pure |
| PI と作業の連携 | src/domain/property-jobs.ts | live-pure |
| §18 の凍結+v0.2 の規則 | src/rules/constitution.ts | live-pure |
| 書き込み権限(すべて/選択、autoApprove はオフ) | src/approvals/permissions.ts | live-pure |
| 承認ゲート(呼び出しごとの yes/no、1 回限り、有効期限付き、ハッシュチェーンログ) | src/approvals/gate.ts | live-pure |
| オペレーター設定の書き戻しバックエンド | src/approvals/backends.ts | live-pure(バックエンドは同梱されません) |
| 承認ゲート付き書き込みツールを備えたローカル MCP | src/approvals/local-mcp.ts | live-pure |
| ServiceTitan/ProBooks へのライブ書き込み | src/approvals/ | オペレーターの承認が必要。デフォルトではオフ。このリポジトリにはバックエンドが設定されていません。 |
承認ゲート付き書き込み
書き込みにはオペレーターの承認が必要です。デフォルトではオフです。
ツール呼び出しまたはアクションからランタイムが実行できるすべての書き込みは、src/approvals/gate.ts の単一のゲートを通ります。承認なしで書き込まれることはありません。
-
書き込みツールの呼び出しによって、ツール、対象、ペイロードの概要を記載した承認待ちリクエストが作成されます。この時点では何も書き込まれません。
-
ローカルの人間のオペレーターは、ループバックデスクの書き込み権限と承認パネル(
http://127.0.0.1:4174/#approvals-board)またはターミナルから、はいまたはいいえで回答します。npm run approvals # list pending requests npm run approve -- <id> yes # run that one call once npm run approve -- <id> no # refuse it; the refusal is recorded -
「はい」と回答すると、その呼び出しが一度だけ実行されます。承認は使い切りです。保留中のリクエストは
approvalTtlSeconds(デフォルトは900)を過ぎると期限切れになります。期限切れの承認は失敗します。 -
すべてのリクエスト、拒否、判断、期限切れ、結果が
data/runtime/<instanceId>/approvals.jsonlに追記されます。このファイルは、既存の永続レシートストア(src/spine/durable-receipts.ts)を基盤とするハッシュチェーンです。認証情報が書き込まれることはありません。 -
リクエストしたユーザーが、自分のリクエストを承認することはできません。ローカル MCP に承認または拒否のツールはありません。デスクの承認/拒否エンドポイントと設定エンドポイントはループバックからのみ利用できます。デスクページに埋め込まれたプロセスごとのデスクトークンが必要です。また、
mcp-session-idを含むリクエストや、クロスオリジンのブラウザーリクエストは拒否されます。
権限設定
設定は、デスクパネル、data/runtime/<instanceId>/permissions.json(data/runtime/permissions.json.exampleをコピー)、およびnpm run permissionsにあります。
| モード | 動作 |
|---|---|
selected(デフォルト) | 選択した権限だけが有効になります。デフォルトではselectedで何も選択されていないため、読み取り専用と同じです。 |
all | すべての書き込み権限が有効になり、各呼び出しで引き続き、はいまたはいいえを確認します。autoApprove: trueも設定した場合に限り、確認を省略します。 |
autoApproveはデフォルトでオフで、allモードでのみ機能します。selectedモードでは無視されます。有効にすると、許可された書き込みは呼び出しごとの「はい」または「いいえ」の確認なしで実行されますが、各書き込みは引き続きログに記録されます。
npm run permissions # show current settings
npm run permissions -- --enable field_events.write # selected mode: turn one on
npm run permissions -- --disable field_events.write
npm run permissions -- --mode all # every permission on, still asks per call
npm run permissions -- --mode all --auto-approve on # no per-call prompt (off by default)
各権限は、このリポジトリ内の実際の書き込み先に対応しています。
| 権限 | ツール | 書き込み先 |
|---|---|---|
servicetitan.writeback | trades_runtime_servicetitan_writeback | ServiceTitan API。オペレーターが設定したローカルバックエンド経由のみ |
probooks.writeback | trades_runtime_probooks_writeback | ProBooks API。オペレーターが設定したローカルバックエンド経由のみ |
tradesapp.writeback | trades_runtime_tradesapp_writeback | 別の業務アプリのAPI。オペレーターが設定したローカルバックエンド経由のみ |
alerts.ack | trades_runtime_alert_ack | ローカルデスクのアラート(alert-state.json)を確認済みにします |
field_flags.write | trades_runtime_field_flag_raise | field-flags/配下のローカルフィールドフラグ |
field_events.write | trades_runtime_field_event_record | field-events.jsonl内の出退勤、食事、または運転イベント |
オフになっている権限を使用すると、明確な拒否が返され、その拒否がログに記録されます。
ジョブ料金、出退勤イベント、フラグ、対応状況の切り替え、アラートの確認など、デスク自体のボタンは、オペレーターがこのマシン上で直接操作するため、ゲートを通りません。ゲートの対象はツール呼び出しとエージェントのアクションです。
書き戻しバックエンドと認証情報
このリポジトリには、バックエンドも認証情報も同梱されていません。コミット済みカタログでは、live_backends は false のままです。ServiceTitan、ProBooks、または業務アプリへの書き戻しは、次の両方を満たす場合にのみ実行されます。
- オペレーターが自身のマシンに
data/runtime/<instanceId>/write-backends.jsonを作成していること(data/runtime/write-backends.json.exampleをコピーしてください)。ここには https のbaseUrlと環境変数の名前を記載します。シークレット自体は記載しません。トークンの直接記載は拒否されます。 - オペレーターが、その呼び出しを承認していること。
それ以外の場合、呼び出しは no-backend-configured を返し、何も書き込みません。ベンダーエラーは vendor-error として報告されます。どちらも成功として扱われることはありません。リクエストの形式(method、path、body)は、指定どおりにベンダーへ渡されます。このリポジトリは、実稼働の ServiceTitan または ProBooks テナントに対してテストされていません。
ローカル MCP
npm run desk は、POST http://127.0.0.1:4174/mcp でループバック接続のみの JSON-RPC MCP も提供します。stdio クライアントから接続するには、次のようにブリッジできます。
TRADES_RUNTIME_URL=http://127.0.0.1:4174 npm run mcp
tools/list では、書き込みツールに requiresApproval: true、permission、permissionEnabled が含まれます。これを呼び出すと { "status": "pending", "approvalId": ... } が返されるか、権限が無効な場合は拒否されます。trades_runtime_approvals_list と trades_runtime_approval_status は読み取り専用です。公開されている配布用 Worker(trades-runtime.vibelock.workers.dev)は読み取り専用のままです。テナントデータを保持していないため、書き込むデータもありません。
これは Field 1.0 または Office Softwares 1.0 を謳うものではなく、パイロットを開始するものでもありません。pilot_started は false のままです。
BYO inbound(TR-BYO-2026-09-17)
各ユーザーは、自分自身の ServiceTitan と 自分自身の ProBooks を、自分自身のローカルランタイムに取り込みます。作成ノード/GitHub はデータ管理者ではありません。中央へのデータダンプはありません。ホストされたアップローダーはありません。ホームへの通信もありません。
そのマシン上でのローカル取り込み(内容は gitignore の対象です):
data/inbound/servicetitan/— ユーザーが配置する ST エクスポートまたは読み取り専用の取得データdata/inbound/probooks/— ユーザーが配置する ProBooks の帳簿/項目/コスト/ベンダーファイルdata/inbound/trades-app/— その他のフィールドサービス/作業/価格表/顧客/予約のエクスポートデータ。名前付きプロファイル:Jobber、Housecall Pro、Service Fusion、QuickBooks 形式の帳簿、ServiceM8、AccuLynx、SuccessWare、Xero、FieldEdge、ServiceTrade。フィンガープリントが一致しない場合は汎用 CSV/JSON を使用します。data/runtime/<instanceId>/receipts.jsonlとledger.jsonl— ランタイムインスタンスごとに分離します
data/tenants/ は使いません(この語は、ホスト型のマルチテナントサービスを想起させるためです)。任意のローカル設定には、パスまたは読み取りエンドポイントのヒントのみを記載できます。クラウドアカウントは不要であり、ランタイムがそれらのヒントを呼び出すこともありません。トークンはユーザーのマシンまたはユーザー専用の封印された保管庫に保持されます。
FragGate の第一級 sourceKind 値:servicetitan(MEDIUM、ハッシュ化済み、live:false、write:false)、probooks(同様)、trades-app(同様、汎用クラス)、operator-file(出所が servicetitan、probooks、または trades-app とタグ付けされるまでは LOW。それでも正しい情報とは限りません)、human(Chain C 上で、アクター ID を伴う管理者の修正)。ラッパーは検証済みとは異なります。スクレイピング、中央へのデータダンプ、ホストされたアップロード、および VERIFIED へのサイレントな昇格は拒否されます。
汎用ドロップイン(TR-DESK-2026-09-25)
ServiceTitan と ProBooks は、引き続き同格のクラスとして扱われます。3 つ目の受信クラス trades-app では、ベンダーごとに新しい書類を用意することなく、同じ種類のエクスポートを取り込めます。このドロップインは JSON/CSV の形式を判別し、マッピングプロファイルを適用します。0.4.1 では、キー、ヘッダー、またはファイル名が一致する場合、名前付きプロファイルを優先します。対象は Jobber、Housecall Pro、Service Fusion、QuickBooks Online、QuickBooks Desktop、ServiceM8、AccuLynx、SuccessWare、Xero、FieldEdge、ServiceTrade です。それ以外の場合は、汎用 JSON または汎用 CSV を使用します。ServiceTitan または ProBooks の形式と判別されるファイルは、引き続きその同格クラスで扱われます。ServiceM8、SuccessWare、ServiceTrade のファイルは、各プラットフォームコネクター経由で取り込まれるようになったため、それぞれに経路は 1 つだけです(data/inbound/README.md を参照)。TR-VENDOR-2026-09-25 を参照してください。
npm run drop-in:demo
このデモでは、test/fixtures/byo/ から合成フィクスチャーを一時的な受信ツリーにコピーし、FragGate 経由で取り込み、パケットをハッシュ化し、一時的な隔離レシートを書き込み、書き込み処理が引き続き例外を発生させることを確認します。これは顧客データのダンプではありません。
実際のエクスポートは、gitignore 対象のドロップフォルダーに保存してください。data/inbound/local.json(local.json.example からコピー)には、パスと読み取りエンドポイントのヒントを指定できます。ヒントは運用担当者向けの説明です。このプロセスがヒントを使ってデータを取得することはありません。
プラットフォームの同格クラス(TR-PLATFORMS-2026-10-19)
Jobber、Housecall Pro、Square、QuickBooks Online、FieldEdge、Service Fusion、そして(第 2 波、TR-PLATFORMS-2-2026-10-19)Successware、Workiz、ServiceTrade、BuildOps、FieldPulse、Kickserv、mHelpDesk、ServiceM8、Simpro、Commusoft、Wintac は、第一級の受信同格クラスです。Successware はオーナーが指定しました。その他の 10 種は、公開情報の調査(Software Advice 2026 plumbing list、独立した HVAC dispatch ranking、ベンダーの開発者向けドキュメント)をもとに選定しており、利用状況データに基づくものではありません。市場シェアについては主張していません。それぞれの選定理由と情報源は src/spine/platforms/catalog-wave2.ts に記載されています。各プラットフォームには専用フォルダー data/inbound/<kind>/ があります。そのフォルダーに JSON または CSV のエクスポートを置くと、ベンダーのドキュメントに記載されたオブジェクト名にマッピングされ、MEDIUM、未検証、live: false として取り込まれます。
npm run pull -- <platform> を実行して、自分でデータを取得することもできます。これは、ベンダーのドキュメントに記載された公開 API に対する読み取り専用の呼び出しです。トークンを保持する環境変数の名前は data/inbound/local.json に記載されています。認証情報は、リポジトリ、Pages、Worker のいずれにも保存されません。
| プラットフォーム | モード | 理由 |
|---|---|---|
| Jobber | ファイルドロップ+ドキュメント化された API の取得 | 公開 GraphQL API(X-JOBBER-GRAPHQL-VERSION)。 |
| Housecall Pro | ファイルドロップ+ドキュメント化された API の取得 | 公開 REST API。ベンダーは MAX プランで提供しています。 |
| Square | ファイルドロップ+ドキュメント化された API の取得 | 公開 REST API(顧客、支払い、請求書、予約、チーム)。Square にはジョブオブジェクトがないため、作り出していません。 |
| QuickBooks Online | ファイルドロップ+ドキュメント化された API の取得 | 公開 Accounting API クエリエンドポイント。 |
| Service Fusion | ファイルドロップ+ドキュメント化された API の取得 | 公開 REST API。ベンダーは Pro プランで提供しています。 |
| FieldEdge | ファイルドロップのみ | API の利用にはパートナープログラムへの参加が必要なため、取得機能は含まれていません。 |
| Workiz | ファイルドロップ+ドキュメント化された API の取得 | https://api.workiz.com/crm/api の公開 REST API v2(Bearer キー、Developer API アドオン)。 |
| ServiceTrade | ファイルドロップ+ドキュメント化された API の取得 | 公開 REST API(OAuth2 bearer)。 |
| FieldPulse | ファイルドロップ+ドキュメント化された API の取得 | 公開 REST API(x-api-key、トークンは FieldPulse サポートから取得)。 |
| ServiceM8 | ファイルドロップ+ドキュメント化された API の取得 | 公開 JSON REST API(X-API-Key)。 |
| Simpro | ファイルドロップ+ドキュメント化された API の取得 | ビルドごとの公開 REST API。ビルド URL と会社 ID を設定します。 |
| Commusoft | ファイルドロップ+ドキュメント化された API の取得 | 公開 REST API v2(Bearer キー)。再訪問ジョブは親ジョブにリンクします。 |
| Successware | ファイルドロップのみ | 公開 API ドキュメントはなく、連携はパートナー経由のみです。 |
| BuildOps | ファイルドロップのみ | API ドキュメントの閲覧には招待が必要です。 |
| Kickserv | ファイルドロップ+ドキュメント化された API の取得 | XML REST API(従業員 API トークンによる Basic 認証、Premium プラン)。依存関係のない小規模なリーダーで読み込みます。 |
| mHelpDesk | ファイルドロップのみ | 公開 API は見つかっていません。 |
| Wintac | ファイルドロップのみ | デスクトップソフトウェア。CSV にエクスポートします。 |
各プラットフォームには、マッピングの信頼度も設定されています:documented、partial、guessed。documented:FieldEdge、Workiz、ServiceTrade。partial:FieldPulse、Kickserv、mHelpDesk、Simpro、および今回再確認していないプラットフォーム。guessed:Successware、BuildOps、Wintac。デスクのプラットフォーム一覧では、実際の店舗のエクスポートデータで確認が必要なマッパーが示されます。ソースと詳細は data/inbound/README.md にあります。
店舗のエクスポートデータは各店舗から提供されます。このリポジトリには含まれていません。独自のエクスポートデータを data/inbound/<kind>/ に配置し、npm run mapping:check -- <kind> <file> を実行してください。一致したフィールド、一致しなかったフィールド、必須フィールドの不足を報告し、スターター用のオーバーライドを data/runtime/<instanceId>/mappings/<kind>.json に書き込みます。このファイルはローカルに保存され、gitignore の対象です。また、組み込みマッパーより優先されます。推測によるマッピングは、このリポジトリではなく、提供されたエクスポートデータで確認してください。data/inbound/README.md の「独自のエクスポートデータ」を参照してください。
これらはすべてフィクスチャのみを使ってテストされています。実稼働テナントではテストされていません。 各プラットフォームの <kind>.writeback は承認ゲートを通ります。デフォルトでは無効で、呼び出しごとに「はい」か「いいえ」を尋ねます。バックエンドが設定されていない場合は、no-backend-configured を返します。実際には起きていない成功を報告することはありません。プラットフォームの一覧を表示するには npm run platforms を実行してください。
現地コンプライアンス、売上、運用モジュール(TR-MODULES-2026-10-19)
各モジュールはローカルファイル data/runtime/<instanceId>/<module>.json(gitignore 対象。例は data/runtime/*.json.example)と、データをすでに含んでいる受け入れ済みの受信行を読み取ります。各モジュールには http://127.0.0.1:4174/ のデスクパネル、JSON ルート、ローカル MCP 上の読み取りツールがあります。書き込みにはそれぞれ専用の権限が必要で、呼び出しのたびにオペレーターの承認が必要です。
| モジュール | デスクルート/読み取りツール | 書き込み権限 |
|---|---|---|
| 冷媒ログ(EPA 608 / AIM Act) | /api/refrigerant · trades_runtime_refrigerant | refrigerant.write |
| 許可証と検査 | /api/permits · trades_runtime_permits | permits.write |
| 保守契約 | /api/agreements · trades_runtime_agreements | agreements.write |
| メーカー保証請求 | /api/warranty-claims · trades_runtime_warranty_claims | warranty_claims.write |
| トラック在庫と翌日の予定 | /api/truck-stock · trades_runtime_truck_stock | truck_stock.write |
| 再訪問の根本原因 | /api/callbacks · trades_runtime_callbacks | callbacks.write |
2026-10-19 に eCFR で確認した冷媒の規則:
- 漏えい率は 40 CFR 82.152 に基づいて計算します。
- 第 608 条の漏えい修理要件は、充填量が 50 lb 以上の ODS 冷媒を対象とします(40 CFR 82.157)。
- AIM Act の規則は、2026-01-01 以降、充填量が 15 lb 以上の HFC 冷媒を対象とします。住宅用および小規模商業用の空調設備は対象外です(40 CFR 84.106)。
- 発動基準となる率は、商業用冷凍設備が 20%、産業プロセスが 30%、快適性冷房およびその他の機器が 10%です。
これは記録管理の補助ツールです。EPA への届出ではなく、法律上の助言でもありません。
各モジュールでは数値を推定しません。
- リスク対象売上には、店舗が提供した価格のみを使用します。各契約に設定された価格、または任意のプラン価格表(
settings.planPrices)が対象です。どちらもない契約は価格不明として数えます。例示価格は実在しない仮の値です。 - 保証請求の期限が表示されるのは、店舗が期限を入力した場合のみです。
- 一度も数えられていないバンの在庫はゼロではなく、不明として扱います。
- 再訪問と元の作業が関連付けられるのは、明示的な参照がある場合のみです。
live_backends と pilot_started は、どちらも false のままです。
オペレーター用デスク
デスクは人間が操作するための画面です。公開 Worker MCP は、この UI を持たない読み取り専用のブリッジのままです。オペレーターのマシンでは、デスクのループバック POST /mcp を通じて、エージェントが書き込みを要求できます。書き込みにはオペレーターの承認が必要です。デフォルトでは無効です。承認が必要な書き込みを参照してください。
npm run desk
# http://127.0.0.1:4174/
npm run shadow:field と npm run shadow:office は、同じデスクのスナップショットをローカルでシャドー読み取りした結果をそれぞれ出力します。どちらのコマンドもデスクのページも、data/runtime/<instanceId>/field-events.jsonl(出勤、退勤、食事休憩開始、食事休憩終了、帰宅時の移動時間)と、data/runtime/<instanceId>/job-prices.json の作業価格レコード(入力された部品コスト、作業費、作業料金、利益率、固定割引)を読み取ります。別のイベントログは保持しません。このデスクの AZTrades シェルは Local Softwares 専用です。live_backends false。pilot_started false。Field 1.0 ではありません。Office Softwares 1.0 ではありません。ServiceTitan、Jobber、その他の BYO プロファイルは読み取り専用で取り込みます。書き込みにはオペレーターの承認が必要です。デフォルトでは無効です。SupplyHouse は、番号が返される場合に公開 GET を実行します。利用できない場合(403 または番号が返されない場合)も、入力されたコストは保持されます。注文経路はありません。この読み取り処理で価格を捏造することはありません。その他の名前付きサプライヤーは、許可されたアカウントが追加されるまで空のままです。不動産カードは会社の履歴専用です。許可された情報源が接続されるまで、Zillow、Redfin、郡の査定官とは接続されません。ローカルログインでは、最初のユーザーは承認されます。それ以降のユーザーには、より上位の承認が必要です。このシェルから ServiceTitan または Jobber への書き戻しは行いません。
127.0.0.1 のみにバインドします。ページには、ジョブ/完了チャート、稼働容量チャート、ミッションボード、技術ボード、朝のミーティング、履行の進捗、アラート、スコアが表示されます。コールバックの電話、保証に関する電話、未分類のカテゴリは、指標とミッションボードに表示されます。各電話の行には、エクスポートにラベル名が記録されている場合は分類理由が表示され、エクスポートに記載がない場合は未分類と表示されます。ページ、/api/snapshot、/api/view、/api/receipt、SSE ストリームでは、?calls=callback、?calls=warranty、?calls=not-classified で絞り込めます。/api/calls/week.json は、職種別の直近1週間のコールバック率です。/api/huddle は朝のミーティングを出力し、/api/huddle.json は同じボードを JSON で出力します。ミーティングでは、手順の観察記録から trainingNeeded(深刻度と理由)を示します。これはスキルスコアではありません。部品コスト、部門の対応状況、トラック台数も同じページに表示されます。/api/stock は車載在庫と倉庫在庫の数を読み込みます。走行距離と運転パフォーマンスは、従業員および部門のパフォーマンスを順位付けしたボードの隣に表示されます。/api/drive と /api/performance は、それらのボードを出力するループバック JSON エンドポイントです。任意の走行距離ファイルは data/runtime/<instanceId>/drive-miles.json または data/inbound/drive-miles.json です。ローカルエクスポートが取り込まれた後にファイルが存在しない場合、値は不明のままです。フォルダーが空の場合、デスクには合成デモが表示されます。このデモは会社のエクスポートでもテレマティクスフィードでもありません。順位はスキルスコアではなく、trainingNeeded も設定しません。GPS ベンダーを使用しているとは主張しません。Work together には、Chain D、職種横断、評価フラグから得られた肯定的な連携が表示されます。また、必要に応じてサービス技術者同士でペアを組むか引き継ぎを行う相手や職種、ならびに設置作業についても示します。/api/work-together はそのボードです。従業員の摩擦率は、同じパフォーマンスボードと /api/friction に表示されます。このマシン上で、引き継ぎの失敗、連携フラグ、明示的なコールバック、引き継ぎの遅延を数えます。エクスポートに記載がない場合、値は不明のままです。摩擦度の順位1位は、既知の摩擦度が最も高いことを意味し、パフォーマンスが最も高いことを意味しません。これはホスト型の人事システムではなく、trainingNeeded も設定しません。これらのルートはこのマシン上にとどまります。各スコアとペースの区分には、簡潔な理由が含まれます。このマシン上で、現在のアラートルールへの該当結果を /api/alerts/digest.json から JSON で、/api/alerts/digest.csv から CSV でエクスポートできます。ブロックがある場合、/api/receipt は予約をブロックした要因を出力し、何もブロックしていない場合はその旨を示します。TR-DESK-POLISH-2026-09-25 では、余白と文字の調整、このブラウザーに保存されるライト/ダークテーマ(trades-desk-theme)、職種別ビュー、および /api/receipt から印刷できるスナップショットを追加します。職種別ビューには枠数が表示されます。エクスポートに職種トークンが記録されている場合は、その職種トークン(hvac、plumbing、electrical、sewer、cross-trades)が表示されます。都市名は職種として扱いません。地図は描画されません。スナップショットは、オペレーターが印刷または PDF として保存できる HTML です。ローカルのレシート識別子を記載しますが、レシート本文は含みません。このページから外部に情報が送信されることはありません。スコアには、ミッションのペース、エビデンスの信頼度区分、検証状態(UNVERIFIED)、recommendBlock が使用されます。BYO のファイル投入時は予測信頼度を表示しません。記録された合成シャドーデイの信頼度は、フィクスチャとしてラベル付けされた合成デモでのみ表示されます。inbound フォルダーが空の場合は、合成デモが表示されます。ファイルを投入すると、次の SSE ティック(約2秒後)で更新され、ラベルは BYO-admitted に切り替わります。すべてのファイルで synthetic: true が宣言されている場合は、BYO-admitted synthetic drill に切り替わります。
ローカルアラートルール(TR-ALERTS-2026-09-25)
同じスコアがローカルのしきい値を決定します。稼働枠(レーンが存在する場合のみ)、遅延ジョブ(ミッションの時間に対する未完了行)、信頼バンド(エビデンス信頼度の下限、またはこのマシン上で記録された低下)、予約ブロック(recommendBlock)、検証停滞(最も古い観測から N 分間、検証スコアが UNVERIFIED または CONFLICTED のまま)です。精度の割合は計算されません。時計がない場合、停滞を作り出すことはありません。BYO デスクで稼働枠が空欄でも、稼働率の割合を作り出すことはありません。
data/runtime/alerts.json.example を data/runtime/<instanceId>/alerts.json にコピーします(gitignore 対象)。data/inbound/local.json では alertsPath または alerts オブジェクトを設定できます。デスクのバナーには未確認のルールが表示されます。アラートパネルには有効なルール、履歴、確認操作が表示されます。確認は 127.0.0.1 上でのローカル POST で、書き込まれるのは alert-state.json のみです。オプションのフックはローカルの JSONL ファイルに追記するか、ループバック(127.0.0.1、localhost、::1)に POST します。それ以外のホストへの Webhook は拒否されます。ホームへの通信はありません。
受信データの品質、アラートのスタブ、Option C の開始ゲート(TR-QUALITY-2026-09-27)
/api/inbound-quality と /api/inbound-quality.txt は、このマシン上にすでにある ServiceTitan と ProBooks の断片データを評価します。デスクでは、ローカルレポートに基づいて sourceKind ごとのボリューム、チェックリストスコアの分布、上位の欠陥クラスをグラフ表示します。フォルダーが空の場合は、合成フィクスチャであることを明記して使用します。チェックリストは精度の割合ではなく、ライブテナントからデータを取得するものでもありません。ファイルは data/runtime/<instanceId>/inbound-quality.json、.txt、.jsonl に保存されます。
/api/alert-actions はスタブのみを返します。発火したアラートは、ラベル、根拠、必要な人間の権限、および refused: write-back に展開されます。「Human Authority Rule」はパネル上に表示されます。スタブが ServiceTitan や ProBooks を呼び出すことはありません。
/api/option-c-start-gate は開始条件を一覧表示します。すべてのゲートは blocked-until のままです。Option C は、人間のオペレーターが実際のパイロットを開始するまで準備段階のままです。Option D は対象外です。切り替えはありません。出荷されるカタログでは pilot_started は false のままです。live_backends も false のままです。パネルからパイロットが開始されることはありません。
/api/monitoring は、ローカルまたはデモの技術者とトラックのピン、タイムカード、カバレッジのリブマップ、適任技術者の提案、運転スコアカード、技術者スコアカード、ディスパッチ形式のコールボード、KPI グラフをまとめて表示するデスクビューです。ピンの情報源は data/runtime/<instanceId>/positions.json、data/inbound/positions.json、またはローカルの走行距離ファイルからコピーした座標です。data/runtime/positions.json.example をコピーします。フォルダーが空の場合は、合成デモであることを明記して表示します。拒否されたファイルがそのデモに置き換えられることはありません。走行距離の合計では引き続き座標は無視されます。住所マップは描画されないままです。ライブ GPS フィードでも、テレマティクスベンダーでもありません。ローカルファイルの変更時にビューが再計算されます。監視のみです。「Human Authority Rule」は引き続きパネル上に表示されます。ServiceTitan や ProBooks への書き戻しはありません。
/api/time-tracking はローカルの時間ボードで、現在のコールにおける記録済み時間、経過時間、推定残り時間、待機または移動の区間を表示します。data/runtime/time-cards.json.example を data/runtime/<instanceId>/time-cards.json または data/inbound/time-cards.json にコピーします。デスクは data/runtime/<instanceId>/ に time-tracking.json と time-tracking.jsonl を書き込みます。ローカルエクスポートが受け入れられた後にファイルが見つからない場合、空のままになります。フォルダーが空の場合、デスクには合成デモであることが表示されます。このデモは会社のタイムレコーダーでも GPS フィードでもありません。
/api/coverage は、オン/オフの切り替え機能を備えた郵便番号、郡、市、道路または高速道路の一覧です。data/runtime/coverage.json.example を data/runtime/<instanceId>/coverage.json または data/inbound/coverage.json にコピーします。切り替え状態は、このマシン上の coverage-layers.json(POST /api/coverage/layers)に保存されます。件数は、そのローカルファイルにある場所、ジョブ、技術者の数です。ライブの地図タイルを提供するベンダーではありません。住所マップは描画されないままです。
/api/right-tech(および /api/tech-fit)は、位置情報、推定残り時間、スキルの適合度に基づき、受付中または予定済みの作業に適した技術者を順位付けします。任意で ?job= を指定できます。提案のみで、自動割り当てや書き戻しは行いません。移動の負担や、遠方への移動にかかる時間が長い場合はフラグで示します。地理的な条件だけを判断基準にするわけではありません。
運用担当者は、ボード、メトリクス、KPI、技術者、スコア、チャート、レーン、アラート、通話列、ミッション指標の表示を切り替えられます。すべての項目は初期状態でオンです。設定はこのブラウザーの trades-desk-view に保存され、マシンの外部には送信されません。TR-DESK-VIEW-2026-09-27。
同じページは約375pxの幅でも利用できます。固定表示のドメインナビゲーションから、各ボードに移動できます。ヘッダーリンク、モニターチャート、幅の広いテーブルは、ページの幅を広げず、ページ内でスクロールします。テーマ、フィルター、確認、スタブの開示、印刷、およびすべての input、select、textarea の高さは44px以上で、セーフエリアの余白も確保されています。ウィンドウ幅が広い場合のSoftwaresカードグリッドは変更されていません。テナント向けのデータ入力フォームは引き続きありません。TR-MOBILE-DESK-2026-09-27。公開Workerカードはこの変更の対象外です。
公開Workerでは、インストール手順として npx tsx src/cli.ts desk と /local-desk を案内することがあります。デスク、アラートフック、テナントメトリクスはホストしません。このリポジトリはWorkerをデプロイしません。
npm run byo:admit-demo は、test/fixtures/byo/ にある合成フィクスチャを使った運用担当者向けソフトウェアの検証です。これらのフィクスチャを一時的な受信ディレクトリにコピーし、FragGateを介して servicetitan と probooks として受け入れ、パケットをハッシュ化し、一時的な data/runtime/<id>/ の下に分離された受領記録を書き込み、ハッシュを出力します。また、ラッパーがVERIFIEDではないこと、およびST/ProBooksへの書き込みが引き続き例外を発生させることを検証します。これは顧客データのダンプではありません。作成者のノードはデータ管理者ではありません。
実際のユーザーエクスポートは、そのユーザー自身のマシンにある data/inbound/{servicetitan,probooks,trades-app}/ にのみ保存します(.gitkeep を除き、gitignoreの対象です)。
継承した名称の参照元は、specs/aziel-runtime-inheritance.txt のみです。aziel-runtime Softwaresを丸ごとコピーしたものではありません。
Ladder(正直な現状)
| オプション | 意味 | 状態 |
|---|---|---|
| A | マージのみ | 完了 |
| B | ローカルの基盤 | ソフトウェアで完了 |
| C | 1 ブランチのシャドー運用 | コード準備完了/パイロット未開始 |
| D | アドバイスロックのパイロット | 未開始 |
オプション C のソフトウェアは存在します(名前付きブランチ、エンゲージメントルール、封印された精算ハーネス、合成デモ)。これは企業や現場でのパイロットではありません。GM に会社の OS が稼働中だと伝えてはいけません。オプション C を、稼働中の企業パイロットであるかのように偽ってはいけません。オプション D はまだ NO です。
TR-OPTION-C-PREP-2026-09-25 は、オペレーターボックスのチェックリストです。ローカルインストール、受信ドロップフォルダー、設定例、合成データの受け入れ、デスクとアラート、SHADOW-SEALED の想定事項、書き込み拒否の証明、禁止事項を含みます。npm run pilot:prep はこれらのチェックを実行し、結果を出力します。ready: true は、そのマシンがチェックに合格したことを意味します。この結果によって pilot_started が true になることはありません。このコマンドは、企業の実データに対して封印された日次処理を開始せず、ServiceTitan、ProBooks、または業務アプリに書き込みません。
TR-OPTION-C-PILOT-RUNBOOK-2026-10-02 は、出荷済みのコマンドで実際のパイロットを開始する方法です。prep が正常に完了したら、オペレーターボックス上の担当者が npm run pilot:start -- --branch <branchId>(CLI pilot-start)を実行します。名前付きブランチが 1 つ必要です。このコマンドは prep のチェックを再利用します。ブランチがない場合や無効な場合、prep の準備が整っていない場合、または受信データが空か合成データのみの状態で --claim-company が指定された場合は、実行を拒否します。成功すると、その分離環境に限り data/runtime/<instanceId>/pilot.json と receipts.jsonl の 1 行を書き込みます。出荷済みカタログ、デフォルトのヘルス状態、glama.json、および配布用 Worker のピンは、pilot_started が false のまま 1.0.0 を維持します。モードは SHADOW-SEALED のままです。live_backends は false のままです。書き込みにはオペレーターの承認が必要で、デフォルトでは無効です。モードを明示的に変更しても、パイロットは開始されません。結果には、これは稼働中の企業 OS でも、Field 1.0 でも、Office Softwares 1.0 でもないと記載されます。このドキュメントをマージしても、パイロットは開始されません。人間が、prep の準備が整った実際のブランチでコマンドを実行する必要があります。TR-PILOT-START-2026-10-02 は、コマンドを出荷した際のカットです。このリポジトリは Worker をデプロイせず、リリースもしません。
引き続き人間/オペレーターのみが対応する項目は、先方のボックスでの実際の ServiceTitan 経路、名前のある GM、そして先方の実データに対する封印された日次処理です。オーサリングノードはそのデータダンプを保持していません。prep の結果は、そのパイロットではありません。
公開配布用 Worker
オペレーターの承認を受けた公開インターフェースは Cloudflare Worker です。
https://trades-runtime.vibelock.workers.dev
Worker スクリプト名:trades-runtime(aziel-runtime.vibelock.workers.dev と同じ vibelock の workers.dev アカウントパターン)。ソース:workers/giveaway/。
内容:
- この VibeLock ホスト上の人間向け配布 UI(ブラウザー/PWA):正直さ、引用、MCP、スキル、統計を提供し、最初にダウンロードしなくても利用できます
- 任意でダウンロード数を計上する Apache-2.0 tarball(
GET /download。検証済みの gzip 200 の後にのみカウントを増やします) /local-deskはローカルのnpx tsx src/cli.ts deskインストールを案内します。テナントの指標や稼働中の企業ボードはホストしません- AI クライアント向けの薄い読み取り専用
/openapi.jsonとPOST /mcp(health/stats/cite/skill のみ) - Growth-ON のクロール用エンドポイント:
/robots.txt(完全な Allow + Content-Signal)、/sitemap.xml、/ai.txt、/humans.txt、/.well-known/mcp.json、/person.jsonld、/graph.jsonld - Glama/Claude Desktop/Cursor 向けの stdio MCP ブリッジ:
npm run mcp→cli/mcp-stdio.mjs(Worker のPOST /mcpに転送) - 正直な Workers KV カウンター(
COUNTS):viewsとdownloadsは 0 から始まり、成功した 200 レスポンスでのみ増加します。サンプリング、初期値の設定、水増しはありません
デプロイ(オペレーター/wrangler 認証済みのボックス)
このリポジトリでは Worker をデプロイしません。vibelock アカウントで初めて実行する場合:
npm ci
npm test
cd workers/giveaway
npm ci
npx wrangler kv namespace create COUNTS
# paste the printed id into wrangler.jsonc kv_namespaces[0].id
npm run pack
npx wrangler deploy
以降はリポジトリのルートからデプロイします:
npm run giveaway:pack
cd workers/giveaway && npx wrangler deploy
ローカルでのスモークテスト(Miniflare KV、Cloudflare 認証不要):
npm run giveaway:pack
cd workers/giveaway
npx wrangler dev
# GET http://127.0.0.1:8787/ /download /v1/health /v1/stats /robots.txt /sitemap.xml /ai.txt
カウンターについては、workers/giveaway/README.md をご覧ください。
Glama(Install Server パック)
掲載先として想定している場所:Glama で試す
エージェントや人が見つけられるよう、掲載 URL を記載しています。Glama がインデックス化し、stdio プロセスをホストするために必要なのは Git パック(glama.json + Dockerfile + cli/mcp-stdio.mjs)です。この Git ツリーだけで Install Server が LIVE だとは主張していません。 手順については、docs/GLAMA.md をご覧ください。
Glama の TDQS スコアをでっち上げないでください。掲載中の Latest は依然として 1.0.0-local を計測しており、リポジトリ内の Softwares cite tip 1.0.0 とは一致しません。追いつき対応は保留中です。この差は Field 1.0 でも Office Softwares 1.0 でもありません。
2026-10-02 確認:Glama の Latest/releaseVersion は 1.0.0-local です(https://glama.ai/mcp/servers/@AzielEliab/trades-runtime の latestRelease.version)。公開バッジは依然として 1.0.0-local で、リポジトリ内の Softwares cite tip 1.0.0 とは一致しません。追いつき対応は保留中です。Official MCP Registry も依然として 1.0.0-local を計測しています。このリリースでは再公開しません。ローカルの Softwares 1.0。この差は Field 1.0 の主張でも Office Softwares 1.0 でもありません。glama.json のバージョンはリポジトリ内の主張ファイル(1.0.0)であり、公開バッジの 1.0.0-local とはまだ一致していません。追いつき対応は保留中です。このリポジトリ内の Worker ソースは 1.0.0 です。giveaway Worker のバージョン固定値は 1.0.0 です。2026-09-28 確認:すでに稼働中の Worker は依然として 0.4.12 です。このリリースではデプロイも Make Release も行いません。pilot_started false。live_backends false。
ローカル/Docker:
npm run mcp
# or
node cli/mcp-stdio.mjs
docker build -t trades-runtime-mcp .
docker run --rm -i trades-runtime-mcp
Pages(意図的に無効)
GitHub Pages は意図的に無効にしています。.github/workflows/pages.yml はありません。Pages のデプロイワークフローを追加しないでください。リポジトリで Pages を有効にしないでください。github.io の URL を稼働中の製品の公開先として扱わないでください。
ソフトウェアは自由にクローンできます。GitHub Pages は無効のままです。Pages を有効にしないでください。docs/ の下に PDF を追加しないでください。すでに Worker がデプロイされている場合、ブラウザー UI は https://trades-runtime.vibelock.workers.dev です。このリポジトリではその Worker をデプロイしません。計数対象の tarball は任意です。
ローカル UI のプレビュー(Pages は無効のまま):
python3 -m http.server 4173 --directory docs
機械可読カタログ:docs/v1/runtime.json。モジュール UI:/modules/。
これは何ではないか(§1.2)
単純なディスパッチ最適化ツールではありません。収益をスキルとして順位付けするリーダーボードではありません。固定された朝のルート計画ツールではありません。人間の判断をひそかに覆す自律型のブラックボックスではありません。不正行為の証拠としての写真ではありません。燃料優先ではありません。30 日後に自動で折り返し連絡のペナルティを課すものではありません。PDF ポータルではありません。
ライセンス
Apache License 2.0。詳細は LICENSE をご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。