從 GitHub 星標清單與官方技能目錄挑選工具
目標:當任務需要某個工具、函式庫、CLI、MCP 伺服器或代理技能時,優先考慮使用者已信任的項目(他們的 GitHub 星標)與官方供應商目錄,而非隨機的網路搜尋結果,同時仍確保品質檢查。
以下所有路徑均相對於此技能的資料夾(即包含此 SKILL.md 的目錄)。
1. 明確需求
用一句話寫下工具必須達成的功能,以及硬性限制(語言/執行環境、作業系統、硬體如 GPU/VRAM、授權條款、離線/本地執行、預算)。根據你已了解的使用者環境來判斷。
2. 搜尋使用者的 GitHub 星標清單
找出使用者的 GitHub 登入名稱(如果不知道就詢問一次,或者當 gh 已登入為該使用者時,使用 gh api user --jq .login)。然後依序使用以下資料來源:
- 本地快照(可選)。 如果此技能資料夾中存在
references/stars.csv或references/stars_by_list.md(或使用者指定另一個複本,例如在另一個私有儲存庫中),則優先搜尋;此方式可在離線狀態下運作。stars.csv欄位:lists(GitHub 星標清單名稱,以|分隔;若無清單則為(unlisted))、full_name、url、description、description_ja、language、stars、pushed_at、archived、license、topics、starred_at。stars_by_list.md:將相同儲存庫依照星標清單分組,每行一個,頂端有Snapshot:日期。清單名稱是很好的類別提示。- 快照可能為過期資料;當需線上查詢且時效性重要時,也請執行下方的即時檢查。
- 即時、唯讀(預設,當無快照時使用):
gh api --paginate "users/<login>/starred?per_page=100" --jq '.[] | [.full_name,.html_url,.description,.language,(.topics|join(" ")),.stargazers_count,.pushed_at,.archived] | @tsv'(若gh無法使用,則改用未經身分驗證的 REST APIhttps://api.github.com/users/<login>/starred)。如果使用者將星標組織成 GitHub 星標清單,則使用清單名稱作為類別提示。
根據描述、主題、名稱和語言進行比對,並使用多個同義詞(包括使用者撰寫時使用的其他語言),例如 rg -i "video|動画|ffmpeg" references/stars.csv。在推薦前,先瀏覽可能匹配項目的 README。
3. 搜尋官方技能 / 外掛目錄(當代理技能或外掛有幫助時)
- 執行
npx -y skills find "<query>",可選擇性地加上--owner <publisher>來限定官方發行者,例如 anthropics、openai、cursor、github、google、google-gemini、microsoft、vercel-labs、cloudflare、huggingface、awslabs。此操作需要網路連線;如果環境為離線狀態,則跳過此步驟並說明原因。 - 也可以直接考慮供應商的官方儲存庫(例如 anthropics/skills、anthropics/claude-plugins-official、openai/skills、openai/plugins、cursor/plugins、github/awesome-copilot、google/skills、vercel-labs/agent-skills、huggingface/skills、microsoft/skills、cloudflare/skills)。在將某個儲存庫稱為官方之前,請確認其屬於該供應商的組織。
4. 品質篩選(適用於每個候選項目)
- 使用快照中的
stars、pushed_at、archived和license,並在線上時透過gh api repos/<owner>/<repo>重新整理這些資料。 - 優先選擇知名且積極維護的專案。捨棄已封存、大約一年內無實質活動、以及星標數極少的儲存庫,除非沒有更好的選擇(在這種情況下請說明)。
- 星標數可能包含老舊或玩笑性質的儲存庫:被星標標記僅代表有人感興趣,不代表品質。
- 如果星標清單和官方目錄中都沒有合適的項目,請說明情況,並回歸到一般搜尋,尋找業界公認的標準工具。永遠不要強迫推薦一個被星標標記的儲存庫。
5. 推薦
- 提供一個首選,外加最多兩到三個替代方案。每個方案包含:帶連結的名稱、一行功能說明、為何適合此任務和限制條件、星標數與最後更新時間(說明是來自快照還是即時檢查),以及該選項是來自使用者的星標清單、官方目錄還是一般搜尋。
- 不要憑空編造星標數、日期或功能;僅報告你已驗證的資訊。
- 安裝、星標標記或任何變更都需要使用者的同意;此技能預設為唯讀。
建立或更新快照(可選)
執行 python3 scripts/refresh_stars.py <login> 會寫入 references/stars.csv 和 references/stars_by_list.md(唯讀;需要 gh 已登入;只有當 gh 以 <login> 身分登入時,星標清單名稱才會被填入,否則每個儲存庫都會顯示為 (unlisted))。現有的 description_ja 值會被保留。這些資料屬於個人隱私:請勿將其放入公開儲存庫(請參閱 .gitignore),或者將其存放在另一個獨立的私有儲存庫中。