@takagaki/cortex-decisions-viewer 0.12.71 → 0.12.72

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/dist/render.js +47 -3
  2. package/package.json +1 -1
package/dist/render.js CHANGED
@@ -5507,6 +5507,19 @@ a.ds-tile:hover { text-decoration: none; }
5507
5507
  .ops-card-icon { font-size: 22px; line-height: 1; }
5508
5508
  .ops-card-title { font-size: 15px; font-weight: 700; color: var(--text); margin: 0; }
5509
5509
  .ops-card-desc { color: var(--muted); font-size: 13px; line-height: 1.7; margin: 0; flex: 1 1 auto; }
5510
+ /* 手動投入のカードの「どう送ると良いか」(#663)。
5511
+ 🔴 **margin: 0 を明示する**——.ops-card は column flex の gap: 10px なので、
5512
+ 素の <p> だとブラウザ既定マージンが gap に上乗せされて段が離れる(.ops-card-desc と同じ理由)。
5513
+ **色を desc と同じ var(--muted) にしない**——地続きに見えて「段を分ける」意図が消える。
5514
+ 左罫で説明文と役割が違うことを示す。**罫は var(--border) にしない**——#e3e6ea は白地に対して
5515
+ コントラスト比 1.15 で、実機ではほぼ見えない(実装レビュー🟡5)。
5516
+ 🔴 **このルールは番人テストが見ている。** CSS は <style> に埋め込まれるので、
5517
+ 丸ごと消す・display: none を足す形の退行は material-intake-wording.test.mjs が赤にする
5518
+ (「CSS は jsdom から見えない」は誤りだった・実装レビュー🔴1)。 */
5519
+ .ops-card-hint {
5520
+ margin: 0; font-size: 12.5px; line-height: 1.7; color: var(--text);
5521
+ border-left: 3px solid var(--accent); padding: 2px 0 2px 10px;
5522
+ }
5510
5523
  .ops-card-btn {
5511
5524
  align-self: flex-start; display: inline-flex; align-items: center; gap: 4px;
5512
5525
  padding: 8px 16px; border-radius: 999px; border: 1px solid var(--accent);
@@ -15499,7 +15512,17 @@ ${calendarAddUrl.toString()}
15499
15512
  return opsCard("🗒️", "会議の文字起こしを追加", "顧客主催の会議など、自動取り込みできない会議の文字起こしファイル(.txt / .docx 等)から議事録を生成します。ファイルを選ぶかテキストを貼って送信すると、数分で反映されます。", "transcript", "文字起こしを追加");
15500
15513
  }
15501
15514
  if (cap === "共有資料") {
15502
- return opsCard("📎", "共有資料を追加", "提案書・仕様書・議事メモなどの資料を Markdown 化して 共有資料 に取り込みます。ファイルを選ぶかテキストを貼って送信すると、数分で反映されます。", "material", "資料を追加");
15515
+ // hint(#663): 文字の層が無い PDF(画面の印刷・スキャン・画像を貼ったもの)は
15516
+ // どの変換ツールでも文字が取れない。**「PDF が読めない」とは言わない**——読めないのは
15517
+ // 画面を保存したものとスキャン・写真から作ったものだけで、文字の層がある PDF は今までどおり読める。
15518
+ // **「画面を印刷した PDF」と書かない**(実装レビュー🟡4)——実際の操作は macOS の
15519
+ // 印刷ダイアログの「PDF として保存」で、当人は「印刷していない」と読む。「スキャンした画像」も
15520
+ // 同じで、スキャナの出力は普通 PDF なので「自分のは画像じゃない」と読まれる。
15521
+ // **Google のスライド・ドキュメントは書かない**——「元のファイル」がローカルに存在せず、
15522
+ // 書き出す時点で必ず形式を選ばされるので、指示どおりに行動できない(設計レビュー🔴3)。
15523
+ // その一手は docs/ops-ui-user-stories.md の Drive の節が持つ。
15524
+ return opsCard("📎", "共有資料を追加", "提案書・仕様書・議事メモなどの資料を Markdown 化して 共有資料 に取り込みます。ファイルを選ぶかテキストを貼って送信すると、数分で反映されます。", "material", "資料を追加",
15525
+ "PowerPoint・Word・Excel は、PDF にせず元のファイルのまま送ってください(そのほうが正確に読めます)。画面を「PDF として保存」したものや、スキャン・写真から作った PDF は、文字を取り出せないので中身が空になります。");
15503
15526
  }
15504
15527
  return null;
15505
15528
  }
@@ -16264,7 +16287,17 @@ ${calendarAddUrl.toString()}
16264
16287
  if (!mapAsOf) return;
16265
16288
  wrap.appendChild(el("p", { class: "conn-map-asof", text: "設定と件数は " + mapAsOf + " 時点・接続状態は最新です。" }));
16266
16289
  }
16267
- function opsCard(icon, title, desc, kind, btnLabel) {
16290
+ /**
16291
+ * 手動投入のカード。hint は任意(#663)。
16292
+ *
16293
+ * **説明文と同じ段落に混ぜない。** 1 段目(desc)は「押すと何が起きるか」、
16294
+ * 2 段目(hint)は「どう送ると良いか」で役割が違う。渡さなければ段ごと出ないので、
16295
+ * 会議のカードは 1 文字も変わらない。
16296
+ *
16297
+ * ⚠ この関数は埋め込み JS(テンプレートリテラル)の中にある。**コメントにバッククォートを
16298
+ * 書かない**——その場でリテラルが閉じて、離れた行が構文エラーになる。
16299
+ */
16300
+ function opsCard(icon, title, desc, kind, btnLabel, hint) {
16268
16301
  var btn = el("button", { class: "ops-card-btn", text: "+ " + btnLabel });
16269
16302
  btn.addEventListener("click", function () { openIntakeModal(kind); });
16270
16303
  return el("div", { class: "ops-card" }, [
@@ -16273,6 +16306,7 @@ ${calendarAddUrl.toString()}
16273
16306
  el("h3", { class: "ops-card-title", text: title }),
16274
16307
  ]),
16275
16308
  el("p", { class: "ops-card-desc", text: desc }),
16309
+ hint ? el("p", { class: "ops-card-hint", text: hint }) : null,
16276
16310
  btn,
16277
16311
  ]);
16278
16312
  }
@@ -16417,9 +16451,19 @@ ${calendarAddUrl.toString()}
16417
16451
  var mk = makeModal(isT ? "会議の文字起こしを追加" : "共有資料を追加", false);
16418
16452
  var overlay = mk.overlay;
16419
16453
  var modal = mk.modal;
16454
+ // 🔴 **資料の案内はカードだけでは届かない**(#663・設計レビュー🔴2)。makeModal は
16455
+ // 前のオーバーレイを必ず閉じるので、**ファイルを選ぶ瞬間、カードの hint は画面に無い**。
16456
+ // 事故(画面を印刷した PDF を投入して日本語 0 文字)が起きるのはこの文を読んでいる最中なので、
16457
+ // 症状と一手はここにも要る。**カードと同じ文は書かない**——「繰り返さない」は
16458
+ // 「同じ説明を段を変えて並べるな」であって、事故の瞬間に黙れという意味ではない。
16459
+ // **症状を括弧に落として一手を前に出す**(実装レビュー🟡3)。ただし症状そのものは消さない
16460
+ // ——元のファイルを持っていない人(Slack の画面を保存した人)には「元のファイルを優先」が
16461
+ // 一手にならず、自分の PDF が駄目だと分かるのは症状の側だけだから。
16462
+ // 列挙の先頭を PDF から元のファイルに入れ替えてある(**受け付ける拡張子は 1 つも変えていない**。
16463
+ // allowedExt は下のまま)。
16420
16464
  modal.appendChild(el("p", { class: "modal-desc", text: isT
16421
16465
  ? "文字起こしファイル(テキスト・Word・PDF・字幕 等)を選んで送信してください。(送信後、数分で議事録が自動生成されます)"
16422
- : "資料ファイル(PDF・Word・PowerPointExcel・テキスト・画像 等)を選んで送信してください。(送信後、数分で内容が Markdown に変換されて取り込まれます)" }));
16466
+ : "資料ファイル(PowerPoint・Word・ExcelPDF・テキスト・画像 等)を選んで送信してください。元のファイルがあれば PDF より優先してください(画面を保存した PDF・スキャンした PDF からは文字を取り出せません)。(送信後、数分で内容が Markdown に変換されて取り込まれます)" }));
16423
16467
 
16424
16468
  var selectedFiles = [];
16425
16469
  var allowedExt = isT
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@takagaki/cortex-decisions-viewer",
3
- "version": "0.12.71",
3
+ "version": "0.12.72",
4
4
  "description": "Cortexの意思決定記録(Decisions/*.md)を静的サイトにビルドして閲覧する。各レコードに「Edit on GitHub」リンクを付与する。",
5
5
  "license": "UNLICENSED",
6
6
  "private": false,