ai-engineering-init 1.4.3 → 1.5.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 (129) hide show
  1. package/.cursor/skills/bug-detective/SKILL.md +19 -19
  2. package/.cursor/skills/project-navigator/SKILL.md +164 -258
  3. package/package.json +7 -1
  4. package/scripts/build-skills.js +180 -0
  5. package/src/platform-map.json +56 -0
  6. package/src/skills/add-skill/SKILL.md +488 -0
  7. package/src/skills/add-todo/SKILL.md +269 -0
  8. package/src/skills/api-development/SKILL.md +266 -0
  9. package/src/skills/architecture-design/SKILL.md +262 -0
  10. package/src/skills/backend-annotations/SKILL.md +302 -0
  11. package/src/skills/banana-image/CHANGELOG.md +37 -0
  12. package/src/skills/banana-image/README.md +146 -0
  13. package/src/skills/banana-image/SKILL.md +171 -0
  14. package/src/skills/banana-image/assets/logo.png +0 -0
  15. package/src/skills/banana-image/references/advanced-usage.md +189 -0
  16. package/src/skills/banana-image/scripts/apply_template.py +125 -0
  17. package/src/skills/banana-image/scripts/banana_image_exec.ts +412 -0
  18. package/src/skills/banana-image/scripts/batch_prep.py +82 -0
  19. package/src/skills/banana-image/scripts/package-lock.json +1437 -0
  20. package/src/skills/banana-image/scripts/package.json +18 -0
  21. package/src/skills/banana-image/scripts/requirements.txt +10 -0
  22. package/src/skills/banana-image/templates/poster.json +22 -0
  23. package/src/skills/banana-image/templates/product.json +17 -0
  24. package/src/skills/banana-image/templates/social.json +22 -0
  25. package/src/skills/banana-image/templates/thumbnail.json +17 -0
  26. package/src/skills/brainstorm/SKILL.md +216 -0
  27. package/src/skills/bug-detective/SKILL.md +256 -0
  28. package/src/skills/bug-detective/references/error-patterns.md +242 -0
  29. package/src/skills/check/SKILL.md +367 -0
  30. package/src/skills/code-patterns/SKILL.md +280 -0
  31. package/src/skills/code-patterns/references/leniu-code-patterns.md +87 -0
  32. package/src/skills/codex-code-review/SKILL.md +135 -0
  33. package/src/skills/collaborating-with-codex/SKILL.md +174 -0
  34. package/src/skills/collaborating-with-codex/scripts/codex_bridge.py +275 -0
  35. package/src/skills/collaborating-with-gemini/SKILL.md +194 -0
  36. package/src/skills/collaborating-with-gemini/scripts/gemini_bridge.py +275 -0
  37. package/src/skills/crud/SKILL.md +265 -0
  38. package/src/skills/crud-development/SKILL.md +409 -0
  39. package/src/skills/data-permission/SKILL.md +292 -0
  40. package/src/skills/data-permission/references/custom-data-scope.md +90 -0
  41. package/src/skills/database-ops/SKILL.md +407 -0
  42. package/src/skills/dev/SKILL.md +187 -0
  43. package/src/skills/error-handler/SKILL.md +371 -0
  44. package/src/skills/file-oss-management/SKILL.md +255 -0
  45. package/src/skills/file-oss-management/references/entities.md +105 -0
  46. package/src/skills/file-oss-management/references/service-impl.md +104 -0
  47. package/src/skills/git-workflow/SKILL.md +397 -0
  48. package/src/skills/init-docs/SKILL.md +194 -0
  49. package/src/skills/json-serialization/SKILL.md +357 -0
  50. package/src/skills/leniu-api-development/SKILL.md +319 -0
  51. package/src/skills/leniu-api-development/references/real-examples.md +273 -0
  52. package/src/skills/leniu-architecture-design/SKILL.md +383 -0
  53. package/src/skills/leniu-backend-annotations/SKILL.md +277 -0
  54. package/src/skills/leniu-brainstorm/SKILL.md +242 -0
  55. package/src/skills/leniu-brainstorm/references/business-scenarios.md +162 -0
  56. package/src/skills/leniu-code-patterns/SKILL.md +411 -0
  57. package/src/skills/leniu-crud-development/SKILL.md +404 -0
  58. package/src/skills/leniu-crud-development/references/templates.md +597 -0
  59. package/src/skills/leniu-customization-location/SKILL.md +410 -0
  60. package/src/skills/leniu-data-permission/SKILL.md +341 -0
  61. package/src/skills/leniu-database-ops/SKILL.md +426 -0
  62. package/src/skills/leniu-error-handler/SKILL.md +462 -0
  63. package/src/skills/leniu-java-amount-handling/SKILL.md +461 -0
  64. package/src/skills/leniu-java-code-style/SKILL.md +510 -0
  65. package/src/skills/leniu-java-concurrent/SKILL.md +400 -0
  66. package/src/skills/leniu-java-entity/SKILL.md +237 -0
  67. package/src/skills/leniu-java-entity/references/templates.md +237 -0
  68. package/src/skills/leniu-java-export/SKILL.md +570 -0
  69. package/src/skills/leniu-java-logging/SKILL.md +229 -0
  70. package/src/skills/leniu-java-logging/references/data-mask.md +46 -0
  71. package/src/skills/leniu-java-logging/references/logging-scenarios.md +113 -0
  72. package/src/skills/leniu-java-mq/SKILL.md +338 -0
  73. package/src/skills/leniu-java-mybatis/SKILL.md +267 -0
  74. package/src/skills/leniu-java-mybatis/references/report-mapper.md +88 -0
  75. package/src/skills/leniu-java-report-query-param/SKILL.md +291 -0
  76. package/src/skills/leniu-java-task/SKILL.md +367 -0
  77. package/src/skills/leniu-java-total-line/SKILL.md +196 -0
  78. package/src/skills/leniu-marketing-price-rule-customizer/SKILL.md +301 -0
  79. package/src/skills/leniu-marketing-recharge-rule-customizer/SKILL.md +285 -0
  80. package/src/skills/leniu-mealtime/SKILL.md +215 -0
  81. package/src/skills/leniu-redis-cache/SKILL.md +331 -0
  82. package/src/skills/leniu-report-customization/SKILL.md +335 -0
  83. package/src/skills/leniu-report-customization/references/table-fields.md +93 -0
  84. package/src/skills/leniu-report-standard-customization/SKILL.md +328 -0
  85. package/src/skills/leniu-report-standard-customization/references/analysis-module.md +64 -0
  86. package/src/skills/leniu-report-standard-customization/references/table-fields.md +113 -0
  87. package/src/skills/leniu-security-guard/SKILL.md +306 -0
  88. package/src/skills/leniu-utils-toolkit/SKILL.md +380 -0
  89. package/src/skills/mysql-debug/SKILL.md +364 -0
  90. package/src/skills/next/SKILL.md +137 -0
  91. package/src/skills/openspec-apply-change/SKILL.md +165 -0
  92. package/src/skills/openspec-archive-change/SKILL.md +122 -0
  93. package/src/skills/openspec-bulk-archive-change/SKILL.md +254 -0
  94. package/src/skills/openspec-continue-change/SKILL.md +126 -0
  95. package/src/skills/openspec-explore/SKILL.md +299 -0
  96. package/src/skills/openspec-ff-change/SKILL.md +109 -0
  97. package/src/skills/openspec-new-change/SKILL.md +82 -0
  98. package/src/skills/openspec-onboard/SKILL.md +414 -0
  99. package/src/skills/openspec-sync-specs/SKILL.md +146 -0
  100. package/src/skills/openspec-verify-change/SKILL.md +176 -0
  101. package/src/skills/performance-doctor/SKILL.md +303 -0
  102. package/src/skills/progress/SKILL.md +193 -0
  103. package/src/skills/project-navigator/SKILL.md +211 -0
  104. package/src/skills/redis-cache/SKILL.md +333 -0
  105. package/src/skills/redis-cache/references/listeners.md +23 -0
  106. package/src/skills/scheduled-jobs/SKILL.md +314 -0
  107. package/src/skills/security-guard/SKILL.md +353 -0
  108. package/src/skills/security-guard/references/encrypt-config.md +103 -0
  109. package/src/skills/security-guard/references/sensitive-strategies.md +42 -0
  110. package/src/skills/sms-mail/SKILL.md +308 -0
  111. package/src/skills/sms-mail/references/mail-config.md +88 -0
  112. package/src/skills/sms-mail/references/sms-config.md +74 -0
  113. package/src/skills/social-login/SKILL.md +266 -0
  114. package/src/skills/social-login/references/provider-configs.md +118 -0
  115. package/src/skills/start/SKILL.md +154 -0
  116. package/src/skills/store-pc/SKILL.md +366 -0
  117. package/src/skills/sync/SKILL.md +149 -0
  118. package/src/skills/task-tracker/SKILL.md +307 -0
  119. package/src/skills/tech-decision/SKILL.md +393 -0
  120. package/src/skills/tenant-management/SKILL.md +288 -0
  121. package/src/skills/tenant-management/references/tenant-scenarios.md +91 -0
  122. package/src/skills/test-development/SKILL.md +301 -0
  123. package/src/skills/test-development/references/parameterized-examples.md +119 -0
  124. package/src/skills/ui-pc/SKILL.md +438 -0
  125. package/src/skills/update-status/SKILL.md +159 -0
  126. package/src/skills/utils-toolkit/SKILL.md +362 -0
  127. package/src/skills/utils-toolkit/references/redis-utils-api.md +56 -0
  128. package/src/skills/websocket-sse/SKILL.md +271 -0
  129. package/src/skills/workflow-engine/SKILL.md +321 -0
@@ -0,0 +1,366 @@
1
+ ---
2
+ name: store-pc
3
+ description: |
4
+ 前端状态管理指南。包含 Vuex Store 的创建和使用规范。
5
+
6
+ 触发场景:
7
+ - 创建/使用 Vuex Store
8
+ - Vuex 状态管理
9
+ - 跨组件数据共享
10
+ - 全局状态管理
11
+
12
+ 触发词:Vuex、store、mapState、mapActions、commit、dispatch、状态管理
13
+
14
+ 适用目录:/Users/xujiajun/Developer/frontProj/web/src/store/**
15
+ ---
16
+
17
+ # 前端状态管理指南
18
+
19
+ > **适用于**: 腾云智慧食堂管理系统前端项目(Vue 2.7.16 + Vuex 3.4.0)
20
+ >
21
+ > **Store 目录**: `/Users/xujiajun/Developer/frontProj/web/src/store/`
22
+
23
+ ---
24
+
25
+ ## 目录结构
26
+
27
+ ```
28
+ src/store/
29
+ ├── index.js # Store 入口(Vuex 初始化)
30
+ ├── getters.js # 全局 getters
31
+ └── modules/ # Store 模块(28个)
32
+ ├── user.js # 用户状态(最核心)
33
+ ├── app.js # 应用状态(语言/尺寸)
34
+ ├── permission.js # 权限路由管理
35
+ ├── tagsView.js # 标签页管理
36
+ ├── settings.js # 系统设置
37
+ ├── marketing.js # 营销状态
38
+ ├── order.js # 订单状态
39
+ ├── stock.js # 库存状态
40
+ ├── reportcenter.js # 报表状态
41
+ ├── account.js # 账户状态
42
+ ├── purchase.js # 采购状态
43
+ ├── chart.js # 图表状态
44
+ ├── notice.js # 通知状态
45
+ ├── upload.js # 上传状态
46
+ ├── menudish.js # 菜品状态
47
+ ├── supplyChain.js # 供应链状态
48
+ └── ... # 其他业务模块
49
+ ```
50
+
51
+ ---
52
+
53
+ ## 全局 Getters(getters.js)
54
+
55
+ ```javascript
56
+ // 常用全局 getters(可直接用 mapGetters 访问)
57
+ {
58
+ token, // 登录 token
59
+ name, // 用户名
60
+ userInfo, // 完整用户信息对象
61
+ permissions, // 权限列表
62
+ hasRoles, // 是否已加载角色(用于路由守卫)
63
+ permission_routes, // 已生成的权限路由
64
+ adminMerchant, // 是否为超级管理员商户
65
+ url, // API base URL
66
+ language, // 当前语言(zh/en)
67
+ size, // Element UI 组件尺寸
68
+ areaOptions, // 区域选项(来自 supplyChain)
69
+ }
70
+ ```
71
+
72
+ ---
73
+
74
+ ## 创建新 Store
75
+
76
+ ### 标准模板
77
+
78
+ ```javascript
79
+ // src/store/modules/xxx.js
80
+ import { getList, getDetail } from '@/api/xxx'
81
+
82
+ const state = {
83
+ list: [],
84
+ current: null,
85
+ loading: false,
86
+ total: 0
87
+ }
88
+
89
+ const mutations = {
90
+ SET_LIST: (state, list) => {
91
+ state.list = list
92
+ },
93
+ SET_CURRENT: (state, current) => {
94
+ state.current = current
95
+ },
96
+ SET_LOADING: (state, loading) => {
97
+ state.loading = loading
98
+ },
99
+ SET_TOTAL: (state, total) => {
100
+ state.total = total
101
+ }
102
+ }
103
+
104
+ const actions = {
105
+ /**
106
+ * 获取列表
107
+ */
108
+ async fetchList({ commit }, params) {
109
+ commit('SET_LOADING', true)
110
+ try {
111
+ const res = await getList({
112
+ page: { current: params.current || 1, size: params.size || 20 },
113
+ object: params
114
+ })
115
+ commit('SET_LIST', res.records || [])
116
+ commit('SET_TOTAL', res.total || 0)
117
+ return res
118
+ } finally {
119
+ commit('SET_LOADING', false)
120
+ }
121
+ },
122
+
123
+ /**
124
+ * 获取详情
125
+ */
126
+ async fetchDetail({ commit }, id) {
127
+ const res = await getDetail({ id })
128
+ commit('SET_CURRENT', res)
129
+ return res
130
+ },
131
+
132
+ /**
133
+ * 重置状态
134
+ */
135
+ reset({ commit }) {
136
+ commit('SET_LIST', [])
137
+ commit('SET_CURRENT', null)
138
+ commit('SET_TOTAL', 0)
139
+ }
140
+ }
141
+
142
+ const getters = {
143
+ list: state => state.list,
144
+ current: state => state.current,
145
+ loading: state => state.loading,
146
+ total: state => state.total
147
+ }
148
+
149
+ export default {
150
+ namespaced: true,
151
+ state,
152
+ mutations,
153
+ actions,
154
+ getters
155
+ }
156
+ ```
157
+
158
+ ### 在 index.js 中注册
159
+
160
+ ```javascript
161
+ // src/store/index.js
162
+ import xxx from './modules/xxx'
163
+
164
+ export default new Vuex.Store({
165
+ modules: {
166
+ // ... 其他模块
167
+ xxx
168
+ }
169
+ })
170
+ ```
171
+
172
+ ---
173
+
174
+ ## 使用 Store
175
+
176
+ ### 方式 1:直接访问
177
+
178
+ ```javascript
179
+ export default {
180
+ computed: {
181
+ list() {
182
+ return this.$store.state.xxx.list
183
+ },
184
+ loading() {
185
+ return this.$store.state.xxx.loading
186
+ },
187
+ // 使用全局 getter
188
+ token() {
189
+ return this.$store.getters.token
190
+ },
191
+ userInfo() {
192
+ return this.$store.getters.userInfo
193
+ }
194
+ },
195
+ methods: {
196
+ getData() {
197
+ this.$store.dispatch('xxx/fetchList', this.queryParams)
198
+ }
199
+ }
200
+ }
201
+ ```
202
+
203
+ ### 方式 2:mapState / mapGetters / mapActions
204
+
205
+ ```javascript
206
+ import { mapState, mapGetters, mapActions, mapMutations } from 'vuex'
207
+
208
+ export default {
209
+ computed: {
210
+ // 模块内 state
211
+ ...mapState('xxx', ['list', 'loading', 'total']),
212
+
213
+ // 全局 getters
214
+ ...mapGetters(['token', 'userInfo', 'permissions', 'adminMerchant'])
215
+ },
216
+ methods: {
217
+ ...mapActions('xxx', ['fetchList', 'fetchDetail', 'reset']),
218
+
219
+ async getData() {
220
+ await this.fetchList({ ...this.queryParams, ...this.page })
221
+ }
222
+ },
223
+ mounted() {
224
+ this.getData()
225
+ }
226
+ }
227
+ ```
228
+
229
+ ---
230
+
231
+ ## 核心 Store 模块说明
232
+
233
+ ### user.js(用户状态)
234
+
235
+ 最重要的模块,包含:
236
+ - `state.token` - 登录 token
237
+ - `state.userInfo` - 完整用户信息(userId、roles、roleCode、merchantId 等)
238
+ - `state.hasRoles` - 是否已加载角色信息
239
+ - `state.adminMerchant` - 是否为超级管理员(`roleCode === 'ROLE_ADMIN'`)
240
+ - `state.merchantList` - 商户列表(管理员可切换商户)
241
+
242
+ ```javascript
243
+ // 在路由守卫中获取用户信息
244
+ const userInfo = await store.dispatch('user/getInfo')
245
+
246
+ // 登出
247
+ await store.dispatch('user/resetToken')
248
+ localStorage.clear()
249
+ locationHref()
250
+ ```
251
+
252
+ ### permission.js(权限路由)
253
+
254
+ - 根据用户角色动态生成路由
255
+ - `state.routes` - 完整路由表(用于菜单渲染)
256
+ - `state.addRoutes` - 动态添加的路由
257
+
258
+ ```javascript
259
+ // 在路由守卫中生成权限路由
260
+ const accessRoutes = await store.dispatch('permission/generateRoutes')
261
+ accessRoutes.forEach(route => {
262
+ router.addRoute(route)
263
+ })
264
+ ```
265
+
266
+ ### app.js(应用状态)
267
+
268
+ - `state.language` - 当前语言(zh/en)
269
+ - `state.size` - Element UI 组件尺寸
270
+
271
+ ---
272
+
273
+ ## 最佳实践
274
+
275
+ ### 1. 何时使用 Store
276
+
277
+ | 场景 | 是否使用 Store |
278
+ |------|---------------|
279
+ | 多个页面/组件共享的数据 | ✅ 使用 |
280
+ | 用户登录状态、权限 | ✅ 使用(user 模块) |
281
+ | 全局配置(语言、尺寸) | ✅ 使用(app 模块) |
282
+ | 页面内部状态(表单数据)| ❌ 用 data |
283
+ | 父子组件传值 | ❌ 用 props/emit |
284
+ | 兄弟组件通信(简单) | ❌ 用 eventBus |
285
+
286
+ ### 2. 命名规范
287
+
288
+ ```javascript
289
+ // ✅ 正确:Mutation 大写字母+下划线
290
+ const mutations = {
291
+ SET_LIST: (state, list) => { state.list = list },
292
+ SET_LOADING: (state, v) => { state.loading = v }
293
+ }
294
+
295
+ // ✅ 正确:Action 小驼峰
296
+ const actions = {
297
+ fetchList: async ({ commit }, params) => { },
298
+ fetchDetail: async ({ commit }, id) => { }
299
+ }
300
+
301
+ // ✅ 正确:模块文件名小写,匹配业务名
302
+ // store/modules/marketing.js
303
+ // store/modules/order.js
304
+ ```
305
+
306
+ ### 3. 登出时重置 Store
307
+
308
+ ```javascript
309
+ // 在 user store 中
310
+ const actions = {
311
+ async resetToken({ commit }) {
312
+ commit('SET_TOKEN', '')
313
+ commit('SET_HAS_ROLES', false)
314
+ removeToken()
315
+ removeTenant()
316
+ }
317
+ }
318
+
319
+ // 登出时(permission.js 路由守卫中)
320
+ await store.dispatch('user/resetToken')
321
+ localStorage.clear()
322
+ locationHref() // 使用全局 locationHref 跳转(不用 router.push)
323
+ ```
324
+
325
+ ### 4. 分页数据格式
326
+
327
+ ```javascript
328
+ // 后端返回的分页数据格式
329
+ {
330
+ records: [], // 数据列表(非 rows)
331
+ total: 100,
332
+ current: 1,
333
+ size: 20
334
+ }
335
+
336
+ // 请求分页参数格式
337
+ {
338
+ page: { current: 1, size: 20 },
339
+ object: { ...queryParams } // 查询条件
340
+ }
341
+ ```
342
+
343
+ ---
344
+
345
+ ## 参考文件
346
+
347
+ | Store | 路径 |
348
+ |-------|------|
349
+ | Store 入口 | `/Users/xujiajun/Developer/frontProj/web/src/store/index.js` |
350
+ | 全局 Getters | `/Users/xujiajun/Developer/frontProj/web/src/store/getters.js` |
351
+ | 用户 Store | `/Users/xujiajun/Developer/frontProj/web/src/store/modules/user.js` |
352
+ | 权限 Store | `/Users/xujiajun/Developer/frontProj/web/src/store/modules/permission.js` |
353
+ | 应用 Store | `/Users/xujiajun/Developer/frontProj/web/src/store/modules/app.js` |
354
+ | 设置 Store | `/Users/xujiajun/Developer/frontProj/web/src/store/modules/settings.js` |
355
+ | 标签页 Store | `/Users/xujiajun/Developer/frontProj/web/src/store/modules/tagsView.js` |
356
+
357
+ ---
358
+
359
+ ## 注意事项
360
+
361
+ 1. **本项目使用 Vuex 3.x**(非 Pinia),与 Vue 2 配套
362
+ 2. **Store 模块必须设置 `namespaced: true`**
363
+ 3. **异步操作放在 Actions 中**,同步操作放在 Mutations 中
364
+ 4. **分页数据用 `records`**,不是 `rows`(与 RuoYi 后端框架不同)
365
+ 5. **登出使用 `locationHref()`** 而非 `router.push('/login')`,目的是清除内存中的数据
366
+ 6. **`adminMerchant` 为 true 时**,用户是超级管理员(`roleCode === 'ROLE_ADMIN'`),可切换商户
@@ -0,0 +1,149 @@
1
+ ---
2
+ name: sync
3
+ description: |
4
+ 当需要全量同步项目代码状态、生成综合报告时自动使用此 Skill。
5
+
6
+ 触发场景:
7
+ - 每周末整理项目代码状态和文档
8
+ - 手动修改过代码或文档后需要重新同步
9
+ - 新成员加入或项目交接时全量检查
10
+ - 生成完整的项目状态报告
11
+
12
+ 触发词:同步、sync、全量同步、状态同步、项目同步、代码同步、定期整理
13
+ ---
14
+
15
+ # /sync - 项目代码状态同步
16
+
17
+ 一键同步后端代码状态、生成项目文档、确保代码与文档数据一致。适合定期整理或发现数据不一致时使用。
18
+
19
+ ---
20
+
21
+ ## 🎯 适用场景
22
+
23
+ | 场景 | 说明 |
24
+ |------|------|
25
+ | **定期整理** | 每周末整理项目代码状态和文档 |
26
+ | **数据不一致** | 手动修改过代码或文档后需要重新同步 |
27
+ | **项目交接** | 新成员加入或项目交接时全量检查 |
28
+ | **构建报告** | 生成完整的项目状态报告供管理者查看 |
29
+
30
+ ---
31
+
32
+ ## 🚀 执行流程
33
+
34
+ ### 第一步:扫描后端代码状态(强制执行)
35
+
36
+ #### 1.1 扫描业务模块和功能完整性
37
+
38
+ ```bash
39
+ # 查找所有业务模块的 Controller
40
+ Glob pattern: "ruoyi-modules/ruoyi-*/src/main/java/**/controller/*Controller.java"
41
+ ```
42
+
43
+ 对每个功能检查 **7 个必需的文件**。
44
+
45
+ #### 1.2 扫描代码规范问题
46
+
47
+ ```bash
48
+ Grep pattern: "package com\.ruoyi\." path: ruoyi-modules/ output_mode: files_with_matches
49
+ Grep pattern: "BeanUtil\.copy|BeanUtils\.copy" path: ruoyi-modules/ output_mode: files_with_matches
50
+ Grep pattern: "@SaCheckPermission" path: ruoyi-modules/ glob: "*Controller.java" output_mode: files_with_matches
51
+ ```
52
+
53
+ #### 1.3 扫描 Git 提交记录
54
+
55
+ ```bash
56
+ git log -30 --oneline --format="%h %s %ad" --date=short
57
+ ```
58
+
59
+ #### 1.4 扫描 TODO/FIXME 标记
60
+
61
+ ```bash
62
+ Grep pattern: "TODO:|FIXME:|XXX:" path: ruoyi-modules/ glob: "*.java" output_mode: content -B 1
63
+ ```
64
+
65
+ ---
66
+
67
+ ### 第二步:分析 Git 提交历史
68
+
69
+ ```bash
70
+ git log -5 --oneline
71
+ ```
72
+
73
+ **分析内容**:
74
+ - 最近在做什么功能
75
+ - 是否有 FIXME/BUG 相关的提交
76
+ - 代码活跃度
77
+
78
+ ---
79
+
80
+ ### 第三步:整合检查结果
81
+
82
+ #### 3.1 与 `/check` 命令同步
83
+
84
+ 提取检查结果中的:
85
+ - 严重问题数量
86
+ - 警告问题数量
87
+ - 需要修复的问题清单
88
+
89
+ #### 3.2 与 `/progress` 命令同步
90
+
91
+ 提取数据:
92
+ - 各模块完成率
93
+ - 待完成功能列表
94
+ - 代码质量评分
95
+
96
+ ---
97
+
98
+ ### 第四步:生成项目同步报告
99
+
100
+ ```markdown
101
+ # 🔄 项目代码状态同步报告
102
+
103
+ **同步时间**:YYYY-MM-DD HH:mm
104
+
105
+ ---
106
+
107
+ ## 📈 最新进展
108
+
109
+ ### Git 提交摘要
110
+ - **最新提交**:[commit message] ([hash])
111
+ - **最近 7 天**:X 次提交,涉及 X 个功能模块
112
+ - **提交活跃度**:[活跃/正常/低活跃]
113
+
114
+ ### 代码完成度
115
+ | 模块 | 功能数 | 完成 | 进行中 | 待开发 | 完成率 |
116
+ |------|--------|------|--------|--------|---------|
117
+ | demo | 3 | 3 | 0 | 0 | 100% ✅ |
118
+ | business | 5 | 3 | 2 | 0 | 60% 🔄 |
119
+
120
+ ---
121
+
122
+ ## ⚠️ 紧急问题(必须立即处理)
123
+
124
+ ### 高优先级 FIXME
125
+ | 文件 | 行号 | 问题 | 影响 |
126
+ |------|------|------|------|
127
+ | PaymentService.java | 156 | 退款金额计算错误 | 财务准确性 |
128
+
129
+ ---
130
+
131
+ ## 🔍 代码规范检查结果
132
+
133
+ ### 总体评分
134
+ | 维度 | 评分 | 说明 |
135
+ |------|------|------|
136
+ | 包名规范 | ✅ | 所有包名符合 org.dromara.* 规范 |
137
+ | 权限注解 | ⚠️ | 3 个接口缺少 @SaCheckPermission |
138
+
139
+ ---
140
+
141
+ ## 🔗 相关命令
142
+
143
+ | 命令 | 用途 | 何时使用 |
144
+ |------|------|---------|
145
+ | `/update-status` | 增量更新 | 功能完成后立即使用 |
146
+ | `/sync` | 全量同步 | 每周一次定期整理 |
147
+ | `/progress` | 项目进度分析 | 了解完成情况 |
148
+ | `/check` | 代码规范检查 | 代码审查前 |
149
+ ```