freee_server_info 等から動的取得) を持ち、口頭での画面手順説明を排除して 1 クリックで該当画面へ飛ばす。LLM agent (Claude / Cursor / ChatGPT 等) がユーザに 「この画面を開いてください」と 1 リンクで案内する ための skill。
3 つを内蔵:
サインイン後、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 (認証不要)。本 skill 自身の出所:
/docs/skill/ui-nav (= 本 skill の markdown 原本)。
host は agent が固定値で書かない。MCP 経由で取得した値、または環境ごとに以下を選択:
https://logic-solver-mcp.com (= apex / custom domain)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 を探してください」と添える。
確定パターン (= 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 のメニューから手動で開いてください。
ユーザに「画面で何かを確認 / 操作してほしい」場面では、手順を口頭で説明する前にディープリンクを 1 行で渡す。
✅ 良い:
「取引 deal_42 を確認するなら ↓ をクリックしてください https://accounting.secure.freee.co.jp/deals/42」
❌ 悪い:
「freee にログインして、左サイドバーの『取引』を押して、検索窓に 42 と入れて…」
事実 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 の動的取得で解決する。
URL は 必ず本 skill の §2 のパターンから組み立てる。脳内で「こんな URL かも」を作らない。#/node/<id> のような未確定 path を使う場合は「未実装の可能性あり」と添える。
logic-solver-mcp.com 系の host は ユーザの環境 (= main / experimental-public-preview / localhost) によって変わる:
freee_server_info 等で得られる情報、または公開 docs (/docs/raw) の冒頭 URL を参照https://experimental-public-preview.logic-solver-mcp.com を default に提示 (= 公開 sandbox なので安全に試せる)freee 側の host (accounting.secure.freee.co.jp / app.secure.freee.co.jp) は固定で OK。
freee の URL は仕様化されていない。§2.2 で「確定」と書いてあるものは長く動く前提、「推測」のものは将来変わる可能性がある旨を 1 行添える:
✅ 良い:
「月次推移は (推測 URL) https://accounting.secure.freee.co.jp/reports/monthly_pl です。開かなければ freee メニューから『レポート → 月次推移』を選んでください。」
ユーザが「具体的にどう確認するか分からない」状態なら、以下の順で案内:
/page-id/user-app/top-menu-id/data-sync で「一括同期」/page-id/user-app/top-menu-id/visualize で graph を一目見せるdeal_id / partner_id を埋めて生成して案内/page-id/organization-admin/top-menu-id/freee-settings で再認可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 移行