ethan-skill 1.0.0
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.
- package/CHANGELOG.md +25 -0
- package/README.md +249 -0
- package/dist/cli/index.d.ts +7 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +452 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/mcp/server.d.ts +7 -0
- package/dist/mcp/server.d.ts.map +1 -0
- package/dist/mcp/server.js +199 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/router/trigger-router.d.ts +16 -0
- package/dist/router/trigger-router.d.ts.map +1 -0
- package/dist/router/trigger-router.js +45 -0
- package/dist/router/trigger-router.js.map +1 -0
- package/dist/router/trigger-router.test.d.ts +2 -0
- package/dist/router/trigger-router.test.d.ts.map +1 -0
- package/dist/router/trigger-router.test.js +79 -0
- package/dist/router/trigger-router.test.js.map +1 -0
- package/dist/skills/01-requirement.d.ts +3 -0
- package/dist/skills/01-requirement.d.ts.map +1 -0
- package/dist/skills/01-requirement.js +100 -0
- package/dist/skills/01-requirement.js.map +1 -0
- package/dist/skills/02-task-breakdown.d.ts +3 -0
- package/dist/skills/02-task-breakdown.d.ts.map +1 -0
- package/dist/skills/02-task-breakdown.js +82 -0
- package/dist/skills/02-task-breakdown.js.map +1 -0
- package/dist/skills/03-design.d.ts +3 -0
- package/dist/skills/03-design.d.ts.map +1 -0
- package/dist/skills/03-design.js +80 -0
- package/dist/skills/03-design.js.map +1 -0
- package/dist/skills/04-implementation.d.ts +3 -0
- package/dist/skills/04-implementation.d.ts.map +1 -0
- package/dist/skills/04-implementation.js +77 -0
- package/dist/skills/04-implementation.js.map +1 -0
- package/dist/skills/05-progress-tracking.d.ts +3 -0
- package/dist/skills/05-progress-tracking.d.ts.map +1 -0
- package/dist/skills/05-progress-tracking.js +78 -0
- package/dist/skills/05-progress-tracking.js.map +1 -0
- package/dist/skills/06-task-report.d.ts +3 -0
- package/dist/skills/06-task-report.d.ts.map +1 -0
- package/dist/skills/06-task-report.js +75 -0
- package/dist/skills/06-task-report.js.map +1 -0
- package/dist/skills/07-weekly-report.d.ts +3 -0
- package/dist/skills/07-weekly-report.d.ts.map +1 -0
- package/dist/skills/07-weekly-report.js +101 -0
- package/dist/skills/07-weekly-report.js.map +1 -0
- package/dist/skills/08-code-review.d.ts +3 -0
- package/dist/skills/08-code-review.d.ts.map +1 -0
- package/dist/skills/08-code-review.js +136 -0
- package/dist/skills/08-code-review.js.map +1 -0
- package/dist/skills/09-debug.d.ts +3 -0
- package/dist/skills/09-debug.d.ts.map +1 -0
- package/dist/skills/09-debug.js +151 -0
- package/dist/skills/09-debug.js.map +1 -0
- package/dist/skills/10-tech-research.d.ts +3 -0
- package/dist/skills/10-tech-research.d.ts.map +1 -0
- package/dist/skills/10-tech-research.js +141 -0
- package/dist/skills/10-tech-research.js.map +1 -0
- package/dist/skills/index.d.ts +18 -0
- package/dist/skills/index.d.ts.map +1 -0
- package/dist/skills/index.js +51 -0
- package/dist/skills/index.js.map +1 -0
- package/dist/skills/pipeline.d.ts +15 -0
- package/dist/skills/pipeline.d.ts.map +1 -0
- package/dist/skills/pipeline.js +55 -0
- package/dist/skills/pipeline.js.map +1 -0
- package/dist/skills/skills.test.d.ts +2 -0
- package/dist/skills/skills.test.d.ts.map +1 -0
- package/dist/skills/skills.test.js +101 -0
- package/dist/skills/skills.test.js.map +1 -0
- package/dist/skills/types.d.ts +60 -0
- package/dist/skills/types.d.ts.map +1 -0
- package/dist/skills/types.js +7 -0
- package/dist/skills/types.js.map +1 -0
- package/dist/templates/copilot-md.template.d.ts +7 -0
- package/dist/templates/copilot-md.template.d.ts.map +1 -0
- package/dist/templates/copilot-md.template.js +293 -0
- package/dist/templates/copilot-md.template.js.map +1 -0
- package/dist/templates/cursor-mdc.template.d.ts +10 -0
- package/dist/templates/cursor-mdc.template.d.ts.map +1 -0
- package/dist/templates/cursor-mdc.template.js +86 -0
- package/dist/templates/cursor-mdc.template.js.map +1 -0
- package/dist/templates/templates.test.d.ts +2 -0
- package/dist/templates/templates.test.d.ts.map +1 -0
- package/dist/templates/templates.test.js +89 -0
- package/dist/templates/templates.test.js.map +1 -0
- package/dist/vscode/commands.d.ts +4 -0
- package/dist/vscode/commands.d.ts.map +1 -0
- package/dist/vscode/commands.js +155 -0
- package/dist/vscode/commands.js.map +1 -0
- package/dist/vscode/extension.d.ts +4 -0
- package/dist/vscode/extension.d.ts.map +1 -0
- package/dist/vscode/extension.js +96 -0
- package/dist/vscode/extension.js.map +1 -0
- package/package.json +71 -0
- package/rules/claude-code/CLAUDE.md +767 -0
- package/rules/cline/.clinerules +622 -0
- package/rules/codebuddy/CODEBUDDY.md +70 -0
- package/rules/continue/.continuerules +622 -0
- package/rules/copilot/copilot-instructions.md +162 -0
- package/rules/cursor/.cursorrules +747 -0
- package/rules/cursor/smart-flow.mdc +763 -0
- package/rules/jetbrains/smart-flow.md +162 -0
- package/rules/lingma/smart-flow.md +133 -0
- package/rules/windsurf/.windsurf/rules/smart-flow.md +162 -0
- package/rules/zed/smart-flow.rules +45 -0
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.designSkill = void 0;
|
|
4
|
+
exports.designSkill = {
|
|
5
|
+
id: 'solution-design',
|
|
6
|
+
name: '方案设计',
|
|
7
|
+
nameEn: 'solution_design',
|
|
8
|
+
order: 3,
|
|
9
|
+
description: '输出技术方案设计文档,包含架构选择、接口设计、数据模型和关键决策说明',
|
|
10
|
+
detailDescription: `在需求明确、任务拆解完成后,进行技术方案设计:选择合适的技术架构、
|
|
11
|
+
设计 API 接口、规划数据模型、说明关键技术决策和权衡,输出可直接指导实现的设计文档。`,
|
|
12
|
+
triggers: [
|
|
13
|
+
'方案设计',
|
|
14
|
+
'技术方案',
|
|
15
|
+
'架构设计',
|
|
16
|
+
'设计方案',
|
|
17
|
+
'怎么设计',
|
|
18
|
+
'数据库设计',
|
|
19
|
+
'接口设计',
|
|
20
|
+
'API 设计',
|
|
21
|
+
'/方案设计',
|
|
22
|
+
'@ethan 设计',
|
|
23
|
+
],
|
|
24
|
+
steps: [
|
|
25
|
+
{
|
|
26
|
+
title: '1. 技术选型',
|
|
27
|
+
content: `- 列出关键技术决策点(框架、数据库、缓存、消息队列等)
|
|
28
|
+
- 每个决策给出 2-3 个候选方案,并说明**选择理由**
|
|
29
|
+
- 格式:「选择 A 而非 B,原因:[理由];权衡:[牺牲了什么]」`,
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
title: '2. 架构设计',
|
|
33
|
+
content: `- 用 ASCII 图或 Mermaid 描述系统架构
|
|
34
|
+
- 说明各组件的职责和交互方式
|
|
35
|
+
- 标注关键数据流向
|
|
36
|
+
|
|
37
|
+
\`\`\`mermaid
|
|
38
|
+
graph LR
|
|
39
|
+
Client --> API[API Server]
|
|
40
|
+
API --> DB[(Database)]
|
|
41
|
+
API --> Cache[(Redis)]
|
|
42
|
+
\`\`\``,
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
title: '3. 接口设计(API)',
|
|
46
|
+
content: `按 RESTful 或 GraphQL 规范设计接口:
|
|
47
|
+
|
|
48
|
+
\`\`\`
|
|
49
|
+
POST /api/v1/[resource]
|
|
50
|
+
Request: { field1: type, field2: type }
|
|
51
|
+
Response: { code: 0, data: {...}, message: string }
|
|
52
|
+
\`\`\`
|
|
53
|
+
|
|
54
|
+
- 统一错误码规范
|
|
55
|
+
- 鉴权方式(Bearer Token / Cookie / API Key)`,
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
title: '4. 数据模型',
|
|
59
|
+
content: `- 核心实体及字段(类型、约束、索引)
|
|
60
|
+
- 实体关系(1:1、1:N、N:M)
|
|
61
|
+
- 关键查询场景和对应索引策略`,
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
title: '5. 关键技术决策记录(ADR)',
|
|
65
|
+
content: `对每个重要决策记录:
|
|
66
|
+
- **背景**:为什么需要做这个决策
|
|
67
|
+
- **决策**:选择了什么
|
|
68
|
+
- **后果**:带来什么影响(正面/负面)`,
|
|
69
|
+
},
|
|
70
|
+
],
|
|
71
|
+
outputFormat: 'Markdown 设计文档,含技术选型表、架构图(Mermaid)、API 接口列表、数据模型、ADR 决策记录',
|
|
72
|
+
notes: [
|
|
73
|
+
'先设计接口契约,再实现内部逻辑',
|
|
74
|
+
'数据模型是设计的核心,多花时间在这里',
|
|
75
|
+
'ADR 不需要面面俱到,只记录有争议的或重要的决策',
|
|
76
|
+
],
|
|
77
|
+
category: '执行侧',
|
|
78
|
+
nextSkill: 'implementation',
|
|
79
|
+
};
|
|
80
|
+
//# sourceMappingURL=03-design.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"03-design.js","sourceRoot":"","sources":["../../src/skills/03-design.ts"],"names":[],"mappings":";;;AAEa,QAAA,WAAW,GAAoB;IAC1C,EAAE,EAAE,iBAAiB;IACrB,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,iBAAiB;IACzB,KAAK,EAAE,CAAC;IACR,WAAW,EAAE,oCAAoC;IACjD,iBAAiB,EAAE;6CACwB;IAC3C,QAAQ,EAAE;QACR,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,OAAO;QACP,MAAM;QACN,QAAQ;QACR,OAAO;QACP,WAAW;KACZ;IACD,KAAK,EAAE;QACL;YACE,KAAK,EAAE,SAAS;YAChB,OAAO,EAAE;;oCAEqB;SAC/B;QACD;YACE,KAAK,EAAE,SAAS;YAChB,OAAO,EAAE;;;;;;;;;OASR;SACF;QACD;YACE,KAAK,EAAE,cAAc;YACrB,OAAO,EAAE;;;;;;;;;wCASyB;SACnC;QACD;YACE,KAAK,EAAE,SAAS;YAChB,OAAO,EAAE;;gBAEC;SACX;QACD;YACE,KAAK,EAAE,kBAAkB;YACzB,OAAO,EAAE;;;uBAGQ;SAClB;KACF;IACD,YAAY,EACV,0DAA0D;IAC5D,KAAK,EAAE;QACL,iBAAiB;QACjB,oBAAoB;QACpB,2BAA2B;KAC5B;IACD,QAAQ,EAAE,KAAK;IACf,SAAS,EAAE,gBAAgB;CAC5B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"04-implementation.d.ts","sourceRoot":"","sources":["../../src/skills/04-implementation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE/C,eAAO,MAAM,mBAAmB,EAAE,eAwEjC,CAAC"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.implementationSkill = void 0;
|
|
4
|
+
exports.implementationSkill = {
|
|
5
|
+
id: 'implementation',
|
|
6
|
+
name: '执行实现',
|
|
7
|
+
nameEn: 'implementation',
|
|
8
|
+
order: 4,
|
|
9
|
+
description: '按设计方案逐步实现代码,遵循最佳实践,同步记录实现决策',
|
|
10
|
+
detailDescription: `进入编码阶段,按任务拆解的顺序逐一实现功能:先写测试或接口定义,
|
|
11
|
+
再实现核心逻辑,遵循 SOLID 原则和项目既有规范,对非显而易见的实现决策作简要注释。`,
|
|
12
|
+
triggers: [
|
|
13
|
+
'执行实现',
|
|
14
|
+
'开始实现',
|
|
15
|
+
'写代码',
|
|
16
|
+
'编写代码',
|
|
17
|
+
'实现功能',
|
|
18
|
+
'代码实现',
|
|
19
|
+
'开始开发',
|
|
20
|
+
'/执行实现',
|
|
21
|
+
'@ethan 实现',
|
|
22
|
+
],
|
|
23
|
+
steps: [
|
|
24
|
+
{
|
|
25
|
+
title: '1. 确认实现前提',
|
|
26
|
+
content: `在开始写代码前确认:
|
|
27
|
+
- ✅ 设计方案已确认
|
|
28
|
+
- ✅ 依赖的接口/服务已就绪(或已 mock)
|
|
29
|
+
- ✅ 开发环境配置正确
|
|
30
|
+
- ✅ 知道本次实现的完成标准(Definition of Done)`,
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
title: '2. 分层实现顺序',
|
|
34
|
+
content: `推荐实现顺序(由内而外):
|
|
35
|
+
1. **数据层**:Model/Schema 定义、数据库迁移
|
|
36
|
+
2. **服务层**:业务逻辑、核心算法
|
|
37
|
+
3. **接口层**:Controller/Route/Resolver
|
|
38
|
+
4. **UI 层**:页面组件、交互逻辑
|
|
39
|
+
5. **集成**:端对端连通、Edge Cases 处理`,
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
title: '3. 编码规范执行',
|
|
43
|
+
content: `- 函数单一职责,超过 50 行考虑拆分
|
|
44
|
+
- 命名自文档化:\`getUserByEmail\` > \`getUser\`
|
|
45
|
+
- 错误处理:不吞异常,向上传递有语义的错误
|
|
46
|
+
- 对**非显而易见**的逻辑写注释(解释"为什么"而非"做什么")
|
|
47
|
+
- 涉及安全的操作(SQL 查询、用户输入)必须做参数化/转义`,
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
title: '4. 每完成一个任务后',
|
|
51
|
+
content: `- 执行单元测试(或手动验证)
|
|
52
|
+
- 更新任务状态(参考"进度跟踪" Skill)
|
|
53
|
+
- 如遇到设计偏差,记录变更原因
|
|
54
|
+
- commit 前检查:无 console.log 遗留、无硬编码密钥`,
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
title: '5. 代码自检清单',
|
|
58
|
+
content: `\`\`\`
|
|
59
|
+
□ 功能满足需求文档的验收条件
|
|
60
|
+
□ 边界条件已处理(null、空数组、超长输入等)
|
|
61
|
+
□ 错误信息对用户友好(生产环境不暴露内部堆栈)
|
|
62
|
+
□ 无明显性能问题(N+1 查询、无限循环风险)
|
|
63
|
+
□ 敏感数据不出现在日志中
|
|
64
|
+
□ 代码可读性:同事无需解释能看懂
|
|
65
|
+
\`\`\``,
|
|
66
|
+
},
|
|
67
|
+
],
|
|
68
|
+
outputFormat: '代码实现 + 简要说明(实现思路、关键决策),每个任务完成后输出自检清单结果',
|
|
69
|
+
notes: [
|
|
70
|
+
'不要一次性写完所有代码,小步提交,频繁验证',
|
|
71
|
+
'遇到阻塞(依赖未就绪)立即反馈,不要等待',
|
|
72
|
+
'实现过程中发现设计问题,先暂停讨论,不要随意修改设计',
|
|
73
|
+
],
|
|
74
|
+
category: '执行侧',
|
|
75
|
+
nextSkill: 'progress-tracking',
|
|
76
|
+
};
|
|
77
|
+
//# sourceMappingURL=04-implementation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"04-implementation.js","sourceRoot":"","sources":["../../src/skills/04-implementation.ts"],"names":[],"mappings":";;;AAEa,QAAA,mBAAmB,GAAoB;IAClD,EAAE,EAAE,gBAAgB;IACpB,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,gBAAgB;IACxB,KAAK,EAAE,CAAC;IACR,WAAW,EAAE,6BAA6B;IAC1C,iBAAiB,EAAE;6CACwB;IAC3C,QAAQ,EAAE;QACR,MAAM;QACN,MAAM;QACN,KAAK;QACL,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,OAAO;QACP,WAAW;KACZ;IACD,KAAK,EAAE;QACL;YACE,KAAK,EAAE,WAAW;YAClB,OAAO,EAAE;;;;oCAIqB;SAC/B;QACD;YACE,KAAK,EAAE,WAAW;YAClB,OAAO,EAAE;;;;;8BAKe;SACzB;QACD;YACE,KAAK,EAAE,WAAW;YAClB,OAAO,EAAE;;;;gCAIiB;SAC3B;QACD;YACE,KAAK,EAAE,aAAa;YACpB,OAAO,EAAE;;;qCAGsB;SAChC;QACD;YACE,KAAK,EAAE,WAAW;YAClB,OAAO,EAAE;;;;;;;OAOR;SACF;KACF;IACD,YAAY,EAAE,wCAAwC;IACtD,KAAK,EAAE;QACL,uBAAuB;QACvB,sBAAsB;QACtB,4BAA4B;KAC7B;IACD,QAAQ,EAAE,KAAK;IACf,SAAS,EAAE,mBAAmB;CAC/B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"05-progress-tracking.d.ts","sourceRoot":"","sources":["../../src/skills/05-progress-tracking.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE/C,eAAO,MAAM,qBAAqB,EAAE,eAyEnC,CAAC"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.progressTrackingSkill = void 0;
|
|
4
|
+
exports.progressTrackingSkill = {
|
|
5
|
+
id: 'progress-tracking',
|
|
6
|
+
name: '进度跟踪',
|
|
7
|
+
nameEn: 'progress_tracking',
|
|
8
|
+
order: 5,
|
|
9
|
+
description: '实时更新任务状态,识别阻塞风险,保持项目透明度',
|
|
10
|
+
detailDescription: `在项目执行过程中持续跟踪进度:更新任务状态、识别延期风险、
|
|
11
|
+
记录阻塞原因、预测完成时间,确保团队对项目状态保持一致认知。`,
|
|
12
|
+
triggers: [
|
|
13
|
+
'进度跟踪',
|
|
14
|
+
'跟踪进度',
|
|
15
|
+
'进度更新',
|
|
16
|
+
'更新进度',
|
|
17
|
+
'项目进展',
|
|
18
|
+
'任务状态',
|
|
19
|
+
'完成了什么',
|
|
20
|
+
'还剩什么',
|
|
21
|
+
'/进度跟踪',
|
|
22
|
+
'@ethan 进度',
|
|
23
|
+
],
|
|
24
|
+
steps: [
|
|
25
|
+
{
|
|
26
|
+
title: '1. 状态同步',
|
|
27
|
+
content: `对任务列表中每个任务标注状态:
|
|
28
|
+
- ✅ **完成**:已验证通过
|
|
29
|
+
- 🔄 **进行中**:正在开发
|
|
30
|
+
- ⏸️ **阻塞**:有依赖未解除或遇到问题
|
|
31
|
+
- ⏳ **待开始**:排队中
|
|
32
|
+
- ❌ **取消**:不再需要(说明原因)`,
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
title: '2. 阻塞识别与处理',
|
|
36
|
+
content: `对每个阻塞任务:
|
|
37
|
+
- 描述阻塞原因(技术问题/依赖等待/需求不清晰)
|
|
38
|
+
- 阻塞开始时间
|
|
39
|
+
- 解除条件:「需要 [谁] 完成 [什么]」
|
|
40
|
+
- 影响评估:「阻塞会导致 [哪些任务] 延期 [多少时间]」`,
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
title: '3. 完成度统计',
|
|
44
|
+
content: `\`\`\`
|
|
45
|
+
总任务数:N
|
|
46
|
+
✅ 完成:X(X%)
|
|
47
|
+
🔄 进行中:Y
|
|
48
|
+
⏸️ 阻塞:Z
|
|
49
|
+
⏳ 待开始:W
|
|
50
|
+
|
|
51
|
+
预估完成时间:[日期] [置信度:高/中/低]
|
|
52
|
+
\`\`\``,
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
title: '4. 风险预警',
|
|
56
|
+
content: `识别以下风险并标注优先级:
|
|
57
|
+
- 🔴 **高风险**:当前阻塞影响关键路径,必须立即处理
|
|
58
|
+
- 🟡 **中风险**:有延期可能,需要关注
|
|
59
|
+
- 🟢 **低风险**:有 buffer,暂时观察`,
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
title: '5. 下一步行动',
|
|
63
|
+
content: `明确列出:
|
|
64
|
+
- **立即行动**(今天必须完成)
|
|
65
|
+
- **需要协调**(需要其他人配合)
|
|
66
|
+
- **待决策**(需要产品/技术负责人决定)`,
|
|
67
|
+
},
|
|
68
|
+
],
|
|
69
|
+
outputFormat: 'Markdown 状态看板,含任务状态列表、完成度统计、风险矩阵、下一步行动清单',
|
|
70
|
+
notes: [
|
|
71
|
+
'每天至少更新一次进度(即使没有变化也要说明)',
|
|
72
|
+
'阻塞问题第一时间暴露,不要等到 deadline 才说',
|
|
73
|
+
'进度更新要诚实,不要因为"看起来不好"而隐瞒风险',
|
|
74
|
+
],
|
|
75
|
+
category: '跟踪侧',
|
|
76
|
+
nextSkill: 'task-report',
|
|
77
|
+
};
|
|
78
|
+
//# sourceMappingURL=05-progress-tracking.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"05-progress-tracking.js","sourceRoot":"","sources":["../../src/skills/05-progress-tracking.ts"],"names":[],"mappings":";;;AAEa,QAAA,qBAAqB,GAAoB;IACpD,EAAE,EAAE,mBAAmB;IACvB,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,mBAAmB;IAC3B,KAAK,EAAE,CAAC;IACR,WAAW,EAAE,yBAAyB;IACtC,iBAAiB,EAAE;+BACU;IAC7B,QAAQ,EAAE;QACR,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,OAAO;QACP,MAAM;QACN,OAAO;QACP,WAAW;KACZ;IACD,KAAK,EAAE;QACL;YACE,KAAK,EAAE,SAAS;YAChB,OAAO,EAAE;;;;;sBAKO;SACjB;QACD;YACE,KAAK,EAAE,YAAY;YACnB,OAAO,EAAE;;;;gCAIiB;SAC3B;QACD;YACE,KAAK,EAAE,UAAU;YACjB,OAAO,EAAE;;;;;;;;OAQR;SACF;QACD;YACE,KAAK,EAAE,SAAS;YAChB,OAAO,EAAE;;;2BAGY;SACtB;QACD;YACE,KAAK,EAAE,UAAU;YACjB,OAAO,EAAE;;;wBAGS;SACnB;KACF;IACD,YAAY,EAAE,0CAA0C;IACxD,KAAK,EAAE;QACL,wBAAwB;QACxB,6BAA6B;QAC7B,0BAA0B;KAC3B;IACD,QAAQ,EAAE,KAAK;IACf,SAAS,EAAE,aAAa;CACzB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"06-task-report.d.ts","sourceRoot":"","sources":["../../src/skills/06-task-report.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE/C,eAAO,MAAM,eAAe,EAAE,eAuE7B,CAAC"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.taskReportSkill = void 0;
|
|
4
|
+
exports.taskReportSkill = {
|
|
5
|
+
id: 'task-report',
|
|
6
|
+
name: '任务报告',
|
|
7
|
+
nameEn: 'task_report',
|
|
8
|
+
order: 6,
|
|
9
|
+
description: '任务完成后生成总结报告,记录成果、问题和经验教训',
|
|
10
|
+
detailDescription: `在任务或阶段完成后,生成全面的总结报告:梳理完成情况、
|
|
11
|
+
遇到的问题和解决方式、技术债务、经验教训,为后续迭代提供参考。`,
|
|
12
|
+
triggers: [
|
|
13
|
+
'任务报告',
|
|
14
|
+
'生成报告',
|
|
15
|
+
'任务总结',
|
|
16
|
+
'总结报告',
|
|
17
|
+
'完成总结',
|
|
18
|
+
'项目总结',
|
|
19
|
+
'阶段总结',
|
|
20
|
+
'/任务报告',
|
|
21
|
+
'@ethan 报告',
|
|
22
|
+
],
|
|
23
|
+
steps: [
|
|
24
|
+
{
|
|
25
|
+
title: '1. 成果汇总',
|
|
26
|
+
content: `- 列出本次完成的所有功能点(对照原始需求)
|
|
27
|
+
- 说明是否满足所有验收条件
|
|
28
|
+
- 对比原计划:提前/按时/延期(延期说明原因)
|
|
29
|
+
- 关键交付物清单(代码链接、文档、部署地址)`,
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
title: '2. 问题复盘',
|
|
33
|
+
content: `对本次遇到的主要问题进行复盘:
|
|
34
|
+
|
|
35
|
+
| 问题描述 | 根本原因 | 解决方案 | 预防措施 |
|
|
36
|
+
|---------|---------|---------|---------|
|
|
37
|
+
| [问题] | [原因] | [解决] | [预防] |`,
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
title: '3. 技术债务记录',
|
|
41
|
+
content: `记录本次故意留下的技术债务(TODO/FIXME):
|
|
42
|
+
- 债务描述:[内容]
|
|
43
|
+
- 产生原因:[为什么现在不做]
|
|
44
|
+
- 影响范围:[哪些功能受影响]
|
|
45
|
+
- 计划处理时间:[迭代版本]`,
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
title: '4. 性能与质量指标',
|
|
49
|
+
content: `- 测试覆盖率:[X%]
|
|
50
|
+
- 已知 Bug:[数量及严重程度]
|
|
51
|
+
- 关键路径性能:[响应时间/吞吐量等]
|
|
52
|
+
- 代码审查意见处理:[X 条,已解决 Y 条]`,
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
title: '5. 经验教训(Lessons Learned)',
|
|
56
|
+
content: `**做得好的地方:**
|
|
57
|
+
- [值得在下次继续的做法]
|
|
58
|
+
|
|
59
|
+
**可以改进的地方:**
|
|
60
|
+
- [下次应该不同的做法]
|
|
61
|
+
|
|
62
|
+
**给团队的建议:**
|
|
63
|
+
- [可复用的最佳实践或工具]`,
|
|
64
|
+
},
|
|
65
|
+
],
|
|
66
|
+
outputFormat: 'Markdown 总结报告,含成果汇总、问题复盘表格、技术债务列表、质量指标、Lessons Learned',
|
|
67
|
+
notes: [
|
|
68
|
+
'报告面向不同读者(技术/产品/管理),注意分层表达',
|
|
69
|
+
'技术债务必须记录,不能以"以后再说"带过',
|
|
70
|
+
'Lessons Learned 重在行动可操作性,避免空话',
|
|
71
|
+
],
|
|
72
|
+
category: '输出侧',
|
|
73
|
+
nextSkill: 'weekly-report',
|
|
74
|
+
};
|
|
75
|
+
//# sourceMappingURL=06-task-report.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"06-task-report.js","sourceRoot":"","sources":["../../src/skills/06-task-report.ts"],"names":[],"mappings":";;;AAEa,QAAA,eAAe,GAAoB;IAC9C,EAAE,EAAE,aAAa;IACjB,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,aAAa;IACrB,KAAK,EAAE,CAAC;IACR,WAAW,EAAE,0BAA0B;IACvC,iBAAiB,EAAE;gCACW;IAC9B,QAAQ,EAAE;QACR,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,OAAO;QACP,WAAW;KACZ;IACD,KAAK,EAAE;QACL;YACE,KAAK,EAAE,SAAS;YAChB,OAAO,EAAE;;;wBAGS;SACnB;QACD;YACE,KAAK,EAAE,SAAS;YAChB,OAAO,EAAE;;;;8BAIe;SACzB;QACD;YACE,KAAK,EAAE,WAAW;YAClB,OAAO,EAAE;;;;gBAIC;SACX;QACD;YACE,KAAK,EAAE,YAAY;YACnB,OAAO,EAAE;;;yBAGU;SACpB;QACD;YACE,KAAK,EAAE,0BAA0B;YACjC,OAAO,EAAE;;;;;;;gBAOC;SACX;KACF;IACD,YAAY,EACV,wDAAwD;IAC1D,KAAK,EAAE;QACL,2BAA2B;QAC3B,sBAAsB;QACtB,+BAA+B;KAChC;IACD,QAAQ,EAAE,KAAK;IACf,SAAS,EAAE,eAAe;CAC3B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"07-weekly-report.d.ts","sourceRoot":"","sources":["../../src/skills/07-weekly-report.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE/C,eAAO,MAAM,iBAAiB,EAAE,eAgG/B,CAAC"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.weeklyReportSkill = void 0;
|
|
4
|
+
exports.weeklyReportSkill = {
|
|
5
|
+
id: 'weekly-report',
|
|
6
|
+
name: '周报生成',
|
|
7
|
+
nameEn: 'weekly_report',
|
|
8
|
+
order: 7,
|
|
9
|
+
description: '根据本周工作内容自动生成结构化周报,突出价值而非流水账',
|
|
10
|
+
detailDescription: `收集本周工作信息,生成专业的周报:聚焦业务价值而非技术细节,
|
|
11
|
+
突出完成了什么、解决了什么问题、下周计划,让不同层级的读者都能快速获取关键信息。`,
|
|
12
|
+
triggers: [
|
|
13
|
+
'周报',
|
|
14
|
+
'生成周报',
|
|
15
|
+
'写周报',
|
|
16
|
+
'周报生成',
|
|
17
|
+
'本周总结',
|
|
18
|
+
'周总结',
|
|
19
|
+
'weekly report',
|
|
20
|
+
'/周报',
|
|
21
|
+
'@ethan 周报',
|
|
22
|
+
],
|
|
23
|
+
steps: [
|
|
24
|
+
{
|
|
25
|
+
title: '1. 信息收集',
|
|
26
|
+
content: `请提供以下信息(可以是碎片化描述,我来整理):
|
|
27
|
+
- 本周完成了哪些任务/功能?
|
|
28
|
+
- 遇到了什么困难/问题?怎么解决的?
|
|
29
|
+
- 有没有超出预期完成的事情?
|
|
30
|
+
- 下周计划做什么?
|
|
31
|
+
- 有没有需要协调/升级的事项?`,
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
title: '2. 内容提炼原则',
|
|
35
|
+
content: `- **结果导向**:描述完成了什么,而非做了什么操作
|
|
36
|
+
- ❌「修改了登录接口的代码」
|
|
37
|
+
- ✅「完成登录功能优化,登录响应时间从 800ms 降至 200ms」
|
|
38
|
+
- **量化表达**:能用数字的地方用数字
|
|
39
|
+
- **价值关联**:说明工作对业务的意义`,
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
title: '3. 输出周报',
|
|
43
|
+
content: `按以下模板生成:
|
|
44
|
+
|
|
45
|
+
\`\`\`markdown
|
|
46
|
+
# 周报 - [日期范围]
|
|
47
|
+
|
|
48
|
+
## 本周完成
|
|
49
|
+
|
|
50
|
+
### 主要成果
|
|
51
|
+
1. **[功能/项目名]**:[一句话描述成果和价值]
|
|
52
|
+
2. ...
|
|
53
|
+
|
|
54
|
+
### 技术攻坚
|
|
55
|
+
- [解决了什么难题,用了什么方案]
|
|
56
|
+
|
|
57
|
+
## 问题与风险
|
|
58
|
+
- ⚠️ [当前面临的问题或风险,是否需要支持]
|
|
59
|
+
|
|
60
|
+
## 下周计划
|
|
61
|
+
1. [任务] - [预期完成时间]
|
|
62
|
+
2. ...
|
|
63
|
+
|
|
64
|
+
## 需要协调
|
|
65
|
+
- [需要其他人/团队配合的事项]
|
|
66
|
+
\`\`\``,
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
title: '4. 多版本适配',
|
|
70
|
+
content: `根据读者不同,调整详细程度:
|
|
71
|
+
- **团队版**:包含技术细节和具体数字
|
|
72
|
+
- **管理层版**:聚焦业务价值和风险,去掉技术细节
|
|
73
|
+
- **外部同步版**:只保留里程碑级进展`,
|
|
74
|
+
},
|
|
75
|
+
],
|
|
76
|
+
outputFormat: 'Markdown 周报文档,含本周成果、技术攻坚、问题风险、下周计划、协调事项',
|
|
77
|
+
examples: [
|
|
78
|
+
{
|
|
79
|
+
input: '本周做了登录功能,遇到了 token 过期的问题,下周做注册',
|
|
80
|
+
output: `# 周报 - 2024/01/15 - 2024/01/19
|
|
81
|
+
|
|
82
|
+
## 本周完成
|
|
83
|
+
|
|
84
|
+
### 主要成果
|
|
85
|
+
1. **用户登录功能**:完成前后端联调,支持账号密码登录,已上测试环境
|
|
86
|
+
|
|
87
|
+
### 技术攻坚
|
|
88
|
+
- 解决 JWT Token 静默刷新问题:实现 RefreshToken 机制,用户无感知续期,避免频繁重新登录
|
|
89
|
+
|
|
90
|
+
## 下周计划
|
|
91
|
+
1. 用户注册功能 - 周三前完成开发,周五完成测试`,
|
|
92
|
+
},
|
|
93
|
+
],
|
|
94
|
+
notes: [
|
|
95
|
+
'周报不是日志,不要列流水账,聚焦有意义的事情',
|
|
96
|
+
'困难和风险要如实汇报,不要只报好消息',
|
|
97
|
+
'下周计划要具体且可追溯,不要写「继续推进 XX」',
|
|
98
|
+
],
|
|
99
|
+
category: '输出侧',
|
|
100
|
+
};
|
|
101
|
+
//# sourceMappingURL=07-weekly-report.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"07-weekly-report.js","sourceRoot":"","sources":["../../src/skills/07-weekly-report.ts"],"names":[],"mappings":";;;AAEa,QAAA,iBAAiB,GAAoB;IAChD,EAAE,EAAE,eAAe;IACnB,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,eAAe;IACvB,KAAK,EAAE,CAAC;IACR,WAAW,EAAE,6BAA6B;IAC1C,iBAAiB,EAAE;yCACoB;IACvC,QAAQ,EAAE;QACR,IAAI;QACJ,MAAM;QACN,KAAK;QACL,MAAM;QACN,MAAM;QACN,KAAK;QACL,eAAe;QACf,KAAK;QACL,WAAW;KACZ;IACD,KAAK,EAAE;QACL;YACE,KAAK,EAAE,SAAS;YAChB,OAAO,EAAE;;;;;iBAKE;SACZ;QACD;YACE,KAAK,EAAE,WAAW;YAClB,OAAO,EAAE;;;;sBAIO;SACjB;QACD;YACE,KAAK,EAAE,SAAS;YAChB,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;OAuBR;SACF;QACD;YACE,KAAK,EAAE,UAAU;YACjB,OAAO,EAAE;;;sBAGO;SACjB;KACF;IACD,YAAY,EAAE,yCAAyC;IACvD,QAAQ,EAAE;QACR;YACE,KAAK,EAAE,gCAAgC;YACvC,MAAM,EAAE;;;;;;;;;;;2BAWa;SACtB;KACF;IACD,KAAK,EAAE;QACL,wBAAwB;QACxB,oBAAoB;QACpB,0BAA0B;KAC3B;IACD,QAAQ,EAAE,KAAK;CAChB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"08-code-review.d.ts","sourceRoot":"","sources":["../../src/skills/08-code-review.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE/C,eAAO,MAAM,eAAe,EAAE,eAoI7B,CAAC"}
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.codeReviewSkill = void 0;
|
|
4
|
+
exports.codeReviewSkill = {
|
|
5
|
+
id: 'code-review',
|
|
6
|
+
name: '代码审查',
|
|
7
|
+
nameEn: 'code_review',
|
|
8
|
+
order: 8,
|
|
9
|
+
description: '系统性审查代码变更,分级输出 Blocker/Major/Minor 问题,提升代码质量',
|
|
10
|
+
detailDescription: `对代码变更进行系统性审查,覆盖正确性、安全性、性能、可维护性和规范性五个维度,
|
|
11
|
+
按 Blocker/Major/Minor 三级分类输出问题,并给出具体改进建议。`,
|
|
12
|
+
triggers: [
|
|
13
|
+
'代码审查',
|
|
14
|
+
'code review',
|
|
15
|
+
'CR',
|
|
16
|
+
'帮我 review',
|
|
17
|
+
'帮我看看代码',
|
|
18
|
+
'审查代码',
|
|
19
|
+
'review 一下',
|
|
20
|
+
'代码 review',
|
|
21
|
+
'/代码审查',
|
|
22
|
+
'@ethan review',
|
|
23
|
+
],
|
|
24
|
+
steps: [
|
|
25
|
+
{
|
|
26
|
+
title: '1. 理解变更意图',
|
|
27
|
+
content: `- 阅读 PR 描述或变更说明,明确本次改动的**业务目标**
|
|
28
|
+
- 识别变更范围:新功能 / Bug 修复 / 重构 / 性能优化 / 配置调整
|
|
29
|
+
- 确认是否有对应的需求文档、设计文档或 Issue
|
|
30
|
+
- 了解测试覆盖情况(单测/集成测试)`,
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
title: '2. 逐层审查',
|
|
34
|
+
content: `按以下五个维度逐一检查:
|
|
35
|
+
|
|
36
|
+
**✅ 正确性**
|
|
37
|
+
- 逻辑是否正确,边界条件是否处理(null/undefined/空数组/越界)
|
|
38
|
+
- 并发/异步场景是否有竞态条件
|
|
39
|
+
- 错误处理是否完备
|
|
40
|
+
|
|
41
|
+
**🔒 安全性**
|
|
42
|
+
- 是否存在 SQL 注入、XSS、CSRF 等 OWASP Top 10 风险
|
|
43
|
+
- 敏感信息(密钥、密码)是否硬编码
|
|
44
|
+
- 权限校验是否完整
|
|
45
|
+
|
|
46
|
+
**⚡ 性能**
|
|
47
|
+
- 是否有 N+1 查询、不必要的全量加载
|
|
48
|
+
- 循环内是否有重复计算或 DOM 操作
|
|
49
|
+
- 是否缺少必要的缓存或索引
|
|
50
|
+
|
|
51
|
+
**🔧 可维护性**
|
|
52
|
+
- 函数/类职责是否单一
|
|
53
|
+
- 命名是否清晰表达意图
|
|
54
|
+
- 是否有重复代码(DRY 原则)
|
|
55
|
+
- 复杂逻辑是否有注释说明
|
|
56
|
+
|
|
57
|
+
**📏 规范性**
|
|
58
|
+
- 是否符合项目代码风格(命名、格式、文件结构)
|
|
59
|
+
- 是否有缺失的测试用例
|
|
60
|
+
- API 变更是否更新了文档`,
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
title: '3. 按级别分类问题',
|
|
64
|
+
content: `将发现的问题按以下三级分类:
|
|
65
|
+
|
|
66
|
+
- 🚫 **Blocker**:必须修复才能合并(功能错误、安全漏洞、数据丢失风险)
|
|
67
|
+
- ⚠️ **Major**:强烈建议修复(性能问题、可维护性严重不足、测试缺失)
|
|
68
|
+
- 💡 **Minor**:建议改进(代码风格、命名优化、注释补充)
|
|
69
|
+
|
|
70
|
+
每个问题标注:文件名 + 行号 + 问题描述 + 改进建议`,
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
title: '4. 输出审查报告',
|
|
74
|
+
content: `按以下格式输出:
|
|
75
|
+
|
|
76
|
+
\`\`\`markdown
|
|
77
|
+
## Code Review 报告
|
|
78
|
+
|
|
79
|
+
### 总体评价
|
|
80
|
+
[1-3 句话概述代码质量和主要问题]
|
|
81
|
+
|
|
82
|
+
### 🚫 Blocker(必须修复)
|
|
83
|
+
- [ ] \`file.ts:42\` 未校验用户输入直接拼接 SQL,存在注入风险
|
|
84
|
+
建议:使用参数化查询
|
|
85
|
+
|
|
86
|
+
### ⚠️ Major(建议修复)
|
|
87
|
+
- [ ] \`service.ts:88\` N+1 查询:循环内调用数据库
|
|
88
|
+
建议:改用批量查询 + Map 映射
|
|
89
|
+
|
|
90
|
+
### 💡 Minor(可选优化)
|
|
91
|
+
- [ ] \`utils.ts:15\` 变量名 \`d\` 含义不清晰
|
|
92
|
+
建议:改为 \`duration\`
|
|
93
|
+
|
|
94
|
+
### ✅ 做得好的地方
|
|
95
|
+
- [值得肯定的设计或实现]
|
|
96
|
+
|
|
97
|
+
### 总结
|
|
98
|
+
Blocker: X 个 | Major: Y 个 | Minor: Z 个
|
|
99
|
+
\`\`\``,
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
title: '5. 跟进确认',
|
|
103
|
+
content: `- 如果有 Blocker,明确告知不应合并,等修复后重新 Review
|
|
104
|
+
- 如果只有 Minor,可以 Approve 并备注"建议改进但不阻塞"
|
|
105
|
+
- 对于设计层面的分歧,建议另开会议讨论,不在 PR 中反复拉锯`,
|
|
106
|
+
},
|
|
107
|
+
],
|
|
108
|
+
outputFormat: 'Markdown 审查报告,含总体评价、分级问题列表(Blocker/Major/Minor)、亮点肯定和合并建议',
|
|
109
|
+
examples: [
|
|
110
|
+
{
|
|
111
|
+
input: '帮我 review 这个登录接口的实现',
|
|
112
|
+
output: `## Code Review 报告
|
|
113
|
+
|
|
114
|
+
### 总体评价
|
|
115
|
+
逻辑基本正确,但存在一个安全 Blocker(明文存储密码)和两个 Major 问题。
|
|
116
|
+
|
|
117
|
+
### 🚫 Blocker(必须修复)
|
|
118
|
+
- [ ] \`auth.ts:23\` 密码未加密直接存储数据库
|
|
119
|
+
建议:使用 bcrypt 或 argon2 做哈希处理
|
|
120
|
+
|
|
121
|
+
### ⚠️ Major(建议修复)
|
|
122
|
+
- [ ] \`auth.ts:45\` 登录失败未做次数限制,易受暴力破解
|
|
123
|
+
建议:引入 rate limiting 或账号锁定机制
|
|
124
|
+
|
|
125
|
+
### 总结
|
|
126
|
+
Blocker: 1 个 | Major: 1 个 | Minor: 0 个`,
|
|
127
|
+
},
|
|
128
|
+
],
|
|
129
|
+
notes: [
|
|
130
|
+
'Review 的目的是提升代码质量,不是否定作者,保持建设性语气',
|
|
131
|
+
'Blocker 必须明确标注,避免重要问题被忽视',
|
|
132
|
+
'超过 400 行的 PR 建议拆分后分批 Review',
|
|
133
|
+
],
|
|
134
|
+
category: '质量侧',
|
|
135
|
+
};
|
|
136
|
+
//# sourceMappingURL=08-code-review.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"08-code-review.js","sourceRoot":"","sources":["../../src/skills/08-code-review.ts"],"names":[],"mappings":";;;AAEa,QAAA,eAAe,GAAoB;IAC9C,EAAE,EAAE,aAAa;IACjB,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,aAAa;IACrB,KAAK,EAAE,CAAC;IACR,WAAW,EAAE,8CAA8C;IAC3D,iBAAiB,EAAE;0CACqB;IACxC,QAAQ,EAAE;QACR,MAAM;QACN,aAAa;QACb,IAAI;QACJ,WAAW;QACX,QAAQ;QACR,MAAM;QACN,WAAW;QACX,WAAW;QACX,OAAO;QACP,eAAe;KAChB;IACD,KAAK,EAAE;QACL;YACE,KAAK,EAAE,WAAW;YAClB,OAAO,EAAE;;;oBAGK;SACf;QACD;YACE,KAAK,EAAE,SAAS;YAChB,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;gBA0BC;SACX;QACD;YACE,KAAK,EAAE,YAAY;YACnB,OAAO,EAAE;;;;;;8BAMe;SACzB;QACD;YACE,KAAK,EAAE,WAAW;YAClB,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;OAyBR;SACF;QACD;YACE,KAAK,EAAE,SAAS;YAChB,OAAO,EAAE;;iCAEkB;SAC5B;KACF;IACD,YAAY,EACV,2DAA2D;IAC7D,QAAQ,EAAE;QACR;YACE,KAAK,EAAE,qBAAqB;YAC5B,MAAM,EAAE;;;;;;;;;;;;;;uCAcyB;SAClC;KACF;IACD,KAAK,EAAE;QACL,kCAAkC;QAClC,0BAA0B;QAC1B,6BAA6B;KAC9B;IACD,QAAQ,EAAE,KAAK;CAChB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"09-debug.d.ts","sourceRoot":"","sources":["../../src/skills/09-debug.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE/C,eAAO,MAAM,UAAU,EAAE,eAmJxB,CAAC"}
|