@fitlab-ai/agent-infra 0.3.2 → 0.4.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 (302) hide show
  1. package/README.md +18 -35
  2. package/README.zh-CN.md +18 -35
  3. package/lib/defaults.json +5 -12
  4. package/lib/init.js +9 -25
  5. package/lib/paths.js +3 -42
  6. package/lib/update.js +43 -32
  7. package/package.json +2 -1
  8. package/templates/.agents/QUICKSTART.md +17 -7
  9. package/templates/.agents/QUICKSTART.zh-CN.md +17 -7
  10. package/templates/.agents/README.md +21 -14
  11. package/templates/.agents/README.zh-CN.md +21 -14
  12. package/templates/.agents/skills/analyze-task/SKILL.md +7 -10
  13. package/templates/.agents/skills/analyze-task/SKILL.zh-CN.md +7 -9
  14. package/templates/.agents/skills/block-task/SKILL.md +9 -13
  15. package/templates/.agents/skills/block-task/SKILL.zh-CN.md +9 -12
  16. package/templates/.agents/skills/check-task/SKILL.md +4 -8
  17. package/templates/.agents/skills/check-task/SKILL.zh-CN.md +4 -6
  18. package/templates/.agents/skills/close-codescan/SKILL.md +1 -4
  19. package/templates/.agents/skills/close-codescan/SKILL.zh-CN.md +1 -3
  20. package/templates/.agents/skills/close-dependabot/SKILL.md +1 -4
  21. package/templates/.agents/skills/close-dependabot/SKILL.zh-CN.md +1 -3
  22. package/templates/.agents/skills/commit/SKILL.md +26 -198
  23. package/templates/.agents/skills/commit/SKILL.zh-CN.md +26 -197
  24. package/templates/.agents/skills/commit/reference/commit-message.md +60 -0
  25. package/templates/.agents/skills/commit/reference/commit-message.zh-CN.md +60 -0
  26. package/templates/.agents/skills/commit/reference/copyright-check.md +39 -0
  27. package/templates/.agents/skills/commit/reference/copyright-check.zh-CN.md +39 -0
  28. package/templates/.agents/skills/commit/reference/task-status-update.md +88 -0
  29. package/templates/.agents/skills/commit/reference/task-status-update.zh-CN.md +88 -0
  30. package/templates/.agents/skills/complete-task/SKILL.md +8 -13
  31. package/templates/.agents/skills/complete-task/SKILL.zh-CN.md +8 -11
  32. package/templates/.agents/skills/create-issue/SKILL.md +32 -251
  33. package/templates/.agents/skills/create-issue/SKILL.zh-CN.md +33 -252
  34. package/templates/.agents/skills/create-issue/reference/label-and-type.md +77 -0
  35. package/templates/.agents/skills/create-issue/reference/label-and-type.zh-CN.md +77 -0
  36. package/templates/.agents/skills/create-issue/reference/template-matching.md +45 -0
  37. package/templates/.agents/skills/create-issue/reference/template-matching.zh-CN.md +45 -0
  38. package/templates/.agents/skills/create-pr/SKILL.md +33 -224
  39. package/templates/.agents/skills/create-pr/SKILL.zh-CN.md +32 -222
  40. package/templates/.agents/skills/create-pr/reference/branch-strategy.md +29 -0
  41. package/templates/.agents/skills/create-pr/reference/branch-strategy.zh-CN.md +29 -0
  42. package/templates/.agents/skills/create-pr/reference/pr-body-template.md +86 -0
  43. package/templates/.agents/skills/create-pr/reference/pr-body-template.zh-CN.md +86 -0
  44. package/templates/.agents/skills/create-release-note/SKILL.md +10 -13
  45. package/templates/.agents/skills/create-release-note/SKILL.zh-CN.md +10 -12
  46. package/templates/.agents/skills/create-task/SKILL.md +5 -8
  47. package/templates/.agents/skills/create-task/SKILL.zh-CN.md +5 -7
  48. package/templates/.agents/skills/implement-task/SKILL.md +48 -178
  49. package/templates/.agents/skills/implement-task/SKILL.zh-CN.md +44 -172
  50. package/templates/.agents/skills/implement-task/reference/implementation-rules.md +58 -0
  51. package/templates/.agents/skills/implement-task/reference/implementation-rules.zh-CN.md +58 -0
  52. package/templates/.agents/skills/implement-task/reference/report-template.md +63 -0
  53. package/templates/.agents/skills/implement-task/reference/report-template.zh-CN.md +63 -0
  54. package/templates/.agents/skills/import-codescan/SKILL.md +2 -5
  55. package/templates/.agents/skills/import-codescan/SKILL.zh-CN.md +2 -4
  56. package/templates/.agents/skills/import-dependabot/SKILL.md +4 -7
  57. package/templates/.agents/skills/import-dependabot/SKILL.zh-CN.md +4 -6
  58. package/templates/.agents/skills/import-issue/SKILL.md +6 -8
  59. package/templates/.agents/skills/import-issue/SKILL.zh-CN.md +6 -8
  60. package/templates/.agents/skills/init-labels/SKILL.md +1 -4
  61. package/templates/.agents/skills/init-labels/SKILL.zh-CN.md +1 -4
  62. package/templates/.agents/skills/init-milestones/SKILL.md +1 -3
  63. package/templates/.agents/skills/init-milestones/SKILL.zh-CN.md +1 -3
  64. package/templates/.agents/skills/plan-task/SKILL.md +7 -11
  65. package/templates/.agents/skills/plan-task/SKILL.zh-CN.md +7 -9
  66. package/templates/.agents/skills/refine-task/SKILL.md +38 -162
  67. package/templates/.agents/skills/refine-task/SKILL.zh-CN.md +36 -158
  68. package/templates/.agents/skills/refine-task/reference/fix-workflow.md +76 -0
  69. package/templates/.agents/skills/refine-task/reference/fix-workflow.zh-CN.md +76 -0
  70. package/templates/.agents/skills/refine-task/reference/report-template.md +38 -0
  71. package/templates/.agents/skills/refine-task/reference/report-template.zh-CN.md +38 -0
  72. package/templates/.agents/skills/refine-title/SKILL.md +1 -4
  73. package/templates/.agents/skills/refine-title/SKILL.zh-CN.md +1 -3
  74. package/templates/.agents/skills/release/SKILL.md +58 -19
  75. package/templates/.agents/skills/release/SKILL.zh-CN.md +58 -18
  76. package/templates/.agents/skills/review-task/SKILL.md +37 -239
  77. package/templates/.agents/skills/review-task/SKILL.zh-CN.md +37 -238
  78. package/templates/.agents/skills/review-task/reference/output-templates.md +72 -0
  79. package/templates/.agents/skills/review-task/reference/output-templates.zh-CN.md +72 -0
  80. package/templates/.agents/skills/review-task/reference/report-template.md +63 -0
  81. package/templates/.agents/skills/review-task/reference/report-template.zh-CN.md +63 -0
  82. package/templates/.agents/skills/review-task/reference/review-criteria.md +24 -0
  83. package/templates/.agents/skills/review-task/reference/review-criteria.zh-CN.md +24 -0
  84. package/templates/.agents/skills/sync-issue/SKILL.md +32 -490
  85. package/templates/.agents/skills/sync-issue/SKILL.zh-CN.md +33 -490
  86. package/templates/.agents/skills/sync-issue/reference/comment-publish.md +88 -0
  87. package/templates/.agents/skills/sync-issue/reference/comment-publish.zh-CN.md +88 -0
  88. package/templates/.agents/skills/sync-issue/reference/delivery-detection.md +42 -0
  89. package/templates/.agents/skills/sync-issue/reference/delivery-detection.zh-CN.md +42 -0
  90. package/templates/.agents/skills/sync-issue/reference/label-sync.md +63 -0
  91. package/templates/.agents/skills/sync-issue/reference/label-sync.zh-CN.md +63 -0
  92. package/templates/.agents/skills/sync-issue/reference/milestone-sync.md +37 -0
  93. package/templates/.agents/skills/sync-issue/reference/milestone-sync.zh-CN.md +37 -0
  94. package/templates/.agents/skills/sync-pr/SKILL.md +25 -287
  95. package/templates/.agents/skills/sync-pr/SKILL.zh-CN.md +29 -291
  96. package/templates/.agents/skills/sync-pr/reference/comment-publish.md +82 -0
  97. package/templates/.agents/skills/sync-pr/reference/comment-publish.zh-CN.md +82 -0
  98. package/templates/.agents/skills/sync-pr/reference/delivery-detection.md +54 -0
  99. package/templates/.agents/skills/sync-pr/reference/delivery-detection.zh-CN.md +54 -0
  100. package/templates/.agents/skills/test/SKILL.md +1 -3
  101. package/templates/.agents/skills/test/SKILL.zh-CN.md +1 -3
  102. package/templates/.agents/skills/test-integration/SKILL.md +1 -4
  103. package/templates/.agents/skills/test-integration/SKILL.zh-CN.md +1 -3
  104. package/templates/.agents/skills/update-agent-infra/SKILL.md +7 -11
  105. package/templates/.agents/skills/update-agent-infra/SKILL.zh-CN.md +7 -9
  106. package/templates/.agents/skills/update-agent-infra/scripts/sync-templates.js +59 -118
  107. package/templates/.agents/skills/upgrade-dependency/SKILL.md +1 -4
  108. package/templates/.agents/skills/upgrade-dependency/SKILL.zh-CN.md +1 -3
  109. package/templates/.agents/templates/handoff.md +1 -1
  110. package/templates/.agents/templates/handoff.zh-CN.md +1 -1
  111. package/templates/.agents/workflows/bug-fix.yaml +71 -71
  112. package/templates/.agents/workflows/bug-fix.zh-CN.yaml +1 -1
  113. package/templates/.agents/workflows/feature-development.yaml +71 -71
  114. package/templates/.agents/workflows/feature-development.zh-CN.yaml +1 -1
  115. package/templates/.agents/workflows/refactoring.yaml +76 -76
  116. package/templates/.agents/workflows/refactoring.zh-CN.yaml +1 -1
  117. package/templates/{.agent-workspace → .agents/workspace}/README.md +1 -1
  118. package/templates/{.agent-workspace → .agents/workspace}/README.zh-CN.md +1 -1
  119. package/templates/.claude/CLAUDE.md +14 -52
  120. package/templates/.claude/CLAUDE.zh-CN.md +14 -52
  121. package/templates/.claude/commands/analyze-task.md +1 -1
  122. package/templates/.claude/commands/analyze-task.zh-CN.md +1 -1
  123. package/templates/.claude/commands/block-task.md +2 -1
  124. package/templates/.claude/commands/block-task.zh-CN.md +2 -1
  125. package/templates/.claude/commands/check-task.md +2 -1
  126. package/templates/.claude/commands/check-task.zh-CN.md +2 -1
  127. package/templates/.claude/commands/close-codescan.md +2 -1
  128. package/templates/.claude/commands/close-codescan.zh-CN.md +2 -1
  129. package/templates/.claude/commands/close-dependabot.md +2 -1
  130. package/templates/.claude/commands/close-dependabot.zh-CN.md +2 -1
  131. package/templates/.claude/commands/commit.md +1 -1
  132. package/templates/.claude/commands/commit.zh-CN.md +1 -1
  133. package/templates/.claude/commands/complete-task.md +1 -1
  134. package/templates/.claude/commands/complete-task.zh-CN.md +1 -1
  135. package/templates/.claude/commands/create-issue.md +1 -1
  136. package/templates/.claude/commands/create-issue.zh-CN.md +1 -1
  137. package/templates/.claude/commands/create-pr.md +1 -1
  138. package/templates/.claude/commands/create-pr.zh-CN.md +1 -1
  139. package/templates/.claude/commands/create-release-note.md +2 -1
  140. package/templates/.claude/commands/create-release-note.zh-CN.md +2 -1
  141. package/templates/.claude/commands/create-task.md +1 -1
  142. package/templates/.claude/commands/create-task.zh-CN.md +1 -1
  143. package/templates/.claude/commands/implement-task.md +1 -1
  144. package/templates/.claude/commands/implement-task.zh-CN.md +1 -1
  145. package/templates/.claude/commands/import-codescan.md +1 -0
  146. package/templates/.claude/commands/import-codescan.zh-CN.md +2 -1
  147. package/templates/.claude/commands/import-dependabot.md +1 -0
  148. package/templates/.claude/commands/import-dependabot.zh-CN.md +2 -1
  149. package/templates/.claude/commands/import-issue.md +1 -1
  150. package/templates/.claude/commands/import-issue.zh-CN.md +1 -1
  151. package/templates/.claude/commands/init-labels.md +1 -0
  152. package/templates/.claude/commands/init-labels.zh-CN.md +2 -1
  153. package/templates/.claude/commands/init-milestones.md +2 -1
  154. package/templates/.claude/commands/init-milestones.zh-CN.md +2 -1
  155. package/templates/.claude/commands/plan-task.md +1 -1
  156. package/templates/.claude/commands/plan-task.zh-CN.md +1 -1
  157. package/templates/.claude/commands/refine-task.zh-CN.md +1 -1
  158. package/templates/.claude/commands/refine-title.md +2 -1
  159. package/templates/.claude/commands/refine-title.zh-CN.md +2 -1
  160. package/templates/.claude/commands/release.md +2 -1
  161. package/templates/.claude/commands/release.zh-CN.md +2 -1
  162. package/templates/.claude/commands/review-task.md +1 -1
  163. package/templates/.claude/commands/review-task.zh-CN.md +1 -1
  164. package/templates/.claude/commands/sync-issue.md +1 -1
  165. package/templates/.claude/commands/sync-issue.zh-CN.md +1 -1
  166. package/templates/.claude/commands/sync-pr.md +1 -1
  167. package/templates/.claude/commands/sync-pr.zh-CN.md +1 -1
  168. package/templates/.claude/commands/test-integration.md +2 -1
  169. package/templates/.claude/commands/test-integration.zh-CN.md +2 -1
  170. package/templates/.claude/commands/test.md +1 -1
  171. package/templates/.claude/commands/test.zh-CN.md +1 -1
  172. package/templates/.claude/commands/update-agent-infra.md +2 -1
  173. package/templates/.claude/commands/update-agent-infra.zh-CN.md +2 -1
  174. package/templates/.claude/commands/upgrade-dependency.md +2 -1
  175. package/templates/.claude/commands/upgrade-dependency.zh-CN.md +2 -1
  176. package/templates/.claude/hooks/check-version-format.sh +44 -0
  177. package/templates/.claude/settings.json +14 -0
  178. package/templates/.gemini/commands/_project_/analyze-task.toml +1 -1
  179. package/templates/.gemini/commands/_project_/analyze-task.zh-CN.toml +1 -1
  180. package/templates/.gemini/commands/_project_/block-task.toml +1 -1
  181. package/templates/.gemini/commands/_project_/block-task.zh-CN.toml +1 -1
  182. package/templates/.gemini/commands/_project_/check-task.toml +1 -1
  183. package/templates/.gemini/commands/_project_/check-task.zh-CN.toml +1 -1
  184. package/templates/.gemini/commands/_project_/close-codescan.toml +1 -1
  185. package/templates/.gemini/commands/_project_/close-codescan.zh-CN.toml +1 -1
  186. package/templates/.gemini/commands/_project_/close-dependabot.toml +1 -1
  187. package/templates/.gemini/commands/_project_/close-dependabot.zh-CN.toml +1 -1
  188. package/templates/.gemini/commands/_project_/commit.toml +1 -1
  189. package/templates/.gemini/commands/_project_/commit.zh-CN.toml +1 -1
  190. package/templates/.gemini/commands/_project_/complete-task.toml +1 -1
  191. package/templates/.gemini/commands/_project_/complete-task.zh-CN.toml +1 -1
  192. package/templates/.gemini/commands/_project_/create-issue.zh-CN.toml +1 -1
  193. package/templates/.gemini/commands/_project_/create-pr.toml +1 -1
  194. package/templates/.gemini/commands/_project_/create-pr.zh-CN.toml +1 -1
  195. package/templates/.gemini/commands/_project_/create-release-note.toml +1 -1
  196. package/templates/.gemini/commands/_project_/create-release-note.zh-CN.toml +1 -1
  197. package/templates/.gemini/commands/_project_/create-task.toml +1 -1
  198. package/templates/.gemini/commands/_project_/create-task.zh-CN.toml +1 -1
  199. package/templates/.gemini/commands/_project_/implement-task.toml +1 -1
  200. package/templates/.gemini/commands/_project_/implement-task.zh-CN.toml +1 -1
  201. package/templates/.gemini/commands/_project_/import-codescan.zh-CN.toml +1 -1
  202. package/templates/.gemini/commands/_project_/import-dependabot.zh-CN.toml +1 -1
  203. package/templates/.gemini/commands/_project_/import-issue.toml +1 -1
  204. package/templates/.gemini/commands/_project_/import-issue.zh-CN.toml +1 -1
  205. package/templates/.gemini/commands/_project_/init-labels.zh-CN.toml +1 -1
  206. package/templates/.gemini/commands/_project_/init-milestones.toml +1 -1
  207. package/templates/.gemini/commands/_project_/init-milestones.zh-CN.toml +1 -1
  208. package/templates/.gemini/commands/_project_/plan-task.toml +1 -1
  209. package/templates/.gemini/commands/_project_/plan-task.zh-CN.toml +1 -1
  210. package/templates/.gemini/commands/_project_/refine-task.zh-CN.toml +1 -1
  211. package/templates/.gemini/commands/_project_/refine-title.toml +1 -1
  212. package/templates/.gemini/commands/_project_/refine-title.zh-CN.toml +1 -1
  213. package/templates/.gemini/commands/_project_/release.toml +1 -1
  214. package/templates/.gemini/commands/_project_/release.zh-CN.toml +1 -1
  215. package/templates/.gemini/commands/_project_/review-task.toml +1 -1
  216. package/templates/.gemini/commands/_project_/review-task.zh-CN.toml +1 -1
  217. package/templates/.gemini/commands/_project_/sync-issue.toml +1 -1
  218. package/templates/.gemini/commands/_project_/sync-issue.zh-CN.toml +1 -1
  219. package/templates/.gemini/commands/_project_/sync-pr.toml +1 -1
  220. package/templates/.gemini/commands/_project_/sync-pr.zh-CN.toml +1 -1
  221. package/templates/.gemini/commands/_project_/test-integration.toml +1 -1
  222. package/templates/.gemini/commands/_project_/test-integration.zh-CN.toml +1 -1
  223. package/templates/.gemini/commands/_project_/test.toml +1 -1
  224. package/templates/.gemini/commands/_project_/test.zh-CN.toml +1 -1
  225. package/templates/.gemini/commands/_project_/update-agent-infra.toml +1 -1
  226. package/templates/.gemini/commands/_project_/update-agent-infra.zh-CN.toml +1 -1
  227. package/templates/.gemini/commands/_project_/upgrade-dependency.toml +1 -1
  228. package/templates/.gemini/commands/_project_/upgrade-dependency.zh-CN.toml +1 -1
  229. package/templates/.github/hooks/check-version-format.sh +29 -0
  230. package/templates/.github/hooks/pre-commit +8 -0
  231. package/templates/.opencode/COMMAND_STYLE_GUIDE.md +6 -6
  232. package/templates/.opencode/COMMAND_STYLE_GUIDE.zh-CN.md +6 -6
  233. package/templates/.opencode/commands/analyze-task.md +1 -1
  234. package/templates/.opencode/commands/analyze-task.zh-CN.md +1 -1
  235. package/templates/.opencode/commands/block-task.md +1 -1
  236. package/templates/.opencode/commands/block-task.zh-CN.md +1 -1
  237. package/templates/.opencode/commands/check-task.md +1 -1
  238. package/templates/.opencode/commands/check-task.zh-CN.md +1 -1
  239. package/templates/.opencode/commands/close-codescan.md +1 -1
  240. package/templates/.opencode/commands/close-codescan.zh-CN.md +1 -1
  241. package/templates/.opencode/commands/close-dependabot.md +1 -1
  242. package/templates/.opencode/commands/close-dependabot.zh-CN.md +1 -1
  243. package/templates/.opencode/commands/commit.md +1 -1
  244. package/templates/.opencode/commands/commit.zh-CN.md +1 -1
  245. package/templates/.opencode/commands/complete-task.md +1 -1
  246. package/templates/.opencode/commands/complete-task.zh-CN.md +1 -1
  247. package/templates/.opencode/commands/create-issue.zh-CN.md +1 -1
  248. package/templates/.opencode/commands/create-pr.md +1 -1
  249. package/templates/.opencode/commands/create-pr.zh-CN.md +1 -1
  250. package/templates/.opencode/commands/create-release-note.md +1 -1
  251. package/templates/.opencode/commands/create-release-note.zh-CN.md +1 -1
  252. package/templates/.opencode/commands/create-task.md +1 -1
  253. package/templates/.opencode/commands/create-task.zh-CN.md +1 -1
  254. package/templates/.opencode/commands/implement-task.md +1 -1
  255. package/templates/.opencode/commands/implement-task.zh-CN.md +1 -1
  256. package/templates/.opencode/commands/import-codescan.zh-CN.md +1 -1
  257. package/templates/.opencode/commands/import-dependabot.zh-CN.md +1 -1
  258. package/templates/.opencode/commands/import-issue.md +1 -1
  259. package/templates/.opencode/commands/import-issue.zh-CN.md +1 -1
  260. package/templates/.opencode/commands/init-labels.zh-CN.md +1 -1
  261. package/templates/.opencode/commands/init-milestones.md +1 -1
  262. package/templates/.opencode/commands/init-milestones.zh-CN.md +1 -1
  263. package/templates/.opencode/commands/plan-task.md +1 -1
  264. package/templates/.opencode/commands/plan-task.zh-CN.md +1 -1
  265. package/templates/.opencode/commands/refine-task.zh-CN.md +1 -1
  266. package/templates/.opencode/commands/refine-title.md +1 -1
  267. package/templates/.opencode/commands/refine-title.zh-CN.md +1 -1
  268. package/templates/.opencode/commands/release.md +1 -1
  269. package/templates/.opencode/commands/release.zh-CN.md +1 -1
  270. package/templates/.opencode/commands/review-task.md +1 -1
  271. package/templates/.opencode/commands/review-task.zh-CN.md +1 -1
  272. package/templates/.opencode/commands/sync-issue.md +1 -1
  273. package/templates/.opencode/commands/sync-issue.zh-CN.md +1 -1
  274. package/templates/.opencode/commands/sync-pr.md +1 -1
  275. package/templates/.opencode/commands/sync-pr.zh-CN.md +1 -1
  276. package/templates/.opencode/commands/test-integration.md +1 -1
  277. package/templates/.opencode/commands/test-integration.zh-CN.md +1 -1
  278. package/templates/.opencode/commands/test.md +1 -1
  279. package/templates/.opencode/commands/test.zh-CN.md +1 -1
  280. package/templates/.opencode/commands/update-agent-infra.md +1 -1
  281. package/templates/.opencode/commands/update-agent-infra.zh-CN.md +1 -1
  282. package/templates/.opencode/commands/upgrade-dependency.md +1 -1
  283. package/templates/.opencode/commands/upgrade-dependency.zh-CN.md +1 -1
  284. package/templates/AGENTS.md +11 -3
  285. package/templates/AGENTS.zh-CN.md +11 -3
  286. package/templates/.editorconfig +0 -15
  287. package/templates/.github/ISSUE_TEMPLATE/01_bug_report.yml +0 -149
  288. package/templates/.github/ISSUE_TEMPLATE/02_question.yml +0 -101
  289. package/templates/.github/ISSUE_TEMPLATE/03_feature_request.yml +0 -131
  290. package/templates/.github/ISSUE_TEMPLATE/04_documentation.yml +0 -165
  291. package/templates/.github/ISSUE_TEMPLATE/05_other.yml +0 -147
  292. package/templates/.github/ISSUE_TEMPLATE/config.yml +0 -11
  293. package/templates/.github/PULL_REQUEST_TEMPLATE.md +0 -123
  294. package/templates/.github/dependabot.yml +0 -17
  295. package/templates/.github/hooks/check-utf8-encoding.sh +0 -25
  296. package/templates/.github/release.yml +0 -27
  297. package/templates/.github/workflows/pr-title-check.yml +0 -42
  298. package/templates/.mailmap +0 -4
  299. package/templates/CONTRIBUTING.md +0 -126
  300. package/templates/CONTRIBUTING.zh-CN.md +0 -124
  301. package/templates/SECURITY.md +0 -131
  302. package/templates/SECURITY.zh-CN.md +0 -131
@@ -1,10 +1,6 @@
1
1
  ---
2
2
  name: update-agent-infra
3
- description: >
4
- Update the current project's AI collaboration infrastructure
5
- and project governance to match the latest agent-infra
6
- templates. Intelligently merges template changes while
7
- preserving project-specific customizations.
3
+ description: "Update the project AI collaboration configuration"
8
4
  ---
9
5
 
10
6
  # Update Project
@@ -28,12 +24,12 @@ Execute the following command to handle all deterministic steps at once:
28
24
  node .agents/skills/update-agent-infra/scripts/sync-templates.js
29
25
  ```
30
26
 
31
- The script reads `.airc.json` (including `templateSource`, default `templates/`) and automatically performs:
32
- - git pull to fetch latest templates
33
- - File registry sync (`defaults.json` → `.airc.json`)
27
+ The script reads `.agents/.airc.json`, automatically locates the installed `@fitlab-ai/agent-infra/templates/` directory via npm, and performs:
28
+ - detect the template source version
29
+ - File registry sync (`defaults.json` → `.agents/.airc.json`)
34
30
  - All managed files (language selection → exclude merged/ejected → placeholder rendering → overwrite)
35
31
  - Ejected files (create only on first install)
36
- - `.airc.json` update (`templateVersion`, file lists)
32
+ - `.agents/.airc.json` update (`templateVersion`, file lists)
37
33
 
38
34
  The script outputs JSON to stdout. Parse and record the report.
39
35
 
@@ -46,14 +42,14 @@ The script outputs JSON to stdout. Parse and record the report.
46
42
  - Each item has `target` (project-relative path) and `template` (template-root-relative path)
47
43
  - `registryAdded`: newly added file registry entries
48
44
  - `selfUpdate`: whether this is a self-update scenario
49
- - `configUpdated`: whether `.airc.json` was updated
45
+ - `configUpdated`: whether `.agents/.airc.json` was updated
50
46
 
51
47
  ## Phase B: Process merged files (AI intelligent merge)
52
48
 
53
49
  Process each item in the report's `merged.pending` list:
54
50
 
55
51
  1. Read the template file from `<templateRoot>/<template>`
56
- 2. Render placeholders: replace double-brace `project` and `org` placeholders with actual values from .airc.json
52
+ 2. Render placeholders: replace double-brace `project` and `org` placeholders with actual values from .agents/.airc.json
57
53
  3. Read the current local file (`<project-root>/<target>`)
58
54
 
59
55
  **If the local file does not exist** (first-time setup), write the rendered
@@ -1,8 +1,6 @@
1
1
  ---
2
2
  name: update-agent-infra
3
- description: >
4
- 更新当前项目的 AI 协作基础设施和项目治理配置,使其与最新的 agent-infra 模板保持一致。
5
- 智能合并模板变更,同时保留项目特定的定制内容。
3
+ description: "更新项目 AI 协作配置"
6
4
  ---
7
5
 
8
6
  # 更新项目
@@ -24,12 +22,12 @@ description: >
24
22
  node .agents/skills/update-agent-infra/scripts/sync-templates.js
25
23
  ```
26
24
 
27
- 脚本读取 `.airc.json`(含 `templateSource`,默认 `templates/`),自动完成:
28
- - git pull 拉取最新模板
29
- - 同步文件注册表(`defaults.json` → `.airc.json`)
25
+ 脚本读取 `.agents/.airc.json`,并通过 npm 自动定位已安装的 `@fitlab-ai/agent-infra/templates/` 目录,然后自动完成:
26
+ - 检测模板源版本
27
+ - 同步文件注册表(`defaults.json` → `.agents/.airc.json`)
30
28
  - 处理所有 managed 文件(语言选择 → 排除 merged/ejected → 占位符渲染 → 覆盖写入)
31
29
  - 处理 ejected 文件(仅首次安装时创建)
32
- - 更新 `.airc.json`(`templateVersion`、文件列表)
30
+ - 更新 `.agents/.airc.json`(`templateVersion`、文件列表)
33
31
 
34
32
  脚本输出 JSON 到 stdout,解析并记录报告内容。
35
33
 
@@ -42,14 +40,14 @@ node .agents/skills/update-agent-infra/scripts/sync-templates.js
42
40
  - 每项包含 `target`(项目中的目标路径)和 `template`(模板根目录下的相对路径)
43
41
  - `registryAdded`:新增的文件注册条目
44
42
  - `selfUpdate`:是否为自更新模式
45
- - `configUpdated`:`.airc.json` 是否已更新
43
+ - `configUpdated`:`.agents/.airc.json` 是否已更新
46
44
 
47
45
  ## 阶段 B:处理 merged 文件(AI 智能合并)
48
46
 
49
47
  根据报告中 `merged.pending` 列表,逐个文件处理。对于每个条目:
50
48
 
51
49
  1. 从 `<templateRoot>/<template>` 读取模板文件
52
- 2. 渲染占位符:将双花括号包裹的 `project` 和 `org` 占位符替换为 .airc.json 中的实际值
50
+ 2. 渲染占位符:将双花括号包裹的 `project` 和 `org` 占位符替换为 .agents/.airc.json 中的实际值
53
51
  3. 读取本地当前文件(`<项目根>/<target>`)
54
52
 
55
53
  **如果本地文件不存在**(首次安装),直接写入渲染后的模板,跳过合并。
@@ -2,8 +2,8 @@
2
2
  /**
3
3
  * sync-templates.js — Deterministic template sync for managed & ejected files.
4
4
  *
5
- * Handles SKILL steps: 2 (git pull), 3.0 (registry sync), 4 (managed),
6
- * 6 (ejected), 7 (.airc.json update).
5
+ * Handles SKILL steps: 2 (detect template source version), 3.0 (registry sync), 4 (managed),
6
+ * 6 (ejected), 7 (.agents/.airc.json update).
7
7
  *
8
8
  * Merged files (step 5) are NOT handled — they require AI semantic merge.
9
9
  * The report includes `merged.pending` so the AI knows what to process.
@@ -16,39 +16,20 @@
16
16
 
17
17
  import childProcess from 'node:child_process';
18
18
  import fs from 'node:fs';
19
- import os from 'node:os';
20
19
  import path from 'node:path';
21
20
  import { fileURLToPath } from 'node:url';
22
21
 
23
- // Keep these helpers aligned with lib/paths.js for clone installs.
24
- function resolveInstallDir() {
25
- return path.join(os.homedir(), '.agent-infra');
26
- }
27
-
28
- function resolveTemplateDir() {
29
- const clonePath = path.join(resolveInstallDir(), 'templates');
30
- if (fs.existsSync(clonePath)) {
31
- return clonePath;
32
- }
33
-
34
- return null;
35
- }
36
-
37
22
  const DEFAULTS = {
38
23
  "files": {
39
24
  "managed": [
40
25
  ".agents/skills/",
41
26
  ".agents/templates/",
42
27
  ".agents/workflows/",
43
- ".agent-workspace/README.md",
28
+ ".agents/workspace/README.md",
44
29
  ".claude/commands/",
45
- ".editorconfig",
30
+ ".claude/hooks/",
46
31
  ".gemini/commands/",
47
- ".github/hooks/",
48
- ".github/ISSUE_TEMPLATE/",
49
- ".github/PULL_REQUEST_TEMPLATE.md",
50
- ".github/release.yml",
51
- ".github/workflows/pr-title-check.yml",
32
+ ".github/hooks/check-version-format.sh",
52
33
  ".opencode/commands/"
53
34
  ],
54
35
  "merged": [
@@ -67,20 +48,17 @@ const DEFAULTS = {
67
48
  ".claude/settings.json",
68
49
  ".codex/README.md",
69
50
  ".gemini/settings.json",
70
- ".github/dependabot.yml",
51
+ ".github/hooks/pre-commit",
71
52
  ".gitignore",
72
- ".mailmap",
73
53
  ".opencode/COMMAND_STYLE_GUIDE.md",
74
54
  ".opencode/README.md",
75
- "AGENTS.md",
76
- "CONTRIBUTING.md",
77
- "SECURITY.md"
55
+ "AGENTS.md"
78
56
  ],
79
57
  "ejected": []
80
58
  }
81
59
  };
82
60
 
83
- const INSTALLER_VERSION = "v0.3.2";
61
+ const INSTALLER_VERSION = "v0.4.1";
84
62
 
85
63
  function norm(p) { return p.replace(/\\/g, '/'); }
86
64
 
@@ -138,32 +116,42 @@ function renderPathname(p, project) {
138
116
  return p.replace(/_project_/g, project);
139
117
  }
140
118
 
141
- function resolveProjectTemplateDir(projectRoot, templateSource) {
142
- const fallbackRoot = resolveTemplateDir();
143
-
144
- const candidates = [];
145
- if (templateSource) {
146
- if (path.isAbsolute(templateSource)) {
147
- candidates.push(templateSource);
148
- } else {
149
- if (fallbackRoot) {
150
- candidates.push(path.resolve(path.dirname(fallbackRoot), templateSource));
151
- }
152
- candidates.push(path.resolve(projectRoot, templateSource));
153
- }
119
+ function isTemplateDir(dir) {
120
+ try {
121
+ return fs.statSync(dir).isDirectory();
122
+ } catch {
123
+ return false;
154
124
  }
155
- if (fallbackRoot) {
156
- candidates.push(fallbackRoot);
125
+ }
126
+
127
+ function resolveInstalledTemplateDir(nodeModulesRoot) {
128
+ if (!nodeModulesRoot) return null;
129
+ const candidate = path.join(nodeModulesRoot, '@fitlab-ai', 'agent-infra', 'templates');
130
+ return isTemplateDir(candidate) ? candidate : null;
131
+ }
132
+
133
+ function resolveTemplateRoot(projectRoot) {
134
+ try {
135
+ const globalRoot = childProcess.execSync('npm root -g', {
136
+ encoding: 'utf8',
137
+ stdio: ['pipe', 'pipe', 'pipe']
138
+ }).trim();
139
+ const globalTemplateRoot = resolveInstalledTemplateDir(globalRoot);
140
+ if (globalTemplateRoot) return globalTemplateRoot;
141
+ } catch {
142
+ // npm may be unavailable or not configured.
157
143
  }
158
144
 
159
- for (const candidate of candidates) {
160
- try {
161
- if (fs.statSync(candidate).isDirectory()) {
162
- return candidate;
163
- }
164
- } catch {
165
- // Keep scanning until a valid directory is found.
166
- }
145
+ try {
146
+ const localRoot = childProcess.execSync('npm root', {
147
+ cwd: projectRoot,
148
+ encoding: 'utf8',
149
+ stdio: ['pipe', 'pipe', 'pipe']
150
+ }).trim();
151
+ const localTemplateRoot = resolveInstalledTemplateDir(localRoot);
152
+ if (localTemplateRoot) return localTemplateRoot;
153
+ } catch {
154
+ // npm may be unavailable or the project may not have a local install.
167
155
  }
168
156
 
169
157
  return null;
@@ -179,15 +167,6 @@ function isBinary(fp) {
179
167
  return false;
180
168
  }
181
169
 
182
- function fileModule(rel) {
183
- const p = norm(rel);
184
- if (p.startsWith('.github/')) return 'github';
185
- if (p.startsWith('.agents/') || p.startsWith('.claude/') ||
186
- p.startsWith('.gemini/') || p.startsWith('.opencode/') ||
187
- p.startsWith('.codex/') || p === 'AGENTS.md') return 'ai';
188
- return null;
189
- }
190
-
191
170
  function gitUrl(dir) {
192
171
  try {
193
172
  return childProcess.execSync('git remote get-url origin', {
@@ -196,9 +175,6 @@ function gitUrl(dir) {
196
175
  } catch { return null; }
197
176
  }
198
177
 
199
- // Public-facing docs should keep all available language variants in sync.
200
- const MULTI_LANG = new Set(['SECURITY.md']);
201
-
202
178
  function langSelect(rels, lang, allSet, project) {
203
179
  const sel = new Map();
204
180
 
@@ -226,45 +202,24 @@ function langSelect(rels, lang, allSet, project) {
226
202
  return sel;
227
203
  }
228
204
 
229
- function syncTemplates(projectRoot) {
230
- const cfgPath = path.join(projectRoot, '.airc.json');
205
+ function syncTemplates(projectRoot, templateRootOverride) {
206
+ const configDir = path.join(projectRoot, '.agents');
207
+ const cfgPath = path.join(configDir, '.airc.json');
208
+
231
209
  if (!fs.existsSync(cfgPath)) {
232
- return { error: 'No .airc.json in project root.' };
210
+ return { error: 'No .agents/.airc.json in project root.' };
233
211
  }
234
212
 
235
213
  const cfg = JSON.parse(fs.readFileSync(cfgPath, 'utf8'));
236
- const templateRoot = resolveProjectTemplateDir(projectRoot, cfg.templateSource);
214
+ const configPathRel = norm(path.relative(projectRoot, cfgPath));
215
+ const templateRoot = templateRootOverride || resolveTemplateRoot(projectRoot);
237
216
  if (!templateRoot) {
238
- return { error: 'Template source not found. Install: curl -fsSL https://raw.githubusercontent.com/fitlab-ai/agent-infra/main/install.sh | sh' };
217
+ return { error: 'Template source not found. Install via npm: npm install -g @fitlab-ai/agent-infra' };
239
218
  }
240
- const installDir = resolveInstallDir();
219
+ const version = INSTALLER_VERSION;
220
+ const hadTemplateSource = Object.prototype.hasOwnProperty.call(cfg, 'templateSource');
241
221
 
242
- const hasGit = fs.existsSync(path.join(installDir, '.git'));
243
- if (hasGit) {
244
- try { childProcess.execSync('git fetch --tags --quiet', { cwd: installDir, stdio: 'pipe' }); } catch { /* network */ }
245
- }
246
-
247
- let version = 'unknown';
248
- if (hasGit) {
249
- let tagOutput;
250
- try {
251
- tagOutput = childProcess.execSync('git tag --sort=-v:refname', {
252
- cwd: installDir, encoding: 'utf8', stdio: ['pipe', 'pipe', 'pipe']
253
- }).trim();
254
- } catch {
255
- return { error: 'Failed to list tags in agent-infra repository. Please check git installation.' };
256
- }
257
- const latestTag = tagOutput.split('\n')[0];
258
- if (!latestTag) {
259
- return { error: 'No tags found in agent-infra repository. This is unexpected — please reinstall.' };
260
- }
261
- try { childProcess.execFileSync('git', ['checkout', latestTag, '--quiet'], { cwd: installDir, stdio: 'pipe' }); } catch { /* ignore */ }
262
- version = latestTag;
263
- } else {
264
- version = INSTALLER_VERSION || version;
265
- }
266
-
267
- const { project, org, language: lang = 'en', modules = [] } = cfg;
222
+ const { project, org, language: lang = 'en' } = cfg;
268
223
  const vars = { project, org };
269
224
 
270
225
  const managed = [...(cfg.files.managed || [])];
@@ -275,7 +230,7 @@ function syncTemplates(projectRoot) {
275
230
  templateVersion: version,
276
231
  templateRoot: norm(templateRoot),
277
232
  registryAdded: [],
278
- managed: { written: [], created: [], unchanged: [], skippedMerged: [], skippedModule: [], removed: [] },
233
+ managed: { written: [], created: [], unchanged: [], skippedMerged: [], removed: [] },
279
234
  ejected: { created: [], skipped: [] },
280
235
  merged: { pending: [] },
281
236
  configUpdated: false,
@@ -292,8 +247,6 @@ function syncTemplates(projectRoot) {
292
247
 
293
248
  const allRels = walkDir(templateRoot).map(f => norm(path.relative(templateRoot, f)));
294
249
  const allSet = new Set(allRels);
295
- const modSet = new Set(modules);
296
-
297
250
  for (const entry of managed) {
298
251
  const isDir = entry.endsWith('/');
299
252
  let entryRels;
@@ -313,19 +266,11 @@ function syncTemplates(projectRoot) {
313
266
  if (!entryRels.length) continue;
314
267
  }
315
268
 
316
- const selected = MULTI_LANG.has(norm(entry))
317
- ? entryRels.map(r => [norm(renderPathname(r, project)), r])
318
- : langSelect(entryRels, lang, allSet, project);
269
+ const selected = langSelect(entryRels, lang, allSet, project);
319
270
 
320
271
  for (const [tgt, src] of selected) {
321
272
  if (expectedTargets) expectedTargets.add(tgt);
322
273
 
323
- const mod = fileModule(tgt);
324
- if (mod !== null && !modSet.has(mod)) {
325
- report.managed.skippedModule.push(tgt);
326
- continue;
327
- }
328
-
329
274
  if (matchesAny(tgt, merged) || matchesAny(tgt, ejected)) {
330
275
  report.managed.skippedMerged.push(tgt);
331
276
  continue;
@@ -364,11 +309,9 @@ function syncTemplates(projectRoot) {
364
309
  const projFiles = walkDir(projDir).map(f => norm(path.relative(projectRoot, f)));
365
310
  for (const projFile of projFiles) {
366
311
  if (expectedTargets.has(projFile)) continue;
312
+ if (projFile === configPathRel) continue;
367
313
  if (matchesAny(projFile, merged) || matchesAny(projFile, ejected)) continue;
368
314
 
369
- const mod = fileModule(projFile);
370
- if (mod !== null && !modSet.has(mod)) continue;
371
-
372
315
  fs.unlinkSync(path.join(projectRoot, projFile));
373
316
  report.managed.removed.push(projFile);
374
317
  }
@@ -420,9 +363,7 @@ function syncTemplates(projectRoot) {
420
363
  const ext = path.extname(entry), base = entry.slice(0, -ext.length);
421
364
  const zh = norm(base + '.zh-CN' + ext);
422
365
  if (allSet.has(zh)) rels.push(zh);
423
- const selected = MULTI_LANG.has(n)
424
- ? rels.map(r => [norm(renderPathname(r, project)), r])
425
- : langSelect(rels, lang, allSet, project);
366
+ const selected = langSelect(rels, lang, allSet, project);
426
367
  for (const [t, s] of selected) {
427
368
  if (!mergedMap.has(t)) mergedMap.set(t, s);
428
369
  }
@@ -433,8 +374,7 @@ function syncTemplates(projectRoot) {
433
374
  );
434
375
 
435
376
  const projUrl = gitUrl(projectRoot);
436
- const instUrl = gitUrl(installDir);
437
- report.selfUpdate = !!(projUrl && instUrl && projUrl === instUrl);
377
+ report.selfUpdate = !!(projUrl && /fitlab-ai\/agent-infra/.test(projUrl));
438
378
 
439
379
  const hasChanges = (
440
380
  report.managed.written.length +
@@ -450,8 +390,9 @@ function syncTemplates(projectRoot) {
450
390
  cfg.files.merged = merged;
451
391
  cfg.files.ejected = ejected;
452
392
  cfg.templateVersion = version;
393
+ delete cfg.templateSource;
453
394
 
454
- report.configUpdated = hasChanges || prevVersion !== version;
395
+ report.configUpdated = hasChanges || prevVersion !== version || hadTemplateSource;
455
396
 
456
397
  fs.writeFileSync(cfgPath, JSON.stringify(cfg, null, 2) + '\n', 'utf8');
457
398
 
@@ -1,9 +1,6 @@
1
1
  ---
2
2
  name: upgrade-dependency
3
- description: >
4
- Upgrade a specified dependency package to a new version and verify
5
- the change. Triggered when the user requests dependency upgrade.
6
- Arguments: package name, old version, new version.
3
+ description: "Upgrade a dependency and validate the change"
7
4
  ---
8
5
 
9
6
  # Upgrade Dependency
@@ -1,8 +1,6 @@
1
1
  ---
2
2
  name: upgrade-dependency
3
- description: >
4
- 升级项目中的指定依赖包到新版本并验证变更。
5
- 当用户要求升级依赖时触发。参数:包名、原版本和新版本。
3
+ description: "升级项目依赖到新版本并验证"
6
4
  ---
7
5
 
8
6
  # 升级依赖
@@ -55,6 +55,6 @@
55
55
 
56
56
  ## References
57
57
 
58
- - Task file: `.agent-workspace/active/task-XXX.md`
58
+ - Task file: `.agents/workspace/active/task-XXX.md`
59
59
  - Related docs: [links or file paths]
60
60
  - Related issues: #XXX
@@ -55,6 +55,6 @@
55
55
 
56
56
  ## 参考资料
57
57
 
58
- - 任务文件:`.agent-workspace/active/task-XXX.md`
58
+ - 任务文件:`.agents/workspace/active/task-XXX.md`
59
59
  - 相关文档:[链接或文件路径]
60
60
  - 相关 Issue:#XXX
@@ -1,149 +1,149 @@
1
- # 缺陷修复工作流
2
- # 修复缺陷时使用此工作流。
1
+ # Bug Fix Workflow
2
+ # Use this workflow when fixing a bug.
3
3
 
4
4
  name: bug-fix
5
- description: 诊断和修复缺陷的工作流。
5
+ description: Workflow for diagnosing and fixing a bug.
6
6
 
7
7
  steps:
8
8
  - name: analysis
9
- description: 复现缺陷,识别根本原因,确定修复范围。
9
+ description: Reproduce the bug, identify the root cause, and determine the scope of the fix.
10
10
  recommended_agents:
11
11
  - claude
12
12
  - gemini
13
13
  tasks:
14
- - 理解缺陷报告和预期行为
15
- - 复现缺陷(如果可能)
16
- - 追踪代码路径以识别根本原因
17
- - 确定受影响的文件和组件
18
- - 将发现记录在任务文件中
14
+ - Understand the bug report and expected behavior
15
+ - Reproduce the bug when possible
16
+ - Trace the code path to identify the root cause
17
+ - Determine impacted files and components
18
+ - Record findings in the task file
19
19
  inputs:
20
- - 缺陷报告或 Issue 描述
21
- - 复现步骤
22
- - 项目代码库
20
+ - Bug report or issue description
21
+ - Reproduction steps
22
+ - Project codebase
23
23
  artifact_versioning:
24
24
  outputs:
25
25
  - name: analysis
26
26
  pattern: "analysis.md | analysis-r{N}.md"
27
- rule: "扫描现有分析产物;首轮创建 analysis.md,后续修订创建 analysis-r{N}.mdN = 当前最高轮次 + 1"
27
+ rule: "Scan existing analysis artifacts; create analysis.md for the first round, then analysis-r{N}.md for later revisions (N = current highest round + 1)"
28
28
  outputs:
29
- - 根因分析
30
- - 受影响文件列表
31
- - 更新后的任务文件(分析部分)
29
+ - Root cause analysis
30
+ - List of impacted files
31
+ - Updated task file (analysis section)
32
32
 
33
33
  - name: design
34
- description: 规划修复方案并考虑边界情况。
34
+ description: Plan the fix and consider edge cases.
35
35
  recommended_agents:
36
36
  - claude
37
37
  tasks:
38
- - 确定修复缺陷的最佳方案
39
- - 识别修复的潜在副作用
40
- - 规划验证修复的测试用例
41
- - 在任务文件中记录修复方案
38
+ - Determine the best approach for fixing the bug
39
+ - Identify potential side effects of the fix
40
+ - Plan test cases to validate the fix
41
+ - Record the fix plan in the task file
42
42
  inputs:
43
- - 上一步的根因分析
44
- - 项目架构
43
+ - Root cause analysis from the previous step
44
+ - Project architecture
45
45
  artifact_versioning:
46
46
  inputs:
47
47
  - name: analysis
48
48
  pattern: "analysis.md | analysis-r{N}.md"
49
- rule: "读取最高轮次的分析产物作为设计输入"
49
+ rule: "Read the highest-round analysis artifact as design input"
50
50
  outputs:
51
51
  - name: plan
52
52
  pattern: "plan.md | plan-r{N}.md"
53
- rule: "扫描现有方案产物;首轮创建 plan.md,后续修订创建 plan-r{N}.mdN = 当前最高轮次 + 1"
53
+ rule: "Scan existing plan artifacts; create plan.md for the first round, then plan-r{N}.md for later revisions (N = current highest round + 1)"
54
54
  outputs:
55
- - 任务文件中记录的修复方案
56
- - 待添加的测试用例列表
55
+ - Fix plan recorded in the task file
56
+ - List of test cases to add
57
57
 
58
58
  - name: implementation
59
- description: 实现缺陷修复并添加回归测试。
59
+ description: Implement the bug fix and add regression tests.
60
60
  recommended_agents:
61
61
  - codex
62
62
  - cursor
63
63
  tasks:
64
- - 创建缺陷修复分支
65
- - 实现修复
66
- - 添加在没有修复时会失败的回归测试
67
- - 验证现有测试仍然通过
68
- - 确保代码遵循项目规范
64
+ - Create a bug-fix branch
65
+ - Implement the fix
66
+ - Add regression tests that would fail without the fix
67
+ - Verify that existing tests still pass
68
+ - Ensure the code follows project conventions
69
69
  inputs:
70
- - 上一步的修复方案
71
- - 项目编码标准
70
+ - Fix plan from the previous step
71
+ - Project coding standards
72
72
  artifact_versioning:
73
73
  outputs:
74
74
  - name: implementation
75
75
  pattern: "implementation.md | implementation-r{N}.md"
76
- rule: "扫描现有实现产物;首轮创建 implementation.md,后续重实现创建 implementation-r{N}.mdN = 当前最高轮次 + 1"
76
+ rule: "Scan existing implementation artifacts; create implementation.md for the first round, then implementation-r{N}.md for later re-implementations (N = current highest round + 1)"
77
77
  outputs:
78
- - 包含实现的缺陷修复分支
79
- - 回归测试文件
80
- - 更新后的任务文件(实现备注)
78
+ - Bug-fix branch with the implementation
79
+ - Regression test files
80
+ - Updated task file (implementation notes)
81
81
 
82
82
  - name: review
83
- description: 验证修复是否正确和完整。
83
+ description: Verify that the fix is correct and complete.
84
84
  recommended_agents:
85
85
  - claude
86
86
  tasks:
87
- - 验证修复是否解决了根本原因
88
- - 检查回归测试是否充分
89
- - 确保未引入新问题
90
- - 验证修复不会破坏现有功能
91
- - 创建审查报告
87
+ - Verify that the fix addresses the root cause
88
+ - Check whether regression tests are sufficient
89
+ - Ensure no new issues were introduced
90
+ - Verify that the fix does not break existing functionality
91
+ - Create a review report
92
92
  inputs:
93
- - 缺陷修复分支
94
- - 根因分析
93
+ - Bug-fix branch
94
+ - Root cause analysis
95
95
  artifact_versioning:
96
96
  inputs:
97
97
  - name: implementation
98
98
  pattern: "implementation.md | implementation-r{N}.md"
99
- rule: "读取最高轮次的实现产物作为审查输入"
99
+ rule: "Read the highest-round implementation artifact as review input"
100
100
  outputs:
101
101
  - name: review
102
102
  pattern: "review.md | review-r{N}.md"
103
- rule: "扫描现有审查产物;首轮创建 review.md,后续轮次创建 review-r{N}.mdN = 当前最高轮次 + 1"
103
+ rule: "Scan existing review artifacts; create review.md for the first round, then review-r{N}.md for later rounds (N = current highest round + 1)"
104
104
  outputs:
105
- - 审查报告
106
- - 问题列表(如有)
105
+ - Review report
106
+ - List of issues if any
107
107
 
108
108
  - name: fix
109
- description: 处理审查中发现的问题。
109
+ description: Address issues found during review.
110
110
  recommended_agents:
111
111
  - codex
112
112
  - cursor
113
113
  tasks:
114
- - 修复审查中识别的问题
115
- - 根据需要更新测试
116
- - 验证所有测试通过
114
+ - Fix issues identified in the review
115
+ - Update tests as needed
116
+ - Verify that all tests pass
117
117
  inputs:
118
- - 审查报告
119
- - 缺陷修复分支
118
+ - Review report
119
+ - Bug-fix branch
120
120
  artifact_versioning:
121
121
  inputs:
122
122
  - name: review
123
123
  pattern: "review.md | review-r{N}.md"
124
- rule: "读取最高轮次的审查产物,并校验其与 task.md Activity Log 中最近一条 Code Review 记录一致"
124
+ rule: "Read the highest-round review artifact and verify that it matches the latest Code Review entry in the task.md Activity Log"
125
125
  outputs:
126
126
  - name: refinement
127
127
  pattern: "refinement.md | refinement-r{N}.md"
128
- rule: "扫描现有修复产物;首轮创建 refinement.md,后续轮次创建 refinement-r{N}.mdN = 当前最高轮次 + 1"
128
+ rule: "Scan existing refinement artifacts; create refinement.md for the first round, then refinement-r{N}.md for later rounds (N = current highest round + 1)"
129
129
  outputs:
130
- - 包含修复的更新分支
131
- - 更新后的任务文件
130
+ - Updated branch with fixes
131
+ - Updated task file
132
132
 
133
133
  - name: commit
134
- description: 最终确认缺陷修复并创建拉取请求。
134
+ description: Finalize the bug fix and create a pull request.
135
135
  recommended_agents:
136
136
  - claude
137
137
  - human
138
138
  tasks:
139
- - 确保所有测试通过
140
- - 编写引用缺陷/Issue 的提交信息
141
- - 创建包含缺陷修复描述的拉取请求
142
- - PR 关联到缺陷报告 Issue
143
- - 将任务移至已完成
139
+ - Ensure all tests pass
140
+ - Write a commit message that references the bug or issue
141
+ - Create a pull request with a bug-fix summary
142
+ - Link the PR to the bug report issue
143
+ - Move the task to completed
144
144
  inputs:
145
- - 最终缺陷修复分支
146
- - 任务文件
145
+ - Final bug-fix branch
146
+ - Task file
147
147
  outputs:
148
- - 拉取请求
149
- - 已完成的任务文件(位于 .agent-workspace/completed/)
148
+ - Pull request
149
+ - Completed task file (stored in .agents/workspace/completed/)
@@ -146,4 +146,4 @@ steps:
146
146
  - 任务文件
147
147
  outputs:
148
148
  - 拉取请求
149
- - 已完成的任务文件(位于 .agent-workspace/completed/)
149
+ - 已完成的任务文件(位于 .agents/workspace/completed/)