sdd-skills 1.1.10 → 1.3.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/README.md CHANGED
@@ -20,8 +20,7 @@ sdd-skills
20
20
  | Skill | 角色 | 职责 |
21
21
  |-------|------|------|
22
22
  | **sae** | 架构师 | 需求分析、架构设计、技术方案 |
23
- | **backend-engineer** | Golang 后端工程师 | API 设计、数据库、业务逻辑实现 |
24
- | **frontend-engineer** | Vue 前端工程师 | 组件开发、状态管理、用户交互 |
23
+ | **developer** | 研发工程师 | 前后端代码实现(Go后端、Vue/React前端) |
25
24
  | **tester** | 测试工程师 | 单元测试、E2E 测试、质量保障 |
26
25
  | **code-reviewer** | 代码审查专家 | 代码质量、安全审查、规范检查 |
27
26
  | **git-engineer** | Git 工程师 | 预检测、提交规范、MR 创建 |
@@ -34,8 +33,7 @@ sdd-skills
34
33
 
35
34
  🗣️ Pre-Execution Review(多角色讨论)
36
35
  ├─ SAE 角度:需求清晰度、架构复杂度
37
- ├─ Backend Engineer 角度:技术可行性、性能评估
38
- ├─ Frontend Engineer 角度:用户体验、组件设计
36
+ ├─ Developer 角度:技术可行性、性能评估
39
37
  ├─ Tester 角度:测试策略、环境需求
40
38
  ├─ Code Reviewer 角度:潜在风险、安全关注
41
39
  └─ Git Engineer 角度:CI/CD 兼容性
@@ -44,17 +42,16 @@ sdd-skills
44
42
 
45
43
  📐 SAE → 需求规格文档
46
44
 
47
- 👨‍💻 Backend Engineer 后端 OpenSpec → 代码实现
48
- 👩‍💻 Frontend Engineer → 前端 OpenSpec → 代码实现
45
+ 👨‍💻 Developer → OpenSpec → 代码实现(后端 + 前端)
49
46
 
50
47
  🧪 Tester → 测试验证
51
- ├─ 失败 → 📢 钉钉通知 → 返回开发
48
+ ├─ 失败 → 📢 钉钉通知 → 返回 Developer 修复
52
49
  └─ 成功 ↓
53
50
  👀 Code Reviewer → 代码审查
54
- ├─ 失败 → 📢 钉钉通知 → 返回开发
51
+ ├─ 失败 → 📢 钉钉通知 → 返回 Developer 修复
55
52
  └─ 成功 ↓
56
53
  🚀 Git Engineer → 预检测 + 提交 + MR
57
- ├─ 失败 → 📢 钉钉通知 → 返回开发
54
+ ├─ 失败 → 📢 钉钉通知 → 返回 Developer 修复
58
55
  └─ 成功 ↓
59
56
  ✅ 完成(等待 MR 批准)
60
57
  ```
@@ -96,7 +93,7 @@ Claude (SAE Skill):
96
93
  - 工作流: user-login
97
94
  - 失败阶段: Tester
98
95
  - 错误信息: 3/10 测试用例失败
99
- - 建议操作: 返回 Backend Engineer 修复
96
+ - 建议操作: 返回 Developer 修复
100
97
 
101
98
  🕐 时间: 2026-01-06 14:30:00
102
99
  ```
@@ -143,14 +140,16 @@ npm unlink -g sdd-skills
143
140
 
144
141
  ## 📚 技术栈说明
145
142
 
146
- ### Backend Engineer Skill
143
+ ### Developer Skill (研发工程师)
144
+
145
+ **后端技术栈**:
147
146
  - **语言**: Go 1.21+
148
147
  - **框架**: Gin / Echo / Fiber
149
148
  - **数据库**: PostgreSQL, MySQL, Redis
150
149
  - **测试**: go test, testify, gomock
151
150
  - **覆盖率要求**: >= 90%
152
151
 
153
- ### Frontend Engineer Skill
152
+ **前端技术栈**:
154
153
  - **框架**: Vue 3 / React 18+ (支持多框架)
155
154
  - **状态管理**: Pinia / Redux Toolkit / Zustand
156
155
  - **构建工具**: Vite
package/install.js CHANGED
@@ -7,7 +7,7 @@
7
7
  * to Claude Code's skills directory.
8
8
  */
9
9
 
10
- import { readFileSync, existsSync, mkdirSync, writeFileSync, cpSync } from 'fs';
10
+ import { readFileSync, existsSync, mkdirSync, writeFileSync, cpSync, rmSync } from 'fs';
11
11
  import { join, dirname } from 'path';
12
12
  import { homedir } from 'os';
13
13
  import { fileURLToPath } from 'url';
@@ -32,6 +32,9 @@ const GLOBAL_SKILLS_DIR = join(homedir(), '.claude', 'skills');
32
32
  const LOCAL_SKILLS_DIR = join(process.cwd(), '.claude', 'skills');
33
33
  const SOURCE_SKILLS_DIR = join(__dirname, 'skills');
34
34
 
35
+ // Deprecated skills to clean up on upgrade
36
+ const DEPRECATED_SKILLS = ['backend-engineer', 'frontend-engineer'];
37
+
35
38
  /**
36
39
  * Display welcome banner
37
40
  */
@@ -133,6 +136,26 @@ async function promptInstallation() {
133
136
  return answers;
134
137
  }
135
138
 
139
+ /**
140
+ * Clean up deprecated skills from previous installations
141
+ */
142
+ function cleanupDeprecatedSkills(targetDir) {
143
+ let removedCount = 0;
144
+ for (const skill of DEPRECATED_SKILLS) {
145
+ const skillDir = join(targetDir, skill);
146
+ if (existsSync(skillDir)) {
147
+ try {
148
+ rmSync(skillDir, { recursive: true });
149
+ console.log(chalk.yellow(` ⚠ Removed deprecated: ${skill}`));
150
+ removedCount++;
151
+ } catch (error) {
152
+ console.log(chalk.red(` ✗ Failed to remove ${skill}: ${error.message}`));
153
+ }
154
+ }
155
+ }
156
+ return removedCount;
157
+ }
158
+
136
159
  /**
137
160
  * Install Skills to target directory
138
161
  */
@@ -145,11 +168,16 @@ function installSkills(targetDir) {
145
168
  console.log(chalk.gray(` Created directory: ${targetDir}`));
146
169
  }
147
170
 
171
+ // Clean up deprecated skills first
172
+ const removedCount = cleanupDeprecatedSkills(targetDir);
173
+ if (removedCount > 0) {
174
+ console.log('');
175
+ }
176
+
148
177
  // Get list of skills
149
178
  const skills = [
150
179
  'sae',
151
- 'backend-engineer',
152
- 'frontend-engineer',
180
+ 'developer',
153
181
  'tester',
154
182
  'code-reviewer',
155
183
  'git-engineer',
@@ -213,7 +241,7 @@ function displaySummary(location) {
213
241
  console.log(chalk.bold.green('\n✨ Installation Complete!\n'));
214
242
  console.log(chalk.bold('📋 Summary:\n'));
215
243
  console.log(` ${chalk.gray('Location:')} ${chalk.cyan(skillsPath)}`);
216
- console.log(` ${chalk.gray('Skills:')} ${chalk.cyan('7')} (SAE, Backend, Frontend, Tester, Reviewer, Git, Notifier)`);
244
+ console.log(` ${chalk.gray('Skills:')} ${chalk.cyan('6')} (SAE, Developer, Tester, Reviewer, Git, Notifier)`);
217
245
 
218
246
  console.log(chalk.bold('\n🚀 Getting Started:\n'));
219
247
  console.log(' 1. Open Claude Code');
@@ -246,7 +274,7 @@ async function install() {
246
274
  console.log(chalk.bold('\n📋 Installation Summary:\n'));
247
275
  console.log(` ${chalk.gray('Location:')} ${chalk.cyan(answers.location === 'global' ? 'Global' : 'Local (Current Project)')}`);
248
276
  console.log(` ${chalk.gray('Install to:')} ${chalk.cyan(targetDir)}`);
249
- console.log(` ${chalk.gray('Skills:')} ${chalk.cyan('7')} (SAE, Backend, Frontend, Tester, Reviewer, Git, Notifier)`);
277
+ console.log(` ${chalk.gray('Skills:')} ${chalk.cyan('6')} (SAE, Developer, Tester, Reviewer, Git, Notifier)`);
250
278
  if (answers.configureDingTalk) {
251
279
  console.log(` ${chalk.gray('DingTalk:')} ${chalk.cyan('Enabled')}`);
252
280
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sdd-skills",
3
- "version": "1.1.10",
3
+ "version": "1.3.0",
4
4
  "description": "Spec-Driven Development Skills for Claude Code - SAE/ADE workflow automation",
5
5
  "type": "module",
6
6
  "main": "install.js",