ethan-skill 1.15.2 → 1.15.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. package/dist/agents/orchestrator.test.js +13 -12
  2. package/dist/agents/orchestrator.test.js.map +1 -1
  3. package/dist/agents/presets.d.ts.map +1 -1
  4. package/dist/agents/presets.js +57 -0
  5. package/dist/agents/presets.js.map +1 -1
  6. package/dist/skills/37-auto-fix.d.ts +3 -0
  7. package/dist/skills/37-auto-fix.d.ts.map +1 -0
  8. package/dist/skills/37-auto-fix.js +229 -0
  9. package/dist/skills/37-auto-fix.js.map +1 -0
  10. package/dist/skills/38-agent-memory.d.ts +3 -0
  11. package/dist/skills/38-agent-memory.d.ts.map +1 -0
  12. package/dist/skills/38-agent-memory.js +221 -0
  13. package/dist/skills/38-agent-memory.js.map +1 -0
  14. package/dist/skills/39-competitive-analysis.d.ts +3 -0
  15. package/dist/skills/39-competitive-analysis.d.ts.map +1 -0
  16. package/dist/skills/39-competitive-analysis.js +187 -0
  17. package/dist/skills/39-competitive-analysis.js.map +1 -0
  18. package/dist/skills/40-solution-proposal.d.ts +3 -0
  19. package/dist/skills/40-solution-proposal.d.ts.map +1 -0
  20. package/dist/skills/40-solution-proposal.js +196 -0
  21. package/dist/skills/40-solution-proposal.js.map +1 -0
  22. package/dist/skills/41-test-plan.d.ts +3 -0
  23. package/dist/skills/41-test-plan.d.ts.map +1 -0
  24. package/dist/skills/41-test-plan.js +255 -0
  25. package/dist/skills/41-test-plan.js.map +1 -0
  26. package/dist/skills/42-bug-report.d.ts +3 -0
  27. package/dist/skills/42-bug-report.d.ts.map +1 -0
  28. package/dist/skills/42-bug-report.js +224 -0
  29. package/dist/skills/42-bug-report.js.map +1 -0
  30. package/dist/skills/43-ops-runbook.d.ts +3 -0
  31. package/dist/skills/43-ops-runbook.d.ts.map +1 -0
  32. package/dist/skills/43-ops-runbook.js +282 -0
  33. package/dist/skills/43-ops-runbook.js.map +1 -0
  34. package/dist/skills/index.d.ts +7 -0
  35. package/dist/skills/index.d.ts.map +1 -1
  36. package/dist/skills/index.js +29 -1
  37. package/dist/skills/index.js.map +1 -1
  38. package/dist/skills/pipeline.d.ts.map +1 -1
  39. package/dist/skills/pipeline.js +58 -0
  40. package/dist/skills/pipeline.js.map +1 -1
  41. package/dist/skills/skills.test.js +3 -3
  42. package/dist/skills/skills.test.js.map +1 -1
  43. package/package.json +1 -1
  44. package/rules/claude-code/CLAUDE.md +1436 -3
  45. package/rules/cline/.clinerules +1327 -2
  46. package/rules/codebuddy/CODEBUDDY.md +1399 -2
  47. package/rules/continue/.continuerules +1327 -2
  48. package/rules/copilot/copilot-instructions.md +1378 -2
  49. package/rules/cursor/.cursorrules +1428 -2
  50. package/rules/cursor/smart-flow.mdc +1428 -2
  51. package/rules/jetbrains/smart-flow.md +1378 -2
  52. package/rules/lingma/smart-flow.md +1393 -3
  53. package/rules/windsurf/.windsurf/rules/smart-flow.md +1379 -3
  54. package/rules/zed/smart-flow.rules +1319 -1
@@ -59,16 +59,16 @@ const mockPipeline = {
59
59
  });
60
60
  (0, vitest_1.it)('contains Agent roster table', () => {
61
61
  (0, vitest_1.expect)(prompt).toContain('Agent 阵容');
62
- (0, vitest_1.expect)(prompt).toContain('Architect Agent');
62
+ (0, vitest_1.expect)(prompt).toContain('Product Agent');
63
63
  (0, vitest_1.expect)(prompt).toContain('Code Agent');
64
- // dev-workflow uses architect+coder+pm (no reviewer/qa in this pipeline)
64
+ // dev-workflow uses product+coder+qa with updated routing
65
65
  });
66
66
  (0, vitest_1.it)('contains collaboration protocol', () => {
67
67
  (0, vitest_1.expect)(prompt).toContain('协作协议');
68
68
  (0, vitest_1.expect)(prompt).toContain('Handoff 摘要');
69
69
  });
70
70
  (0, vitest_1.it)('contains step headings with agent names', () => {
71
- (0, vitest_1.expect)(prompt).toContain('🏗️ Architect Agent');
71
+ (0, vitest_1.expect)(prompt).toContain('📱 Product Agent');
72
72
  (0, vitest_1.expect)(prompt).toContain('💻 Code Agent');
73
73
  });
74
74
  (0, vitest_1.it)('contains handoff markers between different agents', () => {
@@ -96,8 +96,8 @@ const mockPipeline = {
96
96
  });
97
97
  });
98
98
  (0, vitest_1.describe)('BUILT_IN_AGENTS', () => {
99
- (0, vitest_1.it)('has 8 agents', () => {
100
- (0, vitest_1.expect)(presets_1.BUILT_IN_AGENTS).toHaveLength(8);
99
+ (0, vitest_1.it)('has 12 agents', () => {
100
+ (0, vitest_1.expect)(presets_1.BUILT_IN_AGENTS).toHaveLength(12);
101
101
  });
102
102
  (0, vitest_1.it)('all agents have required fields', () => {
103
103
  for (const agent of presets_1.BUILT_IN_AGENTS) {
@@ -108,7 +108,7 @@ const mockPipeline = {
108
108
  (0, vitest_1.expect)(agent.skillIds.length).toBeGreaterThan(0);
109
109
  }
110
110
  });
111
- (0, vitest_1.it)('covers all 36 skills across agents', () => {
111
+ (0, vitest_1.it)('covers all 43 skills across agents', () => {
112
112
  const ALL_SKILL_IDS = [
113
113
  'requirement-understanding', 'task-breakdown', 'solution-design', 'implementation',
114
114
  'progress-tracking', 'task-report', 'weekly-report', 'code-review', 'debug',
@@ -117,7 +117,8 @@ const mockPipeline = {
117
117
  'cicd', 'performance', 'refactoring', 'observability', 'design-patterns',
118
118
  'spec-proposal', 'spec-review', 'tech-debt', 'api-mock', 'data-migration',
119
119
  'llm-feature', 'threat-model', 'green-code', 'service-catalog', 'mobile-review',
120
- 'data-pipeline', 'ml-experiment',
120
+ 'data-pipeline', 'ml-experiment', 'auto-fix', 'agent-memory',
121
+ 'competitive-analysis', 'solution-proposal', 'test-plan', 'bug-report', 'ops-runbook',
121
122
  ];
122
123
  const coveredIds = new Set(presets_1.BUILT_IN_AGENTS.flatMap((a) => a.skillIds));
123
124
  const uncovered = ALL_SKILL_IDS.filter((id) => !coveredIds.has(id));
@@ -127,23 +128,23 @@ const mockPipeline = {
127
128
  (0, vitest_1.describe)('buildSkillRouting', () => {
128
129
  (0, vitest_1.it)('maps each skillId to its agent', () => {
129
130
  const routing = (0, presets_1.buildSkillRouting)(presets_1.BUILT_IN_AGENTS);
130
- (0, vitest_1.expect)(routing['requirement-understanding']).toBe('architect');
131
+ (0, vitest_1.expect)(routing['requirement-understanding']).toBe('product'); // product overrides architect (last-writer-wins)
131
132
  (0, vitest_1.expect)(routing['implementation']).toBe('coder');
132
133
  (0, vitest_1.expect)(routing['code-review']).toBe('qa'); // qa overrides reviewer (last-writer-wins)
133
- (0, vitest_1.expect)(routing['deployment']).toBe('devops');
134
- (0, vitest_1.expect)(routing['debug']).toBe('pm');
134
+ (0, vitest_1.expect)(routing['deployment']).toBe('ops'); // ops overrides devops (last-writer-wins)
135
+ (0, vitest_1.expect)(routing['debug']).toBe('ops'); // ops overrides pm (last-writer-wins)
135
136
  });
136
137
  });
137
138
  (0, vitest_1.describe)('getAgentsForPipeline', () => {
138
139
  (0, vitest_1.it)('returns only agents participating in the pipeline', () => {
139
140
  const routing = (0, presets_1.buildSkillRouting)(presets_1.BUILT_IN_AGENTS);
140
141
  const agents = (0, presets_1.getAgentsForPipeline)(['requirement-understanding', 'implementation', 'code-review'], presets_1.BUILT_IN_AGENTS, routing);
141
- (0, vitest_1.expect)(agents.map((a) => a.id)).toEqual(['architect', 'coder', 'qa']);
142
+ (0, vitest_1.expect)(agents.map((a) => a.id)).toEqual(['product', 'coder', 'qa']);
142
143
  });
143
144
  (0, vitest_1.it)('deduplicates consecutive same-agent steps', () => {
144
145
  const routing = (0, presets_1.buildSkillRouting)(presets_1.BUILT_IN_AGENTS);
145
146
  // Both solution-design and api-design belong to architect
146
- const agents = (0, presets_1.getAgentsForPipeline)(['requirement-understanding', 'solution-design', 'api-design'], presets_1.BUILT_IN_AGENTS, routing);
147
+ const agents = (0, presets_1.getAgentsForPipeline)(['solution-design', 'api-design'], presets_1.BUILT_IN_AGENTS, routing);
147
148
  (0, vitest_1.expect)(agents.map((a) => a.id)).toEqual(['architect']); // deduped
148
149
  });
149
150
  });
@@ -1 +1 @@
1
- {"version":3,"file":"orchestrator.test.js","sourceRoot":"","sources":["../../src/agents/orchestrator.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"orchestrator.test.js","sourceRoot":"","sources":["../../src/agents/orchestrator.test.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"presets.d.ts","sourceRoot":"","sources":["../../src/agents/presets.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE/C,eAAO,MAAM,eAAe,EAAE,eAAe,EA2H5C,CAAC;AAEF;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAQnF;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,MAAM,EAAE,EAClB,MAAM,EAAE,eAAe,EAAE,EACzB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC9B,eAAe,EAAE,CAcnB"}
1
+ {"version":3,"file":"presets.d.ts","sourceRoot":"","sources":["../../src/agents/presets.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE/C,eAAO,MAAM,eAAe,EAAE,eAAe,EAoL5C,CAAC;AAEF;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAQnF;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,MAAM,EAAE,EAClB,MAAM,EAAE,eAAe,EAAE,EACzB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC9B,eAAe,EAAE,CAcnB"}
@@ -39,6 +39,7 @@ exports.BUILT_IN_AGENTS = [
39
39
  'api-mock',
40
40
  'data-migration',
41
41
  'llm-feature',
42
+ 'agent-memory',
42
43
  ],
43
44
  },
44
45
  {
@@ -130,6 +131,62 @@ exports.BUILT_IN_AGENTS = [
130
131
  'llm-feature',
131
132
  ],
132
133
  },
134
+ {
135
+ id: 'presales',
136
+ name: 'PreSales Agent',
137
+ nameEn: 'presales-agent',
138
+ emoji: '🤝',
139
+ role: '负责售前支持:竞品分析、方案建议书、ROI 测算与客户演示材料',
140
+ skillIds: [
141
+ 'competitive-analysis',
142
+ 'solution-proposal',
143
+ 'tech-research',
144
+ 'prd',
145
+ 'system-design',
146
+ ],
147
+ },
148
+ {
149
+ id: 'product',
150
+ name: 'Product Agent',
151
+ nameEn: 'product-agent',
152
+ emoji: '📱',
153
+ role: '负责产品管理:需求理解、PRD 编写、任务拆解与变更提案',
154
+ skillIds: [
155
+ 'requirement-understanding',
156
+ 'prd',
157
+ 'task-breakdown',
158
+ 'spec-proposal',
159
+ 'progress-tracking',
160
+ ],
161
+ },
162
+ {
163
+ id: 'tester',
164
+ name: 'Tester Agent',
165
+ nameEn: 'tester-agent',
166
+ emoji: '🔬',
167
+ role: '负责质量保障:测试计划、缺陷管理、单元测试与自动修复',
168
+ skillIds: [
169
+ 'test-plan',
170
+ 'bug-report',
171
+ 'unit-testing',
172
+ 'auto-fix',
173
+ 'performance',
174
+ ],
175
+ },
176
+ {
177
+ id: 'ops',
178
+ name: 'Ops Agent',
179
+ nameEn: 'ops-agent',
180
+ emoji: '🛠️',
181
+ role: '负责运维与 SRE:运维手册、部署上线、可观测性与故障排查',
182
+ skillIds: [
183
+ 'ops-runbook',
184
+ 'deployment',
185
+ 'observability',
186
+ 'cicd',
187
+ 'debug',
188
+ ],
189
+ },
133
190
  ];
134
191
  /**
135
192
  * 构建 skillId → agentId 的路由映射表
@@ -1 +1 @@
1
- {"version":3,"file":"presets.js","sourceRoot":"","sources":["../../src/agents/presets.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"presets.js","sourceRoot":"","sources":["../../src/agents/presets.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { SkillDefinition } from './types';
2
+ export declare const autoFixSkill: SkillDefinition;
3
+ //# sourceMappingURL=37-auto-fix.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"37-auto-fix.d.ts","sourceRoot":"","sources":["../../src/skills/37-auto-fix.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE/C,eAAO,MAAM,YAAY,EAAE,eAgO1B,CAAC"}
@@ -0,0 +1,229 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.autoFixSkill = void 0;
4
+ exports.autoFixSkill = {
5
+ id: 'auto-fix',
6
+ name: '自动修复',
7
+ nameEn: 'auto_fix',
8
+ order: 37,
9
+ category: '质量侧',
10
+ description: '读取 CI/测试/Lint 失败信息,自动分析根因、生成修复方案并迭代验证,直到通过(最多 3 轮)',
11
+ descriptionEn: 'Read CI/test/lint failures, auto-analyze root cause, generate and apply fixes iteratively until passing (max 3 rounds)',
12
+ detailDescription: `CI 红灯、测试失败、Lint 报错是开发中最高频的阻塞点。
13
+ 本 Skill 将失败信息转化为结构化诊断,提出针对性修复方案,并在每轮修复后验证结果,
14
+ 最多迭代 3 轮直到全部通过。对于无法自动修复的问题,输出清晰的人工介入指引。`,
15
+ triggers: [
16
+ '自动修复',
17
+ 'auto fix',
18
+ 'auto-fix',
19
+ 'CI 失败',
20
+ 'ci failed',
21
+ '测试失败',
22
+ 'test failed',
23
+ 'lint 报错',
24
+ 'lint error',
25
+ '修复失败',
26
+ 'fix failing tests',
27
+ '自动迭代修复',
28
+ '@ethan fix',
29
+ '@ethan auto-fix',
30
+ '/auto-fix',
31
+ ],
32
+ steps: [
33
+ {
34
+ title: '1. 收集失败信息',
35
+ content: `收集所有可用的失败上下文:
36
+
37
+ **信息来源(优先级从高到低)**
38
+ - CI 流水线日志(完整 stderr/stdout,不截断)
39
+ - 测试框架输出(Jest / Vitest / PyTest / Go test)
40
+ - Lint 报告(ESLint / Prettier / tsc / pylint)
41
+ - 构建错误(webpack / vite / tsc)
42
+ - 运行时异常(stack trace + 上下文代码)
43
+
44
+ **必须提取的字段**
45
+ \`\`\`
46
+ 失败类型: [ 测试失败 | Lint | 类型错误 | 构建失败 | 运行时错误 ]
47
+ 失败文件: [文件路径:行号]
48
+ 错误信息: [原始错误文本,保留完整 stack trace]
49
+ 触发条件: [哪个命令/步骤触发]
50
+ 上次绿灯: [最近一次通过的 commit / 时间(如可获取)]
51
+ \`\`\`
52
+
53
+ > 如果日志超长,提取前 100 行 + 最后 50 行,优先保留 "FAILED"、"ERROR"、"at " 行。`,
54
+ },
55
+ {
56
+ title: '2. 根因分析',
57
+ content: `对每个失败逐一诊断根因,区分「直接原因」和「根本原因」:
58
+
59
+ **失败类型与常见根因速查**
60
+
61
+ | 失败类型 | 直接原因 | 根本原因示例 |
62
+ |---------|---------|------------|
63
+ | 测试断言失败 | 返回值与预期不符 | 业务逻辑变更未同步更新测试 |
64
+ | 测试超时 | 异步未正确 resolve | 缺少 await 或 mock 配置不当 |
65
+ | 类型错误 | interface 不匹配 | API 变更未更新消费方类型 |
66
+ | Lint 报错 | 代码风格违规 | 缺少 import、未使用变量、规则变更 |
67
+ | 构建失败 | 模块未找到 | 路径别名配置、缺少依赖 |
68
+ | 运行时错误 | 空指针/未定义 | 边界条件未处理 |
69
+
70
+ **输出根因诊断表**
71
+ \`\`\`
72
+ 失败 #1
73
+ 文件: src/auth/login.test.ts:42
74
+ 错误: Expected "invalid" but received "error"
75
+ 直接原因: 返回值从 "error" 改为 "invalid"
76
+ 根本原因: auth.ts 第 89 行修改了错误码但未同步测试
77
+ 修复难度: 🟢 简单(更新测试断言)
78
+ 可自动修复: ✅
79
+
80
+ 失败 #2
81
+ 文件: src/utils/parser.ts:15
82
+ 错误: Type 'string | null' is not assignable to 'string'
83
+ 直接原因: getUser() 返回值新增了 null 类型
84
+ 根本原因: API 层变更未向下传播 null 处理
85
+ 修复难度: 🟡 中等(需添加 null guard)
86
+ 可自动修复: ✅
87
+ \`\`\``,
88
+ },
89
+ {
90
+ title: '3. 生成修复方案(Round 1)',
91
+ content: `针对每个可自动修复的失败,生成最小化修复方案:
92
+
93
+ **修复原则**
94
+ - 最小改动原则:只修改必须改的代码
95
+ - 不引入新问题:修复后不能导致其他测试失败
96
+ - 保持语义一致:修复逻辑应符合原始意图
97
+ - 优先修代码而非修测试(除非测试本身写错了)
98
+
99
+ **分优先级处理**
100
+ 1. 🔴 **先修 Blocker**:类型错误、构建失败(影响所有后续步骤)
101
+ 2. 🟡 **再修测试**:断言失败、Mock 配置(影响覆盖率报告)
102
+ 3. 🟢 **最后修 Lint**:风格问题(不影响功能,可批量修复)
103
+
104
+ **Lint 批量自动修复命令**
105
+ \`\`\`bash
106
+ npx eslint src --fix
107
+ npx prettier src --write
108
+ \`\`\`
109
+
110
+ **输出修复 Diff(每个失败一个代码块)**
111
+ \`\`\`diff
112
+ // 修复 #1:更新测试断言
113
+ - expect(result).toBe('error');
114
+ + expect(result).toBe('invalid');
115
+
116
+ // 修复 #2:添加 null guard
117
+ - const name = getUser().name;
118
+ + const user = getUser();
119
+ + const name = user?.name ?? '';
120
+ \`\`\``,
121
+ },
122
+ {
123
+ title: '4. 应用修复并验证',
124
+ content: `应用修复方案后立即验证:
125
+
126
+ **验证步骤(按失败类型)**
127
+ \`\`\`bash
128
+ # 测试失败
129
+ npx vitest run [changed-test-file] # 先跑单文件,快速反馈
130
+ npx vitest run # 再跑全量,确认无新增失败
131
+
132
+ # 类型错误
133
+ npx tsc --noEmit # 全量类型检查
134
+
135
+ # Lint 错误
136
+ npx eslint src --max-warnings 0 # 不允许遗留 warning
137
+
138
+ # 构建失败
139
+ npm run build # 完整构建验证
140
+ \`\`\`
141
+
142
+ **验证结果记录**
143
+ \`\`\`
144
+ Round 1 结果:
145
+ 修复前:❌ 3 失败(2 测试 + 1 类型错误)
146
+ 修复后:
147
+ ✅ 测试失败 #1 — 已修复(断言更新)
148
+ ✅ 类型错误 #2 — 已修复(null guard)
149
+ ❌ 测试失败 #3 — 仍失败(需进入 Round 2)
150
+ \`\`\``,
151
+ },
152
+ {
153
+ title: '5. 迭代修复(Round 2-3)',
154
+ content: `如果 Round 1 仍有失败,进入迭代模式:
155
+
156
+ **迭代策略**
157
+ - **Round 2**:针对剩余失败,进行更深入的根因分析(可能是 Round 1 修复引入了副作用)
158
+ - **Round 3**:最终尝试,优先保证 CI 通过(允许临时 skip 不稳定测试,但必须标注 @todo)
159
+
160
+ **副作用检测**(重要)
161
+ \`\`\`
162
+ 检查 Round 1 修复后的新增失败:
163
+ - 是否有原本通过的测试现在失败了?
164
+ - 如果有,优先回退引入副作用的修改,重新设计方案
165
+ \`\`\`
166
+
167
+ **Round 3 后仍失败的处理**
168
+ \`\`\`markdown
169
+ ## ⚠️ 需要人工介入
170
+
171
+ 以下失败无法通过自动修复解决:
172
+
173
+ ### 失败 #X
174
+ - **错误**:[原始错误]
175
+ - **已尝试**:[已尝试的修复方案]
176
+ - **失败原因**:[为什么自动修复不可行]
177
+ - **建议人工处理**:[具体建议步骤]
178
+ - **最低可行方案**:暂时 skip 此测试,添加 TODO 注释:
179
+ \`// TODO(@owner): fix in #issue-number — [简短原因]\`
180
+ \`\`\`
181
+
182
+ **迭代上限约束**
183
+ - 最多 3 轮迭代,防止无限循环
184
+ - 每轮必须有至少 1 个失败被修复,否则停止并输出人工介入指引`,
185
+ },
186
+ {
187
+ title: '6. 输出修复报告',
188
+ content: `所有轮次完成后,输出结构化修复报告:
189
+
190
+ \`\`\`markdown
191
+ ## Auto-Fix 修复报告
192
+
193
+ ### 修复概览
194
+ - **总失败数**:X
195
+ - **自动修复**:Y(Y/X)
196
+ - **需人工处理**:Z
197
+ - **迭代轮次**:N 轮
198
+
199
+ ### 修复详情
200
+
201
+ | # | 文件 | 错误类型 | 修复方式 | 状态 |
202
+ |---|------|---------|---------|------|
203
+ | 1 | src/auth.ts:42 | 断言失败 | 更新期望值 | ✅ Round 1 |
204
+ | 2 | src/utils.ts:15 | 类型错误 | 添加 null guard | ✅ Round 1 |
205
+ | 3 | src/api.ts:88 | 集成测试 | 更新 Mock 配置 | ✅ Round 2 |
206
+
207
+ ### 代码变更摘要
208
+ [修改的文件列表 + 每处修改的简短说明]
209
+
210
+ ### 需要人工介入
211
+ [如有,列出无法自动修复的项目 + 建议]
212
+
213
+ ### 预防建议
214
+ - [导致此次失败的系统性问题]
215
+ - [建议的规范或流程改进]
216
+ \`\`\``,
217
+ },
218
+ ],
219
+ outputFormat: 'Markdown 修复报告:根因诊断表 + 分 Round 修复 Diff + 验证结果 + 人工介入指引(如有)',
220
+ notes: [
221
+ '优先修代码而非修测试——除非测试本身写错了',
222
+ '每轮修复后必须验证,确认无副作用后再继续',
223
+ '3 轮迭代上限是硬约束,防止循环修复',
224
+ '临时 skip 测试时必须留下 TODO 注释,不允许无理由 skip',
225
+ 'Lint 可以批量 --fix,但需检查 fix 后的语义是否正确',
226
+ ],
227
+ nextSkill: 'unit-testing',
228
+ };
229
+ //# sourceMappingURL=37-auto-fix.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"37-auto-fix.js","sourceRoot":"","sources":["../../src/skills/37-auto-fix.ts"],"names":[],"mappings":";;;AAEa,QAAA,YAAY,GAAoB;IAC3C,EAAE,EAAE,UAAU;IACd,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,UAAU;IAClB,KAAK,EAAE,EAAE;IACT,QAAQ,EAAE,KAAK;IACf,WAAW,EAAE,oDAAoD;IACjE,aAAa,EAAE,wHAAwH;IACvI,iBAAiB,EAAE;;wCAEmB;IACtC,QAAQ,EAAE;QACR,MAAM;QACN,UAAU;QACV,UAAU;QACV,OAAO;QACP,WAAW;QACX,MAAM;QACN,aAAa;QACb,SAAS;QACT,YAAY;QACZ,MAAM;QACN,mBAAmB;QACnB,QAAQ;QACR,YAAY;QACZ,iBAAiB;QACjB,WAAW;KACZ;IACD,KAAK,EAAE;QACL;YACE,KAAK,EAAE,WAAW;YAClB,OAAO,EAAE;;;;;;;;;;;;;;;;;;4DAkB6C;SACvD;QACD;YACE,KAAK,EAAE,SAAS;YAChB,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8BR;SACF;QACD;YACE,KAAK,EAAE,oBAAoB;YAC3B,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BR;SACF;QACD;YACE,KAAK,EAAE,YAAY;YACnB,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BR;SACF;QACD;YACE,KAAK,EAAE,oBAAoB;YAC3B,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iCA8BkB;SAC5B;QACD;YACE,KAAK,EAAE,WAAW;YAClB,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BR;SACF;KACF;IACD,YAAY,EAAE,2DAA2D;IACzE,KAAK,EAAE;QACL,uBAAuB;QACvB,sBAAsB;QACtB,oBAAoB;QACpB,qCAAqC;QACrC,mCAAmC;KACpC;IACD,SAAS,EAAE,cAAc;CAC1B,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { SkillDefinition } from './types';
2
+ export declare const agentMemorySkill: SkillDefinition;
3
+ //# sourceMappingURL=38-agent-memory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"38-agent-memory.d.ts","sourceRoot":"","sources":["../../src/skills/38-agent-memory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE/C,eAAO,MAAM,gBAAgB,EAAE,eAwN9B,CAAC"}