UI Research — /app/admin — Round 1

生成: 2026-05-27T00:00:00+09:00  |  Agent: kashi-ui-researcher  |  Surface: Admin Dashboard  |  Stage: 1/3 (research only)

§1  Kashi 現状サマリ

ソースファイル

主タスク (primary task)

テナント管理者がテナント全体の状態を一目で把握し、「ユーザー追加」「チーム作成」「ミーティングアップロード」「分析閲覧」へ即座にジャンプできること。 パイロット開始準備チェックリスト (4 ステップ) が未完了の間はそれが最前面に出る。

副タスク (secondary tasks)

データ密度 (現状コード読み取り)

視認性の課題 (コードから推察): アクション grid が 3 段に分かれており、それぞれ独立した section として並列に並ぶ。第 2 段が「濃緑カード」、第 3 段が「白カード」とスタイルが混在。合計 11 アクションボタンが上部に集中し、何から始めればいいか分かりにくい。r19 §6.2 「Color semantics inconsistent」と同じ問題がポータル内でも発生。

DATA_VISIBILITY_MATRIX で定義された Admin の視認スコープ

フィールドカテゴリ Admin 可視性 制約根拠
自己データ Y(self) 全ロール共通
Affected-candidate identity (他者) N — operational role; no review brief DATA_VISIBILITY_MATRIX §3
Per-meeting structural metrics (他者) N DATA_VISIBILITY_MATRIX §3
Pattern summaries (他者) N DATA_VISIBILITY_MATRIX §3
Team aggregates N DATA_VISIBILITY_MATRIX §3
System audit log Y (system audit のみ) DATA_VISIBILITY_MATRIX §3 / §8
Org-level executive aggregates N DATA_VISIBILITY_MATRIX §3
canon 制約による構造的課題: Admin は「ユーザーの存在・ロール・ミーティング本数」は見えるが、「ミーティングの中身・パターン分析・シグナル」は一切見えない (DATA_VISIBILITY_MATRIX §3 + §8 "Bypass forbidden")。 これは意図的な設計だが、現状の UI では この境界が視覚的に明示されていない。 Longitudinal / Coverage / Readiness 等のサブページへのリンクが Admin ホームに並んでいるが、 Admin が「ミーティング洞察を見に行ける」と誤解する動線になりかねない。 ここを参照 SaaS と比較して解決策を探る。

対応する想定課題 (complaints.md 未提供のため、コードと canon から推察)


§2  参照リファレンス

Ref # プロダクト 調査 URL / ソース Archetype 調査ソース種別
R1 Stripe Dashboard docs.stripe.com/dashboard/basics 金融 SaaS admin — metric overview + progressive drill-down 公式 docs (WebFetch 2026-05-27)
R2 Vercel Team Dashboard vercel.com/docs/rbac/managing-team-members
vercel.com/changelog/dashboard-navigation-redesign-rollout
デプロイ SaaS admin — member lifecycle + project list 公式 docs + changelog (WebFetch 2026-05-27)
R3 GitHub Org Admin docs.github.com/en/organizations 開発 SaaS org admin — member management + team hierarchy 公式 docs (WebFetch 2026-05-27)
R4 Okta Admin Console help.okta.com/en-us/content/topics/dashboard/dashboard.htm
WebSearch (2026-05-27)
IdP/SSO admin — org health + task queue + user lifecycle 公式 help docs + search (WebFetch/WebSearch 2026-05-27)
R5 Google Workspace Admin Console knowledge.workspace.google.com Enterprise admin — users/groups + service management 公式 knowledge base (WebFetch 2026-05-27)
R6 カオナビ ダッシュボード support.kaonavi.jp/scene-function/dash-board/001
WebSearch (2026-05-27)
JP 人事 SaaS admin — HR データ集計 + 組織ビュー 公式 support + search (WebSearch 2026-05-27)
R7 B2B SaaS パターン集積 (multi-source) GitNexa SaaS UX Patterns guide & GitHub SaaS UI patterns gist & procreator.design onboarding patterns UX pattern aggregator — admin dashboard best practices 第三者 UX 文献 (WebFetch/WebSearch 2026-05-27)

注: SmartHR, BambooHR, Linear, Notion, Jira の help/docs への直接 fetch は 401/404 のため、 WebSearch 経由の 2 次情報として補完。これらは個別 finding の根拠には使わず、 R1〜R6 の主要 fetch 結果のクロスバリデーションに利用。


§3  強信号パターン (≥3 references で観察)

Pattern 適用先 Kashi 課題 観察 refs (N≥3) Kashi 互換性
P-1: Setup Checklist as Dismissible Inline Card
セットアップ未完了のときのみ表示される埋め込みカード。 完了ステップはチェック済みアイコンで明示。 全完了後に自動非表示 (Dropbox: progress bar 付き)。 カード全体が折りたたみ可能 (Stripe / Okta: tasks widget)。
C-A1 / C-A4: 現状のチェックリストは完了後に消えるが、未完了中は黒背景で最前面に出てアクション 11 個と並立する。完了後の「次のステップ」へのパスが弱い。 Stripe (R1) — tasks widget
Okta (R4) — pending tasks section
Google Workspace (R5) — getting started wizard
B2B UX patterns (R7) — onboarding checklist card
✓ 直接適用可
Kashi の既存実装 (setupComplete フラグで非表示) とほぼ同じ構造。 改善点: 完了後に「パイロット開始へ」の次ステップ CTA カードに切り替えるパターンを追加できる。 canon 制約なし。
P-2: 3-Stat KPI Strip (count-only) Above Action Grid
ページ最上部に 3〜5 枚の数値カード (チーム数 / ユーザー数 / 処理件数)。 数値のみ、グラフなし、深掘りリンクを各カードに付ける。 Stripe: balance + payments + disputes cards。 Vercel: projects / deployments / usage。 GitHub Org: members / teams / repositories。
C-A5: 現状の 3 stat cards は数値のみで深掘り動線がない。「利用状況の俯瞰」にはなっているが「だから何をすべきか」が伝わらない。 Stripe (R1)
Vercel (R2)
GitHub (R3)
Okta (R4)
△ 要調整
各 stat card に深掘りリンク (/app/admin/teams, /app/admin/users) を追加する方向は適合。 ただし Admin は meeting pattern / シグナルを見られないため、 「ミーティング数」カードのリンク先が /app/admin/longitudinal(分析系)に繋がると canon §4 Admin 可視ルールと衝突する可能性。 リンク先は「アップロード管理」等の operational なページに限定すること。
P-3: Role-Differentiated Action Architecture (Primary / Secondary / Tertiary)
Admin アクションを 3 層に分類: (1) Primary CTA — 最も重要な 1〜2 アクション (大カード / filled button) (2) Secondary actions — 頻度高い管理アクション (outline card, 2〜4 個) (3) Tertiary / advanced — サブページナビゲーション (小さいリンク or 折りたたみメニュー) Stripe: primary CTA → 課金管理、secondary → payments/customers、tertiary → settings。 Vercel: primary → new deployment、secondary → members / billing、tertiary → advanced settings。 Okta: primary → pending tasks、secondary → user lifecycle actions、tertiary → reports。
C-A1 / C-A2: 現状は 11 アクションが 3 段にわたって並列。 濃緑 / 白 / 濃緑 / 白 のスタイル混在が優先度を伝えていない。 3 層アーキテクチャを導入することで「今すぐやるべきこと」が即座に分かる。 Stripe (R1)
Vercel (R2)
Okta (R4)
Google Workspace (R5)
✓ 直接適用可
Kashi の kashi-evergreen filled card = Primary 層、 white border card = Secondary 層、 小リンクテキスト = Tertiary 層 — という既存のスタイル分類を 意図的な 3 層 として再整理するだけで実現可能。 canon 制約なし。永続的 UI 原則 §7 (Progressive Disclosure) に合致。
P-4: Operational Scope Boundary Banner
Admin ホームの上部または Stats エリアに「あなたが見られる範囲」を 1 文で明示するバナーまたはサブタイトル。 Stripe: "You have access to payments and team settings. Revenue analysis requires Finance role." GitHub Org: "As owner, you can manage members, teams, and org settings." Okta: role badge + "Super Administrator" vs "Read-Only Administrator" の明示。 Google Workspace: "Super Admin" ラベルが各セクション上部に表示。
C-A3: Admin が「ミーティング洞察を見られる」と誤解する動線。 DATA_VISIBILITY_MATRIX §8 「Admin は operational scope のみ」を UI で明示することで、誤解と surveillance 感を同時に回避できる。 Stripe (R1)
GitHub (R3)
Okta (R4)
Google Workspace (R5)
✓ 直接適用 + Kashi 独自強化
Kashi では既に ShieldCheck アイコン + 免責フッターがあるが、 それはページ最下部のみ。 Admin ホームの H1 直下に "管理者ビュー — 操作設定の管理のみ。ミーティング分析への入り口はこの画面にありません。" という 1 行スコープ明示を置くことが、 canon §3 (Role Boundary First) + §4 (System Admin: operational only) の実装になる。 これは surveillance 感回避とも直結し、Kashi の差別化ポイント。
P-5: Team/Member List with Expandable Row Detail
チーム / メンバー一覧を折りたたみ可能な行で表示。 クリックで展開し、メンバー一覧・作成日・アクションが出る (List → Details Drawer pattern)。 Vercel: team settings → members list → role badge + "Manage Role" button per row。 GitHub: org → teams → members tab。 Okta: directory → groups → expandable group detail。 B2B UX patterns (R7): 「Search → Data Table → Bulk Action Toolbar」pattern。
C-A5: 「誰がどれくらい使っているか」の俯瞰。 現状の TeamRow は既に展開可能だが、表示される情報 (meetingCount / totalDurationMs / members) の優先度整理が必要。 ミーティング数は「operational な利用量」として Admin が見てよい情報。 Vercel (R2)
GitHub (R3)
Okta (R4)
B2B UX patterns (R7)
△ 要調整
Kashi の TeamRow 展開には「ミーティング一覧 (タイトル・日時)」が含まれる。 これは DATA_VISIBILITY_MATRIX §3 で Admin は N のフィールド (per-meeting structural metrics) に近接する。 ミーティング タイトルと日時 は構造的メタデータであり、 ミーティング内容そのものではないが、要注意。 表示を「ミーティング件数・最終ミーティング日」に絞り、タイトル一覧へのリンクは "/app/admin/upload" の operational context に限定することを推奨。

§4  弱信号 (1〜2 refs のみ、参考まで)


§5  Kashi canon に反するため採用しないパターン


§6  各 Finding 詳細 — patterns × references クロス表

Pattern ID Stripe (R1) Vercel (R2) GitHub (R3) Okta (R4) Google WS (R5) カオナビ (R6) B2B UX (R7) N≥3?
P-1 Setup checklist card tasks widget — (implicit: pending invites) pending tasks section getting started wizard onboarding checklist card Yes (4)
P-2 KPI strip + drill-down link balance/payments/disputes projects/deployments/usage members/teams/repos active users/app sign-ins users/groups summary dashboard グラフ数値 5-7 KPI card limit Yes (6)
P-3 3-layer action architecture primary/secondary/tertiary nav owner actions / settings layers tasks / directory / reports service sections hierarchy layered layout pattern Yes (5)
P-4 Scope boundary banner role-based access notice owner role badge + capabilities list Super Admin / Read-Only Admin label Super Admin badge アクセス管理 権限付与説明 Yes (4)
P-5 Expandable team/member list members list + Manage Role button teams → members tab directory → group → detail Search → Table → Bulk action Yes (4)

§7  Kashi 固有リスクと回避策マトリクス

リスク 1 (最重要): Admin ホームが「ミーティング洞察の入り口」に見える問題

現状: Admin ホームに Longitudinal / Coverage / Readiness へのリンクが並んでいる。 これらのページは「パイロット稼働状況のチェック」という operational 用途だが、 ページ名だけ見ると「ミーティング分析を見に行く」と読める。

回避策 (translator への引き継ぎ): canon 根拠: DATA_VISIBILITY_MATRIX §3 (Admin: Pattern summaries = N) + §8 (Bypass forbidden)

リスク 2: 従業員個人識別データを含む可能性のある TeamRow 展開

現状: TeamRow 展開でミーティングタイトル一覧が表示される。 タイトルに参加者名や案件名が入ると個人識別に近い情報になる可能性。

回避策: 展開 detail の「ミーティング一覧」をタイトル表示から「ミーティング件数・日付範囲・平均時間」の aggregate に変更。 タイトルが必要な場合は Upload 管理ページ (/app/admin/upload) に移動。

リスク 3: セットアップ完了後の「次のステップ」案内が空白になる問題

現状: setupComplete フラグが true になるとチェックリストセクションが丸ごと消える。 Admin は「何もする必要がなくなった」のか「使い方が変わった」のか分からない。

回避策: チェックリスト完了後に「パイロット稼働中」バナーへ切り替え + 「Manager に Mirror URL を共有する」という次アクション CTA に置き換える (P-1 の発展形)。

§8  translator への引き継ぎメモ

最も解決インパクトが大きいパターン上位 3 つ:
  1. P-4 Scope Boundary Banner — Admin ホームの H1 直下に「操作設定のみ / ミーティング洞察への入り口はない」を 1 文で明示。 これは surveillance 感の排除と Kashi の差別化を同時に実現する。 translator が最初に仕様化すべき箇所。
  2. P-3 3-Layer Action Architecture — 既存の 11 アクションを「Primary (1〜2 個) / Secondary (3〜4 個) / Tertiary (リンク)」に再分類。 コード上はほぼ同じ要素を使えるが、スタイルと配置の整理だけで認知負荷が大幅に下がる。 r19 §6.2 「Color semantics inconsistent」の解決も兼ねる。
  3. P-1 Setup Checklist → Post-Setup Transition — 完了後に「稼働中」バナー + 次アクション (Manager への Mirror URL 共有) に切り替える。 「管理者の旅」として「セットアップ → 稼働 → 定常運用」のフェーズを UI で表現する。
絶対に外せない Kashi 制約:

出典: Stripe Dashboard docs (docs.stripe.com) · Vercel RBAC docs + changelog (vercel.com/docs) · GitHub Org docs (docs.github.com) · Okta Admin Console docs (help.okta.com) · Google Workspace Admin knowledge base (knowledge.workspace.google.com) · カオナビ ダッシュボード support (support.kaonavi.jp) · GitNexa SaaS Dashboard UX Patterns (gitnexa.com) · GitHub SaaS UI Patterns gist (gist.github.com/mpaiva-cc) · procreator.design onboarding patterns (procreator.design) · Rosalie / Medium admin dashboard best practices (rosalie24.medium.com)