@fitlab-ai/agent-infra 0.5.6 → 0.5.8

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 (166) hide show
  1. package/README.md +92 -4
  2. package/README.zh-CN.md +92 -4
  3. package/bin/cli.js +28 -4
  4. package/lib/defaults.json +5 -2
  5. package/lib/init.js +86 -5
  6. package/lib/prompt.js +28 -1
  7. package/lib/render.js +1 -1
  8. package/lib/sandbox/commands/rm.js +6 -4
  9. package/lib/sandbox/commands/vm.js +43 -16
  10. package/lib/sandbox/config.js +5 -0
  11. package/lib/sandbox/engine.js +144 -16
  12. package/lib/sandbox/shell.js +36 -2
  13. package/lib/sandbox/task-resolver.js +13 -6
  14. package/lib/update.js +14 -3
  15. package/package.json +5 -5
  16. package/templates/.agents/QUICKSTART.en.md +19 -2
  17. package/templates/.agents/QUICKSTART.zh-CN.md +19 -2
  18. package/templates/.agents/README.en.md +71 -2
  19. package/templates/.agents/README.zh-CN.md +71 -2
  20. package/templates/.agents/rules/issue-pr-commands.en.md +5 -0
  21. package/templates/.agents/rules/issue-pr-commands.github.en.md +60 -0
  22. package/templates/.agents/rules/issue-pr-commands.github.zh-CN.md +60 -0
  23. package/templates/.agents/rules/issue-pr-commands.zh-CN.md +5 -0
  24. package/templates/.agents/rules/issue-sync.en.md +19 -0
  25. package/templates/.agents/rules/issue-sync.github.en.md +14 -0
  26. package/templates/.agents/rules/issue-sync.github.zh-CN.md +14 -0
  27. package/templates/.agents/rules/issue-sync.zh-CN.md +19 -0
  28. package/templates/.agents/rules/label-milestone-setup.en.md +5 -0
  29. package/templates/.agents/rules/label-milestone-setup.github.en.md +10 -0
  30. package/templates/.agents/rules/label-milestone-setup.github.zh-CN.md +10 -0
  31. package/templates/.agents/rules/label-milestone-setup.zh-CN.md +5 -0
  32. package/templates/.agents/rules/milestone-inference.en.md +5 -0
  33. package/templates/.agents/rules/milestone-inference.zh-CN.md +5 -0
  34. package/templates/.agents/rules/pr-sync.en.md +5 -0
  35. package/templates/.agents/rules/pr-sync.zh-CN.md +5 -0
  36. package/templates/.agents/rules/release-commands.en.md +5 -0
  37. package/templates/.agents/rules/release-commands.github.en.md +16 -0
  38. package/templates/.agents/rules/release-commands.github.zh-CN.md +16 -0
  39. package/templates/.agents/rules/release-commands.zh-CN.md +5 -0
  40. package/templates/.agents/rules/security-alerts.en.md +5 -0
  41. package/templates/.agents/rules/security-alerts.zh-CN.md +5 -0
  42. package/templates/.agents/scripts/platform-adapters/find-existing-task.github.js +272 -0
  43. package/templates/.agents/scripts/platform-adapters/find-existing-task.js +5 -0
  44. package/templates/.agents/scripts/platform-adapters/platform-sync.github.js +88 -8
  45. package/templates/.agents/scripts/platform-adapters/platform-sync.js +13 -0
  46. package/templates/.agents/skills/analyze-task/SKILL.en.md +5 -5
  47. package/templates/.agents/skills/analyze-task/SKILL.zh-CN.md +5 -5
  48. package/templates/.agents/skills/analyze-task/config/verify.json +3 -1
  49. package/templates/.agents/skills/block-task/SKILL.en.md +1 -1
  50. package/templates/.agents/skills/block-task/SKILL.zh-CN.md +1 -1
  51. package/templates/.agents/skills/block-task/config/verify.json +2 -1
  52. package/templates/.agents/skills/cancel-task/SKILL.en.md +3 -3
  53. package/templates/.agents/skills/cancel-task/SKILL.zh-CN.md +4 -4
  54. package/templates/.agents/skills/cancel-task/config/verify.json +2 -1
  55. package/templates/.agents/skills/check-task/SKILL.en.md +1 -1
  56. package/templates/.agents/skills/check-task/SKILL.zh-CN.md +1 -1
  57. package/templates/.agents/skills/close-codescan/SKILL.en.md +3 -3
  58. package/templates/.agents/skills/close-codescan/SKILL.zh-CN.md +3 -3
  59. package/templates/.agents/skills/close-dependabot/SKILL.en.md +1 -1
  60. package/templates/.agents/skills/close-dependabot/SKILL.zh-CN.md +1 -1
  61. package/templates/.agents/skills/commit/SKILL.en.md +2 -2
  62. package/templates/.agents/skills/commit/SKILL.zh-CN.md +2 -2
  63. package/templates/.agents/skills/commit/config/verify.json +2 -1
  64. package/templates/.agents/skills/complete-task/SKILL.en.md +1 -1
  65. package/templates/.agents/skills/complete-task/SKILL.zh-CN.md +1 -1
  66. package/templates/.agents/skills/complete-task/config/verify.json +2 -1
  67. package/templates/.agents/skills/create-issue/SKILL.en.md +10 -10
  68. package/templates/.agents/skills/create-issue/SKILL.zh-CN.md +10 -10
  69. package/templates/.agents/skills/create-issue/config/verify.json +2 -1
  70. package/templates/.agents/skills/create-issue/reference/label-and-type.en.md +3 -3
  71. package/templates/.agents/skills/create-issue/reference/label-and-type.zh-CN.md +3 -3
  72. package/templates/.agents/skills/create-issue/reference/template-matching.en.md +6 -34
  73. package/templates/.agents/skills/create-issue/reference/template-matching.zh-CN.md +8 -36
  74. package/templates/.agents/skills/create-pr/SKILL.en.md +3 -3
  75. package/templates/.agents/skills/create-pr/SKILL.zh-CN.md +3 -3
  76. package/templates/.agents/skills/create-pr/config/verify.json +2 -1
  77. package/templates/.agents/skills/create-pr/reference/pr-body-template.en.md +7 -17
  78. package/templates/.agents/skills/create-pr/reference/pr-body-template.zh-CN.md +27 -37
  79. package/templates/.agents/skills/create-release-note/SKILL.en.md +16 -9
  80. package/templates/.agents/skills/create-release-note/SKILL.zh-CN.md +16 -9
  81. package/templates/.agents/skills/create-task/SKILL.en.md +5 -5
  82. package/templates/.agents/skills/create-task/SKILL.zh-CN.md +5 -5
  83. package/templates/.agents/skills/implement-task/SKILL.en.md +3 -3
  84. package/templates/.agents/skills/implement-task/SKILL.zh-CN.md +3 -3
  85. package/templates/.agents/skills/implement-task/config/verify.json +3 -1
  86. package/templates/.agents/skills/import-codescan/SKILL.en.md +3 -3
  87. package/templates/.agents/skills/import-codescan/SKILL.zh-CN.md +3 -3
  88. package/templates/.agents/skills/import-dependabot/SKILL.en.md +2 -2
  89. package/templates/.agents/skills/import-dependabot/SKILL.zh-CN.md +2 -2
  90. package/templates/.agents/skills/import-issue/SKILL.en.md +41 -11
  91. package/templates/.agents/skills/import-issue/SKILL.zh-CN.md +41 -11
  92. package/templates/.agents/skills/init-labels/SKILL.en.md +10 -10
  93. package/templates/.agents/skills/init-labels/SKILL.zh-CN.md +10 -10
  94. package/templates/.agents/skills/init-labels/scripts/init-labels.sh +6 -0
  95. package/templates/.agents/skills/init-milestones/SKILL.en.md +8 -8
  96. package/templates/.agents/skills/init-milestones/SKILL.zh-CN.md +8 -8
  97. package/templates/.agents/skills/init-milestones/scripts/init-milestones.sh +6 -0
  98. package/templates/.agents/skills/plan-task/SKILL.en.md +3 -3
  99. package/templates/.agents/skills/plan-task/SKILL.zh-CN.md +3 -3
  100. package/templates/.agents/skills/plan-task/config/verify.json +3 -1
  101. package/templates/.agents/skills/post-release/SKILL.en.md +95 -0
  102. package/templates/.agents/skills/post-release/SKILL.zh-CN.md +95 -0
  103. package/templates/.agents/skills/refine-task/SKILL.en.md +2 -2
  104. package/templates/.agents/skills/refine-task/SKILL.zh-CN.md +2 -2
  105. package/templates/.agents/skills/refine-task/config/verify.json +3 -1
  106. package/templates/.agents/skills/refine-title/SKILL.en.md +1 -1
  107. package/templates/.agents/skills/refine-title/SKILL.zh-CN.md +1 -1
  108. package/templates/.agents/skills/release/SKILL.en.md +6 -1
  109. package/templates/.agents/skills/release/SKILL.zh-CN.md +6 -1
  110. package/templates/.agents/skills/release/scripts/manage-milestones.sh +6 -0
  111. package/templates/.agents/skills/restore-task/SKILL.en.md +13 -64
  112. package/templates/.agents/skills/restore-task/SKILL.zh-CN.md +13 -64
  113. package/templates/.agents/skills/review-task/SKILL.en.md +3 -3
  114. package/templates/.agents/skills/review-task/SKILL.zh-CN.md +3 -3
  115. package/templates/.agents/skills/review-task/config/verify.json +3 -1
  116. package/templates/.agents/skills/test/SKILL.en.md +1 -1
  117. package/templates/.agents/skills/test/SKILL.zh-CN.md +1 -1
  118. package/templates/.agents/skills/test-integration/SKILL.en.md +1 -1
  119. package/templates/.agents/skills/test-integration/SKILL.zh-CN.md +1 -1
  120. package/templates/.agents/skills/update-agent-infra/SKILL.en.md +12 -2
  121. package/templates/.agents/skills/update-agent-infra/SKILL.zh-CN.md +6 -2
  122. package/templates/.agents/skills/update-agent-infra/scripts/sync-templates.js +344 -16
  123. package/templates/.agents/skills/upgrade-dependency/SKILL.en.md +1 -1
  124. package/templates/.agents/skills/upgrade-dependency/SKILL.zh-CN.md +1 -1
  125. package/templates/.agents/templates/task.en.md +2 -2
  126. package/templates/.agents/templates/task.zh-CN.md +2 -2
  127. package/templates/.claude/commands/create-issue.en.md +1 -1
  128. package/templates/.claude/commands/create-issue.zh-CN.md +1 -1
  129. package/templates/.claude/commands/import-issue.en.md +1 -1
  130. package/templates/.claude/commands/import-issue.zh-CN.md +1 -1
  131. package/templates/.claude/commands/init-labels.en.md +1 -1
  132. package/templates/.claude/commands/init-labels.zh-CN.md +1 -1
  133. package/templates/.claude/commands/init-milestones.en.md +1 -1
  134. package/templates/.claude/commands/init-milestones.zh-CN.md +1 -1
  135. package/templates/.claude/commands/post-release.en.md +8 -0
  136. package/templates/.claude/commands/post-release.zh-CN.md +8 -0
  137. package/templates/.claude/commands/restore-task.en.md +1 -1
  138. package/templates/.claude/commands/restore-task.zh-CN.md +1 -1
  139. package/templates/.claude/hooks/check-version-format.sh +1 -1
  140. package/templates/.gemini/commands/_project_/create-issue.en.toml +1 -1
  141. package/templates/.gemini/commands/_project_/create-issue.zh-CN.toml +1 -1
  142. package/templates/.gemini/commands/_project_/import-issue.en.toml +1 -1
  143. package/templates/.gemini/commands/_project_/import-issue.zh-CN.toml +1 -1
  144. package/templates/.gemini/commands/_project_/init-labels.en.toml +2 -2
  145. package/templates/.gemini/commands/_project_/init-labels.zh-CN.toml +2 -2
  146. package/templates/.gemini/commands/_project_/init-milestones.en.toml +2 -2
  147. package/templates/.gemini/commands/_project_/init-milestones.zh-CN.toml +2 -2
  148. package/templates/.gemini/commands/_project_/post-release.en.toml +6 -0
  149. package/templates/.gemini/commands/_project_/post-release.zh-CN.toml +6 -0
  150. package/templates/.gemini/commands/_project_/restore-task.en.toml +1 -1
  151. package/templates/.gemini/commands/_project_/restore-task.zh-CN.toml +1 -1
  152. package/templates/{.github/hooks → .git-hooks}/check-version-format.sh +2 -2
  153. package/templates/.github/workflows/pr-label.yml +1 -1
  154. package/templates/.opencode/commands/create-issue.en.md +1 -1
  155. package/templates/.opencode/commands/create-issue.zh-CN.md +1 -1
  156. package/templates/.opencode/commands/import-issue.en.md +1 -1
  157. package/templates/.opencode/commands/import-issue.zh-CN.md +1 -1
  158. package/templates/.opencode/commands/init-labels.en.md +1 -1
  159. package/templates/.opencode/commands/init-labels.zh-CN.md +1 -1
  160. package/templates/.opencode/commands/init-milestones.en.md +1 -1
  161. package/templates/.opencode/commands/init-milestones.zh-CN.md +1 -1
  162. package/templates/.opencode/commands/post-release.en.md +9 -0
  163. package/templates/.opencode/commands/post-release.zh-CN.md +9 -0
  164. package/templates/.opencode/commands/restore-task.en.md +1 -1
  165. package/templates/.opencode/commands/restore-task.zh-CN.md +1 -1
  166. /package/templates/{.github/hooks → .git-hooks}/pre-commit +0 -0
@@ -1,11 +1,11 @@
1
1
  ---
2
2
  name: import-issue
3
- description: "从 GitHub Issue 导入并创建任务"
3
+ description: "从 Issue 导入并创建任务"
4
4
  ---
5
5
 
6
6
  # 导入 Issue
7
7
 
8
- 导入指定的 GitHub Issue 并创建任务。参数:issue 编号。
8
+ 导入指定的 Issue 并创建任务。参数:issue 编号。
9
9
 
10
10
  ## 行为边界 / 关键规则
11
11
 
@@ -24,22 +24,46 @@ description: "从 GitHub Issue 导入并创建任务"
24
24
 
25
25
  ### 2. 检查已有任务
26
26
 
27
- 搜索 `.agents/workspace/active/` 中是否已有链接到此 Issue 的任务。
27
+ 2.1 搜索 `.agents/workspace/active/` 中是否已有链接到此 Issue 的任务。
28
28
  - 如果找到,询问用户是重新导入还是继续使用现有任务
29
- - 如果未找到,创建新任务
29
+ - 如果未找到,继续执行 2.2
30
+
31
+ 2.2 扫描 Issue 评论中的同步标记,查找可恢复的历史任务 ID:
32
+
33
+ 如未在步骤 1 中已设置 `$upstream_repo`,可省略 `--repo`,脚本会自动按 issue-sync.md 的检测规则推断。
34
+
35
+ ```bash
36
+ node .agents/scripts/platform-adapters/find-existing-task.js --issue <issue-number> --repo "$upstream_repo" --format json
37
+ ```
38
+
39
+ - 脚本输出 `found=false`:按新 Issue 导入流程创建新任务
40
+ - 脚本输出 `found=true`:复用 `task_id`
41
+ - 脚本退出码 2:视为网络、认证或 platform API 降级,向用户展示脚本 stderr 中的失败原因后,按新 Issue 导入流程继续,不阻塞导入
30
42
 
31
43
  ### 3. 创建任务目录和文件
32
44
 
45
+ 3.1 决定 task ID 和 `created_at`。
46
+
47
+ | 场景 | 触发条件 | task ID 来源 | created_at 来源 | 用户确认 |
48
+ |---|---|---|---|---|
49
+ | 场景 A | 2.1 命中本地任务 | 复用本地 ID | 本地保留 | 必须询问"重新导入还是继续使用现有任务" |
50
+ | 场景 B | 2.1 无命中 + 2.2 无候选 | `date +%Y%m%d-%H%M%S` 新建 | 当前时间 | 不需要 |
51
+ | 场景 C | 2.1 无命中 + 2.2 有候选 | 自动复用最早候选 ID | 优先用远端 frontmatter 的 `created_at`,缺失时用当前时间 | 告知即可 |
52
+
33
53
  ```bash
34
54
  date +%Y%m%d-%H%M%S
35
55
  ```
36
56
 
37
- - 创建目录:`.agents/workspace/active/TASK-{yyyyMMdd-HHmmss}/`
57
+ 3.2 写入任务目录和 `task.md`。
58
+
59
+ - 创建目录:`.agents/workspace/active/{task-id}/`
38
60
  - 使用 `.agents/templates/task.md` 模板创建 `task.md`
61
+ - 场景 C 优先沿用远端 frontmatter 中的 `type`、`workflow`、`branch`、`created_by`、`milestone`;缺失或损坏字段按 Issue 标签和当前规则重新推断
62
+ - `current_step` 始终写入 `requirement-analysis`,不要恢复为远端原 `current_step`
39
63
 
40
64
  任务元数据:
41
65
  ```yaml
42
- id: TASK-{yyyyMMdd-HHmmss}
66
+ id: {task-id}
43
67
  issue_number: <issue-number>
44
68
  type: feature|bugfix|refactor|docs|chore
45
69
  branch: <project>-<type>-<slug>
@@ -52,6 +76,11 @@ current_step: requirement-analysis
52
76
  assigned_to: {当前 AI 代理}
53
77
  ```
54
78
 
79
+ 3.3 追加 Activity Log。
80
+
81
+ - 场景 B:追加 `Import Issue`
82
+ - 场景 C:追加 `Import Issue (Recovered)`,注明恢复的 task ID、可恢复的原 `current_step`、原 `assigned_to`,并说明 `current_step` 已重置为 `requirement-analysis`;如果部分 frontmatter 字段缺失或损坏,在同一条记录中注明 fallback
83
+
55
84
  ### 4. 更新任务状态
56
85
 
57
86
  获取当前时间:
@@ -69,6 +98,7 @@ date "+%Y-%m-%d %H:%M:%S%:z"
69
98
  ```
70
99
  - {YYYY-MM-DD HH:mm:ss±HH:MM} — **Import Issue** by {agent} — Issue #{number} imported
71
100
  ```
101
+ 如果步骤 3.3 已经按恢复场景追加了 Activity Log,不要重复追加同义记录。
72
102
 
73
103
  ### 5. 分配 Issue Assignee
74
104
 
@@ -79,7 +109,7 @@ date "+%Y-%m-%d %H:%M:%S%:z"
79
109
  如果 task.md 中存在有效的 `issue_number`,执行以下同步操作(任一失败则跳过并继续):
80
110
  - 执行前先读取 `.agents/rules/issue-sync.md`,完成 upstream 仓库检测和权限检测
81
111
  - 检查 Issue 当前 milestone;如果未设置,先读取 `.agents/rules/milestone-inference.md`,按其中的「阶段 1:`create-issue`」规则推断并设置 milestone;如果 `has_triage=false` 或推断不确定,跳过并继续
82
- - 创建或更新 `<!-- sync-issue:{task-id}:task -->` 评论(按 issue-sync.md 的 task.md 评论同步规则)
112
+ - 所有场景结束后,必须执行一次 task 留言同步,创建或更新 `.agents/rules/issue-sync.md` 中定义的 task 评论标记,确保远端 `:task` 评论存在且内容与本地 `task.md` 一致(按 issue-sync.md 的 task.md 评论同步规则)
83
113
 
84
114
  ### 7. 完成校验
85
115
 
@@ -100,7 +130,7 @@ node .agents/scripts/validate-artifact.js gate import-issue .agents/workspace/ac
100
130
 
101
131
  > 仅在校验通过后执行本步骤。
102
132
 
103
- > **重要**:以下「下一步」中列出的所有 TUI 命令格式必须完整输出,不要只展示当前 AI 代理对应的格式。
133
+ > **重要**:以下「下一步」中列出的所有 TUI 命令格式必须完整输出,不要只展示当前 AI 代理对应的格式。如果 `.agents/.airc.json` 中配置了自定义 TUI(`customTUIs`),读取每个工具的 `name` 和 `invoke`,按同样格式补充对应命令行(`${skillName}` 替换为技能名,`${projectName}` 替换为项目名)。
104
134
 
105
135
  ```
106
136
  Issue #{number} 已导入。
@@ -126,8 +156,8 @@ Issue #{number} 已导入。
126
156
  - [ ] 更新了 `current_step` 为 requirement-analysis
127
157
  - [ ] 更新了 `updated_at` 为当前时间
128
158
  - [ ] 追加了 Activity Log 条目到 task.md
129
- - [ ] 同步了 task 评论到 Issue
130
- - [ ] 告知了用户下一步(必须展示所有 TUI 的命令格式,不要筛选)
159
+ - [ ] 同步了 task 评论到 Issue,且远端内容与本地 task.md 一致
160
+ - [ ] 告知了用户下一步(必须展示所有 TUI 的命令格式,含自定义 TUI,不要筛选)
131
161
  - [ ] **没有修改任何业务代码**
132
162
 
133
163
  ## 停止
@@ -143,5 +173,5 @@ Issue #{number} 已导入。
143
173
  ## 错误处理
144
174
 
145
175
  - Issue 未找到:提示 "Issue #{number} not found, please check the issue number"
146
- - 网络错误:提示 "Cannot connect to GitHub, please check network"
176
+ - 网络错误:提示 "Cannot connect to the platform, please check network"
147
177
  - 权限错误:提示 "No access to this repository"
@@ -1,11 +1,11 @@
1
1
  ---
2
2
  name: init-labels
3
- description: "Initialize the repository's standard GitHub Labels taxonomy"
3
+ description: "Initialize the repository's standard labels taxonomy"
4
4
  ---
5
5
 
6
- # Initialize GitHub Labels
6
+ # Initialize labels
7
7
 
8
- Initialize the repository's standard GitHub Labels taxonomy.
8
+ Initialize the repository's standard labels taxonomy.
9
9
 
10
10
  ## Execution Flow
11
11
 
@@ -36,14 +36,14 @@ The script and `.agents/rules/label-milestone-setup.md` are responsible for:
36
36
  The script manages these common label families:
37
37
  - `type:` labels such as `type: bug`, `type: enhancement`, `type: feature`, `type: documentation`, `type: dependency-upgrade`, and `type: task`
38
38
  - `status:` labels such as `status: waiting-for-triage`, `status: in-progress`, and `status: waiting-for-internal-feedback`
39
- - GitHub-default-name labels intentionally overwritten in place: `good first issue` and `help wanted`
39
+ - platform-default-name labels intentionally overwritten in place: `good first issue` and `help wanted`
40
40
  - Additional shared labels such as `dependencies`
41
41
 
42
42
  #### Scope
43
43
 
44
44
  | Label prefix | Issue | PR | Notes |
45
45
  |---|---|---|---|
46
- | `type:` | — | Yes | Issues use the native GitHub Type field; PRs need `type:` labels to drive changelog grouping |
46
+ | `type:` | — | Yes | Issues use the native platform Type field; PRs need `type:` labels to drive changelog grouping |
47
47
  | `status:` | Yes | — | PRs already have their own state flow (Open/Draft/Merged/Closed); Issues use `status:` labels for project tracking |
48
48
  | `in:` | Yes | Yes | Both Issues and PRs need module-based filtering |
49
49
 
@@ -85,7 +85,7 @@ Operational notes:
85
85
 
86
86
  ### 6. Inform User
87
87
 
88
- > **IMPORTANT**: All TUI command formats listed below must be output in full. Do not show only the format for the current AI agent.
88
+ > **IMPORTANT**: All TUI command formats listed below must be output in full. Do not show only the format for the current AI agent. If `.agents/.airc.json` configures custom TUIs (via `customTUIs`), read each tool's `name` and `invoke`, then add the matching command line in the same format (`${skillName}` becomes the skill name and `${projectName}` becomes the project name).
89
89
 
90
90
  After summarizing the label initialization, show:
91
91
 
@@ -98,8 +98,8 @@ Next step - initialize milestones (optional):
98
98
 
99
99
  ## Error Handling
100
100
 
101
- - `gh` not found: prompt "GitHub CLI (`gh`) is not installed"
102
- - Authentication failed: prompt "GitHub CLI is not authenticated"
103
- - Repository access failed: prompt "Unable to access the current repository with gh"
101
+ - platform CLI not found: prompt "the platform CLI is not installed"
102
+ - Authentication failed: prompt "the platform CLI is not authenticated"
103
+ - Repository access failed: prompt "Unable to access the current repository with the platform CLI"
104
104
  - Permission error: prompt "No permission to manage labels in this repository"
105
- - API rate limit: prompt "GitHub API rate limit reached, please retry later"
105
+ - API rate limit: prompt "platform API rate limit reached, please retry later"
@@ -1,11 +1,11 @@
1
1
  ---
2
2
  name: init-labels
3
- description: "初始化仓库的 GitHub Labels 体系"
3
+ description: "初始化仓库的 labels 体系"
4
4
  ---
5
5
 
6
- # 初始化 GitHub Labels
6
+ # 初始化 labels
7
7
 
8
- 一次性初始化仓库的标准 GitHub Labels 体系。
8
+ 一次性初始化仓库的标准 labels 体系。
9
9
 
10
10
  ## 执行流程
11
11
 
@@ -36,14 +36,14 @@ bash .agents/skills/init-labels/scripts/init-labels.sh
36
36
  脚本管理以下通用 label 族:
37
37
  - `type:` labels,例如 `type: bug`、`type: enhancement`、`type: feature`、`type: documentation`、`type: dependency-upgrade`、`type: task`
38
38
  - `status:` labels,例如 `status: waiting-for-triage`、`status: in-progress`、`status: waiting-for-internal-feedback`
39
- - 明确覆盖的 GitHub 默认同名 labels:`good first issue` 和 `help wanted`
39
+ - 明确覆盖的 平台默认同名 labels:`good first issue` 和 `help wanted`
40
40
  - 额外通用 labels,例如 `dependencies`
41
41
 
42
42
  #### 适用范围
43
43
 
44
44
  | Label 前缀 | Issue | PR | 说明 |
45
45
  |---|---|---|---|
46
- | `type:` | — | Yes | Issue 使用 GitHub 原生 Type 字段;PR 无原生类型字段,需 `type:` label 驱动 changelog |
46
+ | `type:` | — | Yes | Issue 使用 平台原生 Type 字段;PR 无原生类型字段,需 `type:` label 驱动 changelog |
47
47
  | `status:` | Yes | — | PR 有自身状态流转(Open/Draft/Merged/Closed);Issue 使用 `status:` label 标记项目管理状态 |
48
48
  | `in:` | Yes | Yes | Issue 和 PR 均需按模块筛选 |
49
49
 
@@ -85,7 +85,7 @@ bash .agents/skills/init-labels/scripts/init-labels.sh
85
85
 
86
86
  ### 6. 告知用户
87
87
 
88
- > **重要**:以下「下一步」中列出的所有 TUI 命令格式必须完整输出,不要只展示当前 AI 代理对应的格式。
88
+ > **重要**:以下「下一步」中列出的所有 TUI 命令格式必须完整输出,不要只展示当前 AI 代理对应的格式。如果 `.agents/.airc.json` 中配置了自定义 TUI(`customTUIs`),读取每个工具的 `name` 和 `invoke`,按同样格式补充对应命令行(`${skillName}` 替换为技能名,`${projectName}` 替换为项目名)。
89
89
 
90
90
  输出 labels 初始化摘要后,提示:
91
91
 
@@ -98,8 +98,8 @@ bash .agents/skills/init-labels/scripts/init-labels.sh
98
98
 
99
99
  ## 错误处理
100
100
 
101
- - 未找到 `gh`:提示 "GitHub CLI (`gh`) is not installed"
102
- - 认证失败:提示 "GitHub CLI is not authenticated"
103
- - 仓库访问失败:提示 "Unable to access the current repository with gh"
101
+ - 未找到平台 CLI:提示 "the platform CLI is not installed"
102
+ - 认证失败:提示 "the platform CLI is not authenticated"
103
+ - 仓库访问失败:提示 "Unable to access the current repository with the platform CLI"
104
104
  - 权限不足:提示 "No permission to manage labels in this repository"
105
- - API 限流:提示 "GitHub API rate limit reached, please retry later"
105
+ - API 限流:提示 "platform API rate limit reached, please retry later"
@@ -0,0 +1,6 @@
1
+ #!/bin/sh
2
+
3
+ set -e
4
+
5
+ echo "Label initialization skipped: this code platform does not provide a built-in label adapter." >&2
6
+ exit 0
@@ -1,11 +1,11 @@
1
1
  ---
2
2
  name: init-milestones
3
- description: "Initialize the repository's standard GitHub Milestones taxonomy"
3
+ description: "Initialize the repository's standard milestones taxonomy"
4
4
  ---
5
5
 
6
- # Initialize GitHub Milestones
6
+ # Initialize milestones
7
7
 
8
- Initialize the repository's standard GitHub Milestones taxonomy.
8
+ Initialize the repository's standard milestones taxonomy.
9
9
 
10
10
  ## Execution Flow
11
11
 
@@ -62,7 +62,7 @@ Operational notes:
62
62
 
63
63
  ### 5. Inform User
64
64
 
65
- > **IMPORTANT**: All TUI command formats listed below must be output in full. Do not show only the format for the current AI agent.
65
+ > **IMPORTANT**: All TUI command formats listed below must be output in full. Do not show only the format for the current AI agent. If `.agents/.airc.json` configures custom TUIs (via `customTUIs`), read each tool's `name` and `invoke`, then add the matching command line in the same format (`${skillName}` becomes the skill name and `${projectName}` becomes the project name).
66
66
 
67
67
  After summarizing the milestone initialization, show:
68
68
 
@@ -75,10 +75,10 @@ Next step - initialize labels (optional):
75
75
 
76
76
  ## Error Handling
77
77
 
78
- - `gh` not found: prompt "GitHub CLI (`gh`) is not installed"
79
- - Authentication failed: prompt "GitHub CLI is not authenticated"
80
- - Repository access failed: prompt "Unable to access the current repository with gh"
78
+ - platform CLI not found: prompt "the platform CLI is not installed"
79
+ - Authentication failed: prompt "the platform CLI is not authenticated"
80
+ - Repository access failed: prompt "Unable to access the current repository with the platform CLI"
81
81
  - Version detection failed: prompt "Unable to determine current version baseline"
82
82
  - No `v*` tags found in `--history` mode: prompt "No history tags found matching v*; only standard milestones will be created"
83
83
  - Permission error: prompt "No permission to manage milestones in this repository"
84
- - API rate limit: prompt "GitHub API rate limit reached, please retry later"
84
+ - API rate limit: prompt "platform API rate limit reached, please retry later"
@@ -1,11 +1,11 @@
1
1
  ---
2
2
  name: init-milestones
3
- description: "初始化仓库的 GitHub Milestones 体系"
3
+ description: "初始化仓库的 milestones 体系"
4
4
  ---
5
5
 
6
- # 初始化 GitHub Milestones
6
+ # 初始化 milestones
7
7
 
8
- 一次性初始化仓库的标准 GitHub Milestones 体系。
8
+ 一次性初始化仓库的标准 milestones 体系。
9
9
 
10
10
  ## 执行流程
11
11
 
@@ -62,7 +62,7 @@ bash .agents/skills/init-milestones/scripts/init-milestones.sh "$ARGUMENTS"
62
62
 
63
63
  ### 5. 告知用户
64
64
 
65
- > **重要**:以下「下一步」中列出的所有 TUI 命令格式必须完整输出,不要只展示当前 AI 代理对应的格式。
65
+ > **重要**:以下「下一步」中列出的所有 TUI 命令格式必须完整输出,不要只展示当前 AI 代理对应的格式。如果 `.agents/.airc.json` 中配置了自定义 TUI(`customTUIs`),读取每个工具的 `name` 和 `invoke`,按同样格式补充对应命令行(`${skillName}` 替换为技能名,`${projectName}` 替换为项目名)。
66
66
 
67
67
  输出 milestones 初始化摘要后,提示:
68
68
 
@@ -75,10 +75,10 @@ bash .agents/skills/init-milestones/scripts/init-milestones.sh "$ARGUMENTS"
75
75
 
76
76
  ## 错误处理
77
77
 
78
- - 未找到 `gh`:提示 "GitHub CLI (`gh`) is not installed"
79
- - 认证失败:提示 "GitHub CLI is not authenticated"
80
- - 仓库访问失败:提示 "Unable to access the current repository with gh"
78
+ - 未找到平台 CLI:提示 "the platform CLI is not installed"
79
+ - 认证失败:提示 "the platform CLI is not authenticated"
80
+ - 仓库访问失败:提示 "Unable to access the current repository with the platform CLI"
81
81
  - 版本解析失败:提示 "Unable to determine current version baseline"
82
82
  - `--history` 模式下未找到任何 `v*` git tags:提示 "No history tags found matching v*; only standard milestones will be created"
83
83
  - 权限不足:提示 "No permission to manage milestones in this repository"
84
- - API 限流:提示 "GitHub API rate limit reached, please retry later"
84
+ - API 限流:提示 "platform API rate limit reached, please retry later"
@@ -0,0 +1,6 @@
1
+ #!/bin/sh
2
+
3
+ set -e
4
+
5
+ echo "Milestone initialization skipped: this code platform does not provide a built-in milestone adapter." >&2
6
+ exit 0
@@ -99,7 +99,7 @@ Update `.agents/workspace/active/{task-id}/task.md`:
99
99
  If task.md contains a valid `issue_number`, perform these sync actions (skip and continue on any failure):
100
100
  - Read `.agents/rules/issue-sync.md` before syncing, and complete upstream repository detection plus permission detection
101
101
  - Set `status: pending-design-work` by following issue-sync.md
102
- - Create or update the `<!-- sync-issue:{task-id}:task -->` comment (follow the task.md comment sync rule in issue-sync.md)
102
+ - Create or update the task comment marker defined in `.agents/rules/issue-sync.md` (follow the task.md comment sync rule in issue-sync.md)
103
103
  - Publish the `{plan-artifact}` comment
104
104
 
105
105
  ### 8. Verification Gate
@@ -121,7 +121,7 @@ Keep the gate output in your reply as fresh evidence. Do not claim completion wi
121
121
 
122
122
  > Execute this step only after the verification gate passes.
123
123
 
124
- > **IMPORTANT**: All TUI command formats listed below must be output in full. Do not show only the format for the current AI agent.
124
+ > **IMPORTANT**: All TUI command formats listed below must be output in full. Do not show only the format for the current AI agent. If `.agents/.airc.json` configures custom TUIs (via `customTUIs`), read each tool's `name` and `invoke`, then add the matching command line in the same format (`${skillName}` becomes the skill name and `${projectName}` becomes the project name).
125
125
 
126
126
  Output format:
127
127
  ```
@@ -157,7 +157,7 @@ Next step - implement the task:
157
157
  - [ ] Marked technical-design as complete in workflow progress
158
158
  - [ ] Appended an Activity Log entry to task.md
159
159
  - [ ] Informed the user that this is a human review checkpoint
160
- - [ ] Informed the user of the next step (must include all TUI command formats; do not filter)
160
+ - [ ] Informed the user of the next step (must include all TUI command formats, including any custom TUIs; do not filter)
161
161
 
162
162
  ## STOP
163
163
 
@@ -99,7 +99,7 @@ date "+%Y-%m-%d %H:%M:%S%:z"
99
99
  如果 task.md 中存在有效的 `issue_number`,执行以下同步操作(任一失败则跳过并继续):
100
100
  - 执行前先读取 `.agents/rules/issue-sync.md`,完成 upstream 仓库检测和权限检测
101
101
  - 按 issue-sync.md 设置 `status: pending-design-work`
102
- - 创建或更新 `<!-- sync-issue:{task-id}:task -->` 评论(按 issue-sync.md 的 task.md 评论同步规则)
102
+ - 创建或更新 `.agents/rules/issue-sync.md` 中定义的 task 评论标记(按 issue-sync.md 的 task.md 评论同步规则)
103
103
  - 发布 `{plan-artifact}` 评论
104
104
 
105
105
  ### 8. 完成校验
@@ -121,7 +121,7 @@ node .agents/scripts/validate-artifact.js gate plan-task .agents/workspace/activ
121
121
 
122
122
  > 仅在校验通过后执行本步骤。
123
123
 
124
- > **重要**:以下「下一步」中列出的所有 TUI 命令格式必须完整输出,不要只展示当前 AI 代理对应的格式。
124
+ > **重要**:以下「下一步」中列出的所有 TUI 命令格式必须完整输出,不要只展示当前 AI 代理对应的格式。如果 `.agents/.airc.json` 中配置了自定义 TUI(`customTUIs`),读取每个工具的 `name` 和 `invoke`,按同样格式补充对应命令行(`${skillName}` 替换为技能名,`${projectName}` 替换为项目名)。
125
125
 
126
126
  输出格式:
127
127
  ```
@@ -157,7 +157,7 @@ node .agents/scripts/validate-artifact.js gate plan-task .agents/workspace/activ
157
157
  - [ ] 在工作流进度中标记了 technical-design 为已完成
158
158
  - [ ] 追加了 Activity Log 条目到 task.md
159
159
  - [ ] 告知了用户这是人工审查检查点
160
- - [ ] 告知了用户下一步(必须展示所有 TUI 的命令格式,不要筛选)
160
+ - [ ] 告知了用户下一步(必须展示所有 TUI 的命令格式,含自定义 TUI,不要筛选)
161
161
 
162
162
  ## 停止
163
163
 
@@ -38,7 +38,9 @@
38
38
  "verify_comment_content": true,
39
39
  "verify_task_comment_content": true,
40
40
  "verify_issue_type": true,
41
- "verify_milestone": true
41
+ "verify_milestone": true,
42
+ "expected_status_label_key": "pendingDesignWork",
43
+ "expected_comment_marker_key": "artifact"
42
44
  }
43
45
  }
44
46
  }
@@ -0,0 +1,95 @@
1
+ ---
2
+ name: post-release
3
+ description: "Run post-release follow-up tasks"
4
+ ---
5
+
6
+ # Post-release Tasks
7
+
8
+ Run the standard follow-up workflow after a release tag has been pushed.
9
+
10
+ ## Execution Flow
11
+
12
+ ### 1. Detect the Latest Released Version
13
+
14
+ ```bash
15
+ git tag --sort=-v:refname | grep -E '^v[0-9]+\.[0-9]+\.[0-9]+$' | head -n 1
16
+ ```
17
+
18
+ - Detect the latest `vX.Y.Z` tag, then strip the `v` prefix when you need the version number in later steps
19
+ - If no tag is found, error: "No released version tag found. Please create and push a release tag first."
20
+
21
+ ### 2. Verify Clean Workspace
22
+
23
+ ```bash
24
+ git status --short
25
+ ```
26
+
27
+ - If there are uncommitted changes, error: "Workspace has uncommitted changes. Please commit or stash first."
28
+
29
+ ### 3. Prepare the Next Development Version
30
+
31
+ <!-- TODO: Replace this step with your project's version bump command -->
32
+
33
+ ```bash
34
+ # TODO: Replace with your project's post-release version bump command
35
+ # npm version prerelease --preid=alpha --no-git-tag-version
36
+ ```
37
+
38
+ - Update lockfiles or generated version metadata if your project needs them
39
+ - Keep all version references in sync after the bump
40
+
41
+ ### 4. Rebuild Generated Artifacts
42
+
43
+ <!-- TODO: Replace this step with your project's rebuild command -->
44
+
45
+ ```bash
46
+ # TODO: Replace with your project's artifact rebuild command
47
+ ```
48
+
49
+ - Rebuild any generated files, embedded assets, or inline templates affected by the new version
50
+ - If your project has no generated artifacts, remove this step in the project-specific copy
51
+
52
+ ### 5. Run Other Post-release Tasks (Optional)
53
+
54
+ <!-- TODO: Add project-specific follow-up tasks such as demo capture, docs publishing, or downstream notifications -->
55
+
56
+ - Examples: record a terminal demo, refresh a docs site, notify downstream teams, update release dashboards
57
+ - If there are no extra tasks, remove this step in the project-specific copy
58
+
59
+ ### 6. Create the Follow-up Commit
60
+
61
+ ```bash
62
+ git add -A
63
+ git commit -m "chore: prepare next dev iteration after v{released-version}"
64
+ ```
65
+
66
+ ### 7. Output Summary
67
+
68
+ > **IMPORTANT**: All TUI command formats listed below must be output in full. Do not show only the format for the current AI agent. If `.agents/.airc.json` configures custom TUIs (via `customTUIs`), read each tool's `name` and `invoke`, then add the matching command line in the same format (`${skillName}` becomes the skill name and `${projectName}` becomes the project name).
69
+
70
+ ```
71
+ Post-release tasks completed.
72
+
73
+ Summary:
74
+ - Released version: {released-version}
75
+ - Next development version: {new-version}
76
+ - Extra tasks completed: {summary}
77
+
78
+ Next step (manual):
79
+ - Push branch: git push origin {current-branch}
80
+ ```
81
+
82
+ ## Notes
83
+
84
+ 1. **No arguments**: Detect the released version from the latest tag instead of asking the user to repeat it
85
+ 2. **Clean workspace required**: Avoid mixing unrelated edits into the post-release commit
86
+ 3. **Project-specific customization**: Replace the TODO steps with the commands your project actually needs
87
+ 4. **Local-only workflow**: This skill prepares local changes and does not push automatically
88
+
89
+ ## Error Handling
90
+
91
+ - No release tag found: Prompt the user to finish the release first
92
+ - Dirty workspace: Prompt the user to commit or stash changes
93
+ - Version bump failed: Display the command error and stop
94
+ - Artifact rebuild failed: Display the build error and stop
95
+ - Git commit failed: Display the error and leave the workspace intact for manual recovery
@@ -0,0 +1,95 @@
1
+ ---
2
+ name: post-release
3
+ description: "执行版本发布后的后处理工作"
4
+ ---
5
+
6
+ # 发布后处理
7
+
8
+ 在版本标签推送完成后,执行标准化的发布后收尾流程。
9
+
10
+ ## 执行流程
11
+
12
+ ### 1. 检测最新发布版本
13
+
14
+ ```bash
15
+ git tag --sort=-v:refname | grep -E '^v[0-9]+\.[0-9]+\.[0-9]+$' | head -n 1
16
+ ```
17
+
18
+ - 检测最新 `vX.Y.Z` 标签,并在后续步骤中去除 `v` 前缀得到版本号
19
+ - 如果没有找到标签,报错:"No released version tag found. Please create and push a release tag first."
20
+
21
+ ### 2. 验证工作区干净
22
+
23
+ ```bash
24
+ git status --short
25
+ ```
26
+
27
+ - 如果存在未提交变更,报错:"Workspace has uncommitted changes. Please commit or stash first."
28
+
29
+ ### 3. 准备下一个开发版本
30
+
31
+ <!-- TODO: 将此步骤替换为你的项目版本 bump 命令 -->
32
+
33
+ ```bash
34
+ # TODO: 替换为你的项目发布后版本 bump 命令
35
+ # npm version prerelease --preid=alpha --no-git-tag-version
36
+ ```
37
+
38
+ - 如果项目需要,记得同步锁文件或其他版本元数据
39
+ - 版本 bump 后保持所有版本引用一致
40
+
41
+ ### 4. 重新生成构建产物
42
+
43
+ <!-- TODO: 将此步骤替换为你的项目产物重建命令 -->
44
+
45
+ ```bash
46
+ # TODO: 替换为你的项目产物重建命令
47
+ ```
48
+
49
+ - 重建所有受新版本号影响的生成文件、内嵌产物或内联模板
50
+ - 如果项目没有生成产物,请在项目特化版本中删除此步骤
51
+
52
+ ### 5. 执行其他发布后任务(可选)
53
+
54
+ <!-- TODO: 添加项目特定的发布后任务,例如录制演示、发布文档站或通知下游 -->
55
+
56
+ - 示例:录制终端演示、刷新文档站、通知下游团队、更新发布面板
57
+ - 如果没有额外任务,请在项目特化版本中删除此步骤
58
+
59
+ ### 6. 创建后处理提交
60
+
61
+ ```bash
62
+ git add -A
63
+ git commit -m "chore: prepare next dev iteration after v{released-version}"
64
+ ```
65
+
66
+ ### 7. 输出摘要
67
+
68
+ > **重要**:以下「下一步」中列出的所有 TUI 命令格式必须完整输出,不要只展示当前 AI 代理对应的格式。如果 `.agents/.airc.json` 中配置了自定义 TUI(`customTUIs`),读取每个工具的 `name` 和 `invoke`,按同样格式补充对应命令行(`${skillName}` 替换为技能名,`${projectName}` 替换为项目名)。
69
+
70
+ ```
71
+ 发布后处理已完成。
72
+
73
+ 结果摘要:
74
+ - 已发布版本:{released-version}
75
+ - 新开发版本:{new-version}
76
+ - 额外任务完成情况:{summary}
77
+
78
+ 下一步(手动执行):
79
+ - 推送分支:git push origin {current-branch}
80
+ ```
81
+
82
+ ## 注意事项
83
+
84
+ 1. **无参数设计**:从最新标签自动检测已发布版本,不要求用户重复输入
85
+ 2. **需要干净工作区**:避免把无关改动带入发布后提交
86
+ 3. **项目定制**:将带 TODO 的步骤替换为你的项目实际命令
87
+ 4. **仅本地执行**:本技能只准备本地变更,不自动推送
88
+
89
+ ## 错误处理
90
+
91
+ - 未找到发布标签:提示用户先完成发布
92
+ - 工作区不干净:提示先提交或暂存
93
+ - 版本 bump 失败:显示命令错误并停止
94
+ - 产物重建失败:显示构建错误并停止
95
+ - Git 提交失败:显示错误并保留当前工作区供人工处理
@@ -62,7 +62,7 @@ Update task.md:
62
62
  If task.md contains a valid `issue_number`, perform these sync actions (skip and continue on any failure):
63
63
  - Read `.agents/rules/issue-sync.md` before syncing, and complete upstream repository detection plus permission detection
64
64
  - Set `status: in-progress` by following issue-sync.md
65
- - Create or update the `<!-- sync-issue:{task-id}:task -->` comment (follow the task.md comment sync rule in issue-sync.md)
65
+ - Create or update the task comment marker defined in `.agents/rules/issue-sync.md` (follow the task.md comment sync rule in issue-sync.md)
66
66
  - Publish the `{refinement-artifact}` comment
67
67
 
68
68
  ### 7. Verification Gate
@@ -84,7 +84,7 @@ Keep the gate output in your reply as fresh evidence. Do not claim completion wi
84
84
 
85
85
  > Execute this step only after the verification gate passes.
86
86
 
87
- > **IMPORTANT**: All TUI command formats listed below must be output in full. Do not show only the format for the current AI agent.
87
+ > **IMPORTANT**: All TUI command formats listed below must be output in full. Do not show only the format for the current AI agent. If `.agents/.airc.json` configures custom TUIs (via `customTUIs`), read each tool's `name` and `invoke`, then add the matching command line in the same format (`${skillName}` becomes the skill name and `${projectName}` becomes the project name).
88
88
 
89
89
  After summarizing the fixes, present the next step:
90
90
 
@@ -62,7 +62,7 @@ date "+%Y-%m-%d %H:%M:%S%:z"
62
62
  如果 task.md 中存在有效的 `issue_number`,执行以下同步操作(任一失败则跳过并继续):
63
63
  - 执行前先读取 `.agents/rules/issue-sync.md`,完成 upstream 仓库检测和权限检测
64
64
  - 按 issue-sync.md 设置 `status: in-progress`
65
- - 创建或更新 `<!-- sync-issue:{task-id}:task -->` 评论(按 issue-sync.md 的 task.md 评论同步规则)
65
+ - 创建或更新 `.agents/rules/issue-sync.md` 中定义的 task 评论标记(按 issue-sync.md 的 task.md 评论同步规则)
66
66
  - 发布 `{refinement-artifact}` 评论
67
67
 
68
68
  ### 7. 完成校验
@@ -84,7 +84,7 @@ node .agents/scripts/validate-artifact.js gate refine-task .agents/workspace/act
84
84
 
85
85
  > 仅在校验通过后执行本步骤。
86
86
 
87
- > **重要**:以下「下一步」中列出的所有 TUI 命令格式必须完整输出,不要只展示当前 AI 代理对应的格式。
87
+ > **重要**:以下「下一步」中列出的所有 TUI 命令格式必须完整输出,不要只展示当前 AI 代理对应的格式。如果 `.agents/.airc.json` 中配置了自定义 TUI(`customTUIs`),读取每个工具的 `name` 和 `invoke`,按同样格式补充对应命令行(`${skillName}` 替换为技能名,`${projectName}` 替换为项目名)。
88
88
 
89
89
  输出修复摘要后,展示下一步:
90
90
 
@@ -32,7 +32,9 @@
32
32
  "verify_comment_content": true,
33
33
  "verify_task_comment_content": true,
34
34
  "verify_issue_type": true,
35
- "verify_milestone": true
35
+ "verify_milestone": true,
36
+ "expected_status_label_key": "inProgress",
37
+ "expected_comment_marker_key": "artifact"
36
38
  }
37
39
  }
38
40
  }
@@ -62,7 +62,7 @@ Title changes require write permission. Follow the permission-degradation rules
62
62
 
63
63
  ### 5. Inform User
64
64
 
65
- > **IMPORTANT**: All TUI command formats listed below must be output in full. Do not show only the format for the current AI agent.
65
+ > **IMPORTANT**: All TUI command formats listed below must be output in full. Do not show only the format for the current AI agent. If `.agents/.airc.json` configures custom TUIs (via `customTUIs`), read each tool's `name` and `invoke`, then add the matching command line in the same format (`${skillName}` becomes the skill name and `${projectName}` becomes the project name).
66
66
 
67
67
  If the skill updated an Issue title, explain that no extra sync command is required; continue with the workflow skill that matches the task's current stage.
68
68
 
@@ -62,7 +62,7 @@ Issue/PR #{id} 分析结果:
62
62
 
63
63
  ### 5. 告知用户
64
64
 
65
- > **重要**:以下「下一步」中列出的所有 TUI 命令格式必须完整输出,不要只展示当前 AI 代理对应的格式。
65
+ > **重要**:以下「下一步」中列出的所有 TUI 命令格式必须完整输出,不要只展示当前 AI 代理对应的格式。如果 `.agents/.airc.json` 中配置了自定义 TUI(`customTUIs`),读取每个工具的 `name` 和 `invoke`,按同样格式补充对应命令行(`${skillName}` 替换为技能名,`${projectName}` 替换为项目名)。
66
66
 
67
67
  如果修改了 Issue 标题,提示无需额外同步命令;后续按任务当前阶段继续执行对应工作流技能。
68
68