Adding catalog entries —— 加入 catalog 條目¶
Terminology rule (zh-TW pages)
技術名詞首次出現以「中文 (English original)」格式呈現,例:依賴注入
(dependency injection)。不自創翻譯——若無公認譯名直接保留英文
(如 embedding、tokenizer)。代碼、API 名、CLI flag、套件名、檔名一律不翻。
如何新增或更新 Catalog 條目 —— 新的 external skill、新的 MCP server、新的 domain hub,或既有條目的 status 變更。
此 workflow 把 catalog 與既有的 source of truth(vendor.yaml 與
TODO.md)耦合而不重複。Catalog 頁面是vendoring 決策紀錄;實際的
vendoring 透過既有 script 進行。
何時寫一筆 catalog 條目¶
| 你發現了… | 放哪 | 起始 status |
|---|---|---|
| 可能想 vendor 的 external skill | skill-collections.md + 對應的 domain hub |
wishlist |
| 明確不想進日常 discovery,但值得收藏的有趣 skill | curiosities.md |
skipped,並寫明只放 docs 的理由 |
| 想記住的 MCP server | catalog/mcp/ 下新檔 + 對應的 domain hub |
wishlist |
| 全新的專業領域 (professional domain) | catalog/domains/ 下新檔(複製 _template.md) |
(hub 本身,不是條目) |
| 看過後決定不要 vendor 的 skill | 加進 skill-collections.md 並寫理由 |
skipped |
| 看過但還沒決策的 skill | 加進 skill-collections.md 寫一句話備註 |
evaluated |
Status enum¶
Status enum (single source of truth across the catalog)
Every external-skill or MCP entry below carries a status: value:
| Status | Meaning | Where it links |
|---|---|---|
vendored |
Already in vendor.yaml. |
Link to the skills/vendor/<name>/ (or series) entry. |
deferred |
Open TODO P? item — under consideration. |
Link to the TODO.md anchor. |
skipped |
Looked at, chose not to vendor. | Inline reason required (1 sentence). |
evaluated |
Read but no decision recorded. Effectively "tracked." | Inline 1-line note describing what was learned. |
wishlist |
Surfaced but not yet evaluated. | No link required; default for fresh discoveries. |
Status changes are explicit edits — see the Adding catalog
entries workflow doc (under Workflows in the nav) for the
wishlist → deferred → vendored recipe.
Manual install for non-vendored skills
When a skill is not in vendor.yaml, you can still install it directly
from upstream via the npx skills CLI:
# Whole-repo install (if SKILL.md sits at repo root or skills/)
npx skills@latest add <owner>/<repo>
# Subpath install (when the skill is nested)
npx skills@latest add <owner>/<repo>/<path-to-skill-dir>
# Cherry-pick by name
npx skills@latest add <owner>/<repo> -s <skill-name>
# Force deep discovery (skill nested >1 level inside skills/)
npx skills@latest add <owner>/<repo> --full-depth -s <skill-name>
For Anthropic-style plugin marketplaces (e.g.
anthropics/financial-services,
anthropics/knowledge-work-plugins), use the Claude Code plugin
commands instead:
For MCP servers, see the per-entry "Auth & install" section in the MCP wiki — install commands vary by transport (HTTP / stdio / SSE) and host (Claude Code / Claude Desktop / Cursor / Managed Agents).
Status 變更 recipe¶
wishlist → deferred¶
條目跨入「該評估這個」的階段。
./scripts/add-todo.sh --priority P? --effort <S|M|L> \
--title "<skill-name> skill" \
--description "Evaluate <upstream URL> for <use case>. See catalog/<page>.md."
然後編輯 catalog 條目:把 status: wishlist → status: deferred,
連結到新建的 TODO 行。
deferred → vendored¶
條目已評估完,決定 vendor。
# Vendor 該 skill(寫進 vendor.yaml + 下載檔案)
./scripts/add-vendor.sh <owner>/<repo>/<path-to-skill>
# 或加 series 子目錄
./scripts/add-vendor.sh --series <series-name> <owner>/<repo>/<path-to-skill>
# 若該條目有 TODO P? 行,promote 它
./scripts/promote-todo.sh --title "<substring>" \
--summary "Vendored from <upstream URL>"
然後編輯 catalog 條目:把 status: deferred → status: vendored,
更新連結指向 skills/vendor/<name>/(或
skills/vendor/<series>/<name>/)。
wishlist / evaluated → skipped¶
讀完 upstream 後決定不 vendor。
直接編輯 catalog 條目:status → skipped,inline 寫一句話理由。範例:
- 「Skipped —— 與
<other-skill>(來自更權威的<source>)重複。」 - 「Skipped —— Slack 專屬;不通用。」
- 「Skipped —— 比既有的
<existing-local-skill>更窄且重疊。」
加一筆新的 MCP 條目¶
- 建立
docs/catalog/mcp/<slug>.md,附上mcp/index.md文件化的 YAML frontmatter schema。 - 填上六段式 (6-section) 主體(TL;DR / capabilities / install / when / related / sources)。
- 翻譯成
docs/catalog/mcp/<slug>.zh-TW.md。 - 把它加到
mkdocs.yml的 nav 之Catalog → MCP wiki下方。 - 在
mcp/index.md的 entries table 加一列。 - 從相關 domain hub 的 MCP 段落交叉連結 (cross-link)。
當 MCP wiki 條目 ≥ 5,索引表將由 script 重建(規劃中 —— 見後續 TODO)。 在那之前手動編輯該表。
加一個新的 domain hub¶
見 Domains 總覽中的 How to add a new domain hub 段落 —— recipe 與 template 放在一起。
雙語 (bilingual) 義務¶
docs/catalog/ 內的每個頁面(除了 snippet 與 _template.md)都必須
有 *.zh-TW.md 對應檔。mkdocs-i18n 的 fallback_to_default: true
讓缺翻譯不會弄壞 build,但專案慣例是每個發布頁面在同一個 PR 內
就有兩種語言。
驗證¶
make docs-build # strict mode 抓缺 snippet / 壞掉的 link
make marketplace # 確保 vendor.yaml / marketplace.json 沒退步
make kanban # 確保 TODO.md 仍然 parse 得過
打開 served site(make docs-serve),點過新條目的交叉連結
驗證它們可達。