Skip to content

📄 精简全部 Issue 模板,降低反馈门槛#1593

Merged
CodFrm merged 5 commits into
mainfrom
agent/improve-feature-request-templates
Jul 20, 2026
Merged

📄 精简全部 Issue 模板,降低反馈门槛#1593
CodFrm merged 5 commits into
mainfrom
agent/improve-feature-request-templates

Conversation

@cyfung1031

@cyfung1031 cyfung1031 commented Jul 16, 2026

Copy link
Copy Markdown
Collaborator

修改内容

#1593 (comment) 的反馈调整方向:原方案给功能请求模板新增必填环境字段,现改为精简全部 Issue 模板

功能请求模板:回退浏览器版本、ScriptCat 版本、「是否原本认为已存在」下拉、「当前行为和已尝试的方法」等新增必填项。新功能与浏览器/版本无关,误报的 bug 应该引导去 Bug 模板,而不是让所有提交者多填几栏。顶部只保留一句提示:功能失效、或以前能用现在不行 → 请改用 Bug 模板。

其余模板同步精简

  • 删除全部分类下拉框(问题类型 / 功能领域 / 文档领域 / 文档问题类型 / 翻译问题类型 / API 领域 / 涉及模块)——这些由维护者打 label 更准,对提交者只是负担
  • Bug 模板的渠道、Manifest、操作系统、设备类型、7 个浏览器状态 checkbox 合并为一个「系统 / 浏览器及版本」输入框
  • 各模板的可选长尾字段合并为一个「补充信息」

必填项变化:

模板 必填项
Bug 反馈 11 → 5
Userscript 兼容性 9 → 7
功能请求 4 → 3(本 PR 一度为 8)
文档 7 → 4
翻译 / 本地化 7 → 5
技术方案 4 → 2

模板总行数 1583 → 772。中英文两份模板保持结构一一对应。

保留的例外:翻译模板的语言下拉(决定分派给谁,不是分类噪音)、兼容性模板的 metadata(诊断关键)。

兼容性

https://github.com/scriptscat/scriptcat/issues/new?template=01_bug_report.yaml 这类链接的契约保持不变:

  • 模板文件名未改动,与 main 逐字节一致
  • GitHub 通过 query 参数按字段 id 预填表单。src/pages/popup/App.tsx 的「报告问题」菜单会拼 &scriptcat-version=…&browser=…,因此这两个 id 予以保留;合并后的环境字段沿用 browser 而不是新起名字,已安装的旧版本发出的旧参数同样继续生效,无需改动代码。

新增机械检查

模板问题在 review 里基本看不出来,因此补了 pnpm run check:issue-templates(已接入 lint / lint:ci,CI 的 Lint job 自动覆盖;.husky/pre-commit 在改动模板或 src/ TypeScript 时校验暂存快照)。它检查:

  1. YAML 合法性 + issue-form schema(顶层键、元素类型、id 唯一、markdown 不带 id/validations、dropdown/checkboxes 有选项、checkboxes 不用 validations
  2. 中英文模板(0N1N)字段序列、必填性、title/type/labels、选项数量一一对应
  3. src/ 中构造的 issues/new 预填链接,每个参数都能对应到目标模板的真实字段 id——用 TypeScript AST 解析而非字符串匹配,解析不出目标模板时报错而非放行

这个检查在本 PR 开发过程中实际抓到两个已经写进分支的错误:

  • 英文兼容性模板的 description 里一个未加引号的 : note the source: page console)导致 YAML 解析失败,GitHub 会直接拒绝渲染该表单;中文模板因为用全角「:」不受影响,diff 上两边看起来完全一样
  • 合并环境字段时把 browser 改名成了 environment,会让 popup 的预填静默失效

验证

  • pnpm lint:ci 通过(prettier / tsc / check:i18n / check:issue-templates / eslint)
  • pnpm exec vitest run scripts/check-issue-templates.test.mjs 18 passed
  • 分别把上述两个错误重新注入,确认检查报错、.husky/pre-commit 拒绝提交,恢复后通过

@cyfung1031 cyfung1031 changed the title Improve feature request templates 改进功能请求 Issue 模板 Jul 16, 2026
@cyfung1031
cyfung1031 marked this pull request as ready for review July 16, 2026 13:21
@CodFrm

CodFrm commented Jul 16, 2026

Copy link
Copy Markdown
Member

是不是太过于复杂了,新功能和版本、浏览器没关系的,除非用户一开始就搞错了,应该是要提bug

而且复杂的模板,有点打击反馈积极性

现有的模板我也想都再简化/减少一点

@cyfung1031

Copy link
Copy Markdown
Collaborator Author

是不是太过于复杂了,新功能和版本、浏览器没关系的,除非用户一开始就搞错了,应该是要提bug

而且复杂的模板,有点打击反馈积极性

现有的模板我也想都再简化/减少一点

都可以~ 没所谓

cyfung1031 and others added 2 commits July 20, 2026 20:01
功能请求模板回退浏览器/ScriptCat 版本等必填环境字段:新功能与版本、
浏览器无关,误报的 bug 应引导去 Bug 模板,而不是让所有人多填几栏。
顶部只保留一句「功能失效/以前能用现在不行请改用 Bug 模板」的提示。

同时精简其余模板:
- 删除全部分类下拉框(问题类型/功能领域/文档领域/翻译类型/涉及模块等),
  这些由维护者打 label 更准,对提交者只是负担
- Bug 模板的渠道/Manifest/系统/设备类型/浏览器状态合并为一个 browser 字段
- 各模板的可选长尾字段合并为一个「补充信息」

保留 issues/new 预填链接的契约:模板文件名不变,popup「报告问题」用到的
scriptcat-version、browser 两个 id 保留,已安装的旧版本预填同样不受影响。

必填项:Bug 11→5,功能请求 4→3,兼容性 9→7,文档 7→4,翻译 7→5,
技术方案 4→2;总行数 1583→772。中英文模板结构保持一一对应。
@CodFrm

CodFrm commented Jul 20, 2026

Copy link
Copy Markdown
Member

考虑到会的用户就算没有这些选项也会很好的反馈,不会的用户看到这么多选项会被劝退或者乱填

砍得比较激进

模板改动在 review 里几乎看不出问题:YAML 里一个未加引号的 `: ` 会让 GitHub
直接拒绝渲染表单,而中文模板用全角「:」不受影响,diff 上两边看起来一模一样;
字段 id 改名则会让 popup「报告问题」链接的预填静默失效——GitHub 丢弃未知参数,
且已安装的旧版本会一直沿用旧参数名。

scripts/check-issue-templates.mjs 检查三件事:
1. YAML 合法性 + issue-form schema(顶层键、元素类型、id 唯一、markdown 不带
   id/validations、dropdown/checkboxes 有选项、checkboxes 不用 validations)
2. 中英文模板(0N ↔ 1N)字段序列、必填性、title/type/labels、选项数量一一对应
3. src/ 中构造的 issues/new 预填链接,其每个参数都能对应到目标模板的真实字段 id
   —— 用 TypeScript AST 解析而非字符串匹配,解析不出目标模板时报错而非放行

接入 lint / lint:ci(CI 的 Lint job 自动覆盖)与 .husky/pre-commit(校验暂存
快照而非工作区,与 check:i18n 一致)。
@CodFrm CodFrm changed the title 改进功能请求 Issue 模板 精简全部 Issue 模板,降低反馈门槛 Jul 20, 2026
@cyfung1031

Copy link
Copy Markdown
Collaborator Author

考虑到会的用户就算没有这些选项也会很好的反馈,不会的用户看到这么多选项会被劝退或者乱填

砍得比较激进

不执著。你喜欢

@CodFrm CodFrm changed the title 精简全部 Issue 模板,降低反馈门槛 📄 精简全部 Issue 模板,降低反馈门槛 Jul 20, 2026
@CodFrm
CodFrm merged commit c7543bb into main Jul 20, 2026
9 of 10 checks passed
@CodFrm
CodFrm deleted the agent/improve-feature-request-templates branch July 20, 2026 14:46
@cyfung1031

cyfung1031 commented Jul 20, 2026

Copy link
Copy Markdown
Collaborator Author

@CodFrm "仓库现有的 issue 模板应全部通过检查" (check:issue-templates) 这测试有问题

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants