@comate/zulu 1.2.1-beta.2 → 1.3.1

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 (170) hide show
  1. package/comate-engine/assets/skills/auto-commit-comate/SKILL.md +260 -0
  2. package/comate-engine/assets/skills/auto-commit-comate/references/data_structures.md +189 -0
  3. package/comate-engine/assets/skills/auto-commit-comate/references/new_version_instruction.md +209 -0
  4. package/comate-engine/assets/skills/auto-commit-comate/references/old_version_instruction.md +208 -0
  5. package/comate-engine/assets/skills/auto-commit-comate/scripts/git_diff_cli.py +196 -0
  6. package/comate-engine/assets/skills/{smart-commit → auto-commit-comate}/scripts/git_utils.py +20 -10
  7. package/comate-engine/assets/skills/{smart-commit → auto-commit-comate}/scripts/icafe/client.py +69 -40
  8. package/comate-engine/assets/skills/{smart-commit → auto-commit-comate}/scripts/icafe/farseer.py +8 -9
  9. package/comate-engine/assets/skills/{smart-commit → auto-commit-comate}/scripts/icafe/matching.py +65 -9
  10. package/comate-engine/assets/skills/auto-commit-comate/scripts/match_card_cli.py +37 -0
  11. package/comate-engine/assets/skills/cnap-comate/SKILL.md +157 -0
  12. package/comate-engine/assets/skills/cnap-comate/references/cases.md +198 -0
  13. package/comate-engine/assets/skills/cnap-comate/references/deploy-troubleshoot.md +15 -0
  14. package/comate-engine/assets/skills/cnap-comate/references/install.md +43 -0
  15. package/comate-engine/assets/skills/cnap-comate/references/kubectl.md +55 -0
  16. package/comate-engine/assets/skills/cnap-comate/references/login.md +125 -0
  17. package/comate-engine/assets/skills/cnap-comate/references/oncall.md +24 -0
  18. package/comate-engine/assets/skills/cnap-comate/scripts/install_cnap_cli.sh +36 -0
  19. package/comate-engine/assets/skills/code-security/SKILL.md +176 -0
  20. package/comate-engine/assets/skills/code-security/references/credential_hosting.md +102 -0
  21. package/comate-engine/assets/skills/code-security/references/vul_repair_sensitive.md +219 -0
  22. package/comate-engine/assets/skills/code-security/scripts/build_repair_info.py +0 -0
  23. package/comate-engine/assets/skills/code-security/scripts/credential_hosting.py +99 -0
  24. package/comate-engine/assets/skills/code-security/scripts/credential_poll.py +350 -0
  25. package/comate-engine/assets/skills/code-security/scripts/http_client.py +173 -0
  26. package/comate-engine/assets/skills/code-security/scripts/parse_scan_result.py +301 -0
  27. package/comate-engine/assets/skills/code-security/scripts/repair_vulnerability.py +261 -0
  28. package/comate-engine/assets/skills/code-security/scripts/report_chat.py +198 -0
  29. package/comate-engine/assets/skills/code-security/scripts/scan_vulnerability.py +316 -0
  30. package/comate-engine/assets/skills/code-security-comate/SKILL.md +219 -0
  31. package/comate-engine/assets/skills/code-security-comate/references/credential_hosting.md +102 -0
  32. package/comate-engine/assets/skills/code-security-comate/references/vul_repair-go_sql_injection.md +399 -0
  33. package/comate-engine/assets/skills/code-security-comate/references/vul_repair-java_sql_injection.md +591 -0
  34. package/comate-engine/assets/skills/code-security-comate/references/vul_repair-php_sql_injection.md +318 -0
  35. package/comate-engine/assets/skills/code-security-comate/references/vul_repair-python_sql_injection.md +198 -0
  36. package/comate-engine/assets/skills/code-security-comate/references/vul_repair_sensitive.md +219 -0
  37. package/comate-engine/assets/skills/code-security-comate/scripts/credential_hosting.py +87 -0
  38. package/comate-engine/assets/skills/code-security-comate/scripts/credential_poll.py +345 -0
  39. package/comate-engine/assets/skills/code-security-comate/scripts/http_client.py +173 -0
  40. package/comate-engine/assets/skills/code-security-comate/scripts/parse_scan_result.py +392 -0
  41. package/comate-engine/assets/skills/code-security-comate/scripts/repair_vulnerability.py +245 -0
  42. package/comate-engine/assets/skills/code-security-comate/scripts/report_chat.py +145 -0
  43. package/comate-engine/assets/skills/code-security-comate/scripts/scan_vulnerability.py +444 -0
  44. package/comate-engine/assets/skills/code-security-comate/scripts/utils.py +153 -0
  45. package/comate-engine/assets/skills/comate-docs-comate/SKILL.md +148 -0
  46. package/comate-engine/assets/skills/comate-docs-comate/references/doc-map-extended.md +78 -0
  47. package/comate-engine/assets/skills/comate-docs-comate/references/models-and-billing.md +51 -0
  48. package/comate-engine/assets/skills/comate-docs-comate/references/product-overview.md +73 -0
  49. package/comate-engine/assets/skills/comate-docs-comate/references/query_content.md +83 -0
  50. package/comate-engine/assets/skills/comate-docs-comate/references/query_repo.md +57 -0
  51. package/comate-engine/assets/skills/comate-docs-comate/scripts/ku_operator.py +1575 -0
  52. package/comate-engine/assets/skills/create-image-comate/SKILL.md +278 -0
  53. package/comate-engine/assets/skills/create-skill-comate/SKILL.md +308 -217
  54. package/comate-engine/assets/skills/create-skill-comate/agents/analyzer.md +274 -0
  55. package/comate-engine/assets/skills/create-skill-comate/agents/comparator.md +202 -0
  56. package/comate-engine/assets/skills/create-skill-comate/agents/grader.md +223 -0
  57. package/comate-engine/assets/skills/create-skill-comate/assets/eval_review.html +146 -0
  58. package/comate-engine/assets/skills/create-skill-comate/eval-viewer/generate_review.py +489 -0
  59. package/comate-engine/assets/skills/create-skill-comate/eval-viewer/viewer.html +1325 -0
  60. package/comate-engine/assets/skills/create-skill-comate/references/schemas.md +430 -0
  61. package/comate-engine/assets/skills/create-skill-comate/scripts/__init__.py +0 -0
  62. package/comate-engine/assets/skills/create-skill-comate/scripts/__pycache__/__init__.cpython-311.pyc +0 -0
  63. package/comate-engine/assets/skills/create-skill-comate/scripts/__pycache__/aggregate_benchmark.cpython-311.pyc +0 -0
  64. package/comate-engine/assets/skills/create-skill-comate/scripts/aggregate_benchmark.py +412 -0
  65. package/comate-engine/assets/skills/create-skill-comate/scripts/generate_report.py +334 -0
  66. package/comate-engine/assets/skills/create-skill-comate/scripts/package_skill.py +140 -0
  67. package/comate-engine/assets/skills/create-skill-comate/scripts/utils.py +53 -0
  68. package/comate-engine/assets/skills/find-skills-comate/SKILL.md +15 -12
  69. package/comate-engine/assets/skills/find-skills-comate/scripts/fetch_skills.py +32 -3
  70. package/comate-engine/assets/skills/get-ugate-token-comate/SKILL.md +159 -0
  71. package/comate-engine/assets/skills/get-ugate-token-comate/getUgateToken.py +150 -0
  72. package/comate-engine/assets/skills/icafe-comate/SKILL.md +240 -0
  73. package/comate-engine/assets/skills/icafe-comate/references/ai-workflows.md +233 -0
  74. package/comate-engine/assets/skills/icafe-comate/references/commands.md +1147 -0
  75. package/comate-engine/assets/skills/icafe-comate/references/error-handling.md +164 -0
  76. package/comate-engine/assets/skills/icafe-comate/references/git-auto-bindcard-workflow.md +201 -0
  77. package/comate-engine/assets/skills/icafe-comate/references/git-bindcard-workflow.md +327 -0
  78. package/comate-engine/assets/skills/icafe-comate/references/iql-syntax.md +327 -0
  79. package/comate-engine/assets/skills/icafe-comate/references/platform-concepts.md +317 -0
  80. package/comate-engine/assets/skills/icafe-comate/references/smart-create-workflow.md +171 -0
  81. package/comate-engine/assets/skills/icafe-comate/references/smart-find-workflow.md +127 -0
  82. package/comate-engine/assets/skills/icafe-comate/references/smart-update-workflow.md +118 -0
  83. package/comate-engine/assets/skills/icode-comate/SKILL.md +366 -0
  84. package/comate-engine/assets/skills/icode-comate/references/api/add_reviewers.md +44 -0
  85. package/comate-engine/assets/skills/icode-comate/references/api/build_fetch_command.md +89 -0
  86. package/comate-engine/assets/skills/icode-comate/references/api/check_repo_permission.md +89 -0
  87. package/comate-engine/assets/skills/icode-comate/references/api/create_branch.md +79 -0
  88. package/comate-engine/assets/skills/icode-comate/references/api/create_draft_comment.md +109 -0
  89. package/comate-engine/assets/skills/icode-comate/references/api/get_ai_cr_result.md +190 -0
  90. package/comate-engine/assets/skills/icode-comate/references/api/get_ai_review.md +97 -0
  91. package/comate-engine/assets/skills/icode-comate/references/api/get_diff_content.md +92 -0
  92. package/comate-engine/assets/skills/icode-comate/references/api/get_diff_file.md +88 -0
  93. package/comate-engine/assets/skills/icode-comate/references/api/get_machine_check.md +73 -0
  94. package/comate-engine/assets/skills/icode-comate/references/api/get_my_reviews.md +115 -0
  95. package/comate-engine/assets/skills/icode-comate/references/api/get_person_commit.md +89 -0
  96. package/comate-engine/assets/skills/icode-comate/references/api/get_person_repo.md +63 -0
  97. package/comate-engine/assets/skills/icode-comate/references/api/get_repo_branch.md +62 -0
  98. package/comate-engine/assets/skills/icode-comate/references/api/get_repo_config.md +91 -0
  99. package/comate-engine/assets/skills/icode-comate/references/api/get_repo_members.md +118 -0
  100. package/comate-engine/assets/skills/icode-comate/references/api/get_repo_reviews.md +91 -0
  101. package/comate-engine/assets/skills/icode-comate/references/api/get_review_comments.md +87 -0
  102. package/comate-engine/assets/skills/icode-comate/references/api/get_review_info.md +81 -0
  103. package/comate-engine/assets/skills/icode-comate/references/api/get_submit_settings.md +105 -0
  104. package/comate-engine/assets/skills/icode-comate/references/api/icode-api.md +86 -0
  105. package/comate-engine/assets/skills/icode-comate/references/api/publish_comments.md +72 -0
  106. package/comate-engine/assets/skills/icode-comate/references/api/set_review_score.md +58 -0
  107. package/comate-engine/assets/skills/icode-comate/references/api/start_ai_review.md +77 -0
  108. package/comate-engine/assets/skills/icode-comate/references/api/submit_review.md +50 -0
  109. package/comate-engine/assets/skills/icode-comate/references/api/trigger_ai_cr.md +63 -0
  110. package/comate-engine/assets/skills/icode-comate/references/feature/add-reviewer.md +92 -0
  111. package/comate-engine/assets/skills/icode-comate/references/feature/fix-machine-check.md +144 -0
  112. package/comate-engine/assets/skills/icode-comate/references/feature/merge-cr.md +100 -0
  113. package/comate-engine/assets/skills/icode-comate/references/feature/ssh-setup.md +106 -0
  114. package/comate-engine/assets/skills/icode-comate/references/feature/submit-acr.md +135 -0
  115. package/comate-engine/assets/skills/icode-comate/references/feature/submit-cr.md +123 -0
  116. package/comate-engine/assets/skills/icode-comate/references/git/clone.md +67 -0
  117. package/comate-engine/assets/skills/icode-comate/references/git/icode-git.md +68 -0
  118. package/comate-engine/assets/skills/icode-comate/references/git/push.md +64 -0
  119. package/comate-engine/assets/skills/icode-comate/references/git/push_cr.md +103 -0
  120. package/comate-engine/assets/skills/icode-comate/references/install.md +144 -0
  121. package/comate-engine/assets/skills/icode-comate/references/login.md +111 -0
  122. package/comate-engine/assets/skills/icode-comate/scripts/add-reviewer.sh +154 -0
  123. package/comate-engine/assets/skills/icode-comate/scripts/common.sh +145 -0
  124. package/comate-engine/assets/skills/icode-comate/scripts/fix-machine-check.sh +131 -0
  125. package/comate-engine/assets/skills/icode-comate/scripts/merge-cr.sh +105 -0
  126. package/comate-engine/assets/skills/icode-comate/scripts/ssh-setup.sh +159 -0
  127. package/comate-engine/assets/skills/icode-comate/scripts/submit-acr.sh +236 -0
  128. package/comate-engine/assets/skills/icode-comate/scripts/submit-cr.sh +104 -0
  129. package/comate-engine/assets/skills/icode-comate/scripts/test-preflight.sh +89 -0
  130. package/comate-engine/assets/skills/ku-operator-comate/SKILL.md +121 -0
  131. package/comate-engine/assets/skills/ku-operator-comate/examples.md +190 -0
  132. package/comate-engine/assets/skills/ku-operator-comate/references/add_member.md +49 -0
  133. package/comate-engine/assets/skills/ku-operator-comate/references/change_scope.md +38 -0
  134. package/comate-engine/assets/skills/ku-operator-comate/references/copy_doc.md +50 -0
  135. package/comate-engine/assets/skills/ku-operator-comate/references/create_doc.md +61 -0
  136. package/comate-engine/assets/skills/ku-operator-comate/references/delete_doc.md +31 -0
  137. package/comate-engine/assets/skills/ku-operator-comate/references/edit_content.md +568 -0
  138. package/comate-engine/assets/skills/ku-operator-comate/references/move_doc.md +45 -0
  139. package/comate-engine/assets/skills/ku-operator-comate/references/query_comment.md +79 -0
  140. package/comate-engine/assets/skills/ku-operator-comate/references/query_content.md +83 -0
  141. package/comate-engine/assets/skills/ku-operator-comate/references/query_flowchart.md +84 -0
  142. package/comate-engine/assets/skills/ku-operator-comate/references/query_permission.md +38 -0
  143. package/comate-engine/assets/skills/ku-operator-comate/references/query_recent_view.md +67 -0
  144. package/comate-engine/assets/skills/ku-operator-comate/references/query_repo.md +57 -0
  145. package/comate-engine/assets/skills/ku-operator-comate/references/query_user_info.md +37 -0
  146. package/comate-engine/assets/skills/ku-operator-comate/references/update_member.md +41 -0
  147. package/comate-engine/assets/skills/ku-operator-comate/references/upload_attachment.md +52 -0
  148. package/comate-engine/assets/skills/ku-operator-comate/scripts/ku_operator.py +1575 -0
  149. package/comate-engine/node_modules/better-sqlite3/node_modules/.bin/prebuild-install +2 -2
  150. package/comate-engine/node_modules/tree-sitter-bash/node_modules/.bin/node-gyp-build +2 -2
  151. package/comate-engine/node_modules/tree-sitter-bash/node_modules/.bin/node-gyp-build-optional +2 -2
  152. package/comate-engine/node_modules/tree-sitter-bash/node_modules/.bin/node-gyp-build-test +2 -2
  153. package/comate-engine/package.json +2 -0
  154. package/comate-engine/server.js +170 -46
  155. package/dist/bundle/index.js +8 -8
  156. package/package.json +1 -1
  157. package/comate-engine/assets/skills/figma2code-comate/codeConnect.md +0 -37
  158. package/comate-engine/assets/skills/figma2code-comate/designToken.md +0 -3
  159. package/comate-engine/assets/skills/figma2code-comate/f2cMcp.md +0 -59
  160. package/comate-engine/assets/skills/smart-commit/SKILL.md +0 -646
  161. package/comate-engine/node_modules/@comate/plugin-host/dist/index-AZIho4HV.js +0 -1
  162. package/comate-engine/node_modules/@comate/plugin-host/dist/user-BIpzRUfb.js +0 -44
  163. package/comate-engine/node_modules/better-sqlite3/build/Release/better_sqlite3.node +0 -0
  164. /package/comate-engine/assets/skills/{smart-commit → auto-commit-comate}/references/issue_type_mapping.json +0 -0
  165. /package/comate-engine/assets/skills/{smart-commit → auto-commit-comate}/references/query_reference.md +0 -0
  166. /package/comate-engine/assets/skills/{smart-commit → auto-commit-comate}/scripts/compat.py +0 -0
  167. /package/comate-engine/assets/skills/{smart-commit → auto-commit-comate}/scripts/create_card_cli.py +0 -0
  168. /package/comate-engine/assets/skills/{smart-commit → auto-commit-comate}/scripts/icafe/__init__.py +0 -0
  169. /package/comate-engine/assets/skills/{smart-commit → auto-commit-comate}/scripts/logger.py +0 -0
  170. /package/comate-engine/assets/skills/{smart-commit → auto-commit-comate}/scripts/recognize_card_cli.py +0 -0
@@ -0,0 +1,118 @@
1
+ # 智能修改卡片工作流
2
+
3
+ 用户要修改某张卡片时,需要先充分了解卡片当前状态、字段的合法值、状态流转规则,避免盲目修改导致失败。修改后要验证结果,失败时要分析原因。
4
+
5
+ ---
6
+
7
+ ## 适用场景
8
+
9
+ - 用户说"帮我改一下卡片状态到开发中"
10
+ - 用户说"把负责人改成 zhangsan"
11
+ - 用户说"更新一下优先级为 P1"
12
+ - 用户说"帮我修改卡片的自定义字段"
13
+
14
+ ## 第一步:获取卡片当前信息
15
+
16
+ ```bash
17
+ icafe-cli card get --space <space> --sequence <sequence> --brief
18
+ ```
19
+
20
+ 按需添加可选参数:
21
+ - `--show-associations`: 需要查看关联卡片时添加
22
+ - `--show-children`: 需要查看子卡片时添加
23
+
24
+ 记录当前状态,包括:标题、**类型名称 (`type.name`)**、负责人、流程状态、优先级等。后续对比用。
25
+
26
+ > 如果用户没给完整的 space+sequence,先参考 [智能寻卡工作流](smart-find-workflow.md) 定位卡片。
27
+
28
+ ## 第二步:获取字段定义和状态流转规则
29
+
30
+ 第一步获取到 `type.name` 后,**以下两个查询没有依赖关系,可以并行调用**以节省时间:
31
+
32
+ ```bash
33
+ # 查询 1: 获取字段定义和合法值
34
+ icafe-cli space type-fields --space <space> --type <card_type>
35
+
36
+ # 查询 2: 如需修改状态,获取可达的目标状态
37
+ icafe-cli card next-statuses --space <space> --sequence <sequence>
38
+ ```
39
+
40
+ **字段定义** (`type-fields`) 重点关注:
41
+ - 要修改的目标字段是否存在
42
+ - 字段的可选值列表(如优先级有哪些值、下拉列表的选项等)
43
+ - **注意**: `type-fields` **不包含流程状态字段**,流程状态用 `next-statuses` 查询
44
+ - 字段的类型(文本、选择、人员、日期等),决定了值的格式
45
+ - 如果用户要修改的值不在选项列表中,提前告知用户,不要盲目调用
46
+
47
+ **状态流转规则** (`next-statuses`,仅修改状态时需要):
48
+ - 第一步的 `card get` 已返回卡片当前状态 (`status` 和 `isFinishedStatus`),无需再单独调用 `card current-status`
49
+ - 返回的 `result[].statusName` 即为从当前状态可直接到达的目标状态列表
50
+ - 如果 `result` 为空数组,说明当前状态没有可达的目标 (可能是终态或工作流未配置出边),告知用户
51
+ - 检查用户要修改的目标状态是否在返回的列表中
52
+ - 如果目标状态不在列表中 → 提前告知用户"当前状态无法直接流转到目标状态",确认是否使用 `--no-check-status` 强制跳过
53
+ - 如果目标状态在列表中 → 向用户确认:"当前状态为 X,将修改为 Y,是否继续?"
54
+
55
+ > **提示**: `next-statuses` 比 `space type-statuses` 更精确。`type-statuses` 返回该类型所有合法状态,`next-statuses` 返回从当前状态可达的目标状态。但如果该类型未开启工作流,两者结果相同。
56
+
57
+ > **提示**: `card current-status` 是一个轻量接口,仅返回状态信息 (statusName, isFinishedStatus),适合只需查询状态而不需要完整卡片信息的场景。在本流程中,第一步已获取完整卡片信息,无需额外调用。
58
+
59
+ ## 第三步:向用户确认修改内容后执行
60
+
61
+ 汇总所有修改项,向用户展示并确认后执行:
62
+
63
+ ```bash
64
+ icafe-cli card update --space <space> --sequence <sequence> \
65
+ --status <new_status> \
66
+ --assignee <new_assignee> \
67
+ --priority <new_priority> \
68
+ --fields "自定义字段=新值" \
69
+ --comment "修改原因说明"
70
+ ```
71
+
72
+ ## 第四步:验证更新结果
73
+
74
+ ```bash
75
+ icafe-cli card get --space <space> --sequence <sequence> --brief
76
+ ```
77
+
78
+ 对比更新前后的数据,确认修改成功。
79
+
80
+ **如果更新失败**,分析错误信息:
81
+
82
+ | 常见错误 | 原因 | 解决方案 |
83
+ |----------|------|----------|
84
+ | HTTP 500 + `"流程状态不存在"` | 状态名不存在 | 用 `space type-statuses` 确认合法状态名 |
85
+ | HTTP 500 + `"无法流转到该流程状态"` | 流转路径不合法 | 使用 `--no-check-status` 重试,或先用 `card next-statuses` 确认可达状态 |
86
+ | HTTP 500 + `"无法到达该流程状态,还有必填字段没有填写: fieldName"` | 缺必填字段 | 在 `--fields` 中补充 |
87
+ | HTTP 500 + `"field value error : 字段名=值"` | 值不合法 | 用 `space type-fields` 查询合法值 |
88
+ | HTTP 500 + `"字段名: field does not exist!"` | 字段不存在 | 用 `space type-fields` 确认该类型有哪些字段 |
89
+ | HTTP 403 | 无权限 | 告知用户联系管理员 |
90
+ | HTTP 404 | space 或 sequence 错误 | 核实参数 |
91
+
92
+ 对于可重试的错误(如缺必填字段、字段值不合法),修正参数后自动重试一次;对于权限类错误,直接告知用户。
93
+
94
+ ## 决策流程图
95
+
96
+ ```
97
+ 用户要求修改卡片
98
+
99
+ ├─ 0. 确定卡片 (如果用户没给完整 space+sequence,参考智能寻卡工作流)
100
+
101
+ ├─ 1. card get --brief 获取卡片当前信息 (记录 type.name 用于后续查询)
102
+
103
+ ├─ 2. 并行获取: type-fields 字段定义 + next-statuses 可达状态 (如需改状态)
104
+ │ ├─ 字段值合法?
105
+ │ │ ├─ 合法 → 继续
106
+ │ │ └─ 不合法 → 告知用户正确的可选值 → 用户提供新值 → 重新检查
107
+ │ └─ 目标状态可达?
108
+ │ ├─ 可达 → 继续
109
+ │ └─ 不可达 → 告知用户,确认后使用 --no-check-status
110
+
111
+ ├─ 3. 汇总修改项,向用户确认 → card update 执行
112
+
113
+ └─ 4. card get --brief 验证结果
114
+ ├─ 成功 → 展示修改前后对比
115
+ └─ 失败 → 分析错误
116
+ ├─ 可重试(字段值/必填项/字段不存在) → 修正后重试
117
+ └─ 不可重试(权限等) → 告知用户
118
+ ```
@@ -0,0 +1,366 @@
1
+ ---
2
+ name: icode
3
+ metadata:
4
+ author: icode
5
+ version: "1.0.0"
6
+ enableWhen:
7
+ - isInternal
8
+ description: |
9
+ iCode 研发工具集,提供代码评审全流程自动化能力。支持登录认证、代码库克隆、CR 提交与追加、添加评审人、机器检查修复、AI 代码评审、打分与合入,覆盖从代码提交到合入的完整研发流程。
10
+ ---
11
+
12
+ ## 前置检查(必须执行)
13
+
14
+ 在执行任何 iCode 操作之前,先运行前置检查脚本验证环境:
15
+
16
+ ```bash
17
+ ./scripts/test-preflight.sh
18
+ ```
19
+
20
+ > 注:`./scripts/` 路径相对于 skill 目录,执行时需使用完整路径(如 `~/.claude/skills/icode/scripts/test-preflight.sh`)。
21
+
22
+ 如果检查失败:
23
+ - **icode-cli 未安装或版本过低**:执行 `curl -sSL http://icode-cli.bj.bcebos.com/install.sh | bash -s -- --no-skills` 强制安装最新版(要求 >= 0.1.8)
24
+ - **未登录**:执行 `icode-cli login` 进行登录
25
+ - **不是 git 仓库**:确保当前目录是有效的 git 仓库,或使用 `icode-cli git clone` 克隆代码库
26
+
27
+ 本 skill 依赖 `icafe-official` skill,如未安装请先执行:
28
+ ```bash
29
+ ducc skill install icafe-official # ducc/dodo 环境
30
+ zulu skill install icafe-official # comate-iCode 环境
31
+ ```
32
+
33
+ ## 功能概览
34
+
35
+ ### 1. 登录认证
36
+
37
+ 管理 iCode 认证状态。详见 [login.md](references/login.md)
38
+
39
+ **常用命令:**
40
+
41
+ - `login`: 检查登录状态或进行登录(交互式/非交互式)
42
+ ```bash
43
+ # 参考命令
44
+ icode-cli login
45
+ icode-cli login --token "eyJ..."
46
+ icode-cli login --method comate --token "Bearer-xxx"
47
+ ```
48
+ 详见 [login.md](references/login.md)
49
+
50
+ - `logout`: 登出并清除认证信息
51
+ ```bash
52
+ # 参考命令
53
+ icode-cli logout
54
+ ```
55
+ 详见 [login.md](references/login.md)
56
+
57
+ ## 场景
58
+
59
+ 以下场景脚本位于 skill 的 `./scripts/` 目录,**但必须在 git 仓库目录下执行**(即用户的工作目录)。
60
+
61
+ 执行方式:在 git 仓库目录下,使用 skill 脚本的完整路径调用。
62
+
63
+ ### 1. 提交 CR
64
+
65
+ 智能判断新建 CR 或追加到已有 CR(Amend 模式)。
66
+ ```bash
67
+ # 参考命令
68
+ ./scripts/submit-cr.sh [target-branch]
69
+ ```
70
+ 详见 [submit-cr.md](references/feature/submit-cr.md)
71
+
72
+ **功能说明:**
73
+ - 自动检测是否有工作区修改
74
+ - 通过 commit hash 或 iCafe 卡片号匹配已有 CR
75
+ - 匹配到则执行 amend 模式,否则新建 CR
76
+ - 支持指定目标分支(默认 master)
77
+
78
+ **Agent 执行约束:**
79
+ - 新建 CR 时,脚本会提示输入 commit message
80
+ - **必须先调用 `icafe-official` skill 获取 iCafe 卡片 ID**,然后以 `<卡片ID> <描述>` 格式输入(如 `ComateStack-5353 feat: add new feature`)
81
+ - 这样可以确保 CR 与 iCafe 卡片正确关联,后续修改也能自动 amend 到同一 CR
82
+
83
+ ### 2. 添加评审人
84
+
85
+ 从历史 CR 中自动选择评审人,或使用指定的评审人。
86
+ ```bash
87
+ # 参考命令
88
+ ./scripts/add-reviewer.sh [cr-number] [reviewer]
89
+ ```
90
+ 详见 [add-reviewer.md](references/feature/add-reviewer.md)
91
+
92
+ **功能说明:**
93
+ - 不指定 CR 时自动检测当前 commit 对应的 CR
94
+ - 不指定评审人时从历史已合入的 CR 中随机选择
95
+ - 支持手动指定评审人用户名
96
+
97
+ ### 3. 修复机器检查
98
+
99
+ 检测 CR 的机器检查结果,输出失败项详情供 Agent 分析修复。
100
+ ```bash
101
+ # 参考命令
102
+ ./scripts/fix-machine-check.sh [cr-number] [max-retries]
103
+ ```
104
+ 详见 [fix-machine-check.md](references/feature/fix-machine-check.md)
105
+
106
+ **功能说明:**
107
+ - 获取机器检查结果(代码规范、缺陷检查等)
108
+ - 输出失败项的详细信息(检查项、状态、行内评论)
109
+ - 失败时退出码为 2,等待 Agent 修复后重新运行
110
+
111
+ ### 4. AI 代码评审
112
+
113
+ **触发条件**: 当用户要求"AI 代码评审"、"AI 评审"、"ACR"时,**优先使用此脚本**
114
+ 触发 AI 代码评审并分析结果,发现问题时退出等待 Agent 修复。
115
+ ```bash
116
+ # 参考命令
117
+ ./scripts/submit-acr.sh [cr-number] [max-loops] [timeout] [severity]
118
+ ```
119
+ 详见 [submit-acr.md](references/feature/submit-acr.md)
120
+
121
+ **功能说明:**
122
+ - 触发 AI 代码评审(start_ai_review)
123
+ - 轮询等待评审完成(每 10 秒检查一次)
124
+ - 过滤 severityScore >= 阈值的问题
125
+ - 有问题时输出详情并退出(退出码 2)
126
+
127
+ **严重度说明:**
128
+ | severityScore | 说明 |
129
+ |---------------|------|
130
+ | 1-4 | 低优先级(忽略) |
131
+ | 5-6 | 中优先级(需修复) |
132
+ | 7-10 | 高优先级(必须修复) |
133
+
134
+ ### 5. 合入 CR
135
+
136
+ 尝试打分 +2 并合入 CR,通过打分结果判断是否有合入权限。
137
+ ```bash
138
+ # 参考命令
139
+ ./scripts/merge-cr.sh [cr-number]
140
+ ```
141
+ 详见 [merge-cr.md](references/feature/merge-cr.md)
142
+
143
+ **功能说明:**
144
+ - 通过尝试打分 +2 检测是否有合入权限
145
+ - 打分成功:尝试合入 CR
146
+ - 打分失败:提示无权限,需联系管理员或找有权限的评审人
147
+ - 合入失败时输出失败原因
148
+
149
+ ### 6. SSH 密钥配置
150
+
151
+ 自动检测并配置 SSH 密钥,用于 iCode Git 操作认证。
152
+ ```bash
153
+ # 参考命令
154
+ ./scripts/ssh-setup.sh
155
+ ```
156
+ 详见 [ssh-setup.md](references/feature/ssh-setup.md)
157
+
158
+ **功能说明:**
159
+ - 检测本地是否存在 SSH 密钥(`~/.ssh/id_ed25519` 或 `~/.ssh/id_rsa`)
160
+ - 若不存在则自动生成新的 ed25519 密钥对
161
+ - 自动复制公钥到剪贴板(支持 macOS/Linux)
162
+ - 引导用户访问 https://console.cloud.baidu-int.com/devops/icode/account/keys 完成密钥绑定
163
+
164
+ ## Git 操作
165
+
166
+ 提供与 iCode 平台集成的 Git 操作命令。详见 [icode-git.md](references/git/icode-git.md)
167
+
168
+ ```bash
169
+ icode-cli git <command> [options]
170
+ ```
171
+
172
+ **常用命令:**
173
+
174
+ - `clone`: 克隆 iCode 代码库,自动配置认证
175
+ ```bash
176
+ # 参考命令
177
+ icode-cli git clone --repo baidu/icode/test --path ./local-path
178
+ ```
179
+ 详见 [clone.md](references/git/clone.md)
180
+
181
+ - `push`: 推送代码到指定分支
182
+ ```bash
183
+ # 参考命令
184
+ icode-cli git push --branch feature-x
185
+ ```
186
+ 详见 [push.md](references/git/push.md)
187
+
188
+ - `push_cr`: 提交代码到 Gerrit 进行代码评审
189
+ ```bash
190
+ # 参考命令
191
+ icode-cli git push_cr --branch master
192
+ ```
193
+ 详见 [push_cr.md](references/git/push_cr.md)
194
+
195
+ ## API 操作
196
+
197
+ 提供对 iCode 平台各种 API 的命令行访问。详见 [icode-api.md](references/icode-api.md)
198
+
199
+ ```bash
200
+ icode-cli api <command> [options] [-o json]
201
+ ```
202
+
203
+ **常用命令:**
204
+
205
+ - `get_repo_reviews`: 获取仓库CR列表
206
+ ```bash
207
+ # 参考命令
208
+ icode-cli api get_repo_reviews --repo baidu/icode/test
209
+ ```
210
+ 详见 [get_repo_reviews.md](references/api/get_repo_reviews.md)
211
+
212
+ - `get_my_reviews`: 获取我的评审列表
213
+ ```bash
214
+ # 参考命令
215
+ icode-cli api get_my_reviews
216
+ ```
217
+ 详见 [get_my_reviews.md](references/api/get_my_reviews.md)
218
+
219
+ - `get_repo_members`: 获取仓库成员列表
220
+ ```bash
221
+ # 参考命令
222
+ icode-cli api get_repo_members --repo baidu/icode/test
223
+ ```
224
+ 详见 [get_repo_members.md](references/api/get_repo_members.md)
225
+
226
+ - `get_review_info`: 获取CR详细信息
227
+ ```bash
228
+ # 参考命令
229
+ icode-cli api get_review_info -n 12345
230
+ ```
231
+ 详见 [get_review_info.md](references/api/get_review_info.md)
232
+
233
+ - `get_diff_file`: 获取commit变更文件
234
+ ```bash
235
+ # 参考命令
236
+ icode-cli api get_diff_file --repo baidu/icode/test --commit abc123
237
+ ```
238
+ 详见 [get_diff_file.md](references/api/get_diff_file.md)
239
+
240
+ - `get_diff_content`: 获取文件diff内容
241
+ ```bash
242
+ # 参考命令
243
+ icode-cli api get_diff_content --repo baidu/icode/test --commit abc123 --file src/main.go
244
+ ```
245
+ 详见 [get_diff_content.md](references/api/get_diff_content.md)
246
+
247
+ - `add_reviewers`: 添加评审人
248
+ ```bash
249
+ # 参考命令
250
+ icode-cli api add_reviewers -n 12345 --reviewers zhangsan
251
+ ```
252
+ 详见 [add_reviewers.md](references/api/add_reviewers.md)
253
+
254
+ - `set_review_score`: 设置评审分数
255
+ ```bash
256
+ # 参考命令
257
+ icode-cli api set_review_score --repo baidu/icode/test -n 12345 --score 2
258
+ ```
259
+ 详见 [set_review_score.md](references/api/set_review_score.md)
260
+
261
+ - `submit_review`: 合入CR
262
+ ```bash
263
+ # 参考命令
264
+ icode-cli api submit_review --repo baidu/icode/test -n 12345
265
+ ```
266
+ 详见 [submit_review.md](references/api/submit_review.md)
267
+
268
+ - `create_draft_comment`: 创建草稿评论
269
+ ```bash
270
+ # 参考命令
271
+ icode-cli api create_draft_comment --repo baidu/icode/test --change-number 12345 --patch-set-id 1 --path src/main.go --message "评论内容"
272
+ ```
273
+ 详见 [create_draft_comment.md](references/api/create_draft_comment.md)
274
+
275
+ - `publish_comments`: 发布草稿评论
276
+ ```bash
277
+ # 参考命令
278
+ icode-cli api publish_comments --repo baidu/icode/test --change-number 12345 --patch-set-id 1
279
+ ```
280
+ 详见 [publish_comments.md](references/api/publish_comments.md)
281
+
282
+ - `start_ai_review`: 触发AI代码评审
283
+ ```bash
284
+ # 参考命令
285
+ icode-cli api start_ai_review -n 12345
286
+ ```
287
+ 详见 [start_ai_review.md](references/api/start_ai_review.md)
288
+
289
+ - `get_ai_review`: 获取AI评审结果
290
+ ```bash
291
+ # 参考命令
292
+ icode-cli api get_ai_review -i <task_id>
293
+ ```
294
+ 详见 [get_ai_review.md](references/api/get_ai_review.md)
295
+
296
+ - `get_machine_check`: 获取机器检查结果
297
+ ```bash
298
+ # 参考命令
299
+ icode-cli api get_machine_check -n 12345
300
+ ```
301
+ 详见 [get_machine_check.md](references/api/get_machine_check.md)
302
+
303
+ - `check_repo_permission`: 检查代码库权限
304
+ ```bash
305
+ # 参考命令
306
+ icode-cli api check_repo_permission --repo baidu/icode/test
307
+ ```
308
+ 详见 [check_repo_permission.md](references/api/check_repo_permission.md)
309
+
310
+ - `get_repo_config`: 获取代码库配置
311
+ ```bash
312
+ # 参考命令
313
+ icode-cli api get_repo_config --repo-names baidu/icode/test
314
+ ```
315
+ 详见 [get_repo_config.md](references/api/get_repo_config.md)
316
+
317
+ - `get_submit_settings`: 获取提交规则配置
318
+ ```bash
319
+ # 参考命令
320
+ icode-cli api get_submit_settings --repo baidu/icode/test
321
+ ```
322
+ 详见 [get_submit_settings.md](references/api/get_submit_settings.md)
323
+
324
+ - `create_branch`: 创建新分支
325
+ ```bash
326
+ # 参考命令
327
+ icode-cli api create_branch --repo baidu/icode/test --branch feature-x --from master
328
+ ```
329
+ 详见 [create_branch.md](references/api/create_branch.md)
330
+
331
+ - `build_fetch_command`: 生成git fetch命令
332
+ ```bash
333
+ # 参考命令
334
+ icode-cli api build_fetch_command --change-number 12345
335
+ ```
336
+ 详见 [build_fetch_command.md](references/api/build_fetch_command.md)
337
+
338
+ ## 典型工作流
339
+
340
+ ```bash
341
+ # 1. 检查登录状态
342
+ icode-cli login
343
+
344
+ # 2. 开发完成后提交 CR
345
+ ./scripts/submit-cr.sh
346
+
347
+ # 3. 修复机器检查问题(如有)
348
+ ./scripts/fix-machine-check.sh
349
+
350
+ # 4. 运行 AI 代码评审
351
+ ./scripts/submit-acr.sh
352
+
353
+ # 5. 添加评审人(如需要)
354
+ ./scripts/add-reviewer.sh
355
+
356
+ # 6. 合入 CR
357
+ ./scripts/merge-cr.sh
358
+ ```
359
+
360
+ ## 退出码
361
+
362
+ | 退出码 | 含义 |
363
+ |--------|------|
364
+ | 0 | 成功 |
365
+ | 1 | 失败(无 CR / 超时 / 配置错误) |
366
+ | 2 | 需要 Agent 修复或人工介入 |
@@ -0,0 +1,44 @@
1
+ # add_reviewers - 添加评审人
2
+
3
+ 为代码评审添加一个或多个评审人。
4
+
5
+ ## 命令格式
6
+
7
+ ```bash
8
+ icode-cli api add_reviewers --change-number <评审编号> --reviewers <评审人列表>
9
+ ```
10
+
11
+ ## 参数说明
12
+
13
+ | 参数 | 短参数 | 必填 | 默认值 | 说明 |
14
+ |------|--------|------|--------|------|
15
+ | `--change-number` | `-n` | 是 | - | 评审编号(数字) |
16
+ | `--reviewers` | `-r` | 是 | - | 评审人用户名,多个用逗号分隔 |
17
+
18
+ ## 使用示例
19
+
20
+ ```bash
21
+ # 添加单个评审人
22
+ icode-cli api add_reviewers -n 12345 --reviewers zhangsan
23
+
24
+ # 添加多个评审人
25
+ icode-cli api add_reviewers --change-number 12345 --reviewers zhangsan,lisi,wangwu
26
+
27
+ # 简写形式
28
+ icode-cli api add_reviewers -n 12345 -r zhangsan,lisi
29
+ ```
30
+
31
+ ## 返回数据
32
+
33
+ ```
34
+ Status: OK
35
+ Message: 操作成功
36
+ Added reviewers: zhangsan, lisi, wangwu
37
+ ```
38
+
39
+ ## 注意事项
40
+
41
+ - 需要有该评审的编辑权限
42
+ - 评审人用户名必须是有效的 iCode 用户
43
+ - 多个评审人使用逗号分隔,不要有空格
44
+ - 已经是评审人的用户会被忽略
@@ -0,0 +1,89 @@
1
+ # build_fetch_command
2
+
3
+ 根据评审编号生成下载评审代码的 git fetch 命令。内部调用 `get_review_info` 获取评审详情,自动完成取模运算和路径拼接。
4
+
5
+ ## 命令格式
6
+
7
+ ```bash
8
+ icode-cli api build_fetch_command --change-number <n> [-o json|yaml]
9
+ ```
10
+
11
+ ## 参数说明
12
+
13
+ | 参数 | 短参数 | 必填 | 默认值 | 说明 |
14
+ |------|--------|------|--------|------|
15
+ | `--change-number` | `-n` | 是 | - | 评审编号 |
16
+ | `--output` | `-o` | 否 | json | 输出格式:json、yaml |
17
+
18
+ ## 使用示例
19
+
20
+ ```bash
21
+ # 生成 git fetch 命令
22
+ icode-cli api build_fetch_command --change-number 12345
23
+ ```
24
+
25
+ ## 输出格式
26
+
27
+ ### JSON 格式(默认)
28
+
29
+ ```json
30
+ {
31
+ "status": "OK",
32
+ "message": "git fetch command generated",
33
+ "data": {
34
+ "fetch_command": "git fetch ssh://zhangsan@icode.baidu.com:8235/baidu/icode/test refs/changes/45/12345/1 && git checkout FETCH_HEAD",
35
+ "project": "baidu/icode/test",
36
+ "change_number": 12345,
37
+ "current_revision": "1",
38
+ "ref_path": "refs/changes/45/12345/1"
39
+ }
40
+ }
41
+ ```
42
+
43
+ ## 返回字段说明
44
+
45
+ | 字段 | 类型 | 说明 |
46
+ |------|------|------|
47
+ | `fetch_command` | string | 完整的 git fetch 命令 |
48
+ | `project` | string | 代码库名称 |
49
+ | `change_number` | int | 评审编号 |
50
+ | `current_revision` | string | 当前 PatchSet 版本 |
51
+ | `ref_path` | string | Git ref 路径 |
52
+
53
+ ## ref_path 计算规则
54
+
55
+ Git ref 路径格式为:`refs/changes/{last_two}/{change_number}/{revision}`
56
+
57
+ - `last_two`: 评审编号对 100 取模,补零到两位(如 12345 -> 45)
58
+ - `change_number`: 评审编号
59
+ - `revision`: 当前 PatchSet 版本号
60
+
61
+ ## 使用场景
62
+
63
+ 1. **下载评审代码**:快速获取评审代码到本地
64
+ 2. **代码对比**:checkout 到评审代码版本进行对比
65
+ 3. **本地测试**:在本地测试评审中的代码
66
+ 4. **自动化脚本**:在脚本中自动获取评审代码
67
+
68
+ ## 典型用法
69
+
70
+ ```bash
71
+ # 获取命令并执行
72
+ eval $(icode-cli api build_fetch_command -n 12345 -o json | jq -r '.data.fetch_command')
73
+
74
+ # 或者分步执行
75
+ result=$(icode-cli api build_fetch_command -n 12345)
76
+ fetch_cmd=$(echo "$result" | jq -r '.data.fetch_command')
77
+ eval "$fetch_cmd"
78
+ ```
79
+
80
+ ## 注意事项
81
+
82
+ - 需要先配置 SSH 密钥才能执行生成的 fetch 命令
83
+ - 生成的命令会 checkout 到 FETCH_HEAD,这是一个临时引用
84
+ - 如果需要在此基础上开发,建议创建新分支
85
+
86
+ ## 相关命令
87
+
88
+ - `icode-cli api get_review_info`: 获取评审详情
89
+ - `icode-cli git clone`: 克隆代码库
@@ -0,0 +1,89 @@
1
+ # check_repo_permission
2
+
3
+ 检查当前用户是否有指定代码库的操作权限。
4
+
5
+ ## 命令格式
6
+
7
+ ```bash
8
+ icode-cli api check_repo_permission --repo <repo-name> [--operation <operation>] [-o json|table|yaml]
9
+ ```
10
+
11
+ ## 参数说明
12
+
13
+ | 参数 | 短参数 | 必填 | 默认值 | 说明 |
14
+ |------|--------|------|--------|------|
15
+ | `--repo` | `-r` | 是 | - | 代码库全名,格式如 `baidu/project/repo` |
16
+ | `--operation` | `-p` | 否 | read | 操作类型 |
17
+ | `--output` | `-o` | 否 | json | 输出格式:json、table、yaml |
18
+
19
+ ## 操作类型
20
+
21
+ | 值 | 说明 |
22
+ |------|------|
23
+ | `read` | 读取权限(默认) |
24
+ | `write` | 写入权限 |
25
+
26
+ ## 使用示例
27
+
28
+ ```bash
29
+ # 检查是否有代码库的读权限
30
+ icode-cli api check_repo_permission --repo baidu/icode/test
31
+
32
+ # 检查指定操作权限
33
+ icode-cli api check_repo_permission --repo baidu/icode/test --operation write
34
+
35
+ # 以表格形式输出
36
+ icode-cli api check_repo_permission --repo baidu/icode/test --output table
37
+ ```
38
+
39
+ ## 输出格式
40
+
41
+ ### JSON 格式(默认)
42
+
43
+ ```json
44
+ {
45
+ "status": "OK",
46
+ "message": "",
47
+ "data": true
48
+ }
49
+ ```
50
+
51
+ ### Table 格式
52
+
53
+ ```
54
+ Repository: baidu/icode/test
55
+ Operation: read
56
+ Has Permission: Yes
57
+ ```
58
+
59
+ ## 返回字段说明
60
+
61
+ | 字段 | 类型 | 说明 |
62
+ |------|------|------|
63
+ | `status` | string | 状态码,OK 表示成功 |
64
+ | `message` | string | 状态消息 |
65
+ | `data` | bool | 是否有权限,true 表示有权限 |
66
+
67
+ ## 使用场景
68
+
69
+ 1. **权限检查**:操作前检查是否有相应权限
70
+ 2. **条件执行**:根据权限决定后续操作
71
+ 3. **错误预防**:避免因权限不足导致的操作失败
72
+
73
+ ## 典型用法
74
+
75
+ ```bash
76
+ # 在脚本中检查权限后再执行操作
77
+ if icode-cli api check_repo_permission --repo baidu/icode/test -o json | jq -e '.data == true' > /dev/null; then
78
+ echo "有权限,继续执行..."
79
+ icode-cli api get_repo_config --repo-names baidu/icode/test
80
+ else
81
+ echo "无权限,请申请访问"
82
+ fi
83
+ ```
84
+
85
+ ## 相关命令
86
+
87
+ - `icode-cli api get_repo_config`: 获取代码库配置
88
+ - `icode-cli api get_submit_settings`: 获取提交规则配置
89
+ - `icode-cli api get_repo_members`: 获取代码库成员