位置づけ
このページは、2026-05-25 月曜定例の時点で meeting-report-draft にあった「次回定例向け下書き」と Updates 履歴をそのまま保存した snapshot である。会議後に rotate して、draft 本体は次回 (2026-06-01) 向けに空に戻した。meeting-minutesより
月曜にそのまま読む用
analysis-coreまわりでは、インストールを軽くする整理と、CLI の事前チェック追加を main に入れました。これで最初に触る人がつまずきにくくなっています。refactoring-statusより- Web まわりでは、HTTP 環境で壊れていた問題を issue 分割しながら順番に直しました。UUID fallback、CSP、LocalLLM の model 自動取得を別々に main へ入れています。issue-priority-through-2026-09より
- production deploy が落ちていた件は、CSP 用の共通ファイルを Docker build に入れ忘れていたのが原因でした。ここは修正済みです。source-codeより
- 失敗時の調査しやすさも少し改善しました。レポート生成に失敗したとき、admin 画面からエラーログの一部を見られるようにしています。pr-852-error-log-visibility-observation-2026-05-22より
- 最近の小さめのバグ修正として、古い
report_status.jsonで一覧取得が落ちる件と、散布図の source link をクリックしても開かない件を main へ入れました。problem-list-from-open-issues-2026-05-19より - 運用面では、AI エージェントが issue 着手前に assignee を確認し、自分を assign してから進めるルールを明文化しました。PR や issue の対外文面も、日本語をデフォルトにしています。coding-agentsより
- 長期論点として、LLM grouping 系の第2分析モードは自然な散布図を出しにくい一方、散布図はまだユーザ価値が強い、という緊張関係を整理しました。短期は散布図互換の暫定案でつなぎ、長期は散布図必須の前提を外す、という二段構えで考えるのがよさそうです。strategic-development-order-2026-05-23より LLM grouping 系の背景整理より
- テスト面では、
analysis-core単体の e2e だけでなく、API がanalysis_coreを subprocess で起動する継ぎ目を手元で本当に踏める smoke test も追加しました。少なくとも merge 前に、その境界を 1 回は人間が踏める状態になっています。testingより
次回定例向け下書き
1. analysis-core の package/CLI 整理を main へ反映
PR #843で、analysis-coreの重い依存を extras に分けた。これで base install が軽くなり、使い始めやすくなった。analysis-core-extras-pr-scopeより- 続けて
PR #844で、CLI の事前チェックと quickstart を整えた。#836と#837は close 済みで、最初の失敗を減らす方向に進んでいる。refactoring-statusより
2. Web の public-IP HTTP 問題を issue 分割で片付けた
- もともと
#685に混ざっていた問題を分けて、UUID fallback は#833 -> PR #847、CSP は#846 -> PR #848/#849、LocalLLM の model 自動取得は#845 -> PR #850として順番に main へ入れた。issue-priority-through-2026-09より - これで、性質の違う問題を 1 issue にまとめたまま進める状態はかなり減った。今後も、小さめの review しやすい単位で進めやすくなっている。open-decisionsより
3. production deploy 失敗を調査し、Docker build context 漏れを修正
Azure DeploymentがCannot find module '../shared/csp'で落ちていた。原因は、共通ファイルを Docker build に入れ忘れていたことだった。deploymentよりPR #851で Dockerfile を直し、production deploy の元の落ち方は解消した。会議では「CSP の設計が悪かった」というより、「build に必要なファイルを入れ忘れていた」と説明すると分かりやすい。source-codeより
4. AI エージェント運用ルールを明文化した
- reviewer request や admin merge のような、人の判断が必要な操作は、AI が勝手にやらず明示指示がある時だけ行うルールを wiki と
CLAUDE.mdに追記した。coding-agentsより contributingより - さらに、issue 実装前に assignee を確認し、着手するなら自分を assign してから進めるルールも追加した。並行開発でぶつからないための整理である。coding-agentsより
5. レポート失敗時のエラーログを admin UI で見えるようにした
#716 -> PR #852で、レポート生成に失敗した時に admin 画面からエラーログの一部を見られるようにした。pr-852-error-log-visibility-observation-2026-05-22より- これで「失敗したが理由が分からない」という状態が減る。運用しながら原因を追いやすくなったのがポイント。coding-agentsより source-codeより
6. legacy status データ由来の一覧取得バグを current tree で潰した
#740 -> PR #856で、古いreport_status.jsonにslugが無い場合でも、一覧取得で落ちないようにした。source-codeより- これで admin/public のレポート一覧が、古いデータのせいで
ValidationErrorになる直接バグは解消した。細かい契約の論点は残るが、いま再現していた不具合は閉じている。open-decisionsより problem-list-from-open-issues-2026-05-19より
7. 散布図の source link がクリックできない不具合を直した
#710 -> PR #857で、散布図の点をクリックしてもリンク先が開かない問題を修正した。原因は、Plotly の hover modebar が点クリックを邪魔していたことだった。source-codeより- modebar 自体は残しつつ、クリックを邪魔しないように DOM 側を調整した。見た目はあまり変えずに、期待どおり新しいタブで開ける方向へ直している。source-codeより
8. 長期論点として、LLM grouping 系第2モードと散布図前提の衝突を整理した
- issue の優先順だけではなく、
kouchou-aiを「共通実験基盤 / 製品導線 / 探索枝」の 3 層 platform として見直した。そのうえで、次に考えるべき中心問題は bugfix の順番より、「散布図を前提にしない analysis mode でも product が成立する capability contract を作れるか」だと整理した。strategic-development-order-2026-05-23より - LLM grouping 系の第2モードは自然な散布図を出しにくい。一方で散布図はユーザ価値が強いので、短期は embedding 併用で散布図互換に載せ、長期は散布図必須ビューをやめる、という二段構えを作業仮説として明文化した。LLM grouping 系の背景整理より strategic-development-order-2026-05-23より
9. API → subprocess → analysis-core の継ぎ目に手元 smoke test を足し、通常フローの path バグも直した
- これまで
analysis-core単体の e2e と、APIreport_launcherの mock ベース service test はあったが、FastAPI 側が本当にpython -m analysis_coreを起動して通常フローを最後まで通るかを踏む最小テストが無かった。そこでapps/api/tests/manual/report_launcher_subprocess_smoke.pyを拡張し、execute_aggregation()だけでなくlaunch_report_generation()から full flow を本物の subprocess で起動し、hierarchical_result.json・hierarchical_status.json・report_status.json更新まで手元で確認できるようにした。testingより source-codeより - この手元実行で、workflow plugin が
--input-dir/--output-dirを legacy step に渡しておらず、通常フローが相対inputs//outputs/を見に行くバグも見つかった。analysis_core.plugins.builtin.*側で path を受け渡すよう修正し、manual smoke と既存report_launchertest まで通し直している。testingより source-codeより - その後、plugin ごとに重複していた legacy config 組み立てを
_legacy_config.pyに寄せ、analysis.extractionが解決済みの input/output path を legacy step に渡す regression test も追加した。バグを直しただけでなく、同じ種類の path plumbing がまた散らばらないようにしている。testingより source-codeより
10. report.html は Web canonical にしない判断と、WebUI / core 分離の設計説明を wiki に固定した
- 新規 analysis-core-and-web-ui を作り、「CLI だけでは一般利用者に重いので WebUI で包んだが、今度は研究用途に重くなったので core を切り出し、WebUI はそれを使う consumer に戻した」という設計判断を、歴史ページとは別にまとめた。analysis-core-web-ui-separation-decision-2026-05-23より
report.htmlは CLI / coding agent 向けの自己完結 観察用HTML で、Web の canonical path はこれまでどおりhierarchical_result.json+public-viewerとする。open question ではなく明示判断として整理し直した。usage-modesより report-html-non-web-canonical-decision-2026-05-23より- これで
API が --without-html 固定なのは未整合なのかという混線を減らせる。今後の Web 側の議論は HTML 昇格の是非ではなく、JSON / viewer 契約前提で進めればよい。cliより refactoring-statusより
11. legacy pipeline cleanup を main へ入れ、refactoring を done 扱いにできる状態にした
PR #865で、apps/api/broadlistening/pipeline/に残っていた旧 Python 実装と source tree 上の refactoring phase docs を除去した。current tree ではanalysis-core/ workflow 側だけが canonical になっている。source-codeより refactoring-statusより- 途中で
Server Testsがanalysis_core未 install で落ちたので CI workflow も直し、checks success まで確認して admin merge した。これで、これまで refactoring 未完の根拠だった Phase 8 が main から消えた。source-codeより github-dev-docsより
12. nasuka さんの過去発言から、実利用 loop の不足を整理した
- nasuka さんの過去発言を読み直すと、Azure 永続化、限定公開、手動編集、再利用、抽出品質、CI、運用ルールなど、実ユーザーが触った時に信頼を失う箇所をかなり早く見ていたことが分かった。nasuka-statements-retrospective-2026-05-25より
- 今の
analysis-core/ LLM grouping 系実験にもつながる示唆として、失敗入力・失敗出力を残し、同一条件で比較し、人間が直した結果を prompt / model / label refinement に戻す loop が必要だと整理した。nasuka-statements-retrospective-2026-05-25より
Updates
- 2026-05-21: 初回作成。直近の
analysis-core/ Web UI / deploy / AI 運用ルールの進捗を次回定例向けに要約 - 2026-05-22: 月曜の定例会向けに、もっとやさしい言い方へ調整し、
#740 -> PR #856と#710 -> PR #857まで反映 - 2026-05-22: 進行中: Windows 初回セットアップを塞ぐ
#731 -> draft PR #858に着手し、setup_win.batの文字コード依存メッセージを ASCII 化、API キー検証の重複を整理、Docker 未起動時のcmd.exe実行確認まで実施。ブランチはcodex/fix-windows-setup-mojibake。source-codeより github-dev-docsより - 2026-05-22: 進行中: Windows 実機で
setup_win.bat+ Docker Desktop を検証するための手順を#860向けに docs へ追加。mkdocs build --strictは通過し、ブランチcodex/windows-real-machine-setup-docsを push 済み。PR 作成は GitHub コネクタ操作が拒否されたため未作成。source-codeより github-dev-docsより - 2026-05-22: 進行中:
#860 -> draft PR #862として、docs だけでなくsetup_win.batの非対話モード、windows-latestの軽量回帰 CI、実機 self-hosted runner 用の E2E workflow まで追加。任意 PR から実機 runner が動く危険を避けるため、PR 起動時は author がnishioの場合だけ実行する条件にした。source-codeより github-dev-docsより - 2026-05-22: 進行中:
#860 -> draft PR #862の実機 E2E がpublic-viewerの../shared/csp欠落を検出したため、apps/public-viewerとapps/static-site-builderの Dockerfile にapps/sharedを含める修正を追加。さらに PowerShell のInvoke-WebRequestが Windows 実機でタイムアウトしたため、到達確認をcurl.exe --head --failに変更し、最新 PR checks は実機 E2E まで成功。source-codeより github-dev-docsより - 2026-05-22: 進行中: 公開 repo の self-hosted runner が個人マシンであることを踏まえ、
#862の Real Windows E2E は PR / 定期実行からは起動しないように変更。workflow_dispatchかつ許可された実行者だけに限定し、checkout の credential persistence も無効化した。source-codeより github-dev-docsより - 2026-05-22:
#731の Windows setup 文字化け対応は、PR #858の ASCII 化案を close し、PR #863でsetup_win.batを ASCII ランチャー、setup_win.ps1を日本語案内本体に分離する方針へ切り替え - 2026-05-25:
PR #863は open のままだが、確認に必要な Windows 検証環境が整備中のため、現時点では review / merge を保留。優先度自体は高いが、次の実作業は環境整備完了後の再確認になる - 2026-05-23: issue の優先順整理だけではなく、LLM grouping 系の第2分析モードと scatter-first な product 契約の衝突を長期論点として整理した。短期は散布図互換の暫定案、長期は散布図必須前提の解体、という二段構えを strategic-development-order-2026-05-23 と LLM grouping 系の背景整理 に追記
- 2026-05-23: API
report_launcherがanalysis_coreを subprocess で起動する継ぎ目を、mock ではなく実 subprocess で踏む手元 smoke testapps/api/tests/manual/report_launcher_subprocess_smoke.pyを追加し、ADMIN_API_KEY=dummy PUBLIC_API_KEY=dummy OPENAI_API_KEY=dummy rye run pytest tests/manual/report_launcher_subprocess_smoke.py -q -sで通ることを確認 - 2026-05-23:
launch_report_generation()から通常フロー全体を踏む manual smoke を追加。最初の実行で workflow plugin が--input-dir/--output-dirを legacy step に渡していないバグを検出し、analysis_core.plugins.builtin.*を修正したうえで、tests/manual/report_launcher_subprocess_smoke.py -q -sとtests/services/test_report_launcher.py -qの通過まで確認 - 2026-05-23: path 修正後の plugin 側に残っていた legacy config 組み立ての重複を
_legacy_config.pyに集約し、packages/analysis-core/tests/test_builtin_plugins.pyに extraction plugin の path 受け渡し regression test を追加。packages/analysis-coreの関連 unit test と API manual smoke は再通過 - 2026-05-23: TTTC の clone / CUI 前提から、実務のための Web UI 包装、さらに研究開発向けの
analysis-core/ PyPI 再切り出しへ至る入口設計の歴史を tttc-to-analysis-core-history に整理。Web UI と CLI が競合ではなく役割分担だと説明しやすくした - 2026-05-23: maintainer 判断 report-html-non-web-canonical-decision-2026-05-23 と analysis-core-web-ui-separation-decision-2026-05-23 を反映し、
report.htmlは Web canonical にせず、WebUI / core 分離の設計判断も会議向け下書きに追記 - 2026-05-23: GitHub Pages の project site を
https://nishio.github.io/kouchou-ai-developer-wikiの末尾スラッシュなしで開いた時、root の相対リンクが repo サブパスを落として/concepts/...へ飛ぶ問題を修正。QuartzHeadに root 専用<base href="https://nishio.github.io/kouchou-ai-developer-wiki/">を追加し、トップページからの内部リンクと静的 asset が常に正しいサブパス基準で解決されるようにした。source-codeより - 2026-05-23:
#2_開発_広聴aiの Slack で ohki-shingo が「散布図はそれ自体が本質なのではなく、量・整理・全体像・個別意見への辿り・透明性の 5 要素を一画面で出していたから受け入れられている」「公開UIに求められる要件は 7 項目で言語化できる」「embedding の距離精度は公開UIの本質ではなく、cluster grouping が保てれば十分」と整理。これは LLM grouping 系の背景整理 が残していた『散布図の役割を別 view でどう代替するか』への回答で、短期の散布図互換案の技術バーが思ったより低いことも示している。詳細は public-ui-requirements-for-broadlistening と slack-public-ui-requirements-2026-05-23 - 2026-05-24:
PR #865merge を反映し、legacy pipeline cleanup と CI 修正まで含めて currentmainでは refactoring を done 扱いにできる、と会議向け下書きへ追記 - 2026-05-25: 議事録 Google Doc は
txtexport だけだと URL が落ちるため、raw/meeting_minutes.htmlとscripts/extract_meeting_minutes_urls.pyで 531 件の URL 棚卸しを取れるようにした。kouchou-ai本体リンク、Slack permalink、書籍系リンクを分けて見られるようになったので、今後の「議事録に出てきた参照先を辿る」調査がやりやすくなった。meeting-minutes-url-extraction-2026-05-25より - 2026-05-25:
analysis-coreにanalysis_mode=llm_groupingの最小実装を追加。embeddingは散布図互換のx/y生成だけに使い、cluster assignment 自体は raw argument を直接 LLM でグルーピングする構成にした。workflow / spec も mode 切替対応にし、packages/analysis-coreの targeted test 20 件はrye run pytest tests/test_compat.py tests/test_integration.py tests/test_llm_grouping.py -qで通過。次は admin 経路への受け渡しと、散布図がいまいちな時の代替 view 検討になる。LLM grouping 実装計画より - 2026-05-25:
sample_comments.csv400 件の日本語データでanalysis_mode=llm_groupingを実際に回した。422 argument を 8 群へ分け、report.htmlまで生成できたので短期互換案は成立した一方、embedding 由来 2D 散布図との相性は悪く、silhouette score は-0.039だった。次は scatter 改善よりhierarchyList/treemapなど group-first な view を優先して試すのがよさそう。llm-grouping-experiment-output-2026-05-25より - 2026-05-25: 同じ 422 argument / 同じ embedding を使って従来 hierarchical clustering とも比べた。従来法は silhouette score
0.400、centroid ベース再分類精度1.000で、散布図としてはかなり自然だった。なので今回の結論は「LLM grouping をやめる」ではなく、「LLM grouping を scatter 主体で見せない方がよい」である。llm-grouping-experiment-output-2026-05-25より - 2026-05-25: ただし比較の本丸は scatter 指標だけではなかった。
~/broadlistening-researchの 2025-02 ラベル評価研究を踏まえて OpenAI judge で top-level ラベル品質も比べると、LLM groupingが平均85.0、従来 hierarchical が80.4で、読みやすさ・具体性・代表性では LLM grouping が上だった。つまりgeometryとlabel semanticsを別軸で評価すべきだと確認できた。llm-grouping-experiment-output-2026-05-25より - 2026-05-25: 費用まで含めると、same-args downstream 比較で
LLM groupingは35,654 tokens / 149秒、従来法は7,088 tokens / 49秒だった。scatter のためにこの差を払うのは割に合わず、LLM groupingはラベルのわかりやすさを上げるためにだけ使う、という見方が自然である。llm-grouping-experiment-output-2026-05-25より - 2026-05-25: さらに
K=20でも同じ 422 argument で比較した。geometry はやはり従来法が強かったが、label quality はK=8と違って平均点ベースではhierarchical K20が85.0で最上位になった。つまり「LLM grouping の方が常にラベルが良い」ではなく、Kを増やすと従来法もかなり具体的なラベルを返し始める。judge の粒度によって winner も揺れたので、次はKを固定せず sweep で見た方がよい。llm-grouping-experiment-output-2026-05-25より - 2026-05-25: 従来 hierarchical の多層
[8, 40]も回した。40 cluster を先に作ってから 8 cluster へ集約すると、top-level label は単層K=8より少し抽象的になるが、一貫性と網羅性は上がった。なので「8 cluster をどう作るか」は単なるK指定ではなく、上位 summary の性格を変える設計変数だと分かった。llm-grouping-experiment-output-2026-05-25より - 2026-05-25: そのうえで
LLM grouping K=8とhierarchical [8,40] level1も直接 judge した。cluster 平均点では[8,40] level1の方が高かったが、ラベル集合全体の読みやすさではLLM grouping K=8勝ちだった。つまり[8,40]は代表性の強い上位集約として有望だが、そのまま UI 見出しに出すと少し説明的すぎる。次は hierarchical 集約に短いラベルを後付けする折衷案を試すのがよさそう。llm-grouping-experiment-output-2026-05-25より - 2026-05-25: 実験の読みも少し整理できた。
LLM groupingはK=8の粗い俯瞰では強かったが、K=20の細粒度では従来 hierarchical の方が個別ラベル品質で勝ち、しかも LLM grouping はコスト増に対して逆に少し品質が下がった。なので LLM grouping は「細かく分析する mode」より「ざっくり全体像を見る mode」と捉える方が自然かもしれない。改善の本丸も clustering 本体ではなく、top-level ラベル同士の区別を明瞭にする aggregation prompt / algorithm 側に寄ってきた。llm-grouping-experiment-output-2026-05-25より - 2026-05-25: その次の実験基盤も入れた。
analysis-coreにhierarchical_label_refinementstep を追加し、merge_labellingの後で top-level label set をまとめて再編集できるようにした。mode = none / setwise_refine / setwise_refine_shortを config で切り替えられるので、以後は clustering を固定したまま「上位見出しの付け方」だけを比較できる。aggregation 改善の試行錯誤を product 実験として回しやすくなった。source-codeより - 2026-05-25: さっそくその 3 mode を同じ
[8,40]構造で比べた。cluster 平均点では baselinenoneが一番高かったが、ラベル集合全体の読みやすさをまとめて judge するとsetwise_refineが 1 位だった。つまり「各クラスタ単体で良い説明」と「一覧で見てちょうど良い見出し」は別問題で、aggregation 改善は後者の最適化として扱うのがよさそう。setwise_refine_shortは短すぎて少し情報不足になった。llm-grouping-experiment-output-2026-05-25より - 2026-05-25: その次に
setwise_refineの prompt も 2 本増やして比べた。cluster 平均点ではcontrastが最も良く、短くしながら情報密度を保つ方向ではこれが今の本命に見える。一方で、ラベル集合全体の読みやすさをまとめて judge するとbalancedが 1 位だった。つまり、algorithm 的に良い見出しと、UI 上で読みやすい見出しを分けて考える必要がある。llm-grouping-experiment-output-2026-05-25より - 2026-05-25: ただし、ここまでの judge 自体が OpenAI/GPT ベースで、生成側も同系統 LLM を使っている。そこで次は refinement mode を増やす前に、judge の仕組みと限界を label-judge-mechanism-2026-05-25 に明文化し、label-refinement-judge-bundle-2026-05-25 を使って Claude Code と人間の判断を差し込める形へ整理した。今は「どのラベルが勝ちか」より「どの judge をどこまで信じるか」を確認する段階である。llm-grouping-experiment-output-2026-05-25より
- 2026-05-25: 進行中:
analysis_mode=llm_groupingの最小実装を label refinement から切り分け、draft PR#866として作成した。ブランチはcodex/llm-grouping-pr、commit は4f893ab。変更範囲は LLM grouping の workflow / spec / plugin / step / default prompt / tests に限定し、label refinement は別 PR に回す。packages/analysis-coreは通常テスト186 passedまで確認済み。source-codeより github-dev-docsより - 2026-05-25: 進行中:
--reuse-fromを LLM grouping / label refinement より先に draft PR#867として切り出した。ブランチはcodex/reuse-from-outputs、commit は977d7eb。既存出力ディレクトリから中間成果物と status を seed し、同一 upstream artifact を使った比較実験を作りやすくするための土台で、変更範囲は CLI / orchestration / tests のみに限定した。packages/analysis-coreはOPENAI_API_KEY=dummy付き通常テスト181 passed、GitHub checks も全通過まで確認済み。source-codeより github-dev-docsより - 2026-05-25: 進行中: 実行時
USER_API_KEYの受け渡しも独立した draft PR#868として切り出した。ブランチはcodex/user-api-key-plumbing、commit はa21bf27。API / Web から subprocess に渡した user key をanalysis-coreの fail-fast validation、workflow context、built-in plugin 経由の legacy step まで通し、かつ status JSON には保存しないようにした。packages/analysis-coreはOPENAI_API_KEY=dummy付き通常テスト181 passed、GitHub checks も全通過まで確認済み。source-codeより github-dev-docsより - 2026-05-25: 残りの実験コードは退避ブランチ
codex/remaining-experiment-wip、commit47008bcに snapshot した。生成 outputs / 実験用 config は commit せず、label refinement PR 化までの残作業は issue#869に整理済み。次は#866/#867/#868を前提に、label refinement だけを clean worktree へ切り直す。source-codeより github-dev-docsより - 2026-05-25:
#2_開発_広聴ai_アルゴリズム開発の新妻 thread を独立ページ化した。要点は「UMAP後k-meansが危うい」だけではなく、「分析として自然な構成」「散布図として受け入れられる見え方」「報道利用での説明責務」が別問題として衝突していることだった。新規コントリビュータ向けには niizuma-thread-algorithm-critique を入口にすると、その後の LLM grouping 議論へ繋ぎやすい。slack-niizuma-umap-kmeans-thread-2026-03-18より - 2026-05-25: 新妻 thread の考察を少し進めた。これは
HDBSCANやspherical k-meansへの単純置換問題ではなく、分析 artifact / 表示 artifact / 説明 artifact を分ける設計問題として読む方がよい。後続の LLM grouping 実験でも、意味的に良い分類と scatter 上の自然さは別指標だと出ているので、次はanalysis_modeと viewer requirements の契約を明示するのが重要そう。niizuma-thread-algorithm-critiqueより - 2026-05-25: tokoroten の 2026-Q1 spectral clustering メモも独立ページ化した。こちらは「TTTC が spectral を使っていた」以上に、「
UMAPのn_neighborsを小さめにして紐状分離を作り、それをSpectralClusteringで切る scatter-first な系」として TTTC を理解していた点が面白い。新妻 thread が幾何と説明責務の衝突なら、こちらは TTTC 的 scatter UX を何で成立させていたかの設計読みである。tokoroten-spectral-clustering-readingより - 2026-05-25: ただし tokoroten の spectral 読みは、そのまま TTTC の設計意図として確定してよいわけではないので historical code で検証した。確認できたのは「TTTC は
UMAP後にSpectralClusteringを掛け、n_neighbors上限は 10、最終cluster-idも spectral ラベル」という実装形までで、「紐状構造を意図的に作って切るのが方針」という部分は依然 inference のまま、と線引きを入れた。tttc-spectral-clustering-code-observation-2026-05-25より - 2026-05-25: そのうえで、TTTC 意図を掘る前に外部研究の survey 棚も切った。読む対象は、
UMAP -> clusteringの empirical / caution、spectral clustering の explainability、BERTopic pipeline、可視化と分析の分離、評価軸の 5〜6 棚に分けるのがよさそうで、まずは UMAP docs と document clustering pipeline 比較から入る方針。clustering-research-survey-planより - 2026-05-25: 先に TTTC repo 内の説明も探したが、fork 側も upstream 側も
READMEは浅く、対応するclustering.pyはどちらも実質first commit/first open-source commit由来で、issue / commit title にも spectral やn_neighborsの rationale は見当たらなかった。なので repo 単体からは「なぜそうしたか」は読めず、今のところ確定できるのはUMAP -> SpectralClusteringという実装形までである。tttc-spectral-clustering-code-observation-2026-05-25より - 2026-05-25: さらに見ると、
shugiinsenyo2024-tttcで変わっている本丸は spectral /UMAP側ではなく、日本語向け tokenization だった。upstream のCountVectorizer(stop_words=...)を、fork ではjanomeベースのCountVectorizer(tokenizer=tokenize_japanese)に差し替えている。一方 currentanalysis-coreには BERTopic / CountVectorizer 自体がもう無く、今の main line ではこの tokenizer 差分は生きていない。tttc-spectral-clustering-code-observation-2026-05-25より - 2026-05-25: ここで重要なのは、その tokenizer が spectral clustering 本体のためではなく、BERTopic の語彙表現のためだったこと。英語なら stopwords ベースで済むが、日本語では空白分かちがないので
janomeが必要だった、と理解するのが自然である。つまり fork の日本語対応は clustering kernel より topic representation 側に乗っている。tttc-spectral-clustering-code-observation-2026-05-25より - 2026-05-25: tokoroten とのアルゴリズム議論全体も振り返った。これは「どの clustering が正しいか」ではなく、散布図 product が担える価値、深い分析、説明責務、現場の運用ワークフローを分け直す議論だったと見るのがよさそう。なので
classic_scatterは agenda discovery / 参加感の mode として守り、LLM grouping 系は group-first / explanation-first の別 mode として育てる、という整理になる。tokoroten-algorithm-discussion-retrospectiveより - 2026-05-25: ohki さんとの公開UI議論も振り返った。要点は「散布図を残すか捨てるか」ではなく、散布図が担っていた量感・全体探索・個別意見への到達・恣意性の低さを、別 UI でどう満たすかという説明責務の話だった。次の view 実験は geometry 指標だけでなく、公開UI 7 要件で見るのがよさそう。ohki-discussion-reflection-2026-05-25より
- 2026-05-25: nasuka さんの過去発言を振り返り、実利用で壊れる入口、抽出・ラベル品質の失敗例収集、再利用・手動編集・自動評価をつなぐ改善 loop、政党 fork から upstream へ戻す境界を次の論点として整理。nasuka-statements-retrospective-2026-05-25より
- 2026-05-25: open issue を current
main@e5ed743で棚卸しし、すでに解決済みだった#19#271#281#290#315#333#380#385#396#398#400#456#613#721#799#815を close。レポート再利用、属性フィルタ、静的ホスティング docs、エラーログ、E2E 基盤、LocalLLM、環境確認、フォーム入力 API key などは backlog から落とせる状態になった。github-dev-docsより source-codeより - 2026-05-25: 一方で
#79#253#391#477#537#690は close しなかった理由を整理した。実行後 cost 表示、API 接続チェック、OpenRouter provider など関連実装はあるが、事前 cost 見積もり、自動 API preflight、Azure model UI 不整合、無料 OpenRouter model、ts-node-dev置換など Issue 本文の主要要件がまだ残っている。issue-triage-open-remnants-2026-05-25より - 2026-05-25:
bugラベル付き issue も currentmain@e5ed743で再点検した。#666は古い API Dockerfile 前提の Windows build error、#584は aggregation rerun 後に token/cost が 0 になる不具合、#177は&を含む API key でコマンドが分断される不具合として残っていたが、いずれも current tree では stale と判断してコメント付きで close した。一方#629の backup script と visibility、#477の Azure model UI 不整合などはまだ現役論点として残した。github-dev-docsより source-codeより - 2026-05-25: developer-wiki 側も少し整備した。Quartz graph から hub になりすぎる
index/logを除外し、wiki 更新は PR 経由ではなくmain直接 push を基本にする運用を明文化した。pnpm buildと wiki lint は通過した一方、pnpm checkはwork/配下 clone を拾うため別途整理が必要。wiki-maintenance-observation-2026-05-25より