This is the first stage of a structured issue workflow that turns a user's vague "I found a bug" into a properly documented report. It walks through five mandatory questions,what happened, how to reproduce it, expected vs actual behavior, environment info, and severity,while enforcing a strict rule: capture only observable phenomena, never root cause speculation. That distinction matters because mixing user hunches into the report sends stage 2 analysis down the wrong path. The skill also gates whether an issue takes the fast track (obvious one-liner fix) or standard path (needs deeper investigation). It's opinionated about forcing concrete answers instead of accepting "sometimes it breaks" and refuses to let you skip ahead into diagnosis before the report is locked in.
npx -y skills add liuzhengdongfortest/codestable --skill cs-issue-report --agent claude-codeInstalls into .claude/skills of the current project.
开始任何判断或动作前,先读取 .codestable/attention.md;缺失则视为骨架不完整,提示先补齐或运行 cs-onboard,不要回退到外部 AI 入口文件。
这一阶段做两件事:把用户脑子里的问题落成结构化记录 + 判断走标准路径还是快速通道。
核心原则:只记现象不记根因。用户说"我觉得是 XX 组件的问题"——记下"用户怀疑 XX 组件"作为线索,但不顺着聊根因。根因要在阶段 2 通过实际读代码确认,不靠脑子里猜。混进根因猜测的报告会带偏阶段 2,让分析人围着错误线索绕。
共享路径与命名约定看
.codestable/reference/shared-conventions.md第 0 节和cs-issue的"文件放哪儿"。
cs-feat.codestable/issues/,有同类问题先和用户确认是新建还是更新{文件}:{行号}、修复改动小 1-2 处、无跨模块影响风险)→ 告诉用户"我已看到问题所在,可以走快速通道:直接告知根因和修复方案,你确认后我立刻修,修完你验证,只写一份 {slug}-fix-note.md"。同意后触发 cs-issue-fix(快速通道模式)currentDate)。目录不存在就创建。快速通道也要建 issue 目录,{slug}-fix-note.md 放那按顺序逐个问,不一次抛 5 个——一次抛多个用户只回最容易的,深的就漏了。每问做一次模糊度检查,不通过继续追问。
期待具体的异常表现:"点击提交按钮后弹出了空白弹窗" 比 "提交功能有问题" 有用一百倍。
模糊信号:"有时候会出错"、"感觉不对" → 追问"具体什么时候"、"具体什么不对"。
红线:不要让用户描述根因。出现"应该是因为 XXX"——记现象,根因留给阶段 2。
期待最小复现步骤:进入 XX 页面 → 输入 YY → 点击 ZZ → 看到问题现象。
模糊信号:"不稳定复现"、"有时候能有时候不能" → 追问复现频率和条件差异。确实不稳定就写明已知触发条件和复现率。
"无法复现"也是有效回答——写"目前无法稳定复现,只在 X 情况下观察到一次",别勉强凑步骤。
期待两句话:
不要合并成一句。合在一句"按钮没正常工作"里分析的人不知道"正常"长什么样。
最低采集:在哪个模块 / 功能区域发现的、相关文件或函数(用户知道的话)。
可选:操作系统、浏览器版本、运行环境(dev / prod)、最近有没有改过相关代码。
用户说"不知道在哪个文件"——写"待定",阶段 2 分析时查。
用户不确定就帮他推荐一个但让用户拍板。
---
doc_type: issue-report
issue: {issue 目录名}
status: draft
severity: P0 | P1 | P2 | P3
summary: {问题现象一句话}
tags: []
---
# {问题简述} Issue Report
## 1. 问题现象
{用户描述的具体异常表现,纯现象描述,不含根因推测}
## 2. 复现步骤
1. {步骤 1}
2. {步骤 2}
3. 观察到:{问题现象}
复现频率:{稳定 / 概率(约 X%) / 暂无法稳定}
## 3. 期望 vs 实际
**期望行为**:{做了 A 应该发生 B}
**实际行为**:{但实际发生了 C}
## 4. 环境信息
- 涉及模块 / 功能:{模块名或功能描述}
- 相关文件 / 函数:{已知 file:line 或"待定"}
- 运行环境:{dev / staging / prod / 不确定}
- 其他上下文:{OS、浏览器、最近改动等,没有写"无"}
## 5. 严重程度
**{P0 / P1 / P2 / P3}** — {一句话理由}
## 备注
{可选:截图描述、日志片段等}
doc_type=issue-report / issue 一致 / severity 和 summary 非空 / tags ≥ 1)status: confirmed告诉用户:"问题报告已就绪。下一步阶段 2 根因分析,触发 cs-issue-analyze。"
别自己顺手开始分析根因——阶段间的人工 checkpoint 是工作流硬约束。
cursor/plugins
github/awesome-copilot
alirezarezvani/claude-skills
microsoft/win-dev-skills