基础工具与工作流 · vibeshotclub/vsc-skills

vsc

VSC 创作技能统一入口。用户调用 /vsc、$vsc,询问 VSC 能做什么、不知道该选哪个 VSC 技能,或希望根据当前创作需求自动选择 VSC 技能时使用。根据目标、交付物和已有材料选择一个可用技能并直接执行;用户已经明确调用具体技能时不重复接管。

L4 高权限 · 分级授权与审计V1 已固定执行命令Dual-pass Audit
Author vibeshotclubGitHub vibeshotclub/vsc-skills ↗Stars 832License 仓库未提供 LICENSE 文件(find 全仓无 LICENSE*;GitHub API license 字段为 null)Commit fcee81beb6
管控等级描述 skill 的能力与建议配套的管控措施,不代表质量或安全认证,也不表示可用或不可用。是否使用由用户和管理者决定。不同 agent 宿主对权限的约束各不相同,请勿假定宿主一定会提供安全兜底。第三方 skill 版权归原作者,使用风险由使用者自行承担。

1实现原理 · 为什么它能做到

机制是「统一入口 + 本地发现脚本 + 目录快照」:先用脚本在本机定位真实安装,再按 SKILL.md 的判据选一个技能,然后完整读它的 SKILL.md 并在同一对话里直接执行。

vsc/SKILL.md
把用户的创作需求交给一个匹配且可用的 VSC 技能,在当前对话中直接完成工作。
SKILL.md 分五段:恢复需求 / 发现候选 / 选择一个技能 / 加载并直接执行。

目录快照限定可路由成员,脚本只做文件系统发现,不做语义评分也不加载正文。

vsc/SKILL.md
脚本使用 [VSC 目录快照](references/catalog.json) 限定成员,返回能力简介、交付类型、区分信息、状态及真实 `SKILL.md` 路径。它不负责语义评分,也不会加载全部技能正文或执行创作。
catalog.json 是构建产物(tools/build_vsc_catalog.py 从各 SKILL.md frontmatter 生成),带 sha256 内容校验值。

可用性判定由 sha256 比对完成:同目录下同名但内容不同的多份安装会被标为 conflict,不会随机挑一个。

vsc/scripts/discover_skills.py
item.update(status="conflict", paths=[hit["path"] for hit in found])
SKILL.md 对应条款:『`conflict`:发现同名不同内容的安装,不任意选一个。』

安装内容与目录快照不一致时打 needs_review,提示入口先读实际 frontmatter 校准能力,避免用过期的目录信息路由。

vsc/scripts/discover_skills.py
needs_review=found[0]["sha256"] != entry["sha256"]
SKILL.md 的对应处置是『筛选时先读取该候选的实际 frontmatter;如果边界仍不明确,再读正文,以实际内容为准』。

选择判据按「交付物/处理对象/已有输入/排除范围」比较,关键词只用于发现,避免关键词路由误判。

vsc/SKILL.md
2. 比较交付物、处理对象、已有输入和明确排除范围。关键词只用于发现,不能独自决定。
第 3 条进一步要求具体创作场景优先于泛化主题,并给出泳池/泳装的反例。

一次只选一个主技能,明确不做通用多技能编排,也不自动追加生图/视频/归档。

vsc/SKILL.md
4. 一次只选一个主技能。已有完整工作流由该技能负责,不拆成多个技能,也不自动追加生图、视频或归档。
SKILL.md 另写『第一版不做通用跨技能编排』,多阶段复合需求要问用户先做哪一项。

选定后必须加载并执行:完整读入选技能的 SKILL.md,按它的指引解引用与解析脚本路径,用一句话说明方向后开工,不让用户重发任务。

vsc/SKILL.md
完整读取入选技能的 `SKILL.md`,随后按其指引读取所需引用,使用实际技能目录解析资源和脚本路径。
同段禁止『仅输出推荐后结束』。

权限不因路由而扩张,也不在入口重复询问下游的授权关口。

vsc/SKILL.md
用户授权和宿主权限继续适用,路由不增加付款、发布、删除或对外沟通权限。
对应『入选技能已有必要输入或授权关口时,在对应步骤处理,不在入口重复询问』。

降级路径写死:Python 不可用或脚本失败时改读目录快照并逐一核对宿主路径;明令不装依赖、不联网拉技能。

vsc/SKILL.md
Python 不可用或脚本失败时,读取目录快照,并用当前宿主提供的技能路径或本技能同级目录逐一确认相关候选。
紧随其后:『不安装依赖、不联网拉取技能来完成路由。』

默认搜索范围有限且不递归全盘:入口同级目录、最近项目的技能目录、~/.agents/skills、Codex skills(尊重 CODEX_HOME)、~/.claude/skills。

vsc/scripts/discover_skills.py
roots.extend([home / ".agents" / "skills", codex_home / "skills", home / ".claude" / "skills"])
CODEX_HOME 分支:codex_home = Path(env["CODEX_HOME"]) if env.get("CODEX_HOME") else home / ".codex"。

2核心能力

01候选发现:输出 available / missing / invalid / conflict 四态与真实 SKILL.md 绝对路径
02内容校验:以 sha256 对比安装内容与目录快照,产出 needs_review 提示
03自定义搜索根:--root 可重复指定并替换全部默认范围
04目录格式自检:校验 schema_version、技能名规范、能力字段完整、交付类型白名单
05路由不误判:关键词只用于发现,按交付物/对象/输入/排除范围比较;一次只选一个
06交付范围守卫:只要提示词就不调生图,只要 Vlog 方案就不启动成片工作流,已有图片归档不补图
07能力缺口诚实报告:最匹配技能未安装时说明名称与缺口,不强行替换
08无上下文时的导航模式:只介绍能力类别与两三个输入示例,不执行创作

3外部依赖

KindDependency / Endpoint
clipython3(3.10+,仅标准库;缺失时入口降级为读目录快照)

4管控建议与判定依据

建议配套管控措施
面向 Agent
分级或逐次授权,建议在沙箱运行
面向管理者
审批流程、可回滚、全程审计
判定依据(文件路径与关键语句摘要)
  • scripts/: 执行本地脚本或命令: python3 "<vsc 技能目录>/scripts/discover_skills.py"(SKILL.md 指定的唯一脚本;纯标准库,只读文件系
审计说明: 。自带本地 Python 脚本但只做文件系统发现与哈希比对:无网络外发、无凭证读取、无本地写入、无子进程;按准则「仅调用本地 CLI / 仅本地读写」落蓝档。注意点:① 它会扫描 ~/.agents/skills、~/.codex/skills、~/.claude/skills 等项目与用户目录,属于对本地技能安装面的枚举(只读,但会暴露路径清单);② 路由结果依赖各技能 SKILL.md 文本,若本机安装被替换(needs_review/conflict 之外的一致内容被投毒),入口会把不可信指令读进上下文——哈希比对只能在「与快照不同」时报警,同一份被篡改的目录快照无法自证。

5第二遍独立确认

  • [ok] 脚本行为 vs SKILL.md 描述的一致性 — 四态判定 available/missing/invalid/conflict 与 needs_review 在 discover() 中逐一可实现:found 空则 missing、errors 非空则 invalid、哈希多于一个则 conflict、否则 available 并比对 sha256。
  • [ok] catalog.json 成员面与「vsc 不入册」验证 — 实读 catalog.json:schema_version=1,skills 数组含 7 个叶子技能(character-candid-photography / codex-image-to-eagle / rare-style-explorer / shan-ze-school / summer-boyfriend-pov / vibeshot-candid-photography / virtual-couple-travel-vlog),无 vsc;load_catalog() 亦显式拒绝 name == "vsc"。
  • [ok] 搜索范围是否真如文档所述(不递归全盘) — default_roots() 只加入入口同级目录、最近项目的 .agents/.codex/.claude 下 skills、~/.agents/skills、CODEX_HOME/skills、~/.claude/skills;无 os.walk/rglob 全盘扫描。
  • [ok] 外部依赖条目反查 — 脚本 import 仅标准库;无 requirements、无网络库;README 亦说明『运行技能发现脚本需要 Python 3.10+,无需额外 Python 包』。
  • [ok] 安全结论反例搜索(写盘/子进程/网络) — 该目录 4 个文件逐 token 扫描:无 open(...,'w')/write_text/mkdir、无 subprocess/os.system、无 socket/urllib/requests;唯一 env 读取是 CODEX_HOME。
  • [ok] 路由边界说法与其他技能是否闭环 — vsc/SKILL.md 的路由示例(泳池边喝咖啡走生活抓拍、角色 COS n=10 走角色抓拍、泳装朋友视角单图走夏季 POV)与三个被指向技能各自的 vsc-distinction 描述一致,双向闭环。
  • [ok] 『不联网安装技能』承诺是否与仓库其它脚本冲突 — vsc 目录内无安装类代码;tools/build_vsc_catalog.py 是维护者工具(需 PyYAML),README 明确『维护工具需要 PyYAML,用户运行入口不需要安装它』,不构成入口运行期依赖。

6结论

  • 解决了多技能仓库最常见的痛点:用户不必记住技能名,入口按交付物选一个并直接执行,不输出「推荐列表」敷衍。
  • 路由判据是可复核的(交付物/处理对象/已有输入/排除范围),且明说关键词不能独自决定,降低误路由。
  • 安装面歧义有工程解法:sha256 比对给出 conflict / needs_review,而不是按名字取第一个。
  • 权限不变式明确写在指令里,路由不引入付款/发布/删除等新权力。
  • 纯标准库、离线、无写入;Python 缺失时还有读快照的降级路径。
  • 适合: 适合装了多个 VSC 创作技能、又不想记技能名的用户:一句话描述作品由入口选型并直接执行;也适合技能作者/维护者用 discover_skills.py 排查安装位置与实际使用版本(available/conflict/needs_review)。
    不适合: 不适合期望入口自动串联多技能流水线的用户(明确不做编排);不适合只装了 vsc 目录而没装创作技能的环境(复制 vsc 不会自动安装其他技能,README 已说明);也不适合把路由当成「安全网关」的场景——它不做内容审查,只做文件系统发现与哈希比对。
    Install Agent-Ready
    ① Verified Mirror 2026-09-15
    Option A · Direct DownloadDownload vsc.tar.gz
    sha256: b9f7fae71ecb9783…
    Option B · Copy Guide for Agent
    install.json
    agent 读 JSON 指南后会自动从本站下载安装,无需更多说明。
    ② Upstream GitHub
    GitHub Repo ↗
    Pinned to commit fcee81beb6.