Design Decisions — app-me — Variant C — Round 1

Generated by kashi-ui-mockupper · Picked variant: C (大胆 / unified reflection inbox model) · output: 03_mockups/app-me/C/index.html · upstream: 02_proposals/app-me__variants.html

Variant C 一行要約

「ダッシュボード」 framing を放棄し、 /app/me を /app/inbox に置換。 自分宫ての pattern update · 1on1 prep · notice · dispute · audit summary が 時系列 inbox に統合され、 Linear Inbox / Superhuman Split Inbox の self-reflection 版。

最大リスク: member 単独で采用すると mirror-me / admin / ceo / reviewer との cross-surface IA が分裂する。 Round 2 で 5 surface 統一方針を決定する必要あり。

1. 主タスクと上位構造

決定: 「ダッシュボード」 framing を放棄し、 inbox を唯一の navigation 器官にする

旧 /app/me の 9 ブロック縦長 (banner / role description / readiness / 3 signal cards / what Kashi doesn't know / notices / disputes) を、 単一の 時系列 inbox に flatten。 『どこから読めば良いか分からない』問題を structural に消す。

根拠: 02_proposals/app-me__variants.html Variant C 一行要約 · P1 today-first (4/6 refs Linear/Lattice/Notion/Superhuman) · P2 progressive disclosure (5/6 refs)
canon: permanent-ui-principles §7 (default visible 3-5 cards) · §8 (cognitive load: equally important 問題解消)

決定: PortalHeader nav を 3 items (Inbox / Reflection / Settings) に簡素化

現行 My Personal + My Audit を廴止。 Inbox はこのページ · Reflection は旧 9 ブロックを退避させた /app/reflection (Round 2 実装) · Settings は 通知設定, data export request 等。 audit は Inbox の「Audit access」 kind と Privacy bannerからアクセス可能 (nav から削除しても access path 2 本変わらず)。

brief 明示指定 · cross-surface IA 統一 Round 2 斜起(下記 §7 参照)

2. レイアウト

決定: fold 上 = Privacy banner + Filter chip + 今週グループ 3 件

上部から 70-80vh 内に 「自分が残す構造的されている足跡」と 「今週届いた 3 件」 が同時に見えるように設計。 先週 / 過去 30 日 はスクロールで自然到達。

canon: §7 (1 headline + 3-5 cards + 1 trust note) を inbox 形式に再解釈

決定: inbox アイテムは compact カード、 padding は --space-4/--space-5

1 ピクセル行だけ 深い 行高 (Linear 風) ではなく、 title + grade chip + window + reason code + 1 行説明 + 1-2 action を 含む中量カード。 kashi の semantic load (grade / reason / window を必ず表示) に対応するため、 Superhuman より少し ごつい。

canon: §5 (evidence 必须项目 7 点は collapse 不可) · §9 (every dashboard card must answer 8 questions)

決定: 時系列 grouping は 「今週 / 先週 / 過去 30 日」 3 段 固定

Linear は 「Today / Yesterday / Last week」 精密 grouping だが、 member の Kashi inbox は 鰣度が 1 日 0-2 件 (最大週 5-7 件) と低かったので、 週単位の方が UX よい。 「過去 30 日」 より前は archive リンクで sub-route に連れて行く(mockup では placeholder link)。

research: app-me__references.html Linear/Superhuman pattern weakly adapted

3. 采用したトークン

TokenSurface
--color-kashi-evergreen-deep #1F4A33page-title, role-badge, button-primary, focus ring
--color-kashi-evergreen #2F6B4Anav active border, unread dot, link color
--kashi-grade-stable #2F6B4ASTABLE pill (text label 必項)
--kashi-grade-emerging #2563EBEMERGING pill
--kashi-grade-insufficient #9CA3AFINSUFFICIENT pill
--kashi-grade-blocked #6B7280BLOCKED pill (low diarization 事例)
--emerald-50 #ECFDF5Privacy banner background
--cream #F5F0E6btn-secondary hover
--paper-tint #F7F8FAis-read state, filter chip default, window chip
--text-h1 40px / Fraunces 600page-title (1 H1 only)
--text-body 16px / IBM Plex Sansinbox-item-title
--text-caption 12px / IBM Plex Monokicker, group label, reason code, ts, grade pill
--space-8 48pxpage top padding
--radius-md 8pxinbox-item, privacy-banner, filter chip
--shadow-sm / --shadow-focusresting card / a11y focus ring

いずれも kashi/src/app/globals.css & kashi/docs/design/design_system_v1.md から逆量準拠。 B 版 (Variant B mockup) の token block を「そのまま継承」し、 新規 token は 0。

4. 采用した evidence-grade 表現

GradeMockup 内 使用箭所Color · Text label
STABLE / E21on1 prep prompt · 還次構造点#d9ebe0 bg + #14532d text + STABLE / E2
EMERGINGNotice (割り込まれ率 threshold cross)#dbeafe bg + #1e3a8a text + EMERGING
INSUFFICIENTignored: 過去 30 日比較不足 pattern update#e5e7eb bg + #4b5563 text + INSUFFICIENT
BLOCKED2026-05-02 会議 low diarization abstain#e5e7eb bg + #4b5563 text + BLOCKED

どれも color + text 両方 を表示(design_system_v1.md §1 a11y rule 「never color-only」を遵守)。 grade pill の dot は更に visual reinforcement(color-blind 安全)。

5. 削った要素 (現状の Kashi から)

§A privacy banner (構騰解説型) ー ー Privacy banner (1 行 summary) に圧縮

構騰解説は B 22ホᄄイテープーセンテ゚ー (1on1 prep / settings ・ help 連携) に退避。 banner は最重要,「過去 24h アクセス数」 だけ表示。

§B Member role description ー ー Settings / Help へ退避 (mockup 上は未构築)

重要だが 毎回読む内容ではない。 Settings 尿てを persistent に連携させる (Round 2 実装)。

§C Coverage readiness pill (大きい STABLE/EMERGING 表示) ー ー inbox 各 item 内に per-pattern grade pill

単一の readiness pill は 「一回だけ見れば良い」 framing だったが、 pattern 毎に window/grade が異なる現実に合わせ 各 inbox item に grade pill を付与。

§D §E §F 3-up signal grid ー ー /app/reflection (新) に退避

3-up grid は 封印化された metric snapshot なので、 member が「每日見る,変化に気付く」 場面は inbox の pattern update item の方が ROI 高いと判断。 封印型ブラウスは Reflection tab。

§G What Kashi does NOT know (7 bullet) ー ー INSUFFICIENT/BLOCKED 単体 item 化

法的免責文風 7 bullet を一殊 に 表示するより、 堳上された 一件 だけ(例: 2026-05-02 会議 low diarization)を inbox item として 届ける方が 事象として理解される。 起源: research §6 指摘「法的免責文に読める」 問題は SOLVED。 7 bullet 一覧は /app/reflection 下に残存。

6. 追加した要素 (現状にない)

Filter chip bar (All / Unread / Patterns / 1on1 prep / Notices / Disputes)

Superhuman Split Inbox の weak signal(research §4 R5 · 2/6 refs)を mockup では visually-functional に 実装(vanilla JS filter)。 keyboard shortcut は member 用 ROI 低いため 実装せず(translator 判断を履行)。

Audit access (self-confirmed) item type

Privacy banner だけでは、 「自分を誰が見たか」 を中袭されている感覚が足りない。 inbox item として 「過去 7 日,自分自身が 2 回閲覧。 employer = 0 件」 を明示することで、 「自分が自分を残す行為は employer に表示されない」 (§4)を毎週再確認させる。

Cross-surface IA risk 注記(mockup 上の螺曽型注要)

Justine が越す宰相 Round 2 判断点を失念しないよう、 ページ上部に 黃色注釈バナーを配置。 「mockup 実装時には削除する」 と明記済み。

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

··· vs B ··· trade-off matrix
観点B (IA 再構成)C (inbox model)
P1 today-firstPASS Today's Reflection card で実現PASS+ inbox 全体が時系列 (より底底的)
P2 progressive disclosurePASS 1 アコーディオン 4 项目PASS+ 1 行 summary + drilldown sub-route
P3 privacy ownershipPASS 4-line bannerPASS compact 1-line banner(同等)
cross-surface IASAFE nav,routing 不変RISK 4 surface が dashboard ままだと分裂
routing 変更none/app/me ー /app/inbox
i18n key 増加~5-8~15-20
実装工数M (4-6 日)L (10-14 日, cross-surface 済ませると 4-6 週)
上司 (田中部長) との 1on1 準備1 場所に集約 (Today's Reflection card)1 item として inbox に 届く (item 時系で届く)
9 ブロックの残存アコーディオン内に残存/app/reflection (新・次配備) に移行
未解決 1: cross-surface IA 分裂

最大の未解決。 member だけ inbox model にすると、 mirror-me (Manager) / admin / ceo / reviewer は dashboard のまま。 (manager が member の inbox を見て、 自分は dashboard だったら、 「Kashi って何を見せるアプリなん?」 と混乱する)

推奨方針(orchestrator 斜起): mirror-me (Manager) を先に inbox 化するのが ROI 高い(Manager は daily check-in persona で、 。inbox metaphor が完全に fit)。 mirror-me M + app-me C の組み合わせは mirror-me / app-me の IA が同一、 中間層を場を取って良い。

未解決 2: 「既読/未読」 を client-local (localStorage) にする制約

§4 employer-exposure 防止ドクトリンを守るため、 既読状態は DB に書かず localStorage に保存。 結果、端末跨ぎ(PC / iPhone) で既読状態が同期されない。 mockup では localStorage 実装済み。 実装時には次のD選択紾:

mockup は (A) で実装済み。 footer に明記あり。

未解決 3: portal-level routing 変更

member の post-login 着地 URL が /app/me/app/inbox に変更。 既存 bookmark / muscle memory に影響。 redirect を 6 ヶ月維持 (gradual deprecation) 推奨。

未解決 4: /app/reflection (旧 9 ブロック) の設計は Round 1 で未定義

Variant C 新設の Reflection nav item は placeholder。 旧 9 ブロックを 単に移すだけを遴けるのか、 不要なブロック(readiness pill 等)を削減するのか、 Round 2 実装時に判断必要。

8. Justine への決定質問

Q1. cross-surface IA はどう取り扱いますか?

下記 3 選択紾。

translator 推奨は (B)。 mockup で B + C 両方に触れて、 上記選択紾を Round 2 kickoff までに決定するのが reasonable。

Q2. mirror-me が B のまま (translator 推奨) だった場合は?

mirror-me が B 、 app-me が C だと IA 大分裂。 Manager は mirror-me (dashboard) を毎日見、 member は inbox を毎日見る,同一の Kashi なのに 為不取り風景が大きく変わる。 この 場合、 app-me は B (Today's Reflection card 方式)に戻す判断、あるいは mirror-me を C に昇格する判断、どちらかを Round 2 で決定する必要。

Q3. 「既読/未読」 concept 自体,残すか 捨てるか?

mockup では localStorage (A 案) で実装。 だが実装で端末跨ぎ同期本気で欲しい場合, 「既読」 概念自体を捨てて最新 N 件表示 (B 案) に倒す判断を Round 2 実装時に orchestrator に送る必要あり。

Q4. /app/reflection に旧 9 ブロックを 焼き直すか?

単に copy (旧 §A-§I をそのまま) するのは不推奨。 readiness pill は inbox の per-item grade に吸収され、 §G 7 bullet は per-item の reason code に吸収されるため, /app/reflection は 「月次 window summary」 + 「Member role description」 + 「data export request」 区りの軽量ページ に圧縮させるのが自然。 mockup 本体は placeholder link のみ、 Round 2 実装時の TODO。

9. canon 適合チェック(本mockup 上)

Canon判定実装場所
§2 forbidden wordingPASS「検知」「予測」「健康スコア」「生産性スコア」「at-risk」「all clear」 一切不使用。 safe wording (insufficient_comparable_meetings 等 reason code) を verbatim 表示。
§3 role boundaryPASSMember 単独。 inbox 内容は 自分宫て data のみ。 route guard は member 以外 redirect 前提。
§4 visibility per rolePASS既読/未読は localStorage。 audit_log write いっさいなし (ゲージfooterに明記)。 member 自身の click action は employer に届かない。
§5 evidence semanticsPASS各 inbox item に grade pill + reason code + window + 大半に not-a-verdict disclaimer。
§6 no-signal rulePASS「all clear」「安全」一切不使用。 empty-state (filter result = 0) は 原因を reason code (insufficient_comparable_meetings) で明記。
§7 progressive disclosurePASS1 H1 + 1 banner + 1 filter bar + 3-5 inbox item visible by default。 drilldown は sub-route (新設 /app/me/patterns/[id])。
§8 cognitive loadPASS「すべて同じ重さに見える」問題は inbox 1 本化で根本解決。
§9 dashboard rulesPASS人を 別ﻳﻱ.SDL6ﻺﻰ6ﻷ やM risk ラベル化,健康スコア, suppress や missing-data 隠蔵や, subordinate data 表示 一切なし。
§11 internal screenPASSrole label + visibility boundary + grade + reason + empty state + dispute path すべて含む。
§12 a11yPASS1 H1、 sane heading order、 focus-visible ring (3px evergreen)、 semantic nav/main/article、 grade pill = color + text + dot (三重 reinforcement)。
§13 visual systemPASSoff-white + dark evergreen、 calm badge、 surveillance icon、 eye、 red-alert 一切 無し。
DATA_VISIBILITY_MATRIXPASS各 inbox item は Member 列 Y(self) のみ。 AC-15 anonymized source 封印(Notice EMERGING item) 不変。

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

本 mockup を React に実装する場合の注意点:

kashi-ui-mockupper · ROUND_001 Stage 3 · app-me/C surface · output: workspace/strategy/ui-redesign/ROUND_001/03_mockups/app-me/C/