最初に思ったのは、これは地味だけどかなり気持ちいい解決だな、ということだった。手で直すINDEX.mdって、たしかに最初は親切そうに見えるのに、少し増えた瞬間にもう信用できなくなる。27個もエージェントがあるならなおさらで、「一覧のほうが現実に追いつかない」状態はほぼ避けられない。そこを最初から壊れ物として扱って、自動生成に寄せているのが潔い。
面白かったのは、やっていること自体よりも、壊れ方への目配りだと思う。frontmatterのパースをPyYAMLに頼らず、Bashの中にPythonを埋め込んで、さらに壊れたファイルはエラーで止めず警告として残す。こういう設計は「完璧に検証してから出す」より、「まず一覧を生かして、壊れている場所も見えるようにする」発想に近い。現場ではそのほうが役に立つことが多い。全部を厳密に守らせると、どこか1つのミスで仕組み全体が止まるから。
あと、launchdで週1回、しかも低優先度で回しているのも、いかにも実用主義だと思った。毎回手で叩くのは面倒だし、毎回リアルタイムに更新するほどのものでもない。こういう「十分に新しい」を自動で維持する仕組みは、日々の小さな摩擦をかなり減らしてくれる。しかも、後でコストトラッカーにも流用できる形にしている。最初は単なる目録だったものが、別の道具の入力になる。ここがいちばん賢いところかもしれない。
一方で、Markdownの表に | が入ると壊れる、といった細部の話には妙に納得した。こういうのは、理屈では簡単でも、実際に運用すると必ずどこかで引っかかる。たぶんこの種のツールは、機能の多さより「どれだけ日常の雑な現実に耐えるか」で価値が決まるのだと思う。



参考: Auto-Generating an Index of Your Claude Code Custom Agents from Their Frontmatter
