/app/admin — Round 1Justine picked Variant B (中庸)。 translator の比較表によると B は:
実装工数 M (5-7 日) / cross-surface 影響なし / canon §3 §4 §7 §8 すべて PASS+。 C と比べると 11 アクション削除ではなく 「再配置 + 折りたたみ」 で行うため、 admin の既存 muscle memory を維持しつつ認知負荷を下げる。
現状の主タスクは 「11 アクションへの分岐ハブ」 だった。 これが C-A1 (認知負荷) の根因。 B では pilot phase に応じて Primary CTA が動的 になる主タスクに再定義。 mockup では phase A (setup 未完) / phase B (post-setup, default 表示) / phase C (定常運用) の 3 状態を切り替え可能にした (mockup-only の phase switcher)。
根拠: translator proposal Variant B 「主タスク」 セクション + research §8 リスク 3 (post-setup 空白問題) の回避策 / canon: permanent-ui-principles §8 「one primary CTA」
Tertiary は default 折りたたみだが 「6 項目を表示 ▾」 の明示的 hint で 「機能が無いと思い込む」 リスクを回避 (translator の残るリスク 1 への対応)。
根拠: research §3 P-3 (N=5: Stripe + Vercel + Okta + Google WS + B2B UX) / canon: permanent-ui-principles §7 「default visible layer 3-5 cards」 §8 「grouped controls」
文言:
「あなたは 『組織と利用状況』 の管理者です」
「この画面では ユーザー・チーム・アップロード・運用設定 を管理できます」
「一方で、 ミーティングの中身・メンバー個別の発話パターン・シグナル はこの画面からは閲覧できません」
「— これは Kashi の canon (役割境界) です」
フッターリンク: 「データ可視性マトリクス §3 / §8」 + 「canon: 永続UI原則 §4」
banner は F7F8FA 背景 + 4px 2F6B4A left border + ShieldCheck icon。 surveillance 系の 「目」 「カメラ」 メタファーを避けて 「盾 = 境界保護」 のメタファーを採用 (permanent-ui-principles §13)。
根拠: translator Variant B Scope Boundary Banner 仕様 + research P-4 (N=4: Stripe + GitHub + Okta + Google WS) / canon: permanent-ui-principles §3 (Role Boundary First) + §4 (System Admin = operational only) + DATA_VISIBILITY_MATRIX §3 / §8 (Bypass forbidden)
| Pattern | 適用 | 調整点 |
|---|---|---|
| P-1 Setup Checklist → Post-Setup Transition | 採用 (発展) | checklist 完了で消す現状実装を 「稼働中バナー + 次アクション CTA」 に切り替える evolved 版に。 mockup の phase switcher で 3 状態を確認可能 |
| P-2 KPI strip (3-stat with drill-down) | 採用 | drill-down 先を operational ページに限定 (チーム一覧 / ユーザー管理 / アップロード履歴)。 分析系 (Longitudinal 等) には絶対飛ばさない |
| P-3 3-Layer Action Architecture | 採用 | translator 仕様通り Primary 1 / Secondary 4 / Tertiary 6 fold |
| P-4 Scope Boundary Banner | 採用 (フル) | H1 直下、 dismissible 無し、 ShieldCheck icon 付き |
| P-5 Expandable TeamRow | 採用 (調整) | 展開 detail は 期間 / 平均時間 / 処理ソース内訳 + scope-note のみ。 ミーティングタイトル列は完全除去 (research §7 リスク 2 回避) |
| § | 判定 | 根拠 |
|---|---|---|
| permanent-ui §3 Role Boundary First | PASS+ | H1 直下に Scope Boundary Banner + role chip + 6 質問 (who/what visible/what hidden/safe action/forbidden/audit) を banner で 1 箇所集約 |
| permanent-ui §4 Visibility (System Admin) | PASS+ | 「operational configuration + technical logs のみ」 を banner で明示。 Tertiary 6 項目はすべて operational 文言 (稼働状況 / データ品質 / 準備度 / ポリシー / 話者 / ジョブ・通知) |
| permanent-ui §7 Progressive Disclosure | PASS | default visible = H1 + banner + KPI 3 + primary CTA 1 + secondary 4 + tertiary header (折りたたみ) + チーム 5 行 → 「3-5 cards + 1 primary CTA」 ルール準拠 |
| permanent-ui §8 Cognitive Load | PASS | 明確な H1 + 4 つの H2 セクション + 1 primary CTA + grouped controls。 「equal-weight CTA spam」 が構造的に解消 |
| permanent-ui §9 Dashboard Rules | PASS | KPI は count のみ (チーム数 / メンバー数 / 処理件数)。 個人 rank / health score / 「at-risk」 ラベル 0 件 |
| permanent-ui §11 Internal Screen Rules | PASS+ | role label (header chip) + visibility boundary (banner) + safe actions (secondary 4) + forbidden context (banner の 「ミーティング中身は見えない」) + audit semantics (Tertiary 内 「ジョブ監視・通知・監査ログ」) |
| permanent-ui §12 A11y / Mobile | PASS | 1 H1 + 4 H2 (順序正) + button/accordion に aria-expanded + focus ring (--shadow-focus) + 920px / 600px breakpoint + tap target 44px+ + badge は色のみでなくテキストラベル |
| permanent-ui §13 Visual System | PASS | off-white base + 濃緑 accent + outline Lucide-style icon 1.5px stroke。 ShieldCheck は 「policy boundary」 メタファーで 「security camera」 とは別物 (§7 アクセプタブル icon) |
| DATA_VISIBILITY_MATRIX §3 (Admin scope) | PASS+ | Pattern summaries / Per-meeting metrics / Team aggregates いずれも N。 表示は organizational count + operational config のみ |
| DATA_VISIBILITY_MATRIX §8 (Bypass forbidden) | PASS | 分析系ページへの CTA 0 件。 「ミーティング洞察」 「メンバー発言」 系の語彙 0 件 (チーム展開の scope-note でも明示) |
| permanent-ui §2 forbidden wording | CLEAN | 「at-risk」 「organizational health score」 「team health score」 「productivity score」 「detects harassment」 等 0 件。 footer disclaimer で明示的 refuse |
| トークン | 使用箇所 |
|---|---|
--kashi-evergreen #2F6B4A |
Scope Banner left border / Primary CTA filled button / Secondary card icon / accordion title color / KPI hover border / ShieldCheck icon |
--kashi-evergreen-deep #1F4A33 |
page H1 / H2 / banner title / primary CTA hover |
--cream #F5F0E6 |
role chip background / footer disclaimer / TeamRow scope-note / portal header brand text |
--kashi-paper-tint #F7F8FA |
Scope Banner 背景 (subtle differentiation) |
--kashi-paper + --kashi-border |
全 outline カード (KPI / Secondary / Tertiary / Primary CTA / Teams card) |
--stone-50 #FAFAF7 |
body background (off-white base per §13) |
--shadow-focus |
全 interactive 要素の focus-visible ring (a11y baseline §12) |
| type scale (font-serif Fraunces) | H1 36px / H2 24px (h3 token) / KPI 数値 32px / banner title 16px / 全 display text |
| type scale (font-sans IBM Plex + Zen Kaku) | body / labels / CTA text |
| type scale (font-mono IBM Plex Mono) | kicker / role badge / KPI subtitle / accordion hint / scope banner footnote / manager id labels |
| spacing rhythm (8pt grid) | --space-2/3/4/5/6/8 を使用。 セクション間 --space-8、 カード内 --space-5、 card gap --space-4 |
理由: admin home はそもそも個別ミーティング / pattern summary / structural metric を表示しない (canon §4)。 evidence grade は 「signal の確からしさ」 を伝える装置であり、 admin scope の operational view にはそもそも該当する情報が無い。 design_system_v1 のトークン定義 (grade-stable 等) は CSS root に記載してあるが、 mockup 上で使用していない。 Mirror / CEO / Reviewer 等の signal-bearing surface でのみ表示される予定 (DATA_VISIBILITY_MATRIX §5 経由)。
根拠: DATA_VISIBILITY_MATRIX §3 / permanent-ui-principles §4 §5 / design_system_v1 §1
setupComplete フラグは流用可能だが、 「Manager に Mirror URL 共有済みか」 等の post-setup state は未実装。
kashi/src/app/app/admin/page.tsx (484 行) — メインの実装対象。 現状の 11 アクション grid を 3 層構造に再構築。
kashi/src/app/app/admin/team-row.tsx — 展開 detail からミーティングタイトル列を除去、 集計 4 ブロック表示に整理。
kashi/src/app/app/admin/recent-meetings-list.tsx — admin home からは削除、 別 page (「稼働状況」 内) に移動するか完全廃止。
kashi/messages/ja.json + en.json — admin.home.* の copy を Scope Banner / phase-aware CTA / 改訂ラベル (稼働状況 / データ品質 / 準備度) に拡張。 i18n 39 test files が pin する verbatim string と同期必要 (LESSONS 2026-05-15 参照)。
kashi/src/components/portal/PortalHeader.tsx — 変更なし (B は cross-surface 影響なしの中庸案)。 navigation は維持。
kashi/src/lib/auth/authorization.ts — requireRole 維持。 phase 判定の helper 追加が必要 (setup_complete / pilot_active / steady_state)。
ScopeBoundaryBanner — 全 admin/internal screen で再利用可能。 props: role + scopeStatement + canonRefs[]。
PrimaryCTACard — phase-aware の next-action card。 props: phase + headline + detail + ctaHref + ctaLabel + statusLabel。
SecondaryActionGrid — 4 cards layout。 既存 Card component と統一可能。
TertiaryAccordion — fold/unfold operational links。 既存 Lucide chevron + radix-ui Accordion 等。
KPIStrip — 3 cards with drill-down。 admin / ceo / reviewer で再利用可能 (drill-down 先のみ role-aware)。
LESSONS 2026-05-15 「i18n verbatim test pinning — 39 test files pin 検証文字列」 通り、 admin.home.* キー追加 / 改訂時は以下を同期必要:
messages/ja.json + en.json に追加
現状 admin/page.tsx は meetings table から title + ingest_source を SELECT している。
B 案では Admin home でこれらを表示しないので、 query は meetings.count + ingest_source group by に簡素化可能。
title fetch は 「稼働状況」 page にだけ残せばよく、 RLS は変更不要 (admin は既に meetings.title 読み取り可)。
co-founder/メンター に共有する際は以下のフレーミング推奨: