@fitlab-ai/agent-infra 0.4.5 → 0.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +18 -2
- package/README.zh-CN.md +18 -2
- package/bin/cli.js +19 -0
- package/lib/defaults.json +17 -0
- package/lib/init.js +1 -0
- package/lib/log.js +5 -10
- package/lib/merge.js +885 -0
- package/lib/sandbox/commands/create.js +1170 -0
- package/lib/sandbox/commands/enter.js +64 -0
- package/lib/sandbox/commands/ls.js +71 -0
- package/lib/sandbox/commands/rebuild.js +102 -0
- package/lib/sandbox/commands/rm.js +211 -0
- package/lib/sandbox/commands/vm.js +101 -0
- package/lib/sandbox/config.js +79 -0
- package/lib/sandbox/constants.js +113 -0
- package/lib/sandbox/dockerfile.js +95 -0
- package/lib/sandbox/engine.js +93 -0
- package/lib/sandbox/index.js +64 -0
- package/lib/sandbox/runtimes/ai-tools.dockerfile +26 -0
- package/lib/sandbox/runtimes/base.dockerfile +30 -0
- package/lib/sandbox/runtimes/java17.dockerfile +3 -0
- package/lib/sandbox/runtimes/java21.dockerfile +3 -0
- package/lib/sandbox/runtimes/node20.dockerfile +3 -0
- package/lib/sandbox/runtimes/node22.dockerfile +3 -0
- package/lib/sandbox/runtimes/python3.dockerfile +3 -0
- package/lib/sandbox/shell.js +48 -0
- package/lib/sandbox/task-resolver.js +35 -0
- package/lib/sandbox/tools.js +135 -0
- package/lib/update.js +16 -2
- package/package.json +5 -1
- package/templates/.agents/rules/pr-sync.md +110 -0
- package/templates/.agents/rules/pr-sync.zh-CN.md +110 -0
- package/templates/.agents/scripts/validate-artifact.js +117 -1
- package/templates/.agents/skills/archive-tasks/SKILL.md +6 -3
- package/templates/.agents/skills/archive-tasks/SKILL.zh-CN.md +6 -3
- package/templates/.agents/skills/archive-tasks/scripts/archive-tasks.sh +91 -8
- package/templates/.agents/skills/commit/SKILL.md +9 -1
- package/templates/.agents/skills/commit/SKILL.zh-CN.md +9 -1
- package/templates/.agents/skills/commit/config/verify.json +5 -1
- package/templates/.agents/skills/commit/reference/pr-summary-sync.md +21 -0
- package/templates/.agents/skills/commit/reference/pr-summary-sync.zh-CN.md +21 -0
- package/templates/.agents/skills/commit/reference/task-status-update.md +2 -0
- package/templates/.agents/skills/commit/reference/task-status-update.zh-CN.md +2 -0
- package/templates/.agents/skills/create-pr/SKILL.md +2 -1
- package/templates/.agents/skills/create-pr/SKILL.zh-CN.md +2 -1
- package/templates/.agents/skills/create-pr/reference/comment-publish.md +7 -74
- package/templates/.agents/skills/create-pr/reference/comment-publish.zh-CN.md +6 -73
- package/templates/.agents/skills/create-task/SKILL.md +6 -0
- package/templates/.agents/skills/create-task/SKILL.zh-CN.md +6 -0
- package/templates/.agents/skills/create-task/config/verify.json +1 -0
- package/templates/.agents/skills/import-issue/SKILL.md +2 -0
- package/templates/.agents/skills/import-issue/SKILL.zh-CN.md +2 -0
- package/templates/.agents/skills/import-issue/config/verify.json +1 -0
- package/templates/.agents/skills/update-agent-infra/scripts/sync-templates.js +18 -1
- package/templates/.agents/templates/task.md +5 -4
- package/templates/.agents/templates/task.zh-CN.md +5 -4
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# Commit-Stage PR Summary Sync
|
|
2
|
+
|
|
3
|
+
> For the full aggregation rules, hidden marker, comment body template, PATCH/POST flow, shell safety constraints, and error handling, read `.agents/rules/pr-sync.md` before this step.
|
|
4
|
+
|
|
5
|
+
## Trigger Conditions
|
|
6
|
+
|
|
7
|
+
Run this step only when both conditions are true:
|
|
8
|
+
- `{task-id}` is valid
|
|
9
|
+
- `task.md` frontmatter contains a valid `pr_number`
|
|
10
|
+
|
|
11
|
+
If either condition is missing, skip PR summary sync and continue to verification.
|
|
12
|
+
|
|
13
|
+
## Execution Notes
|
|
14
|
+
|
|
15
|
+
- Generate or update the `<!-- sync-pr:{task-id}:summary -->` comment with the canonical template from `.agents/rules/pr-sync.md`
|
|
16
|
+
- In this skill, PR summary sync failures are warnings only and must not block a completed `git commit`
|
|
17
|
+
- If the summary body is unchanged, treat it as `summary skipped (no diff)`
|
|
18
|
+
|
|
19
|
+
## Result Reporting
|
|
20
|
+
|
|
21
|
+
Reuse the normalized result string from `.agents/rules/pr-sync.md` in this skill's user output or Activity Log.
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# Commit 阶段 PR 摘要同步
|
|
2
|
+
|
|
3
|
+
> 详细聚合规则、隐藏标记、评论体模板、PATCH/POST 流程、Shell 安全约束和错误处理见 `.agents/rules/pr-sync.md`。执行本步骤前先读取该 rule。
|
|
4
|
+
|
|
5
|
+
## 触发条件
|
|
6
|
+
|
|
7
|
+
仅当以下条件同时满足时执行:
|
|
8
|
+
- `{task-id}` 有效
|
|
9
|
+
- `task.md` frontmatter 中存在有效 `pr_number`
|
|
10
|
+
|
|
11
|
+
任一条件不满足时,跳过 PR 摘要同步并继续后续校验。
|
|
12
|
+
|
|
13
|
+
## 执行要求
|
|
14
|
+
|
|
15
|
+
- 按 `.agents/rules/pr-sync.md` 中的唯一权威模板生成或更新 `<!-- sync-pr:{task-id}:summary -->` 评论
|
|
16
|
+
- 在本 skill 中,PR 摘要同步失败只记为警告,不阻塞已完成的 `git commit`
|
|
17
|
+
- 如果摘要正文无变化,按 `summary skipped (no diff)` 处理
|
|
18
|
+
|
|
19
|
+
## 结果回传
|
|
20
|
+
|
|
21
|
+
将 `.agents/rules/pr-sync.md` 中的结果回传字符串用于当前 skill 的用户输出或 Activity Log 复用。
|
|
@@ -86,3 +86,5 @@ Next step - create Pull Request:
|
|
|
86
86
|
- Gemini CLI: /agent-infra:create-pr {task-id}
|
|
87
87
|
- Codex CLI: $create-pr {task-id}
|
|
88
88
|
```
|
|
89
|
+
|
|
90
|
+
> Note: beyond the four cases, if `task.md` contains a valid `pr_number`, the commit skill must sync the PR summary via `reference/pr-summary-sync.md` before entering the verification gate.
|
|
@@ -58,11 +58,12 @@ Read the latest context artifacts when they exist: `plan.md` / `plan-r{N}.md`, `
|
|
|
58
58
|
|
|
59
59
|
Aggregate a reviewer-facing summary from those artifacts and maintain a single idempotent summary comment via the hidden marker.
|
|
60
60
|
|
|
61
|
-
> Hidden marker handling, idempotent summary updates, review-history structure, and comment creation/update rules live in `reference/comment-publish.md`. Read `reference/comment-publish.md` before publishing the summary.
|
|
61
|
+
> Hidden marker handling, idempotent summary updates, review-history structure, and comment creation/update rules live in `reference/comment-publish.md` (which in turn points to `.agents/rules/pr-sync.md`). Read `reference/comment-publish.md` before publishing the summary.
|
|
62
62
|
>
|
|
63
63
|
> **Shell safety rules** (required before publishing the comment):
|
|
64
64
|
> 1. Replace `{comment-body}` with the actual inline text. Read files first, then paste the full content into the heredoc body. Do **not** use `$(cat ...)`, `$(< ...)`, `$(...)`, or `${...}` inside `<<'EOF'`.
|
|
65
65
|
> 2. Do **not** use `echo` when constructing strings that contain `<!-- -->`. Use `cat <<'EOF'` heredoc or `printf '%s\n'` instead.
|
|
66
|
+
> 3. The same constraints are restated in `.agents/rules/pr-sync.md`; once that rule is loaded, do not duplicate another copy of the template rules.
|
|
66
67
|
|
|
67
68
|
### 8. Update Task Status
|
|
68
69
|
|
|
@@ -58,11 +58,12 @@ description: "创建 Pull Request 到目标分支"
|
|
|
58
58
|
|
|
59
59
|
基于这些产物聚合 reviewer 摘要,并使用隐藏标记维护唯一且幂等的摘要评论。
|
|
60
60
|
|
|
61
|
-
> 隐藏标记、幂等 summary 评论更新、review history 格式,以及评论创建/更新规则见 `reference/comment-publish.md
|
|
61
|
+
> 隐藏标记、幂等 summary 评论更新、review history 格式,以及评论创建/更新规则见 `reference/comment-publish.md`(其内联引用 `.agents/rules/pr-sync.md`)。发布摘要前先读取 `reference/comment-publish.md`。
|
|
62
62
|
>
|
|
63
63
|
> **Shell 安全规则**(发布评论前必读):
|
|
64
64
|
> 1. `{comment-body}` 必须替换为**实际的内联文本**。先读取文件,再将全文粘贴到 heredoc body 中。**禁止**在 `<<'EOF'` 内部使用 `$(cat ...)`、`$(< ...)`、`$(...)`、`${...}`。
|
|
65
65
|
> 2. 构造含 `<!-- -->` 的字符串时,**禁止使用 `echo`**。统一使用 `cat <<'EOF'` heredoc 或 `printf '%s\n'` 构造。
|
|
66
|
+
> 3. 同样的安全约束已在 `.agents/rules/pr-sync.md` 中重述,调用该 rule 后无需重复补充另一份模板规则。
|
|
66
67
|
|
|
67
68
|
### 8. 更新任务状态
|
|
68
69
|
|
|
@@ -2,81 +2,14 @@
|
|
|
2
2
|
|
|
3
3
|
Read this file before creating or updating the single reviewer-facing PR summary comment from `create-pr`.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
> For the full aggregation rules, hidden marker, comment body template, PATCH/POST flow, shell safety constraints, and error handling, read `.agents/rules/pr-sync.md` before this step.
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
## Execution Notes
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
- Generate or update the `<!-- sync-pr:{task-id}:summary -->` comment with the canonical template from `.agents/rules/pr-sync.md`
|
|
10
|
+
- When a matching summary comment already exists, PATCH only when the body changed; otherwise skip the write
|
|
11
|
+
- In this skill, summary sync failures follow the existing `create-pr` error handling and must not roll back an already-created PR
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
## Result Reporting
|
|
14
14
|
|
|
15
|
-
|
|
16
|
-
- `## Review Summary`
|
|
17
|
-
- `### Key Technical Decisions`
|
|
18
|
-
- `### Review History`
|
|
19
|
-
- `### Test Results`
|
|
20
|
-
|
|
21
|
-
Summary content rules:
|
|
22
|
-
- write for reviewers, not for end users
|
|
23
|
-
- do not restate the raw file diff
|
|
24
|
-
- extract 2-4 self-contained technical decisions from `plan.md`
|
|
25
|
-
- avoid internal shorthand such as `Plan A/B`; each decision must make sense on its own
|
|
26
|
-
- build a review-history table from `review.md`, `review-r{N}.md`, `refinement.md`, and `refinement-r{N}.md`
|
|
27
|
-
- include test results from `implementation.md` or refinement artifacts
|
|
28
|
-
|
|
29
|
-
Recommended review-history columns:
|
|
30
|
-
- `Round`
|
|
31
|
-
- `Verdict`
|
|
32
|
-
- `Finding Counts`
|
|
33
|
-
- `Fix Status`
|
|
34
|
-
|
|
35
|
-
If a summary comment already exists:
|
|
36
|
-
- update it only when the content changed
|
|
37
|
-
- otherwise skip the write
|
|
38
|
-
|
|
39
|
-
If no summary comment exists:
|
|
40
|
-
- create one with the marker and the current summary body
|
|
41
|
-
|
|
42
|
-
Update an existing comment with:
|
|
43
|
-
|
|
44
|
-
```bash
|
|
45
|
-
gh api "repos/$repo/issues/comments/{comment-id}" -X PATCH -f body="$(cat <<'EOF'
|
|
46
|
-
{comment-body}
|
|
47
|
-
EOF
|
|
48
|
-
)"
|
|
49
|
-
```
|
|
50
|
-
|
|
51
|
-
Suggested summary body:
|
|
52
|
-
|
|
53
|
-
```markdown
|
|
54
|
-
<!-- sync-pr:{task-id}:summary -->
|
|
55
|
-
## Review Summary
|
|
56
|
-
|
|
57
|
-
> **{agent}** · {task-id}
|
|
58
|
-
|
|
59
|
-
**Updated At**: {current-time}
|
|
60
|
-
|
|
61
|
-
### Key Technical Decisions
|
|
62
|
-
|
|
63
|
-
- {decision-1}
|
|
64
|
-
- {decision-2}
|
|
65
|
-
|
|
66
|
-
### Review History
|
|
67
|
-
|
|
68
|
-
| Round | Verdict | Finding Counts | Fix Status |
|
|
69
|
-
|-------|---------|----------------|------------|
|
|
70
|
-
| Round 1 | Pending | N/A | N/A |
|
|
71
|
-
|
|
72
|
-
### Test Results
|
|
73
|
-
|
|
74
|
-
- {test-summary}
|
|
75
|
-
|
|
76
|
-
---
|
|
77
|
-
*Generated by {agent} · Internal tracking: {task-id}*
|
|
78
|
-
```
|
|
79
|
-
|
|
80
|
-
## Return the Result
|
|
81
|
-
|
|
82
|
-
Return the summary outcome as `summary created`, `summary updated`, or `summary skipped` so `create-pr` can reuse it in user output and the PR Created Activity Log.
|
|
15
|
+
Reuse the normalized result string from `.agents/rules/pr-sync.md` in this skill's user output or `PR Created` Activity Log.
|
|
@@ -2,81 +2,14 @@
|
|
|
2
2
|
|
|
3
3
|
在 `create-pr` 中创建或更新面向 reviewer 的唯一 PR 摘要评论之前先读取本文件。
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
> 详细聚合规则、隐藏标记、评论体模板、PATCH/POST 流程、Shell 安全约束和错误处理见 `.agents/rules/pr-sync.md`。执行本步骤前先读取该 rule。
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
## 执行要求
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
已有评论必须通过 Issues comments API 获取,而不是单独的 PR comments API。
|
|
14
|
-
|
|
15
|
-
推荐摘要章节:
|
|
16
|
-
- `## 审查摘要`
|
|
17
|
-
- `### 关键技术决策`
|
|
18
|
-
- `### 审查历程`
|
|
19
|
-
- `### 测试结果`
|
|
20
|
-
|
|
21
|
-
摘要内容规则:
|
|
22
|
-
- 面向 reviewer 编写,而不是面向终端用户
|
|
23
|
-
- 不要简单复述原始文件 diff
|
|
24
|
-
- 从 `plan.md` 中提取 2-4 条自包含的技术决策
|
|
25
|
-
- 避免使用 `方案 A/B` 这类内部简称;每条决策都必须独立可读
|
|
26
|
-
- 用 `review.md`、`review-r{N}.md`、`refinement.md` 和 `refinement-r{N}.md` 构建审查历程表
|
|
27
|
-
- 包含来自 `implementation.md` 或修复产物中的测试结果
|
|
28
|
-
|
|
29
|
-
推荐审查历程列:
|
|
30
|
-
- `轮次`
|
|
31
|
-
- `结论`
|
|
32
|
-
- `问题统计`
|
|
33
|
-
- `修复状态`
|
|
34
|
-
|
|
35
|
-
如果摘要评论已经存在:
|
|
36
|
-
- 只有内容发生变化时才更新
|
|
37
|
-
- 否则跳过写入
|
|
38
|
-
|
|
39
|
-
如果摘要评论不存在:
|
|
40
|
-
- 使用隐藏标记和当前摘要正文创建一条新评论
|
|
41
|
-
|
|
42
|
-
更新已有评论时,使用:
|
|
43
|
-
|
|
44
|
-
```bash
|
|
45
|
-
gh api "repos/$repo/issues/comments/{comment-id}" -X PATCH -f body="$(cat <<'EOF'
|
|
46
|
-
{comment-body}
|
|
47
|
-
EOF
|
|
48
|
-
)"
|
|
49
|
-
```
|
|
50
|
-
|
|
51
|
-
建议摘要正文:
|
|
52
|
-
|
|
53
|
-
```markdown
|
|
54
|
-
<!-- sync-pr:{task-id}:summary -->
|
|
55
|
-
## 审查摘要
|
|
56
|
-
|
|
57
|
-
> **{agent}** · {task-id}
|
|
58
|
-
|
|
59
|
-
**更新时间**:{当前时间}
|
|
60
|
-
|
|
61
|
-
### 关键技术决策
|
|
62
|
-
|
|
63
|
-
- {decision-1}
|
|
64
|
-
- {decision-2}
|
|
65
|
-
|
|
66
|
-
### 审查历程
|
|
67
|
-
|
|
68
|
-
| 轮次 | 结论 | 问题统计 | 修复状态 |
|
|
69
|
-
|------|------|----------|----------|
|
|
70
|
-
| Round 1 | Pending | N/A | N/A |
|
|
71
|
-
|
|
72
|
-
### 测试结果
|
|
73
|
-
|
|
74
|
-
- {test-summary}
|
|
75
|
-
|
|
76
|
-
---
|
|
77
|
-
*由 {agent} 自动生成 · 内部追踪:{task-id}*
|
|
78
|
-
```
|
|
9
|
+
- 按 `.agents/rules/pr-sync.md` 中的唯一权威模板生成或更新 `<!-- sync-pr:{task-id}:summary -->` 评论
|
|
10
|
+
- PR 已存在同标记评论时,只在正文变化时 PATCH;否则跳过写入
|
|
11
|
+
- 本 skill 中,摘要同步失败沿用 `create-pr` 的现有错误处理,不回滚已经创建的 PR
|
|
79
12
|
|
|
80
13
|
## 结果回传
|
|
81
14
|
|
|
82
|
-
|
|
15
|
+
将 `.agents/rules/pr-sync.md` 中的结果回传字符串用于当前 skill 的用户输出或 `PR Created` Activity Log 复用。
|
|
@@ -27,6 +27,10 @@ Extract from the natural-language description:
|
|
|
27
27
|
- **Task title**: a concise title (maximum 50 characters), in the same language as the user's description - do not translate it to English or apply Conventional Commits formatting
|
|
28
28
|
- **Task type**: `feature` | `bugfix` | `refactor` | `docs` | `chore` (infer from the description)
|
|
29
29
|
- **Workflow**: `feature-development` | `bug-fix` | `refactoring` (infer from the type)
|
|
30
|
+
- **Branch name**: format `<project>-<type>-<slug>`
|
|
31
|
+
- `<project>` comes from the `project` field in `.agents/.airc.json`
|
|
32
|
+
- `<type>` is the inferred task type
|
|
33
|
+
- `<slug>` is a kebab-case slug built from 3-6 English keywords extracted from the task title
|
|
30
34
|
- **Detailed description**: the cleaned-up original user request
|
|
31
35
|
|
|
32
36
|
If the description is unclear, **ask the user to clarify first**.
|
|
@@ -64,6 +68,7 @@ Task metadata (`task.md` YAML front matter):
|
|
|
64
68
|
```yaml
|
|
65
69
|
id: TASK-{yyyyMMdd-HHmmss}
|
|
66
70
|
type: feature|bugfix|refactor|docs|chore
|
|
71
|
+
branch: <project>-<type>-<slug>
|
|
67
72
|
workflow: feature-development|bug-fix|refactoring
|
|
68
73
|
status: active
|
|
69
74
|
created_at: {yyyy-MM-dd HH:mm:ss}
|
|
@@ -87,6 +92,7 @@ Update `.agents/workspace/active/{task-id}/task.md`:
|
|
|
87
92
|
- `current_step`: requirement-analysis
|
|
88
93
|
- `assigned_to`: {current AI agent}
|
|
89
94
|
- `updated_at`: {current time}
|
|
95
|
+
- `## Context` -> `- **Branch**:`: update it to the generated branch name
|
|
90
96
|
- **Append** to `## Activity Log` (do NOT overwrite previous entries):
|
|
91
97
|
```
|
|
92
98
|
- {yyyy-MM-dd HH:mm:ss} — **Task Created** by {agent} — Task created from description
|
|
@@ -27,6 +27,10 @@ description: "根据自然语言描述创建任务"
|
|
|
27
27
|
- **任务标题**:简洁标题(最多 50 个字符),使用中文——不要翻译为英文,不要套用 Conventional Commits 格式
|
|
28
28
|
- **任务类型**:`feature` | `bugfix` | `refactor` | `docs` | `chore`(从描述推断)
|
|
29
29
|
- **工作流**:`feature-development` | `bug-fix` | `refactoring`(从类型推断)
|
|
30
|
+
- **分支名**:格式 `<project>-<type>-<slug>`
|
|
31
|
+
- `<project>` 从 `.agents/.airc.json` 的 `project` 字段读取
|
|
32
|
+
- `<type>` 为推断出的任务类型
|
|
33
|
+
- `<slug>` 从任务标题提取 3-6 个英文关键词并转为 kebab-case
|
|
30
34
|
- **详细描述**:整理后的用户原始描述
|
|
31
35
|
|
|
32
36
|
如果描述不清晰,**先向用户确认**再继续。
|
|
@@ -64,6 +68,7 @@ date +%Y%m%d-%H%M%S
|
|
|
64
68
|
```yaml
|
|
65
69
|
id: TASK-{yyyyMMdd-HHmmss}
|
|
66
70
|
type: feature|bugfix|refactor|docs|chore
|
|
71
|
+
branch: <project>-<type>-<slug>
|
|
67
72
|
workflow: feature-development|bug-fix|refactoring
|
|
68
73
|
status: active
|
|
69
74
|
created_at: {yyyy-MM-dd HH:mm:ss}
|
|
@@ -87,6 +92,7 @@ date "+%Y-%m-%d %H:%M:%S"
|
|
|
87
92
|
- `current_step`:requirement-analysis
|
|
88
93
|
- `assigned_to`:{当前 AI 代理}
|
|
89
94
|
- `updated_at`:{当前时间}
|
|
95
|
+
- `## 上下文` 中的 `- **分支**:`:更新为生成的分支名
|
|
90
96
|
- **追加**到 `## Activity Log`(不要覆盖之前的记录):
|
|
91
97
|
```
|
|
92
98
|
- {yyyy-MM-dd HH:mm:ss} — **Task Created** by {agent} — Task created from description
|
|
@@ -44,6 +44,7 @@ Task metadata:
|
|
|
44
44
|
id: TASK-{yyyyMMdd-HHmmss}
|
|
45
45
|
issue_number: <issue-number>
|
|
46
46
|
type: feature|bugfix|refactor|docs|chore
|
|
47
|
+
branch: <project>-<type>-<slug>
|
|
47
48
|
workflow: feature-development|bug-fix|refactoring
|
|
48
49
|
status: active
|
|
49
50
|
created_at: {yyyy-MM-dd HH:mm:ss}
|
|
@@ -65,6 +66,7 @@ Update `.agents/workspace/active/{task-id}/task.md`:
|
|
|
65
66
|
- `current_step`: requirement-analysis
|
|
66
67
|
- `assigned_to`: {current AI agent}
|
|
67
68
|
- `updated_at`: {current time}
|
|
69
|
+
- `## Context` -> `- **Branch**:`: update it to the generated branch name
|
|
68
70
|
- **Append** to `## Activity Log` (do NOT overwrite previous entries):
|
|
69
71
|
```
|
|
70
72
|
- {yyyy-MM-dd HH:mm:ss} — **Import Issue** by {agent} — Issue #{number} imported
|
|
@@ -44,6 +44,7 @@ date +%Y%m%d-%H%M%S
|
|
|
44
44
|
id: TASK-{yyyyMMdd-HHmmss}
|
|
45
45
|
issue_number: <issue-number>
|
|
46
46
|
type: feature|bugfix|refactor|docs|chore
|
|
47
|
+
branch: <project>-<type>-<slug>
|
|
47
48
|
workflow: feature-development|bug-fix|refactoring
|
|
48
49
|
status: active
|
|
49
50
|
created_at: {yyyy-MM-dd HH:mm:ss}
|
|
@@ -65,6 +66,7 @@ date "+%Y-%m-%d %H:%M:%S"
|
|
|
65
66
|
- `current_step`:requirement-analysis
|
|
66
67
|
- `assigned_to`:{当前 AI 代理}
|
|
67
68
|
- `updated_at`:{当前时间}
|
|
69
|
+
- `## 上下文` 中的 `- **分支**:`:更新为生成的分支名
|
|
68
70
|
- **追加**到 `## Activity Log`(不要覆盖之前的记录):
|
|
69
71
|
```
|
|
70
72
|
- {yyyy-MM-dd HH:mm:ss} — **Import Issue** by {agent} — Issue #{number} imported
|
|
@@ -20,6 +20,23 @@ import path from 'node:path';
|
|
|
20
20
|
import { fileURLToPath } from 'node:url';
|
|
21
21
|
|
|
22
22
|
const DEFAULTS = {
|
|
23
|
+
"sandbox": {
|
|
24
|
+
"runtimes": [
|
|
25
|
+
"node20"
|
|
26
|
+
],
|
|
27
|
+
"tools": [
|
|
28
|
+
"claude-code",
|
|
29
|
+
"codex",
|
|
30
|
+
"opencode",
|
|
31
|
+
"gemini-cli"
|
|
32
|
+
],
|
|
33
|
+
"dockerfile": null,
|
|
34
|
+
"vm": {
|
|
35
|
+
"cpu": null,
|
|
36
|
+
"memory": null,
|
|
37
|
+
"disk": null
|
|
38
|
+
}
|
|
39
|
+
},
|
|
23
40
|
"labels": {
|
|
24
41
|
"in": {}
|
|
25
42
|
},
|
|
@@ -57,7 +74,7 @@ const DEFAULTS = {
|
|
|
57
74
|
}
|
|
58
75
|
};
|
|
59
76
|
|
|
60
|
-
const INSTALLER_VERSION = "v0.
|
|
77
|
+
const INSTALLER_VERSION = "v0.5.1";
|
|
61
78
|
|
|
62
79
|
function norm(p) { return p.replace(/\\/g, '/'); }
|
|
63
80
|
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
---
|
|
2
2
|
id: task-XXX
|
|
3
|
-
type: feature
|
|
3
|
+
type: feature # feature | bugfix | refactor | docs | review
|
|
4
|
+
branch: "" # <project>-<type>-<slug>
|
|
4
5
|
workflow: feature-development # feature-development | bug-fix | code-review | refactoring
|
|
5
|
-
status: open
|
|
6
|
+
status: open # open | in-progress | review | blocked | completed
|
|
6
7
|
created_at: YYYY-MM-DD
|
|
7
8
|
updated_at: YYYY-MM-DD
|
|
8
|
-
current_step: analysis
|
|
9
|
-
assigned_to: ""
|
|
9
|
+
current_step: analysis # analysis | design | implementation | review | fix | commit
|
|
10
|
+
assigned_to: "" # claude | codex | gemini | opencode | human
|
|
10
11
|
---
|
|
11
12
|
|
|
12
13
|
# Task: [Title]
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
---
|
|
2
2
|
id: task-XXX
|
|
3
|
-
type: feature
|
|
3
|
+
type: feature # feature | bugfix | refactor | docs | review
|
|
4
|
+
branch: "" # <project>-<type>-<slug>
|
|
4
5
|
workflow: feature-development # feature-development | bug-fix | code-review | refactoring
|
|
5
|
-
status: open
|
|
6
|
+
status: open # open | in-progress | review | blocked | completed
|
|
6
7
|
created_at: YYYY-MM-DD
|
|
7
8
|
updated_at: YYYY-MM-DD
|
|
8
|
-
current_step: analysis
|
|
9
|
-
assigned_to: ""
|
|
9
|
+
current_step: analysis # analysis | design | implementation | review | fix | commit
|
|
10
|
+
assigned_to: "" # claude | codex | gemini | opencode | human
|
|
10
11
|
---
|
|
11
12
|
|
|
12
13
|
# 任务:[标题]
|