本書は pilot/A/index.html mockup の設計判断記録です。 とりわけ 2026-05-27 の fabrication 事故 (Justine が直接 catch、 月額 ¥240,000 / 90 日 / SOC 2 / 専任 CS / 完全削除証明書 等の canon 矛盾を creative 創作) の再発防止として、 canon-verified value のみを採用した経緯と、 enterprise 文書 affordance を維持するために採った代替表現を記述します。
Self-audit ・ Forbidden patterns grep (regenerate 後)
¥[0-9]+,[0-9]{3} (金額表記) → 0 件 (canon に公開価格無し、 「ご相談」 「pilot 期間中無料」 のみ)
90 ?日 / 60 ?日 / 180 ?日 (30 日以外の期間) → 0 件 (「30 日間」 のみ canon 確定)
Google Meet / Microsoft Teams / Webex → 0 件 (Zoom Pro のみ運用可)
SSO / SAML / OIDC / SCIM → 0 件 (canon source 不明)
SOC 2 / ISO 27001 / ISO 27018 / ISO 30414 → 0 件 (canon 取得状況不明)
専任 CS / ソリューションエンジニア / カスタマーサクセス → 0 件 (確定 role 言及禁止)
ROI ¥ / 離職率 ..% / 生産性 ..% → 0 件 (成果保証禁止 doctrine)
300 名 (規模条件) → 0 件 (canon の対象は 「1 チーム」 のみ、 人数規模条件無し)
完全削除証明 → 0 件 (canon source 不明、 「契約書に明記」 placeholder に置換)
ROI シート → 0 件 (確定的成果物 list 禁止)
Canon 言及確認 (必須要素)
- ✓ 「毎月 3 枠限定」 言及 — cover の slot-callout、 spec-table 1 行、 form actions、 sticky CTA sub の 4 箇所で言及済み
- ✓ 「1 チーム」 言及 — cover subtitle、 spec-table、 section 1 lead、 section 7 で言及
- ✓ 「30 日間」 言及 — cover summary、 spec-table、 section 3 timeline (5 stops × DAY 0/7/14/21/30) で言及
- ✓ 「共同レビュー」 言及 — section 4 全体、 spec-table、 cover で言及
- ✓ 「Zoom Pro」 のみ言及 — section 5 「CONFERENCING」 row で明示、 「他の会議システムは対応していない」 と canon 整合の禁止明記
- ✓ 「パイロット期間中は無料」 言及 — spec-table 「パイロット費用」 row
- ✓ 「違約金なし」 言及 — section 6 撤退条件 note-panel
1. 主タスクと上位構造
決定: 「9 セクション + 表紙 + 目次 構成の Pilot Programme Brief」 という、 稟議書類添付想定の文書 affordance を採用
pilot ページのコア conversion は 「人事責任者から 30 日間の試用契約を取り付ける」 こと。 大手企業の人事責任者は単独では判断せず、 役員・法務・情シスへ共有 → 稟議で決裁という flow を踏む。 そのため、 ページそのものを
「上長・他部門に転送できる完結した文書」 として再構成。 DOC-ID、 版数、 目次、 セクション番号、 各 cell の出典明記 (canon source) を全て盛り込み、 印刷 / PDF 化しても通用するように設計。
canon: pilotPage (ja.json) / permanent-ui-principles §7 (progressive disclosure but doc-grade depth) / 役員稟議文化 (research 既知)
決定: cover 右上に DOC-ID + 版数 + 「月間受入枠 / 毎月 3 枠限定」 callout を配置
「毎月 3 枠限定」 は canon の核心 fact (
pilotCtaSubline) であり、 申込判断における urgency driver でもある。 cover の最も目に入る場所 (右上、 evergreen ボーダー付き callout) に配置し、 readers が 「今申し込むか後で良いか」 の判断軸を即座に得られるようにした。
canon: pilotCtaSubline「毎月3枠限定。」 / pilotPage.expect.items.slots
決定: 「DOCUMENT / DOC-ID / 版数」 strip をページ最上部に固定
enterprise 文書 affordance のための装飾要素 (実質的には 「これは公文書である」 と認識させる視覚的 anchor)。 内容は creative ではなく機械的な metadata のみで、 fabrication risk なし。
design rationale: 提案書 / 仕様書 / 監査文書 で頻出する pattern (research/japan-market-design)
2. レイアウト判断
決定: max-width 1100px、 sections は white card + 1px border (var(--line) #D6D2C4) で区切る
「文書感」 を最優先。 cream 背景 (#FAFAF7) に白カード積層で 「ページが捲られているような」 視覚的 metaphor を作る。 dense layout だが、 各 section が border で明確に区切られていることで、 印刷 PDF 化した際にも page break が綺麗に決まる。
design_system_v1.md: --color-cream + ink scale を base palette として尊重
決定: section 番号は section-num pill (mono font + ベージュ背景) で左に分離、 title と並列
IBM Plex Mono の利用は 「ファイル名 / 識別子 / 仕様書 caption」 という mechanical な context に限定 (canon の type 役割定義に整合)。 SECTION 1 〜 SECTION 9 という機械的な ordering は、 文書 affordance を強化しつつ、 装飾的ではなくナビゲーション機能として働く。
design_system_v1.md: IBM Plex Mono = mechanical / metadata 用途
決定: 30 日間タイムラインを 5 column grid (DAY 0 / 7 / 14 / 21 / 30) で表現、 各 phase に独立した card
Kashi の canon timeline (
salesHub.pilotTimeline.stops) を視覚化。 phase 名は canon そのままを使用 (「キックオフ / 初期設定・調整 / 中間レビュー / 評価条件の確認 / 最終レビュー」)。 days も canon の通り (
salesHub.pilotTimeline.days = 「0日目 / 7日目 / 14日目 / 21日目 / 30日目」)。 各 phase の body は canon の文言を保ちつつ、 「Day 0 は Zoom Pro 環境の接続確認」 等の運用ディテールを controlled に補足。
canon: salesHub.pilotTimeline.stops + days / pilotPage.expect
3. 採用した design tokens
| Token | 値 | 本 mockup での用途 |
--color-kashi-evergreen | #1F3D33 | doc-strip 背景、 brand mark、 H1〜H3、 spec-table label、 submit button、 sticky CTA bar 背景、 phase card top stripe |
--color-kashi-evergreen-deep | #244A3D | button hover state (submit, nav-cta) |
--color-emerald-700 | #047857 | phase-day label、 eligibility bullets、 必須項目 marker、 link、 slot callout border |
--color-cream | #F5F0E6 | sticky CTA button 背景 (dark bar 上のコントラスト確保) |
--ink | #2A3A1E | 本文・spec-table value |
--ink-soft | #4B5746 | section-lead、 info-card body、 secondary text |
--ink-faint | #7A8273 | doc-meta、 source-tag、 footer、 toc 番号 |
| Fraunces | 500/italic | h1〜h4、 cover subtitle、 phase-title、 sticky CTA lead — serif による文書感 |
| IBM Plex Mono | 400/500 | DOC-ID、 doc-meta、 section-num、 source code 引用、 spec-table header、 ckey label — mechanical context |
| IBM Plex Sans | 400/500/600 | 本文 sans、 form labels、 ボタン text |
| Zen Kaku Gothic New | fallback | 日本語のフォールバック (Plex Sans の JA glyphs 補完) |
evidence-grade tokens (--kashi-grade-*) は本ページでは 不採用。 pilot 申込ページの文脈では grade 表示の意味的必要性が無いため (evidence grade はメンバー・チーム個別レビュー画面の concept)。 Variant A の B2B 文書 tone は data grade UI ではなく仕様書 typography で表現。
4. Canon-verify 詳細表 (前回事故の再発防止)
本ページで言及している全 「期間 / 価格 / integration / 認証 / team composition / 成果 KPI / 納品物」 項目について、 canon source の有無と、 canon に無い場合の代替表現を明記。
| 項目 | 本書での表現 | Canon source | 前回 fabrication との差分 |
| 対象規模 |
1 チーム単位 |
pilotPage.hero.titleLine1 |
前回 「300 名規模対応」 fabrication → 削除、 「1 チーム」 統一 |
| 実施期間 |
30 日間 |
pilotPage.hero.titleLine2 + pilotCtaSubline |
前回 「90 日 PoC」 fabrication → 削除、 「30 日間」 統一 |
| 会議システム |
Zoom Pro プランのみ運用可 |
memory project_zoom_integration_pending |
前回 「Google Meet / Teams 対応」 fabrication → 削除、 「他の会議システムは対応していない」 を明記 |
| パイロット費用 |
パイロット期間中は無料 |
pilotPage.expect.items.pricing「特別条件」 |
前回 「¥240,000 / 月」 fabrication → 削除、 「無料」 のみ |
| 本契約価格 |
個別にご相談 |
canon に公開価格無し |
前回 「¥240,000 / 月」 fabrication → 削除、 「ご相談ください」 placeholder。 価格表記についての説明 panel を明示追加 |
| 認証取得 (SOC 2 等) |
言及無し |
canon source 無し |
前回 「SOC 2 Type II 準拠」 fabrication → 削除、 言及そのものを削除 |
| 認証連携 (SSO 等) |
「貴社のご要件に応じて事前ミーティングで個別に協議」 |
canon source 無し |
前回 「SSO (SAML / OIDC) 連携」 fabrication → 削除、 「個別協議」 placeholder |
| 運用支援体制 |
「Kashi チームが直接サポート」 |
pilotPage.expect.items.slots「私たちが直接伴走します」 |
前回 「専任 CS 1 名 + ソリューションエンジニア 1 名」 fabrication → 削除、 controlled な総称表現に置換 |
| 納品物 |
「具体的な可視化形式・粒度は事前ミーティングで個別決定」 |
canon に確定 list 無し |
前回 「個別 ROI シート / 観測レポート (月次) / セキュリティ白書 / 監査ログエクスポート」 fabrication → 全削除、 「個別決定」 placeholder と canon 整合の controlled 表現のみ |
| 成果保証 |
「特定の数値成果をお約束するものではない」 と明示 |
FORBIDDEN_CLAIMS_REGISTRY + permanent-ui-principles §2 |
前回 「離職率 ○% 改善」 「ROI ¥xxx 万」 fabrication → 削除、 さらに 「非目的」 card で明示的 disavow に転換 (variant C で実証された pattern) |
| データ削除 |
「契約書に明記」 |
canon source 無し |
前回 「完全削除証明書を発行」 fabrication → 削除、 「契約書に明記」 placeholder |
| 撤退条件 |
「pilot 中・終了時いずれも違約金なし」 |
doctrine 整合 (Kashi は引き止めない設計思想) |
不変、 doctrine と整合 |
| 事前ミーティング |
30 分 |
pilotPage.hero.leadLine2 |
不変、 canon そのまま |
| 初回応答 |
24 時間以内 (営業日) |
pilotPage.form.lead |
不変、 canon そのまま |
運用ルール / 本ページ regenerate 時、 「数値 / 固有名 / 確定的 commitment 表現」 を追加・変更する場合は、 必ず /tmp/site_canon_facts.txt の whitelist と本表を照合してから書くこと。 whitelist に無いものは fabricate 禁止、 「ご相談ください」 「pilot 担当者と協議」 「契約書に明記」 等の placeholder に強制置換。
5. 削った要素 (前回 fabrication 案からの差分)
本 regenerate 版で 削除した要素 と、 削除理由。
- 「90 日 PoC プログラム」 セクション → canon 期間は 30 日のみ。 90 日表記は fabrication で、 共同創業者が顧客との会話で quote した場合に虚偽 commitment になるリスク。 全削除し、 「30 日間」 で統一。
- 「¥240,000 / 月 (パイロット価格表)」 表 → canon に公開価格無し。 数字は 100% fabrication。 価格表自体を削除し、 「本契約以降は個別にご相談」 と price-note panel で代替。
- 「Google Meet / Microsoft Teams 対応」 ロゴ列 → 実装されていない integration の fabrication。 削除し、 「Zoom Pro のみ運用可」 を明示。
- 「SOC 2 Type II 準拠 / ISO 27001 認証取得」 セキュリティ badge 群 → canon に取得状況の記述無し。 「在審査中」 等の placeholder ですら未確認のため、 言及そのものを削除し、 「DPA 草案請求」 への誘導に置換。
- 「専任 CS 1 名 + ソリューションエンジニア 1 名 が併走」 体制図 → Kashi は早期スタートアップで dedicated role は限定。 確定的な人員約束は不可能。 「Kashi チームが直接サポート、 具体的な担当者構成は ご相談時に調整」 という controlled な表現に置換。
- 「ROI シート / セキュリティ白書 / 監査ログエクスポート 等の確定的 deliverable list」 → canon に標準パッケージの記載無し。 全削除し、 「具体的な可視化形式・粒度は事前ミーティングで個別決定」 で代替。
- 「離職率 ○ % 改善 / 人的資本投資効率 xx% 向上」 ROI 数値 → Kashi doctrine 違反 (成果保証しない)。 削除した上で、 「本パイロットの非目的」 card で明示的に disavow に転換。
- 「完全削除証明書を発行」 commitment → canon source 無く、 真に約束可能な範囲が未確認。 「契約書に明記」 placeholder に置換。
- 「300 名規模対応」 等の規模条件 → canon の対象は 「1 チーム単位」 のみ、 人数規模条件無し。 削除し、 form の 「対象チームの人数」 select (5〜15 / 16〜30 / 31〜50 / 51 名以上、 canon そのまま) に集約。
6. 追加した要素 (canon 整合・前回事故の再発防止のため)
- cover 右上 「月間受入枠 / 毎月 3 枠限定」 callout — canon の核心 fact (
pilotCtaSubline) を最初の視野内に配置。 前回も sticky CTA には入っていたが、 cover 内で 1 番に目に入る位置への昇格は今回追加。
- 各 spec table cell に canon source 出典明記 列 — 「この値はどこから来たか」 を文書上で明示。 自己審査と、 future-me / 共同創業者 / 法務 review 時のトレース確保。
- 「本パイロットの非目的」 info-card — Variant C で実証された 「明示的 disavow」 pattern を、 B2B 文書 tone でも採用。 enterprise 提案書において 「目的」 と並べて 「非目的」 を明記するのは異例だが、 これが Kashi doctrine の差別化要素そのものでもある。
- 「本書の位置づけ」 note panel (section 1 末尾) — canon に該当値が無い項目について 「ご相談ください」 placeholder にしている理由を、 文書として明示。 readers が 「具体性が足りない」 と感じたときの安心材料 (= canon 整合のため、 故意に確定表現を避けている という説明)。
- 「価格表記に関するご案内」 price-note (section 2 末尾) — 価格が公開されていないことそのものを 「説明」 として記述。 enterprise 文書では sublime な default だが、 むしろ明示的に書くことで信頼を上げる pattern (cf. 一部の B2B SaaS 「お問い合わせ」 価格戦略)。
- 「セキュリティ・認証ご要件について」 section (section 5) — SSO / SOC 2 等の「資格認定 badge」 を削除する代わりに、 「個別協議」 を一段ご丁寧に説明し、 DPA 草案請求への誘導を組み込む。 セキュリティ要件を持つ readers の離脱を防ぐ。
7. 既知のトレードオフ / 未解決
トレードオフ 1: 「価格が公開されない」 ことが、 B2B enterprise readers にとって 「不誠実」 と映る可能性
解決策として 「価格表記に関するご案内」 panel を明示追加したが、 一部の readers (特に経理部門) は依然違和感を持つ可能性あり。 もし pilot の本契約価格が canon 化される時期が来たら、 spec-table の該当 row を実数に置換することで一発解消可能。 現時点では canon にないため fabricate しない discipline 優先。
トレードオフ 2: 「Zoom Pro のみ」 が、 Google Workspace / Microsoft 365 メインの企業を最初の段階で除外する
これは canon 制約による不可避な現実。 mockup 上で 「Meet / Teams 対応」 と書くことは fabrication なので不可。 中長期的に integration が増えた段階で section 5 「CONFERENCING」 row を更新することで対応。
トレードオフ 3: 「専任 CS」 等の dedicated role を約束しない ことで、 「導入後の伴走体制」 が薄く感じられる可能性
「Kashi チームが直接サポート」 という総称表現で、 期待値を controlled に保ちつつ、 「ご相談時に調整」 で柔軟性を担保。 実態に応じた約束のみ可能、 という Kashi の段階的成熟スタンスを正直に表現。
未解決 1: contact ページとの関係性
本ページの form は 「パイロット導入相談」 専用。 一般のお問い合わせ (取材、 投資家、 採用、 メディア等) は別 contact ページで受ける想定だが、 本ページからの誘導が footer のみで弱い。 contact ページの mockup と整合させる際に再検討対象。
未解決 2: 本ページの実装 (React / Next.js) 時のフォーム submit 先
現状 mockup は onsubmit preventDefault + alert のみ。 実装時は /api/pilot-requests (canon、 kashi/src/app/pilot/page.tsx 既存ルート) に POST し、 Vercel function logs に durable log → founder triage という flow を継承。
8. 実装フェーズへの引き継ぎ
該当する Kashi コード
kashi/src/app/pilot/page.tsx — メインページ (既存)
kashi/src/components/pilot/PilotRequestForm.tsx — フォームコンポーネント (既存、 本案で UI 拡張)
kashi/src/components/sales-hub/PilotTimelineStrip.tsx — 30 日タイムライン (既存、 本案で 「DAY 0 / 7 / 14 / 21 / 30」 とフェーズ名を visual に強化)
kashi/src/app/api/pilot-requests/route.ts — フォーム submit エンドポイント (既存)
影響を受ける canon copy
messages/ja.json の pilotPage 以下 — 既存 canon に整合、 文言の追加は必要ない (本 mockup は既存 canon の組み合わせと提示形式のみを変更)
messages/ja.json の salesHub.pilotTimeline — 既存 canon を流用、 5 stops + 5 days をそのまま採用
必要な新規コンポーネント
PilotDocCover — cover (文書 ID + 表紙) コンポーネント。 SectionSpec card 形式の新規 layout
PilotTOC — 2 column 目次コンポーネント
PilotSpecTable — 3 column 仕様表 (項目 / 値 / canon source) コンポーネント。 source 列の code 引用を実装時に i18n 対応するか、 単に表示用 string にするか要検討
PilotPhaseCard — 5 column timeline (PilotTimelineStrip の評価強化版)
PilotStickyCTA — ページ最下部の sticky CTA bar。 既存の PilotCtaCard と置換 or 並存検討
r19 既存課題のうち本案で同時解決されるもの
- 「pilot 価格が見えないことへの不安」 → price-note の明示パネルで解消
- 「申込までの期待値が見えづらい」 → spec-table + 30 日 timeline で完全可視化
- 「上長への共有資料が別途必要」 → ページ自体が文書として完結、 印刷 PDF 化可能
未解決 (実装時に別途検討)
- fabrication 防止の 恒久的 lint —
/tmp/site_canon_facts.txt の forbidden pattern grep を CI step として組み込めるか。 kashi/test/canon-lint/ 系の枠組みに乗せる検討。
- i18n EN 版 — 本 mockup は JA のみ。 EN 版の canon copy が
messages/en.json に揃っているか確認の上、 同じ doc structure を踏襲。
- print stylesheet — 簡易な print media query は入れたが、 実装時には PDF 出力に最適化した別 CSS を検討。
9. Justine confirm 判断点
本 mockup を共同創業者・メンター・友人にシェアする前に、 Justine 自身が再確認すべき項目:
- 「毎月 3 枠限定」 の言及位置 — cover の slot-callout、 spec-table、 form actions、 sticky CTA sub の 4 箇所で言及。 過剰でないか / 不足してないか。
- 「本契約以降の費用 = 個別にご相談」 の説明 panel — readers が 「不誠実」 と感じる可能性を打ち消せているか。 共同創業者の感性確認推奨。
- 「Zoom Pro プランのみ運用可」 の明示 — 「Google Workspace 中心の企業からも問い合わせは欲しい」 という戦略的判断との trade-off。 ここを 「フェーズ目標」 等で曖昧にしたいなら、 mockup 上で文言調整が必要。
- 「本パイロットの非目的」 card — B2B 文書として明示的に 「お約束しないこと」 を書くのは異例。 readers が 「自信なさげに見える」 か 「正直で安心」 と取るかで評価が分かれる。 ここが今回最大の judgement call。
- 「Kashi チームが直接サポート」 の表現の弱さ — 「専任 CS」 と書けない代わりの controlled 表現。 「現状の Kashi の体制を正直に表す」 vs 「導入後の伴走感を演出」 の trade-off で、 前者を選んでいる。
本 DESIGN_DECISIONS.html は kashi-ui-mockupper agent によって 2026-05-28 に regenerate されたものです。 前バージョン (2026-05-27 fabrication 含む) の経緯は git ledger および workspace/process/LESSONS.md 参照。