@fitlab-ai/agent-infra 0.5.6 → 0.5.7
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.
- package/README.md +92 -4
- package/README.zh-CN.md +92 -4
- package/bin/cli.js +28 -4
- package/lib/defaults.json +1 -0
- package/lib/init.js +68 -4
- package/lib/prompt.js +28 -1
- package/lib/render.js +1 -1
- package/lib/sandbox/commands/rm.js +6 -4
- package/lib/sandbox/commands/vm.js +43 -16
- package/lib/sandbox/config.js +5 -0
- package/lib/sandbox/engine.js +125 -16
- package/lib/sandbox/task-resolver.js +13 -6
- package/package.json +2 -2
- package/templates/.agents/QUICKSTART.en.md +17 -0
- package/templates/.agents/QUICKSTART.zh-CN.md +17 -0
- package/templates/.agents/README.en.md +70 -1
- package/templates/.agents/README.zh-CN.md +70 -1
- package/templates/.agents/rules/issue-pr-commands.en.md +5 -0
- package/templates/.agents/rules/issue-pr-commands.zh-CN.md +5 -0
- package/templates/.agents/rules/issue-sync.en.md +5 -0
- package/templates/.agents/rules/issue-sync.zh-CN.md +5 -0
- package/templates/.agents/rules/label-milestone-setup.en.md +5 -0
- package/templates/.agents/rules/label-milestone-setup.zh-CN.md +5 -0
- package/templates/.agents/rules/milestone-inference.en.md +5 -0
- package/templates/.agents/rules/milestone-inference.zh-CN.md +5 -0
- package/templates/.agents/rules/pr-sync.en.md +5 -0
- package/templates/.agents/rules/pr-sync.zh-CN.md +5 -0
- package/templates/.agents/rules/release-commands.en.md +5 -0
- package/templates/.agents/rules/release-commands.zh-CN.md +5 -0
- package/templates/.agents/rules/security-alerts.en.md +5 -0
- package/templates/.agents/rules/security-alerts.zh-CN.md +5 -0
- package/templates/.agents/scripts/platform-adapters/platform-sync.js +6 -0
- package/templates/.agents/skills/analyze-task/SKILL.en.md +2 -2
- package/templates/.agents/skills/analyze-task/SKILL.zh-CN.md +2 -2
- package/templates/.agents/skills/block-task/SKILL.en.md +1 -1
- package/templates/.agents/skills/block-task/SKILL.zh-CN.md +1 -1
- package/templates/.agents/skills/cancel-task/SKILL.en.md +1 -1
- package/templates/.agents/skills/cancel-task/SKILL.zh-CN.md +2 -2
- package/templates/.agents/skills/check-task/SKILL.en.md +1 -1
- package/templates/.agents/skills/check-task/SKILL.zh-CN.md +1 -1
- package/templates/.agents/skills/close-codescan/SKILL.en.md +1 -1
- package/templates/.agents/skills/close-codescan/SKILL.zh-CN.md +1 -1
- package/templates/.agents/skills/close-dependabot/SKILL.en.md +1 -1
- package/templates/.agents/skills/close-dependabot/SKILL.zh-CN.md +1 -1
- package/templates/.agents/skills/commit/SKILL.en.md +1 -1
- package/templates/.agents/skills/commit/SKILL.zh-CN.md +1 -1
- package/templates/.agents/skills/create-issue/SKILL.en.md +2 -2
- package/templates/.agents/skills/create-issue/SKILL.zh-CN.md +2 -2
- package/templates/.agents/skills/create-pr/SKILL.en.md +1 -1
- package/templates/.agents/skills/create-pr/SKILL.zh-CN.md +1 -1
- package/templates/.agents/skills/create-release-note/SKILL.en.md +8 -1
- package/templates/.agents/skills/create-release-note/SKILL.zh-CN.md +8 -1
- package/templates/.agents/skills/create-task/SKILL.en.md +2 -2
- package/templates/.agents/skills/create-task/SKILL.zh-CN.md +2 -2
- package/templates/.agents/skills/implement-task/SKILL.en.md +2 -2
- package/templates/.agents/skills/implement-task/SKILL.zh-CN.md +2 -2
- package/templates/.agents/skills/import-codescan/SKILL.en.md +2 -2
- package/templates/.agents/skills/import-codescan/SKILL.zh-CN.md +2 -2
- package/templates/.agents/skills/import-dependabot/SKILL.en.md +2 -2
- package/templates/.agents/skills/import-dependabot/SKILL.zh-CN.md +2 -2
- package/templates/.agents/skills/import-issue/SKILL.en.md +2 -2
- package/templates/.agents/skills/import-issue/SKILL.zh-CN.md +2 -2
- package/templates/.agents/skills/init-labels/SKILL.en.md +1 -1
- package/templates/.agents/skills/init-labels/SKILL.zh-CN.md +1 -1
- package/templates/.agents/skills/init-labels/scripts/init-labels.sh +6 -0
- package/templates/.agents/skills/init-milestones/SKILL.en.md +1 -1
- package/templates/.agents/skills/init-milestones/SKILL.zh-CN.md +1 -1
- package/templates/.agents/skills/init-milestones/scripts/init-milestones.sh +6 -0
- package/templates/.agents/skills/plan-task/SKILL.en.md +2 -2
- package/templates/.agents/skills/plan-task/SKILL.zh-CN.md +2 -2
- package/templates/.agents/skills/post-release/SKILL.en.md +95 -0
- package/templates/.agents/skills/post-release/SKILL.zh-CN.md +95 -0
- package/templates/.agents/skills/refine-task/SKILL.en.md +1 -1
- package/templates/.agents/skills/refine-task/SKILL.zh-CN.md +1 -1
- package/templates/.agents/skills/refine-title/SKILL.en.md +1 -1
- package/templates/.agents/skills/refine-title/SKILL.zh-CN.md +1 -1
- package/templates/.agents/skills/release/SKILL.en.md +6 -1
- package/templates/.agents/skills/release/SKILL.zh-CN.md +6 -1
- package/templates/.agents/skills/release/scripts/manage-milestones.sh +6 -0
- package/templates/.agents/skills/restore-task/SKILL.en.md +2 -2
- package/templates/.agents/skills/restore-task/SKILL.zh-CN.md +2 -2
- package/templates/.agents/skills/review-task/SKILL.en.md +2 -2
- package/templates/.agents/skills/review-task/SKILL.zh-CN.md +2 -2
- package/templates/.agents/skills/test/SKILL.en.md +1 -1
- package/templates/.agents/skills/test/SKILL.zh-CN.md +1 -1
- package/templates/.agents/skills/test-integration/SKILL.en.md +1 -1
- package/templates/.agents/skills/test-integration/SKILL.zh-CN.md +1 -1
- package/templates/.agents/skills/update-agent-infra/SKILL.en.md +10 -2
- package/templates/.agents/skills/update-agent-infra/SKILL.zh-CN.md +4 -2
- package/templates/.agents/skills/update-agent-infra/scripts/sync-templates.js +289 -12
- package/templates/.agents/skills/upgrade-dependency/SKILL.en.md +1 -1
- package/templates/.agents/skills/upgrade-dependency/SKILL.zh-CN.md +1 -1
- package/templates/.agents/templates/task.en.md +2 -2
- package/templates/.agents/templates/task.zh-CN.md +2 -2
- package/templates/.claude/commands/post-release.en.md +8 -0
- package/templates/.claude/commands/post-release.zh-CN.md +8 -0
- package/templates/.gemini/commands/_project_/post-release.en.toml +6 -0
- package/templates/.gemini/commands/_project_/post-release.zh-CN.toml +6 -0
- package/templates/.opencode/commands/post-release.en.md +9 -0
- package/templates/.opencode/commands/post-release.zh-CN.md +9 -0
|
@@ -106,7 +106,7 @@ node .agents/scripts/validate-artifact.js gate cancel-task .agents/workspace/com
|
|
|
106
106
|
|
|
107
107
|
> 仅在校验通过后执行本步骤。
|
|
108
108
|
|
|
109
|
-
> **重要**:以下「下一步」中列出的所有 TUI 命令格式必须完整输出,不要只展示当前 AI
|
|
109
|
+
> **重要**:以下「下一步」中列出的所有 TUI 命令格式必须完整输出,不要只展示当前 AI 代理对应的格式。如果 `.agents/.airc.json` 中配置了自定义 TUI(`customTUIs`),读取每个工具的 `name` 和 `invoke`,按同样格式补充对应命令行(`${skillName}` 替换为技能名,`${projectName}` 替换为项目名)。
|
|
110
110
|
|
|
111
111
|
输出格式:
|
|
112
112
|
```
|
|
@@ -128,7 +128,7 @@ node .agents/scripts/validate-artifact.js gate cancel-task .agents/workspace/com
|
|
|
128
128
|
- [ ] 已将任务目录移动到 `.agents/workspace/completed/`
|
|
129
129
|
- [ ] 已在存在 Issue 时完成 Issue 同步
|
|
130
130
|
- [ ] 已运行 gate 校验并通过
|
|
131
|
-
- [ ]
|
|
131
|
+
- [ ] 已向用户展示完整的下一步命令(含自定义 TUI)
|
|
132
132
|
|
|
133
133
|
## 注意事项
|
|
134
134
|
|
|
@@ -100,7 +100,7 @@ Next step:
|
|
|
100
100
|
|
|
101
101
|
### 5. Recommend Next Action
|
|
102
102
|
|
|
103
|
-
Recommend the appropriate next skill based on the current workflow state. You must show command formats for all TUI columns in the table below, not just the current AI agent.
|
|
103
|
+
Recommend the appropriate next skill based on the current workflow state. You must show command formats for all TUI columns in the table below, not just 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).
|
|
104
104
|
|
|
105
105
|
> **⚠️ CONDITION CHECK — you must choose the single matching row in the table below based on `status`, `current_step`, the latest artifacts, and the latest review result:**
|
|
106
106
|
>
|
|
@@ -100,7 +100,7 @@ description: "查看任务的当前状态和进度"
|
|
|
100
100
|
|
|
101
101
|
### 5. 建议下一步操作
|
|
102
102
|
|
|
103
|
-
根据当前工作流状态,建议合适的下一个技能。必须展示下表中所有 TUI 列的命令格式,不要只展示当前 AI
|
|
103
|
+
根据当前工作流状态,建议合适的下一个技能。必须展示下表中所有 TUI 列的命令格式,不要只展示当前 AI 代理对应的列。如果 `.agents/.airc.json` 中配置了自定义 TUI(`customTUIs`),读取每个工具的 `name` 和 `invoke`,按同样格式补充对应命令行(`${skillName}` 替换为技能名,`${projectName}` 替换为项目名):
|
|
104
104
|
|
|
105
105
|
> **⚠️ 条件判断 — 你必须先根据 `status`、`current_step`、最新产物和最新审查结果,选择下表中唯一匹配的一行:**
|
|
106
106
|
>
|
|
@@ -84,7 +84,7 @@ date "+%Y-%m-%d %H:%M:%S%:z"
|
|
|
84
84
|
|
|
85
85
|
### 8. Inform User
|
|
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
|
```
|
|
90
90
|
Code Scanning alert #{alert-number} dismissed.
|
|
@@ -84,7 +84,7 @@ date "+%Y-%m-%d %H:%M:%S%:z"
|
|
|
84
84
|
|
|
85
85
|
### 8. 告知用户
|
|
86
86
|
|
|
87
|
-
> **重要**:以下「下一步」中列出的所有 TUI 命令格式必须完整输出,不要只展示当前 AI
|
|
87
|
+
> **重要**:以下「下一步」中列出的所有 TUI 命令格式必须完整输出,不要只展示当前 AI 代理对应的格式。如果 `.agents/.airc.json` 中配置了自定义 TUI(`customTUIs`),读取每个工具的 `name` 和 `invoke`,按同样格式补充对应命令行(`${skillName}` 替换为技能名,`${projectName}` 替换为项目名)。
|
|
88
88
|
|
|
89
89
|
```
|
|
90
90
|
Code Scanning 告警 #{alert-number} 已关闭。
|
|
@@ -92,7 +92,7 @@ date "+%Y-%m-%d %H:%M:%S%:z"
|
|
|
92
92
|
|
|
93
93
|
### 8. Inform User
|
|
94
94
|
|
|
95
|
-
> **IMPORTANT**: All TUI command formats listed below must be output in full. Do not show only the format for the current AI agent.
|
|
95
|
+
> **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).
|
|
96
96
|
|
|
97
97
|
```
|
|
98
98
|
Security alert #{alert-number} dismissed.
|
|
@@ -92,7 +92,7 @@ date "+%Y-%m-%d %H:%M:%S%:z"
|
|
|
92
92
|
|
|
93
93
|
### 8. 告知用户
|
|
94
94
|
|
|
95
|
-
> **重要**:以下「下一步」中列出的所有 TUI 命令格式必须完整输出,不要只展示当前 AI
|
|
95
|
+
> **重要**:以下「下一步」中列出的所有 TUI 命令格式必须完整输出,不要只展示当前 AI 代理对应的格式。如果 `.agents/.airc.json` 中配置了自定义 TUI(`customTUIs`),读取每个工具的 `name` 和 `invoke`,按同样格式补充对应命令行(`${skillName}` 替换为技能名,`${projectName}` 替换为项目名)。
|
|
96
96
|
|
|
97
97
|
```
|
|
98
98
|
安全告警 #{alert-number} 已关闭。
|
|
@@ -44,7 +44,7 @@ date "+%Y-%m-%d %H:%M:%S%:z"
|
|
|
44
44
|
|
|
45
45
|
> The full four-case status matrix, prerequisite checks, and multi-TUI next-step commands live in `reference/task-status-update.md`. Read `reference/task-status-update.md` before updating task state.
|
|
46
46
|
|
|
47
|
-
> **IMPORTANT**: When showing the next step, output every TUI command format in full and directly use the standard template from `reference/task-status-update.md`.
|
|
47
|
+
> **IMPORTANT**: When showing the next step, output every TUI command format in full and directly use the standard template from `reference/task-status-update.md`. 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).
|
|
48
48
|
|
|
49
49
|
Append the Commit Activity Log entry and choose exactly one next-step case:
|
|
50
50
|
- final commit -> `complete-task {task-id}`
|
|
@@ -44,7 +44,7 @@ date "+%Y-%m-%d %H:%M:%S%:z"
|
|
|
44
44
|
|
|
45
45
|
> 完整的 4 种状态分支、前置条件检查和多 TUI 下一步命令见 `reference/task-status-update.md`。更新任务状态前,先读取 `reference/task-status-update.md`。
|
|
46
46
|
|
|
47
|
-
> **重要**:向用户展示下一步时,必须完整输出所有 TUI 命令格式,并直接使用 `reference/task-status-update.md`
|
|
47
|
+
> **重要**:向用户展示下一步时,必须完整输出所有 TUI 命令格式,并直接使用 `reference/task-status-update.md` 中对应场景的标准模板。如果 `.agents/.airc.json` 中配置了自定义 TUI(`customTUIs`),读取每个工具的 `name` 和 `invoke`,按同样格式补充对应命令行(`${skillName}` 替换为技能名,`${projectName}` 替换为项目名)。
|
|
48
48
|
|
|
49
49
|
追加 Commit 的 Activity Log,并且只能选择一个下一步分支:
|
|
50
50
|
- 最终提交 -> `complete-task {task-id}`
|
|
@@ -81,7 +81,7 @@ Keep the gate output in your reply as fresh evidence. Do not claim completion wi
|
|
|
81
81
|
|
|
82
82
|
> Execute this step only after the verification gate passes.
|
|
83
83
|
|
|
84
|
-
> **IMPORTANT**: All TUI command formats listed below must be output in full. Do not show only the format for the current AI agent.
|
|
84
|
+
> **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).
|
|
85
85
|
|
|
86
86
|
Show the Issue number, URL, labels, Issue Type, milestone result, confirm that `issue_number` was written back, and include the next-step commands in every TUI format:
|
|
87
87
|
|
|
@@ -98,7 +98,7 @@ Next step - run requirements analysis:
|
|
|
98
98
|
- [ ] Used `task.md` as the only content source
|
|
99
99
|
- [ ] Recorded `issue_number` in task.md
|
|
100
100
|
- [ ] Updated `updated_at` and appended the Activity Log entry
|
|
101
|
-
- [ ] Included all TUI formats for the next-step commands
|
|
101
|
+
- [ ] Included all TUI formats, including any custom TUIs, for the next-step commands
|
|
102
102
|
|
|
103
103
|
## STOP
|
|
104
104
|
|
|
@@ -81,7 +81,7 @@ node .agents/scripts/validate-artifact.js gate create-issue .agents/workspace/ac
|
|
|
81
81
|
|
|
82
82
|
> 仅在校验通过后执行本步骤。
|
|
83
83
|
|
|
84
|
-
> **重要**:以下「下一步」中列出的所有 TUI 命令格式必须完整输出,不要只展示当前 AI
|
|
84
|
+
> **重要**:以下「下一步」中列出的所有 TUI 命令格式必须完整输出,不要只展示当前 AI 代理对应的格式。如果 `.agents/.airc.json` 中配置了自定义 TUI(`customTUIs`),读取每个工具的 `name` 和 `invoke`,按同样格式补充对应命令行(`${skillName}` 替换为技能名,`${projectName}` 替换为项目名)。
|
|
85
85
|
|
|
86
86
|
展示 Issue 编号、URL、labels、Issue Type、milestone 结果,确认 `issue_number` 已回写,并完整输出所有 TUI 里的下一步命令:
|
|
87
87
|
|
|
@@ -98,7 +98,7 @@ node .agents/scripts/validate-artifact.js gate create-issue .agents/workspace/ac
|
|
|
98
98
|
- [ ] 已仅使用 `task.md` 作为内容来源
|
|
99
99
|
- [ ] 已在 task.md 中记录 `issue_number`
|
|
100
100
|
- [ ] 已更新 `updated_at` 并追加 Activity Log
|
|
101
|
-
- [ ] 已输出所有 TUI
|
|
101
|
+
- [ ] 已输出所有 TUI 格式的下一步命令(含自定义 TUI)
|
|
102
102
|
|
|
103
103
|
## 停止
|
|
104
104
|
|
|
@@ -93,7 +93,7 @@ Keep the gate output in your reply as fresh evidence. Do not claim completion wi
|
|
|
93
93
|
|
|
94
94
|
> Execute this step only after the verification gate passes.
|
|
95
95
|
|
|
96
|
-
> **IMPORTANT**: All TUI command formats listed below must be output in full. Do not show only the format for the current AI agent.
|
|
96
|
+
> **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).
|
|
97
97
|
|
|
98
98
|
Explain the created PR URL, summarize metadata sync and summary-comment results, and recommend `complete-task {task-id}` once the workflow is truly done.
|
|
99
99
|
|
|
@@ -93,7 +93,7 @@ node .agents/scripts/validate-artifact.js gate create-pr .agents/workspace/activ
|
|
|
93
93
|
|
|
94
94
|
> 仅在校验通过后执行本步骤。
|
|
95
95
|
|
|
96
|
-
> **重要**:以下「下一步」中列出的所有 TUI 命令格式必须完整输出,不要只展示当前 AI
|
|
96
|
+
> **重要**:以下「下一步」中列出的所有 TUI 命令格式必须完整输出,不要只展示当前 AI 代理对应的格式。如果 `.agents/.airc.json` 中配置了自定义 TUI(`customTUIs`),读取每个工具的 `name` 和 `invoke`,按同样格式补充对应命令行(`${skillName}` 替换为技能名,`${projectName}` 替换为项目名)。
|
|
97
97
|
|
|
98
98
|
说明 PR URL、元数据同步结果、摘要评论结果,并在工作流真正完成后推荐执行 `complete-task {task-id}`。
|
|
99
99
|
|
|
@@ -119,7 +119,7 @@ If no historical release notes exist, use the following default Markdown format:
|
|
|
119
119
|
|
|
120
120
|
## Contributors
|
|
121
121
|
|
|
122
|
-
@contributor1, @contributor2, @contributor3
|
|
122
|
+
@contributor1, @contributor2, @contributor3, @reporter1 (reported #N)
|
|
123
123
|
```
|
|
124
124
|
|
|
125
125
|
**Format rules**:
|
|
@@ -130,6 +130,7 @@ If no historical release notes exist, use the following default Markdown format:
|
|
|
130
130
|
- **Data sources**:
|
|
131
131
|
- PR authors from Step 4 `gh pr list --json author`
|
|
132
132
|
- Commit co-authors from Step 4 `git log ... --format='%(trailers:key=Co-authored-by,valueonly,unfold)'`
|
|
133
|
+
- Issue reporters from linked Issues collected in Step 5 (`author.login` returned by `gh issue view`)
|
|
133
134
|
- **Contribution count**: `PR count + co-authored commit count` for the same identity, merged across both sources
|
|
134
135
|
- **Name -> `@login` mapping**:
|
|
135
136
|
- Raw `Co-authored-by` values are `Name <email>` and must be mapped to a GitHub `@login`
|
|
@@ -141,6 +142,12 @@ If no historical release notes exist, use the following default Markdown format:
|
|
|
141
142
|
- If the login still cannot be determined reliably, output `@{lowercased first Name token}` and append `<!-- TODO(reviewer): confirm GitHub login for {original Name <email>} -->` below the `Contributors` section
|
|
142
143
|
- **Sorting**: descending by contribution count, then lexicographically by login for ties
|
|
143
144
|
- **Deduplication**: use the final mapped `@login` as the key
|
|
145
|
+
- **Issue reporter rules**:
|
|
146
|
+
- Extract `author.login` from each linked Issue collected in Step 5
|
|
147
|
+
- If the login already exists in the final mapped PR author or co-author list, skip it (code contribution already covers this user)
|
|
148
|
+
- Reporter-only contributors use the format `@login (reported #N)`; if the same reporter reported multiple Issues, use `@login (reported #N1, #N2)`
|
|
149
|
+
- Reporters are appended after code contributors in the Contributors section, separated by commas
|
|
150
|
+
- Sort reporters by reported Issue count descending, then lexicographically by login for ties
|
|
144
151
|
5. Empty sections: Omit sections with no entries
|
|
145
152
|
|
|
146
153
|
### 8. Present and Confirm
|
|
@@ -119,7 +119,7 @@ git log v<prev-version>..v<version> \
|
|
|
119
119
|
|
|
120
120
|
## Contributors
|
|
121
121
|
|
|
122
|
-
@contributor1, @contributor2, @contributor3
|
|
122
|
+
@contributor1, @contributor2, @contributor3, @reporter1 (reported #N)
|
|
123
123
|
```
|
|
124
124
|
|
|
125
125
|
**格式规则**:
|
|
@@ -130,6 +130,7 @@ git log v<prev-version>..v<version> \
|
|
|
130
130
|
- **数据源**:
|
|
131
131
|
- PR author:来自步骤 4 的 `gh pr list --json author`
|
|
132
132
|
- Commit co-authors:来自步骤 4 的 `git log ... --format='%(trailers:key=Co-authored-by,valueonly,unfold)'`
|
|
133
|
+
- Issue reporters:来自步骤 5 收集的关联 Issue 的 author(`gh issue view` 返回的 `author.login`)
|
|
133
134
|
- **贡献数定义**:`该人的 PR 数 + 该人作为 co-author 的 commit 数`(同一身份跨来源合并计数)
|
|
134
135
|
- **Name → `@login` 映射**:
|
|
135
136
|
- `Co-authored-by` 原始格式为 `Name <email>`,需要推断对应的 GitHub `@login`
|
|
@@ -141,6 +142,12 @@ git log v<prev-version>..v<version> \
|
|
|
141
142
|
- 若仍无法可靠确定 login,则输出 `@{Name 首 token 小写}`,并在 `Contributors` 段落下追加 `<!-- TODO(reviewer): 确认 {原始 Name <email>} 的 GitHub login -->`
|
|
142
143
|
- **排序**:按贡献数降序;贡献数相同时按 login 字典序
|
|
143
144
|
- **去重**:以最终映射后的 `@login` 为键
|
|
145
|
+
- **Issue reporter 规则**:
|
|
146
|
+
- 从步骤 5 收集到的每个关联 Issue 中提取 `author.login`
|
|
147
|
+
- 如果该 login 已存在于 PR author 或 co-author 的最终映射列表中,跳过(代码贡献已包含该用户)
|
|
148
|
+
- 仅报告贡献的用户以 `@login (reported #N)` 格式展示;同一 reporter 报告多个 Issue 时使用 `@login (reported #N1, #N2)`
|
|
149
|
+
- Reporter 在 Contributors 段落中排在代码贡献者之后,以逗号分隔追加
|
|
150
|
+
- Reporter 之间按报告的 Issue 数量降序排列,数量相同时按 login 字典序
|
|
144
151
|
5. 空部分:省略没有条目的部分
|
|
145
152
|
|
|
146
153
|
### 8. 展示并确认
|
|
@@ -117,7 +117,7 @@ Keep the gate output in your reply as fresh evidence. Do not claim completion wi
|
|
|
117
117
|
|
|
118
118
|
> Execute this step only after the verification gate passes.
|
|
119
119
|
|
|
120
|
-
> **IMPORTANT**: All TUI command formats listed below must be output in full. Do not show only the format for the current AI agent.
|
|
120
|
+
> **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).
|
|
121
121
|
|
|
122
122
|
Output format:
|
|
123
123
|
```
|
|
@@ -150,7 +150,7 @@ Or create a GitHub Issue first:
|
|
|
150
150
|
- [ ] Updated `updated_at` to the current time in task.md
|
|
151
151
|
- [ ] Updated `assigned_to` in task.md
|
|
152
152
|
- [ ] Appended an Activity Log entry to task.md
|
|
153
|
-
- [ ] Informed the user of the next step (must include all TUI command formats; do not filter)
|
|
153
|
+
- [ ] Informed the user of the next step (must include all TUI command formats, including any custom TUIs; do not filter)
|
|
154
154
|
- [ ] **Did not modify any business code or configuration files** (only task.md)
|
|
155
155
|
|
|
156
156
|
## STOP
|
|
@@ -117,7 +117,7 @@ node .agents/scripts/validate-artifact.js gate create-task .agents/workspace/act
|
|
|
117
117
|
|
|
118
118
|
> 仅在校验通过后执行本步骤。
|
|
119
119
|
|
|
120
|
-
> **重要**:以下「下一步」中列出的所有 TUI 命令格式必须完整输出,不要只展示当前 AI
|
|
120
|
+
> **重要**:以下「下一步」中列出的所有 TUI 命令格式必须完整输出,不要只展示当前 AI 代理对应的格式。如果 `.agents/.airc.json` 中配置了自定义 TUI(`customTUIs`),读取每个工具的 `name` 和 `invoke`,按同样格式补充对应命令行(`${skillName}` 替换为技能名,`${projectName}` 替换为项目名)。
|
|
121
121
|
|
|
122
122
|
输出格式:
|
|
123
123
|
```
|
|
@@ -150,7 +150,7 @@ node .agents/scripts/validate-artifact.js gate create-task .agents/workspace/act
|
|
|
150
150
|
- [ ] 更新了 task.md 中的 `updated_at` 为当前时间
|
|
151
151
|
- [ ] 更新了 task.md 中的 `assigned_to`
|
|
152
152
|
- [ ] 追加了 Activity Log 条目到 task.md
|
|
153
|
-
- [ ] 告知了用户下一步(必须展示所有 TUI
|
|
153
|
+
- [ ] 告知了用户下一步(必须展示所有 TUI 的命令格式,含自定义 TUI,不要筛选)
|
|
154
154
|
- [ ] **没有修改任何业务代码或配置文件**(仅 task.md)
|
|
155
155
|
|
|
156
156
|
## 停止
|
|
@@ -117,7 +117,7 @@ Keep the gate output in your reply as fresh evidence. Do not claim completion wi
|
|
|
117
117
|
|
|
118
118
|
> Execute this step only after the verification gate passes.
|
|
119
119
|
|
|
120
|
-
> **IMPORTANT**: All TUI command formats listed below must be output in full. Do not show only the format for the current AI agent. Use the output template in `reference/output-template.md`.
|
|
120
|
+
> **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). Use the output template in `reference/output-template.md`.
|
|
121
121
|
|
|
122
122
|
## Completion Checklist
|
|
123
123
|
|
|
@@ -125,7 +125,7 @@ Keep the gate output in your reply as fresh evidence. Do not claim completion wi
|
|
|
125
125
|
- [ ] Created `{implementation-artifact}`
|
|
126
126
|
- [ ] All required tests passed
|
|
127
127
|
- [ ] Updated task.md and appended the Activity Log entry
|
|
128
|
-
- [ ] Included every TUI command format in the user-facing next step
|
|
128
|
+
- [ ] Included every TUI command format, including any custom TUIs, in the user-facing next step
|
|
129
129
|
|
|
130
130
|
## STOP
|
|
131
131
|
|
|
@@ -117,7 +117,7 @@ node .agents/scripts/validate-artifact.js gate implement-task .agents/workspace/
|
|
|
117
117
|
|
|
118
118
|
> 仅在校验通过后执行本步骤。
|
|
119
119
|
|
|
120
|
-
> **重要**:以下「下一步」中列出的所有 TUI 命令格式必须完整输出,不要只展示当前 AI
|
|
120
|
+
> **重要**:以下「下一步」中列出的所有 TUI 命令格式必须完整输出,不要只展示当前 AI 代理对应的格式。如果 `.agents/.airc.json` 中配置了自定义 TUI(`customTUIs`),读取每个工具的 `name` 和 `invoke`,按同样格式补充对应命令行(`${skillName}` 替换为技能名,`${projectName}` 替换为项目名)。输出格式见 `reference/output-template.md`。
|
|
121
121
|
|
|
122
122
|
## 完成检查清单
|
|
123
123
|
|
|
@@ -125,7 +125,7 @@ node .agents/scripts/validate-artifact.js gate implement-task .agents/workspace/
|
|
|
125
125
|
- [ ] 已创建 `{implementation-artifact}`
|
|
126
126
|
- [ ] 所有必需测试通过
|
|
127
127
|
- [ ] 已更新 task.md 并追加 Activity Log
|
|
128
|
-
- [ ] 已向用户展示所有 TUI
|
|
128
|
+
- [ ] 已向用户展示所有 TUI 格式的下一步命令(含自定义 TUI)
|
|
129
129
|
|
|
130
130
|
## 停止
|
|
131
131
|
|
|
@@ -75,7 +75,7 @@ Keep the gate output in your reply as fresh evidence. Do not claim completion wi
|
|
|
75
75
|
|
|
76
76
|
> Execute this step only after the verification gate passes.
|
|
77
77
|
|
|
78
|
-
> **IMPORTANT**: All TUI command formats listed below must be output in full. Do not show only the format for the current AI agent.
|
|
78
|
+
> **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).
|
|
79
79
|
|
|
80
80
|
```
|
|
81
81
|
Code Scanning alert #{alert-number} imported.
|
|
@@ -101,7 +101,7 @@ Next step:
|
|
|
101
101
|
- [ ] Updated `current_step` to requirement-analysis in task.md
|
|
102
102
|
- [ ] Updated `updated_at` to the current time in task.md
|
|
103
103
|
- [ ] Appended an Activity Log entry to task.md
|
|
104
|
-
- [ ] Informed the user of the next step (must include all TUI command formats; do not filter)
|
|
104
|
+
- [ ] Informed the user of the next step (must include all TUI command formats, including any custom TUIs; do not filter)
|
|
105
105
|
|
|
106
106
|
## Error Handling
|
|
107
107
|
|
|
@@ -75,7 +75,7 @@ node .agents/scripts/validate-artifact.js gate import-codescan .agents/workspace
|
|
|
75
75
|
|
|
76
76
|
> 仅在校验通过后执行本步骤。
|
|
77
77
|
|
|
78
|
-
> **重要**:以下「下一步」中列出的所有 TUI 命令格式必须完整输出,不要只展示当前 AI
|
|
78
|
+
> **重要**:以下「下一步」中列出的所有 TUI 命令格式必须完整输出,不要只展示当前 AI 代理对应的格式。如果 `.agents/.airc.json` 中配置了自定义 TUI(`customTUIs`),读取每个工具的 `name` 和 `invoke`,按同样格式补充对应命令行(`${skillName}` 替换为技能名,`${projectName}` 替换为项目名)。
|
|
79
79
|
|
|
80
80
|
```
|
|
81
81
|
Code Scanning 告警 #{alert-number} 已导入。
|
|
@@ -101,7 +101,7 @@ Code Scanning 告警 #{alert-number} 已导入。
|
|
|
101
101
|
- [ ] 更新了 task.md 中的 `current_step` 为 requirement-analysis
|
|
102
102
|
- [ ] 更新了 task.md 中的 `updated_at` 为当前时间
|
|
103
103
|
- [ ] 追加了 Activity Log 条目到 task.md
|
|
104
|
-
- [ ] 告知了用户下一步(必须展示所有 TUI
|
|
104
|
+
- [ ] 告知了用户下一步(必须展示所有 TUI 的命令格式,含自定义 TUI,不要筛选)
|
|
105
105
|
|
|
106
106
|
## 错误处理
|
|
107
107
|
|
|
@@ -76,7 +76,7 @@ Keep the gate output in your reply as fresh evidence. Do not claim completion wi
|
|
|
76
76
|
|
|
77
77
|
> Execute this step only after the verification gate passes.
|
|
78
78
|
|
|
79
|
-
> **IMPORTANT**: All TUI command formats listed below must be output in full. Do not show only the format for the current AI agent.
|
|
79
|
+
> **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).
|
|
80
80
|
|
|
81
81
|
```
|
|
82
82
|
Security alert #{alert-number} imported.
|
|
@@ -105,7 +105,7 @@ Next step:
|
|
|
105
105
|
- [ ] Updated `current_step` to requirement-analysis in task.md
|
|
106
106
|
- [ ] Updated `updated_at` to the current time in task.md
|
|
107
107
|
- [ ] Appended an Activity Log entry to task.md
|
|
108
|
-
- [ ] Informed the user of the next step (must include all TUI command formats; do not filter)
|
|
108
|
+
- [ ] Informed the user of the next step (must include all TUI command formats, including any custom TUIs; do not filter)
|
|
109
109
|
|
|
110
110
|
## Error Handling
|
|
111
111
|
|
|
@@ -76,7 +76,7 @@ node .agents/scripts/validate-artifact.js gate import-dependabot .agents/workspa
|
|
|
76
76
|
|
|
77
77
|
> 仅在校验通过后执行本步骤。
|
|
78
78
|
|
|
79
|
-
> **重要**:以下「下一步」中列出的所有 TUI 命令格式必须完整输出,不要只展示当前 AI
|
|
79
|
+
> **重要**:以下「下一步」中列出的所有 TUI 命令格式必须完整输出,不要只展示当前 AI 代理对应的格式。如果 `.agents/.airc.json` 中配置了自定义 TUI(`customTUIs`),读取每个工具的 `name` 和 `invoke`,按同样格式补充对应命令行(`${skillName}` 替换为技能名,`${projectName}` 替换为项目名)。
|
|
80
80
|
|
|
81
81
|
```
|
|
82
82
|
安全告警 #{alert-number} 已导入。
|
|
@@ -105,7 +105,7 @@ node .agents/scripts/validate-artifact.js gate import-dependabot .agents/workspa
|
|
|
105
105
|
- [ ] 更新了 task.md 中的 `current_step` 为 requirement-analysis
|
|
106
106
|
- [ ] 更新了 task.md 中的 `updated_at` 为当前时间
|
|
107
107
|
- [ ] 追加了 Activity Log 条目到 task.md
|
|
108
|
-
- [ ] 告知了用户下一步(必须展示所有 TUI
|
|
108
|
+
- [ ] 告知了用户下一步(必须展示所有 TUI 的命令格式,含自定义 TUI,不要筛选)
|
|
109
109
|
|
|
110
110
|
## 错误处理
|
|
111
111
|
|
|
@@ -100,7 +100,7 @@ Keep the gate output in your reply as fresh evidence. Do not claim completion wi
|
|
|
100
100
|
|
|
101
101
|
> Execute this step only after the verification gate passes.
|
|
102
102
|
|
|
103
|
-
> **IMPORTANT**: All TUI command formats listed below must be output in full. Do not show only the format for the current AI agent.
|
|
103
|
+
> **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).
|
|
104
104
|
|
|
105
105
|
```
|
|
106
106
|
Issue #{number} imported.
|
|
@@ -127,7 +127,7 @@ Next step - run requirements analysis:
|
|
|
127
127
|
- [ ] Updated `updated_at` to the current time
|
|
128
128
|
- [ ] Appended an Activity Log entry to task.md
|
|
129
129
|
- [ ] Synced the task comment to the Issue
|
|
130
|
-
- [ ] Informed the user of the next step (must include all TUI command formats; do not filter)
|
|
130
|
+
- [ ] Informed the user of the next step (must include all TUI command formats, including any custom TUIs; do not filter)
|
|
131
131
|
- [ ] **Did not modify any business code**
|
|
132
132
|
|
|
133
133
|
## STOP
|
|
@@ -100,7 +100,7 @@ node .agents/scripts/validate-artifact.js gate import-issue .agents/workspace/ac
|
|
|
100
100
|
|
|
101
101
|
> 仅在校验通过后执行本步骤。
|
|
102
102
|
|
|
103
|
-
> **重要**:以下「下一步」中列出的所有 TUI 命令格式必须完整输出,不要只展示当前 AI
|
|
103
|
+
> **重要**:以下「下一步」中列出的所有 TUI 命令格式必须完整输出,不要只展示当前 AI 代理对应的格式。如果 `.agents/.airc.json` 中配置了自定义 TUI(`customTUIs`),读取每个工具的 `name` 和 `invoke`,按同样格式补充对应命令行(`${skillName}` 替换为技能名,`${projectName}` 替换为项目名)。
|
|
104
104
|
|
|
105
105
|
```
|
|
106
106
|
Issue #{number} 已导入。
|
|
@@ -127,7 +127,7 @@ Issue #{number} 已导入。
|
|
|
127
127
|
- [ ] 更新了 `updated_at` 为当前时间
|
|
128
128
|
- [ ] 追加了 Activity Log 条目到 task.md
|
|
129
129
|
- [ ] 同步了 task 评论到 Issue
|
|
130
|
-
- [ ] 告知了用户下一步(必须展示所有 TUI
|
|
130
|
+
- [ ] 告知了用户下一步(必须展示所有 TUI 的命令格式,含自定义 TUI,不要筛选)
|
|
131
131
|
- [ ] **没有修改任何业务代码**
|
|
132
132
|
|
|
133
133
|
## 停止
|
|
@@ -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
|
|
|
@@ -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
|
|
|
@@ -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
|
|
|
@@ -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
|
|
|
@@ -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
|
|
|
@@ -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
|
|
|
@@ -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
|