{ "manifest_version": 1, "name": "skill-catalog", "summary": "技能目录站:把对外发布的技能发布成一个自托管目录站(动态服务从 catalog.json 现渲染,附同源静态快照;能干什么 / 先装什么 / 要配什么 / 依赖谁 / 一条安装命令)。", "tier": 1, "status": "stable", "version": "356a0c0", "source": { "path": "skills/skill-catalog", "commit": "356a0c0", "describe": "356a0c0", "dirty": false, "packed_at": "2026-10-02T06:26:53.502Z" }, "platforms": [ "darwin", "linux" ], "entry": { "path": "scripts/skill-catalog.mjs" }, "commands": [ "build", "serve", "preview", "deploy", "list", "check" ], "errors": [ "usage", "deps", "platform", "auth", "config", "notfound", "conflict", "blocked", "timeout", "external", "internal" ], "aliases": [ "skill-catalog" ], "admin": [], "depends_on": [ { "skill": "skill-interface", "tierAtLeast": 1, "note": "技能发现与接口解析 skill-registry.mjs、配置契约 skill-config.mjs、泄漏扫描 skill-pack.mjs" } ], "requires": [ { "kind": "runtime", "name": "node", "check": "which node", "note": "生成器与动态服务(serve.mjs);零 npm 依赖" }, { "kind": "binary", "name": "ssh", "note": "部署两跳(relay→host)" }, { "kind": "binary", "name": "tar", "note": "部署打包(tar -czf)" }, { "kind": "binary", "name": "curl", "note": "字体下载与上线自检" } ], "config": [ { "key": "site_url", "desc": "站点公开地址(写进页面的 canonical 与分享链接)", "type": "url" }, { "key": "deploy_relay", "desc": "部署用的跳板机(本地能 ssh 的别名)", "type": "string", "default": "lightos" }, { "key": "deploy_host", "desc": "目标主机(在跳板机上能 ssh 的别名)", "type": "string", "default": "aliyun-hk" }, { "key": "deploy_path", "desc": "目标目录(Caddy 站点根,站点以 current 软链切换)", "type": "path", "required": true, "ask": "目录站放到目标机器的哪个目录?" } ], "external_imports": [ { "from": "scripts/skill-catalog.mjs", "import": "../../skill-interface/scripts/skill-registry.mjs", "target": "../skill-interface/scripts/skill-registry.mjs" }, { "from": "scripts/skill-catalog.mjs", "import": "../../skill-interface/scripts/skill-config.mjs", "target": "../skill-interface/scripts/skill-config.mjs" }, { "from": "scripts/skill-catalog.mjs", "import": "../../skill-interface/scripts/skill-pack.mjs", "target": "../skill-interface/scripts/skill-pack.mjs" } ], "contract": { "version": 1, "skill": "skill-catalog", "tier": 1, "platforms": [ "darwin", "linux" ], "commands": { "build": { "destructive": false }, "check": { "destructive": false }, "deploy": { "destructive": false }, "list": { "destructive": false }, "preview": { "destructive": false }, "serve": { "destructive": false } }, "errors": [ "auth", "blocked", "config", "conflict", "deps", "external", "internal", "notfound", "platform", "timeout", "usage" ], "aliases": [ "skill-catalog" ], "adminAliases": [] }, "files": [ { "path": "REFERENCE.md", "bytes": 11893, "sha256": "c806054f279dcada" }, { "path": "SKILL.md", "bytes": 2403, "sha256": "96a3073371298415" }, { "path": "VERSION", "bytes": 6, "sha256": "1f930dd1f133c1f9" }, { "path": "assets/app.js", "bytes": 5959, "sha256": "b71e5e72195ac896" }, { "path": "assets/favicon.svg", "bytes": 235, "sha256": "dc255fa0fe62baca" }, { "path": "assets/style.css", "bytes": 18199, "sha256": "30fb9ce3372853be" }, { "path": "contract.lock.json", "bytes": 665, "sha256": "c6382f8fc3c51e72" }, { "path": "interface.json", "bytes": 2971, "sha256": "b11b6b8159063f4d" }, { "path": "scripts/render.mjs", "bytes": 17548, "sha256": "240971a1d11a90ab" }, { "path": "scripts/serve.mjs", "bytes": 10875, "sha256": "4d402a4895b0b8d7" }, { "path": "scripts/setup-hosting.sh", "bytes": 5019, "sha256": "a09e464174c95a99" }, { "path": "scripts/skill-catalog.mjs", "bytes": 26089, "sha256": "22a325d47bb32dda" } ], "leak_scan": { "errors": 0, "warnings": 0, "findings": [] } }