ethan-skill 1.0.0 → 1.1.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 +363 -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/server/dashboard.d.ts +2 -0
- package/dist/server/dashboard.d.ts.map +1 -0
- package/dist/server/dashboard.js +272 -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/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
|
@@ -1 +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,
|
|
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"}
|
|
@@ -7,6 +7,7 @@ exports.weeklyReportSkill = {
|
|
|
7
7
|
nameEn: 'weekly_report',
|
|
8
8
|
order: 7,
|
|
9
9
|
description: '根据本周工作内容自动生成结构化周报,突出价值而非流水账',
|
|
10
|
+
descriptionEn: 'Auto-generate structured weekly report highlighting business value',
|
|
10
11
|
detailDescription: `收集本周工作信息,生成专业的周报:聚焦业务价值而非技术细节,
|
|
11
12
|
突出完成了什么、解决了什么问题、下周计划,让不同层级的读者都能快速获取关键信息。`,
|
|
12
13
|
triggers: [
|
|
@@ -19,6 +20,8 @@ exports.weeklyReportSkill = {
|
|
|
19
20
|
'weekly report',
|
|
20
21
|
'/周报',
|
|
21
22
|
'@ethan 周报',
|
|
23
|
+
'generate weekly',
|
|
24
|
+
'@ethan weekly',
|
|
22
25
|
],
|
|
23
26
|
steps: [
|
|
24
27
|
{
|
|
@@ -1 +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;
|
|
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,aAAa,EAAE,oEAAoE;IACnF,iBAAiB,EAAE;yCACoB;IACvC,QAAQ,EAAE;QACR,IAAI;QACJ,MAAM;QACN,KAAK;QACL,MAAM;QACN,MAAM;QACN,KAAK;QACL,eAAe;QACf,KAAK;QACL,WAAW;QACX,iBAAiB;QACjB,eAAe;KAChB;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"}
|
|
@@ -1 +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,
|
|
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,eAsI7B,CAAC"}
|
|
@@ -7,6 +7,7 @@ exports.codeReviewSkill = {
|
|
|
7
7
|
nameEn: 'code_review',
|
|
8
8
|
order: 8,
|
|
9
9
|
description: '系统性审查代码变更,分级输出 Blocker/Major/Minor 问题,提升代码质量',
|
|
10
|
+
descriptionEn: 'Systematic code review with Blocker/Major/Minor classification',
|
|
10
11
|
detailDescription: `对代码变更进行系统性审查,覆盖正确性、安全性、性能、可维护性和规范性五个维度,
|
|
11
12
|
按 Blocker/Major/Minor 三级分类输出问题,并给出具体改进建议。`,
|
|
12
13
|
triggers: [
|
|
@@ -20,6 +21,7 @@ exports.codeReviewSkill = {
|
|
|
20
21
|
'代码 review',
|
|
21
22
|
'/代码审查',
|
|
22
23
|
'@ethan review',
|
|
24
|
+
'@ethan code-review',
|
|
23
25
|
],
|
|
24
26
|
steps: [
|
|
25
27
|
{
|
|
@@ -1 +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;
|
|
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,aAAa,EAAE,gEAAgE;IAC/E,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;QACf,oBAAoB;KACrB;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"}
|
|
@@ -1 +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,
|
|
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,eAsJxB,CAAC"}
|
package/dist/skills/09-debug.js
CHANGED
|
@@ -7,6 +7,7 @@ exports.debugSkill = {
|
|
|
7
7
|
nameEn: 'debug',
|
|
8
8
|
order: 9,
|
|
9
9
|
description: '系统性排查故障,通过假设验证和 5 Why 定位根因,输出临时/永久/预防三层方案',
|
|
10
|
+
descriptionEn: 'Hypothesis-driven debugging with 5-Why root cause analysis',
|
|
10
11
|
detailDescription: `采用结构化方法排查故障:先描述现象建立假设,再逐一验证缩小范围,
|
|
11
12
|
用 5 Why 挖掘根本原因,最终输出涵盖临时缓解、永久修复和预防措施的完整排查报告。`,
|
|
12
13
|
triggers: [
|
|
@@ -20,6 +21,8 @@ exports.debugSkill = {
|
|
|
20
21
|
'程序崩溃',
|
|
21
22
|
'/故障排查',
|
|
22
23
|
'@ethan debug',
|
|
24
|
+
'troubleshoot',
|
|
25
|
+
'@ethan troubleshoot',
|
|
23
26
|
],
|
|
24
27
|
steps: [
|
|
25
28
|
{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"09-debug.js","sourceRoot":"","sources":["../../src/skills/09-debug.ts"],"names":[],"mappings":";;;AAEa,QAAA,UAAU,GAAoB;IACzC,EAAE,EAAE,OAAO;IACX,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,OAAO;IACf,KAAK,EAAE,CAAC;IACR,WAAW,EAAE,2CAA2C;IACxD,iBAAiB,EAAE;4CACuB;IAC1C,QAAQ,EAAE;QACR,MAAM;QACN,OAAO;QACP,MAAM;QACN,KAAK;QACL,MAAM;QACN,QAAQ;QACR,OAAO;QACP,MAAM;QACN,OAAO;QACP,cAAc;
|
|
1
|
+
{"version":3,"file":"09-debug.js","sourceRoot":"","sources":["../../src/skills/09-debug.ts"],"names":[],"mappings":";;;AAEa,QAAA,UAAU,GAAoB;IACzC,EAAE,EAAE,OAAO;IACX,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,OAAO;IACf,KAAK,EAAE,CAAC;IACR,WAAW,EAAE,2CAA2C;IACxD,aAAa,EAAE,4DAA4D;IAC3E,iBAAiB,EAAE;4CACuB;IAC1C,QAAQ,EAAE;QACR,MAAM;QACN,OAAO;QACP,MAAM;QACN,KAAK;QACL,MAAM;QACN,QAAQ;QACR,OAAO;QACP,MAAM;QACN,OAAO;QACP,cAAc;QACd,cAAc;QACd,qBAAqB;KACtB;IACD,KAAK,EAAE;QACL;YACE,KAAK,EAAE,SAAS;YAChB,OAAO,EAAE;;;;;;kCAMmB;SAC7B;QACD;YACE,KAAK,EAAE,SAAS;YAChB,OAAO,EAAE;;;;;;;;;;;uBAWQ;SAClB;QACD;YACE,KAAK,EAAE,SAAS;YAChB,OAAO,EAAE;;;;;;;;;;;2BAWY;SACtB;QACD;YACE,KAAK,EAAE,eAAe;YACtB,OAAO,EAAE;;;;;;;;;;;;gCAYiB;SAC3B;QACD;YACE,KAAK,EAAE,WAAW;YAClB,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgCR;SACF;KACF;IACD,YAAY,EACV,4DAA4D;IAC9D,QAAQ,EAAE;QACR;YACE,KAAK,EAAE,yDAAyD;YAChE,MAAM,EAAE;;;;;;;;;;;;;;;;;;;kBAmBI;SACb;KACF;IACD,KAAK,EAAE;QACL,8BAA8B;QAC9B,6BAA6B;QAC7B,mBAAmB;KACpB;IACD,QAAQ,EAAE,KAAK;CAChB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"10-tech-research.d.ts","sourceRoot":"","sources":["../../src/skills/10-tech-research.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE/C,eAAO,MAAM,iBAAiB,EAAE,
|
|
1
|
+
{"version":3,"file":"10-tech-research.d.ts","sourceRoot":"","sources":["../../src/skills/10-tech-research.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE/C,eAAO,MAAM,iBAAiB,EAAE,eA6I/B,CAAC"}
|
|
@@ -7,6 +7,7 @@ exports.techResearchSkill = {
|
|
|
7
7
|
nameEn: 'tech_research',
|
|
8
8
|
order: 10,
|
|
9
9
|
description: '结构化技术选型:问题定义→方案收集→加权评分矩阵→POC 验证→明确结论',
|
|
10
|
+
descriptionEn: 'Weighted scoring matrix + POC validation for tech selection',
|
|
10
11
|
detailDescription: `通过标准化流程完成技术调研:先明确问题和评估标准,再收集候选方案,
|
|
11
12
|
用加权评分矩阵量化对比,必要时进行 POC 验证,最终输出有据可查的选型结论。`,
|
|
12
13
|
triggers: [
|
|
@@ -20,6 +21,9 @@ exports.techResearchSkill = {
|
|
|
20
21
|
'技术评估',
|
|
21
22
|
'/技术调研',
|
|
22
23
|
'@ethan 调研',
|
|
24
|
+
'tech research',
|
|
25
|
+
'tech selection',
|
|
26
|
+
'@ethan research',
|
|
23
27
|
],
|
|
24
28
|
steps: [
|
|
25
29
|
{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"10-tech-research.js","sourceRoot":"","sources":["../../src/skills/10-tech-research.ts"],"names":[],"mappings":";;;AAEa,QAAA,iBAAiB,GAAoB;IAChD,EAAE,EAAE,eAAe;IACnB,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,eAAe;IACvB,KAAK,EAAE,EAAE;IACT,WAAW,EAAE,sCAAsC;IACnD,iBAAiB,EAAE;wCACmB;IACtC,QAAQ,EAAE;QACR,MAAM;QACN,MAAM;QACN,KAAK;QACL,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,OAAO;QACP,WAAW;
|
|
1
|
+
{"version":3,"file":"10-tech-research.js","sourceRoot":"","sources":["../../src/skills/10-tech-research.ts"],"names":[],"mappings":";;;AAEa,QAAA,iBAAiB,GAAoB;IAChD,EAAE,EAAE,eAAe;IACnB,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,eAAe;IACvB,KAAK,EAAE,EAAE;IACT,WAAW,EAAE,sCAAsC;IACnD,aAAa,EAAE,6DAA6D;IAC5E,iBAAiB,EAAE;wCACmB;IACtC,QAAQ,EAAE;QACR,MAAM;QACN,MAAM;QACN,KAAK;QACL,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,OAAO;QACP,WAAW;QACX,eAAe;QACf,gBAAgB;QAChB,iBAAiB;KAClB;IACD,KAAK,EAAE;QACL;YACE,KAAK,EAAE,SAAS;YAChB,OAAO,EAAE;;;;;;;;;kDASmC;SAC7C;QACD;YACE,KAAK,EAAE,SAAS;YAChB,OAAO,EAAE;;;;;;;;;gCASiB;SAC3B;QACD;YACE,KAAK,EAAE,eAAe;YACtB,OAAO,EAAE;;;;;;;;;;;;;;;;;wBAiBS;SACnB;QACD;YACE,KAAK,EAAE,WAAW;YAClB,OAAO,EAAE;;;;;;;;;2BASY;SACtB;QACD;YACE,KAAK,EAAE,SAAS;YAChB,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;OAsBR;SACF;KACF;IACD,YAAY,EACV,qDAAqD;IACvD,QAAQ,EAAE;QACR;YACE,KAAK,EAAE,uCAAuC;YAC9C,MAAM,EAAE;;;;;;;;;;;;;;;uBAeS;SAClB;KACF;IACD,KAAK,EAAE;QACL,iCAAiC;QACjC,sBAAsB;QACtB,+BAA+B;KAChC;IACD,QAAQ,EAAE,KAAK;CAChB,CAAC"}
|
package/dist/skills/types.d.ts
CHANGED
|
@@ -23,6 +23,8 @@ export interface SkillDefinition {
|
|
|
23
23
|
nameEn: string;
|
|
24
24
|
/** 简短描述(一句话),用于 MCP tool description */
|
|
25
25
|
description: string;
|
|
26
|
+
/** English short description */
|
|
27
|
+
descriptionEn?: string;
|
|
26
28
|
/** 详细描述,用于规则文件头部 */
|
|
27
29
|
detailDescription: string;
|
|
28
30
|
/** 触发关键词列表(用于路由匹配) */
|
|
@@ -56,5 +58,7 @@ export interface BuildContext {
|
|
|
56
58
|
generatedAt: string;
|
|
57
59
|
/** 包版本 */
|
|
58
60
|
version: string;
|
|
61
|
+
/** 输出语言,默认 zh */
|
|
62
|
+
lang?: 'zh' | 'en';
|
|
59
63
|
}
|
|
60
64
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/skills/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,SAAS;IACxB,WAAW;IACX,KAAK,EAAE,MAAM,CAAC;IACd,0BAA0B;IAC1B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,gBAAgB;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,gBAAgB;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,kCAAkC;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,eAAe;IACf,IAAI,EAAE,MAAM,CAAC;IACb,4BAA4B;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,wCAAwC;IACxC,WAAW,EAAE,MAAM,CAAC;IACpB,oBAAoB;IACpB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,sBAAsB;IACtB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,eAAe;IACf,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,aAAa;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe;IACf,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAC;IAC1B,eAAe;IACf,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,0BAA0B;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,qBAAqB;IACrB,QAAQ,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC;IACjD,0BAA0B;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,QAAQ,GAChB,YAAY,GACZ,YAAY,GACZ,SAAS,GACT,OAAO,GACP,QAAQ,GACR,WAAW,GACX,UAAU,GACV,KAAK,GACL,WAAW,GACX,UAAU,GACV,aAAa,CAAC;AAElB,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,QAAQ,CAAC;IACnB,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,oBAAoB;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU;IACV,OAAO,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/skills/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,SAAS;IACxB,WAAW;IACX,KAAK,EAAE,MAAM,CAAC;IACd,0BAA0B;IAC1B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,gBAAgB;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,gBAAgB;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,kCAAkC;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,eAAe;IACf,IAAI,EAAE,MAAM,CAAC;IACb,4BAA4B;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,wCAAwC;IACxC,WAAW,EAAE,MAAM,CAAC;IACpB,gCAAgC;IAChC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,oBAAoB;IACpB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,sBAAsB;IACtB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,eAAe;IACf,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,aAAa;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe;IACf,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAC;IAC1B,eAAe;IACf,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,0BAA0B;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,qBAAqB;IACrB,QAAQ,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC;IACjD,0BAA0B;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,QAAQ,GAChB,YAAY,GACZ,YAAY,GACZ,SAAS,GACT,OAAO,GACP,QAAQ,GACR,WAAW,GACX,UAAU,GACV,KAAK,GACL,WAAW,GACX,UAAU,GACV,aAAa,CAAC;AAElB,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,QAAQ,CAAC;IACnB,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,oBAAoB;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU;IACV,OAAO,EAAE,MAAM,CAAC;IAChB,iBAAiB;IACjB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;CACpB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"copilot-md.template.d.ts","sourceRoot":"","sources":["../../src/templates/copilot-md.template.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAmB,YAAY,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"copilot-md.template.d.ts","sourceRoot":"","sources":["../../src/templates/copilot-md.template.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAmB,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAYrE;;;GAGG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,YAAY,GAAG,MAAM,CAyBxD"}
|
|
@@ -1,6 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.renderMarkdown = renderMarkdown;
|
|
4
|
+
/** 取技能描述:有英文版且当前语言为 en 则用英文 */
|
|
5
|
+
function desc(skill, isEn) {
|
|
6
|
+
return isEn && skill.descriptionEn ? skill.descriptionEn : skill.description;
|
|
7
|
+
}
|
|
8
|
+
/** 取技能显示名:英文时用 nameEn(下划线→空格),中文时用 name */
|
|
9
|
+
function skillName(skill, isEn) {
|
|
10
|
+
return isEn ? skill.nameEn.replace(/_/g, ' ') : skill.name;
|
|
11
|
+
}
|
|
4
12
|
/**
|
|
5
13
|
* 生成各平台 Markdown 规则文件
|
|
6
14
|
* 支持:copilot、cline、lingma、codebuddy、windsurf、zed、jetbrains、continue、claude-code
|
|
@@ -34,6 +42,7 @@ function renderMarkdown(ctx) {
|
|
|
34
42
|
/** VS Code Copilot:.github/copilot-instructions.md */
|
|
35
43
|
function renderCopilot(ctx) {
|
|
36
44
|
const { skills, version, generatedAt } = ctx;
|
|
45
|
+
const isEn = ctx.lang === 'en';
|
|
37
46
|
return `# Ethan - Copilot Instructions (v${version})
|
|
38
47
|
|
|
39
48
|
> Auto-generated from src/skills/ | ${generatedAt}
|
|
@@ -43,7 +52,7 @@ You are equipped with the Ethan workflow assistant. When users mention any of th
|
|
|
43
52
|
|
|
44
53
|
## Available Skills
|
|
45
54
|
|
|
46
|
-
${skills.map((s) => renderCopilotSkill(s)).join('\n\n')}
|
|
55
|
+
${skills.map((s) => renderCopilotSkill(s, isEn)).join('\n\n')}
|
|
47
56
|
|
|
48
57
|
## General Rules
|
|
49
58
|
|
|
@@ -53,15 +62,15 @@ ${skills.map((s) => renderCopilotSkill(s)).join('\n\n')}
|
|
|
53
62
|
- When user explicitly names a Skill, execute directly without confirmation
|
|
54
63
|
`;
|
|
55
64
|
}
|
|
56
|
-
function renderCopilotSkill(skill) {
|
|
65
|
+
function renderCopilotSkill(skill, isEn) {
|
|
57
66
|
const steps = skill.steps
|
|
58
67
|
.map((step, i) => `${i + 1}. **${step.title.replace(/^\d+\.\s*/, '')}**: ${step.content.split('\n')[0]}`)
|
|
59
68
|
.join('\n');
|
|
60
|
-
return `### ${skill.order}. ${skill
|
|
69
|
+
return `### ${skill.order}. ${skillName(skill, isEn)} (${skill.nameEn})
|
|
61
70
|
|
|
62
71
|
**Triggers**: ${skill.triggers.map((t) => `\`${t}\``).join(', ')}
|
|
63
72
|
|
|
64
|
-
**Goal**: ${skill
|
|
73
|
+
**Goal**: ${desc(skill, isEn)}
|
|
65
74
|
|
|
66
75
|
**Steps**:
|
|
67
76
|
${steps}
|
|
@@ -71,10 +80,28 @@ ${steps}
|
|
|
71
80
|
/** Cline:.clinerules */
|
|
72
81
|
function renderCline(ctx) {
|
|
73
82
|
const { skills, version, generatedAt } = ctx;
|
|
74
|
-
const
|
|
83
|
+
const isEn = ctx.lang === 'en';
|
|
84
|
+
const skillsContent = skills.map((s) => renderClineSkill(s, isEn)).join('\n\n');
|
|
85
|
+
if (isEn) {
|
|
86
|
+
return `# Ethan v${version}
|
|
87
|
+
# Generated: ${generatedAt}
|
|
88
|
+
|
|
89
|
+
Ethan - Your AI Workflow Assistant. When you see any trigger keyword below, execute the corresponding skill workflow.
|
|
90
|
+
|
|
91
|
+
## Skill Triggers
|
|
92
|
+
${skills.map((s) => `- **${skillName(s, true)}**: ${s.triggers.slice(0, 4).join(' | ')}`).join('\n')}
|
|
93
|
+
|
|
94
|
+
---
|
|
95
|
+
|
|
96
|
+
${skillsContent}
|
|
97
|
+
|
|
98
|
+
---
|
|
99
|
+
Rules: Follow steps in order. Do not skip. Output per skill template.
|
|
100
|
+
`;
|
|
101
|
+
}
|
|
75
102
|
return `# Ethan v${version}
|
|
76
103
|
# Generated: ${generatedAt}
|
|
77
|
-
# Source: https://github.com/
|
|
104
|
+
# Source: https://github.com/aokiz-ek/smart-flow-skill
|
|
78
105
|
|
|
79
106
|
Ethan。当用户输入以下触发词时,按对应 Skill 的步骤执行。
|
|
80
107
|
|
|
@@ -89,8 +116,18 @@ ${skillsContent}
|
|
|
89
116
|
规则:严格按步骤执行,不跳步,输出遵循各 Skill 的格式模板。
|
|
90
117
|
`;
|
|
91
118
|
}
|
|
92
|
-
function renderClineSkill(skill) {
|
|
119
|
+
function renderClineSkill(skill, isEn) {
|
|
93
120
|
const stepsContent = skill.steps.map((step) => `${step.title}\n${step.content}`).join('\n\n');
|
|
121
|
+
if (isEn) {
|
|
122
|
+
return `## ${skillName(skill, true)} (${skill.id})
|
|
123
|
+
|
|
124
|
+
Triggers: ${skill.triggers.slice(0, 4).join(' | ')}
|
|
125
|
+
Goal: ${desc(skill, true)}
|
|
126
|
+
|
|
127
|
+
${stepsContent}
|
|
128
|
+
|
|
129
|
+
Output: ${skill.outputFormat}`;
|
|
130
|
+
}
|
|
94
131
|
return `## ${skill.name}
|
|
95
132
|
|
|
96
133
|
触发:${skill.triggers.slice(0, 4).join(' | ')}
|
|
@@ -103,6 +140,27 @@ ${stepsContent}
|
|
|
103
140
|
/** 通义灵码:.lingma/rules/*.md(结构简洁) */
|
|
104
141
|
function renderLingma(ctx) {
|
|
105
142
|
const { skills, version, generatedAt } = ctx;
|
|
143
|
+
const isEn = ctx.lang === 'en';
|
|
144
|
+
if (isEn) {
|
|
145
|
+
return `# Ethan v${version}
|
|
146
|
+
|
|
147
|
+
> Generated: ${generatedAt}
|
|
148
|
+
|
|
149
|
+
## Overview
|
|
150
|
+
|
|
151
|
+
${skills.length} standardized workflow skills. Match trigger keywords to execute the corresponding workflow.
|
|
152
|
+
|
|
153
|
+
## Skill List
|
|
154
|
+
|
|
155
|
+
${skills.map((s) => `### ${s.order}. ${skillName(s, true)}\n- **Triggers**: ${s.triggers.slice(0, 5).join(', ')}\n- **Goal**: ${desc(s, true)}\n- **Steps**: ${s.steps.map((step) => step.title.replace(/^\d+\.\s*/, '')).join(' → ')}`).join('\n\n')}
|
|
156
|
+
|
|
157
|
+
## Rules
|
|
158
|
+
|
|
159
|
+
1. Detect intent and match trigger keywords
|
|
160
|
+
2. Follow Skill steps in order
|
|
161
|
+
3. Output per skill template
|
|
162
|
+
`;
|
|
163
|
+
}
|
|
106
164
|
return `# Ethan v${version}
|
|
107
165
|
|
|
108
166
|
> 生成时间:${generatedAt}
|
|
@@ -139,29 +197,31 @@ ${stepsList}
|
|
|
139
197
|
/** 腾讯 CodeBuddy:CODEBUDDY.md(内容精简) */
|
|
140
198
|
function renderCodeBuddy(ctx) {
|
|
141
199
|
const { skills, version, generatedAt } = ctx;
|
|
200
|
+
const isEn = ctx.lang === 'en';
|
|
142
201
|
return `# Ethan v${version}
|
|
143
202
|
|
|
144
|
-
Ethan - Your AI Workflow Assistant |
|
|
203
|
+
Ethan - Your AI Workflow Assistant | Generated: ${generatedAt}
|
|
145
204
|
|
|
146
205
|
## Skills
|
|
147
206
|
|
|
148
207
|
${skills
|
|
149
|
-
.map((s) => `### ${s.order}. ${s
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
208
|
+
.map((s) => `### ${s.order}. ${skillName(s, isEn)}
|
|
209
|
+
${isEn ? 'Triggers' : '触发词'}:${s.triggers.slice(0, 3).join(' / ')}
|
|
210
|
+
${isEn ? 'Goal' : '说明'}:${desc(s, isEn)}
|
|
211
|
+
${isEn ? 'Steps' : '步骤'}:${s.steps.map((step) => step.title.replace(/^\d+\.\s*/, '')).join(' → ')}
|
|
212
|
+
${isEn ? 'Output' : '输出'}:${s.outputFormat}`)
|
|
154
213
|
.join('\n\n')}
|
|
155
214
|
|
|
156
|
-
## 规则
|
|
157
|
-
- 根据用户输入自动匹配触发词,执行对应 Skill
|
|
158
|
-
- 严格按步骤顺序执行,不省略关键步骤
|
|
159
|
-
- 输出格式遵循各 Skill 模板定义
|
|
215
|
+
## ${isEn ? 'Rules' : '规则'}
|
|
216
|
+
- ${isEn ? 'Auto-match trigger keywords and execute the corresponding Skill' : '根据用户输入自动匹配触发词,执行对应 Skill'}
|
|
217
|
+
- ${isEn ? 'Follow steps in order without skipping' : '严格按步骤顺序执行,不省略关键步骤'}
|
|
218
|
+
- ${isEn ? 'Output per skill template' : '输出格式遵循各 Skill 模板定义'}
|
|
160
219
|
`;
|
|
161
220
|
}
|
|
162
221
|
/** Windsurf:.windsurf/rules/smart-flow.md(类 Copilot 格式) */
|
|
163
222
|
function renderWindsurf(ctx) {
|
|
164
223
|
const { skills, version, generatedAt } = ctx;
|
|
224
|
+
const isEn = ctx.lang === 'en';
|
|
165
225
|
return `# Ethan - Windsurf Rules (v${version})
|
|
166
226
|
|
|
167
227
|
> Auto-generated from src/skills/ | ${generatedAt}
|
|
@@ -171,7 +231,7 @@ You are equipped with the Ethan workflow assistant for Windsurf. When users ment
|
|
|
171
231
|
|
|
172
232
|
## Available Skills
|
|
173
233
|
|
|
174
|
-
${skills.map((s) => renderCopilotSkill(s)).join('\n\n')}
|
|
234
|
+
${skills.map((s) => renderCopilotSkill(s, isEn)).join('\n\n')}
|
|
175
235
|
|
|
176
236
|
## General Rules
|
|
177
237
|
|
|
@@ -184,8 +244,9 @@ ${skills.map((s) => renderCopilotSkill(s)).join('\n\n')}
|
|
|
184
244
|
/** Zed:smart-flow.rules(精简纯文本,无复杂 Markdown 结构) */
|
|
185
245
|
function renderZed(ctx) {
|
|
186
246
|
const { skills, version, generatedAt } = ctx;
|
|
247
|
+
const isEn = ctx.lang === 'en';
|
|
187
248
|
const skillLines = skills
|
|
188
|
-
.map((s) => `${s.order}. ${s
|
|
249
|
+
.map((s) => `${s.order}. ${skillName(s, isEn)} [${s.triggers.slice(0, 3).join('/')}]\n ${desc(s, isEn)}\n Steps: ${s.steps.map((step) => step.title.replace(/^\d+\.\s*/, '')).join(' > ')}`)
|
|
189
250
|
.join('\n\n');
|
|
190
251
|
return `Ethan v${version} | ${generatedAt}
|
|
191
252
|
|
|
@@ -199,6 +260,7 @@ Rules: Follow steps in order. Output per skill template. Auto-detect intent from
|
|
|
199
260
|
/** JetBrains AI:.github/ai-instructions.md(类 Copilot) */
|
|
200
261
|
function renderJetBrains(ctx) {
|
|
201
262
|
const { skills, version, generatedAt } = ctx;
|
|
263
|
+
const isEn = ctx.lang === 'en';
|
|
202
264
|
return `# Ethan - JetBrains AI Instructions (v${version})
|
|
203
265
|
|
|
204
266
|
> Auto-generated from src/skills/ | ${generatedAt}
|
|
@@ -208,7 +270,7 @@ You are equipped with the Ethan workflow assistant for JetBrains AI. When users
|
|
|
208
270
|
|
|
209
271
|
## Available Skills
|
|
210
272
|
|
|
211
|
-
${skills.map((s) => renderCopilotSkill(s)).join('\n\n')}
|
|
273
|
+
${skills.map((s) => renderCopilotSkill(s, isEn)).join('\n\n')}
|
|
212
274
|
|
|
213
275
|
## General Rules
|
|
214
276
|
|
|
@@ -221,10 +283,28 @@ ${skills.map((s) => renderCopilotSkill(s)).join('\n\n')}
|
|
|
221
283
|
/** Continue:.continuerules(类 Cline 格式) */
|
|
222
284
|
function renderContinue(ctx) {
|
|
223
285
|
const { skills, version, generatedAt } = ctx;
|
|
224
|
-
const
|
|
286
|
+
const isEn = ctx.lang === 'en';
|
|
287
|
+
const skillsContent = skills.map((s) => renderClineSkill(s, isEn)).join('\n\n');
|
|
288
|
+
if (isEn) {
|
|
289
|
+
return `# Ethan v${version}
|
|
290
|
+
# Generated: ${generatedAt}
|
|
291
|
+
|
|
292
|
+
Ethan (Continue). Execute the matching skill workflow when trigger keywords are detected.
|
|
293
|
+
|
|
294
|
+
## Skill Triggers
|
|
295
|
+
${skills.map((s) => `- **${skillName(s, true)}**: ${s.triggers.slice(0, 4).join(' | ')}`).join('\n')}
|
|
296
|
+
|
|
297
|
+
---
|
|
298
|
+
|
|
299
|
+
${skillsContent}
|
|
300
|
+
|
|
301
|
+
---
|
|
302
|
+
Rules: Follow steps in order. Output per skill template.
|
|
303
|
+
`;
|
|
304
|
+
}
|
|
225
305
|
return `# Ethan v${version}
|
|
226
306
|
# Generated: ${generatedAt}
|
|
227
|
-
# Source: https://github.com/
|
|
307
|
+
# Source: https://github.com/aokiz-ek/smart-flow-skill
|
|
228
308
|
|
|
229
309
|
Ethan(Continue)。当用户输入以下触发词时,按对应 Skill 的步骤执行。
|
|
230
310
|
|
|
@@ -242,6 +322,7 @@ ${skillsContent}
|
|
|
242
322
|
/** Claude Code:CLAUDE.md(详细步骤格式,充分利用长上下文) */
|
|
243
323
|
function renderClaudeCode(ctx) {
|
|
244
324
|
const { skills, version, generatedAt } = ctx;
|
|
325
|
+
const isEn = ctx.lang === 'en';
|
|
245
326
|
const skillsContent = skills
|
|
246
327
|
.map((s) => {
|
|
247
328
|
const stepsContent = s.steps
|
|
@@ -249,13 +330,13 @@ function renderClaudeCode(ctx) {
|
|
|
249
330
|
.join('\n\n');
|
|
250
331
|
const triggersLine = s.triggers.map((t) => `\`${t}\``).join(', ');
|
|
251
332
|
const notesLine = s.notes && s.notes.length > 0
|
|
252
|
-
? `\n\n
|
|
333
|
+
? `\n\n**${isEn ? 'Notes' : '注意事项'}**:\n${s.notes.map((n) => `- ${n}`).join('\n')}`
|
|
253
334
|
: '';
|
|
254
|
-
return `### ${s.order}. ${s
|
|
335
|
+
return `### ${s.order}. ${skillName(s, isEn)} (\`${s.id}\`)
|
|
255
336
|
|
|
256
|
-
|
|
337
|
+
**${isEn ? 'Description' : '描述'}**: ${desc(s, isEn)}
|
|
257
338
|
|
|
258
|
-
|
|
339
|
+
**${isEn ? 'Triggers' : '触发词'}**: ${triggersLine}
|
|
259
340
|
|
|
260
341
|
**执行步骤**:
|
|
261
342
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"copilot-md.template.js","sourceRoot":"","sources":["../../src/templates/copilot-md.template.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"copilot-md.template.js","sourceRoot":"","sources":["../../src/templates/copilot-md.template.ts"],"names":[],"mappings":";;AAgBA,wCAyBC;AAvCD,+BAA+B;AAC/B,SAAS,IAAI,CAAC,KAAsB,EAAE,IAAa;IACjD,OAAO,IAAI,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC;AAC/E,CAAC;AAED,2CAA2C;AAC3C,SAAS,SAAS,CAAC,KAAsB,EAAE,IAAa;IACtD,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;AAC7D,CAAC;AAED;;;GAGG;AACH,SAAgB,cAAc,CAAC,GAAiB;IAC9C,QAAQ,GAAG,CAAC,QAAQ,EAAE,CAAC;QACrB,KAAK,SAAS;YACZ,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC;QAC5B,KAAK,OAAO;YACV,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC;QAC1B,KAAK,QAAQ;YACX,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC;QAC3B,KAAK,WAAW;YACd,OAAO,eAAe,CAAC,GAAG,CAAC,CAAC;QAC9B,KAAK,UAAU;YACb,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC;QAC7B,KAAK,KAAK;YACR,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;QACxB,KAAK,WAAW;YACd,OAAO,eAAe,CAAC,GAAG,CAAC,CAAC;QAC9B,KAAK,UAAU;YACb,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC;QAC7B,KAAK,aAAa;YAChB,OAAO,gBAAgB,CAAC,GAAG,CAAC,CAAC;QAC/B,KAAK,YAAY,CAAC;QAClB,KAAK,YAAY;YACf,+CAA+C;YAC/C,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;AACH,CAAC;AAED,sDAAsD;AACtD,SAAS,aAAa,CAAC,GAAiB;IACtC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,GAAG,CAAC;IAC7C,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC;IAE/B,OAAO,oCAAoC,OAAO;;sCAEd,WAAW;;;;;;;EAO/C,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;;;;;;;;CAQ5D,CAAC;AACF,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAsB,EAAE,IAAa;IAC/D,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK;SACtB,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;SACxG,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,OAAO,OAAO,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,KAAK,CAAC,MAAM;;gBAEvD,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;YAEpD,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC;;;EAG3B,KAAK;;cAEO,KAAK,CAAC,YAAY,EAAE,CAAC;AACnC,CAAC;AAED,wBAAwB;AACxB,SAAS,WAAW,CAAC,GAAiB;IACpC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,GAAG,CAAC;IAC7C,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC;IAC/B,MAAM,aAAa,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAEhF,IAAI,IAAI,EAAE,CAAC;QACT,OAAO,YAAY,OAAO;eACf,WAAW;;;;;EAKxB,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;;;EAIlG,aAAa;;;;CAId,CAAC;IACA,CAAC;IAED,OAAO,YAAY,OAAO;eACb,WAAW;;;;;;EAMxB,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;;;EAItF,aAAa;;;;CAId,CAAC;AACF,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAsB,EAAE,IAAa;IAC7D,MAAM,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC9F,IAAI,IAAI,EAAE,CAAC;QACT,OAAO,MAAM,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,KAAK,CAAC,EAAE;;YAExC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;QAC1C,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC;;EAEvB,YAAY;;UAEJ,KAAK,CAAC,YAAY,EAAE,CAAC;IAC7B,CAAC;IACD,OAAO,MAAM,KAAK,CAAC,IAAI;;KAEpB,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;KACtC,KAAK,CAAC,WAAW;;EAEpB,YAAY;;OAEP,KAAK,CAAC,YAAY,EAAE,CAAC;AAC5B,CAAC;AAED,oCAAoC;AACpC,SAAS,YAAY,CAAC,GAAiB;IACrC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,GAAG,CAAC;IAC7C,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC;IAE/B,IAAI,IAAI,EAAE,CAAC;QACT,OAAO,YAAY,OAAO;;eAEf,WAAW;;;;EAIxB,MAAM,CAAC,MAAM;;;;EAIb,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,qBAAqB,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;;;;;;;CAOpP,CAAC;IACA,CAAC;IAED,OAAO,YAAY,OAAO;;SAEnB,WAAW;;;;QAIZ,MAAM,CAAC,MAAM;;;;EAInB,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;;;;;;;;CAQrD,CAAC;AACF,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAsB;IAC/C,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACtD,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK;SAC1B,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC;SAClC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,OAAO,OAAO,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC,IAAI;;YAE9B,QAAQ;WACT,KAAK,CAAC,WAAW;;EAE1B,SAAS;WACA,KAAK,CAAC,YAAY,EAAE,CAAC;AAChC,CAAC;AAED,sCAAsC;AACtC,SAAS,eAAe,CAAC,GAAiB;IACxC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,GAAG,CAAC;IAC7C,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC;IAE/B,OAAO,YAAY,OAAO;;kDAEsB,WAAW;;;;EAI3D,MAAM;SACL,GAAG,CACF,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC;EAC9C,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;EAC/D,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC;EACrC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;EAC/F,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,YAAY,EAAE,CACzC;SACA,IAAI,CAAC,MAAM,CAAC;;KAEV,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;IACtB,IAAI,CAAC,CAAC,CAAC,iEAAiE,CAAC,CAAC,CAAC,0BAA0B;IACrG,IAAI,CAAC,CAAC,CAAC,wCAAwC,CAAC,CAAC,CAAC,mBAAmB;IACrE,IAAI,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,oBAAoB;CAC5D,CAAC;AACF,CAAC;AAED,2DAA2D;AAC3D,SAAS,cAAc,CAAC,GAAiB;IACvC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,GAAG,CAAC;IAC7C,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC;IAE/B,OAAO,8BAA8B,OAAO;;sCAER,WAAW;;;;;;;EAO/C,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;;;;;;;;CAQ5D,CAAC;AACF,CAAC;AAED,kDAAkD;AAClD,SAAS,SAAS,CAAC,GAAiB;IAClC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,GAAG,CAAC;IAC7C,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC;IAE/B,MAAM,UAAU,GAAG,MAAM;SACtB,GAAG,CACF,CAAC,CAAC,EAAE,EAAE,CACJ,GAAG,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CACtL;SACA,IAAI,CAAC,MAAM,CAAC,CAAC;IAEhB,OAAO,UAAU,OAAO,MAAM,WAAW;;;;EAIzC,UAAU;;;CAGX,CAAC;AACF,CAAC;AAED,yDAAyD;AACzD,SAAS,eAAe,CAAC,GAAiB;IACxC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,GAAG,CAAC;IAC7C,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC;IAE/B,OAAO,yCAAyC,OAAO;;sCAEnB,WAAW;;;;;;;EAO/C,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;;;;;;;;CAQ5D,CAAC;AACF,CAAC;AAED,0CAA0C;AAC1C,SAAS,cAAc,CAAC,GAAiB;IACvC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,GAAG,CAAC;IAC7C,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC;IAC/B,MAAM,aAAa,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAEhF,IAAI,IAAI,EAAE,CAAC;QACT,OAAO,YAAY,OAAO;eACf,WAAW;;;;;EAKxB,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;;;EAIlG,aAAa;;;;CAId,CAAC;IACA,CAAC;IAED,OAAO,YAAY,OAAO;eACb,WAAW;;;;;;EAMxB,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;;;EAItF,aAAa;;;;CAId,CAAC;AACF,CAAC;AAED,6CAA6C;AAC7C,SAAS,gBAAgB,CAAC,GAAiB;IACzC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,GAAG,CAAC;IAC7C,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC;IAE/B,MAAM,aAAa,GAAG,MAAM;SACzB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACT,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK;aACzB,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,IAAI,CAAC,KAAK,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;aACtD,IAAI,CAAC,MAAM,CAAC,CAAC;QAEhB,MAAM,YAAY,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClE,MAAM,SAAS,GACb,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;YAC3B,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,QAAQ,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YACnF,CAAC,CAAC,EAAE,CAAC;QAET,OAAO,OAAO,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE;;IAEzD,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,OAAO,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC;;IAE/C,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,OAAO,YAAY;;;;EAI9C,YAAY;;YAEF,CAAC,CAAC,YAAY,GAAG,SAAS,EAAE,CAAC;IACrC,CAAC,CAAC;SACD,IAAI,CAAC,aAAa,CAAC,CAAC;IAEvB,OAAO,YAAY,OAAO;;sCAEU,WAAW;;;;;SAKxC,MAAM,CAAC,MAAM;;;;;;;;;;;;EAYpB,aAAa;;;;;CAKd,CAAC;AACF,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { SkillDefinition } from '../skills/types';
|
|
2
|
+
export interface RouteResult {
|
|
3
|
+
skill: SkillDefinition;
|
|
4
|
+
matchedTrigger: string;
|
|
5
|
+
confidence: 'exact' | 'partial';
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* 根据用户输入路由到对应 Skill
|
|
9
|
+
* 优先精确匹配,其次模糊匹配
|
|
10
|
+
*/
|
|
11
|
+
export declare function routeTrigger(input: string): RouteResult | null;
|
|
12
|
+
/**
|
|
13
|
+
* 获取所有触发词映射表(用于展示和调试)
|
|
14
|
+
*/
|
|
15
|
+
export declare function getTriggerMap(): Map<string, SkillDefinition>;
|
|
16
|
+
//# sourceMappingURL=trigger-router.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trigger-router.d.ts","sourceRoot":"","sources":["../../../src/router/trigger-router.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAGvD,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,eAAe,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,OAAO,GAAG,SAAS,CAAC;CACjC;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAwB9D;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,CAQ5D"}
|
|
@@ -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
|