@fitlab-ai/agent-infra 0.5.2 → 0.5.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/README.md +3 -3
  2. package/README.zh-CN.md +3 -3
  3. package/lib/merge.js +22 -7
  4. package/lib/sandbox/commands/rm.js +1 -1
  5. package/lib/sandbox/runtimes/base.dockerfile +17 -1
  6. package/package.json +1 -1
  7. package/templates/.agents/scripts/validate-artifact.js +3 -3
  8. package/templates/.agents/skills/analyze-task/SKILL.en.md +2 -2
  9. package/templates/.agents/skills/analyze-task/SKILL.zh-CN.md +2 -2
  10. package/templates/.agents/skills/archive-tasks/scripts/archive-tasks.sh +1 -1
  11. package/templates/.agents/skills/block-task/SKILL.en.md +2 -2
  12. package/templates/.agents/skills/block-task/SKILL.zh-CN.md +2 -2
  13. package/templates/.agents/skills/cancel-task/SKILL.en.md +12 -12
  14. package/templates/.agents/skills/cancel-task/SKILL.zh-CN.md +12 -12
  15. package/templates/.agents/skills/close-codescan/SKILL.en.md +2 -2
  16. package/templates/.agents/skills/close-codescan/SKILL.zh-CN.md +2 -2
  17. package/templates/.agents/skills/close-dependabot/SKILL.en.md +2 -2
  18. package/templates/.agents/skills/close-dependabot/SKILL.zh-CN.md +2 -2
  19. package/templates/.agents/skills/commit/SKILL.en.md +1 -1
  20. package/templates/.agents/skills/commit/SKILL.zh-CN.md +1 -1
  21. package/templates/.agents/skills/commit/reference/task-status-update.en.md +2 -2
  22. package/templates/.agents/skills/commit/reference/task-status-update.zh-CN.md +2 -2
  23. package/templates/.agents/skills/complete-task/SKILL.en.md +11 -11
  24. package/templates/.agents/skills/complete-task/SKILL.zh-CN.md +11 -11
  25. package/templates/.agents/skills/create-issue/SKILL.en.md +1 -1
  26. package/templates/.agents/skills/create-issue/SKILL.zh-CN.md +1 -1
  27. package/templates/.agents/skills/create-pr/SKILL.en.md +1 -1
  28. package/templates/.agents/skills/create-pr/SKILL.zh-CN.md +1 -1
  29. package/templates/.agents/skills/create-task/SKILL.en.md +4 -4
  30. package/templates/.agents/skills/create-task/SKILL.zh-CN.md +4 -4
  31. package/templates/.agents/skills/implement-task/SKILL.en.md +2 -2
  32. package/templates/.agents/skills/implement-task/SKILL.zh-CN.md +2 -2
  33. package/templates/.agents/skills/import-codescan/SKILL.en.md +2 -2
  34. package/templates/.agents/skills/import-codescan/SKILL.zh-CN.md +2 -2
  35. package/templates/.agents/skills/import-dependabot/SKILL.en.md +2 -2
  36. package/templates/.agents/skills/import-dependabot/SKILL.zh-CN.md +2 -2
  37. package/templates/.agents/skills/import-issue/SKILL.en.md +4 -4
  38. package/templates/.agents/skills/import-issue/SKILL.zh-CN.md +4 -4
  39. package/templates/.agents/skills/plan-task/SKILL.en.md +2 -2
  40. package/templates/.agents/skills/plan-task/SKILL.zh-CN.md +2 -2
  41. package/templates/.agents/skills/refine-task/SKILL.en.md +2 -2
  42. package/templates/.agents/skills/refine-task/SKILL.zh-CN.md +2 -2
  43. package/templates/.agents/skills/restore-task/SKILL.en.md +2 -2
  44. package/templates/.agents/skills/restore-task/SKILL.zh-CN.md +2 -2
  45. package/templates/.agents/skills/review-task/SKILL.en.md +2 -2
  46. package/templates/.agents/skills/review-task/SKILL.zh-CN.md +2 -2
  47. package/templates/.agents/skills/update-agent-infra/scripts/sync-templates.js +1 -1
  48. package/templates/.agents/templates/task.en.md +3 -3
  49. package/templates/.agents/templates/task.zh-CN.md +3 -3
package/README.md CHANGED
@@ -5,7 +5,7 @@
5
5
  <h1 align="center">Agent Infra</h1>
6
6
 
7
7
  <p align="center">
8
- The missing collaboration layer for AI coding agents — unified skills and workflows for Claude Code, Codex, Gemini CLI, and OpenCode.
8
+ Collaboration infrastructure for AI coding agents — skills, workflows, and sandboxes for Claude Code, Codex, Gemini CLI, and OpenCode.
9
9
  </p>
10
10
 
11
11
  <p align="center">
@@ -29,7 +29,7 @@
29
29
 
30
30
  Teams increasingly mix Claude Code, Codex, Gemini CLI, OpenCode, and other AI TUIs in the same repository, but each tool tends to introduce its own commands, prompts, and local conventions. Without a shared layer, the result is fragmented workflows, duplicated setup, and task history that is difficult to audit.
31
31
 
32
- agent-infra standardizes that collaboration surface. It gives every supported AI TUI the same task lifecycle, the same skill vocabulary, the same project governance files, and the same upgrade path, so teams can switch tools without rebuilding process from scratch.
32
+ agent-infra standardizes that shared infrastructure. It gives every supported AI TUI the same task lifecycle, the same skill vocabulary, the same project governance files, isolated development sandboxes, and the same upgrade path, so teams can switch tools without rebuilding process from scratch.
33
33
 
34
34
  <a id="see-it-in-action"></a>
35
35
 
@@ -410,7 +410,7 @@ The generated `.agents/.airc.json` file is the central contract between the boot
410
410
  "project": "my-project",
411
411
  "org": "my-org",
412
412
  "language": "en",
413
- "templateVersion": "v0.5.2",
413
+ "templateVersion": "v0.5.3",
414
414
  "files": {
415
415
  "managed": [
416
416
  ".agents/workspace/README.md",
package/README.zh-CN.md CHANGED
@@ -5,7 +5,7 @@
5
5
  <h1 align="center">Agent Infra</h1>
6
6
 
7
7
  <p align="center">
8
- AI 编程代理之间缺失的协作层 —— 为 Claude Code、Codex、Gemini CLI、OpenCode 提供统一的 skills 和工作流。
8
+ AI 编程代理的协作基础设施 —— 为 Claude Code、Codex、Gemini CLI、OpenCode 提供 skills、工作流和沙箱。
9
9
  </p>
10
10
 
11
11
  <p align="center">
@@ -29,7 +29,7 @@
29
29
 
30
30
  越来越多的团队会在同一个仓库里混用 Claude Code、Codex、Gemini CLI、OpenCode 等 AI TUI,但每个工具往往都会带来自己的命令体系、提示词习惯和本地约定。缺少共享层时,结果通常是工作流割裂、初始化重复、任务历史难以追踪。
31
31
 
32
- agent-infra 的目标就是把这层协作面标准化。它为所有支持的 AI TUI 提供统一的任务生命周期、统一的 skill 词汇、统一的项目治理文件以及统一的升级路径,让团队切换工具时不必重新发明流程。
32
+ agent-infra 的目标就是把这层共享基础设施标准化。它为所有支持的 AI TUI 提供统一的任务生命周期、统一的 skill 词汇、统一的项目治理文件、隔离的开发沙箱以及统一的升级路径,让团队切换工具时不必重新发明流程。
33
33
 
34
34
  <a id="see-it-in-action"></a>
35
35
 
@@ -410,7 +410,7 @@ import-issue #42 从 GitHub Issue 导入任务
410
410
  "project": "my-project",
411
411
  "org": "my-org",
412
412
  "language": "en",
413
- "templateVersion": "v0.5.2",
413
+ "templateVersion": "v0.5.3",
414
414
  "files": {
415
415
  "managed": [
416
416
  ".agents/workspace/README.md",
package/lib/merge.js CHANGED
@@ -404,15 +404,22 @@ function removeManifestFiles(rootDir) {
404
404
  }
405
405
 
406
406
  function formatTimestamp(date) {
407
+ const pad = (value) => String(value).padStart(2, '0');
408
+ const offsetMinutes = -date.getTimezoneOffset();
409
+ const sign = offsetMinutes >= 0 ? '+' : '-';
410
+ const absoluteOffsetMinutes = Math.abs(offsetMinutes);
411
+ const offsetHours = Math.floor(absoluteOffsetMinutes / 60);
412
+ const offsetRemainderMinutes = absoluteOffsetMinutes % 60;
413
+
407
414
  return [
408
415
  date.getFullYear(),
409
- String(date.getMonth() + 1).padStart(2, '0'),
410
- String(date.getDate()).padStart(2, '0')
416
+ pad(date.getMonth() + 1),
417
+ pad(date.getDate())
411
418
  ].join('-') + ' ' + [
412
- String(date.getHours()).padStart(2, '0'),
413
- String(date.getMinutes()).padStart(2, '0'),
414
- String(date.getSeconds()).padStart(2, '0')
415
- ].join(':');
419
+ pad(date.getHours()),
420
+ pad(date.getMinutes()),
421
+ pad(date.getSeconds())
422
+ ].join(':') + `${sign}${pad(offsetHours)}:${pad(offsetRemainderMinutes)}`;
416
423
  }
417
424
 
418
425
  function formatBackupTimestamp(date) {
@@ -485,7 +492,15 @@ function getTaskTimestamp(taskDir) {
485
492
  }
486
493
 
487
494
  function compareTimestamps(left, right) {
488
- return left.value.localeCompare(right.value);
495
+ const normalizeTimestamp = (timestamp) => (timestamp.includes('T') ? timestamp : timestamp.replace(' ', 'T'));
496
+ const leftMs = Date.parse(normalizeTimestamp(left.value));
497
+ const rightMs = Date.parse(normalizeTimestamp(right.value));
498
+
499
+ if (Number.isNaN(leftMs) || Number.isNaN(rightMs)) {
500
+ return left.value.localeCompare(right.value);
501
+ }
502
+
503
+ return leftMs - rightMs;
489
504
  }
490
505
 
491
506
  function scanWorkspaceSection(rootDir, sectionName) {
@@ -87,7 +87,7 @@ async function rmOne(config, tools, branch) {
87
87
 
88
88
  const shouldDeleteBranch = await p.confirm({
89
89
  message: `Also delete local branch '${effectiveBranch}'?`,
90
- initialValue: false
90
+ initialValue: true
91
91
  });
92
92
 
93
93
  if (!p.isCancel(shouldDeleteBranch) && shouldDeleteBranch) {
@@ -11,8 +11,10 @@ RUN (groupadd -g ${HOST_GID} devuser || true) && \
11
11
  useradd -u ${HOST_UID} -g ${HOST_GID} -m -s /bin/bash devuser
12
12
 
13
13
  RUN apt-get update && apt-get install -y \
14
- curl wget git vim tmux file \
14
+ curl wget git vim file \
15
15
  build-essential ca-certificates gnupg lsb-release \
16
+ libevent-core-2.1-7 libncursesw6 libtinfo6 \
17
+ pkg-config bison libevent-dev libncurses-dev \
16
18
  locales \
17
19
  && locale-gen en_US.UTF-8 \
18
20
  && (curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg \
@@ -20,6 +22,19 @@ RUN apt-get update && apt-get install -y \
20
22
  && echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" \
21
23
  > /etc/apt/sources.list.d/github-cli.list \
22
24
  && apt-get update && apt-get install -y gh \
25
+ && TMUX_VERSION=3.6a \
26
+ && wget -qO /tmp/tmux.tar.gz \
27
+ "https://github.com/tmux/tmux/releases/download/${TMUX_VERSION}/tmux-${TMUX_VERSION}.tar.gz" \
28
+ && tar xzf /tmp/tmux.tar.gz -C /tmp \
29
+ && cd /tmp/tmux-${TMUX_VERSION} \
30
+ && ./configure --prefix=/usr/local \
31
+ && make -j"$(nproc)" \
32
+ && make install \
33
+ && cd / \
34
+ && rm -rf /tmp/tmux.tar.gz /tmp/tmux-${TMUX_VERSION} \
35
+ && apt-get purge -y pkg-config bison libevent-dev libncurses-dev \
36
+ && apt-get autoremove -y \
37
+ && apt-get clean \
23
38
  && rm -rf /var/lib/apt/lists/*
24
39
 
25
40
  # Enable extended keys in CSI u format so Shift+Enter and other modified
@@ -30,6 +45,7 @@ RUN printf '%s\n' \
30
45
  'set -g extended-keys-format csi-u' \
31
46
  "set -as terminal-features 'xterm*:extkeys'" \
32
47
  "set -ga update-environment 'TERM_PROGRAM TERM_PROGRAM_VERSION LC_TERMINAL LC_TERMINAL_VERSION'" \
48
+ 'set -g mouse on' \
33
49
  > /etc/tmux.conf
34
50
 
35
51
  ENV LANG=en_US.UTF-8
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fitlab-ai/agent-infra",
3
- "version": "0.5.2",
3
+ "version": "0.5.3",
4
4
  "description": "Bootstrap tool for AI multi-tool collaboration infrastructure — works with Claude Code, Codex, Gemini CLI, and OpenCode",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -29,8 +29,8 @@ const DEFAULT_REQUIRED_FIELDS = [
29
29
 
30
30
  const DEFAULT_RETRY_DELAYS_MS = [3000, 10000];
31
31
  const DEFAULT_FRESHNESS_MINUTES = 30;
32
- const DATE_TIME_PATTERN = /^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$/;
33
- const ACTIVITY_LOG_PATTERN = /^- (\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}) — \*\*(.+?)\*\* by (.+?) — (.+)$/;
32
+ const DATE_TIME_PATTERN = /^\d{4}-\d{2}-\d{2}[T ]\d{2}:\d{2}:\d{2}(?:[+-]\d{2}:\d{2})?$/;
33
+ const ACTIVITY_LOG_PATTERN = /^- (\d{4}-\d{2}-\d{2}[T ]\d{2}:\d{2}:\d{2}(?:[+-]\d{2}:\d{2})?) — \*\*(.+?)\*\* by (.+?) — (.+)$/;
34
34
  const BRANCH_SLUG_PATTERN = /^[a-z0-9]+(?:-[a-z0-9]+)*$/;
35
35
 
36
36
  const scriptPath = fileURLToPath(import.meta.url);
@@ -1351,7 +1351,7 @@ function sleep(delayMs) {
1351
1351
  // === Utilities ===
1352
1352
 
1353
1353
  function minutesSinceTimestamp(timestamp) {
1354
- const normalized = timestamp.replace(" ", "T");
1354
+ const normalized = timestamp.includes("T") ? timestamp : timestamp.replace(" ", "T");
1355
1355
  const parsed = Date.parse(normalized);
1356
1356
  if (Number.isNaN(parsed)) {
1357
1357
  return Number.POSITIVE_INFINITY;
@@ -103,7 +103,7 @@ Create `.agents/workspace/active/{task-id}/{analysis-artifact}`.
103
103
  Get the current time:
104
104
 
105
105
  ```bash
106
- date "+%Y-%m-%d %H:%M:%S"
106
+ date "+%Y-%m-%d %H:%M:%S%:z"
107
107
  ```
108
108
 
109
109
  Update `.agents/workspace/active/{task-id}/task.md`:
@@ -115,7 +115,7 @@ Update `.agents/workspace/active/{task-id}/task.md`:
115
115
  - Mark requirement-analysis as complete in workflow progress and include the actual round when the task template supports it
116
116
  - **Append** to `## Activity Log` (do NOT overwrite previous entries):
117
117
  ```
118
- - {yyyy-MM-dd HH:mm:ss} — **Requirement Analysis (Round {N})** by {agent} — Analysis completed → {analysis-artifact}
118
+ - {YYYY-MM-DD HH:mm:ss±HH:MM} — **Requirement Analysis (Round {N})** by {agent} — Analysis completed → {analysis-artifact}
119
119
  ```
120
120
 
121
121
  If task.md contains a valid `issue_number`, perform these sync actions (skip and continue on any failure):
@@ -103,7 +103,7 @@ description: "分析任务并输出需求分析文档"
103
103
  获取当前时间:
104
104
 
105
105
  ```bash
106
- date "+%Y-%m-%d %H:%M:%S"
106
+ date "+%Y-%m-%d %H:%M:%S%:z"
107
107
  ```
108
108
 
109
109
  更新 `.agents/workspace/active/{task-id}/task.md`:
@@ -115,7 +115,7 @@ date "+%Y-%m-%d %H:%M:%S"
115
115
  - 在工作流进度中标记 requirement-analysis 为已完成,并注明实际轮次(如果任务模板支持)
116
116
  - **追加**到 `## Activity Log`(不要覆盖之前的记录):
117
117
  ```
118
- - {yyyy-MM-dd HH:mm:ss} — **Requirement Analysis (Round {N})** by {agent} — Analysis completed → {analysis-artifact}
118
+ - {YYYY-MM-DD HH:mm:ss±HH:MM} — **Requirement Analysis (Round {N})** by {agent} — Analysis completed → {analysis-artifact}
119
119
  ```
120
120
 
121
121
  如果 task.md 中存在有效的 `issue_number`,执行以下同步操作(任一失败则跳过并继续):
@@ -210,7 +210,7 @@ rebuild_manifest() {
210
210
  entries_file="$tmpdir/manifest.tsv"
211
211
  month_keys_file="$tmpdir/manifest-months.tsv"
212
212
  year_keys_file="$tmpdir/manifest-years.tsv"
213
- generated_at=$(date "+%Y-%m-%d %H:%M:%S")
213
+ generated_at=$(date "+%Y-%m-%d %H:%M:%S%:z")
214
214
 
215
215
  mkdir -p "$ARCHIVE_DIR"
216
216
  : > "$entries_file"
@@ -40,7 +40,7 @@ Before blocking, thoroughly analyze:
40
40
  Get the current time:
41
41
 
42
42
  ```bash
43
- date "+%Y-%m-%d %H:%M:%S"
43
+ date "+%Y-%m-%d %H:%M:%S%:z"
44
44
  ```
45
45
 
46
46
  Update `.agents/workspace/active/{task-id}/task.md`:
@@ -49,7 +49,7 @@ Update `.agents/workspace/active/{task-id}/task.md`:
49
49
  - `updated_at`: {current timestamp}
50
50
  - **Append** to `## Activity Log` (do NOT overwrite previous entries):
51
51
  ```
52
- - {yyyy-MM-dd HH:mm:ss} — **Blocked** by {agent} — {one-line reason}
52
+ - {YYYY-MM-DD HH:mm:ss±HH:MM} — **Blocked** by {agent} — {one-line reason}
53
53
  ```
54
54
 
55
55
  Add a blocking information section to task.md.
@@ -40,7 +40,7 @@ description: "标记任务为阻塞状态并记录原因"
40
40
  获取当前时间:
41
41
 
42
42
  ```bash
43
- date "+%Y-%m-%d %H:%M:%S"
43
+ date "+%Y-%m-%d %H:%M:%S%:z"
44
44
  ```
45
45
 
46
46
  更新 `.agents/workspace/active/{task-id}/task.md`:
@@ -49,7 +49,7 @@ date "+%Y-%m-%d %H:%M:%S"
49
49
  - `updated_at`:{当前时间戳}
50
50
  - **追加**到 `## Activity Log`(不要覆盖之前的记录):
51
51
  ```
52
- - {yyyy-MM-dd HH:mm:ss} — **Blocked** by {agent} — {一行原因}
52
+ - {YYYY-MM-DD HH:mm:ss±HH:MM} — **Blocked** by {agent} — {一行原因}
53
53
  ```
54
54
 
55
55
  在 task.md 中添加阻塞信息部分。
@@ -7,7 +7,7 @@ description: "Cancel an unneeded task and archive it"
7
7
 
8
8
  ## Boundary / Critical Rules
9
9
 
10
- - This command terminates a task that no longer needs to continue and archives it into `completed/`
10
+ - This command terminates a task that no longer needs to continue and moves it into `completed/`
11
11
  - Cancel only when the task no longer needs implementation, review, or follow-up work
12
12
  - When a valid `issue_number` exists, Issue sync is required
13
13
 
@@ -22,7 +22,7 @@ Check these directories in order:
22
22
 
23
23
  Handling rules:
24
24
  - If found in `active/` or `blocked/`: continue
25
- - If found only in `completed/`: inform the user the task is already archived and stop
25
+ - If found only in `completed/`: inform the user the task is already moved and stop
26
26
  - If not found anywhere: prompt `Task {task-id} not found`
27
27
 
28
28
  ### 2. Choose the Cancellation Label
@@ -40,7 +40,7 @@ When syncing to the Issue, replace any existing `status:` labels with the inferr
40
40
  Get the current time:
41
41
 
42
42
  ```bash
43
- date "+%Y-%m-%d %H:%M:%S"
43
+ date "+%Y-%m-%d %H:%M:%S%:z"
44
44
  ```
45
45
 
46
46
  Update `task.md` in the task directory:
@@ -50,16 +50,16 @@ Update `task.md` in the task directory:
50
50
  - `updated_at`: {current timestamp}
51
51
  - **Append** to `## Activity Log` (do NOT overwrite previous entries):
52
52
  ```
53
- - {yyyy-MM-dd HH:mm:ss} — **Cancelled** by {agent} — {one-line cancellation reason}
53
+ - {YYYY-MM-DD HH:mm:ss±HH:MM} — **Cancelled** by {agent} — {one-line cancellation reason}
54
54
  ```
55
55
 
56
- ### 4. Archive the Task
56
+ ### 4. Move the Task
57
57
 
58
58
  Move the task directory into `.agents/workspace/completed/{task-id}`.
59
59
 
60
60
  If the source directory is `blocked/`, move it from `blocked/`; if it is `active/`, move it from `active/`.
61
61
 
62
- ### 5. Verify the Archive
62
+ ### 5. Verify the Move
63
63
 
64
64
  ```bash
65
65
  ls .agents/workspace/completed/{task-id}/task.md
@@ -89,7 +89,7 @@ The cancellation comment must include at least:
89
89
 
90
90
  ### 7. Verification Gate
91
91
 
92
- Run the verification gate to confirm the archived task and sync state are valid:
92
+ Run the verification gate to confirm the moved task and sync state are valid:
93
93
 
94
94
  ```bash
95
95
  node .agents/scripts/validate-artifact.js gate cancel-task .agents/workspace/completed/{task-id} --format text
@@ -110,13 +110,13 @@ Keep the gate output in your reply as fresh evidence. Do not claim completion wi
110
110
 
111
111
  Output format:
112
112
  ```
113
- Task {task-id} cancelled and archived.
113
+ Task {task-id} cancelled; task directory moved to completed/.
114
114
 
115
115
  Cancellation reason: {reason}
116
116
  Status label: {status-label or skipped}
117
- Archived to: .agents/workspace/completed/{task-id}/
117
+ Target path: .agents/workspace/completed/{task-id}/
118
118
 
119
- Next step - inspect the archived task:
119
+ Next step - inspect the moved task:
120
120
  - Claude Code / OpenCode: /check-task {task-id}
121
121
  - Gemini CLI: /{{project}}:check-task {task-id}
122
122
  - Codex CLI: $check-task {task-id}
@@ -139,5 +139,5 @@ Next step - inspect the archived task:
139
139
  ## Error Handling
140
140
 
141
141
  - Task not found: `Task {task-id} not found`
142
- - Task already archived: inform the user it is already in `completed/`
143
- - Issue sync failed: keep the local archive result and tell the user manual platform follow-up is required
142
+ - Task already moved: inform the user it is already in `completed/`
143
+ - Issue sync failed: keep the local move result and tell the user manual platform follow-up is required
@@ -7,7 +7,7 @@ description: "取消不再需要的任务并归档"
7
7
 
8
8
  ## 行为边界 / 关键规则
9
9
 
10
- - 本命令用于终止一个不再需要继续执行的任务,并归档到 `completed/`
10
+ - 本命令用于终止一个不再需要继续执行的任务,并转移到 `completed/`
11
11
  - 只有在确认该任务无需继续实现、审查或修复时才可取消
12
12
  - 有效 `issue_number` 存在时,Issue 同步属于必做项
13
13
 
@@ -22,7 +22,7 @@ description: "取消不再需要的任务并归档"
22
22
 
23
23
  处理规则:
24
24
  - 如果在 `active/` 或 `blocked/` 中找到:继续
25
- - 如果只在 `completed/` 中找到:告知用户任务已归档,停止
25
+ - 如果只在 `completed/` 中找到:告知用户任务已转移,停止
26
26
  - 如果都不存在:提示 `Task {task-id} not found`
27
27
 
28
28
  ### 2. 判断取消标签
@@ -40,7 +40,7 @@ description: "取消不再需要的任务并归档"
40
40
  获取当前时间:
41
41
 
42
42
  ```bash
43
- date "+%Y-%m-%d %H:%M:%S"
43
+ date "+%Y-%m-%d %H:%M:%S%:z"
44
44
  ```
45
45
 
46
46
  更新任务目录中的 `task.md`:
@@ -50,16 +50,16 @@ date "+%Y-%m-%d %H:%M:%S"
50
50
  - `updated_at`:{当前时间戳}
51
51
  - **追加**到 `## Activity Log`(不要覆盖之前记录):
52
52
  ```
53
- - {yyyy-MM-dd HH:mm:ss} — **Cancelled** by {agent} — {一行取消原因}
53
+ - {YYYY-MM-DD HH:mm:ss±HH:MM} — **Cancelled** by {agent} — {一行取消原因}
54
54
  ```
55
55
 
56
- ### 4. 归档任务
56
+ ### 4. 转移任务
57
57
 
58
58
  将任务目录移动到 `.agents/workspace/completed/{task-id}`。
59
59
 
60
60
  如果源目录在 `blocked/`,从 `blocked/` 移动;如果源目录在 `active/`,从 `active/` 移动。
61
61
 
62
- ### 5. 验证归档
62
+ ### 5. 验证转移
63
63
 
64
64
  ```bash
65
65
  ls .agents/workspace/completed/{task-id}/task.md
@@ -89,7 +89,7 @@ ls .agents/workspace/completed/{task-id}/task.md
89
89
 
90
90
  ### 7. 完成校验
91
91
 
92
- 运行完成校验,确认任务归档和同步状态符合规范:
92
+ 运行完成校验,确认任务转移和同步状态符合规范:
93
93
 
94
94
  ```bash
95
95
  node .agents/scripts/validate-artifact.js gate cancel-task .agents/workspace/completed/{task-id} --format text
@@ -110,13 +110,13 @@ node .agents/scripts/validate-artifact.js gate cancel-task .agents/workspace/com
110
110
 
111
111
  输出格式:
112
112
  ```
113
- 任务 {task-id} 已取消并归档。
113
+ 任务 {task-id} 已取消,任务目录已转移到 completed/。
114
114
 
115
115
  取消原因:{reason}
116
116
  状态标签:{status-label 或 skipped}
117
- 归档路径:.agents/workspace/completed/{task-id}/
117
+ 目标路径:.agents/workspace/completed/{task-id}/
118
118
 
119
- 下一步 - 查看归档任务:
119
+ 下一步 - 查看已转移任务:
120
120
  - Claude Code / OpenCode:/check-task {task-id}
121
121
  - Gemini CLI:/{{project}}:check-task {task-id}
122
122
  - Codex CLI:$check-task {task-id}
@@ -139,5 +139,5 @@ node .agents/scripts/validate-artifact.js gate cancel-task .agents/workspace/com
139
139
  ## 错误处理
140
140
 
141
141
  - 任务未找到:`Task {task-id} not found`
142
- - 任务已归档:提示任务已在 `completed/` 中
143
- - Issue 同步失败:保留本地归档结果,并告知用户需要人工补齐平台操作
142
+ - 任务已转移:提示任务已在 `completed/` 中
143
+ - Issue 同步失败:保留本地转移结果,并告知用户需要人工补齐平台操作
@@ -72,13 +72,13 @@ If a related task exists (search for `codescan_alert_number: <alert-number>`):
72
72
  Get the current time:
73
73
 
74
74
  ```bash
75
- date "+%Y-%m-%d %H:%M:%S"
75
+ date "+%Y-%m-%d %H:%M:%S%:z"
76
76
  ```
77
77
 
78
78
  - Add the dismissal record to task.md
79
79
  - **Append** to `## Activity Log` (do NOT overwrite previous entries):
80
80
  ```
81
- - {yyyy-MM-dd HH:mm:ss} — **Alert Closed** by {agent} — Code Scanning alert #{alert-number} dismissed: {reason}
81
+ - {YYYY-MM-DD HH:mm:ss±HH:MM} — **Alert Closed** by {agent} — Code Scanning alert #{alert-number} dismissed: {reason}
82
82
  ```
83
83
  - Archive the task
84
84
 
@@ -72,13 +72,13 @@ Code Scanning 告警 #{alert-number}
72
72
  获取当前时间:
73
73
 
74
74
  ```bash
75
- date "+%Y-%m-%d %H:%M:%S"
75
+ date "+%Y-%m-%d %H:%M:%S%:z"
76
76
  ```
77
77
 
78
78
  - 添加关闭记录到 task.md
79
79
  - **追加**到 `## Activity Log`(不要覆盖之前的记录):
80
80
  ```
81
- - {yyyy-MM-dd HH:mm:ss} — **Alert Closed** by {agent} — Code Scanning alert #{alert-number} dismissed: {reason}
81
+ - {YYYY-MM-DD HH:mm:ss±HH:MM} — **Alert Closed** by {agent} — Code Scanning alert #{alert-number} dismissed: {reason}
82
82
  ```
83
83
  - 归档任务
84
84
 
@@ -80,13 +80,13 @@ If a related task exists (search for `security_alert_number: <alert-number>`):
80
80
  Get the current time:
81
81
 
82
82
  ```bash
83
- date "+%Y-%m-%d %H:%M:%S"
83
+ date "+%Y-%m-%d %H:%M:%S%:z"
84
84
  ```
85
85
 
86
86
  - Add the dismissal record to task.md
87
87
  - **Append** to `## Activity Log` (do NOT overwrite previous entries):
88
88
  ```
89
- - {yyyy-MM-dd HH:mm:ss} — **Alert Closed** by {agent} — Dependabot alert #{alert-number} dismissed: {reason}
89
+ - {YYYY-MM-DD HH:mm:ss±HH:MM} — **Alert Closed** by {agent} — Dependabot alert #{alert-number} dismissed: {reason}
90
90
  ```
91
91
  - Archive the task
92
92
 
@@ -80,13 +80,13 @@ CVE:{cve-id}
80
80
  获取当前时间:
81
81
 
82
82
  ```bash
83
- date "+%Y-%m-%d %H:%M:%S"
83
+ date "+%Y-%m-%d %H:%M:%S%:z"
84
84
  ```
85
85
 
86
86
  - 添加关闭记录到 task.md
87
87
  - **追加**到 `## Activity Log`(不要覆盖之前的记录):
88
88
  ```
89
- - {yyyy-MM-dd HH:mm:ss} — **Alert Closed** by {agent} — Dependabot alert #{alert-number} dismissed: {reason}
89
+ - {YYYY-MM-DD HH:mm:ss±HH:MM} — **Alert Closed** by {agent} — Dependabot alert #{alert-number} dismissed: {reason}
90
90
  ```
91
91
  - 归档任务
92
92
 
@@ -39,7 +39,7 @@ Stage specific files only and run `git commit` with the prepared message.
39
39
  Get the current time:
40
40
 
41
41
  ```bash
42
- date "+%Y-%m-%d %H:%M:%S"
42
+ date "+%Y-%m-%d %H:%M:%S%:z"
43
43
  ```
44
44
 
45
45
  > The full four-case status matrix, prerequisite checks, and multi-TUI next-step commands live in `reference/task-status-update.md`. Read `reference/task-status-update.md` before updating task state.
@@ -39,7 +39,7 @@ git diff
39
39
  获取当前时间:
40
40
 
41
41
  ```bash
42
- date "+%Y-%m-%d %H:%M:%S"
42
+ date "+%Y-%m-%d %H:%M:%S%:z"
43
43
  ```
44
44
 
45
45
  > 完整的 4 种状态分支、前置条件检查和多 TUI 下一步命令见 `reference/task-status-update.md`。更新任务状态前,先读取 `reference/task-status-update.md`。
@@ -7,13 +7,13 @@ Read this file before choosing the post-commit task-state branch.
7
7
  Get the current time first:
8
8
 
9
9
  ```bash
10
- date "+%Y-%m-%d %H:%M:%S"
10
+ date "+%Y-%m-%d %H:%M:%S%:z"
11
11
  ```
12
12
 
13
13
  For every task-related commit, append this Activity Log entry in `task.md`:
14
14
 
15
15
  ```text
16
- - {yyyy-MM-dd HH:mm:ss} — **Commit** by {agent} — {commit hash short} {commit subject}
16
+ - {YYYY-MM-DD HH:mm:ss±HH:MM} — **Commit** by {agent} — {commit hash short} {commit subject}
17
17
  ```
18
18
 
19
19
  Before selecting the next step, verify:
@@ -7,13 +7,13 @@
7
7
  先获取当前时间:
8
8
 
9
9
  ```bash
10
- date "+%Y-%m-%d %H:%M:%S"
10
+ date "+%Y-%m-%d %H:%M:%S%:z"
11
11
  ```
12
12
 
13
13
  对于每一次与任务相关的提交,都要在 `task.md` 中追加以下 Activity Log:
14
14
 
15
15
  ```text
16
- - {yyyy-MM-dd HH:mm:ss} — **Commit** by {agent} — {commit hash short} {commit subject}
16
+ - {YYYY-MM-DD HH:mm:ss±HH:MM} — **Commit** by {agent} — {commit hash short} {commit subject}
17
17
  ```
18
18
 
19
19
  在决定下一步之前,先确认:
@@ -8,7 +8,7 @@ description: "Mark a task as completed and archive it"
8
8
  ## Boundary / Critical Rules
9
9
 
10
10
  - This command updates task metadata AND physically moves the task directory
11
- - Do not archive a task that has incomplete workflow steps unless forced
11
+ - Do not move a task that has incomplete workflow steps unless forced
12
12
 
13
13
  ## Steps
14
14
 
@@ -36,7 +36,7 @@ Before marking complete, verify ALL of these:
36
36
  > - If any condition is missing -> **stop by default** and output the prerequisite warning
37
37
  > - Only continue with unmet prerequisites when the user explicitly requested `--force`
38
38
  >
39
- > **Do not continue to Steps 3-7 when prerequisites are not met, and do not output "Task {task-id} completed and archived."**
39
+ > **Do not continue to Steps 3-7 when prerequisites are not met, and do not output "Task {task-id} completed; task directory moved to completed/."**
40
40
 
41
41
  If any prerequisite is not met, warn the user:
42
42
  ```
@@ -53,7 +53,7 @@ If prerequisites are not met and the user did not explicitly provide `--force`,
53
53
  Get the current time:
54
54
 
55
55
  ```bash
56
- date "+%Y-%m-%d %H:%M:%S"
56
+ date "+%Y-%m-%d %H:%M:%S%:z"
57
57
  ```
58
58
 
59
59
  Update `.agents/workspace/active/{task-id}/task.md`:
@@ -64,10 +64,10 @@ Update `.agents/workspace/active/{task-id}/task.md`:
64
64
  - Verify and check off all items in `## Completion Checklist` (change `- [ ]` to `- [x]`)
65
65
  - **Append** to `## Activity Log` (do NOT overwrite previous entries):
66
66
  ```
67
- - {yyyy-MM-dd HH:mm:ss} — **Completed** by {agent} — Task archived to completed/
67
+ - {YYYY-MM-DD HH:mm:ss±HH:MM} — **Completed** by {agent} — Task moved to completed/
68
68
  ```
69
69
 
70
- ### 4. Archive Task
70
+ ### 4. Move Task
71
71
 
72
72
  Move the task directory from active to completed:
73
73
 
@@ -75,7 +75,7 @@ Move the task directory from active to completed:
75
75
  mv .agents/workspace/active/{task-id} .agents/workspace/completed/{task-id}
76
76
  ```
77
77
 
78
- ### 5. Verify Archive
78
+ ### 5. Verify Move
79
79
 
80
80
  ```bash
81
81
  ls .agents/workspace/completed/{task-id}/task.md
@@ -116,12 +116,12 @@ Keep the gate output in your reply as fresh evidence. Do not claim completion wi
116
116
 
117
117
  Output format:
118
118
  ```
119
- Task {task-id} completed and archived.
119
+ Task {task-id} completed; task directory moved to completed/.
120
120
 
121
121
  Task info:
122
122
  - Title: {title}
123
123
  - Completed at: {timestamp}
124
- - Archived to: .agents/workspace/completed/{task-id}/
124
+ - Target path: .agents/workspace/completed/{task-id}/
125
125
 
126
126
  Deliverables:
127
127
  - {List of key outputs: files modified, tests added, etc.}
@@ -132,18 +132,18 @@ Deliverables:
132
132
  - [ ] Verified all workflow steps are complete
133
133
  - [ ] Updated task.md with completed status and timestamp
134
134
  - [ ] Moved task directory to `.agents/workspace/completed/`
135
- - [ ] Verified archive succeeded
135
+ - [ ] Verified move succeeded
136
136
  - [ ] Informed user of completion
137
137
 
138
138
  ## Notes
139
139
 
140
- 1. **Premature completion**: Do not archive a task that has incomplete steps. Examples of incomplete situations:
140
+ 1. **Premature completion**: Do not move a task that has incomplete steps. Examples of incomplete situations:
141
141
  - Code is written but not committed
142
142
  - Code is committed but not reviewed
143
143
  - Review found blockers that haven't been fixed
144
144
  - PR is created but not merged
145
145
 
146
- 2. **Rollback**: If a task was archived incorrectly:
146
+ 2. **Rollback**: If a task was incorrectly moved:
147
147
  ```bash
148
148
  mv .agents/workspace/completed/{task-id} .agents/workspace/active/{task-id}
149
149
  ```
@@ -8,7 +8,7 @@ description: "标记任务完成并归档"
8
8
  ## 行为边界 / 关键规则
9
9
 
10
10
  - 本命令更新任务元数据并物理移动任务目录
11
- - 除非强制执行,不要归档有未完成工作流步骤的任务
11
+ - 除非强制执行,不要转移有未完成工作流步骤的任务
12
12
 
13
13
  ## 执行步骤
14
14
 
@@ -36,7 +36,7 @@ description: "标记任务完成并归档"
36
36
  > - 如果任意一个条件不满足 → **默认停止**,输出前置条件未满足的警告
37
37
  > - 只有用户明确要求 `--force` 时,才可以在前置条件未满足时继续
38
38
  >
39
- > **禁止在前置条件未满足时继续执行步骤 3-7,也不要输出「任务 {task-id} 已完成并归档。」**
39
+ > **禁止在前置条件未满足时继续执行步骤 3-7,也不要输出「任务 {task-id} 已完成,任务目录已转移到 completed/。」**
40
40
 
41
41
  如果任何前置条件未满足,警告用户:
42
42
  ```
@@ -53,7 +53,7 @@ Please complete the missing steps first, or use --force to override.
53
53
  获取当前时间:
54
54
 
55
55
  ```bash
56
- date "+%Y-%m-%d %H:%M:%S"
56
+ date "+%Y-%m-%d %H:%M:%S%:z"
57
57
  ```
58
58
 
59
59
  更新 `.agents/workspace/active/{task-id}/task.md`:
@@ -64,10 +64,10 @@ date "+%Y-%m-%d %H:%M:%S"
64
64
  - 逐项验证并勾选 `## 完成检查清单` 中的所有条目(将 `- [ ]` 改为 `- [x]`)
65
65
  - **追加**到 `## Activity Log`(不要覆盖之前的记录):
66
66
  ```
67
- - {yyyy-MM-dd HH:mm:ss} — **Completed** by {agent} — Task archived to completed/
67
+ - {YYYY-MM-DD HH:mm:ss±HH:MM} — **Completed** by {agent} — Task moved to completed/
68
68
  ```
69
69
 
70
- ### 4. 归档任务
70
+ ### 4. 转移任务
71
71
 
72
72
  将任务目录从 active 移动到 completed:
73
73
 
@@ -75,7 +75,7 @@ date "+%Y-%m-%d %H:%M:%S"
75
75
  mv .agents/workspace/active/{task-id} .agents/workspace/completed/{task-id}
76
76
  ```
77
77
 
78
- ### 5. 验证归档
78
+ ### 5. 验证转移
79
79
 
80
80
  ```bash
81
81
  ls .agents/workspace/completed/{task-id}/task.md
@@ -116,12 +116,12 @@ node .agents/scripts/validate-artifact.js gate complete-task .agents/workspace/c
116
116
 
117
117
  输出格式:
118
118
  ```
119
- 任务 {task-id} 已完成并归档。
119
+ 任务 {task-id} 已完成,任务目录已转移到 completed/。
120
120
 
121
121
  任务信息:
122
122
  - 标题:{title}
123
123
  - 完成时间:{timestamp}
124
- - 归档路径:.agents/workspace/completed/{task-id}/
124
+ - 目标路径:.agents/workspace/completed/{task-id}/
125
125
 
126
126
  交付物:
127
127
  - {关键产出列表:修改的文件、添加的测试等}
@@ -132,18 +132,18 @@ node .agents/scripts/validate-artifact.js gate complete-task .agents/workspace/c
132
132
  - [ ] 验证了所有工作流步骤已完成
133
133
  - [ ] 更新了 task.md 的完成状态和时间戳
134
134
  - [ ] 将任务目录移动到 `.agents/workspace/completed/`
135
- - [ ] 验证了归档成功
135
+ - [ ] 验证了转移成功
136
136
  - [ ] 告知了用户完成情况
137
137
 
138
138
  ## 注意事项
139
139
 
140
- 1. **过早完成**:不要归档有未完成步骤的任务。未完成的情况示例:
140
+ 1. **过早完成**:不要转移有未完成步骤的任务。未完成的情况示例:
141
141
  - 代码已编写但未提交
142
142
  - 代码已提交但未审查
143
143
  - 审查发现阻塞项但未修复
144
144
  - PR 已创建但未合并
145
145
 
146
- 2. **回滚**:如果任务被错误归档:
146
+ 2. **回滚**:如果任务被错误转移:
147
147
  ```bash
148
148
  mv .agents/workspace/completed/{task-id} .agents/workspace/active/{task-id}
149
149
  ```
@@ -46,7 +46,7 @@ Create and enrich the Issue by following the "Create Issue" and "Set the Issue T
46
46
  Get the current time:
47
47
 
48
48
  ```bash
49
- date "+%Y-%m-%d %H:%M:%S"
49
+ date "+%Y-%m-%d %H:%M:%S%:z"
50
50
  ```
51
51
 
52
52
  Write back `issue_number`, update `updated_at`, and append the Create Issue Activity Log entry.
@@ -46,7 +46,7 @@ description: "从任务文件创建 GitHub Issue"
46
46
  获取当前时间:
47
47
 
48
48
  ```bash
49
- date "+%Y-%m-%d %H:%M:%S"
49
+ date "+%Y-%m-%d %H:%M:%S%:z"
50
50
  ```
51
51
 
52
52
  回写 `issue_number`,更新 `updated_at`,并追加 Create Issue 的 Activity Log。
@@ -69,7 +69,7 @@ Aggregate a reviewer-facing summary from those artifacts and maintain a single i
69
69
  Get the current time:
70
70
 
71
71
  ```bash
72
- date "+%Y-%m-%d %H:%M:%S"
72
+ date "+%Y-%m-%d %H:%M:%S%:z"
73
73
  ```
74
74
 
75
75
  If `{task-id}` is available, update task.md with `pr_number`, `updated_at`, and append the PR Created Activity Log entry including metadata-sync and summary results.
@@ -69,7 +69,7 @@ description: "创建 Pull Request 到目标分支"
69
69
  获取当前时间:
70
70
 
71
71
  ```bash
72
- date "+%Y-%m-%d %H:%M:%S"
72
+ date "+%Y-%m-%d %H:%M:%S%:z"
73
73
  ```
74
74
 
75
75
  如果获取到了 `{task-id}`,更新 task.md 的 `pr_number`、`updated_at`,并追加 PR Created 的 Activity Log,记录元数据同步和摘要发布结果。
@@ -71,8 +71,8 @@ type: feature|bugfix|refactor|docs|chore
71
71
  branch: <project>-<type>-<slug>
72
72
  workflow: feature-development|bug-fix|refactoring
73
73
  status: active
74
- created_at: {yyyy-MM-dd HH:mm:ss}
75
- updated_at: {yyyy-MM-dd HH:mm:ss}
74
+ created_at: {YYYY-MM-DD HH:mm:ss±HH:MM}
75
+ updated_at: {YYYY-MM-DD HH:mm:ss±HH:MM}
76
76
  created_by: human
77
77
  current_step: requirement-analysis
78
78
  assigned_to: {current AI agent}
@@ -85,7 +85,7 @@ Note: `created_by` is `human` because the task comes from the user's description
85
85
  Get the current time:
86
86
 
87
87
  ```bash
88
- date "+%Y-%m-%d %H:%M:%S"
88
+ date "+%Y-%m-%d %H:%M:%S%:z"
89
89
  ```
90
90
 
91
91
  Update `.agents/workspace/active/{task-id}/task.md`:
@@ -95,7 +95,7 @@ Update `.agents/workspace/active/{task-id}/task.md`:
95
95
  - `## Context` -> `- **Branch**:`: update it to the generated branch name
96
96
  - **Append** to `## Activity Log` (do NOT overwrite previous entries):
97
97
  ```
98
- - {yyyy-MM-dd HH:mm:ss} — **Task Created** by {agent} — Task created from description
98
+ - {YYYY-MM-DD HH:mm:ss±HH:MM} — **Task Created** by {agent} — Task created from description
99
99
  ```
100
100
 
101
101
  ### 4. Verification Gate
@@ -71,8 +71,8 @@ type: feature|bugfix|refactor|docs|chore
71
71
  branch: <project>-<type>-<slug>
72
72
  workflow: feature-development|bug-fix|refactoring
73
73
  status: active
74
- created_at: {yyyy-MM-dd HH:mm:ss}
75
- updated_at: {yyyy-MM-dd HH:mm:ss}
74
+ created_at: {YYYY-MM-DD HH:mm:ss±HH:MM}
75
+ updated_at: {YYYY-MM-DD HH:mm:ss±HH:MM}
76
76
  created_by: human
77
77
  current_step: requirement-analysis
78
78
  assigned_to: {当前 AI 代理}
@@ -85,7 +85,7 @@ assigned_to: {当前 AI 代理}
85
85
  获取当前时间:
86
86
 
87
87
  ```bash
88
- date "+%Y-%m-%d %H:%M:%S"
88
+ date "+%Y-%m-%d %H:%M:%S%:z"
89
89
  ```
90
90
 
91
91
  更新 `.agents/workspace/active/{task-id}/task.md`:
@@ -95,7 +95,7 @@ date "+%Y-%m-%d %H:%M:%S"
95
95
  - `## 上下文` 中的 `- **分支**:`:更新为生成的分支名
96
96
  - **追加**到 `## Activity Log`(不要覆盖之前的记录):
97
97
  ```
98
- - {yyyy-MM-dd HH:mm:ss} — **Task Created** by {agent} — Task created from description
98
+ - {YYYY-MM-DD HH:mm:ss±HH:MM} — **Task Created** by {agent} — Task created from description
99
99
  ```
100
100
 
101
101
  ### 4. 完成校验
@@ -81,7 +81,7 @@ Create `.agents/workspace/active/{task-id}/{implementation-artifact}`.
81
81
  Get the current time:
82
82
 
83
83
  ```bash
84
- date "+%Y-%m-%d %H:%M:%S"
84
+ date "+%Y-%m-%d %H:%M:%S%:z"
85
85
  ```
86
86
 
87
87
  Update `.agents/workspace/active/{task-id}/task.md`:
@@ -91,7 +91,7 @@ Update `.agents/workspace/active/{task-id}/task.md`:
91
91
  - review the `## Requirements` section and only change items from `- [ ]` to `- [x]` when they are clearly satisfied by this round's implemented code and passing tests
92
92
  - record `{implementation-artifact}` for Round `{implementation-round}`
93
93
  - append:
94
- `- {yyyy-MM-dd HH:mm:ss} — **Implementation (Round {N})** by {agent} — Code implemented, {n} files modified, {n} tests passed → {implementation-artifact}`
94
+ `- {YYYY-MM-DD HH:mm:ss±HH:MM} — **Implementation (Round {N})** by {agent} — Code implemented, {n} files modified, {n} tests passed → {implementation-artifact}`
95
95
 
96
96
  If task.md contains a valid `issue_number`, perform these sync actions (skip and continue on any failure; read `.agents/rules/issue-sync.md` first):
97
97
  - Set `status: in-progress` and refine `in:` labels from the branch diff by following `.agents/rules/issue-sync.md` (add/remove when a mapping exists, add-only when it does not)
@@ -81,7 +81,7 @@ description: "根据技术方案实施任务并输出报告"
81
81
  获取当前时间:
82
82
 
83
83
  ```bash
84
- date "+%Y-%m-%d %H:%M:%S"
84
+ date "+%Y-%m-%d %H:%M:%S%:z"
85
85
  ```
86
86
 
87
87
  更新 `.agents/workspace/active/{task-id}/task.md`:
@@ -91,7 +91,7 @@ date "+%Y-%m-%d %H:%M:%S"
91
91
  - 审查 `## 需求` 段落,仅把本轮已由代码实现且有测试通过支撑的条目从 `- [ ]` 勾为 `- [x]`
92
92
  - 记录 Round `{implementation-round}` 的 `{implementation-artifact}`
93
93
  - 追加:
94
- `- {yyyy-MM-dd HH:mm:ss} — **Implementation (Round {N})** by {agent} — Code implemented, {n} files modified, {n} tests passed → {implementation-artifact}`
94
+ `- {YYYY-MM-DD HH:mm:ss±HH:MM} — **Implementation (Round {N})** by {agent} — Code implemented, {n} files modified, {n} tests passed → {implementation-artifact}`
95
95
 
96
96
  如果 task.md 中存在有效的 `issue_number`,执行以下同步操作(任一失败则跳过并继续;执行前先读取 `.agents/rules/issue-sync.md`):
97
97
  - 设置 `status: in-progress`,并按 `.agents/rules/issue-sync.md` 的 `in:` label 同步规则,基于分支改动精修 `in:` label(有映射时可增可删,无映射时仅补充)
@@ -47,13 +47,13 @@ tool: <tool-name>
47
47
  Get the current time:
48
48
 
49
49
  ```bash
50
- date "+%Y-%m-%d %H:%M:%S"
50
+ date "+%Y-%m-%d %H:%M:%S%:z"
51
51
  ```
52
52
 
53
53
  Update task.md: `current_step` -> `requirement-analysis`.
54
54
  - **Append** to `## Activity Log` (do NOT overwrite previous entries):
55
55
  ```
56
- - {yyyy-MM-dd HH:mm:ss} — **Import Code Scanning Alert** by {agent} — Code Scanning alert #{alert-number} imported
56
+ - {YYYY-MM-DD HH:mm:ss±HH:MM} — **Import Code Scanning Alert** by {agent} — Code Scanning alert #{alert-number} imported
57
57
  ```
58
58
 
59
59
  ### 4. Verification Gate
@@ -47,13 +47,13 @@ tool: <tool-name>
47
47
  获取当前时间:
48
48
 
49
49
  ```bash
50
- date "+%Y-%m-%d %H:%M:%S"
50
+ date "+%Y-%m-%d %H:%M:%S%:z"
51
51
  ```
52
52
 
53
53
  更新 task.md:`current_step` -> `requirement-analysis`。
54
54
  - **追加**到 `## Activity Log`(不要覆盖之前的记录):
55
55
  ```
56
- - {yyyy-MM-dd HH:mm:ss} — **Import Code Scanning Alert** by {agent} — Code Scanning alert #{alert-number} imported
56
+ - {YYYY-MM-DD HH:mm:ss±HH:MM} — **Import Code Scanning Alert** by {agent} — Code Scanning alert #{alert-number} imported
57
57
  ```
58
58
 
59
59
  ### 4. 完成校验
@@ -48,13 +48,13 @@ ghsa_id: <GHSA-ID>
48
48
  Get the current time:
49
49
 
50
50
  ```bash
51
- date "+%Y-%m-%d %H:%M:%S"
51
+ date "+%Y-%m-%d %H:%M:%S%:z"
52
52
  ```
53
53
 
54
54
  Update task.md: `current_step` -> `requirement-analysis`.
55
55
  - **Append** to `## Activity Log` (do NOT overwrite previous entries):
56
56
  ```
57
- - {yyyy-MM-dd HH:mm:ss} — **Import Dependabot Alert** by {agent} — Dependabot alert #{alert-number} imported
57
+ - {YYYY-MM-DD HH:mm:ss±HH:MM} — **Import Dependabot Alert** by {agent} — Dependabot alert #{alert-number} imported
58
58
  ```
59
59
 
60
60
  ### 4. Verification Gate
@@ -48,13 +48,13 @@ ghsa_id: <GHSA-ID>
48
48
  获取当前时间:
49
49
 
50
50
  ```bash
51
- date "+%Y-%m-%d %H:%M:%S"
51
+ date "+%Y-%m-%d %H:%M:%S%:z"
52
52
  ```
53
53
 
54
54
  更新 task.md:`current_step` -> `requirement-analysis`。
55
55
  - **追加**到 `## Activity Log`(不要覆盖之前的记录):
56
56
  ```
57
- - {yyyy-MM-dd HH:mm:ss} — **Import Dependabot Alert** by {agent} — Dependabot alert #{alert-number} imported
57
+ - {YYYY-MM-DD HH:mm:ss±HH:MM} — **Import Dependabot Alert** by {agent} — Dependabot alert #{alert-number} imported
58
58
  ```
59
59
 
60
60
  ### 4. 完成校验
@@ -45,8 +45,8 @@ type: feature|bugfix|refactor|docs|chore
45
45
  branch: <project>-<type>-<slug>
46
46
  workflow: feature-development|bug-fix|refactoring
47
47
  status: active
48
- created_at: {yyyy-MM-dd HH:mm:ss}
49
- updated_at: {yyyy-MM-dd HH:mm:ss}
48
+ created_at: {YYYY-MM-DD HH:mm:ss±HH:MM}
49
+ updated_at: {YYYY-MM-DD HH:mm:ss±HH:MM}
50
50
  created_by: human
51
51
  current_step: requirement-analysis
52
52
  assigned_to: {current AI agent}
@@ -57,7 +57,7 @@ assigned_to: {current AI agent}
57
57
  Get the current time:
58
58
 
59
59
  ```bash
60
- date "+%Y-%m-%d %H:%M:%S"
60
+ date "+%Y-%m-%d %H:%M:%S%:z"
61
61
  ```
62
62
 
63
63
  Update `.agents/workspace/active/{task-id}/task.md`:
@@ -67,7 +67,7 @@ Update `.agents/workspace/active/{task-id}/task.md`:
67
67
  - `## Context` -> `- **Branch**:`: update it to the generated branch name
68
68
  - **Append** to `## Activity Log` (do NOT overwrite previous entries):
69
69
  ```
70
- - {yyyy-MM-dd HH:mm:ss} — **Import Issue** by {agent} — Issue #{number} imported
70
+ - {YYYY-MM-DD HH:mm:ss±HH:MM} — **Import Issue** by {agent} — Issue #{number} imported
71
71
  ```
72
72
 
73
73
  ### 5. Assign the Issue Assignee
@@ -45,8 +45,8 @@ type: feature|bugfix|refactor|docs|chore
45
45
  branch: <project>-<type>-<slug>
46
46
  workflow: feature-development|bug-fix|refactoring
47
47
  status: active
48
- created_at: {yyyy-MM-dd HH:mm:ss}
49
- updated_at: {yyyy-MM-dd HH:mm:ss}
48
+ created_at: {YYYY-MM-DD HH:mm:ss±HH:MM}
49
+ updated_at: {YYYY-MM-DD HH:mm:ss±HH:MM}
50
50
  created_by: human
51
51
  current_step: requirement-analysis
52
52
  assigned_to: {当前 AI 代理}
@@ -57,7 +57,7 @@ assigned_to: {当前 AI 代理}
57
57
  获取当前时间:
58
58
 
59
59
  ```bash
60
- date "+%Y-%m-%d %H:%M:%S"
60
+ date "+%Y-%m-%d %H:%M:%S%:z"
61
61
  ```
62
62
 
63
63
  更新 `.agents/workspace/active/{task-id}/task.md`:
@@ -67,7 +67,7 @@ date "+%Y-%m-%d %H:%M:%S"
67
67
  - `## 上下文` 中的 `- **分支**:`:更新为生成的分支名
68
68
  - **追加**到 `## Activity Log`(不要覆盖之前的记录):
69
69
  ```
70
- - {yyyy-MM-dd HH:mm:ss} — **Import Issue** by {agent} — Issue #{number} imported
70
+ - {YYYY-MM-DD HH:mm:ss±HH:MM} — **Import Issue** by {agent} — Issue #{number} imported
71
71
  ```
72
72
 
73
73
  ### 5. 分配 Issue Assignee
@@ -81,7 +81,7 @@ Create `.agents/workspace/active/{task-id}/{plan-artifact}`.
81
81
  Get the current time:
82
82
 
83
83
  ```bash
84
- date "+%Y-%m-%d %H:%M:%S"
84
+ date "+%Y-%m-%d %H:%M:%S%:z"
85
85
  ```
86
86
 
87
87
  Update `.agents/workspace/active/{task-id}/task.md`:
@@ -93,7 +93,7 @@ Update `.agents/workspace/active/{task-id}/task.md`:
93
93
  - Mark technical-design as complete in workflow progress and include the actual round when the task template supports it
94
94
  - **Append** to `## Activity Log` (do NOT overwrite previous entries):
95
95
  ```
96
- - {yyyy-MM-dd HH:mm:ss} — **Technical Design (Round {N})** by {agent} — Plan completed, awaiting human review → {artifact-filename}
96
+ - {YYYY-MM-DD HH:mm:ss±HH:MM} — **Technical Design (Round {N})** by {agent} — Plan completed, awaiting human review → {artifact-filename}
97
97
  ```
98
98
 
99
99
  If task.md contains a valid `issue_number`, perform these sync actions (skip and continue on any failure):
@@ -81,7 +81,7 @@ description: "为任务设计技术方案和实施计划"
81
81
  获取当前时间:
82
82
 
83
83
  ```bash
84
- date "+%Y-%m-%d %H:%M:%S"
84
+ date "+%Y-%m-%d %H:%M:%S%:z"
85
85
  ```
86
86
 
87
87
  更新 `.agents/workspace/active/{task-id}/task.md`:
@@ -93,7 +93,7 @@ date "+%Y-%m-%d %H:%M:%S"
93
93
  - 在工作流进度中标记 technical-design 为已完成,并注明实际轮次(如果任务模板支持)
94
94
  - **追加**到 `## Activity Log`(不要覆盖之前的记录):
95
95
  ```
96
- - {yyyy-MM-dd HH:mm:ss} — **Technical Design (Round {N})** by {agent} — Plan completed, awaiting human review → {artifact-filename}
96
+ - {YYYY-MM-DD HH:mm:ss±HH:MM} — **Technical Design (Round {N})** by {agent} — Plan completed, awaiting human review → {artifact-filename}
97
97
  ```
98
98
 
99
99
  如果 task.md 中存在有效的 `issue_number`,执行以下同步操作(任一失败则跳过并继续):
@@ -51,13 +51,13 @@ Create `.agents/workspace/active/{task-id}/{refinement-artifact}`.
51
51
  Get the current time:
52
52
 
53
53
  ```bash
54
- date "+%Y-%m-%d %H:%M:%S"
54
+ date "+%Y-%m-%d %H:%M:%S%:z"
55
55
  ```
56
56
 
57
57
  Update task.md:
58
58
  - review the `## Requirements` section and only change items from `- [ ]` to `- [x]` when they are newly satisfied by this round's fixes and passing tests
59
59
  - append:
60
- `- {yyyy-MM-dd HH:mm:ss} — **Refinement (Round {N}, for {review-artifact})** by {agent} — Fixed {n} blockers, {n} major, {n} minor issues → {refinement-artifact}`
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}`
61
61
 
62
62
  If task.md contains a valid `issue_number`, perform these sync actions (skip and continue on any failure):
63
63
  - Read `.agents/rules/issue-sync.md` before syncing
@@ -51,13 +51,13 @@ description: "处理代码审查反馈并修复问题"
51
51
  获取当前时间:
52
52
 
53
53
  ```bash
54
- date "+%Y-%m-%d %H:%M:%S"
54
+ date "+%Y-%m-%d %H:%M:%S%:z"
55
55
  ```
56
56
 
57
57
  更新 task.md:
58
58
  - 审查 `## 需求` 段落,仅把因本轮修复而新满足且有测试通过支撑的条目从 `- [ ]` 勾为 `- [x]`
59
59
  - 追加:
60
- `- {yyyy-MM-dd HH:mm:ss} — **Refinement (Round {N}, for {review-artifact})** by {agent} — Fixed {n} blockers, {n} major, {n} minor issues → {refinement-artifact}`
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}`
61
61
 
62
62
  如果 task.md 中存在有效的 `issue_number`,执行以下同步操作(任一失败则跳过并继续):
63
63
  - 执行前先读取 `.agents/rules/issue-sync.md`
@@ -81,7 +81,7 @@ Write only files that were actually recovered from Issue comments. Do not invent
81
81
  Get the current time:
82
82
 
83
83
  ```bash
84
- date "+%Y-%m-%d %H:%M:%S"
84
+ date "+%Y-%m-%d %H:%M:%S%:z"
85
85
  ```
86
86
 
87
87
  Update the restored `task.md`:
@@ -91,7 +91,7 @@ Update the restored `task.md`:
91
91
  - keep the original `current_step`
92
92
  - append this entry to `## Activity Log`:
93
93
  ```
94
- - {yyyy-MM-dd HH:mm:ss} — **Restore Task** by {agent} — Restored task from Issue #{issue-number}
94
+ - {YYYY-MM-DD HH:mm:ss±HH:MM} — **Restore Task** by {agent} — Restored task from Issue #{issue-number}
95
95
  ```
96
96
 
97
97
  ### 7. Verification Gate
@@ -81,7 +81,7 @@ description: "从平台 Issue 评论还原本地任务文件"
81
81
  获取当前时间:
82
82
 
83
83
  ```bash
84
- date "+%Y-%m-%d %H:%M:%S"
84
+ date "+%Y-%m-%d %H:%M:%S%:z"
85
85
  ```
86
86
 
87
87
  更新恢复出的 `task.md`:
@@ -91,7 +91,7 @@ date "+%Y-%m-%d %H:%M:%S"
91
91
  - 保留原 `current_step`
92
92
  - 在 `## 活动日志` 追加:
93
93
  ```
94
- - {yyyy-MM-dd HH:mm:ss} — **Restore Task** by {agent} — Restored task from Issue #{issue-number}
94
+ - {YYYY-MM-DD HH:mm:ss±HH:MM} — **Restore Task** by {agent} — Restored task from Issue #{issue-number}
95
95
  ```
96
96
 
97
97
  ### 7. 完成校验
@@ -47,11 +47,11 @@ Create `.agents/workspace/active/{task-id}/{review-artifact}`.
47
47
  Get the current time:
48
48
 
49
49
  ```bash
50
- date "+%Y-%m-%d %H:%M:%S"
50
+ date "+%Y-%m-%d %H:%M:%S%:z"
51
51
  ```
52
52
 
53
53
  Update task.md and append:
54
- `- {yyyy-MM-dd HH:mm:ss} — **Code Review (Round {N})** by {agent} — Verdict: {Approved/Changes Requested/Rejected}, blockers: {n}, major: {n}, minor: {n} → {artifact-filename}`
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}`
55
55
 
56
56
  If task.md contains a valid `issue_number`, perform these sync actions (skip and continue on any failure):
57
57
  - Read `.agents/rules/issue-sync.md` before syncing
@@ -47,11 +47,11 @@ description: "审查任务实现并输出代码审查报告"
47
47
  获取当前时间:
48
48
 
49
49
  ```bash
50
- date "+%Y-%m-%d %H:%M:%S"
50
+ date "+%Y-%m-%d %H:%M:%S%:z"
51
51
  ```
52
52
 
53
53
  更新 task.md,并追加:
54
- `- {yyyy-MM-dd HH:mm:ss} — **Code Review (Round {N})** by {agent} — Verdict: {Approved/Changes Requested/Rejected}, blockers: {n}, major: {n}, minor: {n} → {artifact-filename}`
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}`
55
55
 
56
56
  如果 task.md 中存在有效的 `issue_number`,执行以下同步操作(任一失败则跳过并继续):
57
57
  - 执行前先读取 `.agents/rules/issue-sync.md`
@@ -76,7 +76,7 @@ const DEFAULTS = {
76
76
  }
77
77
  };
78
78
 
79
- const INSTALLER_VERSION = "v0.5.2";
79
+ const INSTALLER_VERSION = "v0.5.3";
80
80
  const PACKAGE_NAME = '@fitlab-ai/agent-infra';
81
81
  // Add a new identifier here only after shipping matching .{platform}. template variants.
82
82
  const KNOWN_PLATFORMS = new Set(['github']);
@@ -4,8 +4,8 @@ type: feature # feature | bugfix | refactor | docs | review
4
4
  branch: "" # <project>-<type>-<slug>
5
5
  workflow: feature-development # feature-development | bug-fix | code-review | refactoring
6
6
  status: open # open | in-progress | review | blocked | completed
7
- created_at: YYYY-MM-DD
8
- updated_at: YYYY-MM-DD
7
+ created_at: YYYY-MM-DDTHH:mm:ss±HH:MM
8
+ updated_at: YYYY-MM-DDTHH:mm:ss±HH:MM
9
9
  current_step: analysis # analysis | design | implementation | review | fix | commit
10
10
  assigned_to: "" # claude | codex | gemini | opencode | human
11
11
  ---
@@ -50,7 +50,7 @@ assigned_to: "" # claude | codex | gemini | opencode | human
50
50
  ## Activity Log
51
51
 
52
52
  <!-- Append a new entry for each workflow step. Do NOT overwrite previous entries. -->
53
- <!-- Format: - {yyyy-MM-dd HH:mm} — **{step}** by {agent} — {brief summary} -->
53
+ <!-- Format: - {YYYY-MM-DD HH:mm:ss±HH:MM} — **{step}** by {agent} — {brief summary} -->
54
54
 
55
55
  ## Completion Checklist
56
56
 
@@ -4,8 +4,8 @@ type: feature # feature | bugfix | refactor | docs | review
4
4
  branch: "" # <project>-<type>-<slug>
5
5
  workflow: feature-development # feature-development | bug-fix | code-review | refactoring
6
6
  status: open # open | in-progress | review | blocked | completed
7
- created_at: YYYY-MM-DD
8
- updated_at: YYYY-MM-DD
7
+ created_at: YYYY-MM-DDTHH:mm:ss±HH:MM
8
+ updated_at: YYYY-MM-DDTHH:mm:ss±HH:MM
9
9
  current_step: analysis # analysis | design | implementation | review | fix | commit
10
10
  assigned_to: "" # claude | codex | gemini | opencode | human
11
11
  ---
@@ -50,7 +50,7 @@ assigned_to: "" # claude | codex | gemini | opencode | human
50
50
  ## 活动日志
51
51
 
52
52
  <!-- 每个工作流步骤追加一条新记录,不要覆盖之前的记录。 -->
53
- <!-- 格式:- {yyyy-MM-dd HH:mm} — **{步骤}** by {执行者} — {简要说明} -->
53
+ <!-- 格式:- {YYYY-MM-DD HH:mm:ss±HH:MM} — **{步骤}** by {执行者} — {简要说明} -->
54
54
 
55
55
  ## 完成检查清单
56
56