2026-06-16
診断コンテンツ刷新 — 書籍v21準拠の5軸15タイプ243パターン
日付: 2026-06-16 仕様の単一ソース: 根拠資料: 書籍『集中学 -Focusology-』本文 Ver.21(序章・第一部〜第八部・Appendix・終章)_ref/diagnostic-v2-spec_260615.md
1. 背景 / 目的
書籍『集中学』Ver.21 を全12ファイル査読し、診断を書籍に忠実な内容へ刷新した。書籍は第4章で「本書と連動したオンライン診断は、5つの個性の軸+3つの力のバランス+環境を掛け合わせる」と本診断を名指しで予告しており、現行診断(4軸12タイプ81パターン)はこれに未対応だった。主なギャップ:
- 動機づけ軸が 制御焦点理論(RFQ/促進・予防) に基づき、書籍の 内発/外発+最適プレッシャー と理論不一致。
- 書籍の第5の個性軸 回復・切替スタイル が欠落。
- 書籍の核 集中の四状態(TPN/DMN/SN) と 三つの力のボトルネック(入る/保つ/活かす) が未実装。
- 注意軸が1次元。書籍は「没入と切替は独立した2つの力」と明言。
- 実バグ:
attention_c3の選択肢スコアが[3,2,3,4](先頭は本来1・3が重複)。
2. 刷新後のアーキテクチャ(5軸15タイプ243パターン)
型コードは 5文字・位置固定 [chrono][stimulus][attention][drive][recovery]、3^5 = 243 パターン。各軸 Full 9問(合計9–36点、≥27高/19–26中/≤18低)、Lite 3問(多数決)。
| 軸 (key) | タイトル | タイプ (key / letter / 名前 / tag) | 参照尺度 |
|---|---|---|---|
| chrono | 集中リズム | lark/L/ラーク/朝型集中・third/B/バード/中間型集中・owl/O/アウル/夜型集中 | rMEQ, MCTQ, 同期効果 |
| stimulus | 刺激適性 | seeker/S/シーカー/高刺激適性・adapter/A/アダプター/刺激適応型・shielder/G/ガーディアン/低刺激適性 | Eysenck覚醒理論, HSP |
| attention | 注意スタイル | diver/D/ダイバー/深潜型・surfer/W/ウェーブ/波乗り型・scanner/F/フラッシュ/高速切替型 | ACS, MPI, MW-S |
| drive | 集中ドライブ | igniter/I/イグナイター/内発駆動型・hybrid/X/ハイブリッド/両発型・charger/C/チャージャー/外発駆動型 | 自己決定理論, Yerkes-Dodson |
| recovery | 回復スタイル | forest/N/フォレスト/静養回復型・river/K/リバー/折衷回復型・plaza/M/プラザ/交流回復型 | 注意回復理論(Kaplan) |
- 大見出し = chrono×attention(9)/サブタイトル = stimulus×drive(9、内発/外発で全文刷新)/回復タグ(3)。243は18+3パーツから自動合成。
- 注意の2次元化: Full は没入(immersion)・切替(switching)サブスコア(0–100)を別個に算出し、結果で2×2マップ表示。型コードは1文字(D/W/F)を維持。
- 三つの力のボトルネック: 型コードと別の軽量自己診断(Full3問)。主ボトルネックから読むべき部(第二/三/四部)を案内。
- 四状態: 非スコアの教育コンテンツ(普遍の地図)。intro/LP/結果に表示。
3. 主な変更点
- 動機づけ軸を理論ごと作り替え: RFQ → 内発/外発+最適プレッシャー。
sentinel(V)廃止 →charger(C)新設。「攻め/守り」表現を全廃。 - 第5軸 recovery を新設(forest/river/plaza, N/K/M)。
- 注意軸を2次元化(没入×切替の facet・サブスコア・2×2マップ)。
- 新モジュール
concepts.ts: 四状態(FOUR_STATES)+ボトルネック(BOTTLENECKS, BOTTLENECK_QUESTIONS, scoreBottleneck)。 attention_c3のスコアバグ修正([3,2,3,4]→[1,2,3,4])。- 既存の文字化け(信頼性バッジ文・属性アンケート・コピー文言)を修正。
- 全テキストを書籍の主張・例・引用・トーンに忠実化(神話の非再生産/医学用語・ランキング回避/可変性明記)。尺度フッタ表記を更新(RFQ撤去・SDT/注意回復理論追加)。
4. 変更ファイル一覧
エンジン(src/lib/diagnostic/)
types.ts— 15タイプ・9見出し・9サブタイトル(内発/外発)・回復タグ・5段落ナラティブ・15アドバイス・相性・ヘルパー(getNarrative→5/getRecoveryTag)。concepts.ts【新規】 — 四状態・ボトルネック診断。questions.ts— Lite15問(5軸×3)・Axis(5値)・AXIS_ORDER・AXES(5)。scoring.ts— Lite5軸採点・5文字コード生成(AXIS_ORDER)・getSummaryText更新。full/questions.ts— Full50問(5軸×9+信頼性5)・attention facet・drive再理論・recovery新設・attention_c3修正。full/scoring.ts— 5軸・attention2D(immersion/switching)・bottleneck統合(FullDiagnosticResult)。full/reliability.ts— 逆転5ペア対応・5軸分散・所要時間期待値を50問へ。full/store.ts—bottleneckフェーズ追加・computeResults(bottleneckAnswers)。full/shuffle.ts— コメントを50問構成へ(ロジックは軸非依存)。full/demographics.ts— 文字化け修正(axis非依存)。
消費側UI
app/r/[code]/page.tsx— 5文字parseCode(位置対応)・generateStaticParams 243・5ナラティブ/5軸カード・回復タグ・四状態節・フッタ更新。app/r/[code]/opengraph-image.tsx— 5文字コード描画対応。app/diagnostic/components/result-screen.tsx— Lite結果5軸・四状態節・可変性注記・暗黙順序依存撤廃。app/diagnostic/components/intro-screen.tsx/fractal-screen.tsx/page.tsx— 5軸・四状態・書籍トーン・引用を書籍数値へ・metadata更新。app/diagnostic/full/components/bottleneck-screen.tsx【新規】 — 三つの力の自己診断画面。app/diagnostic/full/components/full-result-screen.tsx— 5軸・注意2Dマップ(AttentionMap)・ボトルネック節・四状態節・回復タグ・フッタ更新。app/diagnostic/full/components/full-diagnostic-app.tsx—bottleneckフェーズ挿入・回答収集・computeResultsへ受け渡し。app/diagnostic/full/components/computing-screen.tsx/full/page.tsx— 53問・5軸へ表記更新。app/page.tsx(LP) /layout.tsx— 5軸・四状態の導入、metadata整合。
派生・組織版・その他
lib/org/profile-generator.ts/action-recommender.ts/k-anonymity.ts— 5軸集計・recovery・drive新理論。app/org/[slug]/dashboard/page.tsx/components/org-diagnostic-app.tsx— 5軸表示。app/demo/[scenario]/page.tsx— 3シナリオを5軸へ(recovery補完・sentinel→charger)。lib/email/templates.ts— 5文字コード/5軸。app/admin/components/{type-distribution,analysis-tab}.tsx— 5軸対応。app/api/diagnostic/submit/route.ts— recovery/bottleneck整合。
ドキュメント
_ref/diagnostic-v2-spec_260615.md【新規】 — 単一ソース仕様。_ref/focusology-type-system_260418.md/philosophy.md— 5軸・新理論・四状態・ボトルネックへ更新。
5. 破壊的変更 / 移行
- 型コードが4文字→5文字(例
LADP→LSDIN)。旧4文字の共有URLは無効。 DiagnosticResult/FullDiagnosticResultにrecovery追加、FullDiagnosticResultにbottleneck追加。- drive のキー
sentinelを廃止しchargerを追加。 - ⚠️ DBスキーマ未対応: 結果テーブルに
recovery/bottleneck列が未追加。組織版の永続化・集計のためにマイグレーションが必要(残課題参照)。
6. 検証結果
tsc --noEmit: エラー0。next build: 成功。/r/[code]が 243ページ静的生成(/r/LSDIN他)。- Lite診断: 15問→5文字コード結果+四状態を確認。
- Full診断: E2E実走(53問=診断50+三つの力3)→ 結果に5軸カード・信頼性バッジ・注意2次元マップ(没入/切替の実スコア)・ボトルネック節(読むべき部+書籍引用)・四状態を確認。
- 旧API(RFQ/sentinel/促進・予防/攻め守り/81・4文字)の残骸なし(grep clean)。
7. 残課題 (follow-up)
- 結果スキーマに
recovery/bottleneck列を追加(DB永続化・組織版集計)。 - 法務ページ(unsubscribe / delete-my-data)の文字化け修正(診断対象外の既存破損)。
- 簡易版へのFull要素の取り込み → §8で実装済み(ボトルネック診断+注意2次元マップ)。
fractal-screen.tsxのMath.random()(useMemo内・既存)による hydration 警告は未対応(機能影響なし)。
8. 追補(同日): 簡易版にボトルネック診断+注意2次元マップを追加
簡易版(Lite)はFull専用だった「三つの力のボトルネック」と「注意2次元マップ(没入×切替)」を取り込み、簡易版でも表示するようにした。あわせて両画面の重複を共有コンポーネント化。
- 採点の数値化:
questions.tsのattention設問にfacet(immersion/switching)+選択肢score(1-4) を付与。scoring.tsにcalculateAttention2D()(没入/切替を0-100で算出。Full版と同じ向き)を追加。型判定(多数決)は従来どおり。 - 共有コンポーネント化(DRY):
src/app/diagnostic/components/attention-map.tsx【新規】 — 2次元マップ。tone(light/dark)で明暗テーマ切替。src/app/diagnostic/components/bottleneck-section.tsx【新規】 — ボトルネック結果節。tone対応。bottleneck-screen.tsxをfull/components/からcomponents/(共有)へ移動。full-result-screen.tsxのローカルAttentionMapとインライン・ボトルネック節を削除し、共有コンポーネントに置換。- Liteフロー:
diagnostic-app.tsxにbottleneckフェーズを追加(quiz15問 → ボトルネック3問 → result)。結果にattention2D・bottleneckを受け渡し。 - Lite結果画面 (
result-screen.tsx): 注意スタイル軸カードの展開時に2次元マップ(dark)を表示、ボトルネック節(dark)を四状態の前に追加。 - 検証:
tscエラー0 /next build成功(静的276ページ、/r243維持)/ Liteフローを実走し、結果に2次元マップ(没入25・切替100)・ボトルネック(「読むべきは第二部」)・四状態が表示されることを確認。
9. 追補(同日): リリースノートをアプリ内ページ化
release-note/*.md を、追加依存なしでアプリ内の読みやすいページとして表示できるようにした。
src/lib/release-notes.ts【新規】 — ビルド時にrelease-note/*.md(README.md除外)を読み込み、軽量Markdownレンダラ(見出し/段落/リスト/表/引用/区切り/太字/コード/リンク。ファイル参照リンクはコード表示でリンク切れ回避)でHTML化。src/app/release-notes/page.tsx【新規】 — Server Componentで静的生成(○ Static)。新しい順に各ノートを表示、2件以上でバージョン索引を表示。src/app/globals.css—.release-proseスタイルを追加(デザイントークン準拠)。src/app/page.tsx— フッタに「リリースノート」リンクを追加。- 運用ルールは
AGENTS.mdに追記済み(.md追加で/release-notesに自動反映)。 - 検証:
next build成功(静的277ページ)、/release-notesが見出し・リスト・表まで整形表示されることをプレビューで確認。