課題と背景
TIL は溜まっても知識は溜まらない、ということがよくある。TIL は本質的に「その日、そのプロジェクトで起きたこと」の記録なので、文脈に強く縛られている。1 か月後にもう一度読むと当時の文脈が消えていて、再利用できない。
/til-to-knowledge は、この隙間を埋めるコマンドだ。1 日分の TIL を入力として受け取り、その中からさらに学べる汎用的な CS / Web 概念を導き出し、各概念を完結した学習ドキュメントとして書いて 2 つのシステムに記録する。
動作の仕組み
- 入力 — Obsidian AgentMemory ボルトの
wiki/todayILearned/{日付}.md。日付を省略すると最新の TIL。 - 抽出 — TIL から派生的な学習テーマを導き出す。「今日このバグを直した」ではなく「このバグの背後にある一般原理は何か」を問う。
- 二重記録 — 同じ知識を 2 つの形式に変換して書く。
- ボルト
wiki/cs/{domain}/— 一行定義 / なぜ必要か / 中核概念 / 診断的な問い / 処方、という構造の学習ドキュメント。TIL ノートに wikilink で逆リンクする。 - ブログ
content/knowledge/{category}/— Zod の frontmatter スキーマを備えた公開用ドキュメント。このサイトの Knowledge セクションがまさにこの成果物だ。
- ボルト
2 つのシステムは形式と分類体系が異なるため、コピーではなく変換だ。ボルトのドキュメントには frontmatter がなく、ブログのドキュメントには ディレクトリの category === frontmatter の category という不変条件がある。
最も重要なルール:機密の除去
TIL には会社プロジェクトの名前、パス、数値がそのまま入っている。このコマンドの出力物は公開を前提とするので、TIL は概念抽出の入力としてのみ使い、結果物は教科書的・汎用的に書き直す。結果物だけを見て、どの会社、どのプロジェクトかが分かってはならない。プロジェクトの逸話や数値は引用せず、必要なら匿名の一般例に置き換える。
もう 1 つのルールは stub 禁止だ。「あとで埋める TODO ドキュメント」は作らない。空の殻のドキュメントは知識グラフの中で壊れた約束となり、結局は誰も埋めない。
パイプラインでの位置
/agent-memory-log が蓄積したセッション記録と日々の TIL がこのコマンドの入力であり、ここで作られた knowledge ドキュメントがブログ記事の根拠となる。[記録 → 知識 → 記事]の真ん中の段階、すなわち文脈依存の記録を文脈非依存の知識へ昇格させる段階だ。
学んだ点
知識管理のボトルネックは収集ではなく変換だ。記録は溜まるのに知識が溜まらないなら、記録を汎用概念へ書き直す段階がないからだ。その変換を人が毎回手作業でやると続かないので、ルール(機密の除去・stub 禁止・分類の不変条件)をコマンドに埋め込んで自動化した。