소스 정보
- 저장소
- ZeroZ-lab/unified-skills
- 최근 소스 활동
- 2026년 5월 21일 12:33
- 감지된 SKILL.md 언어
- 중국어
- 스타
- 16
- 포크
- 1
설치 방법
기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.
소스 파일 검토
설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.
메뉴
기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.
설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
직접 명령은 검토 Prompt를 거치지 않습니다. 실행하기 전에 소스를 확인하세요.
npx skills add https://github.com/ZeroZ-lab/unified-skills --skill verify-workflow-debug명령은 한 줄로 유지됩니다. 복사하기 전에 가로로 스크롤해 전체 내용을 확인하세요.
로컬 사본을 원하시나요? SkillsMP에서 현재 제공할 수 있는 파일을 다운로드하세요.
SKILL.md 표시 중
| name | verify-workflow-debug |
| description | 系统化根因调试——先建反馈循环再假设。当遇到 bug、测试失败、意外行为,或提到"调试""debug""为什么不工作""crash" |
docs/bugs/<name>/01-root-cause.md(根因记录)build-quality-tdd/SKILL.mddocs/bugs/<name>/01-root-cause.md → build-workflow-execute(重新 build)或 verify-workflow-review(重新 review)在尝试任何修复之前:
读错误信息仔细 — 不跳过错误。读完整堆栈。记下行号、文件路径、错误码。
稳定复现 — 能可靠触发吗?准确步骤是?每次必现吗?不可复现 → 收集更多数据,不要猜。
构建最小复现 — 去掉无关代码/配置直到只剩 bug 本身。简化输入到最小触发用例。最小复现让根因变得明显,防止修复症状而不是原因。
查最近变更 — git diff、最近提交、新依赖、配置变更、环境差异。
多组件系统加诊断埋点 — 当系统跨多个组件(CI → build → signing,API → service → DB)时:
向上追溯数据流 — 错误在调用栈深处时:从最终错误点向上追溯。错误值从哪来?谁带着错误值调用了这里?不断追溯直到找到源头。在源头修复,不在症状处修。
在确定模式后再修复:
build-quality-tdd/SKILL.md 写失败测试。先有测试再修复。没有复现测试的修复 = 没有修复。连续 3 次修复失败 = 架构问题:
迹象:
STOP 并质疑基础:
与人类讨论后再尝试更多修复。这不是假设失败——这是错误的架构。
测试在代码变更后失败:
├── 代码被测试覆盖了?
│ └── YES → 测试还是代码错了?
│ ├── 测试过时 → 更新测试
│ └── 代码有 bug → 修复代码
├── 改了不相关的代码?
│ └── YES → 副作用 → 检查共享状态、import、全局变量
└── 测试本来就 flaky?
└── 检查时序问题、顺序依赖、外部依赖
构建失败:
├── 类型错误 → 读错误信息,检查对应位置类型
├── Import 错误 → 模块存在?exports 匹配?路径正确?
├── 配置错误 → 检查构建配置文件的语法/schema
├── 依赖错误 → 检查 package.json,重装依赖
└── 环境错误 → Node 版本、OS 兼容性
运行时错误:
├── TypeError: Cannot read property 'x' of undefined
│ └── 某个值不该 null/undefined → 向上追溯数据流
├── 网络错误 / CORS
│ └── 检查 URL、headers、服务端 CORS 配置
├── 渲染错误 / 白屏
│ └── 检查 error boundary、console、组件树
└── 意外行为(无错误)
└── 关键路径加日志,验证每一步数据
时间压力下使用安全降级,不崩溃:
// 安全默认 + 警告(不崩溃)
function getConfig(key: string): string {
const value = process.env[key];
if (!value) {
console.warn(`Missing config: ${key}, using default`);
return DEFAULTS[key] ?? '';
}
return value;
}
// 优雅降级(不展示破碎功能)
function renderChart(data: ChartData[]) {
if (data.length === 0) {
return <EmptyState message="暂无数据" />;
}
try {
return <Chart data={data} />;
} catch (error) {
console.error('Chart render failed:', error);
return <ErrorBoundaryFallback />;
}
}
Phase 1 读错误信息 + 稳定复现 + 最小复现 → Phase 2 找工作示例对比差异 → Phase 3 假设"N+1 查询是根因" → Phase 4 写复现测试(RED)→ 修复 → 测试通过(GREEN)。根因可追溯,修复可验证。
"试试改这个"、"再改那个"、"改三个地方一起跑"。没有读错误信息、没有复现步骤、没有单一假设、没有复现测试。修了症状不知道根因,同类 bug 在其他位置复发。
templates/bug/01-root-cause.md,落盘到 docs/bugs/<name>/01-root-cause.mdtemplates/bug/02-fix-plan.md,落盘到 docs/bugs/<name>/02-fix-plan.md根因记录必须包含:Status Summary、症状、影响范围、时间线、复现步骤、复现证据、调查过程、根因、非根因排除、修复方向、Done When。
修复计划必须包含:Status Summary、修复目标、最小改动范围、复现测试、修复步骤、验证计划、回归风险、Follow-up Actions、Done When。
build-quality-tdd/SKILL.md输出或记录必须包含:
| 说辞 | 现实 | 后果 |
|---|---|---|
| "快速修复,之后调查" | 没有之后。先在根因,再修复。 | 修症状不修根因,同类 bug 在 3 个不同位置反复出现,累计修复时间 10x 于单次根因调查。 |
| "先改改看行不行" | 猜。先确定根因。 | 猜测式调试平均浪费 45 分钟(行业数据),系统化调试平均 15 分钟。每次猜错都在掩盖真实线索。 |
| "改多个地方一次跑" | 无法隔离有效变更。 | 两个变更互相干扰,通过纯属巧合。下一次只改其中一个时故障复现,且无法判断是哪个变更"真正"修复了问题。 |
| "跳过测试,手动验证" | 手动测试不能证明边界情况。 | 手动验证遗漏的边界条件(并发、空值、超时)以生产偶发故障形式出现,排查需 2-8 小时。 |
| "紧急情况没时间走流程" | 系统化调试比猜更快。 | 紧急中猜测式修复引入新 bug 的概率 ~40%,二次事故的停机损失 > 系统化调试多花的 10 分钟。 |
| "再试一次就好"(第 3+ 次) | 3 次失败 = 架构问题。质疑,不继续猜。 | 第 4、5、6 次尝试不会比前 3 次更好。每次失败都引入更多不确定性,最终不得不全部回退,浪费时间且代码更乱。 |
违反字面规则就是违反精神。 没有灰色地带。
| 失败场景 | 处理方式 |
|---|---|
| 无法复现 bug | 收集更多数据(日志、监控、用户上下文),不要猜测。不可复现 = 不能确定修复 |
| 修复后测试仍失败 | STOP。数一下尝试次数。< 3 次 → 回 Phase 1 重新分析;≥ 3 次 → 进入 Phase 4.5 架构质疑门 |
| 修复引入回归 | 回退修复,重新分析根本原因和副作用 |
| 找不到工作参考示例 | 扩展搜索范围到同技术栈的其他项目,或寻求人类指导 |
| 复现测试本身有缺陷 | 修复测试,确保 RED→GREEN 循环有效。测试没错之前不要修代码 |
全部意味着:STOP。回到 Phase 1。
注意来自人类伙伴的信号:
全部意味着:STOP。回到 Phase 1。
docs/bugs/<name>/01-root-cause.mddocs/bugs/<name>/02-fix-plan.mdSOC 직업 분류 기준