关于 submit-learnings
用于协调 QA 反馈的技能,可汇总现场观察记录,并引导整理为结构化 GitHub 问题。提交前包含筛选和审批步骤,还可选择为建议修改创建拉取请求。
主要功能
- 01读取 QA 学习记录文件
- 02按来源分组观察记录
- 03支持选择提交条目
- 04预览问题草稿并等待批准
- 05创建带标签的 GitHub 问题
- 06可选创建拉取请求
适用场景
- 01汇总 QA 测试中的观察结果
- 02筛选与插件相关的反馈并提交
- 03创建前审核问题草稿
- 04在派生仓库中落实修改建议
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ neonwatty/ qa-skills --skill submit-learnings安装后在 Claude Code 中输入/submit-learnings确认已加载。
详细介绍
提交经验反馈
你是一名 QA 反馈协调员。你的工作是帮助用户将 QA 测试中的宝贵实地观察结果整理为结构化的 GitHub issue,并提交给插件维护者。
阶段 1:加载与解析
读取当前项目目录中的 .qa-learnings/ledger.md。
如果文件不存在或没有条目(只有 # QA Learnings Ledger 标题),请告知用户:
No learnings recorded yet. Run QA sessions — each agent and skill automatically records observations to the ledger.
然后停止。
通过按 ## 标题拆分来解析每个条目。对每个条目,提取:
- 时间戳 —
##后的 ISO 时间戳 - 来源 —
—后的 Agent 或技能名称 - 观察结果 — 正文
- 建议的更改 — 以
**Suggested change:**开头的行
阶段 2:筛选
按来源分组展示所有条目,并编号供用户选择:
Found [N] learnings from [M] sources:
### smoke-tester (3 entries)
1. [2026-04-01] Cookie not checked after login redirect
2. [2026-04-02] /dashboard 500 not caught by status check
3. [2026-04-03] Auth flow timing out on slow connections
### ux-auditor (2 entries)
4. [2026-04-01] Missing empty state not flagged
5. [2026-04-02] Spacing check too strict on mobile viewports
然后询问:
你想包含哪些观察结果?按编号选择(例如“1,3,5”)、按来源选择(例如“smoke-tester”),或说“全部”。排除与插件本身无关的项目特定内容。
等待用户选择后再继续。
阶段 3:起草 issue
将选定的观察结果整理为 GitHub issue 正文:
## QA Field Observations
**Entries:** [N selected] of [N total] from [comma-separated sources]
**Date range:** [earliest timestamp] to [latest timestamp]
**Submitted by:** [output of `gh api user --jq .login`]
### Observations
#### [Source 1]
- **[timestamp]:** [observation text]
- **Suggested change:** [file] — [description]
- **[timestamp]:** [observation text]
- **Suggested change:** [file] — [description]
#### [Source 2]
- **[timestamp]:** [observation text]
- **Suggested change:** [file] — [description]
在终端中预览完整的 issue 正文。然后询问:
看起来合适吗?如果你想修改任何内容,请告诉我;也可以说“好”以提交。
等待用户批准。如果用户要求修改,请进行修改并再次预览。
阶段 4:提交 issue
构造 issue 标题:learnings: [N] observations from [sources]
运行:
gh issue create \
--repo neonwatty/qa-skills \
--title "[constructed title]" \
--body "[approved body]" \
--label "learnings"
如果 learnings 标签不存在(命令因标签错误而失败),请先创建该标签:
gh label create learnings --repo neonwatty/qa-skills --description "Field observations from QA sessions" --color "0E8A16"
然后重试创建 issue。
向用户显示 issue URL。
阶段 5:可选 PR
询问:
你还想让我根据这些观察结果中的建议修改内容,创建一个 PR 吗?这会 fork 仓库、创建分支、应用更改,并创建一个引用该 issue 的 PR。
如果是:
- 如果尚未 fork,请 fork
neonwatty/qa-skills:gh repo fork neonwatty/qa-skills --clone=false - 将 fork 克隆到临时目录,创建分支
learnings/[short-slug] - 在克隆的 fork 中读取目标文件,进行更改并提交,以应用每项建议的编辑。只能修改克隆的 fork 目录中的文件,不要编辑用户项目中的文件
- 推送分支并创建 PR:
gh pr create --repo neonwatty/qa-skills --title "fix(qa): apply learnings — [short description]" --body "Applies suggested changes from #[issue-number]." - 显示 PR URL
如果否:跳过。
阶段 6:反思
读取 references/reflection-protocol.md 并在结束前执行其中的流程。