name: logic-solver-mcp-ui-nav description: AI エージェントが logic-solver-mcp の Web UI (logic-solver-mcp.com) と freee 公式 UI へユーザを案内するためのナビ skill。ページの役割と相互遷移、ディープリンクの URL パターン (host は MCP の freee_server_info 等から動的取得) を持ち、口頭での画面手順説明を排除して 1 クリックで該当画面へ飛ばす。

logic-solver-mcp UI Navigation skill

LLM agent (Claude / Cursor / ChatGPT 等) がユーザに 「この画面を開いてください」と 1 リンクで案内する ための skill。

3 つを内蔵:

  1. ページ構成 (= ユーザがどの画面で何ができるか) のマップ
  2. ディープリンクの URL パターン (user-app 側 + freee 公式側)
  3. agent への振る舞い指示 (= 思いつき URL を作らない、host は動的取得)

1. ページ構成 (= user-app マップ)

サインイン後、Cognito の所属 group によって着地画面が変わる (= pickRedirectPath)。

ログイン直後の着地:
  app-admin             → /page-id/admin-app/
  organization-admin    → /page-id/organization-admin/
  org-{ulid}-* (一般)   → /page-id/user-app/
  group 無し            → /page-id/sign-off

ユーザーアプリ (/page-id/user-app/)

エンドユーザーが日常的に使う画面。

画面 URL 役割
可視化 /page-id/user-app/top-menu-id/visualize 取引・取引先・勘定科目の関係を node-link graph で表示。監査 hit ノードを画面上で確認
データ同期 /page-id/user-app/top-menu-id/data-sync freee → 当システム への取り込み (取引 / 取引先 / 勘定科目 / 税区分 / 自動登録ルール / 従業員 / 工数サマリ)。個別実行 + 「一括同期」ボタン
認証キー /page-id/user-app/top-menu-id/api-keys AI エージェント向けの lsmcp_* 認証キー 発行 / 失効 / 一覧 (= experimental-public-preview では発行不可)

組織管理者画面 (/page-id/organization-admin/)

organization-admin group を持つ user だけ access 可。

画面 URL 役割
ユーザー管理 /page-id/organization-admin/top-menu-id/user-management 同じ org の member CRUD (admin / member の権限変更含む)
フリー設定 /page-id/organization-admin/top-menu-id/freee-settings freee Developers アプリの client ID / secret 登録、OAuth 認可

アプリ管理 (/page-id/admin-app/)

app-admin group を持つ user (= 当システム運営者) だけ。

画面 URL 役割
組織管理 /page-id/admin-app/top-menu-id/organization-management 組織 (= テナント) の追加 / 初期 admin 招待

公開 docs

/docs (認証不要)。本 skill 自身の出所: /docs/skill/ui-nav (= 本 skill の markdown 原本)。


2. URL パターン (= ディープリンク生成ルール)

2.1 logic-solver-mcp.com (= user-app)

host は agent が固定値で書かない。MCP 経由で取得した値、または環境ごとに以下を選択:

  • 本番 (main): https://logic-solver-mcp.com (= apex / custom domain)
  • 実験環境 (experimental-public-preview): https://experimental-public-preview.logic-solver-mcp.com (= Amplify default domain)
  • ローカル: http://localhost:3000

固定 path だけ列挙する:

飛び先 path
トップ (= ログイン誘導) /
可視化トップ /page-id/user-app/top-menu-id/visualize
データ同期 /page-id/user-app/top-menu-id/data-sync
認証キー /page-id/user-app/top-menu-id/api-keys
組織管理者: ユーザー管理 /page-id/organization-admin/top-menu-id/user-management
組織管理者: フリー設定 /page-id/organization-admin/top-menu-id/freee-settings
アプリ管理: 組織管理 /page-id/admin-app/top-menu-id/organization-management
公開 docs /docs

未確定 (= 実装中の URL state、変わり得る):

飛び先 推測 path
可視化 + 特定ノード選択 /page-id/user-app/top-menu-id/visualize#/node/<entity-id>
可視化 + 特定監査 query 展開 /page-id/user-app/top-menu-id/visualize#/audit/<query-id>

→ 上記 #/...未実装の場合あり。fallback は /visualize だけ案内し、「画面が出たら左パネルから該当 ID を探してください」と添える。

2.2 freee 公式 (= accounting.secure.freee.co.jp)

確定パターン (= freee Web UI が安定して提供):

飛び先 URL
取引一覧 https://accounting.secure.freee.co.jp/deals
取引詳細 https://accounting.secure.freee.co.jp/deals/<deal_id>
取引先一覧 https://accounting.secure.freee.co.jp/partners
取引先詳細 https://accounting.secure.freee.co.jp/partners/<partner_id>
勘定科目一覧 https://accounting.secure.freee.co.jp/account_items
税区分一覧 https://accounting.secure.freee.co.jp/tax_codes
freee Developers (= app 登録) https://app.secure.freee.co.jp/developers/applications

推測パターン (= URL 仕様非公開、変わる可能性):

飛び先 推測 URL
仕訳帳 (条件付き) https://accounting.secure.freee.co.jp/reports/general_ledger?...
月次推移 https://accounting.secure.freee.co.jp/reports/monthly_pl
試算表 https://accounting.secure.freee.co.jp/reports/trial_balance

推測パターンを使うときは必ず 1 行添える:

上記が開かなければ freee のメニューから手動で開いてください。


3. agent への指示 (= skill prompt)

3.1 リンクを優先する

ユーザに「画面で何かを確認 / 操作してほしい」場面では、手順を口頭で説明する前にディープリンクを 1 行で渡す

✅ 良い:

「取引 deal_42 を確認するなら ↓ をクリックしてください https://accounting.secure.freee.co.jp/deals/42

❌ 悪い:

「freee にログインして、左サイドバーの『取引』を押して、検索窓に 42 と入れて…」

3.1.1 種別 → GUI 画面 マッピング (= GUI 理解を促す行動規範、 #601 / #651)

事実 node / audit / testcase / testrecord / 同期データ に言及するときは、テキスト説明だけで完結させず、対応する GUI URL リンクをセットで提示する (= ユーザが実際に画面で確認できる状態にする)。 種別ごとの飛び先:

種別 GUI 画面 URL パターン (= gui-links.ts と同一規約)
audit (監査クエリ結果) 監査結果表 /page-id/user-app/top-menu-id/audit-results/?filter.id=<eq:auditId>
audit → 紐づく test 群 テストケース表 /page-id/user-app/top-menu-id/test-cases-v2/?filter.parentSourceId=<eq:auditId>
audit (グラフ全体) 可視化 /page-id/user-app/top-menu-id/visualize?audit=<auditId>
違反 node (グラフ内) 可視化(node 選択) /page-id/user-app/top-menu-id/visualize?audit=<auditId>&node=<nodeId>
取引 node 等 freee 原票 freee deep link (= freee_* / nodeToFreeeUrl 由来)
testcase / testrecord テストケース表 上記 test-cases-v2 を id filter
同期メタ / 空状態 データ同期 /page-id/user-app/top-menu-id/data-sync

MCP 出力に既に付いている links (#601: *_list / *_get / audit 実行結果に自動付与) を最優先でそのまま提示する。 自分で URL 文字列を組み立てる場合も上表のパターン (= §2 / gui-links.ts) に従い、 host はハードコードせず §3.3 の動的取得で解決する。

3.2 思いつき URL を生成しない

URL は 必ず本 skill の §2 のパターンから組み立てる。脳内で「こんな URL かも」を作らない。#/node/<id> のような未確定 path を使う場合は「未実装の可能性あり」と添える。

3.3 host は動的に取る

logic-solver-mcp.com 系の host は ユーザの環境 (= main / experimental-public-preview / localhost) によって変わる:

  • MCP 接続している場合、freee_server_info 等で得られる情報、または公開 docs (/docs/raw) の冒頭 URL を参照
  • 不明なら、ユーザに「実験環境(experimental-public-preview)で接続していますか?」と 1 回確認
  • それでも分からなければ https://experimental-public-preview.logic-solver-mcp.com を default に提示 (= 公開 sandbox なので安全に試せる)

freee 側の host (accounting.secure.freee.co.jp / app.secure.freee.co.jp) は固定で OK。

3.4 確定 / 推測の区別を伝える

freee の URL は仕様化されていない。§2.2 で「確定」と書いてあるものは長く動く前提、「推測」のものは将来変わる可能性がある旨を 1 行添える:

✅ 良い:

「月次推移は (推測 URL) https://accounting.secure.freee.co.jp/reports/monthly_pl です。開かなければ freee メニューから『レポート → 月次推移』を選んでください。」

3.5 デフォルトの誘導順

ユーザが「具体的にどう確認するか分からない」状態なら、以下の順で案内:

  1. データが入っていなければ まず /page-id/user-app/top-menu-id/data-sync で「一括同期」
  2. データが入っていれば /page-id/user-app/top-menu-id/visualize で graph を一目見せる
  3. 特定の取引 / 取引先を確認したい なら freee の取引・取引先詳細 URL を deal_id / partner_id を埋めて生成して案内
  4. 連携が壊れている (= 同期が空 / OAuth 切れ) なら /page-id/organization-admin/top-menu-id/freee-settings で再認可

4. 関連 skill

  • freee-api-skill (= npx skills add freee/freee-mcp で取得): freee API path の使い分け、company_id 必須等の規約
  • datalog-debug-skill / datalog-schema-philosophy / datalog-migration-skill (= 同 repo packages/logic-solver-mcp/skills/): datalog クエリ作成 / IDB ルール設計 / breaking 移行