/app/admin — Round 1| 制約 | 出典 | UI への含意 |
|---|---|---|
| Admin は Pattern summaries / Per-meeting metrics / Team aggregates すべて N | DATA_VISIBILITY_MATRIX §3 | Longitudinal / Coverage / Readiness 等の 分析系 サブページへの直リンクは admin home から構造的に除去または再フレーミング |
| System admin = operational configuration + technical logs のみ | permanent-ui-principles.md §4 | 「分析」 「洞察」 「メンバー発言」 系 CTA は禁止。 「稼働準備」 「データ品質」 「アクセス管理」 系 CTA で再構成 |
| Bypass forbidden — 「admin will eventually look」 を構造的に防ぐ | DATA_VISIBILITY_MATRIX §8 / WORKER_FACING_TRUST_CANON §2.6 | UI 上で 「あなた (admin) はミーティングの中身を見ることができません」 を 1 文で明示 (Scope Boundary Banner) |
現状と同じ: 「テナント管理者がテナント全体の状態を一目で把握し、 ユーザー追加 / チーム作成 / アップロード / 稼働準備チェックへジャンプ」。 主タスクの定義は変えない。
┌─────────────────────────────────────────────────────────────────┐
│ PortalHeader (現状維持) │
├─────────────────────────────────────────────────────────────────┤
│ │
│ 管理ダッシュボード [role: admin] │ ← H1 (Fraunces, --text-h1)
│ ────────────────────────────── │
│ あなたは操作設定のみを管理します │ ← 推奨追加 (P-4 light)
│ │
│ ┌─チーム数─┐ ┌─メンバー数─┐ ┌─ミーティング数─┐ │ ← KPI strip (P-2)
│ │ 12 │ │ 47 │ │ 156 │ ← --text-h2 │
│ │ →一覧 │ │ →一覧 │ │ →処理状況 │ ← drill link │
│ └────────┘ └──────────┘ └──────────────┘ │
│ │
│ [現状チェックリスト 4 ステップ — 未完了時のみ表示、 完了で消える]│
│ │
│ ─── 管理アクション ────────────────────────── │ ← H2
│ ┌──────────┬──────────┬──────────┬──────────┐ │
│ │チーム作成 │ユーザー │単発 │一括 │ ← 4 col, 統一 │
│ │ │管理 │Upload │Upload │ style │
│ └──────────┴──────────┴──────────┴──────────┘ │
│ ┌──────────┬──────────┬──────────┬──────────┐ │
│ │稼働状況 │コミュ │データ │話者管理 │ ← 4 col 統一 │
│ │確認 │ポリシー │品質 │ │ 文言改訂 │
│ └──────────┴──────────┴──────────┴──────────┘ │
│ ┌──────────┬──────────┬──────────┐ │
│ │ジョブ │通知 │準備度 │ ← 第 3 段、 統一 style │
│ │監視 │管理 │チェック │ │
│ └──────────┴──────────┴──────────┘ │
│ │
│ ─── チーム ────────────────────────────────── │
│ [TeamRow x 5 — 既存仕様維持、 展開 detail のミーティング │
│ タイトル列は件数表示に絞る (リスク 2 回避)] │
│ │
│ ─── 直近ミーティング ─────────────────────── │
│ [RecentMeetingsList — 既存仕様維持] │
│ │
│ [フッター: 免責 + governance リンク] │
└─────────────────────────────────────────────────────────────────┘
| Pattern | 適用方法 | 研究参照 |
|---|---|---|
| P-2 KPI strip with drill-down link | 3 stat cards に drill-down リンクを追加。 ただし 「ミーティング数」 のリンク先は /app/admin/upload (operational) — 分析系は NG |
app-admin__references.html §3 / Stripe R1 + Vercel R2 + GitHub R3 + Okta R4 (N=4) |
| P-1 Setup checklist as dismissible card | 既存実装をそのまま維持 (Kashi は既に setupComplete フラグで OK) |
§3 / Stripe + Okta + Google WS + B2B UX (N=4) |
| (Light) P-4 Scope Boundary mention | H1 直下に 1 行サブタイトルとして 「あなたは操作設定のみを管理します」 を追加 (banner レベルではない、 軽量版) | §3 / Stripe + GitHub + Okta + Google WS (N=4) |
--kashi-paper-tint 背景 + --kashi-border 1px outline で 統一 (現状の濃緑/白混在を解消、 r19 §6.2)--text-h1 + Fraunces + --kashi-evergreen-deep--text-h2 + Fraunces + --kashi-evergreen--text-body, 数値: --text-h2--space-5 (card padding) + --space-6 (section gap) + --space-8 (block separation)--shadow-focus 適用 (a11y baseline)| § | 判定 | 根拠 |
|---|---|---|
| §3 Role Boundary First | PASS | H1 直下に admin role 表示 + サブタイトルで 「操作設定のみ管理」 を 1 行明示 |
| §4 Visibility per Role (System Admin) | PARTIAL | 第 2 段 「稼働状況確認」 「データ品質」 等は operational 文言に改訂 (現状の Longitudinal / Coverage / Readiness ラベルは NG)。 ただし B/C と比べると境界明示が弱い |
| §7 Progressive Disclosure | PARTIAL | 11 アクション flat grid は依然として 「default visible layer 3-5 cards」 ルール (§7) を逸脱。 A の限界点 |
| §8 Cognitive Load | PARTIAL | token 統一で 「all equally important」 感は改善するが、 11 アクションの並列は残る |
| §9 Dashboard Rules | PASS | 個人スコア / 健康スコア類は登場せず、 KPI は組織レベル aggregate (チーム数 / メンバー数) のみ |
| §11 Internal Screen Rules | PASS | role label + visibility 明示 + 安全 actions + audit semantics 既存維持 |
| §13 Visual System | PASS | off-white base + 濃緑 accent + outline icon、 surveillance 系アイコン無し |
CLEAN 「分析」 「ミーティング詳細」 「メンバー発言」 系の CTA は 0 件。 第 2 段の現状ラベル (Longitudinal / Coverage / Readiness) は operational 文言に改訂済み。
"テナント運用の next step を 1 つだけ提示し、 admin がそれ以外で迷わない" — pilot phase に応じて Primary CTA が動的に切り替わる。 例: setup 未完了時 → 「セットアップを完了する」、 setup 完了時 → 「Manager に Mirror URL を共有する」、 定常運用時 → 「今週の稼働サマリ確認」 (operational 集計のみ)。
┌─────────────────────────────────────────────────────────────────┐
│ PortalHeader (現状維持) │
├─────────────────────────────────────────────────────────────────┤
│ │
│ 管理ダッシュボード [role: admin] │ ← H1
│ │
│ ╔═════════════════════════════════════════════════════════════╗│
│ ║ Scope Boundary Banner (恒久表示、 dismissible でない) ║│ ← P-4
│ ║ ║│
│ ║ あなたは [組織と利用状況] の管理者です。 ║│
│ ║ ミーティングの中身、 メンバー個別のパターン、 シグナルは ║│
│ ║ この画面からは閲覧できません — これは canon です。 ║│
│ ║ ║│
│ ║ → 詳細は データ可視性マトリクス §3 / §8 ║│
│ ╚═════════════════════════════════════════════════════════════╝│
│ │
│ ┌─チーム─┐ ┌─メンバー─┐ ┌─処理件数─┐ │ ← KPI strip
│ │ 12 │ │ 47 │ │ 156 │ (drill = operational のみ) │
│ └──────┘ └────────┘ └─────────┘ │
│ │
│ ───────── 今すぐやるべきこと ──────────── │ ← H2 (Primary)
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ ✓ パイロット稼働中 (setup 完了) │ │ ← P-1 evolved
│ │ │ │
│ │ → 次のアクション: Manager に Mirror URL を共有する │ │ ← Primary CTA
│ │ [evergreen filled button, 大] │ │
│ └─────────────────────────────────────────────────────────┘ │
│ │
│ ───────── 日常の管理 ──────────────── │ ← H2 (Secondary)
│ ┌──────────┬──────────┬──────────┬──────────┐ │
│ │ユーザー │チーム │単発 │一括 │ ← 4 cards │
│ │管理 │作成 │Upload │Upload │ outline only │
│ └──────────┴──────────┴──────────┴──────────┘ │
│ │
│ ───────── その他の管理機能 (▼ 展開) ──────── │ ← H2 (Tertiary)
│ [折りたたみ — 展開すると以下 6 項目が出る] │
│ · 稼働状況確認 · データ品質 · 準備度チェック │
│ · コミュニケーションポリシー · 話者管理 │
│ · ジョブ監視 · 通知管理 │
│ │
│ ───────── チーム ──────────────── │
│ [TeamRow x 5 — 展開 detail はミーティング件数・日付範囲のみ] │
│ │
│ [フッター: 免責 + governance リンク] │
└─────────────────────────────────────────────────────────────────┘
| Pattern | 適用方法 | 研究参照 |
|---|---|---|
| P-3 3-Layer Action Architecture | 11 アクションを Primary (1) / Secondary (4) / Tertiary (6) に分離。 Primary は pilot phase で動的、 Tertiary は折りたたみ | app-admin__references.html §3 / Stripe R1 + Vercel R2 + Okta R4 + Google WS R5 (N=4) |
| P-4 Scope Boundary Banner (full) | H1 直下にフル banner として恒久配置。 dismissible でない (canon 強制) | §3 / Stripe + GitHub + Okta + Google WS (N=4) |
| P-1 Setup checklist → Post-Setup Transition | 完了後に 「稼働中」 バナー + 次アクション CTA (Manager に Mirror URL 共有) に切り替える evolved 版 | §3 (researcher §7 リスク 3 の回避策) / Stripe + Okta + Google WS + B2B UX (N=4) |
| P-2 KPI strip + drill-down (Variant A 同様) | drill-down 先は operational ページのみ | §3 / N=4 |
| P-5 Expandable TeamRow (調整版) | 展開 detail はミーティング件数・日付範囲・平均時間に絞る (タイトル列除去 — researcher §7 リスク 2 回避) | §3 / Vercel + GitHub + Okta + B2B UX (N=4) |
--kashi-paper-tint 背景 + --kashi-evergreen 3px left border + --space-5 padding + --radius-md + outline ShieldCheck icon (Lucide 24px)--kashi-evergreen filled + white text + --text-h3 ボタンラベル--kashi-paper 背景 + --kashi-border outline + --text-body--text-body-sm リンクテキスト--text-h2 + Fraunces (現状 Inter から変更で 「数字が読みやすく serious」 になる)--space-8 (現状 inconsistent から統一)--shadow-focus 全 interactive 要素に適用| § | 判定 | 根拠 |
|---|---|---|
| §3 Role Boundary First | PASS+ | Scope Boundary Banner で role + 可視範囲 + 不可視範囲を H1 直下で明示。 §3 の 6 質問のうち 1-3 + 5 (forbidden action) が banner だけで answer される |
| §4 Visibility per Role (System Admin) | PASS+ | 「operational configuration + technical logs のみ」 を banner で明示。 Tertiary 折りたたみ内のラベルも operational 文言に統一 |
| §7 Progressive Disclosure | PASS | 「default visible layer: 1 headline + 1 short explanation + 3-5 cards + 1 primary CTA」 完全準拠。 Tertiary 6 項目は fold 化 |
| §8 Cognitive Load | PASS | 「one primary CTA」 「clear H1 + logical H2 sections」 「grouped controls」 完全準拠。 「equal-weight CTA spam」 が解消される |
| §9 Dashboard Rules | PASS | KPI は組織構造の count のみ、 個人 rank / health score 無し |
| §11 Internal Screen Rules | PASS+ | role label / visibility boundary / safe actions / forbidden actions を Scope Boundary Banner で 1 箇所集約表示 |
| §13 Visual System | PASS | off-white base + 濃緑 accent + outline icon、 surveillance 系アイコン無し。 ShieldCheck は 「security camera」 と異なり 「policy boundary」 メタファーで OK |
CLEAN+ 「分析」 「ミーティング詳細」 「メンバー発言」 系の CTA は 0 件。 Tertiary 折りたたみ内含めて全て operational 文言。 Scope Boundary Banner で 「不可視」 が積極的に表明される (canon §1 「The UI wins by showing less」 の実装)。
"admin の inbox にある operational task を順番に消化する" — Stripe / Okta / Linear inbox pattern を operational task に転用。 各 task は明示的に 「何が今 attention required か」 を queue として提示。 admin は 「何をすべきか」 を考える必要がない (inbox が示す)。
┌─────────────────────────────────────────────────────────────────┐
│ PortalHeader (簡素化: 3 items のみ — Inbox / Settings / Help) │ ← nav 縮小
├─────────────────────────────────────────────────────────────────┤
│ │
│ 管理 Inbox [role: admin] │ ← H1
│ │
│ ╔═════════════════════════════════════════════════════════════╗│
│ ║ Scope Boundary Banner (恒久、 B より強い文言) ║│ ← P-4 max
│ ║ ║│
│ ║ この inbox は operational task のみを扱います。 ║│
│ ║ ミーティング洞察 / メンバー個別パターン / ║│
│ ║ シグナルへの入り口は意図的に存在しません。 ║│
│ ║ ║│
│ ║ これは Kashi の根本設計 — Bypass forbidden (canon §8) ║│
│ ╚═════════════════════════════════════════════════════════════╝│
│ │
│ ┌─処理待ち─┐ ┌─完了 (今週)─┐ ┌─保留─┐ │
│ │ 3 │ │ 12 │ │ 0 │ (count only) │
│ └────────┘ └─────────────┘ └─────┘ │
│ │
│ ───── 処理待ちタスク (priority queue) ───── │ ← H2 単一
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ [高] ユーザー招待 3 件の承認待ち │ │ ← inbox row
│ │ 期限: 2026-05-30 · → 処理する │ │
│ ├─────────────────────────────────────────────────────────┤ │
│ │ [中] Speaker alias 未割り当て: 田中, 佐藤 │ │
│ │ → 割り当てる │ │
│ ├─────────────────────────────────────────────────────────┤ │
│ │ [中] パイロット準備度: 3/4 ステップ完了 │ │
│ │ 残り: 通知ポリシー設定 · → 完了する │ │
│ ├─────────────────────────────────────────────────────────┤ │
│ │ [低] 処理ジョブ: 過去 7 日で再試行 2 件 │ │
│ │ → ジョブ詳細 │ │
│ └─────────────────────────────────────────────────────────┘ │
│ │
│ ───── 組織概要 (operational read-only) ───── │ ← 折りたたみ可
│ チーム: 12 · メンバー: 47 · 処理件数: 156 (今月) │
│ ▼ チーム一覧を見る (件数のみ) │
│ │
│ ───── 設定 (Settings) ───── │ ← 折りたたみ可
│ ▼ 設定項目を見る (8 項目 fold) │
│ · 組織設定 · Upload 設定 · 通知ポリシー · データ品質基準 │
│ · 話者管理 · API トークン · 監査ログ · プライバシー設定 │
│ │
│ [フッター: 免責 + canon リンク] │
└─────────────────────────────────────────────────────────────────┘
| Pattern | 適用方法 | 研究参照 |
|---|---|---|
| Operational Task Inbox (新 archetype) | 11 アクションを 「処理待ちタスク」 として priority queue に統合。 Okta R4 の pending tasks section が最も近い参照 | app-admin__references.html §3 / Okta R4 「pending tasks section」 直接適用 + Stripe R1 「tasks widget」 拡張 (N=2 だが Okta pattern は同 archetype での再現性高) |
| P-4 Scope Boundary Banner (max strength) | B より強い文言 — 「意図的に存在しません」 「これは Kashi の根本設計」 を明示 | §3 / N=4 |
| P-2 KPI strip (簡素化版) | 処理待ち / 完了 / 保留 の 3 カウントのみ — task inbox の状態指標 | §3 / N=6 |
| P-3 (吸収) — 階層化は inbox priority に集約 | 3 層 action architecture は inbox 内の priority (高/中/低) に内包される | §3 / Okta R4 inspired |
| (意図的に除去) P-5 Expandable TeamRow | チーム一覧は 「組織概要」 折りたたみに格下げ — Admin home の primary 要素から外す | — canon §4 「operational のみ」 を最大限実装 |
--kashi-paper 背景 + --kashi-border hairline + --space-4 padding + hover で --shadow-sm--kashi-state-warning / --kashi-grade-emerging / --kashi-ink-muted + 色のみでなくテキストラベル必須 (a11y)--kashi-evergreen filled 背景 + white text + --space-6 padding + --radius-lg + ShieldCheck Lucide icon 24px--text-h3 (大きすぎない、 task inbox の従属指標として)--text-body-sm リンクスタイル (button カード乱立を避ける)| § | 判定 | 根拠 |
|---|---|---|
| §3 Role Boundary First | PASS++ | Scope Boundary Banner (max) + inbox 構造そのものが 「admin の役割は task 処理」 を明示。 §3 の 6 質問すべてが banner + inbox で 1 画面 answer |
| §4 Visibility per Role | PASS++ | 「operational task のみ」 を inbox 構造で物理的に実装。 Longitudinal / Coverage / Readiness 系へのリンクは 存在しない (探しても無い) |
| §7 Progressive Disclosure | PASS++ | default visible = banner + KPI 3 + inbox 上位 4 行 + 折りたたみ 2 セクション。 「default visible layer 3-5 cards」 完全準拠。 全 6 設定項目は fold |
| §8 Cognitive Load | PASS++ | 「one primary CTA」 = inbox の最上位 row。 全てが 「処理順序」 として既に整理されている。 「equal-weight」 問題が構造的に不可能 |
| §9 Dashboard Rules | PASS | KPI = task inbox state のみ、 個人 rank / health score 無し |
| §11 Internal Screen Rules | PASS++ | 各 inbox row が role label + safe action + audit semantics を自然に含む (task = action なので必須) |
| §13 Visual System | PASS | off-white base + 濃緑 accent banner + outline icon。 inbox UI は monitoring/surveillance 系と意味論的に異なる (task queue は能動的、 dashboard は受動的監視) |
/app/admin/longitudinal 等のページは残るが、 ナビからは到達不能になる。 既存のブックマーク / 直リンクは backward compat で残す要CLEAN++ 「分析」 「ミーティング詳細」 「メンバー発言」 系の CTA は 0 件 — UI 上から物理的に消滅。 Scope Boundary Banner で 「意図的に存在しない」 を積極的に表明。 SmartHR / カオナビ-style HR surveillance dashboard との差別化が最も明確に出る variant。
| 軸 | A 保守 | B 中庸 (推奨) | C 大胆 |
|---|---|---|---|
| IA 変更 | なし | 3 層構造化 + Scope Banner | Inbox 一本化 + nav 縮小 |
| 実装工数 | S (2-3 日) | M (5-7 日) | L (15-20 日、 routing 含む) |
| リスク | 低 | 中 | 高 (muscle memory 破壊、 backend 依存) |
| C-A1 (11 並列認知負荷) | 未解決 | 解決 | 完全解決 |
| C-A3 (洞察誤読リスク) | 部分解決 | 完全解決 (banner 強制) | 究極解決 (物理消滅) |
| Kashi 差別化 (SmartHR/カオナビ との対比) | 弱 (見た目だけ改善) | 強 (banner で明示) | 最強 (構造で明示) |
| canon §4 適合度 | PARTIAL | PASS+ | PASS++ |
| permanent-ui §7 progressive disclosure | PARTIAL | PASS | PASS++ |
| cross-surface 影響 | なし | なし | あり (PortalHeader nav 連動再設計要) |
| Round 1 mockup 適性 | 地味で feedback 取りにくい | 差分が明確で feedback 取りやすい | 方向性議論を引き起こすので Round 1 で見せる価値高 |
推奨 pick: B (中庸)
理由:
C を pick するべきケース: Justine が co-founder/メンター feedback で 「admin 画面は根本的に何のためにあるのか分からない」 という質的な不満が出た場合。 そのときは C の方が議論を生む。
A を pick するべきケース: Round 1 でとにかく可視的な改善を出して 「Kashi UI は仕様化されている」 ことを demo 用に示したい場合。
形式: pick app-admin=A|B|C を orchestrator に。
出典: app-admin__references.html (Stage 1 research) · permanent-ui-principles.md §1-§15 · design_system_v1.md §1-§10 · DATA_VISIBILITY_MATRIX.md §1-§10 · orchestrator_kickoff.html §3