
看這段最佳實踐:A schematic @diablo/schematics:ai-context that copies that skill out of node_modules/@diablo/skills into the project, shaped per AI tool (claude, cursor).看到這段設計描述時,我真正關注的不是那個copy動作,而是它背后刻意劃開的兩條邊界。一條邊界屬于 Node.js 與 npm 的世界,@diablo/skills是一個可以安裝、升級、鎖定版本、被多個項目復用的軟件包。另一條邊界屬于 Claude Code、Cursor、OpenClaw 這一類 Agent runtime 的世界,它們并不會因為某份 Markdown 文件出現在node_modules里,就自動把那份文件理解成一個可調用的 Skill。它們各自有自己的 discovery contract,也就是約定好的發現目錄、文件布局、元數據格式和加載規則。所以,把 Skill 存在@diablo/skills里,再通過@diablo/schematics包中的ai-contextschematic,把 Skill 投影到當前項目里 Claude Code 或 Cursor 能認識的位置,這不是多繞了一層,而是在做一件很典型的工程工作,建立一個 canonical source,再為不同 Agent runtime 生成