Design Decisions — app-admin — Variant C (大胆 / Operational Task Inbox)

Round 1 · Mockup ファイル: index.html · 生成 2026-05-27 · Agent: kashi-ui-mockupper

Variant C 本質: Admin home を 「アクション grid」 ではなく 「operational task の priority queue (inbox)」 として根本再定義した大胆案。 11 アクション flat grid → 6-8 件の優先度付きタスクリスト。 分析系入り口は UI 上で物理的に消滅。 PortalHeader nav は 3 items に縮小 (管理 Inbox / 設定 / ヘルプ) — これが cross-surface 影響源。
目次:

1. 主タスクと上位構造 (Inbox archetype)

決定: Admin home を 「アクション grid」 ではなく 「priority task queue (inbox)」 として根本再定義

主タスク: 「admin の inbox にある operational task を順番に消化する」。 admin は 「何をすべきか」 を考えない。 inbox が priority 順に提示する。 Stripe Dashboard の 「tasks widget」、 Okta Admin の 「pending tasks section」、 Linear の inbox UX を operational task に転用した archetype。

この変更の含意は深い:

根拠: app-admin__variants.html Variant C 「主タスク」 セクション · researcher §3 Okta R4 + Stripe R1 「tasks widget」 (N=2) · canon: permanent-ui-principles §7 progressive disclosure + §8 「one primary CTA」 の最強実装

2. 「分析」 系 CTA の徹底消去 (canon §4 max enforcement)

決定: 「Longitudinal / Coverage / Readiness / メンバー個別パターン」 系の入り口は UI 上で物理的に存在しない

Variant A はラベル改訂 (「稼働状況」 等) で残し、 Variant B も Tertiary fold 内に operational 文言で残す。 Variant C は UI ナビゲーション・カード・リンクのいずれからも到達不能 にする。 残された operational 系機能 (アップロード履歴 / 監査ログ等) は 「背景情報」 fold か 「設定」 fold 内に格下げ。

これは canon §4 「System admin: operational configuration + technical logs のみ」 の最強実装。 「explore してたまたま分析画面に辿り着く」 という事故を 構造的に 不可能にする。

根拠: DATA_VISIBILITY_MATRIX §3 §8 (admin = Pattern summaries / Per-meeting metrics / Team aggregates すべて N) · permanent-ui-principles §4 (System admin must NOT be treated as business reviewer / HR investigator / casual data viewer) · orchestrator brief 「分析系入り口は UI から物理的に消滅」 verbatim

3. レイアウト構造

決定: 上から PortalHeader → H1 → Scope Banner (max) → Inbox state → Priority Queue → 背景情報 (fold) → 設定 (fold) → footer

Above-fold は以下が見える:

  1. PortalHeader (簡素 nav 3 items) — 管理 Inbox (badge: 6) / 設定 / ヘルプ。 admin role の現状コンテキスト維持
  2. H1 = 「処理待ちタスク」 + role chip — admin が今いる場所を即明示
  3. Scope Boundary Banner (max strength) — evergreen filled bg、 cream text。 「意図的にこの画面から存在しません」 をベタ表記
  4. Inbox state 3 カード — 処理待ち / 完了 (今週) / 保留。 数値のみ、 ドリル先は inbox 内 (operational 完結)
  5. Priority queue 上位 2-3 行 — 「高 (オレンジ) ユーザー招待承認 3 件」 等が見える

スクロール後に: queue の残り行 → 「背景情報」 (組織概要 fold) → 「設定」 (8 項目 fold) → footer。

根拠: permanent-ui-principles §7 「default visible layer: 1 headline + 1 short explanation + 3-5 cards + 1 primary CTA + 1 trust note」 完全準拠。 Inbox row 上位 4 行が 「3-5 cards」 を充足、 Scope Banner が 「trust note」 を兼ねる。

4. Scope Boundary Banner — MAX STRENGTH

決定: B 版より明示的に強い視覚 + 文言 — evergreen 塗りつぶし + 「意図的に存在しません」 「これは Kashi の根本設計」

B 版は white background + 3px left border + ink text の控えめ banner。 C 版は evergreen filled background + cream text + 大型 shield icon でページ上で最も目立つ要素にする。 これは canon §1 「The UI wins by showing less」 の物理実装 — 「不在」 を 「設計的選択」 として最強に明示する。

具体的文言差分:

B 版 bannerC 版 banner
背景色--kashi-paper-tint (薄グレー)--kashi-evergreen (濃緑塗り)
テキスト色--kashi-ink (ダーク)--cream (淡)
主見出し「あなたは『組織と利用状況』の管理者です」「この Inbox は operational task のみ を扱います」
本文 tone「閲覧できません — これは Kashi の canon (役割境界) です」意図的にこの画面から存在しません — 分析系のページは UI 上で到達できません」
canon pill無し「canon §8 Bypass forbidden」 を 専用 pill 表示

根拠: orchestrator brief 「Scope Boundary Banner は max strength」 verbatim · researcher P-4 Stripe + GitHub + Okta + Google WS 由来の banner pattern を最強モードで適用 · canon §3 (role boundary first) + §8 (bypass forbidden)

5. 採用したトークン

決定: design_system_v1 + globals.css token を verbatim 適用、 token は invent しない
token使用箇所意図
--kashi-evergreenScope Banner 背景 · primary action button · KPI hover border · brand差別化アクセント・admin auth
--kashi-evergreen-deeppage-h1 · section-h2 · banner pill · hover stateshrillness を抑えた高階層 typo color
--creamScope Banner 内テキスト · footer disclaimer 背景 · 強調 chip 背景brand 連続性・暖かさ
--kashi-paperinbox row 背景 · KPI card 背景 · settings item hoverクリーン読み心地
--kashi-paper-tintsection subtle background (現実装では限定使用)階層 contrast
--kashi-bordercard outline · table cell border · accordion dividerハーフライン 1px 区切り
--kashi-ink-mutedcaption · meta · sub label · priority-low badge text2nd-tier text hierarchy
--kashi-grade-weak (#D97706)priority-high badge (オレンジ系)evidence-grade 色との連続性 (= 警告だが panic ではない)
--kashi-grade-emerging (#2563EB)priority-mid badge (青系)evidence-grade と一致 = 「観察中」 のメタファ
--font-serif (Fraunces)h1, h2, KPI value, banner titlecitation/heading の serious tone
--font-sans (Plex Sans + Zen Kaku)body, inbox-row title, button labelbilingual readability
--font-mono (Plex Mono)category tag, kicker, meta, due dateoperational/technical な atmospher
--shadow-focus全 interactive 要素a11y baseline (永続UI §12)
--space-{1..8}8 point grid 遵守design_system_v1 §3 適合

canon: design_system_v1.md §1-§4 verbatim · invent した token は 0 件

6. 優先度バッジ — 色 + テキストラベル必須 (a11y)

決定: priority badge は 「高/中/低」 のテキスト + 色 + border の 3 重シグナル、 色のみは禁止

design_system_v1 §1 「badges must include both color AND text label」 + permanent-ui-principles §12 「badges not color-only」 に従う。 優先度バッジは色だけでなく必ず日本語テキスト 「高 / 中 / 低」 を併記する。

優先度テキスト色トークンborder
「高」--kashi-grade-weak (#D97706)oranged 30% opacity
「中」--kashi-grade-emerging (#2563EB)blue 30% opacity
「低」--kashi-ink-mutedstone-100 grey

意図的に red (--kashi-state-error) を使わない: design_system_v1 §1 「red は true error states only — never for risk detected or analyzer output」。 operational task は 「処理が必要な状態」 で 「赤色警告」 ではない。

evidence-grade 色との意図的整合: priority-mid に --kashi-grade-emerging (青系) を使うことで、 evidence-grade UI と統一感を作る。 これにより future surface (mirror-me 等) との視覚言語整合性が保たれる。

根拠: design_system_v1.md §1 (Evidence-grade badges + Rule) · permanent-ui-principles §12 (a11y baseline) · §13 「No red alert dashboards」

7. Empty state — canon §6 「all clear」 禁止

決定: queue が空の時 「観察ウィンドウ内に新規 operational task はありません」 verbatim 表現

Kashi canon §6 「No Signal Rule」 は 「no qualifying signal」 never means 「no issue」。 「all clear」 「問題なし」 「健全」 系の表現は全て forbidden。

Inbox 空状態のテキスト (mockup-only phase switcher で確認可能):

観察ウィンドウ内に新規 operational task はありません

直近 7 日 (2026-05-20 〜 2026-05-27) で、 admin の対応が必要な operational task は検出されませんでした。 これは 「問題が無い」 ことを意味しません — operational task の検知対象外の状態 (例: 設定変更の提案がまだ無い、 アップロードが当該期間に存在しなかった、 等) も含みます。

重要な技術的選択:

根拠: permanent-ui-principles §6 (No Signal Rule) verbatim · §2 「forbidden wording: no issue detected / all clear」 · orchestrator brief 「§6 『観察ウィンドウ内に新規 operational task はありません』 verbatim」 指示

8. PortalHeader nav 縮小 (3 items) と cross-surface 影響

決定: admin role の PortalHeader nav を 6 items から 3 items に縮小 — これが C の cross-surface 影響源

B 版 (および現状の Kashi) は: 管理 / 経営 / レビュー / マイミラー / マイページ / 監査ログ の 6 items。 C 版は: 管理 Inbox (badge付き) / 設定 / ヘルプ の 3 items

この縮小の含意:

cross-surface 影響まとめ:

根拠: orchestrator brief 「PortalHeader nav 3 items に縮小 (Inbox / Members / Settings 等)」 (← mockup では Inbox / 設定 / ヘルプ に解釈、 members は inbox 内 task として吸収) · 参考: kashi/src/components/portal/PortalHeader.tsx · 実装工数: variant C 全体で 15-20 日 (うち nav 連動の調整 5-7 日相当)

9. 折りたたみ化された要素 (組織概要 / 設定)

決定: 「組織概要」 「設定」 はいずれも default fold、 inbox を主役にする

B 版で 「primary CTA カード」 + 「KPI strip」 + 「Secondary 4 cards」 + 「Tertiary fold」 + 「TeamRows」 として並んでいた要素を、 C 版は以下に再配置:

B 版要素C 版での扱い
Primary CTA カード (Phase 動的)→ Inbox 内の 1 行 row として吸収 (操作 task の 1 つ)
KPI strip 3 card削除し、 Inbox state 3 card に置換 (処理待ち / 完了 / 保留)。 組織 KPI は 「背景情報」 fold 内に格下げ
Secondary 4 cards (ユーザー管理等)→ Inbox 内に operational task として現れる ※招待承認 task 等として可視化
Tertiary 6 項目 fold (稼働状況 / データ品質 等)→ 「設定」 fold 8 項目に統合 (operational config の集約)
TeamRows expandable→ 「背景情報」 fold 内のリンクとして格下げ (件数 only)

意図: admin の primary affordance を 「処理待ちタスク」 一極集中させる。 頻度の低い設定変更は意図的展開を要求 (cognitive load を queue 処理に集中)。

根拠: variants.html Variant C 「採用する研究パターン」 「組織概要」 「設定」 fold 化方針 · permanent-ui-principles §7 progressive disclosure 最強実装

10. B との比較 — どちらを pick するか

B (中庸 / 推奨)C (大胆 / 本案)
IA 変更深度3 層化 + Scope BannerInbox 一本化 + nav 縮小
実装工数M (5-7 日)L (15-20 日、 cross-surface 含む)
cross-surface 影響無し (本 surface のみ)あり (他 4 surface の nav 連動再設計)
C-A1 (11 並列認知負荷)解決完全解決 (queue 化で構造的解消)
C-A3 (洞察誤読リスク)完全解決 (banner)究極解決 (UI から物理消滅)
C-A5 (利用状況把握)解決 (KPI strip drill)部分後退 (KPI は fold 内)
HR SaaS との差別化強 (banner)最強 (構造で完全)
Backend 依存低 (既存 schema で足る)高 (task aggregator service が新規必要)
既存 admin の muscle memory保持破壊
Round 1 feedback 生成力差分が明確で評価しやすい方向性論争を引き起こすので戦略 feedback 取得に有利
B vs C: 「進化」 vs 「跳躍」

B を pick: 着実に短期に出荷する。 既存 user を混乱させない。 後から C に進化させる余地は残せる (B の Primary CTA カードを inbox 0 番目 row と見做せば C へ連続)。

C を pick: Round 1 で 「方向性議論」 を最大化する。 co-founder/メンターから 「inbox 化は admin の認知モデルとして正しいか?」 という戦略 feedback を取りに行く。 実装 15-20 日のコストは、 設計討論の価値で正当化する。

中間案: Round 1 で C mockup を見せ、 「B を ship、 C を 6 ヶ月先の v2 北極星として記憶する」 という戦略判断もあり得る。

11. 既知のトレードオフ / 未解決

12. 実装フェーズへの引き継ぎ

対象 React 実装パス + 影響範囲

このモックアップを React 化する際の注意:

13. Justine 判断点 (co-founder / mentor feedback で問うべき問い)

Round 1 feedback で意思決定すべき問い
  1. 「admin の仕事 = inbox 処理」 という抽象は正しいか? — Kashi admin が実際の業務で 「キューを処理する」 ように働くなら C は適合。 「ダッシュボード俯瞰してから判断する」 タイプなら B が適合。
  2. HR SaaS との差別化を 「banner で語る」 vs 「構造で語る」 のどちらが投資家・パイロット顧客に響くか? — C は demo で見せれば 「画面に何もない (= 監視ではない)」 が即伝わる。 ただし機能不足と誤解されるリスクもある。
  3. 15-20 日の cross-surface 工数を Round 1-2 サイクルで負担できるか? — B (5-7 日) で着地し、 後で C へ進化させる選択肢が常にある。 C を直接選ぶのは 「もう B を経由する必要がない」 と判断できる場合のみ。
  4. 「利用状況把握」 (C-A5) を fold 内に格下げすることに admin user が耐えられるか? — pilot 顧客 (人事部 鈴木さん dummy) に聞ける質問。 「Inbox 主役 + 利用状況は折りたたみ」 と 「KPI 並び主役 + Inbox は補助」 のどちらが日常 workflow に近いか。
  5. 「PortalHeader 6 items → 3 items」 という変更が、 他 role (manager / reviewer / executive) に与える影響をどう受け止めるか? — admin 以外の role の nav は今回 mockup で触っていない。 他 surface の variant pick と整合性を取る必要あり。
  6. 「処理待ち 0 件」 状態が頻発する pilot 初期に C で大丈夫か? — 「観察ウィンドウ内に新規 operational task はありません」 が毎日表示される顧客体験は、 「画面が空っぽに見える」 リスクがある。 完了履歴へのリンクや 「次の operational event を待っています」 等の補助 affordance を強化する選択肢あり。

出典: app-admin__variants.html (Stage 2 translator output, Variant C) · permanent-ui-principles.md §1-§15 · design_system_v1.md §1-§10 · DATA_VISIBILITY_MATRIX §3 §8 · orchestrator brief 2026-05-27 (kashi-ui-orchestrator → kashi-ui-mockupper dispatch) · sibling B mockup index.html (token 継承元 + 「人事部 鈴木さん」 dummy)