不属于 Python 包的开发者与用户侧工具。
openai4s/ 下的一切都会打进 wheel 并在运行时被导入;这里的东西不会。它通过
另一条渠道分发——npm,或直接从本仓库运行 npx——并刻意不写进
[tool.setuptools.packages.find],因此 pip install openai4s 不会带上任何
JavaScript。
| 目录 | 职责 |
|---|---|
skills-installer/ |
openai4s-skills 命令——npx @pku-yuangroup/openai4s-skills@0.2.0 <command> 固定使用 npm 发布版(603 个 Skill:42 个精选 + 561 个 bioSkills),npx @pku-yuangroup/openai4s-skills <command> 使用 npm 最新发布版,npx github:PKU-YuanGroup/OpenAI4S <command> 使用当前仓库目录(604:43 + 561)。它把所选的 Skill 库复制到 Claude Code、OpenAI4S 数据目录,或用户指定的任意目录——并写下清单,使卸载精确、覆盖默认拒绝。 |
仓库根目录的 package.json 声明了这个 npm 包:bin 指向
skills-installer/cli.mjs,files 列表把该目录连同 skills/ 一起发布。把清单
放在根目录,使 npx github:PKU-YuanGroup/OpenAI4S 可以直接使用默认分支,
独立于 npm 上的发布版本。
这里的任何东西都不会被 daemon、kernel 或任何 Python 测试导入——语言边界让双向导入
都不可能。安装器自己的关卡是 node tools/skills-installer/selftest.mjs 和
node tools/skills-installer/check_package.mjs,各自作为独立的 CI job 运行,好让其中
一个变红时挡不住另一个:「安装器行为是否正确」和「发布出去的包里到底有没有东西可装」
是两个不同的问题。契约中位于 Python 一侧的那一半——skills/ 的目录形态,以及决定
发布包内容的 package.json 清单——由 tests/test_skills_installer_contract.py
断言;它刻意不去调用 node:一个在没装 Node 的机器上直接跳过的测试,是以错误的
理由汇报成功。