@fitlab-ai/agent-infra 0.11.5 → 0.11.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/dist/lib/git/primary-worktree.js +58 -0
- package/dist/lib/merge.js +62 -10
- package/dist/lib/platform/github-provider.js +9 -14
- package/dist/lib/platform/github-release-notes.js +80 -11
- package/dist/lib/platform/none-provider.js +1 -1
- package/dist/lib/platform/provider-contract.d.ts +39 -16
- package/dist/lib/platform/provider-contract.js +1 -1
- package/dist/lib/platform/provider-validation.js +83 -13
- package/dist/lib/platform/pull-requests.js +29 -3
- package/dist/lib/platform/release-notes.js +7 -8
- package/dist/lib/sandbox/capture.js +1 -1
- package/dist/lib/sandbox/commands/create.js +46 -1
- package/dist/lib/sandbox/commands/enter.js +1 -1
- package/dist/lib/sandbox/commands/start.js +1 -1
- package/dist/lib/sandbox/config.js +10 -0
- package/dist/lib/sandbox/control/lifecycle.js +18 -13
- package/dist/lib/sandbox/control/server.js +6 -2
- package/dist/lib/sandbox/task-resolver.js +62 -2
- package/dist/lib/server/config.js +7 -27
- package/dist/lib/server/daemon.js +4 -3
- package/dist/lib/server/process-control.js +4 -2
- package/dist/lib/server/runner.js +4 -3
- package/dist/lib/task/artifact-lifecycle.js +42 -10
- package/dist/lib/task/artifact-receipts.js +62 -22
- package/dist/lib/task/capabilities.js +22 -4
- package/dist/lib/task/completion-facts.js +56 -0
- package/dist/lib/task/create-service.js +6 -2
- package/dist/lib/task/create.js +46 -82
- package/dist/lib/task/events.js +268 -195
- package/dist/lib/task/finalization-handoff.js +2 -1
- package/dist/lib/task/invalidation-command.js +4 -2
- package/dist/lib/task/invalidation.js +38 -9
- package/dist/lib/task/local-artifact-finalization.js +17 -3
- package/dist/lib/task/qualification-audit.js +23 -105
- package/dist/lib/task/resolve-ref.js +3 -3
- package/dist/lib/task/review-finalization.js +7 -0
- package/dist/lib/task/review-identity.js +69 -0
- package/dist/lib/task/sections.js +6 -5
- package/dist/lib/task/task-execution-lock.js +6 -3
- package/dist/lib/task/verification-engine.js +14 -63
- package/dist/lib/task/verification.js +35 -38
- package/dist/lib/task/write.js +121 -1
- package/dist/lifecycle-build-manifest.json +3 -3
- package/lib/git/primary-worktree.ts +62 -0
- package/lib/merge.ts +59 -10
- package/lib/platform/github-provider.ts +11 -18
- package/lib/platform/github-release-notes.ts +89 -14
- package/lib/platform/none-provider.ts +1 -1
- package/lib/platform/provider-contract.ts +38 -12
- package/lib/platform/provider-validation.ts +83 -12
- package/lib/platform/pull-requests.ts +27 -3
- package/lib/platform/release-notes.ts +11 -12
- package/lib/sandbox/capture.ts +1 -1
- package/lib/sandbox/commands/create.ts +52 -1
- package/lib/sandbox/commands/enter.ts +1 -1
- package/lib/sandbox/commands/start.ts +1 -1
- package/lib/sandbox/config.ts +12 -0
- package/lib/sandbox/control/lifecycle.ts +22 -13
- package/lib/sandbox/control/server.ts +5 -2
- package/lib/sandbox/task-resolver.ts +51 -2
- package/lib/server/config.ts +7 -29
- package/lib/server/daemon.ts +5 -3
- package/lib/server/process-control.ts +4 -2
- package/lib/server/runner.ts +7 -4
- package/lib/server/server.schema.json +0 -4
- package/lib/task/artifact-lifecycle.ts +35 -11
- package/lib/task/artifact-receipts.ts +55 -15
- package/lib/task/capabilities.ts +17 -3
- package/lib/task/completion-facts.ts +66 -0
- package/lib/task/create-service.ts +7 -3
- package/lib/task/create.ts +44 -71
- package/lib/task/events.ts +248 -182
- package/lib/task/finalization-handoff.ts +2 -1
- package/lib/task/invalidation-command.ts +4 -2
- package/lib/task/invalidation.ts +35 -10
- package/lib/task/local-artifact-finalization.ts +13 -3
- package/lib/task/qualification-audit.ts +21 -114
- package/lib/task/resolve-ref.ts +3 -3
- package/lib/task/review-finalization.ts +7 -0
- package/lib/task/review-identity.ts +85 -0
- package/lib/task/sections.ts +6 -6
- package/lib/task/task-execution-lock.ts +7 -3
- package/lib/task/verification-engine.ts +13 -86
- package/lib/task/verification.ts +34 -38
- package/lib/task/write.ts +115 -1
- package/package.json +1 -1
- package/templates/.agents/rules/README.en.md +1 -0
- package/templates/.agents/rules/README.zh-CN.md +1 -0
- package/templates/.agents/rules/decision-qualification.en.md +4 -3
- package/templates/.agents/rules/decision-qualification.zh-CN.md +4 -3
- package/templates/.agents/rules/evidence-reporting.en.md +1 -2
- package/templates/.agents/rules/evidence-reporting.zh-CN.md +1 -2
- package/templates/.agents/rules/validation-output.en.md +19 -0
- package/templates/.agents/rules/validation-output.zh-CN.md +19 -0
- package/templates/.agents/skills/analyze-task/SKILL.en.md +3 -1
- package/templates/.agents/skills/analyze-task/SKILL.zh-CN.md +3 -3
- package/templates/.agents/skills/archive-tasks/SKILL.en.md +2 -2
- package/templates/.agents/skills/archive-tasks/SKILL.zh-CN.md +2 -2
- package/templates/.agents/skills/archive-tasks/scripts/archive-tasks.sh +109 -6
- package/templates/.agents/skills/block-task/SKILL.en.md +2 -0
- package/templates/.agents/skills/block-task/SKILL.zh-CN.md +1 -1
- package/templates/.agents/skills/cancel-task/SKILL.en.md +2 -0
- package/templates/.agents/skills/cancel-task/SKILL.zh-CN.md +1 -1
- package/templates/.agents/skills/code-task/SKILL.en.md +3 -1
- package/templates/.agents/skills/code-task/SKILL.zh-CN.md +2 -2
- package/templates/.agents/skills/code-task/reference/report-template.en.md +4 -8
- package/templates/.agents/skills/code-task/reference/report-template.zh-CN.md +4 -8
- 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/complete-manual-validation/SKILL.en.md +1 -1
- package/templates/.agents/skills/complete-manual-validation/SKILL.zh-CN.md +1 -1
- package/templates/.agents/skills/complete-task/SKILL.en.md +2 -0
- package/templates/.agents/skills/complete-task/SKILL.zh-CN.md +2 -0
- package/templates/.agents/skills/create-pr/SKILL.en.md +2 -0
- package/templates/.agents/skills/create-pr/SKILL.zh-CN.md +1 -1
- package/templates/.agents/skills/create-release-note/SKILL.en.md +17 -11
- package/templates/.agents/skills/create-release-note/SKILL.zh-CN.md +17 -11
- package/templates/.agents/skills/create-task/SKILL.en.md +2 -0
- package/templates/.agents/skills/create-task/SKILL.zh-CN.md +1 -1
- package/templates/.agents/skills/import-codescan/SKILL.en.md +2 -0
- package/templates/.agents/skills/import-codescan/SKILL.zh-CN.md +1 -1
- package/templates/.agents/skills/import-dependabot/SKILL.en.md +2 -0
- package/templates/.agents/skills/import-dependabot/SKILL.zh-CN.md +1 -1
- package/templates/.agents/skills/import-issue/SKILL.en.md +2 -0
- package/templates/.agents/skills/import-issue/SKILL.zh-CN.md +1 -1
- package/templates/.agents/skills/plan-task/SKILL.en.md +3 -1
- package/templates/.agents/skills/plan-task/SKILL.zh-CN.md +3 -3
- package/templates/.agents/skills/review-analysis/SKILL.en.md +3 -1
- package/templates/.agents/skills/review-analysis/SKILL.zh-CN.md +3 -1
- package/templates/.agents/skills/review-analysis/reference/report-template.en.md +4 -8
- package/templates/.agents/skills/review-analysis/reference/report-template.zh-CN.md +4 -8
- package/templates/.agents/skills/review-code/SKILL.en.md +13 -12
- package/templates/.agents/skills/review-code/SKILL.zh-CN.md +11 -12
- package/templates/.agents/skills/review-code/config/verify.en.json +1 -3
- package/templates/.agents/skills/review-code/config/verify.zh-CN.json +1 -3
- package/templates/.agents/skills/review-code/reference/output-templates.en.md +23 -46
- package/templates/.agents/skills/review-code/reference/output-templates.zh-CN.md +27 -48
- package/templates/.agents/skills/review-code/reference/report-template.en.md +8 -11
- package/templates/.agents/skills/review-code/reference/report-template.zh-CN.md +8 -11
- package/templates/.agents/skills/review-code/reference/review-criteria.en.md +2 -2
- package/templates/.agents/skills/review-code/reference/review-criteria.zh-CN.md +2 -2
- package/templates/.agents/skills/review-plan/SKILL.en.md +3 -1
- package/templates/.agents/skills/review-plan/SKILL.zh-CN.md +3 -1
- package/templates/.agents/skills/review-plan/reference/report-template.en.md +5 -9
- package/templates/.agents/skills/review-plan/reference/report-template.zh-CN.md +5 -9
- package/templates/.agents/skills/review-pr/SKILL.en.md +2 -0
- package/templates/.agents/skills/review-pr/SKILL.zh-CN.md +2 -0
- package/templates/.agents/skills/run-manual-validation/SKILL.en.md +1 -1
- package/templates/.agents/skills/run-manual-validation/SKILL.zh-CN.md +1 -1
- package/templates/.agents/skills/run-task/SKILL.en.md +1 -1
- package/templates/.agents/skills/run-task/SKILL.zh-CN.md +1 -1
- package/templates/.agents/skills/watch-pr/SKILL.en.md +2 -0
- package/templates/.agents/skills/watch-pr/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
|
@@ -8,9 +8,14 @@ WORKSPACE_ROOT="$REPO_ROOT/.agents/workspace"
|
|
|
8
8
|
COMPLETED_DIR="$WORKSPACE_ROOT/completed"
|
|
9
9
|
ARCHIVE_DIR="$WORKSPACE_ROOT/archive"
|
|
10
10
|
MANIFEST_PATH="$ARCHIVE_DIR/manifest.md"
|
|
11
|
+
tmpdir=""
|
|
12
|
+
cleanup() {
|
|
13
|
+
[ -z "$tmpdir" ] || rm -rf "$tmpdir"
|
|
14
|
+
}
|
|
15
|
+
trap 'cleanup' 0
|
|
16
|
+
trap 'cleanup; exit 1' HUP INT TERM
|
|
11
17
|
|
|
12
|
-
tmpdir="$(mktemp -d)"
|
|
13
|
-
trap 'rm -rf "$tmpdir"' EXIT HUP INT TERM
|
|
18
|
+
tmpdir="$(mktemp -d "$WORKSPACE_ROOT/.archive-tmp.XXXXXX")"
|
|
14
19
|
|
|
15
20
|
IDS_FILE="$tmpdir/task-ids.txt"
|
|
16
21
|
: > "$IDS_FILE"
|
|
@@ -160,6 +165,17 @@ archive_task_dir() {
|
|
|
160
165
|
return 0
|
|
161
166
|
fi
|
|
162
167
|
|
|
168
|
+
find "$task_dir" -name manifest.md -print > "$tmpdir/task-manifests.txt"
|
|
169
|
+
if [ -s "$tmpdir/task-manifests.txt" ]; then
|
|
170
|
+
echo "TASK content cannot contain manifest.md: $task_id" >&2
|
|
171
|
+
return 1
|
|
172
|
+
fi
|
|
173
|
+
find "$task_dir" ! -type f ! -type d -print > "$tmpdir/task-special-files.txt"
|
|
174
|
+
if [ -s "$tmpdir/task-special-files.txt" ]; then
|
|
175
|
+
echo "TASK content cannot contain symbolic links or special files: $task_id" >&2
|
|
176
|
+
return 1
|
|
177
|
+
fi
|
|
178
|
+
|
|
163
179
|
completed_at=$(extract_completed_at "$task_file")
|
|
164
180
|
task_date=$(printf '%s' "$completed_at" | cut -c1-10)
|
|
165
181
|
|
|
@@ -179,12 +195,89 @@ archive_task_dir() {
|
|
|
179
195
|
return 0
|
|
180
196
|
fi
|
|
181
197
|
|
|
182
|
-
mkdir -p "$
|
|
183
|
-
|
|
198
|
+
mkdir -p "$(dirname "$destination_dir")"
|
|
199
|
+
staged_dir="$tmpdir/$task_id"
|
|
200
|
+
mkdir -p "$staged_dir/local"
|
|
201
|
+
cp -R "$task_dir"/. "$staged_dir/local/"
|
|
202
|
+
write_contents_hash "$staged_dir/local"
|
|
203
|
+
mv "$staged_dir" "$destination_dir"
|
|
204
|
+
if ! rm -rf "$task_dir"; then
|
|
205
|
+
if ! rm -rf "$destination_dir"; then
|
|
206
|
+
echo "Failed to remove completed task and roll back archive copy: $task_id" >&2
|
|
207
|
+
else
|
|
208
|
+
echo "Failed to remove completed task; rolled back archive copy: $task_id" >&2
|
|
209
|
+
fi
|
|
210
|
+
return 1
|
|
211
|
+
fi
|
|
184
212
|
archived_count=$((archived_count + 1))
|
|
185
213
|
printf 'Archived %s -> %s\n' "$task_id" "$relative_path"
|
|
186
214
|
}
|
|
187
215
|
|
|
216
|
+
write_contents_hash() {
|
|
217
|
+
local_dir="$1"
|
|
218
|
+
hash_path=${2:-$local_dir/contents.sha256}
|
|
219
|
+
hash_tmp="$tmpdir/contents.sha256"
|
|
220
|
+
newline='
|
|
221
|
+
'
|
|
222
|
+
: > "$hash_tmp"
|
|
223
|
+
find "$local_dir" -type f ! -name contents.sha256 | LC_ALL=C sort | while IFS= read -r source_file; do
|
|
224
|
+
relative_file=${source_file#"$local_dir"/}
|
|
225
|
+
case "$relative_file" in *"$newline"*|*"$(printf '\r')"*) echo "Newline path is not supported" >&2; return 1 ;; esac
|
|
226
|
+
if command -v sha256sum >/dev/null 2>&1; then
|
|
227
|
+
digest=$(sha256sum "$source_file" | awk '{print $1}')
|
|
228
|
+
else
|
|
229
|
+
digest=$(shasum -a 256 "$source_file" | awk '{print $1}')
|
|
230
|
+
fi
|
|
231
|
+
printf '%s %s\n' "$digest" "$relative_file" >> "$hash_tmp"
|
|
232
|
+
done
|
|
233
|
+
mv "$hash_tmp" "$hash_path"
|
|
234
|
+
if [ "$hash_path" = "$local_dir/contents.sha256" ] && command -v sha256sum >/dev/null 2>&1; then
|
|
235
|
+
(cd "$local_dir" && sha256sum -c contents.sha256 >/dev/null)
|
|
236
|
+
elif [ "$hash_path" = "$local_dir/contents.sha256" ]; then
|
|
237
|
+
(cd "$local_dir" && shasum -a 256 -c contents.sha256 >/dev/null)
|
|
238
|
+
fi
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
validate_source_hash() {
|
|
242
|
+
source_dir="$1"
|
|
243
|
+
[ -f "$source_dir/task.md" ] || { echo "Archive source lacks task.md: $source_dir" >&2; return 1; }
|
|
244
|
+
[ -f "$source_dir/contents.sha256" ] || { echo "Archive source lacks contents.sha256: $source_dir" >&2; return 1; }
|
|
245
|
+
write_contents_hash "$source_dir" "$tmpdir/contents.expected"
|
|
246
|
+
if ! cmp -s "$tmpdir/contents.expected" "$source_dir/contents.sha256"; then
|
|
247
|
+
echo "Archive source checksum mismatch: $source_dir" >&2
|
|
248
|
+
return 1
|
|
249
|
+
fi
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
validate_existing_archive() {
|
|
253
|
+
[ -d "$ARCHIVE_DIR" ] || return 0
|
|
254
|
+
for year_dir in "$ARCHIVE_DIR"/[0-9][0-9][0-9][0-9]; do
|
|
255
|
+
[ -d "$year_dir" ] || continue
|
|
256
|
+
for month_dir in "$year_dir"/[0-9][0-9]; do
|
|
257
|
+
[ -d "$month_dir" ] || continue
|
|
258
|
+
for day_dir in "$month_dir"/[0-9][0-9]; do
|
|
259
|
+
[ -d "$day_dir" ] || continue
|
|
260
|
+
for task_dir in "$day_dir"/TASK-*; do
|
|
261
|
+
[ -d "$task_dir" ] || continue
|
|
262
|
+
[ -d "$task_dir/local" ] || { echo "Unsupported legacy archive task layout: $task_dir" >&2; return 1; }
|
|
263
|
+
for task_entry in "$task_dir"/*; do
|
|
264
|
+
[ -e "$task_entry" ] || continue
|
|
265
|
+
case "$(basename "$task_entry")" in
|
|
266
|
+
local|github|derived) [ -d "$task_entry" ] || { echo "Invalid archive source directory: $task_entry" >&2; return 1; } ;;
|
|
267
|
+
*) echo "Unexpected TASK root entry: $task_entry" >&2; return 1 ;;
|
|
268
|
+
esac
|
|
269
|
+
done
|
|
270
|
+
find "$task_dir/local" -name manifest.md -print > "$tmpdir/task-manifests.txt"
|
|
271
|
+
[ ! -s "$tmpdir/task-manifests.txt" ] || { echo "TASK content cannot contain manifest.md: $task_dir" >&2; return 1; }
|
|
272
|
+
find "$task_dir/local" ! -type f ! -type d -print > "$tmpdir/task-special-files.txt"
|
|
273
|
+
[ ! -s "$tmpdir/task-special-files.txt" ] || { echo "TASK content cannot contain symbolic links or special files: $task_dir" >&2; return 1; }
|
|
274
|
+
validate_source_hash "$task_dir/local"
|
|
275
|
+
done
|
|
276
|
+
done
|
|
277
|
+
done
|
|
278
|
+
done
|
|
279
|
+
}
|
|
280
|
+
|
|
188
281
|
should_archive_filtered_task() {
|
|
189
282
|
task_dir="$1"
|
|
190
283
|
task_file="$task_dir/task.md"
|
|
@@ -231,7 +324,7 @@ rebuild_manifest() {
|
|
|
231
324
|
[ -d "$task_dir" ] || continue
|
|
232
325
|
|
|
233
326
|
task_id=$(basename "$task_dir")
|
|
234
|
-
task_file="$task_dir/task.md"
|
|
327
|
+
task_file="$task_dir/local/task.md"
|
|
235
328
|
relative_path="$year/$month/$day/$task_id/"
|
|
236
329
|
title="$task_id"
|
|
237
330
|
task_type="unknown"
|
|
@@ -261,7 +354,15 @@ rebuild_manifest() {
|
|
|
261
354
|
done
|
|
262
355
|
done
|
|
263
356
|
|
|
264
|
-
|
|
357
|
+
rm -f "$ARCHIVE_DIR/manifest.md"
|
|
358
|
+
for year_dir in "$ARCHIVE_DIR"/[0-9][0-9][0-9][0-9]; do
|
|
359
|
+
[ -d "$year_dir" ] || continue
|
|
360
|
+
rm -f "$year_dir/manifest.md"
|
|
361
|
+
for month_dir in "$year_dir"/[0-9][0-9]; do
|
|
362
|
+
[ -d "$month_dir" ] || continue
|
|
363
|
+
rm -f "$month_dir/manifest.md"
|
|
364
|
+
done
|
|
365
|
+
done
|
|
265
366
|
|
|
266
367
|
awk -F'\t' '{print $1 "\t" $2}' "$entries_file" | LC_ALL=C sort -u > "$month_keys_file"
|
|
267
368
|
awk -F'\t' '{print $1}' "$entries_file" | LC_ALL=C sort -u > "$year_keys_file"
|
|
@@ -436,6 +537,8 @@ if [ -s "$IDS_FILE" ]; then
|
|
|
436
537
|
MODE="ids"
|
|
437
538
|
fi
|
|
438
539
|
|
|
540
|
+
validate_existing_archive
|
|
541
|
+
|
|
439
542
|
archived_count=0
|
|
440
543
|
skipped_count=0
|
|
441
544
|
|
|
@@ -86,6 +86,8 @@ Run the verification gate to confirm the task artifact and sync state are valid:
|
|
|
86
86
|
agent-infra-internal task-verify {task-id} block-task.completed --format text
|
|
87
87
|
```
|
|
88
88
|
|
|
89
|
+
Present the verification summary per `.agents/rules/validation-output.md`, retaining necessary failure, blocked, and soft-warning diagnostics.
|
|
90
|
+
|
|
89
91
|
Handle the result as follows:
|
|
90
92
|
- exit code 0 (all checks passed) -> continue to the "Inform User" step
|
|
91
93
|
- exit code 1 (validation failed) -> fix the reported issues and run the gate again
|
|
@@ -92,7 +92,7 @@ agent-infra-internal task-verify {task-id} block-task.completed --format text
|
|
|
92
92
|
- 退出码 1(校验失败)-> 根据输出修复问题后重新运行校验
|
|
93
93
|
- 退出码 2(网络中断)-> 停止执行并告知用户需要人工介入
|
|
94
94
|
|
|
95
|
-
|
|
95
|
+
按 `.agents/rules/validation-output.md` 展示当次校验摘要;没有当次校验输出,不得声明完成。
|
|
96
96
|
|
|
97
97
|
### 8. 告知用户
|
|
98
98
|
|
|
@@ -93,6 +93,8 @@ Run the verification gate to confirm the moved task and sync state are valid:
|
|
|
93
93
|
agent-infra-internal task-verify {task-id} cancel-task.completed --format text
|
|
94
94
|
```
|
|
95
95
|
|
|
96
|
+
Present the verification summary per `.agents/rules/validation-output.md`, retaining necessary failure, blocked, and soft-warning diagnostics.
|
|
97
|
+
|
|
96
98
|
Handle the result as follows:
|
|
97
99
|
- exit code 0 (all checks passed) -> continue to the "Inform User" step
|
|
98
100
|
- exit code 1 (validation failed) -> fix the reported issues and run the gate again
|
|
@@ -97,7 +97,7 @@ agent-infra-internal task-verify {task-id} cancel-task.completed --format text
|
|
|
97
97
|
- 退出码 1(校验失败)-> 根据输出修复问题后重新运行校验
|
|
98
98
|
- 退出码 2(网络中断)-> 停止执行并告知用户需要人工介入
|
|
99
99
|
|
|
100
|
-
|
|
100
|
+
按 `.agents/rules/validation-output.md` 展示当次校验摘要;没有当次校验输出,不得声明完成。
|
|
101
101
|
|
|
102
102
|
### 8. 告知用户
|
|
103
103
|
|
|
@@ -23,7 +23,7 @@ This stage consumes only the canonical path fact parsed by core from the latest
|
|
|
23
23
|
|
|
24
24
|
Before generating the implementation report, read `.agents/rules/evidence-reporting.md`. Successful tests record the command, target scope, status or structured result, actual result, and uncovered parts; failures, blocking conditions, or disputes retain a reproducible entry point, exact location, and decisive excerpt instead of complete successful stdout.
|
|
25
25
|
|
|
26
|
-
- When evaluating candidate qualification or `HD-N`, read `.agents/rules/decision-qualification.md`, audit normalized task constraints/candidates, and record the
|
|
26
|
+
- When evaluating candidate qualification or `HD-N`, read `.agents/rules/decision-qualification.md`, audit normalized task constraints/candidates, and record the three qualification-audit decision tables and snapshot in the implementation report; unknown or unconfirmed constraints must not automatically exclude a candidate
|
|
27
27
|
- Follow the lifecycle input selected by core: `analysis.md` / `analysis-r{N}.md` for the streamlined path, and `plan.md` / `plan-r{N}.md` for the standard or full path
|
|
28
28
|
- Before generating task or lifecycle Markdown that will be synchronized to an Issue, read `.agents/rules/sync-content-generation.md` and apply its producer-side constraints; the sync path does not parse or rewrite the body
|
|
29
29
|
- Read `.agents/rules/compatibility-policy.md` before implementation. Implement only the compatibility budget explicitly approved by the plan; never retain old branches, result contracts, or migration shims merely to be “safe”
|
|
@@ -165,6 +165,8 @@ If task.md has a valid `platform_issue_identity`, read `.agents/rules/issue-sync
|
|
|
165
165
|
agent-infra-internal task-verify {task-id} code.completed --artifact {code-artifact} --format text
|
|
166
166
|
```
|
|
167
167
|
|
|
168
|
+
Present the verification summary per `.agents/rules/validation-output.md`, retaining necessary failure, blocked, and soft-warning diagnostics.
|
|
169
|
+
|
|
168
170
|
### 13. Tell the User
|
|
169
171
|
|
|
170
172
|
Use `reference/output-template.md` (or `reference/fix-mode.md` in fix mode) and render the selected next-step commands through the shared helper. Do not push, create a PR, or invoke the `commit` skill here.
|
|
@@ -23,7 +23,7 @@ description: >
|
|
|
23
23
|
|
|
24
24
|
生成实现报告时,先读取 `.agents/rules/evidence-reporting.md`。成功测试记录命令、目标范围、状态/结构化结果、实际结果和未覆盖部分;失败、阻塞或争议保留复现入口、准确位置和决定性摘录,不默认粘贴完整成功 stdout。
|
|
25
25
|
|
|
26
|
-
- 涉及候选资格或 `HD-N` 判断时,先读取 `.agents/rules/decision-qualification.md`,基于 task.md
|
|
26
|
+
- 涉及候选资格或 `HD-N` 判断时,先读取 `.agents/rules/decision-qualification.md`,基于 task.md 规范化约束/候选完成资格审计,并在实现报告记录三张资格审计决策表和资格快照;不得把来源不明或未确认约束自动升级为排除条件
|
|
27
27
|
- 严格遵循核心选择的最新生命周期输入:精简路径为 `analysis.md` / `analysis-r{N}.md`,标准或完整路径为 `plan.md` / `plan-r{N}.md`
|
|
28
28
|
- 生成会同步到 Issue 的任务或生命周期 Markdown 前,先读取 `.agents/rules/sync-content-generation.md` 并遵循其中的生成端约束;同步端不解析或改写正文
|
|
29
29
|
- 实现前读取 `.agents/rules/compatibility-policy.md`;只实现方案明确批准的兼容预算,不以“稳妥”为由保留旧分支、旧结果契约或迁移 shim
|
|
@@ -217,7 +217,7 @@ agent-infra-internal task-verify {task-id} code.completed --artifact {code-artif
|
|
|
217
217
|
- 退出码 1(校验失败)-> 根据输出修复问题后重新运行校验
|
|
218
218
|
- 退出码 2(网络中断)-> 停止执行并告知用户需要人工介入
|
|
219
219
|
|
|
220
|
-
|
|
220
|
+
按 `.agents/rules/validation-output.md` 展示当次校验摘要;没有当次校验输出,不得声明完成。
|
|
221
221
|
|
|
222
222
|
### 13. 告知用户
|
|
223
223
|
|
|
@@ -26,7 +26,7 @@ Use this structure when creating `code.md` or `code-r{N}.md`.
|
|
|
26
26
|
|
|
27
27
|
## Qualification Audit
|
|
28
28
|
|
|
29
|
-
>
|
|
29
|
+
> Include this section only when this stage actually evaluates candidate qualification, constraint dependencies, or human-decision eligibility. In that case, record all three decision tables and the qualification snapshot per `.agents/rules/decision-qualification.md`; otherwise omit this section entirely.
|
|
30
30
|
|
|
31
31
|
### Constraint Dependencies
|
|
32
32
|
| constraint_id | constraint_digest | role | evidence |
|
|
@@ -40,13 +40,9 @@ Use this structure when creating `code.md` or `code-r{N}.md`.
|
|
|
40
40
|
| decision_id | classification | evidence |
|
|
41
41
|
| --- | --- | --- |
|
|
42
42
|
|
|
43
|
-
###
|
|
44
|
-
|
|
|
45
|
-
| --- | --- |
|
|
46
|
-
|
|
47
|
-
### Dependency Snapshot
|
|
48
|
-
| task_input_digest | non_constraint_input_digest | upstream_artifact_digest |
|
|
49
|
-
| --- | --- | --- |
|
|
43
|
+
### Qualification Snapshot
|
|
44
|
+
| task_input_digest | non_constraint_input_digest |
|
|
45
|
+
| --- | --- |
|
|
50
46
|
|
|
51
47
|
## Changed Files
|
|
52
48
|
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
|
|
27
27
|
## 资格审计
|
|
28
28
|
|
|
29
|
-
>
|
|
29
|
+
> 仅当本阶段实际判断候选资格、约束依赖或人工裁决资格时填写本节,并按 `.agents/rules/decision-qualification.md` 完整记录三张决策表和资格快照;否则删除整个审计段。
|
|
30
30
|
|
|
31
31
|
### 约束依赖
|
|
32
32
|
| constraint_id | constraint_digest | role | evidence |
|
|
@@ -40,13 +40,9 @@
|
|
|
40
40
|
| decision_id | classification | evidence |
|
|
41
41
|
| --- | --- | --- |
|
|
42
42
|
|
|
43
|
-
###
|
|
44
|
-
|
|
|
45
|
-
| --- | --- |
|
|
46
|
-
|
|
47
|
-
### 依赖快照
|
|
48
|
-
| task_input_digest | non_constraint_input_digest | upstream_artifact_digest |
|
|
49
|
-
| --- | --- | --- |
|
|
43
|
+
### 资格快照
|
|
44
|
+
| task_input_digest | non_constraint_input_digest |
|
|
45
|
+
| --- | --- |
|
|
50
46
|
|
|
51
47
|
## 变更文件
|
|
52
48
|
|
|
@@ -92,7 +92,7 @@ date "+%Y-%m-%d %H:%M:%S%z" | sed 's/\([+-][0-9][0-9]\)\([0-9][0-9]\)$/\1:\2/'
|
|
|
92
92
|
agent-infra-internal task-verify {task-id} commit.completed --format text
|
|
93
93
|
```
|
|
94
94
|
|
|
95
|
-
|
|
95
|
+
Present the verification summary per `.agents/rules/validation-output.md`; do not claim task finalization without fresh verification output.
|
|
96
96
|
|
|
97
97
|
## 6. Render the next step
|
|
98
98
|
|
|
@@ -92,7 +92,7 @@ date "+%Y-%m-%d %H:%M:%S%z" | sed 's/\([+-][0-9][0-9]\)\([0-9][0-9]\)$/\1:\2/'
|
|
|
92
92
|
agent-infra-internal task-verify {task-id} commit.completed --format text
|
|
93
93
|
```
|
|
94
94
|
|
|
95
|
-
|
|
95
|
+
按 `.agents/rules/validation-output.md` 展示校验摘要;没有当次校验输出,不得声明任务收尾完成。
|
|
96
96
|
|
|
97
97
|
## 6. 输出下一步
|
|
98
98
|
|
|
@@ -126,7 +126,7 @@ Handle the result:
|
|
|
126
126
|
Report:
|
|
127
127
|
- Artifact path
|
|
128
128
|
- PR summary sync result
|
|
129
|
-
-
|
|
129
|
+
- Present the completion verification summary per `.agents/rules/validation-output.md`
|
|
130
130
|
- Suggested next step: enter the final closing flow and run /complete-task --task {task-ref}
|
|
131
131
|
|
|
132
132
|
Before rendering the final output, read `.agents/rules/next-step-output.md` and append `Completed at: YYYY-MM-DD HH:mm:ss` as the absolute last line.
|
|
@@ -126,7 +126,7 @@ agent-infra-internal task-verify {task-id} manual-validation.completed --artifac
|
|
|
126
126
|
输出:
|
|
127
127
|
- 产物路径
|
|
128
128
|
- PR 摘要同步结果
|
|
129
|
-
-
|
|
129
|
+
- 按 `.agents/rules/validation-output.md` 展示当次完成校验摘要
|
|
130
130
|
- 下一步建议:进入最终收尾流程,运行 /complete-task --task {task-ref}
|
|
131
131
|
|
|
132
132
|
渲染最终输出前,先读取 `.agents/rules/next-step-output.md`,并在绝对最后一行追加 `Completed at: YYYY-MM-DD HH:mm:ss`。
|
|
@@ -164,6 +164,8 @@ After platform writes succeed and before moving the directory or releasing the s
|
|
|
164
164
|
agent-infra-internal task-verify {task-id} complete-task.preflight --format text
|
|
165
165
|
```
|
|
166
166
|
|
|
167
|
+
Present the verification summary per `.agents/rules/validation-output.md`, retaining necessary failure, blocked, and soft-warning diagnostics.
|
|
168
|
+
|
|
167
169
|
This event runs only the required-PR delivery hard preflight; host finalization still enforces identity, concurrency, and local atomicity before lifecycle. Peripheral review/manual/platform checks run through `complete-task.completed` after lifecycle and are projected as warning/pending steps. On a hard-gate non-zero exit (fail/blocked), keep the task active, record the stable code/target, and stop.
|
|
168
170
|
|
|
169
171
|
If a summary must mirror a human-decided `post-review-commit` exemption, make a best-effort sync in Step 4 with the original failure code/message, PRC id/evidence, and ruling details. A sync failure records `SUMMARY_SYNC_FAILED` and still allows lifecycle; terminal verification decides the final state.
|
|
@@ -163,6 +163,8 @@ agent-infra-internal task-warning {task-id} add --step complete-task --severity
|
|
|
163
163
|
agent-infra-internal task-verify {task-id} complete-task.preflight --format text
|
|
164
164
|
```
|
|
165
165
|
|
|
166
|
+
按 `.agents/rules/validation-output.md` 展示当次校验摘要;失败、阻塞和软警告保留必要诊断。
|
|
167
|
+
|
|
166
168
|
该事件只执行 required-PR delivery hard preflight;身份、并发和本地原子性仍由宿主 finalization 强制执行。外围 review/manual/platform 检查在 lifecycle 后由 `complete-task.completed` 处理,并投影为 warning/pending steps。硬门禁退出码非 0(fail/blocked)时,任务继续留在 active,记录稳定 code/target 后停止。
|
|
167
169
|
|
|
168
170
|
若需要在摘要中镜像 `post-review-commit` 的 human-decided exemption,在步骤 4 尽力同步原始 failure code/message、PRC id/evidence 和裁决信息;同步失败只记录 `SUMMARY_SYNC_FAILED` warning,仍继续生命周期。最终是否完成由生命周期后的 terminal verification 决定。
|
|
@@ -102,6 +102,8 @@ If this operation is associated with `{task-id}`, run the verification gate to c
|
|
|
102
102
|
agent-infra-internal task-verify {task-id} create-pr.completed --format text
|
|
103
103
|
```
|
|
104
104
|
|
|
105
|
+
Present the verification summary per `.agents/rules/validation-output.md`, retaining necessary failure, blocked, and soft-warning diagnostics.
|
|
106
|
+
|
|
105
107
|
Handle the result as follows:
|
|
106
108
|
- exit code 0 (all checks passed) -> continue to the "Inform User" step
|
|
107
109
|
- exit code 1 (validation failed) -> fix the reported issues and run the gate again
|
|
@@ -107,7 +107,7 @@ agent-infra-internal task-verify {task-id} create-pr.completed --format text
|
|
|
107
107
|
- 退出码 1(校验失败)-> 根据输出修复问题后重新运行校验
|
|
108
108
|
- 退出码 2(网络中断)-> 停止执行并告知用户需要人工介入
|
|
109
109
|
|
|
110
|
-
|
|
110
|
+
按 `.agents/rules/validation-output.md` 展示当次校验摘要;没有当次校验输出,不得声明完成。
|
|
111
111
|
|
|
112
112
|
### 11. 告知用户
|
|
113
113
|
|
|
@@ -53,6 +53,7 @@ agent-infra-internal platform-release-notes context \
|
|
|
53
53
|
|
|
54
54
|
**Purpose**:
|
|
55
55
|
- Part A: Analyze the section structure, heading style, emoji usage, and item format from the latest 3 historical release notes
|
|
56
|
+
- Each `history` item contains a tag, body, and Release URL; use the body as a format sample, not as current change facts
|
|
56
57
|
- Part B: Provide a static complete category list so no existing category is omitted
|
|
57
58
|
- This static list ensures existing category names are not missed during classification; if the current release has no entries for a category, Step 7 still omits the empty section
|
|
58
59
|
- When generating release notes in Step 7, **must** follow both the historical format style and the full category list gathered in Step 3
|
|
@@ -60,7 +61,7 @@ agent-infra-internal platform-release-notes context \
|
|
|
60
61
|
|
|
61
62
|
### 4. Collect Merged PRs and Contributors
|
|
62
63
|
|
|
63
|
-
Use `pullRequests` and `commits` from Step 3. Each commit's `authors`
|
|
64
|
+
Use `pullRequests` and `commits` from Step 3. Each commit's `authors` contains only that commit's platform authors; `pullRequestNumbers` records the platform's PR associations. The skill does not interpret raw platform fields or email rules. A PR's `closingIssues` contains its actual closing Issues; never infer a relationship from matching PR and Issue numbers.
|
|
64
65
|
|
|
65
66
|
### 5. Collect Related Issues
|
|
66
67
|
|
|
@@ -79,31 +80,36 @@ Use each PR's `closingIssues` from Step 3. Do not parse platform-specific refere
|
|
|
79
80
|
|
|
80
81
|
### 7. Generate Release Notes
|
|
81
82
|
|
|
82
|
-
**Prioritize the historical format style obtained in Step 3 and ensure all categories listed in Step 3 are covered.**
|
|
83
|
+
**Prioritize the historical format style obtained in Step 3 and ensure all categories listed in Step 3 are covered.** Dynamically use the latest 3 published notes each time. Treat sections, bilingual layout, and installation instructions shared by those notes as stable format; allow item content to vary by release. Never copy an example's authors or links into the current release.
|
|
83
84
|
|
|
84
85
|
If no historical release notes exist, use the following default Markdown format:
|
|
85
86
|
|
|
86
87
|
```markdown
|
|
87
|
-
## {Module/
|
|
88
|
+
## {Module / 模块}
|
|
88
89
|
|
|
89
|
-
### Enhancement
|
|
90
|
+
### Enhancement / 增强
|
|
90
91
|
|
|
91
92
|
- [{scope}] Description by @author in [#N](url)
|
|
92
93
|
|
|
93
|
-
### Bugfix
|
|
94
|
+
### Bugfix / 修复
|
|
94
95
|
|
|
95
96
|
- [{scope}] Description by @author in [#N](url)
|
|
96
97
|
|
|
97
|
-
## Contributors
|
|
98
|
+
## Contributors / 贡献者
|
|
98
99
|
|
|
99
100
|
@contributor1, @contributor2, @contributor3, @reporter1 (reported #N)
|
|
101
|
+
|
|
102
|
+
## Installation / 安装
|
|
103
|
+
|
|
104
|
+
{English and Chinese installation instructions for this release, following stable steps in historical notes}
|
|
100
105
|
```
|
|
101
106
|
|
|
102
107
|
**Format rules**:
|
|
103
|
-
1.
|
|
104
|
-
2. Issue + PR: `in [#Issue](url) and [#PR](url)`
|
|
105
|
-
3.
|
|
106
|
-
4.
|
|
108
|
+
1. PR item format: `- [scope] Description by @author in [#N](url)`
|
|
109
|
+
2. Issue + PR: `in [#Issue](url) and [#PR](url)`; Issue reporters come from that PR's `closingIssues`
|
|
110
|
+
3. Render each commit with an empty `pullRequestNumbers` as a standalone item using its subject and resolvable author; link to the commit itself when its URL is available, without adding an Issue or PR link
|
|
111
|
+
4. Description: Use the PR title or commit subject; remove `type(scope):` from PR titles and capitalize the first letter
|
|
112
|
+
5. **Contributor collection**:
|
|
107
113
|
- **Data sources**:
|
|
108
114
|
- PR authors from the typed context
|
|
109
115
|
- Commit co-authors from the typed context's commit `authors`
|
|
@@ -123,7 +129,7 @@ If no historical release notes exist, use the following default Markdown format:
|
|
|
123
129
|
- Reporter-only contributors use the format `@login (reported #N)`; if the same reporter reported multiple Issues, use `@login (reported #N1, #N2)`
|
|
124
130
|
- Reporters are appended after code contributors in the Contributors section, separated by commas
|
|
125
131
|
- Sort reporters by reported Issue count descending, then lexicographically by login for ties
|
|
126
|
-
|
|
132
|
+
6. Empty sections: Omit categories with no entries; retain bilingual headings and the installation section from the historical format
|
|
127
133
|
|
|
128
134
|
### 8. Stage, Present, and Confirm
|
|
129
135
|
|
|
@@ -53,6 +53,7 @@ agent-infra-internal platform-release-notes context \
|
|
|
53
53
|
|
|
54
54
|
**用途**:
|
|
55
55
|
- Part A:分析最近 3 条历史发布说明的章节结构、标题风格、emoji 使用、条目格式
|
|
56
|
+
- 每项 `history` 含 tag、正文和 Release URL;正文只作为格式样例,不作为当前版本的变更事实
|
|
56
57
|
- Part B:提供静态完整分类清单,确保后续生成时不遗漏已有分类
|
|
57
58
|
- 该静态清单用于确保变更分类时不遗漏已有类别名称;若当前版本无该类变更,仍按步骤 7 的格式规则省略空分类
|
|
58
59
|
- 后续步骤 7 生成发布说明时,**必须**同时参考步骤 3 的历史格式风格和完整分类清单,保持版本间的一致性
|
|
@@ -60,7 +61,7 @@ agent-infra-internal platform-release-notes context \
|
|
|
60
61
|
|
|
61
62
|
### 4. 收集已合并的 PR 与贡献者
|
|
62
63
|
|
|
63
|
-
使用步骤 3 返回的 `pullRequests` 与 `commits`。每个 commit 的 `authors`
|
|
64
|
+
使用步骤 3 返回的 `pullRequests` 与 `commits`。每个 commit 的 `authors` 只包含该 commit 的平台作者;`pullRequestNumbers` 表示平台记录的 PR 关联。技能不读取平台原始字段或邮箱规则。PR 的 `closingIssues` 是该 PR 实际关闭的 Issue,不按 PR/Issue 编号推断关联。
|
|
64
65
|
|
|
65
66
|
### 5. 收集关联 Issue
|
|
66
67
|
|
|
@@ -79,31 +80,36 @@ agent-infra-internal platform-release-notes context \
|
|
|
79
80
|
|
|
80
81
|
### 7. 生成发布说明
|
|
81
82
|
|
|
82
|
-
**优先使用步骤 3 中获取的历史格式风格,并确保覆盖步骤 3 列出的所有分类。**
|
|
83
|
+
**优先使用步骤 3 中获取的历史格式风格,并确保覆盖步骤 3 列出的所有分类。** 每次动态参考最近 3 条已发布说明;把这些正文共同使用的章节、双语布局和安装段作为稳定格式,条目内容按当前版本变化。不要把样例中的作者或链接复制到当前版本。
|
|
83
84
|
|
|
84
85
|
如果没有历史发布说明,使用以下默认格式化为 Markdown:
|
|
85
86
|
|
|
86
87
|
```markdown
|
|
87
|
-
## {
|
|
88
|
+
## {Module / 模块}
|
|
88
89
|
|
|
89
|
-
### Enhancement
|
|
90
|
+
### Enhancement / 增强
|
|
90
91
|
|
|
91
92
|
- [{scope}] Description by @author in [#N](url)
|
|
92
93
|
|
|
93
|
-
### Bugfix
|
|
94
|
+
### Bugfix / 修复
|
|
94
95
|
|
|
95
96
|
- [{scope}] Description by @author in [#N](url)
|
|
96
97
|
|
|
97
|
-
## Contributors
|
|
98
|
+
## Contributors / 贡献者
|
|
98
99
|
|
|
99
100
|
@contributor1, @contributor2, @contributor3, @reporter1 (reported #N)
|
|
101
|
+
|
|
102
|
+
## Installation / 安装
|
|
103
|
+
|
|
104
|
+
{本版本的中英文安装说明,沿用历史正文中的稳定安装步骤}
|
|
100
105
|
```
|
|
101
106
|
|
|
102
107
|
**格式规则**:
|
|
103
|
-
1. 条目格式:`- [scope] Description by @author in [#N](url)`
|
|
104
|
-
2. Issue + PR:`in [#Issue](url) and [#PR](url)`
|
|
105
|
-
3.
|
|
106
|
-
4.
|
|
108
|
+
1. PR 条目格式:`- [scope] Description by @author in [#N](url)`
|
|
109
|
+
2. Issue + PR:`in [#Issue](url) and [#PR](url)`;Issue reporter 来自该 PR 的 `closingIssues`
|
|
110
|
+
3. `pullRequestNumbers` 为空的 commit 单独作为条目,使用 commit subject 和可解析作者;有 commit URL 时链接 commit 本身,不添加 Issue/PR 链接
|
|
111
|
+
4. 描述:使用 PR 标题或 commit subject;移除 PR 标题中的 `type(scope):` 前缀,首字母大写
|
|
112
|
+
5. **贡献者搜集**:
|
|
107
113
|
- **数据源**:
|
|
108
114
|
- PR author:来自 `.agents/rules/release-commands.md` 中已合并 PR 查询规则
|
|
109
115
|
- Commit co-authors:来自步骤 3 typed context 的 commit `authors`
|
|
@@ -123,7 +129,7 @@ agent-infra-internal platform-release-notes context \
|
|
|
123
129
|
- 仅报告贡献的用户以 `@login (reported #N)` 格式展示;同一 reporter 报告多个 Issue 时使用 `@login (reported #N1, #N2)`
|
|
124
130
|
- Reporter 在 Contributors 段落中排在代码贡献者之后,以逗号分隔追加
|
|
125
131
|
- Reporter 之间按报告的 Issue 数量降序排列,数量相同时按 login 字典序
|
|
126
|
-
|
|
132
|
+
6. 空部分:省略没有条目的分类;保留历史格式中的双语章节与安装段
|
|
127
133
|
|
|
128
134
|
### 8. Stage、展示并确认
|
|
129
135
|
|
|
@@ -153,6 +153,8 @@ The host `task-create` service runs the same typed gate before returning. Consum
|
|
|
153
153
|
agent-infra-internal task-verify {task-id} create-task.completed --format text
|
|
154
154
|
```
|
|
155
155
|
|
|
156
|
+
Present the verification summary per `.agents/rules/validation-output.md`, retaining necessary failure, blocked, and soft-warning diagnostics.
|
|
157
|
+
|
|
156
158
|
Handle the result as follows:
|
|
157
159
|
- exit code 0 (all checks passed) -> continue to the "Inform User" step
|
|
158
160
|
- exit code 1 (validation failed) -> fix the reported issues and run the gate again
|
|
@@ -156,7 +156,7 @@ agent-infra-internal task-verify {task-id} create-task.completed --format text
|
|
|
156
156
|
- 退出码 1(校验失败)-> 根据输出修复问题后重新运行校验
|
|
157
157
|
- 退出码 2(网络中断)-> 停止执行并告知用户需要人工介入
|
|
158
158
|
|
|
159
|
-
|
|
159
|
+
按 `.agents/rules/validation-output.md` 展示当次校验摘要;没有当次校验输出,不得声明完成。
|
|
160
160
|
|
|
161
161
|
### 6. 告知用户
|
|
162
162
|
|
|
@@ -86,6 +86,8 @@ Run the verification gate to confirm the task artifact and sync state are valid:
|
|
|
86
86
|
agent-infra-internal task-verify {task-id} import-codescan.completed --format text
|
|
87
87
|
```
|
|
88
88
|
|
|
89
|
+
Present the verification summary per `.agents/rules/validation-output.md`, retaining necessary failure, blocked, and soft-warning diagnostics.
|
|
90
|
+
|
|
89
91
|
Handle the result as follows:
|
|
90
92
|
- exit code 0 (all checks passed) -> continue to the "Inform User" step
|
|
91
93
|
- exit code 1 (validation failed) -> fix the reported issues and run the gate again
|
|
@@ -91,7 +91,7 @@ agent-infra-internal task-verify {task-id} import-codescan.completed --format te
|
|
|
91
91
|
- 退出码 1(校验失败)-> 根据输出修复问题后重新运行校验
|
|
92
92
|
- 退出码 2(网络中断)-> 停止执行并告知用户需要人工介入
|
|
93
93
|
|
|
94
|
-
|
|
94
|
+
按 `.agents/rules/validation-output.md` 展示当次校验摘要;没有当次校验输出,不得声明完成。
|
|
95
95
|
|
|
96
96
|
### 5. 告知用户
|
|
97
97
|
|
|
@@ -89,6 +89,8 @@ Run the verification gate to confirm the task artifact and sync state are valid:
|
|
|
89
89
|
agent-infra-internal task-verify {task-id} import-dependabot.completed --format text
|
|
90
90
|
```
|
|
91
91
|
|
|
92
|
+
Present the verification summary per `.agents/rules/validation-output.md`, retaining necessary failure, blocked, and soft-warning diagnostics.
|
|
93
|
+
|
|
92
94
|
Handle the result as follows:
|
|
93
95
|
- exit code 0 (all checks passed) -> continue to the "Inform User" step
|
|
94
96
|
- exit code 1 (validation failed) -> fix the reported issues and run the gate again
|
|
@@ -94,7 +94,7 @@ agent-infra-internal task-verify {task-id} import-dependabot.completed --format
|
|
|
94
94
|
- 退出码 1(校验失败)-> 根据输出修复问题后重新运行校验
|
|
95
95
|
- 退出码 2(网络中断)-> 停止执行并告知用户需要人工介入
|
|
96
96
|
|
|
97
|
-
|
|
97
|
+
按 `.agents/rules/validation-output.md` 展示当次校验摘要;没有当次校验输出,不得声明完成。
|
|
98
98
|
|
|
99
99
|
### 5. 告知用户
|
|
100
100
|
|
|
@@ -167,6 +167,8 @@ Run the verification gate to confirm the task artifact and sync state are valid:
|
|
|
167
167
|
agent-infra-internal task-verify {task-id} import-issue.completed --format text
|
|
168
168
|
```
|
|
169
169
|
|
|
170
|
+
Present the verification summary per `.agents/rules/validation-output.md`, retaining necessary failure, blocked, and soft-warning diagnostics.
|
|
171
|
+
|
|
170
172
|
Handle the result as follows:
|
|
171
173
|
- exit code 0 (all checks passed) -> continue to the "Inform User" step
|
|
172
174
|
- exit code 1 (validation failed) -> fix the reported issues and run the gate again
|
|
@@ -172,7 +172,7 @@ agent-infra-internal task-verify {task-id} import-issue.completed --format text
|
|
|
172
172
|
- 退出码 1(校验失败)-> 根据输出修复问题后重新运行校验
|
|
173
173
|
- 退出码 2(网络中断)-> 停止执行并告知用户需要人工介入
|
|
174
174
|
|
|
175
|
-
|
|
175
|
+
按 `.agents/rules/validation-output.md` 展示当次校验摘要;没有当次校验输出,不得声明完成。
|
|
176
176
|
|
|
177
177
|
### 7. 告知用户
|
|
178
178
|
|
|
@@ -21,7 +21,7 @@ This stage consumes only the canonical path fact parsed by core from the latest
|
|
|
21
21
|
|
|
22
22
|
Before generating the plan report, read `.agents/rules/evidence-reporting.md`. Record the command, target scope, status or structured result, actual result, and uncovered parts for state checks and verification; include decisive raw excerpts only for failures, blocking conditions, or disputes.
|
|
23
23
|
|
|
24
|
-
- When evaluating candidate qualification or `HD-N`, read `.agents/rules/decision-qualification.md`, audit normalized task constraints/candidates, and record the
|
|
24
|
+
- When evaluating candidate qualification or `HD-N`, read `.agents/rules/decision-qualification.md`, audit normalized task constraints/candidates, and record the three qualification-audit decision tables and snapshot in the plan artifact; unknown or unconfirmed constraints must not automatically exclude a candidate
|
|
25
25
|
- This skill only outputs a technical plan document (`plan.md` or `plan-r{N}.md`) and does not modify any business code
|
|
26
26
|
- The full path proceeds to plan review; the standard path may proceed directly to implementation
|
|
27
27
|
- Before generating task or lifecycle Markdown that will be synchronized to an Issue, read `.agents/rules/sync-content-generation.md` and apply its producer-side constraints; the sync path does not parse or rewrite the body
|
|
@@ -159,6 +159,8 @@ Run the verification gate to confirm the task artifact and sync state are valid:
|
|
|
159
159
|
agent-infra-internal task-verify {task-id} plan.completed --artifact {plan-artifact} --format text
|
|
160
160
|
```
|
|
161
161
|
|
|
162
|
+
Present the verification summary per `.agents/rules/validation-output.md`, retaining necessary failure, blocked, and soft-warning diagnostics.
|
|
163
|
+
|
|
162
164
|
Handle the result as follows:
|
|
163
165
|
- exit code 0 (all checks passed) -> continue to the "Inform User" step
|
|
164
166
|
- exit code 1 (validation failed) -> fix the reported issues and run the gate again
|