bensz-collect-bugs
Bensz Collect Bugs
用于“先本地留痕,再按需公开上报”的 bug 管理 skill。
只处理哪类问题
只处理这类 bug:
- 由于 skill 设计缺陷 导致 skill 无法完美工作
- 典型表现包括:流程漏判、输入契约不完整、环境假设错误、脚本/模板设计不健壮、输出规范不一致
不要把下列情况记为本 skill 的 bug:
- 用户数据本身有误
- 第三方服务临时不可用
- 用户主动修改了 skill 源码引入的问题
- 纯粹属于模型偶发发挥波动、但 skill 设计本身没有明显缺陷的情况
硬规则
- 严禁直接修改用户本地 Claude Code / Codex 已安装 skills 的源代码来“顺手修 bug”
- 本地记录目录固定为
~/.bensz-skills/bugs/ - 本地每个 bug 目录固定结构为
{skill_name}/{reporter}/{bug_hash}/ - 每个 bug 目录必须包含:
bug-context.jsonBUG_REPORT.md
- 用户明确要求“report bensz skills bugs”之前,只做本地记录,不做公开上传
- 公开上传时必须走用户本机的
gh能力;如果gh未登录,先协助用户完成gh auth login - 上传阶段不要 pull / clone 整个
bensz-bugs仓库;直接用gh api按文件路径创建内容 - 写入
BUG_REPORT.md与bug-context.json时,严禁保留用户隐私、财产或其他私密信息,尤其是密钥、密码、身份信息、电话、邮箱、银行卡号与私密路径 - 本地记录阶段也必须执行最小化采集:默认不收集本地用户名、主机名、当前工作目录等高风险个人标识
- 公开上传前必须对本地专属信息做脱敏;公开仓库中不得泄露本地用户名、主机名、工作目录、绝对路径等隐私字段
标准工作流
阶段一:判断是否属于“skill 设计缺陷”
至少回答清楚:
- 出问题的 skill 是哪个
- 它原本应该怎样工作
- 实际发生了什么
- 为什么这是 skill 设计缺陷,而不是用户输入问题或外部服务抖动
如果判断不足以支持“设计缺陷”结论,不要强行记录。
阶段二:本地记录 bug
优先运行确定性脚本:
python3 bensz-collect-bugs/scripts/collect_bug.py \
--skill-name "<skill_name>" \
--skill-author "Bensz Conan" \
--bug-summary "<一句话概括 bug>" \
--expected-behavior "<预期行为>" \
--actual-behavior "<实际行为>" \
--reproduction-step "<步骤1>" \
--reproduction-step "<步骤2>" \
--evidence "<关键报错或关键现象>"
可选补充:
--workaround--severity--device-type--agent-runtime--skill-source-path--skill-source-repo--additional-note--software key=value
脚本会自动:
- 收集当前设备 / OS / shell / 常见软件版本
- 对 bug 摘要、预期/实际行为、复现步骤、证据、补充说明等自由文本执行敏感信息清洗
- 按
config.yaml:hashing.stable_fields计算稳定的bug_hash - 在
~/.bensz-skills/bugs/{skill_name}/{reporter}/{bug_hash}/写入标准化记录 - 若同一 bug 已存在,则只更新
occurrence_count、last_seen_at等追踪字段
说明:
reporter优先使用当前 GitHub 用户名- 若没有 GitHub 用户名,报告展示名默认使用匿名占位,不再回退到本地用户名
- 若当前机器尚未配置
gh,则本地目录先落到pending-github-identity/,公开上报时再改用真实 GitHub 用户名作为远端路径
阶段三:让当前任务继续
记录 bug 并不意味着当前任务必须中断。
如果 AI 仍可通过临时 workaround 完成用户任务:
- 把 workaround 写进 bug 记录
- 继续完成用户眼前的任务
阶段四:公开上报到 bensz-bugs
只有当用户明确说出类似意图时才做:
- “我想 report bensz skills bugs”
- “帮我公开上报这些 bensz skill 的 bug”
先检查 gh:
gh auth status
若未登录,指导用户执行:
gh auth login
然后运行:
python3 bensz-collect-bugs/scripts/report_bugs.py
可选过滤:
python3 bensz-collect-bugs/scripts/report_bugs.py --skill-name "<skill_name>"
该脚本会:
- 扫描
~/.bensz-skills/bugs/下全部本地 bug - 用当前
gh登录用户作为公开报告用户名 - 先校验远端仓库可访问,再开始上传
- 跳过已公开或远端已存在的 bug
- 对公开副本做脱敏,移除本地用户名、主机名、工作目录、绝对路径等仅应保留在本机的信息
- 直接通过
gh api repos/{owner}/{repo}/contents/{path}创建文件 - 把本地
bug-context.json的公开状态更新为已上报
若只想预演,可运行:
python3 bensz-collect-bugs/scripts/report_bugs.py --dry-run
--dry-run 只输出“预计会上传哪些 bug”,不会修改本地状态,也不会触碰远端仓库。
输入契约
本地记录时必需信息
skill_nameskill_authorbug_summaryexpected_behavioractual_behavior
强烈建议补充
reproduction_stepsevidenceworkaroundagent_runtimeskill_source_path
输出
本地记录输出
~/.bensz-skills/bugs/{skill_name}/{reporter}/{bug_hash}/bug-context.json~/.bensz-skills/bugs/{skill_name}/{reporter}/{bug_hash}/BUG_REPORT.md
公开上报输出
- 远端仓库路径:
{skill_name}/{github_username}/{bug_hash}/ - 本地
bug-context.json中的:tracking.public_reportedtracking.public_repotracking.public_pathtracking.reported_at
执行注意事项
- 优先读
config.yaml获取本地根目录、文件名、仓库名和版本采集命令 - 本地目录结构遵循
config.yaml:storage.path_pattern - 若配置了非默认 GitHub 主机,公开上报阶段应遵循
config.yaml:github.api_host BUG_REPORT.md必须保持标准章节,便于后续人工浏览- 如果用户给出的文本里含有敏感信息,必须先做脱敏/替换,再允许落盘或公开
--reporter-display-name已废弃;为保护隐私,该参数当前不会写入记录- 如果用户只想本地记录,不要擅自公开
- 如果用户要求公开,但
gh不可用,要先把阻塞点说清楚,再帮助其配置,而不是跳过鉴权直接失败
参考资源
- 规范模板:
templates/BUG_REPORT_TEMPLATE.md - 数据模型说明:
references/DATA_MODEL.md - 公开上报约定:
references/REPORTING_PROTOCOL.md
More from huangwb8/skills
init-project
当用户明确要求"初始化项目"、"创建项目指令文件"或"生成 AGENTS.md"时使用。完全自动化:自动检测操作系统默认语言,分析项目目录结构(支持 Python/Web/Rust/Go/Java/数据科学/文档项目等),推断项目类型和用途,一键生成规范的项目指令文档。生成结果包括:AGENTS.md(跨平台通用项目指令,Single Source of Truth)、CLAUDE.md(Claude Code 特定适配,通过 @./AGENTS.md 引用)、README.md(项目介绍与使用方法)、CHANGELOG.md(项目变更记录)、.gitignore(Git 忽略规则,安全优先),并在完整初始化时自动补齐 `docs/` 与 `docs/plans/`。
9parallel-vibe
当用户明确要求"并行执行同一条 Vibe Coding 指令 / 多线程并行尝试多种方案 / 在多个独立工作区里同时推进"时使用。在用户当前工作目录创建 `.parallel_vibe/`,复制出多个独立工作区并按计划运行每个 thread 的 runner(默认串行、可选并行),最后在 `@main/summary.md` 汇总结果。⚠️ 不适用:用户只是想并行跑 shell 命令/单元测试/下载任务(应直接用并发工具或 CI)、没有明确"多工作区并行尝试/多方案对比"意图、要求强安全隔离或处理高度敏感数据(应使用容器/沙箱方案)。
7auto-test-project
当用户明确要求"测试项目"、"运行 auto-test-project"或"进行项目级测试"时使用。对完整项目进行多轮 A 轮批判性测试 + B 轮质量检查,系统化发现、记录、修复问题。⚠️ 不适用:用户只是想优化功能(应直接修改)、只是询问项目问题(应直接回答)、没有明确"测试"意图。
4better-prompt
当用户明确要求"优化 prompt"、"改进提示词"、"润色指令"或"将简陋 prompt 转换为最佳实践版本"时使用。基于 OpenAI 和 Anthropic 官方最佳实践,对用户提供的简陋 prompt 进行结构化优化,输出符合社区标准的高质量版本。
3git-commit
当用户明确要求"提交 Git 改动"、"生成 commit 信息"或"创建 git commit"时使用。仅用 Git 分析改动并自动生成 conventional commit 信息(可选 emoji);必要时建议拆分提交,默认运行本地 Git 钩子(可 --no-verify 跳过),提交后默认自动 push(可 --no-push 跳过)。
3awesome-code
当用户明确要求"使用 awesome-code / 多代理协作 / 并行协调开发"时使用。通过脚本解析任务,推荐合适的子代理与协作策略,并输出可执行的下一步。⚠️ 不适用:用户仅需单一角色的简单修改或咨询、用户未明确表达多代理协作意图、用户只是了解技能概念。
3