@fitlab-ai/agent-infra 0.7.6 → 0.7.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/bin/cli.ts +11 -3
- package/dist/bin/cli.js +10 -3
- package/dist/lib/sandbox/commands/ls.js +4 -33
- package/dist/lib/sandbox/commands/show.js +67 -0
- package/dist/lib/sandbox/index.js +7 -0
- package/dist/lib/task/commands/issue-body.js +94 -0
- package/dist/lib/task/commands/log.js +92 -9
- package/dist/lib/task/index.js +8 -0
- package/dist/lib/task/issue-form.js +66 -0
- package/dist/lib/task/sections.js +44 -0
- package/lib/sandbox/commands/ls.ts +4 -36
- package/lib/sandbox/commands/show.ts +80 -0
- package/lib/sandbox/index.ts +7 -0
- package/lib/task/commands/issue-body.ts +102 -0
- package/lib/task/commands/log.ts +96 -9
- package/lib/task/index.ts +8 -0
- package/lib/task/issue-form.ts +77 -0
- package/lib/task/sections.ts +44 -0
- package/package.json +3 -2
- package/templates/.agents/README.en.md +3 -1
- package/templates/.agents/README.zh-CN.md +3 -1
- package/templates/.agents/rules/create-issue.github.en.md +20 -29
- package/templates/.agents/rules/create-issue.github.zh-CN.md +20 -29
- package/templates/.agents/rules/issue-pr-commands.github.en.md +6 -0
- package/templates/.agents/rules/issue-pr-commands.github.zh-CN.md +6 -0
- package/templates/.agents/rules/next-step-output.en.md +26 -1
- package/templates/.agents/rules/next-step-output.zh-CN.md +26 -1
- package/templates/.agents/rules/task-management.en.md +2 -0
- package/templates/.agents/rules/task-management.zh-CN.md +2 -0
- package/templates/.agents/skills/analyze-task/SKILL.en.md +3 -1
- package/templates/.agents/skills/analyze-task/SKILL.zh-CN.md +3 -1
- package/templates/.agents/skills/archive-tasks/SKILL.en.md +3 -1
- package/templates/.agents/skills/archive-tasks/SKILL.zh-CN.md +3 -1
- package/templates/.agents/skills/block-task/SKILL.en.md +3 -1
- package/templates/.agents/skills/block-task/SKILL.zh-CN.md +3 -1
- package/templates/.agents/skills/cancel-task/SKILL.en.md +3 -1
- package/templates/.agents/skills/cancel-task/SKILL.zh-CN.md +3 -1
- package/templates/.agents/skills/check-task/SKILL.en.md +30 -81
- package/templates/.agents/skills/check-task/SKILL.zh-CN.md +30 -80
- package/templates/.agents/skills/close-codescan/SKILL.en.md +3 -1
- package/templates/.agents/skills/close-codescan/SKILL.zh-CN.md +3 -1
- package/templates/.agents/skills/close-dependabot/SKILL.en.md +3 -1
- package/templates/.agents/skills/close-dependabot/SKILL.zh-CN.md +3 -1
- package/templates/.agents/skills/code-task/SKILL.en.md +3 -1
- package/templates/.agents/skills/code-task/SKILL.zh-CN.md +3 -1
- package/templates/.agents/skills/code-task/reference/dual-mode.en.md +7 -2
- package/templates/.agents/skills/code-task/reference/dual-mode.zh-CN.md +7 -2
- package/templates/.agents/skills/code-task/scripts/detect-mode.js +6 -14
- package/templates/.agents/skills/commit/SKILL.en.md +27 -5
- package/templates/.agents/skills/commit/SKILL.zh-CN.md +27 -5
- package/templates/.agents/skills/complete-task/SKILL.en.md +3 -1
- package/templates/.agents/skills/complete-task/SKILL.zh-CN.md +3 -1
- package/templates/.agents/skills/create-pr/SKILL.en.md +3 -1
- package/templates/.agents/skills/create-pr/SKILL.zh-CN.md +3 -1
- package/templates/.agents/skills/create-release-note/SKILL.en.md +3 -1
- package/templates/.agents/skills/create-release-note/SKILL.zh-CN.md +3 -1
- package/templates/.agents/skills/create-task/SKILL.en.md +3 -1
- package/templates/.agents/skills/create-task/SKILL.zh-CN.md +3 -1
- package/templates/.agents/skills/import-codescan/SKILL.en.md +3 -1
- package/templates/.agents/skills/import-codescan/SKILL.zh-CN.md +3 -1
- package/templates/.agents/skills/import-dependabot/SKILL.en.md +3 -1
- package/templates/.agents/skills/import-dependabot/SKILL.zh-CN.md +3 -1
- package/templates/.agents/skills/import-issue/SKILL.en.md +19 -2
- package/templates/.agents/skills/import-issue/SKILL.zh-CN.md +19 -2
- package/templates/.agents/skills/init-labels/SKILL.en.md +3 -1
- package/templates/.agents/skills/init-labels/SKILL.zh-CN.md +3 -1
- package/templates/.agents/skills/init-milestones/SKILL.en.md +3 -1
- package/templates/.agents/skills/init-milestones/SKILL.zh-CN.md +3 -1
- package/templates/.agents/skills/plan-task/SKILL.en.md +3 -1
- package/templates/.agents/skills/plan-task/SKILL.zh-CN.md +3 -1
- package/templates/.agents/skills/post-release/SKILL.en.md +3 -1
- package/templates/.agents/skills/post-release/SKILL.zh-CN.md +3 -1
- package/templates/.agents/skills/refine-title/SKILL.en.md +3 -1
- package/templates/.agents/skills/refine-title/SKILL.zh-CN.md +3 -1
- package/templates/.agents/skills/release/SKILL.en.md +3 -1
- package/templates/.agents/skills/release/SKILL.zh-CN.md +3 -1
- package/templates/.agents/skills/restore-task/SKILL.en.md +3 -1
- package/templates/.agents/skills/restore-task/SKILL.zh-CN.md +3 -1
- package/templates/.agents/skills/review-analysis/SKILL.en.md +6 -2
- package/templates/.agents/skills/review-analysis/SKILL.zh-CN.md +6 -2
- package/templates/.agents/skills/review-analysis/reference/output-templates.en.md +1 -1
- package/templates/.agents/skills/review-analysis/reference/output-templates.zh-CN.md +1 -1
- package/templates/.agents/skills/review-analysis/reference/report-template.en.md +1 -1
- package/templates/.agents/skills/review-analysis/reference/report-template.zh-CN.md +1 -2
- package/templates/.agents/skills/review-code/SKILL.en.md +5 -2
- package/templates/.agents/skills/review-code/SKILL.zh-CN.md +5 -2
- package/templates/.agents/skills/review-code/reference/output-templates.en.md +1 -1
- package/templates/.agents/skills/review-code/reference/output-templates.zh-CN.md +1 -1
- package/templates/.agents/skills/review-code/reference/report-template.en.md +1 -1
- package/templates/.agents/skills/review-code/reference/report-template.zh-CN.md +1 -2
- package/templates/.agents/skills/review-plan/SKILL.en.md +6 -2
- package/templates/.agents/skills/review-plan/SKILL.zh-CN.md +6 -2
- package/templates/.agents/skills/review-plan/reference/output-templates.en.md +1 -1
- package/templates/.agents/skills/review-plan/reference/output-templates.zh-CN.md +1 -1
- package/templates/.agents/skills/review-plan/reference/report-template.en.md +1 -1
- package/templates/.agents/skills/review-plan/reference/report-template.zh-CN.md +1 -2
- package/templates/.agents/skills/test/SKILL.en.md +3 -1
- package/templates/.agents/skills/test/SKILL.zh-CN.md +1 -1
- package/templates/.agents/skills/test-integration/SKILL.en.md +3 -1
- package/templates/.agents/skills/test-integration/SKILL.zh-CN.md +3 -1
- package/templates/.agents/skills/update-agent-infra/SKILL.en.md +3 -1
- package/templates/.agents/skills/update-agent-infra/SKILL.zh-CN.md +3 -1
- package/templates/.agents/skills/upgrade-dependency/SKILL.en.md +3 -1
- package/templates/.agents/skills/upgrade-dependency/SKILL.zh-CN.md +3 -1
- package/templates/.agents/skills/watch-pr/SKILL.en.md +3 -1
- package/templates/.agents/skills/watch-pr/SKILL.zh-CN.md +3 -1
|
@@ -22,11 +22,11 @@
|
|
|
22
22
|
|
|
23
23
|
从 `task.md` 提取以下字段:
|
|
24
24
|
|
|
25
|
-
- 任务标题(首个 `# ` 标题,去掉 `任务:` / `Task:`
|
|
26
|
-
- `## Description` / `## 描述` 段落
|
|
27
|
-
- `## Requirements` / `## 需求` 段落
|
|
25
|
+
- 任务标题(首个 `# ` 标题,去掉 `任务:` / `Task:` 前缀)—— 用于构造 Issue 标题
|
|
28
26
|
- frontmatter 中的 `type` 与(可选的)`milestone`
|
|
29
27
|
|
|
28
|
+
> Issue **正文**不在此处手工提取。正文由 §3 调用 `ai task issue-body` 命令从 `## 描述` / `## 需求` 段确定性生成,调用方不得自行拼装。
|
|
29
|
+
|
|
30
30
|
构造 Issue 标题:
|
|
31
31
|
|
|
32
32
|
| task.md `type` | Conventional Commits type |
|
|
@@ -41,45 +41,35 @@ scope 推断:从 `.agents/.airc.json` 的 `labels.in` 字段读取已知模块
|
|
|
41
41
|
|
|
42
42
|
### 3. 构建 Issue 正文
|
|
43
43
|
|
|
44
|
+
> **机械化边界(必须遵守)**:Issue 正文一律由 `ai task issue-body` 命令确定性生成;调用方只把命令 stdout 作为 `gh issue create` 的 `--body-file` 传入,**不得**自行拼装、改写或截断正文。命令只输出 task 标题 / `## 描述` / `## 需求` 对应内容,task.md 其余脚手架段落永不进入 body。
|
|
45
|
+
|
|
44
46
|
Issue 模板检测:按 `.agents/rules/issue-pr-commands.md` 的 "Issue 模板检测" 规则扫描 `.github/ISSUE_TEMPLATE/*.yml`(排除 `config.yml`)。
|
|
45
47
|
|
|
46
48
|
#### 场景 A:检测到匹配模板
|
|
47
49
|
|
|
48
50
|
按模板顶层 `name` 与任务类型挑选最匹配的 form(如任务 `type: bugfix` 优先选名称含 `bug` 的模板);找不到匹配时,回退到通用 form(如 `other.yml`),仍找不到时取目录中第一个 form。
|
|
49
51
|
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
- `textarea` / `input` 字段:使用 `attributes.label` 作为 markdown 标题,从 task.md 取值
|
|
53
|
-
- `markdown` 字段:跳过(说明文案)
|
|
54
|
-
- `dropdown` / `checkboxes` 字段:跳过
|
|
52
|
+
确定模板文件 `{form-path}` 后,由命令按该 Issue Form 渲染最终正文,并写入正文文件 `{body-file}` 供 §5 使用:
|
|
55
53
|
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|---|---|
|
|
60
|
-
| `summary`, `title` | 任务标题 |
|
|
61
|
-
| `description`, `problem`, `what happened`, `issue-description`, `current-content` | 任务描述 |
|
|
62
|
-
| `solution`, `requirements`, `steps`, `suggested-content`, `impact`, `context`, `alternatives`, `expected` | 需求列表(已勾选与未勾选混合,原样保留) |
|
|
63
|
-
| 其它 `textarea` / `input` 字段 | 任务描述;缺失时填 `N/A` |
|
|
54
|
+
```bash
|
|
55
|
+
ai task issue-body {task-id} --template "{form-path}" > "{body-file}"
|
|
56
|
+
```
|
|
64
57
|
|
|
65
|
-
|
|
58
|
+
命令跳过 `markdown` / `dropdown` / `checkboxes` 字段,对 `input` / `textarea` 字段以 `attributes.label` 作标题、按字段 `id` 确定性填入 task 标题 / 描述 / 需求,无可靠映射源的字段填 `N/A`(字段映射表是命令内的单一真源,不在本规则重述)。命令退出码非 0(文件缺失 / 非法 YAML / 无 `body`)时,改用场景 B 命令重新生成 `{body-file}`。
|
|
66
59
|
|
|
67
60
|
#### 场景 B:无模板或解析失败
|
|
68
61
|
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
```markdown
|
|
72
|
-
## Description
|
|
62
|
+
由命令输出默认正文(仅 `## 描述` + `## 需求`,复选框逐字保留,缺失段落填 `N/A`),写入 `{body-file}`:
|
|
73
63
|
|
|
74
|
-
|
|
64
|
+
```bash
|
|
65
|
+
ai task issue-body {task-id} > "{body-file}"
|
|
66
|
+
```
|
|
75
67
|
|
|
76
|
-
|
|
68
|
+
#### 红线:禁止把整份 task.md 当 body
|
|
77
69
|
|
|
78
|
-
-
|
|
79
|
-
- [ ] {requirement-2}
|
|
80
|
-
```
|
|
70
|
+
无论场景 A / B,body 只能来自 `ai task issue-body` 的 stdout,**只含 描述 + 需求两段内容**(场景 A 为按模板字段映射后的等价内容)。
|
|
81
71
|
|
|
82
|
-
|
|
72
|
+
错误示范(❌ 禁止):把含 `## 分析` / `## 设计` / `## 实现备注` / `## 审查反馈` / `## 审查分歧账本` / `## 人工裁决` / `## 活动日志` / `## 完成检查清单` 等脚手架段落、以及 `#XXX` 占位的整份 task.md 直接作为 Issue body。这些段落只走 `sync-issue:{task-id}:task` 评论,绝不进 body。
|
|
83
73
|
|
|
84
74
|
### 4. 解析 labels / Issue Type / milestone
|
|
85
75
|
|
|
@@ -137,17 +127,18 @@ Issue 模板检测:按 `.agents/rules/issue-pr-commands.md` 的 "Issue 模板
|
|
|
137
127
|
|
|
138
128
|
### 5. 调用 GitHub CLI 创建 Issue
|
|
139
129
|
|
|
140
|
-
按 `.agents/rules/issue-pr-commands.md` 中的 "创建 Issue"
|
|
130
|
+
按 `.agents/rules/issue-pr-commands.md` 中的 "创建 Issue" 命令执行;正文统一用 §3 生成的 `{body-file}`,覆盖通用命令的 `--body`:
|
|
141
131
|
|
|
142
132
|
```bash
|
|
143
133
|
gh issue create -R "$upstream_repo" \
|
|
144
134
|
--title "{title}" \
|
|
145
|
-
--body "{body}" \
|
|
135
|
+
--body-file "{body-file}" \
|
|
146
136
|
--assignee @me \
|
|
147
137
|
{label-args} \
|
|
148
138
|
{milestone-arg}
|
|
149
139
|
```
|
|
150
140
|
|
|
141
|
+
- `{body-file}` 为 §3 由 `ai task issue-body` 生成的正文文件;**不得**改用 `--body` 自行拼装正文
|
|
151
142
|
- `{label-args}` 由 §4 计算结果展开为多个 `--label "..."`;为空则整体省略
|
|
152
143
|
- `{milestone-arg}` 仅当 `has_triage=true` 且 milestone 非空时展开为 `--milestone "..."`;否则整体省略
|
|
153
144
|
- `--assignee @me` 不做权限预判,失败时静默跳过
|
|
@@ -186,6 +186,12 @@ List PRs:
|
|
|
186
186
|
gh pr list --state {state} --base {base-branch} --json number,title,url,headRefName,baseRefName
|
|
187
187
|
```
|
|
188
188
|
|
|
189
|
+
Find the open PR whose head is the current branch (used by the `commit` push wrap-up):
|
|
190
|
+
|
|
191
|
+
```bash
|
|
192
|
+
gh pr list --head "{branch}" --state open --json number,url --jq '.[0].url // empty'
|
|
193
|
+
```
|
|
194
|
+
|
|
189
195
|
Create a PR:
|
|
190
196
|
|
|
191
197
|
```bash
|
|
@@ -186,6 +186,12 @@ gh pr view {pr-number} --json number,title,body,labels,state,milestone,url,files
|
|
|
186
186
|
gh pr list --state {state} --base {base-branch} --json number,title,url,headRefName,baseRefName
|
|
187
187
|
```
|
|
188
188
|
|
|
189
|
+
按 head 分支查询当前分支是否存在开放 PR(`commit` 推送收尾用):
|
|
190
|
+
|
|
191
|
+
```bash
|
|
192
|
+
gh pr list --head "{branch}" --state open --json number,url --jq '.[0].url // empty'
|
|
193
|
+
```
|
|
194
|
+
|
|
189
195
|
创建 PR:
|
|
190
196
|
|
|
191
197
|
```bash
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
# Next-Step Output Rule
|
|
2
2
|
|
|
3
|
-
This file defines
|
|
3
|
+
This file defines three **independent** rules for a skill's "notify-user / Next steps" output (the 3rd applies to review-* only); read this file before rendering the final output and apply whichever rules apply:
|
|
4
4
|
|
|
5
5
|
1. **Next-step output structure**: how "Next steps" commands and the "Task info" block present the task ID (placeholders / short-id lookup / fallback).
|
|
6
6
|
2. **Agent output trailing line (Completed at)**: the **very last line** of user-facing output, **independent of the "Next steps" block**, applying to normal / error / early-return paths alike.
|
|
7
|
+
3. **Pending human-decision pre-block**: applies only to `review-analysis` / `review-plan` / `review-code` when this stage has pending rulings (`{h} > 0`) — expand the pending items before the "Next steps" commands and prompt to resolve them first.
|
|
7
8
|
|
|
8
9
|
## Placeholder semantics
|
|
9
10
|
|
|
@@ -60,3 +61,27 @@ Completed at: YYYY-MM-DD HH:mm:ss
|
|
|
60
61
|
- Value command (local timezone, no offset): `date "+%Y-%m-%d %H:%M:%S"`
|
|
61
62
|
- Position: it must be the last line of the entire user-facing output, after all "Next steps" commands. If a scenario has a conditional reminder line after the commands (e.g. the env-blocked reminder), the completion line goes after that reminder.
|
|
62
63
|
- This line is for terminal scanning only; it is never written to any artifact file or Issue/PR comment. The single source of truth for completion time remains the Activity Log in task.md.
|
|
64
|
+
|
|
65
|
+
## Pending human-decision pre-block (review-* only, when {h} > 0)
|
|
66
|
+
|
|
67
|
+
This section is a **third standalone rule, co-equal with the two above**, used only by the "notify-user / report conclusion" step of `review-analysis` / `review-plan` / `review-code`.
|
|
68
|
+
|
|
69
|
+
`{h}` has the same meaning as the count line in each review skill's `reference/output-templates.md`: the number of rows in task.md `## 审查分歧账本` (Review Disagreement Ledger) for **this stage** (`stage ∈ {analysis|plan|code}`) whose `status = needs-human-decision` — **pending items only, excluding rows already `human-decided`**.
|
|
70
|
+
|
|
71
|
+
- **`{h} = 0`**: do not emit this block; render "Next steps" exactly as the selected output-templates scenario.
|
|
72
|
+
- **`{h} > 0`**: insert the block below **before** the selected scenario's "Next steps - <stage>" commands; the next-stage commands are still listed after the block.
|
|
73
|
+
|
|
74
|
+
```text
|
|
75
|
+
⚠️ Pending human decisions ({h}) — please rule on each before continuing to the next stage:
|
|
76
|
+
- {ledger-id} ({stage}/{severity}): {summary}
|
|
77
|
+
Location: the matching row in task.md `## 审查分歧账本` · Evidence: {evidence}
|
|
78
|
+
…(one entry per status=needs-human-decision row of this stage in task.md `## 审查分歧账本`)
|
|
79
|
+
|
|
80
|
+
To resolve:
|
|
81
|
+
1. In the task.md `## 人工裁决` section, record your ruling and rationale for each item above.
|
|
82
|
+
2. Flip the status of the matching row in `## 审查分歧账本` from `needs-human-decision` to `human-decided`.
|
|
83
|
+
|
|
84
|
+
Note: until all those rows are flipped to `human-decided`, running the next-stage command directly will be blocked by gates such as complete-task (`needs-human-decision` is non-terminal). The next-stage commands are still listed below for use after the decisions are made.
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
Field values: `{ledger-id}` / `{stage}` / `{severity}` / `{evidence}` come from the same-named columns of the matching `## 审查分歧账本` row; `{summary}` comes from the artifact anchor referenced by `{evidence}` (e.g. the decision title at `plan.md#HD-1`), falling back to a one-line summary of the finding when no anchor title exists.
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
# 下一步输出规则
|
|
2
2
|
|
|
3
|
-
本文件定义 skill「告知用户 /
|
|
3
|
+
本文件定义 skill「告知用户 / 下一步」输出的三类**相互独立**的规则(第 3 类仅 review-* 适用);渲染最终输出前先读取本文件并落实其中适用的规则:
|
|
4
4
|
|
|
5
5
|
1. **下一步输出结构**:「下一步」命令与「任务信息」段如何呈现任务 ID 形态(占位符 / 取短号 / 回退)。
|
|
6
6
|
2. **Agent 输出收尾行(Completed at)**:面向用户输出的**绝对最后一行**,**独立于「下一步」块**,正常 / 错误 / 早退路径都适用。
|
|
7
|
+
3. **人工裁决待办前置块**:仅 `review-analysis` / `review-plan` / `review-code`,且本阶段存在待裁决项(`{h} > 0`)时适用——在「下一步」命令前展开待裁决项并提示先完成裁决。
|
|
7
8
|
|
|
8
9
|
## 占位符语义
|
|
9
10
|
|
|
@@ -60,3 +61,27 @@ Completed at: YYYY-MM-DD HH:mm:ss
|
|
|
60
61
|
- 取值命令(本地时区、不带偏移):`date "+%Y-%m-%d %H:%M:%S"`
|
|
61
62
|
- 位置:必须是整段面向用户输出的最后一行,排在所有「下一步」命令之后。若某场景在命令之后还有条件性提醒行(如 env-blocked 提醒),收尾行排在该提醒行之后。
|
|
62
63
|
- 该行只用于终端扫视,不写入任何产物文件或 Issue/PR 评论;完成时刻的单一事实源仍是 task.md 的 Activity Log。
|
|
64
|
+
|
|
65
|
+
## 人工裁决待办前置块(review-* 专用,{h} > 0 时)
|
|
66
|
+
|
|
67
|
+
本节是与上面两类规则**并列的第三类独立规则**,仅 `review-analysis` / `review-plan` / `review-code` 的「向用户汇报结论」步骤使用。
|
|
68
|
+
|
|
69
|
+
`{h}` 含义与各 review 技能 `reference/output-templates.md` 计数行一致:task.md `## 审查分歧账本` 中**本阶段**(`stage ∈ {analysis|plan|code}`)`status = needs-human-decision` 的行数——**只含待裁决项,不含已 `human-decided`**。
|
|
70
|
+
|
|
71
|
+
- **`{h} = 0`**:不输出本块,「下一步」按 output-templates 选定场景原样渲染。
|
|
72
|
+
- **`{h} > 0`**:在选定场景的「下一步 - <阶段>」命令**之前**插入下面的块;下一阶段命令仍照常列在块之后。
|
|
73
|
+
|
|
74
|
+
```text
|
|
75
|
+
⚠️ 待人工裁决({h} 项)—— 请先逐项裁决,再继续下一阶段:
|
|
76
|
+
- {ledger-id}({stage}/{severity}):{摘要}
|
|
77
|
+
位置:task.md `## 审查分歧账本` 对应行 · 证据:{evidence}
|
|
78
|
+
…(task.md `## 审查分歧账本` 中本阶段每个 status=needs-human-decision 行一条)
|
|
79
|
+
|
|
80
|
+
完成裁决:
|
|
81
|
+
1. 在 task.md `## 人工裁决` 段,逐项记录你对上述裁决项的裁定与理由。
|
|
82
|
+
2. 把 `## 审查分歧账本` 中对应行的 status 由 `needs-human-decision` 翻为 `human-decided`。
|
|
83
|
+
|
|
84
|
+
说明:在上述行全部翻为 `human-decided` 之前,直接执行下一阶段命令会被 complete-task 等 gate 拦截(`needs-human-decision` 为非终态)。下一阶段命令仍列在下方,供裁决完成后使用。
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
字段取值:`{ledger-id}` / `{stage}` / `{severity}` / `{evidence}` 直接取自 `## 审查分歧账本` 对应行的同名列;`{摘要}` 取自 `{evidence}` 指向的产物锚点条目(如 `plan.md#HD-1` 的决策标题),无锚点标题时用该 finding 的一句话概述。
|
|
@@ -52,6 +52,8 @@ Map user intent to the corresponding workflow command:
|
|
|
52
52
|
|
|
53
53
|
**Pairing and rendering** (`ai task log`): a started entry pairs with the next same-`{base}` done entry onto one row (repeated executions of the same base pair FIFO by ascending time). The STARTED column shows the start time, DONE the completion time; started with no done = in progress (DONE shows `(in progress)`); done with no started (legacy logs) = a standalone completed row. All three shapes are valid and never error.
|
|
54
54
|
|
|
55
|
+
**Human counts** (`ai task log`): review step rows fold two human counts into the NOTE verdict text, comma-separated, right after `blockers/major/minor`, localized to the task language (English `Manual-verify: {e}, Human-decision: {h}`; Chinese `人工校验点:{e}, 人工裁决:{h}`). `Human-decision` (`{h}`) maps canonical step prefixes (`Review Analysis` / `Review Plan` / `Review Code`) to `analysis` / `plan` / `code`, then counts current rows in `## Review Disagreement Ledger` / `## 审查分歧账本` for that stage with `status ∈ {needs-human-decision, human-decided}`. `Manual-verify` (`{e}`) parses `(+ {n} env-blocked)` from the review done note (de-duplicated from the display), defaulting to `0`. Non-review rows carry no human counts.
|
|
56
|
+
|
|
55
57
|
**Gate** (`checkActivityLog`): when computing the "latest action / freshness" it skips `[started]` lines (ascending-order and format checks still cover every line), so a started marker never satisfies a skill's `expected_action_pattern`.
|
|
56
58
|
|
|
57
59
|
**Skills that write started**: every workflow skill that **appends entries to a task's `## Activity Log`** writes started, so the STARTED column stays uniformly complete across the whole `ai task log` table. Two forms, depending on whether task.md already exists:
|
|
@@ -56,6 +56,8 @@
|
|
|
56
56
|
|
|
57
57
|
**配对与渲染**(`ai task log`):按 `{基名}` 把 started 与其后最近的同名 done 配成一行(同基名多次执行按时间升序 FIFO 配对)。STARTED 列显示 started 时间、DONE 列显示 done 时间;只有 started 无 done = 进行中(DONE 显示 `(in progress)`);只有 done 无 started(历史日志)= 单态完成行。三种形态都合法、不报错。
|
|
58
58
|
|
|
59
|
+
**人工计数**(`ai task log`):审查步骤行把两项人工计数并入 NOTE 的 verdict 文本,逗号分隔、紧随 `blockers/major/minor`,按 task 语言本地化(中文 `人工校验点:{e}, 人工裁决:{h}`;英文 `Manual-verify: {e}, Human-decision: {h}`)。`人工裁决`(`{h}`)按 canonical 步骤名前缀(`Review Analysis` / `Review Plan` / `Review Code`)映射到 `analysis` / `plan` / `code`,统计 `## 审查分歧账本` 中对应阶段 `status ∈ {needs-human-decision, human-decided}` 的当前累计数量;`人工校验点`(`{e}`)解析 review done note 中的 `(+ {n} env-blocked)`(解析后从展示中去重),缺失为 `0`。非审查步骤不附加人工计数。
|
|
60
|
+
|
|
59
61
|
**gate**(`checkActivityLog`):计算「最新 action / freshness」时跳过 `[started]` 行(升序与格式校验仍覆盖全部行),故 started 标记不会污染各 SKILL 的 `expected_action_pattern`。
|
|
60
62
|
|
|
61
63
|
**写 started 的 SKILL**:所有**会向某个任务的 `## 活动日志` 追加条目**的工作流 SKILL 都写 started,保证 `ai task log` 整张表的 STARTED 列一致完整。两种写法按技能是否已有 task.md 区分:
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: analyze-task
|
|
3
|
-
description:
|
|
3
|
+
description: >
|
|
4
|
+
Analyze a task and produce a requirements document.
|
|
5
|
+
Use when you need to understand a task's requirements, scope, and risks before designing a solution.
|
|
4
6
|
---
|
|
5
7
|
|
|
6
8
|
# Analyze Task
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: archive-tasks
|
|
3
|
-
description:
|
|
3
|
+
description: >
|
|
4
|
+
Archive completed tasks into a date-organized workspace directory.
|
|
5
|
+
Use when completed tasks have accumulated and you want to tidy them into the date-organized archive.
|
|
4
6
|
---
|
|
5
7
|
|
|
6
8
|
# Archive Completed Tasks
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: block-task
|
|
3
|
-
description:
|
|
3
|
+
description: >
|
|
4
|
+
Mark a task as blocked and record the reason.
|
|
5
|
+
Use when a task cannot proceed because of an external blocker and you need to park it with a reason.
|
|
4
6
|
---
|
|
5
7
|
|
|
6
8
|
# Block Task
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: check-task
|
|
3
|
-
description:
|
|
3
|
+
description: >
|
|
4
|
+
Check a task's current status and progress.
|
|
5
|
+
Use when you want a quick view of a task's current status and progress.
|
|
4
6
|
---
|
|
5
7
|
|
|
6
8
|
# Check Task Status
|
|
@@ -8,7 +10,7 @@ description: "Check a task's current status and progress"
|
|
|
8
10
|
## Boundary / Critical Rules
|
|
9
11
|
|
|
10
12
|
- This skill is **read-only** -- do not modify any files
|
|
11
|
-
-
|
|
13
|
+
- Mechanical facts (frontmatter metadata, artifact grouping, git/platform state, and locating the task across the active, blocked, and completed directories) are delegated to the deterministic `ai task status` command. This skill only adds the semantic layer the CLI cannot produce: workflow-stage interpretation, review-verdict parsing, and the next-step recommendation.
|
|
12
14
|
|
|
13
15
|
## Task id short ref
|
|
14
16
|
|
|
@@ -16,96 +18,43 @@ description: "Check a task's current status and progress"
|
|
|
16
18
|
|
|
17
19
|
## Steps
|
|
18
20
|
|
|
19
|
-
### 1.
|
|
21
|
+
### 1. Gather Facts via `ai task status`
|
|
20
22
|
|
|
21
|
-
|
|
22
|
-
1. `.agents/workspace/active/{task-id}/task.md`
|
|
23
|
-
2. `.agents/workspace/blocked/{task-id}/task.md`
|
|
24
|
-
3. `.agents/workspace/completed/{task-id}/task.md`
|
|
23
|
+
Run the deterministic CLI to collect every mechanical fact, and use its stdout as the factual base of your report:
|
|
25
24
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
### 2. Read Task Metadata
|
|
25
|
+
```bash
|
|
26
|
+
ai task status {task-id}
|
|
27
|
+
```
|
|
31
28
|
|
|
32
|
-
|
|
33
|
-
- `id`, `title`, `type`, `status`, `workflow`
|
|
34
|
-
- `current_step`, `assigned_to`
|
|
35
|
-
- `created_at`, `updated_at`
|
|
36
|
-
- `issue_number`, `pr_number` (if applicable)
|
|
29
|
+
The command resolves the task across the active, blocked, and completed directories and prints five sections: the task header (`id`, short id, title), `Metadata` (frontmatter fields), `Artifacts` (files grouped by workflow stage), `Git` (branch match, uncommitted count, ahead/behind), and `Platform` (Issue/PR state). Treat that output as authoritative -- do not re-derive any of it by hand.
|
|
37
30
|
|
|
38
|
-
|
|
31
|
+
Fallbacks:
|
|
32
|
+
- If the command is unavailable (e.g. `ai` is not on PATH or `dist/` is not built) or exits non-zero, fall back to a degraded read: show the `task.md` frontmatter and `ls` the task directory, and tell the user the output is degraded (suggest building or installing the CLI, e.g. `ai init`).
|
|
33
|
+
- If the task is not found in any directory, prompt "Task {task-id} not found".
|
|
39
34
|
|
|
40
|
-
|
|
41
|
-
- `analysis.md`, `analysis-r{N}.md` - Requirement analysis
|
|
42
|
-
- `plan.md`, `plan-r{N}.md` - Technical plan
|
|
43
|
-
- `code.md`, `code-r2.md`, ... - Code reports
|
|
44
|
-
- `review-analysis.md`, `review-analysis-r{N}.md` - Requirement analysis review reports
|
|
45
|
-
- `review-plan.md`, `review-plan-r{N}.md` - Technical plan review reports
|
|
46
|
-
- `review-code.md`, `review-code-r{N}.md` - Code review reports
|
|
35
|
+
### 2. Interpret Workflow Stage & Review Verdicts
|
|
47
36
|
|
|
48
|
-
|
|
49
|
-
- Scan all versioned files of the same artifact type in the task directory
|
|
50
|
-
- Record the latest round, latest file path, and total number of rounds for each artifact type
|
|
51
|
-
- If the latest round is recorded in `task.md` Activity Log, cross-check it against the actual file when possible
|
|
37
|
+
This is the semantic layer the CLI does not produce. Using the `Artifacts` groups from step 1 and the Activity Log in `task.md`:
|
|
52
38
|
|
|
53
|
-
|
|
39
|
+
- Map each workflow stage to a status indicator plus its latest artifact and round:
|
|
40
|
+
- `[done]` - step completed
|
|
41
|
+
- `[current]` - currently in progress
|
|
42
|
+
- `[pending]` - not started yet
|
|
43
|
+
- `[blocked]` - blocked
|
|
44
|
+
- `[skipped]` - skipped
|
|
45
|
+
- For the latest review artifact of each stage (`review-analysis`, `review-plan`, `review-code`), read the report body and parse its conclusion: the overall verdict (Approved / Changes Requested / Rejected) and the blocker / major / minor counts. The CLI does not parse review bodies, so this reading is required to choose the next action in step 3.
|
|
54
46
|
|
|
55
|
-
|
|
47
|
+
Present the workflow progress as an overlay on top of the CLI output, marking the latest round and the parsed review verdict, for example:
|
|
56
48
|
|
|
57
49
|
```
|
|
58
|
-
Task status: {task-id} (short id {task-ref})
|
|
59
|
-
=======================
|
|
60
|
-
|
|
61
|
-
Basic info:
|
|
62
|
-
- Title: {title}
|
|
63
|
-
- Type: {type}
|
|
64
|
-
- Status: {status}
|
|
65
|
-
- Workflow: {workflow}
|
|
66
|
-
- Assigned to: {assigned_to}
|
|
67
|
-
- Created at: {created_at}
|
|
68
|
-
- Updated at: {updated_at}
|
|
69
|
-
|
|
70
50
|
Workflow progress:
|
|
71
|
-
[done] Requirement Analysis analysis
|
|
72
|
-
[done] Analysis Review review-analysis.md (Round 1, latest)
|
|
73
|
-
[
|
|
74
|
-
[
|
|
75
|
-
[current] Code code.md (Round 1)
|
|
76
|
-
[pending] Code Review review-code.md (Round 1 will be created next)
|
|
77
|
-
[pending] Final Commit
|
|
78
|
-
|
|
79
|
-
Context files:
|
|
80
|
-
- analysis.md: Exists (Round 1)
|
|
81
|
-
- analysis-r2.md: Exists (Round 2, latest)
|
|
82
|
-
- review-analysis.md: Exists (Round 1, latest)
|
|
83
|
-
- plan.md: Exists (Round 1, latest)
|
|
84
|
-
- review-plan.md: Exists (Round 1, latest)
|
|
85
|
-
- code.md: Exists (Round 1, latest)
|
|
86
|
-
- review-code.md: Not started
|
|
87
|
-
|
|
88
|
-
If multiple rounds exist, show all rounds and mark the latest, for example:
|
|
89
|
-
- plan.md: Exists (Round 1)
|
|
90
|
-
- plan-r2.md: Exists (Round 2, latest)
|
|
91
|
-
- review-plan.md: Exists (Round 1)
|
|
92
|
-
- code.md: Exists (Round 1)
|
|
93
|
-
- code-r2.md: Exists (Round 2, latest)
|
|
94
|
-
- review-code.md: Exists (Round 1)
|
|
95
|
-
- review-code-r2.md: Exists (Round 2, latest)
|
|
96
|
-
|
|
97
|
-
Next step:
|
|
98
|
-
Complete implementation, then run code review
|
|
51
|
+
[done] Requirement Analysis analysis.md (Round 1, latest)
|
|
52
|
+
[done] Analysis Review review-analysis.md (Round 1, latest, Approved)
|
|
53
|
+
[current] Technical Design plan.md (Round 1)
|
|
54
|
+
[pending] Plan Review
|
|
99
55
|
```
|
|
100
56
|
|
|
101
|
-
|
|
102
|
-
- `[done]` - Step completed
|
|
103
|
-
- `[current]` - Currently in progress
|
|
104
|
-
- `[pending]` - Not started yet
|
|
105
|
-
- `[blocked]` - Blocked
|
|
106
|
-
- `[skipped]` - Skipped
|
|
107
|
-
|
|
108
|
-
### 5. Recommend Next Action
|
|
57
|
+
### 3. Recommend Next Action
|
|
109
58
|
|
|
110
59
|
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).
|
|
111
60
|
|
|
@@ -144,6 +93,6 @@ Recommend the appropriate next skill based on the current workflow state. You mu
|
|
|
144
93
|
## Notes
|
|
145
94
|
|
|
146
95
|
1. **Read-only**: This skill only reads and reports -- it does not modify files
|
|
147
|
-
2. **
|
|
96
|
+
2. **CLI delegation**: mechanical facts (metadata, artifact grouping, git/platform state, multi-directory location) come from `ai task status`; this skill adds the semantic interpretation on top
|
|
148
97
|
3. **Quick reference**: Use this skill any time you need to see where a task is in the workflow
|
|
149
|
-
4. **Versioned artifacts**: `
|
|
98
|
+
4. **Versioned artifacts**: `ai task status` groups the actual artifact rounds; the semantic layer must still report the latest review verdict for `review-analysis`, `review-plan`, and `review-code`
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: check-task
|
|
3
|
-
description:
|
|
3
|
+
description: >
|
|
4
|
+
查看任务的当前状态和进度。
|
|
5
|
+
当想快速查看某个任务当前状态与进度时使用。
|
|
4
6
|
---
|
|
5
7
|
|
|
6
8
|
# 查看任务状态
|
|
@@ -8,103 +10,51 @@ description: "查看任务的当前状态和进度"
|
|
|
8
10
|
## 行为边界 / 关键规则
|
|
9
11
|
|
|
10
12
|
- 本技能是**只读**操作 —— 不修改任何文件
|
|
11
|
-
-
|
|
13
|
+
- 机械数据(frontmatter 元数据、产物分组、Git/Platform 状态,以及跨 active、blocked、completed 三目录定位任务)一律委托给确定性的 `ai task status` 命令。本技能只负责 CLI 无法产出的语义层:工作流阶段解读、审查结论解析、下一步建议。
|
|
12
14
|
|
|
13
15
|
## 任务入参短号别名
|
|
14
16
|
|
|
15
17
|
> 如果 `{task-id}` 入参匹配 `^[#]?[0-9]+$`(裸数字或带 `#` 前缀),先读取 `.agents/rules/task-short-id.md` 的「SKILL 入参解析」段执行解析;后续命令视 `{task-id}` 为解析后的全长 `TASK-YYYYMMDD-HHMMSS` 形式。
|
|
16
18
|
|
|
17
19
|
## 执行步骤
|
|
18
|
-
### 1. 查找任务
|
|
19
20
|
|
|
20
|
-
|
|
21
|
-
1. `.agents/workspace/active/{task-id}/task.md`
|
|
22
|
-
2. `.agents/workspace/blocked/{task-id}/task.md`
|
|
23
|
-
3. `.agents/workspace/completed/{task-id}/task.md`
|
|
21
|
+
### 1. 通过 `ai task status` 收集事实
|
|
24
22
|
|
|
25
|
-
|
|
23
|
+
运行确定性 CLI 收集全部机械数据,并以其 stdout 作为状态报告的事实基底:
|
|
26
24
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
25
|
+
```bash
|
|
26
|
+
ai task status {task-id}
|
|
27
|
+
```
|
|
30
28
|
|
|
31
|
-
|
|
32
|
-
- `id`、`title`、`type`、`status`、`workflow`
|
|
33
|
-
- `current_step`、`assigned_to`
|
|
34
|
-
- `created_at`、`updated_at`
|
|
35
|
-
- `issue_number`、`pr_number`(如适用)
|
|
29
|
+
该命令会跨 active、blocked、completed 三目录解析任务,并输出五段:任务头(`id`、短号、标题)、`Metadata`(frontmatter 字段)、`Artifacts`(按工作流阶段分组的产物)、`Git`(分支匹配、未提交数、ahead/behind)、`Platform`(Issue/PR 状态)。把该输出视为权威事实 —— 不要再手工复述其中任何内容。
|
|
36
30
|
|
|
37
|
-
|
|
31
|
+
降级处理:
|
|
32
|
+
- 若命令不可用(如 `ai` 不在 PATH 或 `dist/` 未构建)或非零退出,回退到降级读取:展示 `task.md` frontmatter 并 `ls` 任务目录,同时告知用户本次为降级输出(建议先构建或安装 CLI,如 `ai init`)。
|
|
33
|
+
- 若在任何目录都未找到任务,提示 "Task {task-id} not found"。
|
|
38
34
|
|
|
39
|
-
|
|
40
|
-
- `analysis.md`、`analysis-r{N}.md` - 需求分析
|
|
41
|
-
- `plan.md`、`plan-r{N}.md` - 技术方案
|
|
42
|
-
- `code.md`、`code-r2.md`、... - 实现报告
|
|
43
|
-
- `review-analysis.md`、`review-analysis-r{N}.md` - 需求分析审查报告
|
|
44
|
-
- `review-plan.md`、`review-plan-r{N}.md` - 技术方案审查报告
|
|
45
|
-
- `review-code.md`、`review-code-r{N}.md` - 代码审查报告
|
|
35
|
+
### 2. 解读工作流阶段与审查结论
|
|
46
36
|
|
|
47
|
-
|
|
48
|
-
- 扫描任务目录中的所有同类版本化文件
|
|
49
|
-
- 记录每类产物的最新轮次、最新文件路径和总轮次数
|
|
50
|
-
- 如果 `task.md` 的 Activity Log 记录了最新轮次,优先核对其与实际文件是否一致
|
|
37
|
+
这是 CLI 不产出的语义层。基于步骤 1 的 `Artifacts` 分组与 `task.md` 的活动日志:
|
|
51
38
|
|
|
52
|
-
|
|
39
|
+
- 把每个工作流阶段映射为状态指示器,并标注其最新产物与轮次:
|
|
40
|
+
- `[done]` - 步骤已完成
|
|
41
|
+
- `[current]` - 当前进行中
|
|
42
|
+
- `[pending]` - 尚未开始
|
|
43
|
+
- `[blocked]` - 被阻塞
|
|
44
|
+
- `[skipped]` - 已跳过
|
|
45
|
+
- 对各阶段最新的审查产物(`review-analysis`、`review-plan`、`review-code`),读取报告正文并解析结论:总体结论(通过 / 需要修改 / 拒绝)与阻塞项 / 主要问题 / 次要问题计数。CLI 不解析审查正文,因此这一步是步骤 3 选择下一步操作的必要输入。
|
|
53
46
|
|
|
54
|
-
|
|
47
|
+
把工作流进度作为 CLI 输出之上的叠加层呈现,标注最新轮次与解析出的审查结论,例如:
|
|
55
48
|
|
|
56
49
|
```
|
|
57
|
-
任务状态:{task-id}(短号 {task-ref})
|
|
58
|
-
=======================
|
|
59
|
-
|
|
60
|
-
基本信息:
|
|
61
|
-
- 标题:{title}
|
|
62
|
-
- 类型:{type}
|
|
63
|
-
- 状态:{status}
|
|
64
|
-
- 工作流:{workflow}
|
|
65
|
-
- 分配给:{assigned_to}
|
|
66
|
-
- 创建时间:{created_at}
|
|
67
|
-
- 更新时间:{updated_at}
|
|
68
|
-
|
|
69
50
|
工作流进度:
|
|
70
|
-
[
|
|
71
|
-
[
|
|
72
|
-
[
|
|
73
|
-
[
|
|
74
|
-
[进行中] 实现 code.md (Round 1)
|
|
75
|
-
[待处理] 代码审查 review-code.md (Round 1 will be created next)
|
|
76
|
-
[待处理] 最终提交
|
|
77
|
-
|
|
78
|
-
上下文文件:
|
|
79
|
-
- analysis.md: 已存在 (Round 1)
|
|
80
|
-
- analysis-r2.md: 已存在 (Round 2, latest)
|
|
81
|
-
- review-analysis.md: 已存在 (Round 1, latest)
|
|
82
|
-
- plan.md: 已存在 (Round 1, latest)
|
|
83
|
-
- review-plan.md: 已存在 (Round 1, latest)
|
|
84
|
-
- code.md: 已存在 (Round 1, latest)
|
|
85
|
-
- review-code.md: 未开始
|
|
86
|
-
|
|
87
|
-
如果存在多轮产物,显示所有轮次,并标记最新版本,例如:
|
|
88
|
-
- plan.md: 已存在 (Round 1)
|
|
89
|
-
- plan-r2.md: 已存在 (Round 2, latest)
|
|
90
|
-
- review-plan.md: 已存在 (Round 1)
|
|
91
|
-
- code.md: 已存在 (Round 1)
|
|
92
|
-
- code-r2.md: 已存在 (Round 2, latest)
|
|
93
|
-
- review-code.md: 已存在 (Round 1)
|
|
94
|
-
- review-code-r2.md: 已存在 (Round 2, latest)
|
|
95
|
-
|
|
96
|
-
下一步:
|
|
97
|
-
完成实现,然后执行代码审查
|
|
51
|
+
[done] 需求分析 analysis.md (Round 1, latest)
|
|
52
|
+
[done] 需求分析审查 review-analysis.md (Round 1, latest, 通过)
|
|
53
|
+
[current] 技术设计 plan.md (Round 1)
|
|
54
|
+
[pending] 技术方案审查
|
|
98
55
|
```
|
|
99
56
|
|
|
100
|
-
|
|
101
|
-
- `[done]` - 步骤已完成
|
|
102
|
-
- `[current]` - 当前进行中
|
|
103
|
-
- `[pending]` - 尚未开始
|
|
104
|
-
- `[blocked]` - 被阻塞
|
|
105
|
-
- `[skipped]` - 已跳过
|
|
106
|
-
|
|
107
|
-
### 5. 建议下一步操作
|
|
57
|
+
### 3. 建议下一步操作
|
|
108
58
|
|
|
109
59
|
根据当前工作流状态,建议合适的下一个技能。必须展示下表中所有 TUI 列的命令格式,不要只展示当前 AI 代理对应的列。如果 `.agents/.airc.json` 中配置了自定义 TUI(`customTUIs`),读取每个工具的 `name` 和 `invoke`,按同样格式补充对应命令行(`${skillName}` 替换为技能名,`${projectName}` 替换为项目名):
|
|
110
60
|
|
|
@@ -143,6 +93,6 @@ description: "查看任务的当前状态和进度"
|
|
|
143
93
|
## 注意事项
|
|
144
94
|
|
|
145
95
|
1. **只读**:本技能仅读取和报告 —— 不修改任何文件
|
|
146
|
-
2.
|
|
96
|
+
2. **CLI 委托**:机械数据(元数据、产物分组、Git/Platform 状态、多目录定位)来自 `ai task status`;本技能在其之上叠加语义解读
|
|
147
97
|
3. **快速参考**:随时可以使用本技能检查任务在工作流中的位置
|
|
148
|
-
4. **版本化产物**:`
|
|
98
|
+
4. **版本化产物**:`ai task status` 已按实际轮次分组产物;语义层仍需报告 `review-analysis`、`review-plan`、`review-code` 的最新审查结论
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: close-codescan
|
|
3
|
-
description:
|
|
3
|
+
description: >
|
|
4
|
+
Close a Code Scanning alert with a documented reason.
|
|
5
|
+
Use when a Code Scanning alert has been handled or dismissed and needs closing with a reason.
|
|
4
6
|
---
|
|
5
7
|
|
|
6
8
|
# Dismiss Code Scanning Alert
|