@fitlab-ai/agent-infra 0.6.0 → 0.6.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.
- package/README.md +12 -12
- package/README.zh-CN.md +12 -12
- package/bin/cli.ts +5 -1
- package/dist/bin/cli.js +6 -1
- package/dist/lib/defaults.json +4 -3
- package/dist/lib/sandbox/config.js +1 -1
- package/dist/package.json +1 -1
- package/lib/defaults.json +4 -3
- package/lib/sandbox/config.ts +1 -1
- package/package.json +3 -3
- package/templates/.agents/README.en.md +8 -8
- package/templates/.agents/README.zh-CN.md +8 -8
- package/templates/{.claude → .agents}/hooks/check-version-format.sh +3 -3
- package/templates/.agents/rules/create-issue.github.en.md +6 -0
- package/templates/.agents/rules/create-issue.github.zh-CN.md +6 -0
- package/templates/.agents/rules/issue-fields.github.en.md +155 -0
- package/templates/.agents/rules/issue-fields.github.zh-CN.md +155 -0
- package/templates/.agents/rules/issue-pr-commands.github.en.md +1 -0
- package/templates/.agents/rules/issue-pr-commands.github.zh-CN.md +1 -0
- package/templates/.agents/rules/issue-sync.github.en.md +2 -1
- package/templates/.agents/rules/issue-sync.github.zh-CN.md +2 -1
- package/templates/.agents/rules/task-management.en.md +17 -9
- package/templates/.agents/rules/task-management.zh-CN.md +17 -9
- package/templates/.agents/rules/testing-discipline.en.md +40 -0
- package/templates/.agents/rules/testing-discipline.zh-CN.md +40 -0
- package/templates/.agents/rules/version-stamp.en.md +29 -0
- package/templates/.agents/rules/version-stamp.zh-CN.md +29 -0
- package/templates/.agents/scripts/platform-adapters/platform-sync.github.js +143 -6
- package/templates/.agents/scripts/validate-artifact.js +32 -5
- package/templates/.agents/skills/analyze-task/SKILL.en.md +3 -0
- package/templates/.agents/skills/analyze-task/SKILL.zh-CN.md +3 -0
- package/templates/.agents/skills/analyze-task/config/verify.json +2 -0
- package/templates/.agents/skills/block-task/SKILL.en.md +3 -0
- package/templates/.agents/skills/block-task/SKILL.zh-CN.md +3 -0
- package/templates/.agents/skills/block-task/config/verify.json +1 -0
- package/templates/.agents/skills/cancel-task/SKILL.en.md +3 -0
- package/templates/.agents/skills/cancel-task/SKILL.zh-CN.md +3 -0
- package/templates/.agents/skills/cancel-task/config/verify.json +1 -0
- package/templates/.agents/skills/commit/SKILL.en.md +10 -0
- package/templates/.agents/skills/commit/SKILL.zh-CN.md +10 -0
- package/templates/.agents/skills/commit/config/verify.json +1 -0
- package/templates/.agents/skills/commit/reference/task-status-update.en.md +5 -0
- package/templates/.agents/skills/commit/reference/task-status-update.zh-CN.md +5 -0
- package/templates/.agents/skills/complete-task/SKILL.en.md +4 -0
- package/templates/.agents/skills/complete-task/SKILL.zh-CN.md +4 -0
- package/templates/.agents/skills/complete-task/config/verify.json +2 -0
- package/templates/.agents/skills/create-pr/SKILL.en.md +5 -1
- package/templates/.agents/skills/create-pr/SKILL.zh-CN.md +5 -1
- package/templates/.agents/skills/create-pr/config/verify.json +1 -0
- package/templates/.agents/skills/create-task/SKILL.en.md +9 -0
- package/templates/.agents/skills/create-task/SKILL.zh-CN.md +9 -0
- package/templates/.agents/skills/create-task/config/verify.json +1 -0
- package/templates/.agents/skills/implement-task/SKILL.en.md +16 -1
- package/templates/.agents/skills/implement-task/SKILL.zh-CN.md +16 -1
- package/templates/.agents/skills/implement-task/config/verify.json +2 -0
- package/templates/.agents/skills/import-codescan/config/verify.json +1 -0
- package/templates/.agents/skills/import-dependabot/config/verify.json +1 -0
- package/templates/.agents/skills/import-issue/SKILL.en.md +10 -0
- package/templates/.agents/skills/import-issue/SKILL.zh-CN.md +10 -0
- package/templates/.agents/skills/import-issue/config/verify.json +1 -0
- package/templates/.agents/skills/plan-task/SKILL.en.md +3 -0
- package/templates/.agents/skills/plan-task/SKILL.zh-CN.md +3 -0
- package/templates/.agents/skills/plan-task/config/verify.json +2 -0
- package/templates/.agents/skills/refine-task/SKILL.en.md +15 -1
- package/templates/.agents/skills/refine-task/SKILL.zh-CN.md +15 -1
- package/templates/.agents/skills/refine-task/config/verify.json +2 -0
- package/templates/.agents/skills/refine-task/reference/fix-workflow.en.md +9 -0
- package/templates/.agents/skills/refine-task/reference/fix-workflow.zh-CN.md +9 -0
- package/templates/.agents/skills/refine-task/reference/report-template.en.md +11 -0
- package/templates/.agents/skills/refine-task/reference/report-template.zh-CN.md +11 -0
- package/templates/.agents/skills/restore-task/SKILL.en.md +3 -0
- package/templates/.agents/skills/restore-task/SKILL.zh-CN.md +3 -0
- package/templates/.agents/skills/restore-task/config/verify.json +1 -0
- package/templates/.agents/skills/review-task/SKILL.en.md +16 -1
- package/templates/.agents/skills/review-task/SKILL.zh-CN.md +16 -1
- package/templates/.agents/skills/review-task/config/verify.json +3 -0
- package/templates/.agents/skills/review-task/reference/output-templates.en.md +20 -5
- package/templates/.agents/skills/review-task/reference/output-templates.zh-CN.md +20 -5
- package/templates/.agents/skills/review-task/reference/report-template.en.md +13 -0
- package/templates/.agents/skills/review-task/reference/report-template.zh-CN.md +13 -0
- package/templates/.agents/skills/review-task/reference/review-criteria.en.md +18 -0
- package/templates/.agents/skills/review-task/reference/review-criteria.zh-CN.md +18 -0
- package/templates/.agents/skills/update-agent-infra/scripts/sync-templates.js +4 -3
- package/templates/.agents/templates/task.en.md +5 -0
- package/templates/.agents/templates/task.zh-CN.md +5 -0
- package/templates/.claude/settings.json +1 -1
- package/templates/.codex/hooks.json +17 -0
|
@@ -69,11 +69,18 @@ workflow: feature-development|bug-fix|refactoring
|
|
|
69
69
|
status: active
|
|
70
70
|
created_at: {YYYY-MM-DD HH:mm:ss±HH:MM}
|
|
71
71
|
updated_at: {YYYY-MM-DD HH:mm:ss±HH:MM}
|
|
72
|
+
agent_infra_version: {agent_infra_version}
|
|
72
73
|
created_by: human
|
|
74
|
+
priority: # optional; preserve source/frontmatter value when available
|
|
75
|
+
effort: # optional; preserve source/frontmatter value when available
|
|
76
|
+
start_date: # optional; preserve explicit YYYY-MM-DD when available
|
|
77
|
+
target_date: # optional; preserve explicit YYYY-MM-DD when available
|
|
73
78
|
current_step: requirement-analysis
|
|
74
79
|
assigned_to: {current AI agent}
|
|
75
80
|
```
|
|
76
81
|
|
|
82
|
+
Optional Issue field metadata should preserve recovered or explicit source values. If absent, leave it empty; do not invent dates.
|
|
83
|
+
|
|
77
84
|
3.3 Append Activity Log entries.
|
|
78
85
|
|
|
79
86
|
- Scenario B: append `Import Issue`
|
|
@@ -91,6 +98,7 @@ Update `.agents/workspace/active/{task-id}/task.md`:
|
|
|
91
98
|
- `current_step`: requirement-analysis
|
|
92
99
|
- `assigned_to`: {current AI agent}
|
|
93
100
|
- `updated_at`: {current time}
|
|
101
|
+
- `agent_infra_version`: value from `.agents/rules/version-stamp.md`
|
|
94
102
|
- `## Context` -> `- **Branch**:`: update it to the generated branch name
|
|
95
103
|
- **Append** to `## Activity Log` (do NOT overwrite previous entries):
|
|
96
104
|
```
|
|
@@ -162,6 +170,8 @@ Next step - run requirements analysis:
|
|
|
162
170
|
|
|
163
171
|
After completing the checklist, **stop immediately**. Do not continue to later steps.
|
|
164
172
|
|
|
173
|
+
Version stamp rule: when creating or updating `task.md` frontmatter, read `.agents/rules/version-stamp.md` first and write or refresh `agent_infra_version`.
|
|
174
|
+
|
|
165
175
|
## Notes
|
|
166
176
|
|
|
167
177
|
1. **Issue validation**: verify that the Issue exists before continuing
|
|
@@ -69,11 +69,18 @@ workflow: feature-development|bug-fix|refactoring
|
|
|
69
69
|
status: active
|
|
70
70
|
created_at: {YYYY-MM-DD HH:mm:ss±HH:MM}
|
|
71
71
|
updated_at: {YYYY-MM-DD HH:mm:ss±HH:MM}
|
|
72
|
+
agent_infra_version: {agent_infra_version}
|
|
72
73
|
created_by: human
|
|
74
|
+
priority: # 可选;有来源/frontmatter 值时保留
|
|
75
|
+
effort: # 可选;有来源/frontmatter 值时保留
|
|
76
|
+
start_date: # 可选;有明确 YYYY-MM-DD 时保留
|
|
77
|
+
target_date: # 可选;有明确 YYYY-MM-DD 时保留
|
|
73
78
|
current_step: requirement-analysis
|
|
74
79
|
assigned_to: {当前 AI 代理}
|
|
75
80
|
```
|
|
76
81
|
|
|
82
|
+
可选 Issue 字段元数据应保留恢复得到或来源中明确给出的值。缺失时留空;不要臆测日期。
|
|
83
|
+
|
|
77
84
|
3.3 追加 Activity Log。
|
|
78
85
|
|
|
79
86
|
- 场景 B:追加 `Import Issue`
|
|
@@ -91,6 +98,7 @@ date "+%Y-%m-%d %H:%M:%S%:z"
|
|
|
91
98
|
- `current_step`:requirement-analysis
|
|
92
99
|
- `assigned_to`:{当前 AI 代理}
|
|
93
100
|
- `updated_at`:{当前时间}
|
|
101
|
+
- `agent_infra_version`:按 `.agents/rules/version-stamp.md` 取值
|
|
94
102
|
- `## 上下文` 中的 `- **分支**:`:更新为生成的分支名
|
|
95
103
|
- **追加**到 `## Activity Log`(不要覆盖之前的记录):
|
|
96
104
|
```
|
|
@@ -162,6 +170,8 @@ Issue #{number} 已导入。
|
|
|
162
170
|
|
|
163
171
|
完成检查清单后,**立即停止**。不要继续执行后续步骤。
|
|
164
172
|
|
|
173
|
+
版本戳规则:创建或更新 `task.md` frontmatter 时,先读取 `.agents/rules/version-stamp.md`,并写入或刷新 `agent_infra_version`。
|
|
174
|
+
|
|
165
175
|
## 注意事项
|
|
166
176
|
|
|
167
177
|
1. **Issue 验证**:在继续之前检查 Issue 是否存在
|
|
@@ -11,6 +11,8 @@ description: "Design a technical plan for a task"
|
|
|
11
11
|
- This is a **mandatory human review checkpoint**; do not automatically proceed to implementation
|
|
12
12
|
- After executing this skill, you **must** immediately update task status in task.md
|
|
13
13
|
|
|
14
|
+
Version stamp rule: when creating or updating `task.md` frontmatter, read `.agents/rules/version-stamp.md` first and write or refresh `agent_infra_version`.
|
|
15
|
+
|
|
14
16
|
## Steps
|
|
15
17
|
|
|
16
18
|
### 1. Verify Prerequisites
|
|
@@ -88,6 +90,7 @@ Update `.agents/workspace/active/{task-id}/task.md`:
|
|
|
88
90
|
- `current_step`: technical-design
|
|
89
91
|
- `assigned_to`: {current AI agent}
|
|
90
92
|
- `updated_at`: {current time}
|
|
93
|
+
- `agent_infra_version`: value from `.agents/rules/version-stamp.md`
|
|
91
94
|
- Record the plan artifact for this round: `{plan-artifact}` (Round `{plan-round}`)
|
|
92
95
|
- If the task template contains a `## Design` section, update it to link to `{plan-artifact}`
|
|
93
96
|
- Mark technical-design as complete in workflow progress and include the actual round when the task template supports it
|
|
@@ -11,6 +11,8 @@ description: "为任务设计技术方案和实施计划"
|
|
|
11
11
|
- 这是一个**强制性的人工审查检查点** —— 不要自动进入实现阶段
|
|
12
12
|
- 执行本技能后,你**必须**立即更新 task.md 中的任务状态
|
|
13
13
|
|
|
14
|
+
版本戳规则:创建或更新 `task.md` frontmatter 时,先读取 `.agents/rules/version-stamp.md`,并写入或刷新 `agent_infra_version`。
|
|
15
|
+
|
|
14
16
|
## 执行步骤
|
|
15
17
|
|
|
16
18
|
### 1. 验证前置条件
|
|
@@ -88,6 +90,7 @@ date "+%Y-%m-%d %H:%M:%S%:z"
|
|
|
88
90
|
- `current_step`:technical-design
|
|
89
91
|
- `assigned_to`:{当前 AI 代理}
|
|
90
92
|
- `updated_at`:{当前时间}
|
|
93
|
+
- `agent_infra_version`:按 `.agents/rules/version-stamp.md` 取值
|
|
91
94
|
- 记录本轮方案产物:`{plan-artifact}`(Round `{plan-round}`)
|
|
92
95
|
- 如任务模板包含 `## 设计` 段落,更新为指向 `{plan-artifact}` 的链接
|
|
93
96
|
- 在工作流进度中标记 technical-design 为已完成,并注明实际轮次(如果任务模板支持)
|
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
"status",
|
|
10
10
|
"created_at",
|
|
11
11
|
"updated_at",
|
|
12
|
+
"agent_infra_version",
|
|
12
13
|
"current_step",
|
|
13
14
|
"assigned_to"
|
|
14
15
|
],
|
|
@@ -38,6 +39,7 @@
|
|
|
38
39
|
"verify_comment_content": true,
|
|
39
40
|
"verify_task_comment_content": true,
|
|
40
41
|
"verify_issue_type": true,
|
|
42
|
+
"verify_issue_fields": false,
|
|
41
43
|
"verify_milestone": true,
|
|
42
44
|
"expected_status_label_key": "pendingDesignWork",
|
|
43
45
|
"expected_comment_marker_key": "artifact"
|
|
@@ -10,9 +10,20 @@ Fix review findings and produce `refinement.md` or `refinement-r{N}.md`.
|
|
|
10
10
|
## Boundary / Critical Rules
|
|
11
11
|
|
|
12
12
|
- Fix only the issues documented in review artifacts
|
|
13
|
+
- env-blocked findings are outside the repair scope: the refinement report must preserve them and record "outside AI repair scope (environment-blocked)" instead of making no-op edits to clear the report
|
|
13
14
|
- Never auto-run `git add` or `git commit`
|
|
14
15
|
- After executing this skill, you **must** immediately update task.md
|
|
15
16
|
|
|
17
|
+
Version stamp rule: when creating or updating `task.md` frontmatter, read `.agents/rules/version-stamp.md` first and write or refresh `agent_infra_version`.
|
|
18
|
+
|
|
19
|
+
## Common Rationalizations and Rebuttals
|
|
20
|
+
|
|
21
|
+
| Rationalization | Rebuttal |
|
|
22
|
+
|------|------|
|
|
23
|
+
| "This review comment is wrong, so I will ignore it." | If you disagree, record the reason under unresolved issues in the report; do not silently skip blocker or major findings. |
|
|
24
|
+
| "I can clean up nearby code while I am here." | Scope is limited to review findings; changes outside that scope are out of bounds. |
|
|
25
|
+
| "Clearing env-blocked items makes the report look better." | env-blocked findings are outside the repair scope; preserve and label them truthfully, and never use no-op edits to pad the fix count. |
|
|
26
|
+
|
|
16
27
|
## Steps
|
|
17
28
|
|
|
18
29
|
### 1. Verify Prerequisites
|
|
@@ -56,8 +67,11 @@ date "+%Y-%m-%d %H:%M:%S%:z"
|
|
|
56
67
|
|
|
57
68
|
Update task.md:
|
|
58
69
|
- review the `## Requirements` section and only change items from `- [ ]` to `- [x]` when they are newly satisfied by this round's fixes and passing tests
|
|
70
|
+
- preserve explicit optional Issue field metadata (`priority`, `effort`, `start_date`, `target_date`); only infer `priority` or `effort` from clear review context, and do not invent dates
|
|
59
71
|
- append:
|
|
60
|
-
`- {YYYY-MM-DD HH:mm:ss±HH:MM} — **Refinement (Round {N}, for {review-artifact})** by {agent} — Fixed {n} blockers, {n} major, {n} minor issues → {refinement-artifact}`
|
|
72
|
+
`- {YYYY-MM-DD HH:mm:ss±HH:MM} — **Refinement (Round {N}, for {review-artifact})** by {agent} — Fixed {n} blockers, {n} major, {n} minor issues[, skipped {n} env-blocked] → {refinement-artifact}`
|
|
73
|
+
|
|
74
|
+
Append `, skipped {n} env-blocked` when env-blocked > 0; omit it when env-blocked = 0.
|
|
61
75
|
|
|
62
76
|
If task.md contains a valid `issue_number`, perform these sync actions (skip and continue on any failure):
|
|
63
77
|
- Read `.agents/rules/issue-sync.md` before syncing, and complete upstream repository detection plus permission detection
|
|
@@ -10,9 +10,20 @@ description: "处理代码审查反馈并修复问题"
|
|
|
10
10
|
## 行为边界 / 关键规则
|
|
11
11
|
|
|
12
12
|
- 只修复审查产物中记录的问题
|
|
13
|
+
- env-blocked 项不在修复范围内:refinement 报告必须如实保留这些项并记录“不在 AI 修复范围(环境性遗留)”,不能为了清空报告做 no-op 改动
|
|
13
14
|
- 绝不自动执行 `git add` 或 `git commit`
|
|
14
15
|
- 执行本技能后,你**必须**立即更新 task.md
|
|
15
16
|
|
|
17
|
+
版本戳规则:创建或更新 `task.md` frontmatter 时,先读取 `.agents/rules/version-stamp.md`,并写入或刷新 `agent_infra_version`。
|
|
18
|
+
|
|
19
|
+
## 常见违规借口与反驳
|
|
20
|
+
|
|
21
|
+
| 借口 | 反驳 |
|
|
22
|
+
|------|------|
|
|
23
|
+
| 「这条审查意见不合理,直接忽略」 | 不同意要在报告的未解决问题中写明理由,不能静默跳过 blocker/major。 |
|
|
24
|
+
| 「顺手把旁边也优化了」 | 范围严格限定在审查项内,范围外改动属于越界。 |
|
|
25
|
+
| 「env-blocked 项清掉报告好看」 | env-blocked 不在修复范围,必须如实保留并标注,禁止 no-op 改动充数。 |
|
|
26
|
+
|
|
16
27
|
## 执行步骤
|
|
17
28
|
|
|
18
29
|
### 1. 验证前置条件
|
|
@@ -56,8 +67,11 @@ date "+%Y-%m-%d %H:%M:%S%:z"
|
|
|
56
67
|
|
|
57
68
|
更新 task.md:
|
|
58
69
|
- 审查 `## 需求` 段落,仅把因本轮修复而新满足且有测试通过支撑的条目从 `- [ ]` 勾为 `- [x]`
|
|
70
|
+
- 保留明确填写的可选 Issue 字段元数据(`priority`、`effort`、`start_date`、`target_date`);仅在审查上下文非常明确时推断 `priority` 或 `effort`,不要臆测日期
|
|
59
71
|
- 追加:
|
|
60
|
-
`- {YYYY-MM-DD HH:mm:ss±HH:MM} — **Refinement (Round {N}, for {review-artifact})** by {agent} — Fixed {n} blockers, {n} major, {n} minor issues → {refinement-artifact}`
|
|
72
|
+
`- {YYYY-MM-DD HH:mm:ss±HH:MM} — **Refinement (Round {N}, for {review-artifact})** by {agent} — Fixed {n} blockers, {n} major, {n} minor issues[, skipped {n} env-blocked] → {refinement-artifact}`
|
|
73
|
+
|
|
74
|
+
env-blocked > 0 时附加 `, skipped {n} env-blocked`;env-blocked = 0 时省略。
|
|
61
75
|
|
|
62
76
|
如果 task.md 中存在有效的 `issue_number`,执行以下同步操作(任一失败则跳过并继续):
|
|
63
77
|
- 执行前先读取 `.agents/rules/issue-sync.md`,完成 upstream 仓库检测和权限检测
|
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
"status",
|
|
10
10
|
"created_at",
|
|
11
11
|
"updated_at",
|
|
12
|
+
"agent_infra_version",
|
|
12
13
|
"current_step",
|
|
13
14
|
"assigned_to"
|
|
14
15
|
]
|
|
@@ -32,6 +33,7 @@
|
|
|
32
33
|
"verify_comment_content": true,
|
|
33
34
|
"verify_task_comment_content": true,
|
|
34
35
|
"verify_issue_type": true,
|
|
36
|
+
"verify_issue_fields": false,
|
|
35
37
|
"verify_milestone": true,
|
|
36
38
|
"expected_status_label_key": "inProgress",
|
|
37
39
|
"expected_comment_marker_key": "artifact"
|
|
@@ -20,6 +20,14 @@ Detailed priority rules:
|
|
|
20
20
|
- Minor issues are optional only after Blockers and Majors are resolved
|
|
21
21
|
- If you disagree with a finding, record that disagreement under unresolved issues instead of silently skipping it
|
|
22
22
|
|
|
23
|
+
### Meta-category: env-blocked
|
|
24
|
+
|
|
25
|
+
env-blocked findings are outside the repair scope. Handling rules:
|
|
26
|
+
- do not write code changes for these findings
|
|
27
|
+
- list them unchanged in the refinement report's "Environment-Blocked Handling" section and mark them "outside AI repair scope"
|
|
28
|
+
- do not repeat them under unresolved issues, to avoid visually double-counting them
|
|
29
|
+
- their destination is the PR description, where maintainers carry them as a "manual verification required" checklist
|
|
30
|
+
|
|
23
31
|
## Execute the Fixes
|
|
24
32
|
|
|
25
33
|
For each fix:
|
|
@@ -51,6 +59,7 @@ Refinement status:
|
|
|
51
59
|
- Blockers fixed: {fixed-blockers}/{total-blockers}
|
|
52
60
|
- Major issues fixed: {fixed-majors}/{total-majors}
|
|
53
61
|
- Minor issues fixed: {fixed-minors}/{total-minors}
|
|
62
|
+
- [If env-blocked > 0] env-blocked skipped: {count}
|
|
54
63
|
- All tests passing: {yes/no}
|
|
55
64
|
- Review input: {review-artifact}
|
|
56
65
|
- Refinement artifact: {refinement-artifact}
|
|
@@ -20,6 +20,14 @@
|
|
|
20
20
|
- 只有在 Blocker 和 Major 都解决后,Minor 才是可选项
|
|
21
21
|
- 如果你不同意某条审查意见,不要静默跳过,而是把分歧记录到 unresolved issues
|
|
22
22
|
|
|
23
|
+
### 元类目:env-blocked
|
|
24
|
+
|
|
25
|
+
env-blocked 项不在修复范围。处理规则:
|
|
26
|
+
- 不要为这些项编写代码改动
|
|
27
|
+
- 在 refinement 报告的「环境性遗留处理」段落原样列出,标注「不在 AI 修复范围」
|
|
28
|
+
- 不要在 unresolved 段落里重复列出(避免视觉计数翻倍)
|
|
29
|
+
- 这些项的去向:维护者在 PR description 中以「待人工验证」清单承接
|
|
30
|
+
|
|
23
31
|
## 执行修复
|
|
24
32
|
|
|
25
33
|
对每一项修复:
|
|
@@ -51,6 +59,7 @@
|
|
|
51
59
|
- 阻塞项修复:{数量}/{总数}
|
|
52
60
|
- 主要问题修复:{数量}/{总数}
|
|
53
61
|
- 次要问题修复:{数量}/{总数}
|
|
62
|
+
- [如 env-blocked > 0] 环境性遗留跳过:{数量}
|
|
54
63
|
- 所有测试通过:{是/否}
|
|
55
64
|
- 审查输入:{review-artifact}
|
|
56
65
|
- 修复产物:{refinement-artifact}
|
|
@@ -29,6 +29,17 @@ Use this structure when writing `refinement.md` or `refinement-r{N}.md`.
|
|
|
29
29
|
1. **{issue-title}**
|
|
30
30
|
- **Fix**: {what changed}
|
|
31
31
|
|
|
32
|
+
#### Environment-Blocked Handling
|
|
33
|
+
|
|
34
|
+
> These findings are outside AI repair scope and do not count toward repair totals. Preserve them unchanged and identify the maintainer verification path.
|
|
35
|
+
|
|
36
|
+
1. **{issue-title}**
|
|
37
|
+
- **Status**: skipped (outside AI repair scope)
|
|
38
|
+
- **Required Environment**: {e.g. Docker sandbox / macOS host / third-party account}
|
|
39
|
+
- **Maintainer Verification Steps**: {steps}
|
|
40
|
+
|
|
41
|
+
> If this round has no env-blocked findings, keep the subsection heading and write "None".
|
|
42
|
+
|
|
32
43
|
#### Unresolved Issues
|
|
33
44
|
- {issue}: {reason}
|
|
34
45
|
|
|
@@ -29,6 +29,17 @@
|
|
|
29
29
|
1. **{issue-title}**
|
|
30
30
|
- **修复**: {what changed}
|
|
31
31
|
|
|
32
|
+
#### 环境性遗留处理
|
|
33
|
+
|
|
34
|
+
> 这些项不在 AI 修复范围;不计入修复总数。仅原样保留并指明维护者后续验证路径。
|
|
35
|
+
|
|
36
|
+
1. **{issue-title}**
|
|
37
|
+
- **状态**:跳过(不在 AI 修复范围)
|
|
38
|
+
- **所需环境**:{e.g. Docker 沙箱 / macOS host / 第三方账号}
|
|
39
|
+
- **维护者验证步骤**:{steps}
|
|
40
|
+
|
|
41
|
+
> 如本轮无 env-blocked 项,保留小节标题并写「(无)」。
|
|
42
|
+
|
|
32
43
|
#### 未解决问题
|
|
33
44
|
- {issue}: {reason}
|
|
34
45
|
|
|
@@ -14,6 +14,8 @@ Restore local task workspace files from platform Issue comments that contain syn
|
|
|
14
14
|
- Stop immediately if the target directory already exists and ask the user to resolve the conflict first
|
|
15
15
|
- After executing this skill, you **must** immediately update the restored `task.md`
|
|
16
16
|
|
|
17
|
+
Version stamp rule: when creating or updating `task.md` frontmatter, read `.agents/rules/version-stamp.md` first and write or refresh `agent_infra_version`.
|
|
18
|
+
|
|
17
19
|
## Steps
|
|
18
20
|
|
|
19
21
|
### 1. Verify Input and Environment
|
|
@@ -83,6 +85,7 @@ Update the restored `task.md`:
|
|
|
83
85
|
- `status`: `active`
|
|
84
86
|
- `assigned_to`: {current AI agent}
|
|
85
87
|
- `updated_at`: {current time}
|
|
88
|
+
- `agent_infra_version`: value from `.agents/rules/version-stamp.md`
|
|
86
89
|
|
|
87
90
|
Append an Activity Log entry indicating the task was restored from the platform Issue.
|
|
88
91
|
|
|
@@ -14,6 +14,8 @@ description: "从平台 Issue 评论还原本地任务文件"
|
|
|
14
14
|
- 如果目标目录已存在,立即停止并提示用户先处理目录冲突
|
|
15
15
|
- 执行本技能后,你**必须**立即更新恢复出的 `task.md`
|
|
16
16
|
|
|
17
|
+
版本戳规则:创建或更新 `task.md` frontmatter 时,先读取 `.agents/rules/version-stamp.md`,并写入或刷新 `agent_infra_version`。
|
|
18
|
+
|
|
17
19
|
## 执行步骤
|
|
18
20
|
|
|
19
21
|
### 1. 验证输入与环境
|
|
@@ -83,6 +85,7 @@ date "+%Y-%m-%d %H:%M:%S%:z"
|
|
|
83
85
|
- `status`:`active`
|
|
84
86
|
- `assigned_to`:{当前 AI 代理}
|
|
85
87
|
- `updated_at`:{当前时间}
|
|
88
|
+
- `agent_infra_version`:按 `.agents/rules/version-stamp.md` 取值
|
|
86
89
|
|
|
87
90
|
追加 Activity Log,说明任务已从平台 Issue 还原。
|
|
88
91
|
|
|
@@ -12,6 +12,16 @@ Review the latest implementation round and produce `review.md` or `review-r{N}.m
|
|
|
12
12
|
- This skill reviews code and writes a report; it does not modify product code
|
|
13
13
|
- After executing this skill, you **must** immediately update task.md
|
|
14
14
|
|
|
15
|
+
Version stamp rule: when creating or updating `task.md` frontmatter, read `.agents/rules/version-stamp.md` first and write or refresh `agent_infra_version`.
|
|
16
|
+
|
|
17
|
+
## Common Rationalizations and Rebuttals
|
|
18
|
+
|
|
19
|
+
| Rationalization | Rebuttal |
|
|
20
|
+
|------|------|
|
|
21
|
+
| "It was only one line, so it cannot affect behavior." | Line count is not impact; read the full `git diff` and trace the downstream effect of each change. |
|
|
22
|
+
| "It looks mostly fine, so approve it." | The verdict must be backed by blocker/major/minor counts, and every finding must cite file:line; do not approve from impression. |
|
|
23
|
+
| "The test change looks reasonable, so I can skim it." | Before reviewing test changes, check `.agents/rules/testing-discipline.md` item by item (see the step 4 gate). |
|
|
24
|
+
|
|
15
25
|
## Steps
|
|
16
26
|
|
|
17
27
|
### 1. Verify Prerequisites
|
|
@@ -35,6 +45,7 @@ Read the highest-round implementation artifact and, if present, the highest-roun
|
|
|
35
45
|
Follow `.agents/workflows/feature-development.yaml` and inspect `git diff` for the full change context.
|
|
36
46
|
|
|
37
47
|
> Detailed review criteria, severity rules, and reviewer expectations live in `reference/review-criteria.md`. Read `reference/review-criteria.md` before reviewing.
|
|
48
|
+
> Test review gate: when `git diff` touches test files, read `.agents/rules/testing-discipline.md` first and check it item by item, especially "do not add negative assertions when a positive assertion already covers the behavior".
|
|
38
49
|
|
|
39
50
|
### 5. Write the Review Report
|
|
40
51
|
|
|
@@ -51,7 +62,9 @@ date "+%Y-%m-%d %H:%M:%S%:z"
|
|
|
51
62
|
```
|
|
52
63
|
|
|
53
64
|
Update task.md and append:
|
|
54
|
-
`- {YYYY-MM-DD HH:mm:ss±HH:MM} — **Code Review (Round {N})** by {agent} — Verdict: {Approved/Changes Requested/Rejected}, blockers: {n}, major: {n}, minor: {n} → {artifact-filename}`
|
|
65
|
+
`- {YYYY-MM-DD HH:mm:ss±HH:MM} — **Code Review (Round {N})** by {agent} — Verdict: {Approved/Changes Requested/Rejected}, blockers: {n}, major: {n}, minor: {n}[ (+ {n} env-blocked)] → {artifact-filename}`
|
|
66
|
+
|
|
67
|
+
Omit the bracketed segment when env-blocked = 0; append ` (+ {n} env-blocked)` when env-blocked > 0.
|
|
55
68
|
|
|
56
69
|
If task.md contains a valid `issue_number`, perform these sync actions (skip and continue on any failure):
|
|
57
70
|
- Read `.agents/rules/issue-sync.md` before syncing, and complete upstream repository detection plus permission detection
|
|
@@ -84,6 +97,8 @@ Choose exactly one branch based on the findings:
|
|
|
84
97
|
- blockers that can be fixed in a focused pass -> changes requested
|
|
85
98
|
- major redesign or re-implementation needed -> rejected
|
|
86
99
|
|
|
100
|
+
env-blocked counts do not influence branch selection; they are appended to the summary line only.
|
|
101
|
+
|
|
87
102
|
> The full four-branch output templates, selection rules, and prohibition clauses live in `reference/output-templates.md`. Read `reference/output-templates.md` before reporting the review result.
|
|
88
103
|
|
|
89
104
|
Include all TUI command formats in the next-step output. 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).
|
|
@@ -12,6 +12,16 @@ description: "审查任务实现并输出代码审查报告"
|
|
|
12
12
|
- 本技能只审查代码并写报告,不修改业务代码
|
|
13
13
|
- 执行本技能后,你**必须**立即更新 task.md
|
|
14
14
|
|
|
15
|
+
版本戳规则:创建或更新 `task.md` frontmatter 时,先读取 `.agents/rules/version-stamp.md`,并写入或刷新 `agent_infra_version`。
|
|
16
|
+
|
|
17
|
+
## 常见违规借口与反驳
|
|
18
|
+
|
|
19
|
+
| 借口 | 反驳 |
|
|
20
|
+
|------|------|
|
|
21
|
+
| 「只改了一行,不影响功能」 | 行数不等于影响面;必须读完整 `git diff` 并定位每处改动的下游效果。 |
|
|
22
|
+
| 「大体没问题,给个 Approved」 | 结论必须由 blocker/major/minor 计数支撑,每个问题引用文件:行号,不能凭印象放行。 |
|
|
23
|
+
| 「测试改动看着合理,跳过细看」 | 审查测试变更前必须逐条核对 `.agents/rules/testing-discipline.md`(见步骤 4 门禁)。 |
|
|
24
|
+
|
|
15
25
|
## 执行步骤
|
|
16
26
|
|
|
17
27
|
### 1. 验证前置条件
|
|
@@ -35,6 +45,7 @@ description: "审查任务实现并输出代码审查报告"
|
|
|
35
45
|
遵循 `.agents/workflows/feature-development.yaml`,并同时检查 `git diff` 获取完整变更上下文。
|
|
36
46
|
|
|
37
47
|
> 详细审查标准、严重程度划分和 reviewer 关注点见 `reference/review-criteria.md`。执行此步骤前先读取 `reference/review-criteria.md`。
|
|
48
|
+
> 测试审查硬门禁:当 `git diff` 触及测试文件时,必须先读取 `.agents/rules/testing-discipline.md` 并逐条核对(尤其"正向已覆盖时不应再加反向断言")。
|
|
38
49
|
|
|
39
50
|
### 5. 编写审查报告
|
|
40
51
|
|
|
@@ -51,7 +62,9 @@ date "+%Y-%m-%d %H:%M:%S%:z"
|
|
|
51
62
|
```
|
|
52
63
|
|
|
53
64
|
更新 task.md,并追加:
|
|
54
|
-
`- {YYYY-MM-DD HH:mm:ss±HH:MM} — **Code Review (Round {N})** by {agent} — Verdict: {Approved/Changes Requested/Rejected}, blockers: {n}, major: {n}, minor: {n} → {artifact-filename}`
|
|
65
|
+
`- {YYYY-MM-DD HH:mm:ss±HH:MM} — **Code Review (Round {N})** by {agent} — Verdict: {Approved/Changes Requested/Rejected}, blockers: {n}, major: {n}, minor: {n}[ (+ {n} env-blocked)] → {artifact-filename}`
|
|
66
|
+
|
|
67
|
+
env-blocked = 0 时省略括号部分;env-blocked > 0 时附加 ` (+ {n} env-blocked)`。
|
|
55
68
|
|
|
56
69
|
如果 task.md 中存在有效的 `issue_number`,执行以下同步操作(任一失败则跳过并继续):
|
|
57
70
|
- 执行前先读取 `.agents/rules/issue-sync.md`,完成 upstream 仓库检测和权限检测
|
|
@@ -84,6 +97,8 @@ node .agents/scripts/validate-artifact.js gate review-task .agents/workspace/act
|
|
|
84
97
|
- 有 blocker,且可集中修复 -> 需要修改
|
|
85
98
|
- 需要重大返工或重新实现 -> 拒绝
|
|
86
99
|
|
|
100
|
+
env-blocked 的数量不参与分支选择,仅在数字摘要末尾附带显示。
|
|
101
|
+
|
|
87
102
|
> 完整的 4 分支输出模板、判断规则和禁止条款见 `reference/output-templates.md`。向用户汇报审查结论前先读取 `reference/output-templates.md`。
|
|
88
103
|
|
|
89
104
|
向用户展示下一步时,必须包含所有 TUI 命令格式。如果 `.agents/.airc.json` 中配置了自定义 TUI(`customTUIs`),读取每个工具的 `name` 和 `invoke`,按同样格式补充对应命令行(`${skillName}` 替换为技能名,`${projectName}` 替换为项目名)。
|
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
"status",
|
|
10
10
|
"created_at",
|
|
11
11
|
"updated_at",
|
|
12
|
+
"agent_infra_version",
|
|
12
13
|
"current_step",
|
|
13
14
|
"assigned_to"
|
|
14
15
|
]
|
|
@@ -18,6 +19,7 @@
|
|
|
18
19
|
"required_sections": [
|
|
19
20
|
"审查摘要",
|
|
20
21
|
"问题清单",
|
|
22
|
+
"环境性遗留",
|
|
21
23
|
"结论与建议"
|
|
22
24
|
],
|
|
23
25
|
"required_patterns": [
|
|
@@ -36,6 +38,7 @@
|
|
|
36
38
|
"verify_comment_content": true,
|
|
37
39
|
"verify_task_comment_content": true,
|
|
38
40
|
"verify_issue_type": true,
|
|
41
|
+
"verify_issue_fields": false,
|
|
39
42
|
"verify_milestone": true,
|
|
40
43
|
"expected_status_label_key": "inProgress",
|
|
41
44
|
"expected_comment_marker_key": "artifact"
|
|
@@ -4,8 +4,8 @@ Read this file before presenting the final review result to the user.
|
|
|
4
4
|
|
|
5
5
|
## Choose Exactly One Output Branch
|
|
6
6
|
|
|
7
|
-
Apply these rules in order:
|
|
8
|
-
1. if `Blocker = 0` and `Major = 0` and `Minor = 0`, use Branch A
|
|
7
|
+
Apply these rules in order (**note: env-blocked counts do not participate in selection**):
|
|
8
|
+
1. if `Blocker = 0` and `Major = 0` and `Minor = 0`, use Branch A (regardless of whether env-blocked > 0)
|
|
9
9
|
2. if `Blocker = 0` and (`Major > 0` or `Minor > 0`), use Branch B
|
|
10
10
|
3. if `Blocker > 0` and the work can be repaired in a focused refinement pass, use Branch C
|
|
11
11
|
4. if the task requires major redesign, broad reimplementation, or a restart, use Branch D
|
|
@@ -14,25 +14,30 @@ Prohibitions:
|
|
|
14
14
|
- never skip the branch-selection step
|
|
15
15
|
- never mix text from different branches
|
|
16
16
|
- if `Blocker > 0`, never output an approval template
|
|
17
|
+
- never count env-blocked findings as blockers / major issues / minor issues, and never use them to trigger Branch B/C/D
|
|
17
18
|
- always include every TUI command format in the selected branch
|
|
18
19
|
|
|
19
20
|
### Branch A: Approved with No Findings
|
|
20
21
|
|
|
21
22
|
```text
|
|
22
23
|
Task {task-id} review completed. Verdict: approved.
|
|
23
|
-
- Blockers: 0 | Major: 0 | Minor: 0
|
|
24
|
+
- Blockers: 0 | Major: 0 | Minor: 0[ | env-blocked: {n} (outside AI repair scope)]
|
|
25
|
+
[- Review report: .agents/workspace/active/{task-id}/{review-artifact}]
|
|
24
26
|
|
|
25
27
|
Next step - commit the code:
|
|
26
28
|
- Claude Code / OpenCode: /commit
|
|
27
29
|
- Gemini CLI: /agent-infra:commit
|
|
28
30
|
- Codex CLI: $commit
|
|
31
|
+
|
|
32
|
+
[When env-blocked > 0, append this final line:]
|
|
33
|
+
Reminder: env-blocked findings must be carried in the PR description as a "manual verification required" checklist and should not trigger /refine-task.
|
|
29
34
|
```
|
|
30
35
|
|
|
31
36
|
### Branch B: Approved with Findings
|
|
32
37
|
|
|
33
38
|
```text
|
|
34
39
|
Task {task-id} review completed. Verdict: approved.
|
|
35
|
-
- Blockers: 0 | Major: {n} | Minor: {n}
|
|
40
|
+
- Blockers: 0 | Major: {n} | Minor: {n}[ | env-blocked: {n} (outside AI repair scope)]
|
|
36
41
|
- Review report: .agents/workspace/active/{task-id}/{review-artifact}
|
|
37
42
|
|
|
38
43
|
Next step - refine before commit (recommended):
|
|
@@ -44,29 +49,39 @@ Or commit directly (skip refinement):
|
|
|
44
49
|
- Claude Code / OpenCode: /commit
|
|
45
50
|
- Gemini CLI: /agent-infra:commit
|
|
46
51
|
- Codex CLI: $commit
|
|
52
|
+
|
|
53
|
+
[When env-blocked > 0, append this final line:]
|
|
54
|
+
Reminder: env-blocked findings must be carried in the PR description as a "manual verification required" checklist and should not trigger /refine-task.
|
|
47
55
|
```
|
|
48
56
|
|
|
49
57
|
### Branch C: Changes Requested
|
|
50
58
|
|
|
51
59
|
```text
|
|
52
60
|
Task {task-id} review completed. Verdict: changes requested.
|
|
53
|
-
- Blockers: {n} | Major: {n} | Minor: {n}
|
|
61
|
+
- Blockers: {n} | Major: {n} | Minor: {n}[ | env-blocked: {n} (outside AI repair scope)]
|
|
54
62
|
- Review report: .agents/workspace/active/{task-id}/{review-artifact}
|
|
55
63
|
|
|
56
64
|
Next step - fix the findings:
|
|
57
65
|
- Claude Code / OpenCode: /refine-task {task-id}
|
|
58
66
|
- Gemini CLI: /agent-infra:refine-task {task-id}
|
|
59
67
|
- Codex CLI: $refine-task {task-id}
|
|
68
|
+
|
|
69
|
+
[When env-blocked > 0, append this final line:]
|
|
70
|
+
Reminder: env-blocked findings must be carried in the PR description as a "manual verification required" checklist and should not trigger /refine-task.
|
|
60
71
|
```
|
|
61
72
|
|
|
62
73
|
### Branch D: Rejected
|
|
63
74
|
|
|
64
75
|
```text
|
|
65
76
|
Task {task-id} review completed. Verdict: rejected, major rework required.
|
|
77
|
+
- Blockers: {n} | Major: {n} | Minor: {n}[ | env-blocked: {n} (outside AI repair scope)]
|
|
66
78
|
- Review report: .agents/workspace/active/{task-id}/{review-artifact}
|
|
67
79
|
|
|
68
80
|
Next step - re-implement:
|
|
69
81
|
- Claude Code / OpenCode: /implement-task {task-id}
|
|
70
82
|
- Gemini CLI: /agent-infra:implement-task {task-id}
|
|
71
83
|
- Codex CLI: $implement-task {task-id}
|
|
84
|
+
|
|
85
|
+
[When env-blocked > 0, append this final line:]
|
|
86
|
+
Reminder: env-blocked findings must be carried in the PR description as a "manual verification required" checklist and should not trigger /refine-task.
|
|
72
87
|
```
|
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
|
|
5
5
|
## 选择唯一输出场景
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
1. 如果 `Blocker = 0` 且 `Major = 0` 且 `Minor = 0`,使用场景 A
|
|
7
|
+
按以下顺序判断(**注意:env-blocked 数量不参与判断**):
|
|
8
|
+
1. 如果 `Blocker = 0` 且 `Major = 0` 且 `Minor = 0`,使用场景 A(不管 env-blocked 是否 > 0)
|
|
9
9
|
2. 如果 `Blocker = 0` 且(`Major > 0` 或 `Minor > 0`),使用场景 B
|
|
10
10
|
3. 如果 `Blocker > 0`,且问题可以通过一次聚焦修复解决,使用场景 C
|
|
11
11
|
4. 如果任务需要重大重构、大范围重写或整体重来,使用场景 D
|
|
@@ -14,25 +14,30 @@
|
|
|
14
14
|
- 不要跳过场景判断步骤
|
|
15
15
|
- 不要混用不同场景的文案
|
|
16
16
|
- 只要 `Blocker > 0`,就绝对不能输出通过模板
|
|
17
|
+
- env-blocked 项绝对不能被计入 blocker / major / minor 计数,也不能用作触发场景 B/C/D 的依据
|
|
17
18
|
- 所选场景中必须包含所有 TUI 命令格式
|
|
18
19
|
|
|
19
20
|
### 场景 A:通过且无问题
|
|
20
21
|
|
|
21
22
|
```text
|
|
22
23
|
任务 {task-id} 代码审查完成。结论:通过。
|
|
23
|
-
- 阻塞项:0 | 主要问题:0 | 次要问题:0
|
|
24
|
+
- 阻塞项:0 | 主要问题:0 | 次要问题:0[ | 环境性遗留:{n}(不在 AI 修复范围)]
|
|
25
|
+
[- 审查报告:.agents/workspace/active/{task-id}/{review-artifact}]
|
|
24
26
|
|
|
25
27
|
下一步 - 提交代码:
|
|
26
28
|
- Claude Code / OpenCode:/commit
|
|
27
29
|
- Gemini CLI:/agent-infra:commit
|
|
28
30
|
- Codex CLI:$commit
|
|
31
|
+
|
|
32
|
+
[当 env-blocked > 0 时,在最后附加一行:]
|
|
33
|
+
提醒:env-blocked 项需在 PR description 的「待人工验证」清单中承接,不应触发 /refine-task。
|
|
29
34
|
```
|
|
30
35
|
|
|
31
36
|
### 场景 B:通过但有问题
|
|
32
37
|
|
|
33
38
|
```text
|
|
34
39
|
任务 {task-id} 代码审查完成。结论:通过。
|
|
35
|
-
- 阻塞项:0 | 主要问题:{n} | 次要问题:{n}
|
|
40
|
+
- 阻塞项:0 | 主要问题:{n} | 次要问题:{n}[ | 环境性遗留:{n}(不在 AI 修复范围)]
|
|
36
41
|
- 审查报告:.agents/workspace/active/{task-id}/{review-artifact}
|
|
37
42
|
|
|
38
43
|
下一步 - 修复问题后提交(推荐):
|
|
@@ -44,29 +49,39 @@
|
|
|
44
49
|
- Claude Code / OpenCode:/commit
|
|
45
50
|
- Gemini CLI:/agent-infra:commit
|
|
46
51
|
- Codex CLI:$commit
|
|
52
|
+
|
|
53
|
+
[当 env-blocked > 0 时,在最后附加一行:]
|
|
54
|
+
提醒:env-blocked 项需在 PR description 的「待人工验证」清单中承接,不应触发 /refine-task。
|
|
47
55
|
```
|
|
48
56
|
|
|
49
57
|
### 场景 C:需要修改
|
|
50
58
|
|
|
51
59
|
```text
|
|
52
60
|
任务 {task-id} 代码审查完成。结论:需要修改。
|
|
53
|
-
- 阻塞项:{n} | 主要问题:{n} | 次要问题:{n}
|
|
61
|
+
- 阻塞项:{n} | 主要问题:{n} | 次要问题:{n}[ | 环境性遗留:{n}(不在 AI 修复范围)]
|
|
54
62
|
- 审查报告:.agents/workspace/active/{task-id}/{review-artifact}
|
|
55
63
|
|
|
56
64
|
下一步 - 修复问题:
|
|
57
65
|
- Claude Code / OpenCode:/refine-task {task-id}
|
|
58
66
|
- Gemini CLI:/agent-infra:refine-task {task-id}
|
|
59
67
|
- Codex CLI:$refine-task {task-id}
|
|
68
|
+
|
|
69
|
+
[当 env-blocked > 0 时,在最后附加一行:]
|
|
70
|
+
提醒:env-blocked 项需在 PR description 的「待人工验证」清单中承接,不应触发 /refine-task。
|
|
60
71
|
```
|
|
61
72
|
|
|
62
73
|
### 场景 D:拒绝
|
|
63
74
|
|
|
64
75
|
```text
|
|
65
76
|
任务 {task-id} 代码审查完成。结论:拒绝,需要重大返工。
|
|
77
|
+
- 阻塞项:{n} | 主要问题:{n} | 次要问题:{n}[ | 环境性遗留:{n}(不在 AI 修复范围)]
|
|
66
78
|
- 审查报告:.agents/workspace/active/{task-id}/{review-artifact}
|
|
67
79
|
|
|
68
80
|
下一步 - 重新实现:
|
|
69
81
|
- Claude Code / OpenCode:/implement-task {task-id}
|
|
70
82
|
- Gemini CLI:/agent-infra:implement-task {task-id}
|
|
71
83
|
- Codex CLI:$implement-task {task-id}
|
|
84
|
+
|
|
85
|
+
[当 env-blocked > 0 时,在最后附加一行:]
|
|
86
|
+
提醒:env-blocked 项需在 PR description 的「待人工验证」清单中承接,不应触发 /refine-task。
|
|
72
87
|
```
|