ethan-skill 1.6.0 → 1.7.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/index.js +21 -21
- package/dist/cli/index.js.map +1 -1
- package/dist/loader/custom-pipeline-loader.d.ts +15 -0
- package/dist/loader/custom-pipeline-loader.d.ts.map +1 -0
- package/dist/loader/custom-pipeline-loader.js +131 -0
- package/dist/loader/custom-pipeline-loader.js.map +1 -0
- package/dist/skills/11-api-design.d.ts +3 -0
- package/dist/skills/11-api-design.d.ts.map +1 -0
- package/dist/skills/11-api-design.js +214 -0
- package/dist/skills/11-api-design.js.map +1 -0
- package/dist/skills/12-security-review.d.ts +3 -0
- package/dist/skills/12-security-review.d.ts.map +1 -0
- package/dist/skills/12-security-review.js +194 -0
- package/dist/skills/12-security-review.js.map +1 -0
- package/dist/skills/13-deployment.d.ts +3 -0
- package/dist/skills/13-deployment.d.ts.map +1 -0
- package/dist/skills/13-deployment.js +189 -0
- package/dist/skills/13-deployment.js.map +1 -0
- package/dist/skills/14-prd.d.ts +3 -0
- package/dist/skills/14-prd.d.ts.map +1 -0
- package/dist/skills/14-prd.js +214 -0
- package/dist/skills/14-prd.js.map +1 -0
- package/dist/skills/index.d.ts +4 -0
- package/dist/skills/index.d.ts.map +1 -1
- package/dist/skills/index.js +17 -1
- package/dist/skills/index.js.map +1 -1
- package/dist/skills/pipeline.d.ts +2 -1
- package/dist/skills/pipeline.d.ts.map +1 -1
- package/dist/skills/pipeline.js +41 -3
- package/dist/skills/pipeline.js.map +1 -1
- package/package.json +1 -1
- package/rules/claude-code/CLAUDE.md +640 -2
- package/rules/cline/.clinerules +577 -1
- package/rules/codebuddy/CODEBUDDY.md +617 -1
- package/rules/continue/.continuerules +577 -1
- package/rules/copilot/copilot-instructions.md +605 -1
- package/rules/cursor/.cursorrules +635 -1
- package/rules/cursor/smart-flow.mdc +635 -1
- package/rules/jetbrains/smart-flow.md +605 -1
- package/rules/lingma/smart-flow.md +614 -2
- package/rules/windsurf/.windsurf/rules/smart-flow.md +606 -2
- package/rules/zed/smart-flow.rules +573 -1
package/dist/cli/index.js
CHANGED
|
@@ -641,31 +641,37 @@ const pipelineCmd = program
|
|
|
641
641
|
.description('Pipeline 链式执行管理');
|
|
642
642
|
pipelineCmd
|
|
643
643
|
.command('list')
|
|
644
|
-
.description('列出所有可用 Pipeline')
|
|
644
|
+
.description('列出所有可用 Pipeline(内置 + 自定义)')
|
|
645
645
|
.action(async () => {
|
|
646
646
|
const { PIPELINES } = await Promise.resolve().then(() => __importStar(require('../skills/pipeline')));
|
|
647
|
+
const customPipelines = loadCustomPipelines(process.cwd());
|
|
648
|
+
const all = [...PIPELINES, ...customPipelines];
|
|
647
649
|
console.log('\nEthan Pipelines\n');
|
|
648
650
|
console.log('─'.repeat(60));
|
|
649
|
-
for (const p of
|
|
650
|
-
|
|
651
|
+
for (const p of all) {
|
|
652
|
+
const isCustom = !PIPELINES.find((bp) => bp.id === p.id);
|
|
653
|
+
const tag = isCustom ? ' 🔧 自定义' : '';
|
|
654
|
+
console.log(`\n${p.id}${tag}`);
|
|
651
655
|
console.log(` 名称:${p.name}`);
|
|
652
656
|
console.log(` 描述:${p.description}`);
|
|
653
657
|
console.log(` Skills:${p.skillIds.join(' → ')}`);
|
|
654
658
|
}
|
|
655
659
|
console.log('\n' + '─'.repeat(60));
|
|
656
|
-
console.log(`Total: ${PIPELINES.length} pipelines`);
|
|
660
|
+
console.log(`Total: ${PIPELINES.length} 内置 + ${customPipelines.length} 自定义 = ${all.length} pipelines`);
|
|
657
661
|
});
|
|
658
662
|
pipelineCmd
|
|
659
663
|
.command('run <name>')
|
|
660
664
|
.description('按 Pipeline 顺序执行各 Skill 提示')
|
|
661
665
|
.option('-c, --context <context>', '输入上下文', '')
|
|
662
666
|
.action(async (name, options) => {
|
|
663
|
-
const { resolvePipeline } = await Promise.resolve().then(() => __importStar(require('../skills/pipeline')));
|
|
664
|
-
const
|
|
667
|
+
const { resolvePipeline, PIPELINES } = await Promise.resolve().then(() => __importStar(require('../skills/pipeline')));
|
|
668
|
+
const customPipelines = loadCustomPipelines(process.cwd());
|
|
669
|
+
const activeSkills = await getActiveSkills();
|
|
670
|
+
const resolved = resolvePipeline(name, customPipelines, activeSkills);
|
|
665
671
|
if (!resolved) {
|
|
666
|
-
const
|
|
672
|
+
const allIds = [...PIPELINES.map((p) => p.id), ...customPipelines.map((p) => p.id)];
|
|
667
673
|
console.error(`Unknown pipeline: ${name}`);
|
|
668
|
-
console.error(`Available: ${
|
|
674
|
+
console.error(`Available: ${allIds.join(' | ')}`);
|
|
669
675
|
process.exit(1);
|
|
670
676
|
}
|
|
671
677
|
const { pipeline, skills } = resolved;
|
|
@@ -3134,23 +3140,17 @@ name: 自定义工作流名称
|
|
|
3134
3140
|
description: 这个 Pipeline 的描述
|
|
3135
3141
|
|
|
3136
3142
|
# 引用的 Skill ID 列表(按执行顺序)
|
|
3137
|
-
#
|
|
3138
|
-
#
|
|
3139
|
-
#
|
|
3143
|
+
# 内置 Skill ID:
|
|
3144
|
+
# 需求侧: requirement-understanding, prd
|
|
3145
|
+
# 执行侧: task-breakdown, solution-design, api-design, implementation, deployment
|
|
3146
|
+
# 跟踪侧: progress-tracking
|
|
3147
|
+
# 输出侧: task-report, weekly-report
|
|
3148
|
+
# 质量侧: code-review, debug, tech-research, security-review
|
|
3149
|
+
# 也可以引用 .ethan/skills/ 中的自定义 Skill ID
|
|
3140
3150
|
skillIds:
|
|
3141
3151
|
- requirement-understanding
|
|
3142
3152
|
- solution-design
|
|
3143
3153
|
- implementation
|
|
3144
|
-
|
|
3145
|
-
# (可选)输出结构定义:每个字段对应 AI 需要输出的内容
|
|
3146
|
-
# outputSchema:
|
|
3147
|
-
# featureSpec:
|
|
3148
|
-
# type: string
|
|
3149
|
-
# description: 需求规格说明书
|
|
3150
|
-
# required: true
|
|
3151
|
-
# designDoc:
|
|
3152
|
-
# type: string
|
|
3153
|
-
# description: 技术方案设计文档
|
|
3154
3154
|
`;
|
|
3155
3155
|
fs.writeFileSync(filePath, template, 'utf-8');
|
|
3156
3156
|
console.log(`\n✅ 自定义 Pipeline 模板已生成:${filePath}`);
|