Claude Codeのハーネスを育てるアプリを作ってみた 〜~/.claudeには宝が眠っている〜
こんにちは、松島です。元々はバックエンドエンジニアでしたが、現在は DeSC ヘルスケアでデータアナリスト兼アナリティクスエンジニアを務めています。「LLM×データ×分析×エンジニアリング」という交差点に魅力を感じており、気づけば常にその領域で手を動かしています。
普段は業務の中で Claude Code を多用しています。使い続けていると、~/.claude ディレクトリ内には様々なものが蓄積されていきます。CLAUDE.md に追加したルール、Claude が勝手に学習して記憶したメモリ、日々のセッションログ、そして過去に作成したスキルなどです。これらは、実際に利用している人なら誰もが知っている話ではないでしょうか。
では、それらを定期的に確認し、CLAUDE.md やルールに反映させるという「手入れ」を、継続できているでしょうか?
実は私にはできていませんでした。CLAUDE.md は導入時に気合を入れて書いたきりで、メンテナンスが止まっています。セッションログも作業を再開する時以外は開くことがありません。メモリはセッションを超えて文脈を記憶し、作業再開のたびに助けてくれるのに、それ以外の形で活用したことはありません。勝手に溜まっていくものは放置され、育てるべきものも見放される——しかし冷静に考えれば、蓄積されたログの中には数ヶ月分の業務記録と暗黙知が積み上がっており、これは非常に惜しい状態です。
今日は、その状況から生まれた「geniハーネスくん」というデスクトップアプリについてご紹介します。このアプリは Claude Code のハーネスを可視化・育成するためのものです。名前の"geni"は"genius(天才)"に由来しており、「Claude Code のハーネス最適化が天才的に得意なアプリ」になってほしいという願いを込めて命名しました。
~/.claude に溜まるもの、育てるもの
~/.claude 内の各要素の性格を整理すると、以下のようになります。
CLAUDE.md や rules は、Claude に対する指示や規約です。効果は大きいものの、勝手に増えることはなく、最初は力を入れて書いたきり、継続的なメンテナンスが後回しになりがちで、気づけば実態と乖離してしまっています。skill(スキル)は定型作業の手順やナレッジをパッケージ化した部品で、うまく作れば強力な武器になりますが、これも自動的には生まれません。作成に手間がかかるため、「いつかスキル化しよう」と思ったまま放置されることが多いです。
一方でセッションログは、日々のやり取りの全記録です。何もしなくても勝手に蓄積されますが、開くのは中断した作業を継続する時くらいで、後から見返されることはあまりありません。メモリはセッションを超えてコンテキストを引き継ぐための仕組みであり、作業再開時には大いに役立ちますが、Claude が裏側で読み書きを行うものなので、そこに蓄積された知見を人間が別の形で活用する機会は多くありません。
実際のディレクトリ構成では、以下のようになります。セッションログも自動メモリも、~/.claude/projects/ の下にプロジェクト単位で蓄積されていきます。
*ユーザー単位のハーネスと、プロジェクト単位で溜まるセッションログ・メモリ*
並べて眺めてみると、2 つの性格の違いに気づきます。セッションログとメモリは勝手に溜まっていくのに、振り返る機会がありません。一方、CLAUDE.md や rules、自作のスキルやプラグインの設定は効果はあるのに、勝手に育ちません。この 2 つが別々のまま放置されているのが、多くの人の ~/.claude ディレクトリの現状ではないでしょうか。
「ハーネス」というメタファーと、育てるループ
そこで思いついたのは、Claude Code は強力な「エンジン」であり、CLAUDE.md や rules、スキル、プラグインといった仕組みは、そのエンジンを安全に、狙った方向へ走らせるための「ハーネス(制御装具)」ではないかという点です。
エンジンだけあっても暴走したり、力を発揮しきれなかったりします。しかし、ハーネスがしっかり育っていれば、同じ Claude Code でも出力されるアウトプットの質はまるで違います。ただ、先ほど整理した通り、ハーネスは勝手に育ちません。一方で、育てるための材料——繰り返し説明している前提条件、何度も修正を繰り返して身についた書き方の癖、毎週行っている定型作業——は、セッションログとメモリの中に勝手に溜まり続けています。
つまり、本来はこのようにループが回るはずです。
*このループを、道具の力で回す*
問題は、2 段目から 3 段目——素材からハーネスを育てる工程——が完全に手作業だということです。セッションログを読み返して繰り返しのパターンを見つけ、CLAUDE.md やスキルに反映させる。やるべきことは分かっていても、これを毎週続けられる人はなかなかいないと思います。だったら、ここを道具で埋めてしまおう。そう思って作ったのが「geniハーネスくん」です。
geniハーネスくんがやっていること
ループの各フェーズに対応する実際の画面は、以下のようになります。
| フェーズ | やること |
|---|---|
| ① 素材が溜まる | アプリの外で自然に起きる。Claude Code を使うだけで、セッションログとメモリが勝手に溜まっていく |
| ② 可視化する | 素材を集計して、自分が何をしてきたかを KPI や日次アクティビティ、プロジェクトごとの分布で一目でわかるようにする |
| ③ ハーネスを育てる・共有する | セッションやメモリを材料に、AI が CLAUDE.md の改善案やセルフナレッジスキルを提案し、ボタン 1 つで反映する。育てたハーネスは組織で共有する(次の章で詳しく) |
| ④ 振り返りが、次に繋がる | 前営業日にやったことを自動で振り返って日次レポートと TODO に整理し、次のアクションとハーネスの手直しに繋げる |
このうち、特に力を入れているのが③以降の機能です。世の中には「利用履歴を可視化して提示する」ツールはもう珍しくありません。しかし、「提示して終わり」では、結局また ~/.claude の中に素材が溜まるだけで、ハーネス(運用基盤)は育ちません。
geniハーネスくんは、素材の入力から適用までを 1 つのアプリの中で完結させることにこだわりました。
入口となるのが②の可視化機能です。アプリを開くと最初に表示される概要ビューでは、期間ごとの KPI、日次のアクティビティ、プロジェクトごとの分布が一望できます。
*まず、自分が何をしてきたかが一目でわかる*
③で行っているのは、利用状況に基づいたハーネスの最適化です。対象は 2 つあります。
1 つ目は CLAUDE.md です。期間中の利用状況を AI が読み込み、繰り返し説明している前提や修正を強いられている癖を、現在の CLAUDE.md との差分として提案してくれます。「反映」すれば適用し、「破棄」すれば無視する——判断は必ず人間側で行います。
*「提示して終わり」ではなく、反映ボタンまでがアプリの中にある*
もう 1 つ目が「セルフナレッジ生成」です。左側の画面で材料にするメモリと期間を選んで生成ボタンを押すと、右のようなスキル一式の提案が返ってきます。プレビューで中身を確認し、「適用」ボタンをクリックすれば、自分の ~/.claude/skills/ ディレクトリに保存されます。
*個人のノウハウが、ワンクリックで再利用可能な資産になる*
④の担い手は「ルーティン」です。指定した曜日と時刻に、前営業日のセッションを自動で振り返り、日次レポートと TODO リストを抽出します。機密チェックを通過すれば、Slack への起票まで自動化されます。振り返りの過程で「この作業、繰り返してるな」「また同じ説明をしてるな」と気づいた点は、そのまま③の最適化対象に戻ります。日々の振り返りとハーネスの手直しが、ひとつの修正ループとして回り始めるわけです。
*振り返りと TODO が毎朝手元に揃い、ハーネスの手直しに戻ってくる*
育てたハーネスは、組織で共有する
ここまでは「個人のループ」の話でした。でも実は、私が一番作りたかったのはこの先です。
個人で育てたハーネスは、まだ個人の PC の中にあります。実戦で磨かれた CLAUDE.md やスキルができていても、隣の席の人は同じ苦労をゼロからやり直すことになりますし、本人が異動や退職をすれば普通に消えてしまいます。個人のループが回り始めたからこそ、この「もったいなさ」が余計に目につくようになりました。
そこで、geniハーネスくんには「共有ハーネス」という機能を搭載しました。この機能は大きく分けて 2 つの役割を果たします。
1 つ目は共有する側です。自分の CLAUDE.md やルール、そしてセルフナレッジスキルを、アプリを通じて社内の共有リポジトリに登録できます。ここで言う「セルフナレッジスキル」とは、前の章で触れた「セッションやメモリを材料に AI が生成したスキル」のことで、いわば個人の暗黙知をスキルという形に固めたものです。メンバーが登録するほど、そこには「組織のハーネスカタログ」が育っていきます。誰がどんなルールで、どのようなナレッジを持って Claude Code を動かしているのか——これまで見えにくかったその全体像が、はじめて横から見えるようになるのです。
2 つ目は取り込む側です。カタログを眺めて、自分に効きそうなルールやスキルを自分の ~/.claude 環境に取り込めます。ここでも先ほどの仕組みが活きており、AI が自分の活動実態と照らし合わせて「あなたの使い方だと、この人のこのルールが効きそうですよ」といったレコメンドまで行います。すべてを手動で読み回らなくても、必要なものが向こうからやってくる形です。
*どのルールやスキルが自分に効きそうか、理由と優先度つきで提案される*
ただし、共有には一つ気をつけるべきポイントがあります。自分のハーネスには、個人に紐づく情報がうっかり紛れ込んでいる可能性があるからです。そのため登録前には、機械的なスキャンと AI によるスキャンの二段構えで個人情報を検出・除去するステップを必ず通します。これは外部へ出す操作なので、人が急いでいても迂回できない設計にしています。
*検出と修正案まで出たうえで、除去してから登録される*
こうなると、ループはもはや個人の領域ではなくなります。自分が育てたハーネスが誰かの初速となり、誰かが育てたハーネスが自分の次の一歩となる。個人のループが人数分つながって組織のループになる——こここそが、このアプリで一番見たかった景色です。
なぜターミナルではなくデスクトップアプリにしたのか
ここからは少し技術寄りの話をさせてください。
「別にターミナルで claude -p を叩けばいいのでは」という発想もあり得ます。実際、裏側の仕組みはまさにそれです。geniハーネスくんはボタンを押すたびに Claude Agent SDK を使って、あらかじめ用意しておいた小さなスキル(要約・提案・生成など、それぞれ役割が 1 つに絞られた補助スキル群)をヘッドレスで実行しています。イメージとしてはこんな感じです。
*アプリと補助スキルは、ファイルの受け渡しだけで繋がっている*
つまり、アプリと補助機能の間は「ファイルを渡して、ファイルを受け取る」というシンプルな約束事だけで繋がっています。例えば、CLAUDE.md の改善提案機能への入力データは以下のようになります(実際のキー名は簡略化しています)。
{
"digest": "直近 1 ヶ月の活動ダイジェスト(要約済みテキスト)",
"currentClaudeMd": "現在の CLAUDE.md 全文",
"instruction": "任意の追加指示(空でも可)"
}
これを受け取った機能側は、改善後の CLAUDE.md 全文だけを出力ファイルに書き出します。それをアプリが読み込んでプレビュー画面に表示するだけです。
技術的には、この一連の流れをターミナル上で行うことも可能です。しかし実際に試してみると、「ターミナルを開いてコマンドを入力し、結果を別のエディターで確認する」という往復の手間は、ループを継続させる上で思っている以上に大きな障壁になります。習慣化のハードルは、機能の有無よりも「面倒くささ」によって決まる部分が大きいからです。ボタン 1 つで完結する体験を提供することで、このループが途切れることなく回り続けるようにしたいというのが、最も大きな狙いです。
また、エンジニアであれば「一往復の手間」で済ませられるかもしれませんが、ターミナルに馴染みのない人にとっては、その手間どころか入口ですらつまずいてしまいます。Claude Code を使うのはもはやエンジニアだけではありません。データアナリストやビジネス寄りの職種にも急速に広がっており、そうした方こそが、CLAUDE.md の整備や機能化、MCP(外部ツールやサービスと Claude Code を繋ぐ仕組み)の接続設定といったハーネスの手入れから脱落しやすいのです。そのため、黒い画面を一切見せず、ボタンだけでループを回せるようにしました。前の章で述べた「組織のループ」は、エンジニアもビジネスユーザーも全員が参加して初めて成立するものだと考えています。
そのために、アプリには「拡張」ビューを用意しています。MCP・プラグイン・スキルの導入状況を一覧でき、Slack や Google Workspace への MCP 接続も、認証手順のガイド付きでボタンから設定できます。
*つまずきがちな MCP 接続も、ボタンとガイドで完結する*
これを支えているのが Electron と React を組み合わせた構成です。ダッシュボードの可視化、提案内容の差分プレビュー、生成中の進捗表示といったリッチな UI/UX を、Web フロントエンドの技術資産そのままで構築できます。そして Electron であるため、ビルドすれば配布用イメージ(macOS では dmg ファイル)が完成します。受け取った人はダウンロードして Applications フォルダーにドラッグするだけです。Node 環境の構築も git clone も不要です。「開発環境を持たない人にも提供できる」ことは地味な点ですが、組織全体でループを広げるための前提条件です。
もう一つ大事にしたのが安全性です。これは実際に手を動かして何度か肝を冷やした経験から、最初にルール化しました。
- ~/.claude の中身(セッション・CLAUDE.md・スキル・ルールなど)は原則として「読み取り専用」にする
- 生成物は別ディレクトリに隔離し、元のデータとは混ぜない
必ず JSON 形式で返してください。translation フィールドのみ。他のフィールドは一切追加しないこと — 余計なフィールドを書こうとして本文がトークン上限で打ち切られる事故を防ぐため:
{"translation": "リライト全文"}
設定ファイルの編集時は、必ずバックアップを取得し、一時ファイルを介して書き込むようにしています。これにより、書き込み中にシステムが停止してファイルが破損する事故を防ぎます。
また、AI が提案した内容は自動保存せず、一度プレビューを確認してから、人間が適用するかどうかを判断するようにしています。
「ハーネス」と名乗るアプリが、肝心のハーネス自体に事故を起こしていては話になりません。ここは地味な部分ですが、最もこだわっているポイントです。
架空の業務シナリオで、ループを一巡してみる
イメージしやすくするために、架空の業務シナリオを通じてループを一回回してみましょう(実際のプロジェクトとは無関係です)。
ある日、EC サイトの分析チームに所属する自分が、Claude Code を使って毎日 SQL を記述したり、売上ダッシュボードの調査を行ったりしていたと仮定します。数ヶ月が経過すると、セッションログやメモリ内には「注文データのテーブルはこう結合する」「返品理由の分類はこのルールで行う」といった暗黙知が蓄積されていきます。一方で CLAUDE.md はチーム参加初日に書いたきりで、中身が実態からズレ始めていることにも気づいていません。
ここで何もしなければ、素材はただ溜まるだけです。geniハーネスくんを開くと、まず概要画面でどのプロジェクトにどれだけセッション時間を費やしたか、日々の活動量がどう推移しているかが一目でわかります。さらにルーティンを仕込んでおけば、毎朝決まった時刻に前営業日の振り返りレポートと TODO が自動で手元に届きます。振り返りに時間を割く必要もなく、「昨日はこれをやった、今日はこれをやろう」という整理が勝手に完了します。そのレポートを数日眺めているうちに、「返品データの集計方法、先月から何度も調べ直してるな」と気づくわけです。
そこで登場するのがセルフナレッジです。材料にするメモリと期間を選んで生成ボタンを押すと、AI がメモリとセッションに蓄積していた知見をテーマごとにまとめ、スキル一式として提案してくれます。返品理由の分類基準や注文テーブル結合時の注意点など、散らばっていた暗黙知が「EC データ分析ナレッジ」のように参照可能な形に整理されます。プレビューを確認して良さそうなら適用。次に Claude に似た相談をしたときはこのスキルが自動で参照されるため、毎回同じ説明を繰り返す必要はなくなります。
さらに、その CLAUDE.md やスキルを共有ハーネスに登録すれば、隣の席の同僚がゼロから同じ苦労をする必要はありません。逆も同様です。数日後にアプリを開くと、「隣のチームの人が育てた在庫データ検証のルールが、あなたの使い方に合いそうです」というレコメンドが表示され、ワンクリックで自分のハーネスに取り込む——そんな体験ができるようになります。
Before(資産が溜まっているだけ)と After(可視化されて資産となり、次のアクションまで見える状態)を比べると、同じ Claude Code の使い方でも得られるものの量が大きく変わってくる感覚があります。
*同じ使い方でも、回収できる資産の量は変わる*
得られたことと、これから
ここまで作ってみて、実感として得られたものは主に 3 つあります。
- 個人のノウハウを「組織の資産」に変える一歩が踏み出せたこと
- 振り返りに費やしていた時間がほぼ自動化されたこと
- 属人化のリスクに、具体的な対策が打てるようになった
社内で実際に使っているメンバーからは、以下のような声をいただいています。
「非エンジニアにとって、環境を整えてハーネスを育てるのは高いハードルでした。それがワンクリックで MCP 接続できるようになり、誰も迷わず AI 活用のループに乗れるようになったのは大きいです。指定期間の業務サマリも、部署の定例報告にそのまま使えて助かっています。」
—— ビジネス職
「個人の中に閉じがちだった知見を、ボタンひとつでチームに共有できる仕組みが一番の強みだと思います。誰かの試行錯誤がそのままチームの資産になり、レコメンドされたルールを取り込むのはちょっとしたゲーム感覚。組織全体の AI 活用力が底上げされていく感じがあります。」
—— データアナリスト
もちろん課題もあります。Claude Code 本体の進化はとにかく速いので、それに追従し続けるのはそれなりに大変です。新しい仕組みが本体に追加されるたびに、「これをアプリでどう活かすか」を考え続ける必要があります。
それでも、この仕組みを使うメンバーが少しずつ増えて、ループがチーム全体、ひいては組織全体で回るようになったらおもしろいだろうな、と思っています。
まとめ
セッションログとメモリを放っておけば、ただのログです。でもそこには業務ノウハウが沈殿しており、それを材料にすれば CLAUDE.md も skill も、プラグインの構成も育てられます。素材を可視化してハーネスを育て、組織で共有し、また使いたくなる——このループを個人で回し、さらに人数分つなげて組織全体のループにすることが、今回一番やりたかったことです。
「Claude Code の利用量を増やすこと」自体が目的なのではなく、資産化のループさえ作ってしまえば、活用は自然に広がっていくんじゃないか。geniハーネスくんは、そのための小さな仕掛けとして作りました。
もし「溜まっているのは分かってるんだけど、手入れは後回しになってるな」と心当たりのある方がいたら、たまには ~/.claude を振り返る時間を取ってみてください。思っているより、宝が眠っていると思います。
原文を表示
こんにちは、松島です。元々はバックエンドエンジニアで、今はDeSCヘルスケアでデータアナリスト兼アナリティクスエンジニアをしています。「LLM×データ×分析×エンジニアリング」の交差点あたりが好きで、気づけばいつもそのあたりで手を動かしています。
普段は業務でClaude Codeを触りまくっています。使っていると、~/.claude の下にはいろいろなものが溜まっていきます。CLAUDE.mdに書き足したルール、Claudeが勝手に覚えてくれたメモリ、日々のセッションログ、いつか作ったスキル。ここまでは、使っている人ならみんな知っている話だと思います。
では、それを定期的に見返して、CLAUDE.mdやルールに反映して……という「手入れ」を、続けられているでしょうか?
私はできていませんでした。CLAUDE.mdは導入したときに気合いを入れて書いたきり、メンテが止まっている。セッションログは作業を再開するとき以外に開かない。メモリはセッションをまたいで文脈を覚えていてくれて、作業再開のたびに助けられているのに、それ以外の形で活用したことはない。勝手に溜まっていくものは見られず、育てるべきものは放置される——でも冷静に考えると、溜まっているログの中には数ヶ月分の仕事の記録と暗黙知が積もっているわけで、かなりもったいない状態です。今日はそこから作った、Claude Codeのハーネスを可視化・育成するデスクトップアプリ「geniハーネスくん」について書いてみます。geniはgenius(天才)から取っていて、「Claude Codeのハーネス最適化が天才的に得意なアプリ」になってほしい、という願いを込めた命名です。
~/.claude に溜まるもの、育てるもの
~/.claude に入っているものの性格を整理すると、こうなります。
CLAUDE.mdやrulesは、Claudeへの指示や規約です。効き目は大きいのに勝手には増えず、最初はがんばって書いたきり、継続的なメンテは正直さぼりがちで、気づくと実態とずれてきます。skillは定型作業の手順やナレッジをパッケージ化した部品で、うまく作れば強力ですが、これも勝手には生まれません。作るのに一手間かかるので、「いつかスキル化しよう」と思ったまま放置されがちです。
一方でセッションログは、日々のやり取りの全記録です。何もしなくても勝手に溜まっていきますが、開くのは中断した作業を継続するときくらいで、あとから見返されることはあまりありません。メモリはセッションをまたいでコンテキストを引き継ぐための仕組みで、作業再開のときには大いに助けられていますが、Claudeが裏で読み書きするものなので、そこに溜まった知見を人が別の形で活用する機会は多くありません。
実際のディレクトリでいうと、こういう配置です。セッションログも自動メモリも、~/.claude/projects/ の下にプロジェクト単位で溜まっていきます。
*ユーザー単位のハーネスと、プロジェクト単位で溜まるセッションログ・メモリ*
並べてみると、性格が2つに分かれていることに気づきます。セッションログとメモリは、勝手に溜まるのに、見返されない。CLAUDE.mdやrules、それに自作のskillやプラグインの構成は、効くのに、勝手には育たない。この2つが別々のまま放置されているのが、多くの人の ~/.claude の現状じゃないでしょうか。
「ハーネス」というメタファーと、育てるループ
そこで思ったのが、Claude Codeというのは強力な「エンジン」であって、CLAUDE.mdやrules、skill、プラグインといった仕組みは、そのエンジンを安全に、狙った方向に走らせるための「ハーネス(制御装具)」なんじゃないか、ということです。
エンジンだけあっても暴走したり、力を発揮しきれなかったりします。ハーネスがちゃんと育っていれば、同じClaude Codeでも出せるアウトプットの質がまるで違う。ただ、さっき整理したとおり、ハーネスは勝手には育ちません。一方で、育てるための材料——繰り返し説明している前提、何度も直させている書き方の癖、毎週やっている定型作業——は、セッションログとメモリの中に勝手に溜まり続けています。
つまり、本来はこういうループが回せるはずなんです。
*このループを、道具の力で回す*
問題は、2段目から3段目——素材からハーネスを育てるところ——が完全に手作業だということです。セッションログを読み返して、繰り返しのパターンを見つけて、CLAUDE.mdやskillに反映する。やればいいのは分かっていても、これを毎週続けられる人はなかなかいないと思います。だったら、ここを道具で埋めてしまおう。そう思って作ったのが「geniハーネスくん」です。
geniハーネスくんがやっていること
ループの各フェーズに、実際の画面を対応させると、こんな感じになります。
フェーズ
やること
① 素材が溜まる
アプリの外で自然に起きる。Claude Codeを使うだけで、セッションログとメモリが勝手に溜まっていく
② 可視化する
素材を集計して、自分が何をしてきたかをKPIや日次アクティビティ、プロジェクトごとの分布で一目でわかるようにする
③ ハーネスを育てる・共有する
セッションやメモリを材料に、AIがCLAUDE.mdの改善案やセルフナレッジスキルを提案し、ボタン1つで反映する。育てたハーネスは組織で共有する(次の章で詳しく)
④ 振り返りが、次に繋がる
前営業日にやったことを自動で振り返って日次レポートとTODOに整理し、次のアクションとハーネスの手直しに繋げる
このうち、とくに力を入れているのが③以降です。世の中には「使った履歴を可視化して提示する」ツールはもう珍しくありません。でも「提示して終わり」だと、結局また ~/.claude の中に素材が溜まるだけで、ハーネスは育ちません。geniハーネスくんは、素材の入力から適用までを1つのアプリの中で完結させることにこだわりました。
入口になるのが②の可視化です。アプリを開くと最初に出る概要ビューで、期間ごとのKPI、日次のアクティビティ、プロジェクトごとの分布が一望できます。
*まず、自分が何をしてきたかが一目でわかる*
③でやっているのは、利用状況からのハーネス最適化です。対象は2つあります。
1つはCLAUDE.md。期間中の利用状況をAIが読んで、繰り返し説明している前提や直させている癖を、いまのCLAUDE.mdとの差分の形で提案してくれます。良ければ「反映」、いらなければ「破棄」——判断は必ず人間側に残します。
*「提示して終わり」ではなく、反映ボタンまでがアプリの中にある*
もう1つが「セルフナレッジ生成」です。左の画面で材料にするメモリと期間を選んで生成ボタンを押すと、右のようなスキル一式の提案になって返ってきます。プレビューで中身を確かめて、適用ボタンで自分の ~/.claude/skills/ に入ります。
*個人のノウハウが、ワンクリックで再利用可能な資産になる*
④の担い手は「ルーティン」です。指定した曜日・時刻に、前営業日のセッションを自動で振り返って、日次レポートとTODOを抽出します。機密チェックを通れば、Slackへの起票まで自動です。振り返りで「この作業、繰り返してるな」「また同じ説明をしてるな」と見えたものは、そのまま③の材料に戻ります。日々の振り返りとハーネスの手直しが、ひとつの修正ループとして回り始めるわけです。
*振り返りとTODOが毎朝手元に揃い、ハーネスの手直しに戻ってくる*
育てたハーネスは、組織で共有する
ここまでは「個人のループ」の話でした。でも実は、一番作りたかったのはこの先です。
個人で育てたハーネスは、まだ個人のPCの中にあります。せっかく実戦で磨かれたCLAUDE.mdやskillができても、隣の席の人は同じ苦労をゼロからやり直すことになるし、本人が異動や退職をすれば普通に消えます。個人のループが回り始めたからこそ、この「もったいなさ」が余計に目につくようになりました。
そこでgeniハーネスくんには、共有ハーネスという機能を持たせています。やることは2方向です。
1つは共有する側。自分のCLAUDE.mdやrules、そしてセルフナレッジスキルを、アプリから社内の共有リポジトリに登録できます。セルフナレッジスキルというのは、前の章で触れた「セッションやメモリを材料にAIが生成するスキル」のことで、いわば個人の暗黙知をスキルの形に固めたものです。メンバーが登録するほど、そこには「組織のハーネスカタログ」が育っていきます。誰がどんなルールで、どんなナレッジでClaude Codeを走らせているのかが、はじめて横から見えるようになるわけです。
もう1つは取り込む側。カタログを眺めて、自分に効きそうなruleやskillを自分の ~/.claude に取り込めます。ここでも例の素材が効いていて、AIが自分の活動実態と照らして「あなたの使い方だと、この人のこのruleが効きそうですよ」というレコメンドまでしてくれます。全部読んで回らなくても、必要なものが向こうからやって来る形です。
*どのruleやskillが自分に効きそうか、理由と優先度つきで提案される*
一点だけ、共有には気をつかうポイントがあります。自分のハーネスには、個人に紐づく情報がうっかり紛れ込んでいることがある。なので登録の前には、機械的なスキャンとAIによるスキャンの二段構えで個人情報を検出・除去するステップを必ず通します。ここは外に出る操作なので、人が急いでいても迂回できない設計にしました。
*検出と修正案まで出たうえで、除去してから登録される*
こうなってくると、ループは個人のものではなくなります。自分が育てたハーネスが誰かの初速になり、誰かが育てたハーネスが自分の次の一歩になる。個人のループが人数分つながって、組織のループになる——ここが、このアプリで一番見たかった景色です。
なぜターミナルではなくデスクトップアプリにしたのか
ここから少し技術寄りの話をさせてください。
「別にターミナルで claude -p を叩けばいいのでは」という発想もあり得ます。実際、裏側の仕組みはまさにそれです。geniハーネスくんは、ボタンを押すたびに Claude Agent SDK を使って、あらかじめ用意しておいた小さなスキル(要約・提案・生成など、それぞれ役割が1つに絞られた補助スキル群)をheadlessに実行しています。イメージとしてはこんな感じです。
*アプリと補助スキルは、ファイルの受け渡しだけで繋がっている*
つまり、アプリと補助スキルの間は「ファイルを渡して、ファイルを受け取る」というシンプルな約束事だけで繋がっています。たとえば、CLAUDE.mdの改善提案スキルへの入力はこんな形です(実際のキー名は簡略化しています)。
{
"digest": "直近1ヶ月の活動ダイジェスト(要約済みテキスト)",
"currentClaudeMd": "現在のCLAUDE.md全文",
"instruction": "任意の追加指示(空でもよい)"
}
これを受け取ったスキル側は、改善後のCLAUDE.md全文だけを出力ファイルに書き出す。それをアプリが読んでプレビュー画面に表示する。それだけです。
技術的には別にこれ、ターミナルでもできることです。でも実際にやってみると、「ターミナルを開いて、コマンドを打って、結果をまた別のエディターで見て」という一往復のコストは、思っている以上にループの継続を邪魔します。習慣化のハードルって、機能の有無より「面倒くささ」で決まる部分が大きいんですよね。ボタン1つで完結する体験にすることで、このループを止めずに回し続けられるようにしたい、というのが一番の狙いです。
それに、エンジニアなら「一往復が面倒」で済みますが、ターミナルに馴染みのない人にとっては、面倒どころか入口で詰みます。Claude Codeを使うのは、もうエンジニアだけではありません。データアナリストやビジネス寄りの職種にもどんどん広がっていて、そういう人たちこそ、CLAUDE.mdの整備やskill化、MCP(外部のツールやサービスとClaude Codeを繋ぐ仕組み)の接続設定といったハーネスの手入れから脱落しやすい。だから黒い画面を一切見せず、ボタンだけでループを回せるようにしたかった。前の章で書いた「組織のループ」は、エンジニアもビジネスユーザーも全員が乗れてはじめて成立するものだと思っています。
そのために、アプリには「拡張」ビューを用意しています。MCP・plugin・skillの導入状況を一覧できて、SlackやGoogle WorkspaceへのMCP接続も、認証手順のガイド付きでボタンから設定できます。
*つまずきがちなMCP接続も、ボタンとガイドで完結する*
これを支えているのが Electron + React という構成です。ダッシュボードの可視化、提案のdiffプレビュー、生成中の進捗表示といったリッチなUI/UXを、Webフロントエンドの技術資産そのままで作れます。そしてElectronなので、ビルドすれば配布イメージ(macならdmg)になります。受け取った人はダウンロードしてApplicationsフォルダーにドラッグするだけ。Node環境の構築もgit cloneも要りません。「開発環境を持たない人にも配れる」ことは、地味ですが組織にループを広げるうえでの前提条件です。
もう1つ大事にしたのが安全性で、ここは実際に手を動かしていて何度か肝を冷やした経験から、最初にルール化しました。
- ~/.claude の中身(セッション・CLAUDE.md・skills・rulesなど)はまず「読み取り専用」が原則
- 生成物は別ディレクトリに隔離して、元のデータとは混ぜない
- 設定ファイルを書き換えるときは、必ずバックアップを取ってから、一時ファイル経由で書き込む(書き込みの途中で落ちてファイルが壊れる、という事故を防ぐため)
- AIが作った提案は自動保存せず、必ず一度プレビューを見てから適用するかどうかを人間が決める
「ハーネス」を自称するアプリが、肝心のハーネスを事故らせては話にならないので、ここは地味ですが一番こだわっているところです。
架空の業務シナリオで、ループを一巡してみる
イメージしやすいように、架空の業務シナリオでループを一巡させてみます(実際のプロジェクトとは無関係です)。
ある日、ECサイトの分析チームにいる自分は、Claude Codeを使って毎日のようにSQLを書いたり、売上ダッシュボードの調査をしたりしていたとします。数ヶ月経つと、セッションログとメモリの中には「注文データのテーブルはこう結合する」「返品理由の分類はこのルールで」といった暗黙知がどんどん沈殿します。一方でCLAUDE.mdは、チームに参加した初日に書いたきり。中身が実態とずれ始めていることにも、気づいていません。
ここで何もしなければ、素材はただ溜まっているだけです。geniハーネスくんを開くと、まず概要画面で、どのプロジェクトにどれだけセッションを費やしたか、日々の活動量がどう推移しているかが一目でわかります。さらにルーティンを仕込んでおけば、毎朝決まった時刻に、前営業日の振り返りレポートとTODOが自動で手元に届きます。振り返りのために時間を取らなくても、「昨日はこれをやった、今日はこれをやろう」が勝手に整理されている。そのレポートを何日か眺めているうちに、「返品データの集計方法、先月から何度も調べ直してるな」と気づいたりするわけです。
そこでセルフナレッジの出番です。材料にするメモリと期間を選んで生成ボタンを押すと、AIがメモリとセッションに沈殿していた知見をテーマごとにまとめて、スキル一式として提案してくれます。返品理由の分類基準、注文テーブルの結合の注意点——散らばっていた暗黙知が、「ECデータ分析ナレッジ」のような参照できる形に整理される。プレビューを見て、良さそうなら適用。次にClaudeへ似た相談をしたときは、このスキルが自動で参照されるので、毎回同じ説明を繰り返す必要がなくなります。
さらに、そのCLAUDE.mdやスキルを共有ハーネスに登録すれば、隣の席の同僚がゼロから同じ苦労をする必要がなくなります。逆もあります。数日後にアプリを開くと、「隣のチームの人が育てた在庫データ検証のrule、あなたの使い方に合いそうです」というレコメンドが出ていて、ワンクリックで自分のハーネスに取り込む——そんな体験です。
Before(資産が溜まっているだけ)と After(可視化されて、資産になって、次のアクションまで見える)を比べると、同じClaude Codeの使い方でも、得られるものの量がだいぶ変わってくる感覚があります。
*同じ使い方でも、回収できる資産の量が変わる*
得られたことと、これから
ここまで作ってみて、実感として得られたものは3つくらいあります。
- 個人のノウハウを「組織の資産」に変える一歩ができたこと
- 振り返りにかけていた時間が、ほぼ自動化されたこと
- 属人化のリスクに、具体的な打ち手ができたこと
社内で使ってもらっているメンバーからは、こんな声をもらっています。
「非エンジニアにとって、環境を整えてハーネスを育てるのは高いハードルでした。それがワンクリックでMCP接続できるようになり、誰も迷わずAI活用のループに乗れるようになったのは大きいです。指定期間の業務サマリも、部署の定例報告にそのまま使えて助かっています。」
—— ビジネス職
「個人の中に閉じがちだった知見を、ボタンひとつでチームに共有できる仕組みが一番の強みだと思います。誰かの試行錯誤がそのままチームの資産になり、レコメンドされたルールを取り込むのはちょっとしたゲーム感覚。組織全体のAI活用力が底上げされていく感じがあります。」
—— データアナリスト
もちろん課題もあります。Claude Code本体の進化はとにかく速いので、そこに追従し続けるのはそれなりに大変です。新しい仕組みが本体に入るたびに、「これはアプリでどう活かすか」を考え続けることになります。
それでも、この仕組みを使うメンバーが少しずつ増えて、ループがチーム全体、組織全体で回るようになったらおもしろいだろうな、と思っています。
まとめ
セッションログとメモリは、放っておけばただのログです。でもそこには業務ノウハウが沈殿していて、材料にすればCLAUDE.mdも、skillも、プラグインの構成も育てられます。素材を可視化して、ハーネスを育てて、組織で共有して、また使いたくなる——このループを個人で回し、さらに人数分つなげて組織のループにすることが、今回一番やりたかったことです。
「Claude Codeの利用量を増やすこと」自体が目的なのではなく、資産化のループさえ作ってしまえば、活用は自然に広がっていくんじゃないか。geniハーネスくんは、そのための小さな仕掛けとして作りました。
もし「溜まっているのは分かってるんだけど、手入れは後回しになってるな」と心当たりのある方がいたら、たまには ~/.claude を振り返る時間を取ってみてください。思っているより、宝が眠っていると思います。
関連記事
今日のまとめ
AI日報で今日の重要ニュースをまとめ読み