@llryiop/avatar-boot-cli 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (77) hide show
  1. package/README.md +309 -0
  2. package/bin/cli.js +3 -0
  3. package/docs/plans/2026-03-12-avatar-boot-cli-design.md +73 -0
  4. package/docs/plans/2026-03-12-avatar-boot-cli-plan.md +681 -0
  5. package/package.json +28 -0
  6. package/src/index.js +78 -0
  7. package/src/prompts.js +78 -0
  8. package/src/template.js +37 -0
  9. package/src/transform.js +172 -0
  10. package/src/utils.js +34 -0
  11. package/templates/.claude/rules/architecture-redlines.md +146 -0
  12. package/templates/.claude/rules/code-review-standards.md +137 -0
  13. package/templates/.claude/rules/coding-standards.md +56 -0
  14. package/templates/.claude/rules/git-commit.md +59 -0
  15. package/templates/.claude/rules/layered-architecture.md +201 -0
  16. package/templates/.claude/rules/mybatis-plus.md +263 -0
  17. package/templates/.claude/rules/tech-stack.md +41 -0
  18. package/templates/.claude/rules/version.md +467 -0
  19. package/templates/.claude/settings.local.json +18 -0
  20. package/templates/.claude/skills/ai-tool-guide/SKILL.md +314 -0
  21. package/templates/.claude/skills/api-design/SKILL.md +200 -0
  22. package/templates/.claude/skills/api-doc-generator/SKILL.md +380 -0
  23. package/templates/.claude/skills/api-service-module-creator/SKILL.md +1114 -0
  24. package/templates/.claude/skills/avatar-boot-starter-feign/SKILL.md +243 -0
  25. package/templates/.claude/skills/avatar-boot-starter-job/SKILL.md +437 -0
  26. package/templates/.claude/skills/avatar-boot-starter-kafka/SKILL.md +580 -0
  27. package/templates/.claude/skills/avatar-boot-starter-mysql/SKILL.md +572 -0
  28. package/templates/.claude/skills/avatar-boot-starter-nacos/SKILL.md +901 -0
  29. package/templates/.claude/skills/avatar-boot-starter-oss/SKILL.md +594 -0
  30. package/templates/.claude/skills/avatar-boot-starter-redis/SKILL.md +586 -0
  31. package/templates/.claude/skills/avatar-boot-starter-rocketmq/SKILL.md +662 -0
  32. package/templates/.claude/skills/avatar-boot-starter-web/SKILL.md +1007 -0
  33. package/templates/.claude/skills/changelog-generator/SKILL.md +114 -0
  34. package/templates/.claude/skills/code-review/SKILL.md +239 -0
  35. package/templates/.claude/skills/crud-generator/SKILL.md +824 -0
  36. package/templates/.claude/skills/database-design/SKILL.md +377 -0
  37. package/templates/.claude/skills/deployment-config/SKILL.md +277 -0
  38. package/templates/.claude/skills/incident-analysis/SKILL.md +241 -0
  39. package/templates/.claude/skills/integration-test-generator/SKILL.md +496 -0
  40. package/templates/.claude/skills/prompt-engineering/SKILL.md +249 -0
  41. package/templates/.claude/skills/requirement-management/SKILL.md +244 -0
  42. package/templates/.claude/skills/security-audit/SKILL.md +330 -0
  43. package/templates/.claude/skills/test-case-design/SKILL.md +257 -0
  44. package/templates/.claude/skills/testing-workflow/SKILL.md +68 -0
  45. package/templates/.claude/skills/troubleshooting/SKILL.md +240 -0
  46. package/templates/CLAUDE.md +173 -0
  47. package/templates/README.md +303 -0
  48. package/templates/avatar-scaffold-api/pom.xml +41 -0
  49. package/templates/avatar-scaffold-api/src/main/java/com/iflytek/avatar/login/api/LoginFeignClient.java +40 -0
  50. package/templates/avatar-scaffold-api/src/main/java/com/iflytek/avatar/login/constant/LoginConstant.java +21 -0
  51. package/templates/avatar-scaffold-api/src/main/java/com/iflytek/avatar/login/dto/request/LoginRequest.java +17 -0
  52. package/templates/avatar-scaffold-api/src/main/java/com/iflytek/avatar/login/dto/request/RefreshTokenRequest.java +14 -0
  53. package/templates/avatar-scaffold-api/src/main/java/com/iflytek/avatar/login/dto/response/LoginResponse.java +31 -0
  54. package/templates/avatar-scaffold-api/src/main/java/com/iflytek/avatar/login/dto/response/TokenInfoResponse.java +25 -0
  55. package/templates/avatar-scaffold-api/src/main/java/com/iflytek/avatar/login/enums/LoginTypeEnum.java +23 -0
  56. package/templates/avatar-scaffold-api/src/main/java/com/iflytek/avatar/login/exception/LoginException.java +23 -0
  57. package/templates/avatar-scaffold-service/k8s-app/Dockerfile +14 -0
  58. package/templates/avatar-scaffold-service/k8s-app/Dockerfile-arm64 +14 -0
  59. package/templates/avatar-scaffold-service/packaging/assembly.xml +16 -0
  60. package/templates/avatar-scaffold-service/pom.xml +150 -0
  61. package/templates/avatar-scaffold-service/src/main/java/com/iflytek/avatar/Application.java +21 -0
  62. package/templates/avatar-scaffold-service/src/main/java/com/iflytek/avatar/login/config/LoginConfig.java +20 -0
  63. package/templates/avatar-scaffold-service/src/main/java/com/iflytek/avatar/login/controller/LoginController.java +37 -0
  64. package/templates/avatar-scaffold-service/src/main/java/com/iflytek/avatar/login/converter/LoginConverter.java +54 -0
  65. package/templates/avatar-scaffold-service/src/main/java/com/iflytek/avatar/login/feign/DemoFeign.java +21 -0
  66. package/templates/avatar-scaffold-service/src/main/java/com/iflytek/avatar/login/repository/entity/UserLoginEntity.java +33 -0
  67. package/templates/avatar-scaffold-service/src/main/java/com/iflytek/avatar/login/repository/entity/UserTokenEntity.java +39 -0
  68. package/templates/avatar-scaffold-service/src/main/java/com/iflytek/avatar/login/repository/mapper/UserLoginMapper.java +20 -0
  69. package/templates/avatar-scaffold-service/src/main/java/com/iflytek/avatar/login/service/LoginService.java +22 -0
  70. package/templates/avatar-scaffold-service/src/main/java/com/iflytek/avatar/login/service/impl/LoginServiceImpl.java +43 -0
  71. package/templates/avatar-scaffold-service/src/main/java/com/iflytek/avatar/login/utils/LoginUtils.java +31 -0
  72. package/templates/avatar-scaffold-service/src/main/resources/application-dev.yaml +29 -0
  73. package/templates/avatar-scaffold-service/src/main/resources/application-local.yaml +61 -0
  74. package/templates/avatar-scaffold-service/src/main/resources/application-prod.yaml +28 -0
  75. package/templates/avatar-scaffold-service/src/main/resources/application-test.yaml +28 -0
  76. package/templates/avatar-scaffold-service/src/main/resources/application.yaml +12 -0
  77. package/templates/pom.xml +98 -0
@@ -0,0 +1,114 @@
1
+ ---
2
+ name: changelog-generator
3
+ description: |
4
+ 变更日志生成技能 - 从 Git 提交记录自动生成 Keep-a-Changelog 格式的变更日志。
5
+ triggers: changelog, 变更日志, release notes, 发版记录
6
+ globs:
7
+ - "CHANGELOG.md"
8
+ - "CHANGELOG*.md"
9
+ ---
10
+
11
+ # 变更日志生成 (Changelog Generator)
12
+
13
+ ## 概述
14
+
15
+ 基于 Git commit 历史,自动生成符合 [Keep a Changelog](https://keepachangelog.com/zh-CN/)
16
+ 规范的变更日志。复用 git-commit.md 中定义的 Conventional Commits 约定进行分类映射。
17
+
18
+ ## Commit Type 到 Changelog 分类映射
19
+
20
+ | Commit Type | Changelog 分类 | 说明 |
21
+ |-------------|----------------|------|
22
+ | `feat` | **Added** | 新增功能 |
23
+ | `fix` | **Fixed** | 缺陷修复 |
24
+ | `perf` | **Changed** | 性能优化 |
25
+ | `refactor` | **Changed** | 代码重构 |
26
+ | `style` | **Changed** | 代码风格调整 |
27
+ | `docs` | **Changed** | 文档变更 |
28
+ | `build` | **Changed** | 构建系统或依赖变更 |
29
+ | `ci` | **Changed** | CI/CD 配置变更 |
30
+ | `test` | **Changed** | 测试相关变更 |
31
+ | `chore` | **Changed** | 其他日常维护 |
32
+ | `deprecate` | **Deprecated** | 即将移除的功能 (自定义 type) |
33
+ | `remove` | **Removed** | 已移除的功能 (自定义 type) |
34
+ | `security` | **Security** | 安全相关修复 (自定义 type) |
35
+
36
+ > **注意**: `deprecate`、`remove`、`security` 为自定义 type,如项目未使用,
37
+ > 可从 commit message body 中的关键词识别归类。
38
+
39
+ ## 生成流程
40
+
41
+ 1. **确定版本范围**: 获取上一个 tag 到 HEAD 之间的 commit 列表。
42
+ 2. **解析 commit**: 按 Conventional Commits 格式提取 type、scope、description。
43
+ 3. **分类归组**: 根据映射表将 commit 归入对应 Changelog 分类。
44
+ 4. **Breaking Changes**: 含 `BREAKING CHANGE` 或 `!` 标记的 commit 单独高亮。
45
+ 5. **生成输出**: 按模板格式输出 Markdown。
46
+
47
+ ## 输出模板
48
+
49
+ ```markdown
50
+ # Changelog
51
+
52
+ ## [版本号] - YYYY-MM-DD
53
+
54
+ ### Added
55
+ - feat(scope): 功能描述 (#PR编号)
56
+
57
+ ### Changed
58
+ - refactor(scope): 重构描述
59
+ - perf(scope): 优化描述
60
+
61
+ ### Deprecated
62
+ - deprecate(scope): 废弃说明
63
+
64
+ ### Removed
65
+ - remove(scope): 移除说明
66
+
67
+ ### Fixed
68
+ - fix(scope): 修复描述 (#Issue编号)
69
+
70
+ ### Security
71
+ - security(scope): 安全修复描述
72
+
73
+ ### BREAKING CHANGES
74
+ - **scope**: 破坏性变更说明,迁移方式: ...
75
+ ```
76
+
77
+ ## 使用示例
78
+
79
+ 生成从上一个 tag 到当前 HEAD 的变更日志:
80
+
81
+ ```bash
82
+ # 获取上一个 tag
83
+ LAST_TAG=$(git describe --tags --abbrev=0 2>/dev/null || echo "")
84
+
85
+ # 获取 commit 列表
86
+ if [ -n "$LAST_TAG" ]; then
87
+ git log ${LAST_TAG}..HEAD --pretty=format:"%h %s" --no-merges
88
+ else
89
+ git log --pretty=format:"%h %s" --no-merges
90
+ fi
91
+ ```
92
+
93
+ 交给 AI 处理时,提供如下指令:
94
+
95
+ ```
96
+ 请根据以下 git log 输出生成 CHANGELOG,遵循 Keep a Changelog 格式:
97
+ - 版本号: vX.Y.Z
98
+ - 日期: 今天
99
+ - 按 Added / Changed / Fixed 等分类
100
+ - 忽略 merge commit
101
+ ```
102
+
103
+ ## Best Practices
104
+
105
+ 1. **语义化版本**: Changelog 版本号遵循 [SemVer](https://semver.org/) -
106
+ Breaking Change 升 MAJOR,新功能升 MINOR,修复升 PATCH。
107
+ 2. **面向用户描述**: Changelog 内容应让非开发人员也能理解变更影响,
108
+ 避免纯技术术语。
109
+ 3. **关联追踪**: 每条变更尽量附上 Issue / PR 编号,便于溯源。
110
+ 4. **空分类省略**: 没有对应 commit 的分类不出现在输出中,保持简洁。
111
+ 5. **Breaking Changes 醒目**: 破坏性变更单独列出,并提供迁移指引。
112
+ 6. **自动化集成**: 建议在 CI/CD 流水线中,release 阶段自动生成并追加到
113
+ `CHANGELOG.md` 文件头部。
114
+ 7. **保留历史**: 新版本追加到文件顶部,不删除历史版本记录。
@@ -0,0 +1,239 @@
1
+ ---
2
+ name: code-review
3
+ description: |
4
+ 自动化代码审查工作流。对代码变更进行多维度审查,输出结构化审查报告。
5
+ 触发词: code review, CR, review PR, check code, 代码审查, 审查代码, review changes
6
+ ---
7
+
8
+ # 代码审查技能 (Code Review Skill)
9
+
10
+ ## 概述
11
+
12
+ 本技能实现自动化代码审查工作流,针对 Avatar Boot 项目(Spring Boot 3.5.3 + Java 21 + MyBatis Plus)的技术栈特点,对代码变更进行多维度审查并输出结构化报告。
13
+
14
+ ---
15
+
16
+ ## 审查工作流
17
+
18
+ ### 第一步:识别变更文件
19
+
20
+ 获取当前分支相对于目标分支的所有变更文件:
21
+
22
+ ```bash
23
+ # 获取变更文件列表
24
+ git diff --name-only main...HEAD
25
+
26
+ # 获取变更文件的详细 diff
27
+ git diff main...HEAD
28
+
29
+ # 获取暂存区的变更
30
+ git diff --cached
31
+
32
+ # 获取未暂存的变更
33
+ git diff
34
+
35
+ # 获取单个文件的变更详情
36
+ git diff main...HEAD -- path/to/file.java
37
+ ```
38
+
39
+ 如果用户未指定分支,默认与 `main` 或 `master` 分支比较。
40
+
41
+ ### 第二步:按类型分类文件
42
+
43
+ 将变更文件按以下类型分类,每种类型有不同的审查重点:
44
+
45
+ | 文件类型 | 路径模式 | 审查优先级 |
46
+ |----------|----------|------------|
47
+ | Controller | `**/controller/*.java` | 高 |
48
+ | Service | `**/service/**/*.java` | 高 |
49
+ | Mapper | `**/mapper/*.java`, `**/mapper/*.xml` | 高 |
50
+ | Entity | `**/dao/beans/*.java` | 中 |
51
+ | Request DTO | `**/entity/request/*.java` | 中 |
52
+ | Response DTO | `**/entity/response/*.java` | 中 |
53
+ | Configuration | `**/config/*.java`, `*.yml`, `*.yaml`, `*.properties` | 中 |
54
+ | Test | `**/test/**/*.java` | 中 |
55
+ | SQL | `*.sql` | 高 |
56
+ | Other | 其他文件 | 低 |
57
+
58
+ ### 第三步:应用审查标准
59
+
60
+ 对每个文件根据类型应用对应的审查标准,参考 [code-review-standards.md](../../rules/code-review-standards.md)。
61
+
62
+ ### 第四步:生成审查报告
63
+
64
+ ---
65
+
66
+ ## 各文件类型审查重点
67
+
68
+ > 完整的分层审查清单和代码示例详见 [code-review-standards.md](../../rules/code-review-standards.md)
69
+
70
+ 按文件类型分配审查优先级:
71
+
72
+ | 文件类型 | 核心审查点 | 参考规则 |
73
+ |----------|-----------|---------|
74
+ | Controller | Result<T>、参数校验、禁止业务逻辑 | [layered-architecture.md](../../rules/layered-architecture.md) |
75
+ | Service | 事务注解、DTO 转换、N+1 查询 | [layered-architecture.md](../../rules/layered-architecture.md) |
76
+ | Mapper | `#{}` 防注入、分页插件、批量操作 | [mybatis-plus.md](../../rules/mybatis-plus.md) |
77
+ | Entity | @TableName/@TableId/自动填充/逻辑删除 | [mybatis-plus.md](../../rules/mybatis-plus.md) |
78
+ | Configuration | 敏感信息加密、profile 隔离 | [code-review-standards.md](../../rules/code-review-standards.md) |
79
+ | Test | 断言完整、正常+异常流程覆盖 | [testing-workflow](../testing-workflow/) |
80
+ | SQL | 注入检查、索引优化 | [security-audit](../security-audit/) |
81
+
82
+ ---
83
+
84
+ ## 输出格式
85
+
86
+ ### 单条审查意见格式
87
+
88
+ ```
89
+ [严重等级] 文件路径:行号 — 问题描述
90
+
91
+ 问题说明:详细描述问题及其影响。
92
+
93
+ 建议修改:具体的修改方案或示例代码。
94
+ ```
95
+
96
+ ### 完整审查报告格式
97
+
98
+ ```markdown
99
+ ## Code Review Report
100
+
101
+ **审查范围**: feature/xxx → main
102
+ **变更文件数**: X 个
103
+ **变更行数**: +XX / -XX
104
+
105
+ ---
106
+
107
+ ### 审查摘要
108
+
109
+ | 等级 | 数量 | 说明 |
110
+ |------|------|------|
111
+ | 🚫 Blocker | X | 必须修复 |
112
+ | ⚠️ Major | X | 应当修复 |
113
+ | 💡 Minor | X | 建议修复 |
114
+ | 📝 Suggestion | X | 可选改进 |
115
+
116
+ ---
117
+
118
+ ### Blocker 问题
119
+
120
+ #### 🚫 [Blocker-1] SQL 注入风险
121
+ - **文件**: `UserMapper.java:25`
122
+ - **问题**: 使用 ${username} 拼接 SQL 参数
123
+ - **影响**: 攻击者可通过构造恶意输入执行任意 SQL
124
+ - **建议**: 改为 #{username} 占位符
125
+
126
+ ---
127
+
128
+ ### Major 问题
129
+
130
+ #### ⚠️ [Major-1] 缺少事务注解
131
+ - **文件**: `OrderServiceImpl.java:42`
132
+ - **问题**: createOrder 方法包含多表写操作但未添加 @Transactional
133
+ - **影响**: 部分写入失败时无法回滚,数据不一致
134
+ - **建议**: 添加 @Transactional(rollbackFor = Exception.class)
135
+
136
+ ---
137
+
138
+ ### Minor 问题
139
+
140
+ (同上格式...)
141
+
142
+ ---
143
+
144
+ ### Suggestion
145
+
146
+ (同上格式...)
147
+
148
+ ---
149
+
150
+ ### 审查总结
151
+
152
+ 对本次变更的总体评价和合并建议。
153
+ ```
154
+
155
+ ---
156
+
157
+ ## Git Diff 集成命令
158
+
159
+ 常用的 Git 命令,用于获取审查所需的变更信息:
160
+
161
+ ```bash
162
+ # 查看当前分支与 main 的差异文件列表
163
+ git diff --name-only main...HEAD
164
+
165
+ # 查看详细差异(含行号)
166
+ git diff main...HEAD
167
+
168
+ # 查看某个 commit 的变更
169
+ git show <commit-hash>
170
+
171
+ # 查看某个文件的变更历史
172
+ git log --oneline -10 -- path/to/file.java
173
+
174
+ # 查看暂存区变更
175
+ git diff --cached --name-only
176
+
177
+ # 统计变更行数
178
+ git diff --stat main...HEAD
179
+
180
+ # 查看指定目录下的变更
181
+ git diff main...HEAD -- "*/controller/*.java"
182
+ git diff main...HEAD -- "*/service/**/*.java"
183
+ git diff main...HEAD -- "*/mapper/*.java"
184
+ ```
185
+
186
+ ---
187
+
188
+ ## 交叉引用
189
+
190
+ - **审查标准**: [code-review-standards.md](../../rules/code-review-standards.md) — 详细的审查规则和清单
191
+ - **编码规范**: [coding-standards.md](../../rules/coding-standards.md) — 代码风格和命名规范
192
+ - **架构红线**: [architecture-redlines.md](../../rules/architecture-redlines.md) — 架构层面的强制约束
193
+
194
+ ---
195
+
196
+ ## 审查最佳实践
197
+
198
+ ### 审查者守则
199
+
200
+ 1. **聚焦问题本身**,不针对个人。使用「这段代码」而非「你的代码」
201
+ 2. **给出具体建议**,不只说「这样不好」,要说明为什么不好以及怎么改
202
+ 3. **区分严重等级**,不要把所有问题都标为 Blocker
203
+ 4. **肯定好的实现**,适当给出正面反馈
204
+ 5. **考虑上下文**,了解变更的背景和约束条件
205
+ 6. **及时审查**,不要让 PR 长时间等待审查
206
+
207
+ ### 审查效率
208
+
209
+ 1. **先看整体**:先浏览文件列表和变更摘要,了解整体改动范围
210
+ 2. **再看重点**:优先审查 Controller、Service、Mapper 等核心文件
211
+ 3. **后看细节**:最后关注代码风格、命名等细节问题
212
+ 4. **批量反馈**:一次性提交所有审查意见,避免反复来回
213
+
214
+ ---
215
+
216
+ ## 常见问题排查
217
+
218
+ ### Q: 审查范围太大怎么办?
219
+
220
+ 建议将大的 PR 拆分为多个小 PR。如果无法拆分,按以下优先级审查:
221
+ 1. 安全相关变更(SQL、认证、授权)
222
+ 2. 核心业务逻辑(Service 层)
223
+ 3. 接口定义(Controller 层)
224
+ 4. 数据层变更(Mapper、Entity)
225
+ 5. 配置和测试
226
+
227
+ ### Q: 如何审查不熟悉的模块?
228
+
229
+ 1. 先阅读模块的 README 或文档
230
+ 2. 从 Controller 入手,沿调用链理解逻辑
231
+ 3. 关注通用审查项(安全、性能、规范)
232
+ 4. 标注不确定的地方,与作者沟通确认
233
+
234
+ ### Q: 审查意见有分歧怎么办?
235
+
236
+ 1. 基于技术事实讨论,避免主观争论
237
+ 2. 引用项目规范或业界最佳实践作为依据
238
+ 3. 对于非原则性问题,尊重代码作者的选择
239
+ 4. 必要时引入第三方意见或 Tech Lead 裁决