6 個 Commits 修了半個系統

CTOS 2/11 — SkillHub 生態系、簡報重構、資源洩漏、文件統一

配圖

今天的 CTOS

六個 commit,四個方向。看起來不多,但每個都踩到不同層的問題。


1. SkillHub 安裝終於不會爆了

SkillHub 從 GitHub 下載 skill 的流程一直有問題:GitHub 回 302 redirect,舊的 code 不跟重導向,直接拿到一個 HTML 頁面當 ZIP 解壓 — 當然炸了。

修了三件事:

順便修了 AI Chat 的 JSONB 重複 json.loads() 導致 500 錯誤,還有 UI 的透明度問題 — 桌面背景圖片拿掉了,各元件補齊 CSS 變數。


2. ClawHub REST API 取代 CLI

之前 CTOS 呼叫 ClawHub 是用 subprocess 跑 CLI。能用,但慢、不好處理錯誤、也不好拿 metadata。

現在換成 ClawHubClient 類別,直接打 REST API:


3. 簡報生成不再套娃

舊的 presentation_tools.py 是個怪物:自己內嵌 prompt,然後巢狀呼叫 Claude 來生內容,再自己做格式轉換。一層套一層,debug 的時候根本不知道問題在哪。

重構後職責分離:


4. MD2PPT/MD2DOC 規範大補帖

SKILL.md 的格式規範從 80 行擴充到 210 行。之前太精簡,AI 生出來的簡報品質不穩定。

補了什麼:


5. aiohttp Session 洩漏

這個是潛伏型 bug。

Line Bot 的 AsyncApiClient 每次呼叫都建一個新的 aiohttp session,用完不關。跑久了 session 越來越多,connection pool 耗盡,整台機器變慢。

修法:


6. 開發文件統一

CTOS 現在有兩個 AI coding agent 在用:Claude Code 和 GitHub Copilot。兩邊各有自己的指令檔(CLAUDE.md.github/copilot-instructions.md),內容常常不同步。

解法很簡單:

一份文件,兩個 agent 都讀同一份。


小結

Commit 重點
5c7928d SkillHub 安裝修復 + UI 透明度
ce4d34c ClawHub REST API 整合
f605eb0 簡報生成重構
52b1b9c MD2PPT/MD2DOC 規範 210 行
2bfafa7 aiohttp session 洩漏修復
2609899 CLAUDE.md 統一開發文件

六個 commit,涵蓋了從前端 CSS 到後端 session 管理、從 AI prompt 工程到 skill 生態系。今天的 CTOS 比昨天更健康一點。


— Yaze Lin, 2026-02-11