Skill 生成与治理节点:将任意资源(GitHub 仓库、API 文档、自然语言需求、代码片段)转化为零外部依赖、极致省 Token、可被任意生态(Kimi/OpenAI/Claude/自研 Agent)直接调用的标准化 Skill。触发条件:(1) 用户要求创建/生成/编写 Skill,(2) 用户提出相关需求。
CoolSkill Builder是一项面向实际任务的技能,主要用于将任意资源转化为标准化、零依赖、跨生态兼容的 Skill 模块;零依赖 :impl.py 仅使用 Python 标准库白名单模块(详见 references/spec.md);
从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。
执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。该技能适合用于一次性任务,也可以接入自动化工作流,与其他技能或上层代理配合完成更完整的业务链路;在组合使用时,应明确每一步的输入输出关系,并避免不同步骤之间出现参数冲突。
将任意资源转化为标准化、零依赖、跨生态兼容的 Skill 模块。
{domain}-{func}-{rand3},Semver 递增,历史版本只读收到资源后,严格按以下顺序执行:
提取以下信息,整理为结构化需求:
| 字段 | 说明 |
|---|---|
| 功能意图 | 该 Skill 的核心功能是什么 |
| 输入 schema | 参数名、类型、是否必填、默认值 |
| 输出 schema | 返回值结构、成功/错误格式 |
| 边界规则 | 长度限制、取值范围、异常场景 |
| domain | 功能领域(data, text, web, file, api, calc...) |
如果用户提供的是:
基于解析结果,生成以下文件。详细模板见 references/file-templates.md。
v 替代 version, d 替代 description, src 替代 source, pf 替代 platforms, props.dom 替代 domain, props.st 替代 statusmeta.id 使用 scripts/generate_skill_id.py 生成,或按 {domain}-{func}-{rand3} 规则meta.src 标记来源:github|registry|custom|apischema.in / schema.out 为 JSON Schema 格式perms 按需声明:net(网络)、fs(文件系统)、env(环境变量)、exec(执行命令)def run(a): 其中 a 为 dict{'s': 'ok|err', 'd': result, 'e': error_string}_e=raise, _j=json.dumps, _p=json.loads, _h=hash, _t=time, _u=url, _f=file, _s=string, _m=math)d['k'],除非需要默认值才用 .get()try/except 包围全部逻辑,r['s']='err';r['e']=str(x)if __name__=='__main__' 之外的任何 I/O(测试/调试代码除外)sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))impl import run,禁止相对导入其他 SkillT 提供 a()(断言)、r()(运行并断言)、x()(汇总退出)universal: entry=run, input=dict, output=dictopenai_function: name/description/parameters/strict=trueclaude_tool: name/description/input_schemahttp_api: POST /skill/{skill-id}, headers 含 X-Skill-Version运行 scripts/security_scan.py 执行自动扫描。任一失败则阻断,仅输出修复指令,不写入 Registry。
手工复核要点:
| 层级 | 规则 | 自动扫描 | 人工复核 |
|---|---|---|---|
| L1 依赖扫描 | 仅标准库白名单 | ✅ | 检查 import 行 |
| L2 注入检测 | 禁止 eval/exec/os.system/subprocess | ✅ | 检查危险调用 |
| L3 密钥检测 | 禁止硬编码 API Key/Token | ✅ | 检查常量字符串 |
| L4 网络边界 | perms 无 net 则禁止 urllib/http/socket | ✅ | 核对 perms 声明 |
| L5 信息泄露 | 禁止返回 traceback/os.environ/密钥 | ✅ | 检查错误返回内容 |
详细规则见 references/security-rules.md。
阻断后行为:
在隔离进程中执行 test.py:
cd registry/{skill-id}/{version} && python test.py
ALL_OK 输出,F=0首次生成:
python scripts/generate_skill_id.py {domain} {func}{domain}-{func}-{rand3} 规则自行生成迭代生成:
registry/index.json 找到该 ID 的最新版本registry/
├── index.json
└── {skill-id}/
└── v{version}/
├── skill.yaml
├── impl.py
├── test.py
└── manifest.json
更新 index.json:
详细格式见 references/registry-format.md。
检测环境变量:
GITHUB_TOKEN: GitHub Personal Access TokenGITHUB_REPO: 格式 owner/repo若缺失:输出 [CONFIG REQUIRED] 提示,继续本地注册。
若存在:使用 urllib.request + base64 + json 推送 4 文件到 skills/{skill-id}/{version}/。
同步代码模板(零依赖):
import urllib.request,json,os,base64
GH='https://api.github.com'
G=os.environ.get('GITHUB_TOKEN')
R=os.environ.get('GITHUB_REPO')
所有 Skill 生成完成后,输出以下报告:
=== SKILL REPORT ===
ID: {skill_id}
Name: {name}
Version: {version}
Domain: {dom}
--- skill.yaml ---
{yaml}
--- impl.py ---
{code}
--- test.py ---
{code}
--- manifest.json ---
{json}
--- SECURITY ---
L1: PASS/FAIL {detail}
L2: PASS/FAIL {detail}
L3: PASS/FAIL {detail}
L4: PASS/FAIL {detail}
L5: PASS/FAIL {detail}
--- TEST ---
P {pass} F {fail}
{case list}
--- REGISTRY ---
Local: registry/{skill_id}/{version}/ (isolated)
Latest: {version}
History: [v1.0.0, v1.0.1, ...]
--- CROSS-PLATFORM CALL ---
Kimi: import ...
OpenAI: function name={skill_name}
Claude: tool name={skill_name}
HTTP: POST /skill/{skill_id}
--- GITHUB ---
Status: PUSHED_or_SKIP
URL: {commit_url_or_none}
=== END ===
| 脚本 | 用途 |
|---|---|
scripts/security_scan.py |
L1-L5 安全扫描,输出 JSON |
scripts/generate_skill_id.py [dom] [func] |
生成全局唯一 Skill ID |
scripts/validate_impl.py |
校验语法/run签名/返回格式/Token密度 |
| 文件 | 内容 |
|---|---|
references/spec.md |
完整规格:零依赖、省Token、版本隔离、跨生态兼容 |
references/file-templates.md |
4 文件完整模板及跨生态调用示例 |
references/security-rules.md |
5 层安全校验详细规则 |
references/registry-format.md |
Registry 目录结构、索引格式、版本递增规则 |
def run(a): → {'s':'ok|err','d':result,'e':error}{major}.{minor}.{patch},历史版本只读{domain}-{func}-{rand3},全局唯一,生成后固定相关专题
热门下载
相关下载
精品课程
共6课时 | 54.7万人学习
共89课时 | 134.1万人学习
共49课时 | 82.6万人学习
最新文章