Justine 向け概要: Stage 1 research が抽出した 8 つの強信号パターン (P-01〜P-08) と 5 つの canon-conflict 除外 (X-01〜X-05) を踏まえ、 /app/ceo の 3 variant を提示します。 各 variant は 同じ "情報ヒエラルキー再構築" 課題 に対して、 リスク許容度の異なる解を提示します。
Justine の不満 (Round 1 hypothesis): complaints.md は skip 判断のため、 research が r19 + design_system_v1 未実装 + 5 セクション equal-weight 平板 を 仮説 pain point として採用。 Round 1 mockup を Justine が共同創業者/友人/メンターに共有して具体 feedback を取得 → Round 2 で精度向上。
現在の 5-セクション構成と /app/ceo/[slug] drill-down 動線を維持したまま、 design_system_v1 トークンを一貫適用し、 suppression footer と role boundary note を追加するだけの最小介入。
経営層が 全マネージャーの evidence grade ロスターを俯瞰し、 governance 状態を確認する こと。 現状の主タスクを維持。
┌──────────────────────────────────────────────────────────────────┐ │ [Kashi] ExecutiveBriefPage [acaylar@keio.jp ▾] │ ├──────────────────────────────────────────────────────────────────┤ │ │ │ 経営者ビュー [Enterprise ●] │ │ Executive Brief — demo株式会社 │ │ │ │ ▸ 集約データのみ表示 | 個人識別情報なし | 観測窓: 直近90日固定 │ ← role boundary note (NEW) │ │ │ ┌──────────┬──────────┬──────────┬──────────┐ │ │ │Managers │ Review │Insuffic. │Adaptation│ stat strip │ │ │ 12 │ Cands 3 │ 2 │ Watch 1 │ (token整理のみ) │ │ │ of 14 │ of 12 │ of 14 │ of 12 │ │ │ └──────────┴──────────┴──────────┴──────────┘ │ │ 「2 teams suppressed (team_size < 5、 観察ウィンドウ内で │ ← suppression footer (NEW、 verbatim) │ チーム規模が比較可能になると更新されます)」 │ │ │ │ Roster (manager name / grade / lane / topSignal / reason / N) │ │ ┌────────────────────────────────────────────────────────┐ │ │ │ 田中 太郎 [STABLE] structural topSig... N=8 │ │ │ │ 佐藤 花子 [EMERGING] semantic topSig... N=5 │ │ │ │ 鈴木 一郎 [WEAK] structural topSig... N=3 │ │ │ │ (sorted alphabetically — grade-sort 禁止 / X-02) │ │ │ └────────────────────────────────────────────────────────┘ │ │ │ │ Plan C 集計 (現状維持、 token整理) │ │ ┌─┬─┬─┬─┬─┐ │ │ │.│.│.│.│.│ │ │ └─┴─┴─┴─┴─┘ │ │ │ │ Positive 集計 (現状維持、 token整理) │ │ ┌─┬─┬─┬─┬─┐ │ │ │.│.│.│.│.│ │ │ └─┴─┴─┴─┴─┘ │ │ │ │ ExecutiveAggregateSection (現状維持、 4 状態 inline) │ │ [Structural Lane] [Semantic Lane] [Reviewer Process] [Labor Leg.] │ │ │ │ audit footer │ └──────────────────────────────────────────────────────────────────┘
| 箇所 | トークン | r19 既知不整合 |
|---|---|---|
| page background | --kashi-paper-tint (#F7F8FA) | r19 §3.2 background 不統一 |
| card border | --kashi-border (#E5E7EB) | r19 §3.5 card border 不統一 |
| h1 | --text-h1 40px / weight 600 | r19 §4.1 type scale 未適用 |
| section h2 | --text-h2 32px | r19 §4.2 |
| evidence grade badge | --kashi-grade-stable 等 6 トークン | r19 §5.1 grade パレット未統一 |
| adaptation watch icon | --kashi-state-warning #B45309 (NOT red) | r19 §6.3 warning vs error 混同 |
| suppression footer | --text-body-sm + --kashi-ink-muted | r19 §7.4 disclaimer language不整合 |
| card spacing | --space-5 24px inner / --space-8 48px between | r19 §2.1 spacing rhythm |
Org-level executive aggregates: Y(k-anon) のみ表示。 affected-candidate identity / per-meeting metrics / individual risk alerts はいずれも N (aggregate-only) → 現状維持/app/ceo/[slug] 動線は維持。 unlock 4 条件未充足カードは link を表示しないこと (Variant A では既存ロジック維持、 UI 上 unlock 状態が明示されない点は B/C で改善)complaints.md skip のため hypothesis ベース:
S (small) — 1-2 day frontend work. CSS トークン整理 + suppression footer i18n キー追加 + role boundary note 追加。 ロジック変更なし、 ルート変更なし、 RLS 変更なし。 r19 35 件のうち app-ceo 該当箇所のみ (推定 8-10 件)。
"review candidates" を北極星 H1 メトリクスとして昇格、 Plan C / Positive / governance を progressive disclosure (折りたたみ / detail link) に降格。 全 stat に k-anon footer、 全画面に role boundary note、 window control を coverage strip から roster header 直下に昇格。 "structure-not-content + longitudinal" moat を visible に。
経営層が 「今、 経営判断に直結する review-worthy aggregate signal は何件あり、 どの window で観測されたか」 を 5 秒で把握する。 governance ステータスや Plan C / Positive 集計は副次情報として discoverable に。
┌──────────────────────────────────────────────────────────────────┐ │ [Kashi] Executive Brief [acaylar@keio.jp ▾] │ ├──────────────────────────────────────────────────────────────────┤ │ │ │ 経営者ビュー — demo株式会社 [Enterprise ●] │ │ ▸ 集約データのみ | 個人識別情報なし | k-anon 5名未満は抑制 │ ← role boundary (PROMOTED) │ │ │ ┌───────────────────────────────────────────────────────────┐ │ │ │ Review Candidates │ │ │ │ ┌────────┐ │ │ │ │ │ 3 │ reviewer 対応待ちチーム │ │ ← H1 metric (NEW — 北極星) │ │ │of 14 │ (うち 2 teams は team_size < 5 のため抑制) │ │ │ │ └────────┘ │ │ │ │ Observed window: 直近90日 (CEO_ROSTER_WINDOW_AWARE=false の │ │ ← window note (PROMOTED) │ │ ため固定窓。 観察ウィンドウが比較可能になると更新されます) │ │ │ └───────────────────────────────────────────────────────────┘ │ │ │ │ ┌──────────┬──────────┬──────────┐ │ │ │Managers │Insuffic. │Adaptation│ secondary stat strip │ │ │ 12 of 14 │ 2 of 14 │ 1 of 12 │ (3-col、 demoted) │ │ └──────────┴──────────┴──────────┘ │ │ │ │ Roster — Review Candidate Teams (3 teams) │ ← roster は review候補のみ表示 │ ┌────────────────────────────────────────────────────────┐ │ │ │ 営業部 [WEAK] structural │ │ │ │ topSignal: ... │ │ │ │ reason code: RC-031 / N=8 / window 直近30日 │ │ │ │ [→ /app/ceo/sales (unlock済)] │ │ │ ├────────────────────────────────────────────────────────┤ │ │ │ 開発部 [EMERGING] semantic │ │ │ │ topSignal: ... │ │ │ │ reason code: RC-008 / N=5 / window 直近30日 │ │ │ │ [→ /app/ceo/dev (unlock済)] │ │ │ ├────────────────────────────────────────────────────────┤ │ │ │ 管理部 [STABLE] structural │ │ │ │ topSignal: ... │ │ │ │ (個人 drill-down: unlock 4 条件 未充足 — link なし) │ │ ← unlock 状態明示 │ └────────────────────────────────────────────────────────┘ │ │ │ │ ▾ ロスター全表示 (12 teams) │ ← 折りたたみ │ ▾ Plan C 集計 (自律修正 / 私的改善 / エスカレーション) │ ← 折りたたみ │ ▾ Positive 集計 │ ← 折りたたみ │ │ │ ┌─────────────────────────────────────────────────────────┐ │ │ │ ガバナンスステータス (4 chips のみ、 詳細は別ページへ) │ │ ← ExecutiveAggregateSection 圧縮 │ │ ● Structural OK ● Semantic Off ● Reviewer OK ● Labor OK│ │ │ │ → ガバナンス詳細を確認 (link to /app/ceo/governance) │ │ │ └─────────────────────────────────────────────────────────┘ │ │ │ │ audit footer │ └──────────────────────────────────────────────────────────────────┘
CEO_ROSTER_WINDOW_AWARE=false の固定窓注記を H1 メトリクス直下のインフォバーに昇格 (現在は coverage strip 内の小テキストで埋没)
/app/ceo/governance サブページ (新規) へ routing
[→ /app/ceo/[slug] (unlock済)]、 未充足カードは link を表示しない (現状の暗黙ロジックを UI 上 explicit に)。 4-level breadcrumb は Variant C で本格採用
| 箇所 | トークン | 備考 |
|---|---|---|
| page | --kashi-paper-tint | Variant A と同 |
| H1 metric card border | --kashi-evergreen 2px (北極星強調) | NEW |
| H1 metric value | --text-display 56px or --text-h1 40px | NEW |
| secondary stat strip | --text-h3 24px (H1 より小) | 降格表現 |
| roster review-candidate cards | --shadow-sm + --radius-md | 視覚的 weight 中 |
| 折りたたみ accordion | --text-body + --space-3 | 降格表現 |
| governance chips | --kashi-grade-stable / --kashi-state-warning | 圧縮表示 |
| info bar (window note) | --kashi-state-info background tint | 誠実性ゲート明示 |
N → 全 stat に k-anon footer で明示/app/ceo/governance を新設する必要あり (小工数だが新 route)。
M (medium) — 4-6 day frontend work. ExecutiveBriefPage 同一 route 内で IA 再構築 + 折りたたみ component 追加 + /app/ceo/governance 新ページ (内容は既存 ExecutiveAggregateSection の移植)。 i18n 大量追加 (北極星 metric / suppression footer / unlock 状態ラベル / empty state)。 RLS 変更なし、 既存 unlock ロジック流用。
⚠ Variant C のみ: cross-surface 影響あり。 governance / Plan C / Positive / roster をそれぞれ独立 sub-route に分離、 landing は narrative card 1 つに統合。 実装工数 ≈ A/B の 3 倍。 sparkline (P-07) を採用するため k-anon hard-gate を 新規実装 する必要あり。
経営層が見るべき "今週の組織対話 signal" を 1 つの narrative aggregate card に統合 (3-4 数字 + observed window + 前期比 sparkline)。 そこから 4 つの drill-down hub (roster / governance / Plan C / Positive) に展開。 sparkline は k-anon hard-gate 経由のみ表示 (cleared なら出す、 cleared でなければ suppression reason 明示)。 全体は "俯瞰 → 興味あるところだけ深掘り" model。
経営層が 「先週から今週で、 組織の対話に何が起きたか」 を 30 秒で把握し、 深掘りすべき領域を 1 つ選んで drill-in する。 ロスター俯瞰は drill-in 先 (sub-route) に降格。
┌──────────────────────────────────────────────────────────────────┐ │ [Kashi] Executive Overview [acaylar@keio.jp ▾] │ ├──────────────────────────────────────────────────────────────────┤ │ Overview > Executive ▾ │ ← breadcrumb (lvl 1) │ │ │ 経営者ビュー — demo株式会社 [Enterprise ●] │ │ ▸ 集約データのみ | 個人識別情報なし | k-anon 5名未満は抑制 │ │ │ │ ┌─────────────────────────────────────────────────────────────┐ │ │ │ 今週の組織対話 signal │ │ ← narrative aggregate card (NEW) │ │ ───────────────────────────────────────────── │ │ (P-01 北極星 + P-07 sparkline) │ │ │ │ │ │ ・3 teams (of 14、 2 suppressed) で reviewer 対応待ち │ │ │ │ ↗ 先週比 +1 (sparkline: ▁▁▂▁▁▁▃ k-anon clear) │ │ ← sparkline は aggregate only │ │ ・2 teams で observed window が insufficient │ │ 個別 trend 一切表示しない │ │ ・governance: structural lane = OK / semantic lane = OFF │ │ │ │ │ │ │ │ Observed window: 直近90日固定 (window toggle = disabled by │ │ │ │ AC-05 trust gate — 連動性が担保できるまで操作不可) │ │ │ │ │ │ │ │ suppression footer: 「2 teams suppressed (team_size < 5)。 │ │ ← verbatim │ │ 観察ウィンドウ内でチーム規模が比較可能になると更新されます」 │ │ │ └─────────────────────────────────────────────────────────────┘ │ │ │ │ 深掘り先 (drill-down hubs) │ │ ┌─────────────┬─────────────┬─────────────┬─────────────┐ │ │ │ ロスター │ ガバナンス │ Plan C 集計 │ Positive 集計│ │ ← 4 hubs (drill-down lvl 2) │ │ 12 of 14 │ 4 状態 │ 集計 │ 集計 │ │ │ │ managers │ 最新更新 │ │ │ │ │ │ → │ → │ → │ → │ │ │ └─────────────┴─────────────┴─────────────┴─────────────┘ │ │ │ │ audit footer (audit chain 表示は別 hub にも展開) │ └──────────────────────────────────────────────────────────────────┘ [drill-down lvl 2 例: ロスター hub] ┌──────────────────────────────────────────────────────────────────┐ │ Overview > Executive > Roster ▾ │ ← breadcrumb │ ▸ 集約データのみ | 個人識別情報なし | k-anon 5名未満は抑制 │ │ │ │ Roster — 12 of 14 (2 teams suppressed) │ │ [filter: review-candidate のみ / 全 teams] [sort: alphabetical] │ ← grade 順 sort 禁止 │ │ │ ┌────────────────────────────────────────────────────────┐ │ │ │ 田中 太郎 (営業部) [WEAK] structural │ │ │ │ ... (Variant B と同様、 unlock 表示明示) │ │ │ └────────────────────────────────────────────────────────┘ │ └──────────────────────────────────────────────────────────────────┘
gateKanonSparkline() を呼び出し、 cleared なら表示、 cleared でなければ "観測ウィンドウ内のチーム規模が比較可能になるまで時系列表示は抑制されます" を表示。 これが Variant C の最大リスク・hard-gate 必須
| 箇所 | トークン | 備考 |
|---|---|---|
| breadcrumb | --text-body-sm + --kashi-ink-muted | NEW component |
| narrative card border | --kashi-evergreen-deep 2px | 主要 surface 強調 |
| narrative summary text | --text-body-lg 18px / 1.6 line-height | JP 1.1× 適用 |
| sparkline stroke | --kashi-evergreen (実線、 §6 chart rule) | solid for actual |
| sparkline trend direction | --kashi-state-warning (↗) / --kashi-state-info (↘) | 色 only NOT、 矢印テキスト併用 (a11y) |
| hub card | --shadow-sm + --radius-md + --space-5 | 4 個 grid |
| k-anon suppressed sparkline state | --kashi-state-blocked #6B7280 (placeholder) | suppression reason 文必須 |
Y(k-anon) aggregate のみgateKanonSparkline() 経由のみに制限。 各時点で team_size < 5 のデータポイントを除外、 結果として有効データポイントが N 未満なら sparkline 全体を suppress (placeholder + 理由文)。 これは新規 RLS query layer 追加が必要gateKanonSparkline() を新規実装する必要あり。 この gate を漏らすと、 各時点での team_size < 5 データが時系列で個人特定リスクを生む (例: 「先週まで 6 だったチーム数が今週 4 になった」 = 抑制された team が誰かバレる可能性)。 gate 未実装で sparkline を出すのは Variant C 採用 = NG。k-anonymity-query-layer RLS test に sparkline 版を追加)。 工数 +1-2 day。/app/ceo/roster / /app/ceo/governance / /app/ceo/plan-c / /app/ceo/positive。 既存 /app/ceo/[slug] と並列。L (large) — 12-18 day frontend + backend work. Variant B の 3 倍以上。 内訳: (a) landing 全面書き換え 3 day (b) 4 新 sub-route 各 1-2 day = 6-8 day (c) gateKanonSparkline() RLS + runtime gate 実装 + RLS test 追加 2-3 day (d) i18n 大量追加 + sparkline a11y (キーボード操作 / focus / placeholder 文) 2 day (e) migration banner + 既存ユーザー導線 1 day。 RLS 変更あり = DD 影響あり。
3 variant の trade-off:
| 軸 | A 保守的 | B 中庸 | C 大胆 |
|---|---|---|---|
| scope | 視覚 / トークンのみ | 同ページ内 IA | cross-page IA + 新 hard-gate |
| 工数 | S (1-2 day) | M (4-6 day) | L (12-18 day) |
| リスク | 低 | 中 | 高 (RLS + DD 影響) |
| 「どこを最初に見るか」 | 解決しない | 解決 (H1 北極星) | 完全解決 (narrative card 1 つ) |
| longitudinal moat 可視化 | 不可 | 言葉のみ | sparkline で完全可視化 |
| k-anon 安全性 | 既存維持 (footer 追加) | 既存維持 + UI 明示 | hard-gate 新規実装必要 |
| 新規 route | 0 | 1 (/governance) | 4 |
| r19 35 件 regress | 解消 8-10 件 | 解消 8-10 件 | 解消 8-10 件 + 新規 a11y 必要 |
形式: pick app-ceo=A または pick app-ceo=B または pick app-ceo=C を orchestrator に。 全 NG なら redo proposal app-ceo <feedback>。
結論: 5 canon-conflict pattern (X-01〜X-05) の混入なし。 3 variant いずれも DATA_VISIBILITY_MATRIX §3 Executive 行 + §5 k-anon floor + §6 drill-down unlock を尊重。