huangwb8/skills 近期更新:从“能更新”到“更新不翻车”
从 v4.3.2 的问题优先计划,到 v4.3.5 的 /v1 基址修复:这几次 release 把 AI 协作中最容易状态不明的地方继续收紧。
BenszConan
管理员
文章目录 ⌄
用户进入 BenszAPI 里,对应的API开启智能路由模式。 然后,在Codex里输入更新 bensz skills即可更新。
Bensz Channel 其实已经连续追过 huangwb8/skills 的几段成长:5 月先从 v4.0.1~v4.0.4 的 awesome-code 重构、auto-test-code 讲起;随后看 v4.1.0~v4.1.1 如何把贡献追踪和按需安装接进日常流程;6 月又写过 auto-draw-plot 让技能库第一次真正“会画图”,以及 v4.1.3~v4.2.0 把散落的中间文件收进 .bensz-api。7 月 19 日那篇则收在 v4.3.1:任务工作区、远程更新缓存和图片交付契约都开始有了规矩。把这些文章连起来看,项目不是简单地不断增加 skill 名称,而是在给 AI 协作中那些最容易失控的环节补上边界、记录和证据。今天就接着上次的进度,看看 v4.3.2 到 v4.3.5 这几次 release / commit 又把什么地方磨细了。
概览
- 计划不再只是待办清单。 v4.3.2 把
writing-plans调整为问题优先的结构,先把现状、影响和目标说清楚,再决定需要多细的技术步骤。 - 图片调用开始能回答“到底哪里坏了”。 v4.3.3 为 2xx 但空响应、非 JSON 响应建立明确错误类型和安全关联证据;不保存 prompt、鉴权信息和响应原文,也不在状态不明时重提一次任务。
- 跨平台与工作区的承诺真正落到脚本。 v4.3.4 修复 Windows GBK 控制台下的中文输出崩溃,并让项目级测试的创建、验证和自检统一解析同一个任务根目录。
- 一个很小、却很真实的 API 地址坑被封住。 v4.3.5 会把 BenszAPI 图片服务的裸子域名根地址规范为
/v1基址,避免请求被网站边缘层返回的 HTML 页面“接住”。
最近几次更新,重点不在“多了什么”,而在“出问题时能不能说清楚”
v4.3.2:先讲清问题,再写计划
7 月 20 日发布的 v4.3.2,表面上看是在更新 awesome-code 里的 writing-plans,但它动的其实是很多人使用 AI 协作时最常见的一个习惯:一上来就列十几条“先改 A、再改 B、最后跑测试”。这种计划看起来很勤奋,却经常没有回答最关键的问题——现在到底哪里不对,改动会影响谁,什么才算真的完成?
新版把计划改成问题优先。先交代现状与痛点,说明影响范围和想达到的结果;技术路线、文件级步骤、验证命令仍然可以写,但它们不再是每份计划默认必须塞满的骨架。低风险的小调整可以保持轻量,高风险任务则应该更充分地解释风险、边界和验收方式。是不是感觉这听上去有点“废话”?但如果你看过几份 AI 自动生成的计划,大概就知道这一步很有必要:步骤很多,不等于判断已经出现。
这次还补了一道很实用的门禁。旧的 Implementation Plan、For Claude、Task—Files—Step 这类模板,如果与现在的 skill 规则冲突,交付前需要识别并重写;正式计划统一放在项目的 docs/plans/,过程草稿和临时材料则留在任务工作区。它和前一篇里提到的 .bensz-api/task-* 很搭:一份要让人长期阅读、审阅甚至提交的计划,别和一次性日志混在一起;而复杂任务的来路去向,也别因为换了一个 skill 就丢失。
v4.3.3:图片服务回了 200,也可能并没有成功
8 月 6 日的 v4.3.3 继续落在 auto-draw-plot。这次没有急着加一个新绘图模式,而是处理了一个非常工程化的尴尬场景:HTTP 状态是 2xx,客户端以为请求成功,可响应正文是空的,或者返回的不是 JSON。此前这类情况很容易退化成一个没有上下文的解析异常——你知道“失败了”,但不知道是服务端、反向代理、协议格式还是任务状态出了岔子。
现在,空响应会被归到 PROVIDER_EMPTY_RESPONSE,非 JSON 响应归到 PROVIDER_NON_JSON_RESPONSE。更重要的是,记录的不是整段可能带隐私的数据,而是足够定位、又不越界的证据:HTTP 状态、origin/path、Content-Type、声明和实际长度、正文 SHA-256、首字节类别、重定向变化,以及安全校验后的 X-Request-ID / X-Client-Request-ID。prompt、query、鉴权头和原始正文不会被写进错误记录。这个取舍很像做实验时保留批次号和仪器读数,而不是把整台机器的所有原始状态一股脑倒进报告。
另一个更值得注意的细节是不重放。图片 generation / edit 的 submit 一旦遇到这种“服务端是否已经创建任务不确定”的协议错误,不会自动再提交一次,也不会悄悄切到另一家 provider。原因很朴素:第一次可能已经受理,第二次就可能生成重复图片、重复计费。v4.3.3 所做的,是先把关联线索交给人排查,而不是用一次看似积极的重试把问题盖住。对会用参考图、会跑多轮生成的小伙伴来说,这种克制比多一个“自动兜底”按钮靠谱得多。(~ ̄▽ ̄)~
同时,auto-draw-plot 被明确为一个自包含的图片工作流:选中它后,会在 BenszAPI 内完成 prompt、生成/编辑和迭代,不默认再调用 imagegen。只有用户明确要求两个都用时才额外接入。这个边界看起来细,却能避免“同一张图先生成一遍、又被另一个工具生成一遍”的重复成本,也让读者知道出了图究竟是谁负责的。
v4.3.4:把“文档已经迁移”补成“脚本也真的迁移了”
8 月 9 日的 v4.3.4 是这一轮里变化最广的一次。上次文章介绍 .bensz-api 时,重点是任务工作区的规则:一件任务一个根目录,各个 skill 在 input/、output/、log/ 内归档。规则写出来并不难,难的是每一个创建会话、单会话验证、批量验证和自检脚本都要遵守同一条规则。auto-test-project 这次新增统一的运行态 task-root 解析器,把这些入口都收敛到 <task-root>/auto-test-project/output/{plans,tests}。
这修的是一个典型的“迁移断层”:文档和配置已经指向新目录,实际脚本却仍在向旧的 .bensz-api/skills/auto-test-project/ 写文件。新版对显式 task root 允许原样续跑;没有指定时才分配新任务;legacy 目录只允许显式、只读地验证。还为越界路径、..、符号链接、同一分钟冲突、A/B 轮续写、旧目录只读和缺失路径增加了结构化测试,并专门断言默认流程不再创建 .bensz-api/skills/。这不是“把路径替换一下”那么简单,而是在让任务的身份、续跑语义和安全边界能同时成立。
同一版也照顾了 Windows 中文环境。init-project 和远程 @install 安装器在真正输出业务信息前,集中处理 stdout/stderr 的编码容错:保持宿主使用的编码,只把无法编码的字符以可读转义形式输出;普通 OSError 和业务异常依旧向外传播,不会为了“看起来不报错”把真实异常吞掉。这样一来,在 GBK 终端中输出中文安装提示、项目说明时,不会因为一个 UnicodeEncodeError 让初始化或更新半路停掉。
另外,bensz-collect-bugs 升到 0.4.0,把 bug 记录拆成“原始证据 + 追加式 resolution”两层。原先的 BUG_REPORT.md 和 bug-context.json 保留不动,后续用独立 RESOLUTION.md 追加修复结论、canonical 根因、修复版本或 commit、验证证据和重复关系;支持 fixed、duplicate、--dry-run,而且重复执行会做幂等检查。它避免了一个常见问题:为了补一段“后来修好了”,反过来改写最初的现场记录。对于需要长期追踪的缺陷,原始事实和后续结论分开,复盘时才不会越看越糊涂。
v4.3.5:地址少一个 /v1,请求就可能跑到网页里去
紧随其后的 v4.3.5(同为 8 月 9 日)只有一个很聚焦的修复:auto-draw-plot 升到 0.2.17 后,在 HTTPS、子域名与路径校验完成后,如果 gpt-image-2 的 base URL 只是一个裸子域名根地址,没有显式路径,客户端会自动补上 /v1。
为什么值得专门发一个 release?因为 images generation、参考图 edit、异步 job 轮询和结果下载都依赖正确 API 基址。少了 /v1,请求可能不报一个清清楚楚的“接口不存在”,而是被站点的边缘层 HTML fallback 接住:你拿到的是网页,不是 API JSON。然后客户端看到的症状可能是“2xx 但非 JSON”——正好与 v4.3.3 刚补上的可观测性问题连在一起。v4.3.5 把这个高频、隐蔽的配置坑在入口处规范化;如果用户本来已经写了 /v1,则保持原样。小改动,但对真正配置过子域名的人来说,属于那种“终于不用每次再想一遍”的改动。
这轮更新,普通用户能感受到什么
最直接的当然还是开头那条:在 BenszAPI 把对应 API 的智能路由模式打开,然后在 Codex 输入 更新 bensz skills。你不需要为了 v4.3.2~v4.3.5 额外背四套命令。
但更新后,值得顺手留意几件事:如果让 AI 写实施计划,看看它是否先说明问题、影响和目标,而不只是堆操作步骤;如果做的是图片任务,2xx 失败不一定是“模型抽风”,关联 ID、协议错误类别和脱敏诊断信息会更有价值;如果在 Windows 中文终端里更新或初始化,中文输出不应再成为流程的意外终点;如果项目级测试会跨多轮跑,打开这次任务的 .bensz-api/task-*,应该能沿着统一的 task root 找回计划、测试和日志。
这几版没有端出一个特别炫的新按钮,却把“计划写得像样”“图片失败可定位”“不同系统下能跑”“文件不会越写越乱”这些基础事情继续收紧。AI 协作走到后面,最消耗人的通常不是一次成功的演示,而是状态不明时要不要重试、旧任务能不能续跑、文件到底是谁生成的。huangwb8/skills 最近的 commit 反复在处理的,正是这些不那么显眼、却决定工具能否长期使用的地方。
小结
从 Bensz Channel 过去写过的 v4.0、v4.1、v4.2 到这次 v4.3.2~v4.3.5,可以看到 huangwb8/skills 的方向很一致:先把能力放进日常工作流,再把计划、失败、工作区、跨平台输出和修复结论变成可回查的事实。v4.3.2 要求计划先回答问题,v4.3.3 要求图片协议错误留下安全证据且不盲目重放,v4.3.4 把任务目录和 Windows 编码的承诺落到脚本与回归测试,v4.3.5 则封住了图片 API 基址这个小而关键的坑。对使用者而言,智能路由打开后一句“更新 bensz skills”就可以跟上;对需要认真依赖这套工具的人,真正值得在意的,是它越来越不愿意用“看起来成功”替代“能够证明成功”。
项目 GitHub:https://github.com/huangwb8/skills
评论区
0 条评论