Step 1.5 模式判定细则
读完 Issue 后立即判定走 PR 路径还是 Comment 路径。判定逻辑分两层:关键词显式优先 → 内容信号。
1.5.1 显式优先
用户原始消息里若有以下关键词,直接锁定模式,跳过内容分析:
| 关键词(用户消息中出现) | 锁定模式 |
|---|---|
| "修复"/"修一下"/"提 PR"/"开 PR"/"端到端"/"改一下" | PR |
| "回答"/"答疑"/"只评论"/"只回复"/"评论回复"/"不改代码"/"先回复" | Comment |
两类同时出现,以含"只 / 不"的一方为准——"只 / 不"是明确缩小意图。
1.5.2 内容判定(无显式关键词时)
读 Issue title + body + labels,做一句话判断"这条 Issue 是否需要改代码?"。
典型 PR 信号(→ 推荐 PR):
bug-report/bug/regression标签 + 复现步骤 + 期望 vs 实际feature-request/enhancement标签 + 明确诉求- 正文带报错栈、测试失败输出、断言不符、崩溃日志
- 正文显式提出修改某段代码("应改成"/"建议改为"/"少了 nullptr 检查"等)
典型 Comment 信号(→ 推荐 Comment):
question/help-wanted/咨询/discussion标签- 标题或正文带"如何"/"为什么"/"是否支持"/"请教"/"咨询"/"求助"/"想了解"
- 正文是疑问性陈述、问设计意图、问用法、问适配范围
- 没有任何"应该如何修改"的诉求
信号矛盾或都缺:默认推荐 PR(更主动);但确认弹窗里把分析摆出来让用户复核。
1.5.3 推荐 + 确认
先把判定结论以普通文本打印到对话主流(不要塞进 AskUserQuestion 的 preview):
Issue #${issue_number} 模式判定
- Issue 摘要:<一句话>
- 关键信号:<labels + 标题/正文中触发判定的关键词,写明哪条>
- 推荐路径:<PR | Comment>
- 推荐理由:<一句话>
再 AskUserQuestion 三选一:
- 走推荐路径
- 改走另一条
- 取消
用户改路径时,吸收选择继续;不要嘴硬辩护。
1.5.4 路径确定后
- 选 PR:若 Step 0 时跳过了 git author 检查(因为模式未明),现在补做。然后进入 Step 1.6(处理 fork_url 缺失)→ Step 2。详见 pr-path.md。
- 选 Comment:直接跳到 comment-path.md 的 Step C-2。