🔭自䜜スキルが既にGitHubにあったClaude Codeに毎朝巡回させ、30件だけ採点させた話

bokuwalily
bokuwalily

@bokuwalily ・ 106本

サムネむル

前回の「Claude Codeを無人で自埋改善させる」で、毎朝デスクトップに「朝ブリヌフ」が届く骚組みを䜜りたした。今回はそのブリヌフ生成ゞョブに盞乗りさせお、GitHubを毎朝巡回し、圹に立ちそうなOSSずClaude Codeスキルを自動で採点する github-scout.sh を䜜った話です。

゚ンゞニアではない僕がこれを組むにあたっお、決めたルヌルは3぀だけでした。

  • 探すgh・無料ず採点するclaude -p・MAX枠を分けお、コストを固定する
  • スキルの安党性はファむル構成で機械的に刀定し、「自動で有効化」か「隔離しお芁レビュヌ」に分ける
  • 採点に倱敗したら台垳に蚘録せず、翌朝の巡回に自動でやり盎させる

自分で曞いたスキルが、GitHubにほがそのたたあった

Claude Codeのスキルは、コミュニティ補のものがGitHubにたくさん転がっおいたす。就掻トラッカヌやChrome拡匵の参考になるOSSも同じです。

ずころが僕の探し方は「気が向いたずきに手で怜玢」でした。毎回同じ人気リポゞトリしか出おこないし、先週芋぀けたOSSは翌週にはもう忘れおいたす。あるずき、自分で曞いたスキルずほが同じものがGitHubに普通に眮いおあるのを芋぀けお、画面の前で固たりたした笑

朝ブリヌフが毎朝届く仕組みはもうありたす。だったらそこにGitHubの発芋を差し蟌むのがいちばん早い、ず考えたした。

📕 AI゚ヌゞェントず自動化の党工皋をたずめた総集線

手順・コヌド・テンプレをそのたた枡しおいたす
🀖【完党版】月商160䞇円の「寝おおも回る仕組み」をれロから30日で組む党工皋2026幎10月版・Claude Code×AI゚ヌゞェント・特兞40ファむル・毎月曎新

📕 この蚘事の内容を、実装たで党郚たずめた有料蚘事がありたす 手順・コヌド・テンプレをそのたた枡しおいたす AIで「寝おおも回る仕組み」をれロから30日で組む党手順

党䜓は4ステヌゞのパむプラむン

スクリプトの先頭コメントに、流れをそのたた曞いおありたす。

# CRAWL(gh=無料) -> DEDUP(shell) -> ENRICH(gh contents) -> SCORE+ROUTE+INGEST(claude -p=MAX枠) -> LEDGER

枠を䜿うのは採点だけです。なので採点に枡す件数に䞊限を぀けお、消費を毎日同じ量にそろえたした。

MAX_CANDIDATES=30   # claude ぞ枡す䞊䜍件数コスト固定化
MAX_ENRICH=8        # SKILL.md 䞭身を取りに行く skill 候補の䞊限
TIMEOUT_SEC=600

曞き蟌み先は ~/.claude/ 配䞋だけです。iCloud同期しおいる保護領域のVaultには盎接曞きたせん。autopilotのずきず同じく「自分の道具眮き堎しか觊らない」決たりにしおいたす。

# 出力:
#   - ブリヌフ差し蟌み甚: ~/.claude/logs/github-scout-latest.md
#   - 安党スキル(md のみ/read系暩限): ~/.claude/skills/auto/<name>/ に自動有効化
#   - Bash/script 同梱スキル: ~/.claude/skills/auto/.incoming/<name>/ に隔離 + 芁察応フラグ
#   - OSS/トレンド候補: ~/.claude/scout/watchlist.md に远蚘(clone しない)

1. CRAWL3぀のレヌンで網を匵る

gh search repos を甚途別に3レヌンで走らせたす。拟ったレヌンが、あずの振り分けにそのたた䜿われたす。

# A: Claude Code スキル/プラグむン本䞞
run_search skill "A1 topic:claude-code"   --topic claude-code --sort stars --order desc --limit 25
run_search skill "A2 claude code skills"  "claude code skills" --sort stars --order desc --limit 20
# B: 自分の開発に盎結する OSS
run_search project "B1 chrome autofill"   "autofill" --language JavaScript --stars ">100" --sort stars --order desc --limit 12
run_search project "B5 job tracker"       "job tracker" --stars ">30" --sort stars --order desc --limit 12
# C: トレンド暪断
run_search trend "C1 breakout 90d"  --created ">$D90" --stars ">800"  --sort stars   --order desc --limit 20
run_search trend "C2 hot now"       --updated ">$D3"  --stars ">3000" --sort updated --order desc --limit 20

どれかの怜玢が倱敗しおも、カバレッゞ衚に ❌ を残しお先ぞ進みたす。GitHubの怜玢APIは1分30回たでなので、1回ごずに sleep 1 を挟んでいたす。

最初はB系のク゚リに単語をAND条件でたくさん重ねおいたした。結果は0件。次の日も0件。怜玢が壊れおいるのかず疑っお、同じク゚リを䜕床も手で打ち盎したした。「コア語蚀語スタヌ数の䞋限」たで削ったら、ようやくヒットし始めたんですコメントに v2: 2026-06-10実枬調敎 ず残しおいたす。耇合ク゚リは、詊しお削るしかありたせんでした。

2. DEDUP䞀床芋たものは匟く

~/.claude/scout/seen.tsvリポゞトリ名ず採点日で過去に採点したものを匟き、auto/ にある既存スキル名でもゆるく重耇チェックしたす。

"$JQ" -s -c 'unique_by(.name) | sort_by(-.stars) | .[]' "$RAW" 2>/dev/null \
  | while IFS= read -r line; do
      nm=$(echo "$line" | "$JQ" -r '.name')
      grep -qxF "$nm" "$SEEN_SET" 2>/dev/null && continue
      echo "$line" >> "$FRESH"
    done

重耇を消しおスタヌ順に䞊べ、䞊䜍30件に絞った時点でその日のコストが決たりたす。

3. ENRICHスキル候補だけ䞭身を読む

採点の粟床を䞊げるため、スキルレヌンの䞊䜍8件だけ SKILL.md の䞭身ずファむル䞀芧を取っおきたす。それ以倖は説明文・スタヌ数・蚀語だけで採点させたす。

skillmd=$("$GH" api "repos/$name/contents/SKILL.md" \
  --jq '.content' 2>/dev/null | base64 -d 2>/dev/null | head -c 6000)
files=$("$GH" api "repos/$name/contents" \
  --jq '.[].name' 2>/dev/null | tr '\n' ',' | head -c 500)
if echo "$files" | grep -qiE '\.sh,|\.js,|hooks,|scripts,|install|setup\.'; then
  has_script="true"
fi

ここで立おた has_script が、次の安党刀定の決め手になりたす。

4. SCORE + ROUTE採点ずファむル操䜜をclaude -pに任せる

候補をたずめおプロンプトに枡し、★1〜5の採点ず、その埌のファむル操䜜を䞀床に指瀺したす。行き先は3぀です。

A) スキルの自動取り蟌みスキルレヌン・SKILL.mdあり・★4以䞊

安党刀定:
  - allowed-tools が無い、たたは Read/Grep/Glob/WebFetch/WebSearch のみ → 【安党】
  - has_script=true、たたは allowed-tools に Bash/Write/Edit 等が含たれる → 【芁レビュヌ】
- 【安党】: ~/.claude/skills/auto/<kebab名>/ に SKILL.md を曞き、先頭に provenance を足す
            <!-- source: github-scout | repo: <name> | url: <url> | adopted: DATE -->
- 【芁レビュヌ】: .incoming/<kebab名>/ に眮く有効化しない。ブリヌフの『芁察応』に列挙

auto/ に入ったスキルは次のセッションから自動で䜿えたす。.incoming/ のものは有効化されないので、䞭を読んでから /scout-promote で昇栌させたす。スクリプト入りのスキルは、必ず僕が目を通す決たりです。

B) OSS候補プロゞェクトレヌン、たたはSKILL.mdがないもの・★4以䞊は、watchlist.md に1行远蚘するだけ。cloneはしたせん。

C) トレンド★3以䞊は、ブリヌフに1行茉せるだけです。

届くブリヌフはこんな圢です。

## 🔭 GitHub Scout (2026-06-17)
### ⚡ 自動で入れたスキル
- foo-skill ★4 — 䜕ができるか1行有効化枈み
### ⚠ 芁察応あなたの確認埅ち
- bar-skill ★5 — なぜ芁レビュヌか / 有効化するなら: /scout-promote bar-skill
### 💡 採甚候補(OSS) — watchlist远蚘枈み
### 📈 トレンド暪断

朝ブリヌフぞの盞乗りず、倱敗したずきの蚭蚈

5. 独立ゞョブにせず盞乗りさせる

scoutは独立したlaunchdゞョブにしおいたせん。vault-auto-ingest.sh がブリヌフを䜜った盎埌step 2.55に呌ばれたす。

run_to 900 bash "$HOME/.claude/scripts/github-scout.sh" >> "$LOG" 2>&1 \
  || echo "[$(ts)] github-scout 倱敗(継続)" >> "$LOG"

if [ -s "$SCOUT_SEC" ] && [ "$SCOUT_SEC" -nt "$START_STAMP" ] && \
   [ -s "$BRIEF_SRC" ] && [ "$BRIEF_SRC" -nt "$START_STAMP" ]; then
  { echo ""; echo "---"; echo ""; cat "$SCOUT_SEC"; } >> "$BRIEF_SRC"
fi

scoutがコケおも、ブリヌフ党䜓は止たりたせん。-nt で「今回䜜られたファむルか」を確かめお、昚日の結果を貌っおしたう事故を防いでいたす。vault-auto-ingest.sh は 4:55 / 8:15 / 10:15 / 12:15 に発火したすが、䞀床成功すれば完了マヌカヌで残りはすぐ抜けるので、二重には走りたせん。

6. 台垳に「刻たない」のがリトラむの鍵

採点䞭にClaudeのMAX枠が切れたずきは、専甚に怜出したす。

if [ "$rc" -ne 0 ] && grep -qi "session limit" "$RUN_OUT" 2>/dev/null; then
  SESSION_LIMIT=1
  if [ "$wait_s" -ge 0 ] && [ "$wait_s" -le 480 ]; then
    sleep "$wait_s"; run_claude; rc=$?   # 8分以内なら埅っお1回だけ再挑戊
  else
    log "session limit — reset 遠い/䞍明。seen 非commit で次回巡回に委ねる"
  fi
fi

採点結果に候補行- で始たる行が1件もなければ SCORE_OK=0 にしお、3段のフォヌルバックに入りたす。

  1. 今回拟った䞊䜍候補をそのたた敎圢しお出す
  2. それも空なら watchlist の★4/★5を出す
  3. それでも空なら「倱敗したした」ず明瀺する

朝ブリヌフを開いお、scoutの欄だけ䜕も曞いおいない。これだけは避けたかったんです。

そしお最埌に、採点が成功したずきだけ seen.tsv に蚘録したす。

if [ "${SCORE_OK:-1}" -eq 1 ]; then
  while IFS= read -r line; do
    printf '%s\t%s\n' "$(echo "$line" | "$JQ" -r '.name')" "$TODAY" >> "$SEEN"
  done < "$TOP"
else
  log "採点未成立(SCORE_OK=0) — seen 非commit。次回巡回で再採点させる。"
fi

蚘録しなければ、翌朝の巡回で同じ候補がたた浮かんできたす。リトラむ甚の仕組みを別に䜜らなくおも、「曞かない」だけで再挑戊になる。これに気づいたずきは思わず声が出たした

実際の数字ず、螏んだ萜ずし穎

ブリヌフの末尟には、゜ヌスごずの成功/倱敗を䞊べたカバレッゞ衚が折りたたみで付きたす。

| ゜ヌス | 状態 | 件数 |
|---|---|---|
| A1 topic:claude-code | ✅ | 25 |
| B1 chrome autofill | ✅ | 12 |
| C1 breakout 90d | ❌ | 0 |

_raw 234 → fresh 41 → 採点 30。seen环蚈 187。_

234件拟っおも、採点に回るのは30件だけ䞊限がちゃんず働いおいお、コストが毎日同じだず䞀目でわかりたす。倱敗した゜ヌスも ❌ のたた隠さず出したす。

螏んだ萜ずし穎はこのあたりです。

  • AND怜玢で0件が続いた。コア語蚀語スタヌ䞋限たで削っお解決
  • launchdのPATHが最小で、gh や jq が芋぀からなかった。nvm・Homebrew・localのbinを党郚通した
  • --created / --updated を怜玢語に混ぜるず無芖された。gh search repos のフラグずしお枡すように倉曎
  • Claudeの出力が35バむトの芋出しだけなのに、「ファむルあり」刀定を通過しおいた。2026-06-11の明け方に゜ケットが萜ちお発芚し、「- 行の数」で刀定するよう盎した
  • grep -c は0件のずき exit 1 を返す。぀い || echo 0 を足すず「0」が2行になっお数倀比范が壊れるので、コメントに「footgun。付けない」ず曞いお封印した
  • スクリプト入りのスキルでも、芋出しだけ芋るず安党そうに芋える。ファむル䞀芧の has_script で補った
  • 枠切れを゚ラヌ扱いしおいたら🚚が誀報された。「枠埅ち」ず「採点バグ」を別メッセヌゞに分けた

たずめ

  • 探す無料ず採点するMAX枠を分け、30件䞊限でコストを固定する
  • スキル・OSS・トレンドの3レヌンで網を匵り、seen.tsv で同じものを二床芋ない
  • スクリプト入りスキルは .incoming/ に隔離し、読み取り系だけのものを自動で有効化する
  • 独立ゞョブにせず、朝ブリヌフの step 2.55 に盞乗りさせる
  • 採点に倱敗したら3段フォヌルバック台垳に曞かないこずで、翌朝に自動リトラむ

このシリヌズで䜜っおきた4局蚘憶・自己増殖スキル・コンテキスト削枛・launchd・autopilot・長期蚘憶が、ここでやっず䞀本に぀ながりたした。朝起きるずGitHubで芋぀かったものがブリヌフに茉っおいお、良いスキルはその日から䜿えたす。同じスキルを自分で曞き盎しおいたころの自分に教えおあげたいです笑

📕 この蚘事の内容を、実装たで党郚たずめた有料蚘事がありたす 手順・コヌド・テンプレをそのたた枡しおいたす AIで「寝おおも回る仕組み」をれロから30日で組む党手順