ethan-skill 1.0.0 → 1.2.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/dist/cli/config.d.ts +26 -0
- package/dist/cli/config.d.ts.map +1 -0
- package/dist/cli/config.js +74 -0
- package/dist/cli/config.js.map +1 -0
- package/dist/cli/index.d.ts +1 -1
- package/dist/cli/index.js +606 -62
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/update-check.d.ts +11 -0
- package/dist/cli/update-check.d.ts.map +1 -0
- package/dist/cli/update-check.js +128 -0
- package/dist/cli/update-check.js.map +1 -0
- package/dist/context/detector.d.ts +25 -0
- package/dist/context/detector.d.ts.map +1 -0
- package/dist/context/detector.js +230 -0
- package/dist/context/detector.js.map +1 -0
- package/dist/ethan-skill-1.0.0.vsix +0 -0
- package/dist/ethan-skill-1.1.0.vsix +0 -0
- package/dist/loader/custom-skill-loader.d.ts +15 -0
- package/dist/loader/custom-skill-loader.d.ts.map +1 -0
- package/dist/loader/custom-skill-loader.js +158 -0
- package/dist/loader/custom-skill-loader.js.map +1 -0
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +152 -2
- package/dist/mcp/server.js.map +1 -1
- package/dist/server/dashboard.d.ts +2 -0
- package/dist/server/dashboard.d.ts.map +1 -0
- package/dist/server/dashboard.js +573 -0
- package/dist/server/dashboard.js.map +1 -0
- package/dist/skills/01-requirement.d.ts.map +1 -1
- package/dist/skills/01-requirement.js +4 -0
- package/dist/skills/01-requirement.js.map +1 -1
- package/dist/skills/02-task-breakdown.d.ts.map +1 -1
- package/dist/skills/02-task-breakdown.js +4 -0
- package/dist/skills/02-task-breakdown.js.map +1 -1
- package/dist/skills/03-design.d.ts.map +1 -1
- package/dist/skills/03-design.js +4 -0
- package/dist/skills/03-design.js.map +1 -1
- package/dist/skills/04-implementation.d.ts.map +1 -1
- package/dist/skills/04-implementation.js +4 -0
- package/dist/skills/04-implementation.js.map +1 -1
- package/dist/skills/05-progress-tracking.d.ts.map +1 -1
- package/dist/skills/05-progress-tracking.js +4 -0
- package/dist/skills/05-progress-tracking.js.map +1 -1
- package/dist/skills/06-task-report.d.ts.map +1 -1
- package/dist/skills/06-task-report.js +4 -0
- package/dist/skills/06-task-report.js.map +1 -1
- package/dist/skills/07-weekly-report.d.ts.map +1 -1
- package/dist/skills/07-weekly-report.js +3 -0
- package/dist/skills/07-weekly-report.js.map +1 -1
- package/dist/skills/08-code-review.d.ts.map +1 -1
- package/dist/skills/08-code-review.js +2 -0
- package/dist/skills/08-code-review.js.map +1 -1
- package/dist/skills/09-debug.d.ts.map +1 -1
- package/dist/skills/09-debug.js +3 -0
- package/dist/skills/09-debug.js.map +1 -1
- package/dist/skills/10-tech-research.d.ts.map +1 -1
- package/dist/skills/10-tech-research.js +4 -0
- package/dist/skills/10-tech-research.js.map +1 -1
- package/dist/skills/types.d.ts +4 -0
- package/dist/skills/types.d.ts.map +1 -1
- package/dist/templates/copilot-md.template.d.ts.map +1 -1
- package/dist/templates/copilot-md.template.js +107 -26
- package/dist/templates/copilot-md.template.js.map +1 -1
- package/dist/vscode/router/trigger-router.d.ts +16 -0
- package/dist/vscode/router/trigger-router.d.ts.map +1 -0
- package/dist/vscode/router/trigger-router.js +45 -0
- package/dist/vscode/router/trigger-router.js.map +1 -0
- package/dist/vscode/skills/01-requirement.d.ts +3 -0
- package/dist/vscode/skills/01-requirement.d.ts.map +1 -0
- package/dist/vscode/skills/01-requirement.js +104 -0
- package/dist/vscode/skills/01-requirement.js.map +1 -0
- package/dist/vscode/skills/02-task-breakdown.d.ts +3 -0
- package/dist/vscode/skills/02-task-breakdown.d.ts.map +1 -0
- package/dist/vscode/skills/02-task-breakdown.js +86 -0
- package/dist/vscode/skills/02-task-breakdown.js.map +1 -0
- package/dist/vscode/skills/03-design.d.ts +3 -0
- package/dist/vscode/skills/03-design.d.ts.map +1 -0
- package/dist/vscode/skills/03-design.js +84 -0
- package/dist/vscode/skills/03-design.js.map +1 -0
- package/dist/vscode/skills/04-implementation.d.ts +3 -0
- package/dist/vscode/skills/04-implementation.d.ts.map +1 -0
- package/dist/vscode/skills/04-implementation.js +81 -0
- package/dist/vscode/skills/04-implementation.js.map +1 -0
- package/dist/vscode/skills/05-progress-tracking.d.ts +3 -0
- package/dist/vscode/skills/05-progress-tracking.d.ts.map +1 -0
- package/dist/vscode/skills/05-progress-tracking.js +82 -0
- package/dist/vscode/skills/05-progress-tracking.js.map +1 -0
- package/dist/vscode/skills/06-task-report.d.ts +3 -0
- package/dist/vscode/skills/06-task-report.d.ts.map +1 -0
- package/dist/vscode/skills/06-task-report.js +79 -0
- package/dist/vscode/skills/06-task-report.js.map +1 -0
- package/dist/vscode/skills/07-weekly-report.d.ts +3 -0
- package/dist/vscode/skills/07-weekly-report.d.ts.map +1 -0
- package/dist/vscode/skills/07-weekly-report.js +104 -0
- package/dist/vscode/skills/07-weekly-report.js.map +1 -0
- package/dist/vscode/skills/08-code-review.d.ts +3 -0
- package/dist/vscode/skills/08-code-review.d.ts.map +1 -0
- package/dist/vscode/skills/08-code-review.js +138 -0
- package/dist/vscode/skills/08-code-review.js.map +1 -0
- package/dist/vscode/skills/09-debug.d.ts +3 -0
- package/dist/vscode/skills/09-debug.d.ts.map +1 -0
- package/dist/vscode/skills/09-debug.js +154 -0
- package/dist/vscode/skills/09-debug.js.map +1 -0
- package/dist/vscode/skills/10-tech-research.d.ts +3 -0
- package/dist/vscode/skills/10-tech-research.d.ts.map +1 -0
- package/dist/vscode/skills/10-tech-research.js +145 -0
- package/dist/vscode/skills/10-tech-research.js.map +1 -0
- package/dist/vscode/skills/index.d.ts +18 -0
- package/dist/vscode/skills/index.d.ts.map +1 -0
- package/dist/vscode/skills/index.js +51 -0
- package/dist/vscode/skills/index.js.map +1 -0
- package/dist/vscode/skills/pipeline.d.ts +15 -0
- package/dist/vscode/skills/pipeline.d.ts.map +1 -0
- package/dist/vscode/skills/pipeline.js +55 -0
- package/dist/vscode/skills/pipeline.js.map +1 -0
- package/dist/vscode/skills/types.d.ts +64 -0
- package/dist/vscode/skills/types.d.ts.map +1 -0
- package/dist/vscode/skills/types.js +7 -0
- package/dist/vscode/skills/types.js.map +1 -0
- package/dist/vscode/vscode/commands.d.ts +63 -0
- package/dist/vscode/vscode/commands.d.ts.map +1 -0
- package/dist/vscode/vscode/commands.js +428 -0
- package/dist/vscode/vscode/commands.js.map +1 -0
- package/dist/vscode/vscode/extension.d.ts +4 -0
- package/dist/vscode/vscode/extension.d.ts.map +1 -0
- package/dist/vscode/vscode/extension.js +103 -0
- package/dist/vscode/vscode/extension.js.map +1 -0
- package/dist/workflow/state.d.ts +48 -0
- package/dist/workflow/state.d.ts.map +1 -0
- package/dist/workflow/state.js +162 -0
- package/dist/workflow/state.js.map +1 -0
- package/package.json +7 -3
- package/rules/claude-code/CLAUDE.md +12 -12
- package/rules/cline/.clinerules +3 -3
- package/rules/codebuddy/CODEBUDDY.md +12 -12
- package/rules/continue/.continuerules +3 -3
- package/rules/copilot/copilot-instructions.md +12 -12
- package/rules/cursor/.cursorrules +12 -12
- package/rules/cursor/smart-flow.mdc +12 -12
- package/rules/jetbrains/smart-flow.md +12 -12
- package/rules/lingma/smart-flow.md +2 -2
- package/rules/windsurf/.windsurf/rules/smart-flow.md +12 -12
- package/rules/zed/smart-flow.rules +1 -1
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.routeTrigger = routeTrigger;
|
|
4
|
+
exports.getTriggerMap = getTriggerMap;
|
|
5
|
+
const index_1 = require("../skills/index");
|
|
6
|
+
/**
|
|
7
|
+
* 根据用户输入路由到对应 Skill
|
|
8
|
+
* 优先精确匹配,其次模糊匹配
|
|
9
|
+
*/
|
|
10
|
+
function routeTrigger(input) {
|
|
11
|
+
const normalized = input.trim().toLowerCase();
|
|
12
|
+
if (normalized.length === 0)
|
|
13
|
+
return null;
|
|
14
|
+
// 精确匹配:输入完全等于某个触发词
|
|
15
|
+
for (const skill of index_1.ALL_SKILLS) {
|
|
16
|
+
for (const trigger of skill.triggers) {
|
|
17
|
+
if (normalized === trigger.toLowerCase()) {
|
|
18
|
+
return { skill, matchedTrigger: trigger, confidence: 'exact' };
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
// 部分匹配:输入包含触发词,或触发词包含在输入中
|
|
23
|
+
for (const skill of index_1.ALL_SKILLS) {
|
|
24
|
+
for (const trigger of skill.triggers) {
|
|
25
|
+
const t = trigger.toLowerCase();
|
|
26
|
+
if (normalized.includes(t) || t.includes(normalized)) {
|
|
27
|
+
return { skill, matchedTrigger: trigger, confidence: 'partial' };
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
return null;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* 获取所有触发词映射表(用于展示和调试)
|
|
35
|
+
*/
|
|
36
|
+
function getTriggerMap() {
|
|
37
|
+
const map = new Map();
|
|
38
|
+
for (const skill of index_1.ALL_SKILLS) {
|
|
39
|
+
for (const trigger of skill.triggers) {
|
|
40
|
+
map.set(trigger.toLowerCase(), skill);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
return map;
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=trigger-router.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trigger-router.js","sourceRoot":"","sources":["../../../src/router/trigger-router.ts"],"names":[],"mappings":";;AAaA,oCAwBC;AAKD,sCAQC;AAjDD,2CAA6C;AAQ7C;;;GAGG;AACH,SAAgB,YAAY,CAAC,KAAa;IACxC,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC9C,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAEzC,mBAAmB;IACnB,KAAK,MAAM,KAAK,IAAI,kBAAU,EAAE,CAAC;QAC/B,KAAK,MAAM,OAAO,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YACrC,IAAI,UAAU,KAAK,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;gBACzC,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;YACjE,CAAC;QACH,CAAC;IACH,CAAC;IAED,0BAA0B;IAC1B,KAAK,MAAM,KAAK,IAAI,kBAAU,EAAE,CAAC;QAC/B,KAAK,MAAM,OAAO,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YACrC,MAAM,CAAC,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;YAChC,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;gBACrD,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC;YACnE,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,SAAgB,aAAa;IAC3B,MAAM,GAAG,GAAG,IAAI,GAAG,EAA2B,CAAC;IAC/C,KAAK,MAAM,KAAK,IAAI,kBAAU,EAAE,CAAC;QAC/B,KAAK,MAAM,OAAO,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YACrC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,KAAK,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"01-requirement.d.ts","sourceRoot":"","sources":["../../../src/skills/01-requirement.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE/C,eAAO,MAAM,gBAAgB,EAAE,eAoG9B,CAAC"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.requirementSkill = void 0;
|
|
4
|
+
exports.requirementSkill = {
|
|
5
|
+
id: 'requirement-understanding',
|
|
6
|
+
name: '需求理解',
|
|
7
|
+
nameEn: 'requirement_understanding',
|
|
8
|
+
order: 1,
|
|
9
|
+
description: '深度解析用户需求,消除歧义,输出结构化需求文档',
|
|
10
|
+
descriptionEn: 'Deeply analyze requirements, eliminate ambiguity, output structured requirement doc',
|
|
11
|
+
detailDescription: `当用户提出需求时,执行深度需求理解流程:分析核心目标、识别隐含需求、
|
|
12
|
+
消除歧义点,最终输出结构化的需求确认文档,确保开发方向正确。`,
|
|
13
|
+
triggers: [
|
|
14
|
+
'需求理解',
|
|
15
|
+
'理解需求',
|
|
16
|
+
'分析需求',
|
|
17
|
+
'需求分析',
|
|
18
|
+
'我需要',
|
|
19
|
+
'帮我做',
|
|
20
|
+
'实现一个',
|
|
21
|
+
'开发一个',
|
|
22
|
+
'/需求理解',
|
|
23
|
+
'@ethan 需求',
|
|
24
|
+
'requirement analysis',
|
|
25
|
+
'analyze requirements',
|
|
26
|
+
'@ethan requirement',
|
|
27
|
+
],
|
|
28
|
+
steps: [
|
|
29
|
+
{
|
|
30
|
+
title: '1. 提取核心诉求',
|
|
31
|
+
content: `- 用一句话总结用户最终想实现的**业务目标**
|
|
32
|
+
- 区分"功能需求"(要做什么)与"非功能需求"(性能、安全、兼容性等)
|
|
33
|
+
- 识别隐含的技术约束(语言栈、框架版本、部署环境)`,
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
title: '2. 识别歧义与缺失信息',
|
|
37
|
+
content: `- 列出所有**不明确**的地方(用 ❓ 标记)
|
|
38
|
+
- 列出**缺失**但必须明确的信息(用 ⚠️ 标记)
|
|
39
|
+
- 最多提出 3 个最关键的澄清问题,避免信息过载`,
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
title: '3. 假设声明',
|
|
43
|
+
content: `- 对于无法立即澄清的歧义,明确列出你的**假设前提**
|
|
44
|
+
- 格式:「假设 X,如果实际是 Y,则需要调整 Z」`,
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
title: '4. 输出结构化需求文档',
|
|
48
|
+
content: `按以下模板输出:
|
|
49
|
+
|
|
50
|
+
\`\`\`markdown
|
|
51
|
+
## 需求理解确认
|
|
52
|
+
|
|
53
|
+
### 核心目标
|
|
54
|
+
[一句话描述]
|
|
55
|
+
|
|
56
|
+
### 功能需求
|
|
57
|
+
- [ ] 功能点 1
|
|
58
|
+
- [ ] 功能点 2
|
|
59
|
+
|
|
60
|
+
### 非功能需求
|
|
61
|
+
- 性能:[描述]
|
|
62
|
+
- 兼容性:[描述]
|
|
63
|
+
|
|
64
|
+
### 技术约束
|
|
65
|
+
- [约束条件]
|
|
66
|
+
|
|
67
|
+
### 待澄清问题
|
|
68
|
+
❓ 1. [问题]
|
|
69
|
+
⚠️ 2. [缺失信息]
|
|
70
|
+
|
|
71
|
+
### 当前假设
|
|
72
|
+
- 假设 [A],如果实际是 [B],则 [调整]
|
|
73
|
+
\`\`\``,
|
|
74
|
+
},
|
|
75
|
+
],
|
|
76
|
+
outputFormat: 'Markdown 结构化文档,包含核心目标、功能需求列表、非功能需求、技术约束、待澄清问题和假设声明',
|
|
77
|
+
examples: [
|
|
78
|
+
{
|
|
79
|
+
input: '帮我做一个用户登录功能',
|
|
80
|
+
output: `## 需求理解确认
|
|
81
|
+
|
|
82
|
+
### 核心目标
|
|
83
|
+
实现安全的用户身份认证,允许用户通过账号密码登录系统。
|
|
84
|
+
|
|
85
|
+
### 功能需求
|
|
86
|
+
- [ ] 用户名/邮箱 + 密码登录
|
|
87
|
+
- [ ] 登录失败错误提示
|
|
88
|
+
- [ ] 登录状态持久化(记住登录)
|
|
89
|
+
|
|
90
|
+
### 待澄清问题
|
|
91
|
+
❓ 1. 是否需要支持第三方登录(微信、GitHub)?
|
|
92
|
+
❓ 2. Token 有效期要求?
|
|
93
|
+
⚠️ 3. 后端 API 是否已有,还是需要一起实现?`,
|
|
94
|
+
},
|
|
95
|
+
],
|
|
96
|
+
notes: [
|
|
97
|
+
'不要急于给出解决方案,先确保完全理解需求',
|
|
98
|
+
'澄清问题不超过 3 个,聚焦最关键的',
|
|
99
|
+
'假设声明必须明确,避免隐式假设导致方向偏差',
|
|
100
|
+
],
|
|
101
|
+
category: '需求侧',
|
|
102
|
+
nextSkill: 'task-breakdown',
|
|
103
|
+
};
|
|
104
|
+
//# sourceMappingURL=01-requirement.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"01-requirement.js","sourceRoot":"","sources":["../../../src/skills/01-requirement.ts"],"names":[],"mappings":";;;AAEa,QAAA,gBAAgB,GAAoB;IAC/C,EAAE,EAAE,2BAA2B;IAC/B,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,2BAA2B;IACnC,KAAK,EAAE,CAAC;IACR,WAAW,EAAE,yBAAyB;IACtC,aAAa,EAAE,qFAAqF;IACpG,iBAAiB,EAAE;+BACU;IAC7B,QAAQ,EAAE;QACR,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,KAAK;QACL,KAAK;QACL,MAAM;QACN,MAAM;QACN,OAAO;QACP,WAAW;QACX,sBAAsB;QACtB,sBAAsB;QACtB,oBAAoB;KACrB;IACD,KAAK,EAAE;QACL;YACE,KAAK,EAAE,WAAW;YAClB,OAAO,EAAE;;2BAEY;SACtB;QACD;YACE,KAAK,EAAE,cAAc;YACrB,OAAO,EAAE;;0BAEW;SACrB;QACD;YACE,KAAK,EAAE,SAAS;YAChB,OAAO,EAAE;4BACa;SACvB;QACD;YACE,KAAK,EAAE,cAAc;YACrB,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;OAyBR;SACF;KACF;IACD,YAAY,EACV,oDAAoD;IACtD,QAAQ,EAAE;QACR;YACE,KAAK,EAAE,aAAa;YACpB,MAAM,EAAE;;;;;;;;;;;;;4BAac;SACvB;KACF;IACD,KAAK,EAAE;QACL,sBAAsB;QACtB,oBAAoB;QACpB,uBAAuB;KACxB;IACD,QAAQ,EAAE,KAAK;IACf,SAAS,EAAE,gBAAgB;CAC5B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"02-task-breakdown.d.ts","sourceRoot":"","sources":["../../../src/skills/02-task-breakdown.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE/C,eAAO,MAAM,kBAAkB,EAAE,eAiFhC,CAAC"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.taskBreakdownSkill = void 0;
|
|
4
|
+
exports.taskBreakdownSkill = {
|
|
5
|
+
id: 'task-breakdown',
|
|
6
|
+
name: '任务拆解',
|
|
7
|
+
nameEn: 'task_breakdown',
|
|
8
|
+
order: 2,
|
|
9
|
+
description: '将复杂需求拆解为可执行的原子任务,建立依赖关系和优先级',
|
|
10
|
+
descriptionEn: 'Break down requirements into atomic tasks with dependency mapping',
|
|
11
|
+
detailDescription: `将已理解的需求拆解为具体可执行的任务列表,建立任务间的依赖关系,
|
|
12
|
+
评估复杂度,制定合理的执行顺序,为后续实现提供清晰路线图。`,
|
|
13
|
+
triggers: [
|
|
14
|
+
'任务拆解',
|
|
15
|
+
'拆解任务',
|
|
16
|
+
'拆分任务',
|
|
17
|
+
'制定计划',
|
|
18
|
+
'任务规划',
|
|
19
|
+
'怎么实现',
|
|
20
|
+
'实现步骤',
|
|
21
|
+
'/任务拆解',
|
|
22
|
+
'@ethan 拆解',
|
|
23
|
+
'task breakdown',
|
|
24
|
+
'break down',
|
|
25
|
+
'@ethan breakdown',
|
|
26
|
+
],
|
|
27
|
+
steps: [
|
|
28
|
+
{
|
|
29
|
+
title: '1. 识别主要模块',
|
|
30
|
+
content: `- 将需求按**功能域**或**技术层**划分为 3-7 个主要模块
|
|
31
|
+
- 每个模块用一行说明其职责
|
|
32
|
+
- 标注模块类型:[前端 UI] [后端 API] [数据库] [基础设施] [测试]`,
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
title: '2. 拆解为原子任务',
|
|
36
|
+
content: `- 每个原子任务满足:**单人、半天内可完成**
|
|
37
|
+
- 任务命名格式:「动词 + 对象 + 可选限定」
|
|
38
|
+
- ✅ 「实现用户登录 API(POST /auth/login)」
|
|
39
|
+
- ❌ 「做登录」(太模糊)
|
|
40
|
+
- 标注预估工时:[S=2h] [M=4h] [L=8h] [XL=需再拆]`,
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
title: '3. 建立依赖关系',
|
|
44
|
+
content: `- 用 → 表示依赖:「A → B」意为「完成 A 才能开始 B」
|
|
45
|
+
- 识别可以**并行**执行的任务组
|
|
46
|
+
- 找出**关键路径**(决定最短完成时间的任务链)`,
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
title: '4. 输出任务清单',
|
|
50
|
+
content: `按以下格式输出:
|
|
51
|
+
|
|
52
|
+
\`\`\`markdown
|
|
53
|
+
## 任务拆解
|
|
54
|
+
|
|
55
|
+
### 模块概览
|
|
56
|
+
| 模块 | 职责 | 预估任务数 |
|
|
57
|
+
|------|------|-----------|
|
|
58
|
+
| [模块名] | [职责] | [数量] |
|
|
59
|
+
|
|
60
|
+
### 任务列表
|
|
61
|
+
|
|
62
|
+
#### 阶段一:[阶段名](可并行)
|
|
63
|
+
- [ ] T01 [任务名] [S/M/L]
|
|
64
|
+
- [ ] T02 [任务名] [S/M/L]
|
|
65
|
+
|
|
66
|
+
#### 阶段二:[阶段名](依赖阶段一)
|
|
67
|
+
- [ ] T03 [任务名] [S/M/L] 依赖:T01
|
|
68
|
+
|
|
69
|
+
### 关键路径
|
|
70
|
+
T01 → T03 → T05(预估总工时:X 天)
|
|
71
|
+
|
|
72
|
+
### 并行机会
|
|
73
|
+
T02 可与 T01 同时进行
|
|
74
|
+
\`\`\``,
|
|
75
|
+
},
|
|
76
|
+
],
|
|
77
|
+
outputFormat: 'Markdown 表格 + 任务列表,含模块概览、分阶段任务、依赖关系、关键路径',
|
|
78
|
+
notes: [
|
|
79
|
+
'任务粒度宁细勿粗,XL 任务必须继续拆解',
|
|
80
|
+
'优先识别阻塞性任务(其他任务依赖它的),优先排期',
|
|
81
|
+
'第一阶段任务应尽量可并行,提高效率',
|
|
82
|
+
],
|
|
83
|
+
category: '需求侧',
|
|
84
|
+
nextSkill: 'solution-design',
|
|
85
|
+
};
|
|
86
|
+
//# sourceMappingURL=02-task-breakdown.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"02-task-breakdown.js","sourceRoot":"","sources":["../../../src/skills/02-task-breakdown.ts"],"names":[],"mappings":";;;AAEa,QAAA,kBAAkB,GAAoB;IACjD,EAAE,EAAE,gBAAgB;IACpB,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,gBAAgB;IACxB,KAAK,EAAE,CAAC;IACR,WAAW,EAAE,6BAA6B;IAC1C,aAAa,EAAE,mEAAmE;IAClF,iBAAiB,EAAE;8BACS;IAC5B,QAAQ,EAAE;QACR,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,OAAO;QACP,WAAW;QACX,gBAAgB;QAChB,YAAY;QACZ,kBAAkB;KACnB;IACD,KAAK,EAAE;QACL;YACE,KAAK,EAAE,WAAW;YAClB,OAAO,EAAE;;4CAE6B;SACvC;QACD;YACE,KAAK,EAAE,YAAY;YACnB,OAAO,EAAE;;;;uCAIwB;SAClC;QACD;YACE,KAAK,EAAE,WAAW;YAClB,OAAO,EAAE;;2BAEY;SACtB;QACD;YACE,KAAK,EAAE,WAAW;YAClB,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;OAwBR;SACF;KACF;IACD,YAAY,EAAE,0CAA0C;IACxD,KAAK,EAAE;QACL,sBAAsB;QACtB,0BAA0B;QAC1B,mBAAmB;KACpB;IACD,QAAQ,EAAE,KAAK;IACf,SAAS,EAAE,iBAAiB;CAC7B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"03-design.d.ts","sourceRoot":"","sources":["../../../src/skills/03-design.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE/C,eAAO,MAAM,WAAW,EAAE,eAgFzB,CAAC"}
|
|
@@ -0,0 +1,84 @@
|
|
|
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
|
+
descriptionEn: 'Output architecture design, API design, and data model',
|
|
11
|
+
detailDescription: `在需求明确、任务拆解完成后,进行技术方案设计:选择合适的技术架构、
|
|
12
|
+
设计 API 接口、规划数据模型、说明关键技术决策和权衡,输出可直接指导实现的设计文档。`,
|
|
13
|
+
triggers: [
|
|
14
|
+
'方案设计',
|
|
15
|
+
'技术方案',
|
|
16
|
+
'架构设计',
|
|
17
|
+
'设计方案',
|
|
18
|
+
'怎么设计',
|
|
19
|
+
'数据库设计',
|
|
20
|
+
'接口设计',
|
|
21
|
+
'API 设计',
|
|
22
|
+
'/方案设计',
|
|
23
|
+
'@ethan 设计',
|
|
24
|
+
'solution design',
|
|
25
|
+
'tech design',
|
|
26
|
+
'@ethan design',
|
|
27
|
+
],
|
|
28
|
+
steps: [
|
|
29
|
+
{
|
|
30
|
+
title: '1. 技术选型',
|
|
31
|
+
content: `- 列出关键技术决策点(框架、数据库、缓存、消息队列等)
|
|
32
|
+
- 每个决策给出 2-3 个候选方案,并说明**选择理由**
|
|
33
|
+
- 格式:「选择 A 而非 B,原因:[理由];权衡:[牺牲了什么]」`,
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
title: '2. 架构设计',
|
|
37
|
+
content: `- 用 ASCII 图或 Mermaid 描述系统架构
|
|
38
|
+
- 说明各组件的职责和交互方式
|
|
39
|
+
- 标注关键数据流向
|
|
40
|
+
|
|
41
|
+
\`\`\`mermaid
|
|
42
|
+
graph LR
|
|
43
|
+
Client --> API[API Server]
|
|
44
|
+
API --> DB[(Database)]
|
|
45
|
+
API --> Cache[(Redis)]
|
|
46
|
+
\`\`\``,
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
title: '3. 接口设计(API)',
|
|
50
|
+
content: `按 RESTful 或 GraphQL 规范设计接口:
|
|
51
|
+
|
|
52
|
+
\`\`\`
|
|
53
|
+
POST /api/v1/[resource]
|
|
54
|
+
Request: { field1: type, field2: type }
|
|
55
|
+
Response: { code: 0, data: {...}, message: string }
|
|
56
|
+
\`\`\`
|
|
57
|
+
|
|
58
|
+
- 统一错误码规范
|
|
59
|
+
- 鉴权方式(Bearer Token / Cookie / API Key)`,
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
title: '4. 数据模型',
|
|
63
|
+
content: `- 核心实体及字段(类型、约束、索引)
|
|
64
|
+
- 实体关系(1:1、1:N、N:M)
|
|
65
|
+
- 关键查询场景和对应索引策略`,
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
title: '5. 关键技术决策记录(ADR)',
|
|
69
|
+
content: `对每个重要决策记录:
|
|
70
|
+
- **背景**:为什么需要做这个决策
|
|
71
|
+
- **决策**:选择了什么
|
|
72
|
+
- **后果**:带来什么影响(正面/负面)`,
|
|
73
|
+
},
|
|
74
|
+
],
|
|
75
|
+
outputFormat: 'Markdown 设计文档,含技术选型表、架构图(Mermaid)、API 接口列表、数据模型、ADR 决策记录',
|
|
76
|
+
notes: [
|
|
77
|
+
'先设计接口契约,再实现内部逻辑',
|
|
78
|
+
'数据模型是设计的核心,多花时间在这里',
|
|
79
|
+
'ADR 不需要面面俱到,只记录有争议的或重要的决策',
|
|
80
|
+
],
|
|
81
|
+
category: '执行侧',
|
|
82
|
+
nextSkill: 'implementation',
|
|
83
|
+
};
|
|
84
|
+
//# 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,aAAa,EAAE,wDAAwD;IACvE,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;QACX,iBAAiB;QACjB,aAAa;QACb,eAAe;KAChB;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,eA4EjC,CAAC"}
|
|
@@ -0,0 +1,81 @@
|
|
|
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
|
+
descriptionEn: 'Implement step by step following the design plan with code self-check',
|
|
11
|
+
detailDescription: `进入编码阶段,按任务拆解的顺序逐一实现功能:先写测试或接口定义,
|
|
12
|
+
再实现核心逻辑,遵循 SOLID 原则和项目既有规范,对非显而易见的实现决策作简要注释。`,
|
|
13
|
+
triggers: [
|
|
14
|
+
'执行实现',
|
|
15
|
+
'开始实现',
|
|
16
|
+
'写代码',
|
|
17
|
+
'编写代码',
|
|
18
|
+
'实现功能',
|
|
19
|
+
'代码实现',
|
|
20
|
+
'开始开发',
|
|
21
|
+
'/执行实现',
|
|
22
|
+
'@ethan 实现',
|
|
23
|
+
'implementation',
|
|
24
|
+
'start implementing',
|
|
25
|
+
'@ethan implement',
|
|
26
|
+
],
|
|
27
|
+
steps: [
|
|
28
|
+
{
|
|
29
|
+
title: '1. 确认实现前提',
|
|
30
|
+
content: `在开始写代码前确认:
|
|
31
|
+
- ✅ 设计方案已确认
|
|
32
|
+
- ✅ 依赖的接口/服务已就绪(或已 mock)
|
|
33
|
+
- ✅ 开发环境配置正确
|
|
34
|
+
- ✅ 知道本次实现的完成标准(Definition of Done)`,
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
title: '2. 分层实现顺序',
|
|
38
|
+
content: `推荐实现顺序(由内而外):
|
|
39
|
+
1. **数据层**:Model/Schema 定义、数据库迁移
|
|
40
|
+
2. **服务层**:业务逻辑、核心算法
|
|
41
|
+
3. **接口层**:Controller/Route/Resolver
|
|
42
|
+
4. **UI 层**:页面组件、交互逻辑
|
|
43
|
+
5. **集成**:端对端连通、Edge Cases 处理`,
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
title: '3. 编码规范执行',
|
|
47
|
+
content: `- 函数单一职责,超过 50 行考虑拆分
|
|
48
|
+
- 命名自文档化:\`getUserByEmail\` > \`getUser\`
|
|
49
|
+
- 错误处理:不吞异常,向上传递有语义的错误
|
|
50
|
+
- 对**非显而易见**的逻辑写注释(解释"为什么"而非"做什么")
|
|
51
|
+
- 涉及安全的操作(SQL 查询、用户输入)必须做参数化/转义`,
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
title: '4. 每完成一个任务后',
|
|
55
|
+
content: `- 执行单元测试(或手动验证)
|
|
56
|
+
- 更新任务状态(参考"进度跟踪" Skill)
|
|
57
|
+
- 如遇到设计偏差,记录变更原因
|
|
58
|
+
- commit 前检查:无 console.log 遗留、无硬编码密钥`,
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
title: '5. 代码自检清单',
|
|
62
|
+
content: `\`\`\`
|
|
63
|
+
□ 功能满足需求文档的验收条件
|
|
64
|
+
□ 边界条件已处理(null、空数组、超长输入等)
|
|
65
|
+
□ 错误信息对用户友好(生产环境不暴露内部堆栈)
|
|
66
|
+
□ 无明显性能问题(N+1 查询、无限循环风险)
|
|
67
|
+
□ 敏感数据不出现在日志中
|
|
68
|
+
□ 代码可读性:同事无需解释能看懂
|
|
69
|
+
\`\`\``,
|
|
70
|
+
},
|
|
71
|
+
],
|
|
72
|
+
outputFormat: '代码实现 + 简要说明(实现思路、关键决策),每个任务完成后输出自检清单结果',
|
|
73
|
+
notes: [
|
|
74
|
+
'不要一次性写完所有代码,小步提交,频繁验证',
|
|
75
|
+
'遇到阻塞(依赖未就绪)立即反馈,不要等待',
|
|
76
|
+
'实现过程中发现设计问题,先暂停讨论,不要随意修改设计',
|
|
77
|
+
],
|
|
78
|
+
category: '执行侧',
|
|
79
|
+
nextSkill: 'progress-tracking',
|
|
80
|
+
};
|
|
81
|
+
//# 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,aAAa,EAAE,uEAAuE;IACtF,iBAAiB,EAAE;6CACwB;IAC3C,QAAQ,EAAE;QACR,MAAM;QACN,MAAM;QACN,KAAK;QACL,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,OAAO;QACP,WAAW;QACX,gBAAgB;QAChB,oBAAoB;QACpB,kBAAkB;KACnB;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,eA6EnC,CAAC"}
|
|
@@ -0,0 +1,82 @@
|
|
|
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
|
+
descriptionEn: 'Real-time task status update, identify blocking risks',
|
|
11
|
+
detailDescription: `在项目执行过程中持续跟踪进度:更新任务状态、识别延期风险、
|
|
12
|
+
记录阻塞原因、预测完成时间,确保团队对项目状态保持一致认知。`,
|
|
13
|
+
triggers: [
|
|
14
|
+
'进度跟踪',
|
|
15
|
+
'跟踪进度',
|
|
16
|
+
'进度更新',
|
|
17
|
+
'更新进度',
|
|
18
|
+
'项目进展',
|
|
19
|
+
'任务状态',
|
|
20
|
+
'完成了什么',
|
|
21
|
+
'还剩什么',
|
|
22
|
+
'/进度跟踪',
|
|
23
|
+
'@ethan 进度',
|
|
24
|
+
'progress tracking',
|
|
25
|
+
'progress update',
|
|
26
|
+
'@ethan progress',
|
|
27
|
+
],
|
|
28
|
+
steps: [
|
|
29
|
+
{
|
|
30
|
+
title: '1. 状态同步',
|
|
31
|
+
content: `对任务列表中每个任务标注状态:
|
|
32
|
+
- ✅ **完成**:已验证通过
|
|
33
|
+
- 🔄 **进行中**:正在开发
|
|
34
|
+
- ⏸️ **阻塞**:有依赖未解除或遇到问题
|
|
35
|
+
- ⏳ **待开始**:排队中
|
|
36
|
+
- ❌ **取消**:不再需要(说明原因)`,
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
title: '2. 阻塞识别与处理',
|
|
40
|
+
content: `对每个阻塞任务:
|
|
41
|
+
- 描述阻塞原因(技术问题/依赖等待/需求不清晰)
|
|
42
|
+
- 阻塞开始时间
|
|
43
|
+
- 解除条件:「需要 [谁] 完成 [什么]」
|
|
44
|
+
- 影响评估:「阻塞会导致 [哪些任务] 延期 [多少时间]」`,
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
title: '3. 完成度统计',
|
|
48
|
+
content: `\`\`\`
|
|
49
|
+
总任务数:N
|
|
50
|
+
✅ 完成:X(X%)
|
|
51
|
+
🔄 进行中:Y
|
|
52
|
+
⏸️ 阻塞:Z
|
|
53
|
+
⏳ 待开始:W
|
|
54
|
+
|
|
55
|
+
预估完成时间:[日期] [置信度:高/中/低]
|
|
56
|
+
\`\`\``,
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
title: '4. 风险预警',
|
|
60
|
+
content: `识别以下风险并标注优先级:
|
|
61
|
+
- 🔴 **高风险**:当前阻塞影响关键路径,必须立即处理
|
|
62
|
+
- 🟡 **中风险**:有延期可能,需要关注
|
|
63
|
+
- 🟢 **低风险**:有 buffer,暂时观察`,
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
title: '5. 下一步行动',
|
|
67
|
+
content: `明确列出:
|
|
68
|
+
- **立即行动**(今天必须完成)
|
|
69
|
+
- **需要协调**(需要其他人配合)
|
|
70
|
+
- **待决策**(需要产品/技术负责人决定)`,
|
|
71
|
+
},
|
|
72
|
+
],
|
|
73
|
+
outputFormat: 'Markdown 状态看板,含任务状态列表、完成度统计、风险矩阵、下一步行动清单',
|
|
74
|
+
notes: [
|
|
75
|
+
'每天至少更新一次进度(即使没有变化也要说明)',
|
|
76
|
+
'阻塞问题第一时间暴露,不要等到 deadline 才说',
|
|
77
|
+
'进度更新要诚实,不要因为"看起来不好"而隐瞒风险',
|
|
78
|
+
],
|
|
79
|
+
category: '跟踪侧',
|
|
80
|
+
nextSkill: 'task-report',
|
|
81
|
+
};
|
|
82
|
+
//# 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,aAAa,EAAE,uDAAuD;IACtE,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;QACX,mBAAmB;QACnB,iBAAiB;QACjB,iBAAiB;KAClB;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,eA2E7B,CAAC"}
|
|
@@ -0,0 +1,79 @@
|
|
|
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
|
+
descriptionEn: 'Generate outcome report with issue retrospective and lessons learned',
|
|
11
|
+
detailDescription: `在任务或阶段完成后,生成全面的总结报告:梳理完成情况、
|
|
12
|
+
遇到的问题和解决方式、技术债务、经验教训,为后续迭代提供参考。`,
|
|
13
|
+
triggers: [
|
|
14
|
+
'任务报告',
|
|
15
|
+
'生成报告',
|
|
16
|
+
'任务总结',
|
|
17
|
+
'总结报告',
|
|
18
|
+
'完成总结',
|
|
19
|
+
'项目总结',
|
|
20
|
+
'阶段总结',
|
|
21
|
+
'/任务报告',
|
|
22
|
+
'@ethan 报告',
|
|
23
|
+
'task report',
|
|
24
|
+
'generate report',
|
|
25
|
+
'@ethan report',
|
|
26
|
+
],
|
|
27
|
+
steps: [
|
|
28
|
+
{
|
|
29
|
+
title: '1. 成果汇总',
|
|
30
|
+
content: `- 列出本次完成的所有功能点(对照原始需求)
|
|
31
|
+
- 说明是否满足所有验收条件
|
|
32
|
+
- 对比原计划:提前/按时/延期(延期说明原因)
|
|
33
|
+
- 关键交付物清单(代码链接、文档、部署地址)`,
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
title: '2. 问题复盘',
|
|
37
|
+
content: `对本次遇到的主要问题进行复盘:
|
|
38
|
+
|
|
39
|
+
| 问题描述 | 根本原因 | 解决方案 | 预防措施 |
|
|
40
|
+
|---------|---------|---------|---------|
|
|
41
|
+
| [问题] | [原因] | [解决] | [预防] |`,
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
title: '3. 技术债务记录',
|
|
45
|
+
content: `记录本次故意留下的技术债务(TODO/FIXME):
|
|
46
|
+
- 债务描述:[内容]
|
|
47
|
+
- 产生原因:[为什么现在不做]
|
|
48
|
+
- 影响范围:[哪些功能受影响]
|
|
49
|
+
- 计划处理时间:[迭代版本]`,
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
title: '4. 性能与质量指标',
|
|
53
|
+
content: `- 测试覆盖率:[X%]
|
|
54
|
+
- 已知 Bug:[数量及严重程度]
|
|
55
|
+
- 关键路径性能:[响应时间/吞吐量等]
|
|
56
|
+
- 代码审查意见处理:[X 条,已解决 Y 条]`,
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
title: '5. 经验教训(Lessons Learned)',
|
|
60
|
+
content: `**做得好的地方:**
|
|
61
|
+
- [值得在下次继续的做法]
|
|
62
|
+
|
|
63
|
+
**可以改进的地方:**
|
|
64
|
+
- [下次应该不同的做法]
|
|
65
|
+
|
|
66
|
+
**给团队的建议:**
|
|
67
|
+
- [可复用的最佳实践或工具]`,
|
|
68
|
+
},
|
|
69
|
+
],
|
|
70
|
+
outputFormat: 'Markdown 总结报告,含成果汇总、问题复盘表格、技术债务列表、质量指标、Lessons Learned',
|
|
71
|
+
notes: [
|
|
72
|
+
'报告面向不同读者(技术/产品/管理),注意分层表达',
|
|
73
|
+
'技术债务必须记录,不能以"以后再说"带过',
|
|
74
|
+
'Lessons Learned 重在行动可操作性,避免空话',
|
|
75
|
+
],
|
|
76
|
+
category: '输出侧',
|
|
77
|
+
nextSkill: 'weekly-report',
|
|
78
|
+
};
|
|
79
|
+
//# 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,aAAa,EAAE,sEAAsE;IACrF,iBAAiB,EAAE;gCACW;IAC9B,QAAQ,EAAE;QACR,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,OAAO;QACP,WAAW;QACX,aAAa;QACb,iBAAiB;QACjB,eAAe;KAChB;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,eAmG/B,CAAC"}
|