リポジトリをスターし、クローンし、半分動くようにして、次の問題に移る。3 ヶ月後、同じフォルダを見つけて、なぜ取得したのか、実際に使ったのか、同じ種類のツールを別の名前で 2 回クローンしたのか、思い出せない。30 を超えるリポジトリになると、それは冗談では済まなくなり、実際の時間のロスになり始める。
なぜリポジトリごとの README では不十分なのか?
README は作者が何のために作ったかを教えてくれる。しかし、なぜあなたが取得したのか、実際に使っているのか、同じ仕事をする別のツールをすでに 3 つも持っているのかについては、何も書かれていない。
それを誰も書き留めない。なぜなら、自分以外のリポジトリに対しては、誰も書き留めないからだ。便利なツールをクローンし、一度動かして、その「なぜ」のコンテキストはターミナルを閉じた瞬間に消える。同じフォルダに 30 のリポジトリがあると、それは掃除するのが怖い墓場になる。何が重要なのか、何が単なる死重なのか確信が持てないからだ。
そういった情報は、単一の README には決して現れない。それは、あなたが収集した全てのものを横断して、あなたが確認しなくても、定期的に何かが読むときにだけ現れる。
最終的に得られるものは?
1 つの Vault、2 つのフォルダ:
1found-tools-vault/2├── notes/ # 取得したリポジトリごとに 1 つのマークダウンノート3│ ├── some-scraper-tool.md4│ ├── some-telegram-lib.md5│ └── ...6└── memory/7 └── PORTFOLIO.md # 4 つのリポジトリ横断パスがここに書き込む
ディスク上のプレーンなマークダウン。Obsidian で開くか、ターミナルで cat する。データベースは不要。自分で読めないものは何もない。
セットアップ方法は?
Mac または Linux の場合:
1mkdir -p ~/found-tools-vault/notes ~/found-tools-vault/memory
Windows、PowerShell の場合:
1New-Item -ItemType Directory -Force -Path "$HOME\found-tools-vault\notes","$HOME\found-tools-vault\memory"
以下の Loop 1 と Loop 2 をこのフォルダに向ければ、セットアップは完了だ。これ以降は、Claude にこのフォルダ内で実行させる指示となる。
仕組みは同じ 3 つの要素。ただ、それを他人のコードに向けるだけ?
Vault。 1 つの Obsidian フォルダ。クローンしたツールごとに 1 つのノートと、リポジトリ横断パス用のフォルダ。
ソース。 クローンフォルダにあるすべてのリポジトリ。毎日使っていようと、存在を忘れていようと関係ない。
頭脳。 役割で分割された Claude。安価なモデルがリポジトリとその README を読む。Sonnet が判断を下す:これは他にすでに取得したものと重複しているか、そして本当にディスク容量を費やす価値があるか。
Loop 1:ツールごとに 1 つのノート。Claude が書き、あなたは書かない。
重要:これを実際のデータで実行する前に:
- このループにコードをプッシュさせたり、依存関係をインストールさせたり、ツール自体から何かを実行させたりしないこと。常に読み取り専用。
why_i_grabbed_itは、あなた自身のノート、コミット、またはプロジェクト内での使用状況から入力され、リポジトリ自身の README から推測されるものではない。- ツールを使用しているかどうか判断できない場合は、スキップする代わりに
status: unclearのノートを書くこと。

1TRIGGER: 新しいリポジトリがフォルダにクローンされたとき、または1日1回2STEPS:3 1. リポジトリを読む: README、package.json / requirements.txt、4 最後のアップストリームコミット日、そしてそれがあなたの他のプロジェクト5 (import、config、script) で参照されているか確認する6 2. notes/<repo-name>.md を書くか更新する:7 ---8 repo:9 what_it_does:10 why_i_grabbed_it:11 last_upstream_commit:12 referenced_in_my_projects: []13 status: in-use | shelved | duplicate | unclear14 ---15 ## 実際に何をするのか16 ## なぜ取得したのか17 ## 実際に使っているのか18VERIFY: すべてのフィールドが入力されていること、"referenced_in_my_projects" は19 実際の使用状況に基づいて確認され、推測ではないこと20STOP: 検証が通るか、2回リトライした後、手動レビュー用にフラグを立てる
これだけでも、Loop 2 がなくても構築する価値がある。初めて 30 のノートを続けて読んだとき、その半分はあなたを驚かせるだろう。そのツールを使っていることを忘れていたか、または一度も使っていなかったことに気づくからだ。
生成されたツールノートの 1 つ。それが説明する実際のクローンフォルダの隣に置かれている。これは、あなたが他の方法では決して書き留めないであろうコンテキストである。
Loop 1 が実行された後の、30 の見つかったリポジトリの実際の姿。
新しいものをクローンするたびに Claude が再生成するリスト。ノートから直接取得される:
- github.com/author/scrape-lite - 使用中、最終アップストリームコミット 2 日前、プロジェクト参照: feed-reader プロジェクト
- github.com/author/tg-bot-kit - 使用中、最終アップストリームコミット 5 日前、プロジェクト参照: 2 つのボット
- github.com/author/quick-scheduler - 棚上げ、最終アップストリームコミット 41 日前、プロジェクト参照: なし
- github.com/author/api-wrapper-x - 使用中、最終アップストリームコミット 1 日前、プロジェクト参照: 1 つのプロジェクト
- github.com/author/rss-to-json - 重複、最終アップストリームコミット 3 日前、プロジェクト参照: なし(scrape-lite と同じ仕事)
- github.com/author/cheap-queue - 使用中、最終アップストリームコミット 6 時間前、プロジェクト参照: 2 つのプロジェクト
- github.com/author/webhook-relay-lib - 棚上げ、最終アップストリームコミット 96 日前、プロジェクト参照: なし
- github.com/author/simple-cache - 使用中、最終アップストリームコミット 2 日前、プロジェクト参照: 3 つのプロジェクト
- github.com/author/old-scraper - アップストリーム放棄、最終アップストリームコミット 340 日前、プロジェクト参照: なし
- github.com/author/notify-me - 不明、最終アップストリームコミット 12 日前、プロジェクト参照: 不明
- github.com/author/token-utils - 使用中、最終アップストリームコミット 1 日前、プロジェクト参照: 1 つのプロジェクト
- github.com/author/quick-parser - 重複、最終アップストリームコミット 8 日前、プロジェクト参照: なし(rss-to-json と同じ仕事)
- github.com/author/tiny-orm - 棚上げ、最終アップストリームコミット 55 日前、プロジェクト参照: なし
- github.com/author/rate-limiter - 使用中、最終アップストリームコミット 3 日前、プロジェクト参照: 2 つのプロジェクト
- github.com/author/config-loader - 使用中、最終アップストリームコミット 4 日前、プロジェクト参照: ほとんどのプロジェクト
- github.com/author/legacy-fetch - アップストリーム放棄、最終アップストリームコミット 400+ 日前、プロジェクト参照: なし
- github.com/author/env-check - 使用中、最終アップストリームコミット 9 日前、プロジェクト参照: 1 つのプロジェクト
- github.com/author/pretty-logs - 棚上げ、最終アップストリームコミット 70 日前、プロジェクト参照: なし
- github.com/author/proxy-list - 不明、最終アップストリームコミット 20 日前、プロジェクト参照: 不明
- github.com/author/backoff-lib - 使用中、最終アップストリームコミット 6 日前、プロジェクト参照: 2 つのプロジェクト
- github.com/author/dead-simple-db - 棚上げ、最終アップストリームコミット 88 日前、プロジェクト参照: なし
- github.com/author/quick-hash - 使用中、最終アップストリームコミット 1 日前、プロジェクト参照: 1 つのプロジェクト
- github.com/author/retry-wrapper - 重複、最終アップストリームコミット 14 日前、プロジェクト参照: なし(backoff-lib と同じ仕事)
- github.com/author/format-time - 使用中、最終アップストリームコミット 2 日前、プロジェクト参照: ほとんどのプロジェクト
- github.com/author/quick-mailer - 棚上げ、最終アップストリームコミット 50 日前、プロジェクト参照: なし
- github.com/author/health-check-lib - 使用中、最終アップストリームコミット 5 日前、プロジェクト参照: 2 つのプロジェクト
- github.com/author/dotenv-plus - 使用中、最終アップストリームコミット 3 日前、プロジェクト参照: ほとんどのプロジェクト
- github.com/author/simple-lock - 不明、最終アップストリームコミット 30 日前、プロジェクト参照: 不明
- github.com/author/old-notify - アップストリーム放棄、最終アップストリームコミット 500+ 日前、プロジェクト参照: なし
- github.com/author/tiny-scheduler - 重複、最終アップストリームコミット 18 日前、プロジェクト参照: なし(quick-scheduler と同じ仕事)

(上記の名前はプレースホルダであり、リストの形状を示すものであり、実際のツールではありません)
30 行は手動で読むには大したことではない。しかし、同じ仕事をする 3 つの別々のリトライロジックライブラリがあることや、実際に依存しているリポジトリの 1 つが 1 年以上アップストリームコミットされていないことに気づくのにも十分な量でもある。
30 個すべてのノートが存在する場合の Vault のグラフビュー:すべてのツールがノードとして表示され、重複や共通目的のリポジトリが目に見えるクラスターにまとめられる。
Loop 2:30 以上のツールを集めて初めて機能するパス。
単一のツールの README はこれを教えてくれない。あなたが取得したすべてのものを横断して読むものだけが、これを行うことができる。
1TRIGGER: 12 時間ごと2STEPS:3 Pass 1、実際に棚上げされたもの:4 status: in-use だが、あなたのプロジェクトのいずれでも 30 日以上5 参照されていないリポジトリにフラグを立てる。実際の使用状況を6 あなた自身のリポジトリと照合して確認する。推測はしない。7 Pass 2、重複ツール:8 すべてのノートにわたって「実際に何をするのか」を比較し、同じ9 問題を解決しているものをグループ化する。同じ関数名または同じ10 目的の一致によって確認する。似たような説明文だけではない。11 Pass 3、アップストリームリスク:12 あなたが依存しているツールで、最後のアップストリームコミットが13 120 日以上前のものにフラグを立てる。これにより、どの依存関係が14 警告なしに古くなる可能性があるかを把握できる。15 Pass 4、正直な評価:16 ツールごとに 1 行で、ディスク容量と、その存在を覚えておくという17 精神的なオーバーヘッドに値するかどうかを述べる。遠慮はしない。18VERIFY: 各パスは memory/PORTFOLIO.md に書き込む。Pass 2 のグループ化は19 実際の共有関数または目的の一致に基づく。20STOP: 4 つのパスすべてが完了するか、パスが失敗してログに記録される。21 黙ってスキップされることはない。
Pass 3 は、実際にあなたの仕事の仕方を変えるものだ。メンテナーが 1 年前に活動を停止した 3 つのツールに依存していることは、それが目の前のリストに載るまで気づかない。
Pass 3 から生成されたリスクテーブル:実際に使用しているツールを、アップストリームプロジェクトが最後に更新されてからの日数でソートしたもの。

まずは手動で試してみる?
いつものルール。手動で確認していないものは、決してスケジュールしないこと。
1You will work in a loop until the task meets the bar.23TASK:4Read every repo folder in [path]. For each one, note what it does,5why you originally grabbed it, whether you're still actually using6it, and how long since the upstream project last committed. Then7compare across all repos: find duplicates and anything you depend8on that's gone quiet upstream.910SUCCESS CRITERIA (strict, no soft passes):11- every "duplicate" is backed by an actual matching function or12 purpose, not similar-sounding descriptions13- every "shelved" repo includes days since you last referenced it14 anywhere in your own projects15- upstream risk is based on real commit dates, not assumptions1617LOOP PROTOCOL, repeat every turn:181. PLAN - state the single next step192. DO - produce or improve the output203. VERIFY - score 1-10 on each criterion, be brutally honest214. DECIDE - if every criterion is 8+, print "FINAL" and stop2223RULES:24- Never call it done until every criterion is 8+25- Do not ask me questions, make a sensible assumption and continue2627Begin. Run the loop until FINAL.
重複リストやアップストリームリスクリストがあなたを驚かせるなら、それはスケジュールする価値がある。それが単にあなたがすでに知っていることを確認するだけなら、まだ自動化してはいけない。
実際に機能する順序は?
Loop 1 を実行し、クローンしたすべてのリポジトリにプレースホルダではなく実際のノートができるまで続ける。
1 週間か 2 週間そのままにする。その後は、新しいツールを取得するたびに自動的にノートが作成される。
その後にのみ Loop 2 をオンにする。重複とアップストリームリスクのパスは、実際に衝突するのに十分なノートを必要とする。
少なくとも 2 回、手動でクリーンに実行されるのを確認した後、最後にスケジュールする。
コストは?
Loop 1 は新しいクローンごとに実行されるため、固定のスケジュールではなく、実際に取得する量に応じてスケールする。ほとんどの週では、それは数回の安価なモデル呼び出しで済む。
Loop 2 は 30 以上のノートに対して 1 日 2 回実行される。Pass 1 と Pass 3 は安価なモデルに移す。これらはルックアップであり、判断を要するものではない。Pass 2 と Pass 4 は Sonnet に残す。なぜなら、本当の重複を見つけ、正直な評価を与えるには、比較しているものを実際に推論できるモデルが必要だからだ。このように分割すれば、30 のリポジトリコレクションに対して 1 日 2 回実行しても、同じ監査を手動で行うのにかかる時間よりもコストが低い。
覚えておくべき唯一のこと。
README はツールが何をするかを教えてくれる。これは、見つけた 30 のツールのうちどれを実際に使っているのか、どれが静かに互いに重複しているのか、そしてどれを誰もメンテナンスしていないのに依存しているのかを教えてくれる。
価値は、単一のツールノートにあるのではない。収集したどのツールも、静かに腐ったり、静かに重複したり、静かにメンテナンスされなくなったりすることが、あなたが実際にそれを目にする場所に書き留められるという事実にある。
まず Loop 1 を構築すること。Loop 2 に触れる前に、2 ~ 3 週間実行させること。重複とアップストリームリスクのパスは、5 つのリポジトリでは役に立たない。それらは 20 を超えたあたりで、コストに見合うようになり始める。
このような詳細な分析をもっとご希望なら、私は Telegram と X で数日おきに投稿しています。両方とも無料です。
Telegram - https://t.me/GipArcAI





