@fitlab-ai/agent-infra 0.5.1 → 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.
- package/README.md +17 -3
- package/README.zh-CN.md +17 -3
- package/lib/defaults.json +3 -0
- package/lib/init.js +15 -5
- package/lib/merge.js +22 -7
- package/lib/render.js +77 -15
- package/lib/sandbox/commands/enter.js +22 -7
- package/lib/sandbox/commands/rm.js +1 -1
- package/lib/sandbox/runtimes/base.dockerfile +27 -1
- package/lib/update.js +19 -5
- package/package.json +2 -1
- package/templates/.agents/{README.md → README.en.md} +13 -3
- package/templates/.agents/README.zh-CN.md +13 -3
- package/templates/.agents/rules/issue-pr-commands.github.en.md +111 -0
- package/templates/.agents/rules/issue-pr-commands.github.zh-CN.md +111 -0
- package/templates/.agents/rules/label-milestone-setup.github.en.md +50 -0
- package/templates/.agents/rules/label-milestone-setup.github.zh-CN.md +50 -0
- package/templates/.agents/rules/release-commands.github.en.md +30 -0
- package/templates/.agents/rules/release-commands.github.zh-CN.md +30 -0
- package/templates/.agents/rules/security-alerts.github.en.md +43 -0
- package/templates/.agents/rules/security-alerts.github.zh-CN.md +43 -0
- package/templates/.agents/scripts/validate-artifact.js +3 -5
- package/templates/.agents/skills/analyze-task/{SKILL.md → SKILL.en.md} +2 -2
- package/templates/.agents/skills/analyze-task/SKILL.zh-CN.md +2 -2
- package/templates/.agents/skills/archive-tasks/scripts/archive-tasks.sh +1 -1
- package/templates/.agents/skills/block-task/{SKILL.md → SKILL.en.md} +2 -2
- package/templates/.agents/skills/block-task/SKILL.zh-CN.md +2 -2
- package/templates/.agents/skills/cancel-task/{SKILL.md → SKILL.en.md} +18 -17
- package/templates/.agents/skills/cancel-task/SKILL.zh-CN.md +18 -17
- package/templates/.agents/skills/close-codescan/{SKILL.md → SKILL.en.md} +5 -13
- package/templates/.agents/skills/close-codescan/SKILL.zh-CN.md +5 -13
- package/templates/.agents/skills/close-dependabot/{SKILL.md → SKILL.en.md} +7 -15
- package/templates/.agents/skills/close-dependabot/SKILL.zh-CN.md +7 -15
- package/templates/.agents/skills/commit/{SKILL.md → SKILL.en.md} +1 -1
- package/templates/.agents/skills/commit/SKILL.zh-CN.md +1 -1
- package/templates/.agents/skills/commit/reference/{task-status-update.md → task-status-update.en.md} +2 -2
- package/templates/.agents/skills/commit/reference/task-status-update.zh-CN.md +2 -2
- package/templates/.agents/skills/complete-task/{SKILL.md → SKILL.en.md} +11 -11
- package/templates/.agents/skills/complete-task/SKILL.zh-CN.md +11 -11
- package/templates/.agents/skills/create-issue/{SKILL.md → SKILL.en.md} +3 -6
- package/templates/.agents/skills/create-issue/SKILL.zh-CN.md +3 -6
- package/templates/.agents/skills/create-issue/reference/{label-and-type.md → label-and-type.en.md} +4 -16
- package/templates/.agents/skills/create-issue/reference/label-and-type.zh-CN.md +4 -16
- package/templates/.agents/skills/create-pr/{SKILL.md → SKILL.en.md} +4 -5
- package/templates/.agents/skills/create-pr/SKILL.zh-CN.md +4 -5
- package/templates/.agents/skills/create-pr/reference/{pr-body-template.md → pr-body-template.en.md} +8 -13
- package/templates/.agents/skills/create-pr/reference/pr-body-template.zh-CN.md +8 -13
- package/templates/.agents/skills/create-release-note/{SKILL.md → SKILL.en.md} +6 -18
- package/templates/.agents/skills/create-release-note/SKILL.zh-CN.md +6 -18
- package/templates/.agents/skills/create-task/{SKILL.md → SKILL.en.md} +4 -4
- package/templates/.agents/skills/create-task/SKILL.zh-CN.md +4 -4
- package/templates/.agents/skills/implement-task/{SKILL.md → SKILL.en.md} +2 -2
- package/templates/.agents/skills/implement-task/SKILL.zh-CN.md +2 -2
- package/templates/.agents/skills/import-codescan/{SKILL.md → SKILL.en.md} +3 -5
- package/templates/.agents/skills/import-codescan/SKILL.zh-CN.md +3 -5
- package/templates/.agents/skills/import-dependabot/{SKILL.md → SKILL.en.md} +3 -5
- package/templates/.agents/skills/import-dependabot/SKILL.zh-CN.md +3 -5
- package/templates/.agents/skills/import-issue/{SKILL.md → SKILL.en.md} +6 -14
- package/templates/.agents/skills/import-issue/SKILL.zh-CN.md +6 -14
- package/templates/.agents/skills/init-labels/{SKILL.md → SKILL.en.md} +9 -13
- package/templates/.agents/skills/init-labels/SKILL.zh-CN.md +9 -13
- package/templates/.agents/skills/init-milestones/{SKILL.md → SKILL.en.md} +5 -6
- package/templates/.agents/skills/init-milestones/SKILL.zh-CN.md +5 -6
- package/templates/.agents/skills/plan-task/{SKILL.md → SKILL.en.md} +2 -2
- package/templates/.agents/skills/plan-task/SKILL.zh-CN.md +2 -2
- package/templates/.agents/skills/refine-task/{SKILL.md → SKILL.en.md} +2 -2
- package/templates/.agents/skills/refine-task/SKILL.zh-CN.md +2 -2
- package/templates/.agents/skills/refine-title/{SKILL.md → SKILL.en.md} +7 -17
- package/templates/.agents/skills/refine-title/SKILL.zh-CN.md +6 -16
- package/templates/.agents/skills/release/{SKILL.md → SKILL.en.md} +2 -1
- package/templates/.agents/skills/release/SKILL.zh-CN.md +2 -1
- package/templates/.agents/skills/restore-task/{SKILL.md → SKILL.en.md} +7 -13
- package/templates/.agents/skills/restore-task/SKILL.zh-CN.md +7 -13
- package/templates/.agents/skills/review-task/{SKILL.md → SKILL.en.md} +2 -2
- package/templates/.agents/skills/review-task/SKILL.zh-CN.md +2 -2
- package/templates/.agents/skills/update-agent-infra/scripts/sync-templates.js +219 -59
- package/templates/.agents/templates/{task.md → task.en.md} +3 -3
- package/templates/.agents/templates/task.zh-CN.md +3 -3
- /package/templates/.agents/{QUICKSTART.md → QUICKSTART.en.md} +0 -0
- /package/templates/.agents/rules/{commit-and-pr.md → commit-and-pr.en.md} +0 -0
- /package/templates/.agents/rules/{issue-sync.md → issue-sync.github.en.md} +0 -0
- /package/templates/.agents/rules/{issue-sync.zh-CN.md → issue-sync.github.zh-CN.md} +0 -0
- /package/templates/.agents/rules/{milestone-inference.md → milestone-inference.github.en.md} +0 -0
- /package/templates/.agents/rules/{milestone-inference.zh-CN.md → milestone-inference.github.zh-CN.md} +0 -0
- /package/templates/.agents/rules/{pr-sync.md → pr-sync.github.en.md} +0 -0
- /package/templates/.agents/rules/{pr-sync.zh-CN.md → pr-sync.github.zh-CN.md} +0 -0
- /package/templates/.agents/rules/{task-management.md → task-management.en.md} +0 -0
- /package/templates/.agents/skills/archive-tasks/{SKILL.md → SKILL.en.md} +0 -0
- /package/templates/.agents/skills/check-task/{SKILL.md → SKILL.en.md} +0 -0
- /package/templates/.agents/skills/commit/reference/{commit-message.md → commit-message.en.md} +0 -0
- /package/templates/.agents/skills/commit/reference/{copyright-check.md → copyright-check.en.md} +0 -0
- /package/templates/.agents/skills/commit/reference/{pr-summary-sync.md → pr-summary-sync.en.md} +0 -0
- /package/templates/.agents/skills/create-issue/reference/{template-matching.md → template-matching.en.md} +0 -0
- /package/templates/.agents/skills/create-pr/reference/{branch-strategy.md → branch-strategy.en.md} +0 -0
- /package/templates/.agents/skills/create-pr/reference/{comment-publish.md → comment-publish.en.md} +0 -0
- /package/templates/.agents/skills/implement-task/reference/{branch-management.md → branch-management.en.md} +0 -0
- /package/templates/.agents/skills/implement-task/reference/{implementation-rules.md → implementation-rules.en.md} +0 -0
- /package/templates/.agents/skills/implement-task/reference/{output-template.md → output-template.en.md} +0 -0
- /package/templates/.agents/skills/implement-task/reference/{report-template.md → report-template.en.md} +0 -0
- /package/templates/.agents/skills/init-labels/scripts/{init-labels.sh → init-labels.github.sh} +0 -0
- /package/templates/.agents/skills/init-milestones/scripts/{init-milestones.sh → init-milestones.github.sh} +0 -0
- /package/templates/.agents/skills/refine-task/reference/{fix-workflow.md → fix-workflow.en.md} +0 -0
- /package/templates/.agents/skills/refine-task/reference/{report-template.md → report-template.en.md} +0 -0
- /package/templates/.agents/skills/release/scripts/{manage-milestones.sh → manage-milestones.github.sh} +0 -0
- /package/templates/.agents/skills/review-task/reference/{output-templates.md → output-templates.en.md} +0 -0
- /package/templates/.agents/skills/review-task/reference/{report-template.md → report-template.en.md} +0 -0
- /package/templates/.agents/skills/review-task/reference/{review-criteria.md → review-criteria.en.md} +0 -0
- /package/templates/.agents/skills/test/{SKILL.md → SKILL.en.md} +0 -0
- /package/templates/.agents/skills/test-integration/{SKILL.md → SKILL.en.md} +0 -0
- /package/templates/.agents/skills/update-agent-infra/{SKILL.md → SKILL.en.md} +0 -0
- /package/templates/.agents/skills/upgrade-dependency/{SKILL.md → SKILL.en.md} +0 -0
- /package/templates/.agents/templates/{handoff.md → handoff.en.md} +0 -0
- /package/templates/.agents/templates/{review-report.md → review-report.en.md} +0 -0
- /package/templates/.agents/workflows/{bug-fix.yaml → bug-fix.en.yaml} +0 -0
- /package/templates/.agents/workflows/{code-review.yaml → code-review.en.yaml} +0 -0
- /package/templates/.agents/workflows/{feature-development.yaml → feature-development.en.yaml} +0 -0
- /package/templates/.agents/workflows/{refactoring.yaml → refactoring.en.yaml} +0 -0
- /package/templates/.agents/workspace/{README.md → README.en.md} +0 -0
- /package/templates/.claude/commands/{analyze-task.md → analyze-task.en.md} +0 -0
- /package/templates/.claude/commands/{archive-tasks.md → archive-tasks.en.md} +0 -0
- /package/templates/.claude/commands/{block-task.md → block-task.en.md} +0 -0
- /package/templates/.claude/commands/{cancel-task.md → cancel-task.en.md} +0 -0
- /package/templates/.claude/commands/{check-task.md → check-task.en.md} +0 -0
- /package/templates/.claude/commands/{close-codescan.md → close-codescan.en.md} +0 -0
- /package/templates/.claude/commands/{close-dependabot.md → close-dependabot.en.md} +0 -0
- /package/templates/.claude/commands/{commit.md → commit.en.md} +0 -0
- /package/templates/.claude/commands/{complete-task.md → complete-task.en.md} +0 -0
- /package/templates/.claude/commands/{create-issue.md → create-issue.en.md} +0 -0
- /package/templates/.claude/commands/{create-pr.md → create-pr.en.md} +0 -0
- /package/templates/.claude/commands/{create-release-note.md → create-release-note.en.md} +0 -0
- /package/templates/.claude/commands/{create-task.md → create-task.en.md} +0 -0
- /package/templates/.claude/commands/{implement-task.md → implement-task.en.md} +0 -0
- /package/templates/.claude/commands/{import-codescan.md → import-codescan.en.md} +0 -0
- /package/templates/.claude/commands/{import-dependabot.md → import-dependabot.en.md} +0 -0
- /package/templates/.claude/commands/{import-issue.md → import-issue.en.md} +0 -0
- /package/templates/.claude/commands/{init-labels.md → init-labels.en.md} +0 -0
- /package/templates/.claude/commands/{init-milestones.md → init-milestones.en.md} +0 -0
- /package/templates/.claude/commands/{plan-task.md → plan-task.en.md} +0 -0
- /package/templates/.claude/commands/{refine-task.md → refine-task.en.md} +0 -0
- /package/templates/.claude/commands/{refine-title.md → refine-title.en.md} +0 -0
- /package/templates/.claude/commands/{release.md → release.en.md} +0 -0
- /package/templates/.claude/commands/{restore-task.md → restore-task.en.md} +0 -0
- /package/templates/.claude/commands/{review-task.md → review-task.en.md} +0 -0
- /package/templates/.claude/commands/{test-integration.md → test-integration.en.md} +0 -0
- /package/templates/.claude/commands/{test.md → test.en.md} +0 -0
- /package/templates/.claude/commands/{update-agent-infra.md → update-agent-infra.en.md} +0 -0
- /package/templates/.claude/commands/{upgrade-dependency.md → upgrade-dependency.en.md} +0 -0
- /package/templates/.gemini/commands/_project_/{analyze-task.toml → analyze-task.en.toml} +0 -0
- /package/templates/.gemini/commands/_project_/{archive-tasks.toml → archive-tasks.en.toml} +0 -0
- /package/templates/.gemini/commands/_project_/{block-task.toml → block-task.en.toml} +0 -0
- /package/templates/.gemini/commands/_project_/{cancel-task.toml → cancel-task.en.toml} +0 -0
- /package/templates/.gemini/commands/_project_/{check-task.toml → check-task.en.toml} +0 -0
- /package/templates/.gemini/commands/_project_/{close-codescan.toml → close-codescan.en.toml} +0 -0
- /package/templates/.gemini/commands/_project_/{close-dependabot.toml → close-dependabot.en.toml} +0 -0
- /package/templates/.gemini/commands/_project_/{commit.toml → commit.en.toml} +0 -0
- /package/templates/.gemini/commands/_project_/{complete-task.toml → complete-task.en.toml} +0 -0
- /package/templates/.gemini/commands/_project_/{create-issue.toml → create-issue.en.toml} +0 -0
- /package/templates/.gemini/commands/_project_/{create-pr.toml → create-pr.en.toml} +0 -0
- /package/templates/.gemini/commands/_project_/{create-release-note.toml → create-release-note.en.toml} +0 -0
- /package/templates/.gemini/commands/_project_/{create-task.toml → create-task.en.toml} +0 -0
- /package/templates/.gemini/commands/_project_/{implement-task.toml → implement-task.en.toml} +0 -0
- /package/templates/.gemini/commands/_project_/{import-codescan.toml → import-codescan.en.toml} +0 -0
- /package/templates/.gemini/commands/_project_/{import-dependabot.toml → import-dependabot.en.toml} +0 -0
- /package/templates/.gemini/commands/_project_/{import-issue.toml → import-issue.en.toml} +0 -0
- /package/templates/.gemini/commands/_project_/{init-labels.toml → init-labels.en.toml} +0 -0
- /package/templates/.gemini/commands/_project_/{init-milestones.toml → init-milestones.en.toml} +0 -0
- /package/templates/.gemini/commands/_project_/{plan-task.toml → plan-task.en.toml} +0 -0
- /package/templates/.gemini/commands/_project_/{refine-task.toml → refine-task.en.toml} +0 -0
- /package/templates/.gemini/commands/_project_/{refine-title.toml → refine-title.en.toml} +0 -0
- /package/templates/.gemini/commands/_project_/{release.toml → release.en.toml} +0 -0
- /package/templates/.gemini/commands/_project_/{restore-task.toml → restore-task.en.toml} +0 -0
- /package/templates/.gemini/commands/_project_/{review-task.toml → review-task.en.toml} +0 -0
- /package/templates/.gemini/commands/_project_/{test-integration.toml → test-integration.en.toml} +0 -0
- /package/templates/.gemini/commands/_project_/{test.toml → test.en.toml} +0 -0
- /package/templates/.gemini/commands/_project_/{update-agent-infra.toml → update-agent-infra.en.toml} +0 -0
- /package/templates/.gemini/commands/_project_/{upgrade-dependency.toml → upgrade-dependency.en.toml} +0 -0
- /package/templates/.opencode/commands/{analyze-task.md → analyze-task.en.md} +0 -0
- /package/templates/.opencode/commands/{archive-tasks.md → archive-tasks.en.md} +0 -0
- /package/templates/.opencode/commands/{block-task.md → block-task.en.md} +0 -0
- /package/templates/.opencode/commands/{cancel-task.md → cancel-task.en.md} +0 -0
- /package/templates/.opencode/commands/{check-task.md → check-task.en.md} +0 -0
- /package/templates/.opencode/commands/{close-codescan.md → close-codescan.en.md} +0 -0
- /package/templates/.opencode/commands/{close-dependabot.md → close-dependabot.en.md} +0 -0
- /package/templates/.opencode/commands/{commit.md → commit.en.md} +0 -0
- /package/templates/.opencode/commands/{complete-task.md → complete-task.en.md} +0 -0
- /package/templates/.opencode/commands/{create-issue.md → create-issue.en.md} +0 -0
- /package/templates/.opencode/commands/{create-pr.md → create-pr.en.md} +0 -0
- /package/templates/.opencode/commands/{create-release-note.md → create-release-note.en.md} +0 -0
- /package/templates/.opencode/commands/{create-task.md → create-task.en.md} +0 -0
- /package/templates/.opencode/commands/{implement-task.md → implement-task.en.md} +0 -0
- /package/templates/.opencode/commands/{import-codescan.md → import-codescan.en.md} +0 -0
- /package/templates/.opencode/commands/{import-dependabot.md → import-dependabot.en.md} +0 -0
- /package/templates/.opencode/commands/{import-issue.md → import-issue.en.md} +0 -0
- /package/templates/.opencode/commands/{init-labels.md → init-labels.en.md} +0 -0
- /package/templates/.opencode/commands/{init-milestones.md → init-milestones.en.md} +0 -0
- /package/templates/.opencode/commands/{plan-task.md → plan-task.en.md} +0 -0
- /package/templates/.opencode/commands/{refine-task.md → refine-task.en.md} +0 -0
- /package/templates/.opencode/commands/{refine-title.md → refine-title.en.md} +0 -0
- /package/templates/.opencode/commands/{release.md → release.en.md} +0 -0
- /package/templates/.opencode/commands/{restore-task.md → restore-task.en.md} +0 -0
- /package/templates/.opencode/commands/{review-task.md → review-task.en.md} +0 -0
- /package/templates/.opencode/commands/{test-integration.md → test-integration.en.md} +0 -0
- /package/templates/.opencode/commands/{test.md → test.en.md} +0 -0
- /package/templates/.opencode/commands/{update-agent-infra.md → update-agent-infra.en.md} +0 -0
- /package/templates/.opencode/commands/{upgrade-dependency.md → upgrade-dependency.en.md} +0 -0
|
@@ -7,9 +7,9 @@ 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
|
|
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
|
-
- When a valid `issue_number` exists,
|
|
12
|
+
- When a valid `issue_number` exists, Issue sync is required
|
|
13
13
|
|
|
14
14
|
## Steps
|
|
15
15
|
|
|
@@ -22,12 +22,12 @@ 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
|
|
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
|
|
29
29
|
|
|
30
|
-
Infer the
|
|
30
|
+
Infer the Issue closing label from the cancellation reason:
|
|
31
31
|
- `status: superseded`: reason implies duplicate, replaced, merged into, or already covered by another Issue or PR
|
|
32
32
|
- `status: invalid`: reason implies invalid report, no real problem, cannot reproduce, or no issue after investigation
|
|
33
33
|
- `status: declined`: reason implies not planned, deprioritized, or explicitly rejected
|
|
@@ -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
|
-
- {
|
|
53
|
+
- {YYYY-MM-DD HH:mm:ss±HH:MM} — **Cancelled** by {agent} — {one-line cancellation reason}
|
|
54
54
|
```
|
|
55
55
|
|
|
56
|
-
### 4.
|
|
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
|
|
62
|
+
### 5. Verify the Move
|
|
63
63
|
|
|
64
64
|
```bash
|
|
65
65
|
ls .agents/workspace/completed/{task-id}/task.md
|
|
@@ -72,6 +72,7 @@ Confirm the task directory was moved successfully.
|
|
|
72
72
|
Check whether `task.md` contains a valid `issue_number`. If not, skip this step.
|
|
73
73
|
|
|
74
74
|
> Issue sync rules live in `.agents/rules/issue-sync.md`. Read that file before syncing.
|
|
75
|
+
> Read `.agents/rules/issue-pr-commands.md` before closing the Issue.
|
|
75
76
|
|
|
76
77
|
If a valid `issue_number` exists:
|
|
77
78
|
- Replace all `status:` labels with the label inferred in Step 2
|
|
@@ -80,7 +81,7 @@ If a valid `issue_number` exists:
|
|
|
80
81
|
- Remove all assignees
|
|
81
82
|
- Publish a cancellation comment using the marker `<!-- sync-issue:{task-id}:cancel -->`
|
|
82
83
|
- Create or update the `<!-- sync-issue:{task-id}:task -->` comment using the task-comment sync rules from `.agents/rules/issue-sync.md`
|
|
83
|
-
- Close the Issue
|
|
84
|
+
- Close the Issue by following the "Close an Issue" command in `.agents/rules/issue-pr-commands.md`, using the fixed reason `not planned`
|
|
84
85
|
|
|
85
86
|
The cancellation comment must include at least:
|
|
86
87
|
- the cancellation reason
|
|
@@ -88,7 +89,7 @@ The cancellation comment must include at least:
|
|
|
88
89
|
|
|
89
90
|
### 7. Verification Gate
|
|
90
91
|
|
|
91
|
-
Run the verification gate to confirm the
|
|
92
|
+
Run the verification gate to confirm the moved task and sync state are valid:
|
|
92
93
|
|
|
93
94
|
```bash
|
|
94
95
|
node .agents/scripts/validate-artifact.js gate cancel-task .agents/workspace/completed/{task-id} --format text
|
|
@@ -109,13 +110,13 @@ Keep the gate output in your reply as fresh evidence. Do not claim completion wi
|
|
|
109
110
|
|
|
110
111
|
Output format:
|
|
111
112
|
```
|
|
112
|
-
Task {task-id} cancelled
|
|
113
|
+
Task {task-id} cancelled; task directory moved to completed/.
|
|
113
114
|
|
|
114
115
|
Cancellation reason: {reason}
|
|
115
|
-
|
|
116
|
-
|
|
116
|
+
Status label: {status-label or skipped}
|
|
117
|
+
Target path: .agents/workspace/completed/{task-id}/
|
|
117
118
|
|
|
118
|
-
Next step - inspect the
|
|
119
|
+
Next step - inspect the moved task:
|
|
119
120
|
- Claude Code / OpenCode: /check-task {task-id}
|
|
120
121
|
- Gemini CLI: /{{project}}:check-task {task-id}
|
|
121
122
|
- Codex CLI: $check-task {task-id}
|
|
@@ -125,7 +126,7 @@ Next step - inspect the archived task:
|
|
|
125
126
|
|
|
126
127
|
- [ ] Recorded the cancellation reason and updated task.md
|
|
127
128
|
- [ ] Moved the task directory into `.agents/workspace/completed/`
|
|
128
|
-
- [ ] Completed
|
|
129
|
+
- [ ] Completed Issue sync when an Issue exists
|
|
129
130
|
- [ ] Ran and passed the verification gate
|
|
130
131
|
- [ ] Showed the full next-step command set to the user
|
|
131
132
|
|
|
@@ -138,5 +139,5 @@ Next step - inspect the archived task:
|
|
|
138
139
|
## Error Handling
|
|
139
140
|
|
|
140
141
|
- Task not found: `Task {task-id} not found`
|
|
141
|
-
- Task already
|
|
142
|
-
- Issue sync failed: keep the local
|
|
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,9 +7,9 @@ description: "取消不再需要的任务并归档"
|
|
|
7
7
|
|
|
8
8
|
## 行为边界 / 关键规则
|
|
9
9
|
|
|
10
|
-
-
|
|
10
|
+
- 本命令用于终止一个不再需要继续执行的任务,并转移到 `completed/`
|
|
11
11
|
- 只有在确认该任务无需继续实现、审查或修复时才可取消
|
|
12
|
-
- 有效 `issue_number` 存在时,
|
|
12
|
+
- 有效 `issue_number` 存在时,Issue 同步属于必做项
|
|
13
13
|
|
|
14
14
|
## 执行步骤
|
|
15
15
|
|
|
@@ -22,12 +22,12 @@ 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. 判断取消标签
|
|
29
29
|
|
|
30
|
-
根据取消原因推断
|
|
30
|
+
根据取消原因推断 Issue 关闭标签:
|
|
31
31
|
- `status: superseded`:原因包含“重复”、“替代”、“合并到”、“已由 #123 / PR 替代”等语义
|
|
32
32
|
- `status: invalid`:原因包含“误报”、“不存在”、“无法复现”、“排查后无问题”等语义
|
|
33
33
|
- `status: declined`:原因包含“不做”、“暂不实现”、“优先级调整”、“方案否决”等语义
|
|
@@ -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
|
-
- {
|
|
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
|
|
@@ -72,6 +72,7 @@ ls .agents/workspace/completed/{task-id}/task.md
|
|
|
72
72
|
检查 `task.md` 中是否存在有效的 `issue_number`。如果没有,跳过此步骤。
|
|
73
73
|
|
|
74
74
|
> Issue 同步规则见 `.agents/rules/issue-sync.md`。执行同步前先读取该文件。
|
|
75
|
+
> 关闭 Issue 前先读取 `.agents/rules/issue-pr-commands.md`。
|
|
75
76
|
|
|
76
77
|
如果存在有效的 `issue_number`:
|
|
77
78
|
- 替换所有 `status:` labels,并设置步骤 2 推断出的标签
|
|
@@ -80,7 +81,7 @@ ls .agents/workspace/completed/{task-id}/task.md
|
|
|
80
81
|
- 移除全部 assignees
|
|
81
82
|
- 发布取消评论,隐藏标记使用 `<!-- sync-issue:{task-id}:cancel -->`
|
|
82
83
|
- 使用 `.agents/rules/issue-sync.md` 的 task.md 评论同步规则创建或更新 `<!-- sync-issue:{task-id}:task -->` 评论
|
|
83
|
-
- 关闭 Issue
|
|
84
|
+
- 关闭 Issue:按 `.agents/rules/issue-pr-commands.md` 中的“关闭 Issue”命令执行,关闭原因固定为 `not planned`
|
|
84
85
|
|
|
85
86
|
取消评论至少包含:
|
|
86
87
|
- 取消原因
|
|
@@ -88,7 +89,7 @@ ls .agents/workspace/completed/{task-id}/task.md
|
|
|
88
89
|
|
|
89
90
|
### 7. 完成校验
|
|
90
91
|
|
|
91
|
-
|
|
92
|
+
运行完成校验,确认任务转移和同步状态符合规范:
|
|
92
93
|
|
|
93
94
|
```bash
|
|
94
95
|
node .agents/scripts/validate-artifact.js gate cancel-task .agents/workspace/completed/{task-id} --format text
|
|
@@ -109,13 +110,13 @@ node .agents/scripts/validate-artifact.js gate cancel-task .agents/workspace/com
|
|
|
109
110
|
|
|
110
111
|
输出格式:
|
|
111
112
|
```
|
|
112
|
-
任务 {task-id}
|
|
113
|
+
任务 {task-id} 已取消,任务目录已转移到 completed/。
|
|
113
114
|
|
|
114
115
|
取消原因:{reason}
|
|
115
|
-
|
|
116
|
-
|
|
116
|
+
状态标签:{status-label 或 skipped}
|
|
117
|
+
目标路径:.agents/workspace/completed/{task-id}/
|
|
117
118
|
|
|
118
|
-
下一步 -
|
|
119
|
+
下一步 - 查看已转移任务:
|
|
119
120
|
- Claude Code / OpenCode:/check-task {task-id}
|
|
120
121
|
- Gemini CLI:/{{project}}:check-task {task-id}
|
|
121
122
|
- Codex CLI:$check-task {task-id}
|
|
@@ -125,7 +126,7 @@ GitHub 标签:{status-label 或 skipped}
|
|
|
125
126
|
|
|
126
127
|
- [ ] 已记录取消原因并更新 task.md
|
|
127
128
|
- [ ] 已将任务目录移动到 `.agents/workspace/completed/`
|
|
128
|
-
- [ ] 已在存在 Issue 时完成
|
|
129
|
+
- [ ] 已在存在 Issue 时完成 Issue 同步
|
|
129
130
|
- [ ] 已运行 gate 校验并通过
|
|
130
131
|
- [ ] 已向用户展示完整的下一步命令
|
|
131
132
|
|
|
@@ -138,5 +139,5 @@ GitHub 标签:{status-label 或 skipped}
|
|
|
138
139
|
## 错误处理
|
|
139
140
|
|
|
140
141
|
- 任务未找到:`Task {task-id} not found`
|
|
141
|
-
-
|
|
142
|
-
- Issue
|
|
142
|
+
- 任务已转移:提示任务已在 `completed/` 中
|
|
143
|
+
- Issue 同步失败:保留本地转移结果,并告知用户需要人工补齐平台操作
|
|
@@ -11,9 +11,7 @@ Dismiss the specified Code Scanning (CodeQL) alert and record a justified reason
|
|
|
11
11
|
|
|
12
12
|
### 1. Retrieve Alert Information
|
|
13
13
|
|
|
14
|
-
|
|
15
|
-
gh api repos/{owner}/{repo}/code-scanning/alerts/<alert-number>
|
|
16
|
-
```
|
|
14
|
+
Read `.agents/rules/security-alerts.md` before this step, then use its Code Scanning alert read command to fetch the alert details.
|
|
17
15
|
|
|
18
16
|
Verify that the alert is in the `open` state. If it is already dismissed or fixed, inform the user and exit.
|
|
19
17
|
|
|
@@ -61,13 +59,7 @@ Confirm? (y/N)
|
|
|
61
59
|
|
|
62
60
|
### 6. Execute the Dismissal
|
|
63
61
|
|
|
64
|
-
|
|
65
|
-
gh api --method PATCH \
|
|
66
|
-
repos/{owner}/{repo}/code-scanning/alerts/<alert-number> \
|
|
67
|
-
-f state=dismissed \
|
|
68
|
-
-f dismissed_reason="{api-reason}" \
|
|
69
|
-
-f dismissed_comment="{user explanation}"
|
|
70
|
-
```
|
|
62
|
+
Dismiss the alert by following the Code Scanning dismiss command in `.agents/rules/security-alerts.md`, passing the mapped `{api-reason}` and the user's explanation.
|
|
71
63
|
|
|
72
64
|
**API reason mapping** (per the GitHub Code Scanning API):
|
|
73
65
|
- False Positive -> `false positive`
|
|
@@ -80,13 +72,13 @@ If a related task exists (search for `codescan_alert_number: <alert-number>`):
|
|
|
80
72
|
Get the current time:
|
|
81
73
|
|
|
82
74
|
```bash
|
|
83
|
-
date "+%Y-%m-%d %H:%M:%S"
|
|
75
|
+
date "+%Y-%m-%d %H:%M:%S%:z"
|
|
84
76
|
```
|
|
85
77
|
|
|
86
78
|
- Add the dismissal record to task.md
|
|
87
79
|
- **Append** to `## Activity Log` (do NOT overwrite previous entries):
|
|
88
80
|
```
|
|
89
|
-
- {
|
|
81
|
+
- {YYYY-MM-DD HH:mm:ss±HH:MM} — **Alert Closed** by {agent} — Code Scanning alert #{alert-number} dismissed: {reason}
|
|
90
82
|
```
|
|
91
83
|
- Archive the task
|
|
92
84
|
|
|
@@ -115,7 +107,7 @@ Next step - complete and archive the task if a related task exists:
|
|
|
115
107
|
## Notes
|
|
116
108
|
|
|
117
109
|
1. **Handle high-severity alerts carefully**: Critical/High alerts require thorough analysis. Prefer `import-codescan` + `analyze-task` first.
|
|
118
|
-
2. **Use truthful reasons**: dismissal records are stored
|
|
110
|
+
2. **Use truthful reasons**: dismissal records are stored on the platform and may be audited.
|
|
119
111
|
3. **Review periodically**: dismissed alerts should be re-evaluated over time.
|
|
120
112
|
4. **Fix first**: dismissal should be the last resort.
|
|
121
113
|
|
|
@@ -11,9 +11,7 @@ description: "关闭 Code Scanning 告警并记录理由"
|
|
|
11
11
|
|
|
12
12
|
### 1. 获取告警信息
|
|
13
13
|
|
|
14
|
-
|
|
15
|
-
gh api repos/{owner}/{repo}/code-scanning/alerts/<alert-number>
|
|
16
|
-
```
|
|
14
|
+
执行前先读取 `.agents/rules/security-alerts.md`,并按其中的 Code Scanning 告警读取命令获取告警详情。
|
|
17
15
|
|
|
18
16
|
验证告警处于 `open` 状态。如果已被关闭/修复,告知用户并退出。
|
|
19
17
|
|
|
@@ -61,13 +59,7 @@ Code Scanning 告警 #{alert-number}
|
|
|
61
59
|
|
|
62
60
|
### 6. 执行关闭
|
|
63
61
|
|
|
64
|
-
|
|
65
|
-
gh api --method PATCH \
|
|
66
|
-
repos/{owner}/{repo}/code-scanning/alerts/<alert-number> \
|
|
67
|
-
-f state=dismissed \
|
|
68
|
-
-f dismissed_reason="{api-reason}" \
|
|
69
|
-
-f dismissed_comment="{用户的说明}"
|
|
70
|
-
```
|
|
62
|
+
按 `.agents/rules/security-alerts.md` 中的 Code Scanning 告警关闭命令执行关闭操作,并传入映射后的 `{api-reason}` 与用户说明。
|
|
71
63
|
|
|
72
64
|
**API reason 映射**(按 GitHub Code Scanning API):
|
|
73
65
|
- 误报 -> `false positive`
|
|
@@ -80,13 +72,13 @@ gh api --method PATCH \
|
|
|
80
72
|
获取当前时间:
|
|
81
73
|
|
|
82
74
|
```bash
|
|
83
|
-
date "+%Y-%m-%d %H:%M:%S"
|
|
75
|
+
date "+%Y-%m-%d %H:%M:%S%:z"
|
|
84
76
|
```
|
|
85
77
|
|
|
86
78
|
- 添加关闭记录到 task.md
|
|
87
79
|
- **追加**到 `## Activity Log`(不要覆盖之前的记录):
|
|
88
80
|
```
|
|
89
|
-
- {
|
|
81
|
+
- {YYYY-MM-DD HH:mm:ss±HH:MM} — **Alert Closed** by {agent} — Code Scanning alert #{alert-number} dismissed: {reason}
|
|
90
82
|
```
|
|
91
83
|
- 归档任务
|
|
92
84
|
|
|
@@ -115,7 +107,7 @@ Code Scanning 告警 #{alert-number} 已关闭。
|
|
|
115
107
|
## 注意事项
|
|
116
108
|
|
|
117
109
|
1. **谨慎处理高严重程度告警**:Critical/High 告警需要充分分析。建议先执行 import-codescan + analyze-task。
|
|
118
|
-
2.
|
|
110
|
+
2. **真实的理由**:关闭记录保存在平台中,可能会被审计。
|
|
119
111
|
3. **定期复查**:已关闭的告警应定期复查。
|
|
120
112
|
4. **优先修复**:关闭应作为最后手段。
|
|
121
113
|
|
|
@@ -11,9 +11,7 @@ Dismiss the specified Dependabot security alert and record a justified reason.
|
|
|
11
11
|
|
|
12
12
|
### 1. Retrieve Alert Information
|
|
13
13
|
|
|
14
|
-
|
|
15
|
-
gh api repos/{owner}/{repo}/dependabot/alerts/<alert-number>
|
|
16
|
-
```
|
|
14
|
+
Read `.agents/rules/security-alerts.md` before this step, then use its Dependabot alert read command to fetch the alert details.
|
|
17
15
|
|
|
18
16
|
Verify that the alert is in the `open` state. If it is already dismissed or fixed, inform the user and exit.
|
|
19
17
|
|
|
@@ -67,13 +65,7 @@ Confirm? (y/N)
|
|
|
67
65
|
|
|
68
66
|
### 6. Execute the Dismissal
|
|
69
67
|
|
|
70
|
-
|
|
71
|
-
gh api --method PATCH \
|
|
72
|
-
repos/{owner}/{repo}/dependabot/alerts/<alert-number> \
|
|
73
|
-
-f state=dismissed \
|
|
74
|
-
-f dismissed_reason="{api-reason}" \
|
|
75
|
-
-f dismissed_comment="{user explanation}"
|
|
76
|
-
```
|
|
68
|
+
Dismiss the alert by following the Dependabot dismiss command in `.agents/rules/security-alerts.md`, passing the mapped `{api-reason}` and the user's explanation.
|
|
77
69
|
|
|
78
70
|
**API reason mapping**:
|
|
79
71
|
- False Positive -> `not_used` or `inaccurate`
|
|
@@ -88,13 +80,13 @@ If a related task exists (search for `security_alert_number: <alert-number>`):
|
|
|
88
80
|
Get the current time:
|
|
89
81
|
|
|
90
82
|
```bash
|
|
91
|
-
date "+%Y-%m-%d %H:%M:%S"
|
|
83
|
+
date "+%Y-%m-%d %H:%M:%S%:z"
|
|
92
84
|
```
|
|
93
85
|
|
|
94
86
|
- Add the dismissal record to task.md
|
|
95
87
|
- **Append** to `## Activity Log` (do NOT overwrite previous entries):
|
|
96
88
|
```
|
|
97
|
-
- {
|
|
89
|
+
- {YYYY-MM-DD HH:mm:ss±HH:MM} — **Alert Closed** by {agent} — Dependabot alert #{alert-number} dismissed: {reason}
|
|
98
90
|
```
|
|
99
91
|
- Archive the task
|
|
100
92
|
|
|
@@ -110,9 +102,9 @@ Severity: {severity}
|
|
|
110
102
|
Reason: {reason}
|
|
111
103
|
Explanation: {explanation}
|
|
112
104
|
|
|
113
|
-
View:
|
|
105
|
+
View: {alert-url}
|
|
114
106
|
|
|
115
|
-
Note: it can be reopened on
|
|
107
|
+
Note: it can be reopened on the platform if necessary.
|
|
116
108
|
|
|
117
109
|
Next step - complete and archive the task if a related task exists:
|
|
118
110
|
- Claude Code / OpenCode: /complete-task {task-id}
|
|
@@ -123,7 +115,7 @@ Next step - complete and archive the task if a related task exists:
|
|
|
123
115
|
## Notes
|
|
124
116
|
|
|
125
117
|
1. **Handle high-severity alerts carefully**: Critical/High alerts require thorough analysis before dismissal. Prefer `import-dependabot` + `analyze-task` first.
|
|
126
|
-
2. **Use truthful reasons**: dismissal records are stored
|
|
118
|
+
2. **Use truthful reasons**: dismissal records are stored on the platform and may be audited.
|
|
127
119
|
3. **Review periodically**: dismissed alerts should be re-evaluated because code changes may invalidate the dismissal rationale.
|
|
128
120
|
4. **Fix first**: dismissal should be the last resort. Prefer upgrading, replacing, or mitigating.
|
|
129
121
|
|
|
@@ -11,9 +11,7 @@ description: "关闭 Dependabot 安全告警并记录理由"
|
|
|
11
11
|
|
|
12
12
|
### 1. 获取告警信息
|
|
13
13
|
|
|
14
|
-
|
|
15
|
-
gh api repos/{owner}/{repo}/dependabot/alerts/<alert-number>
|
|
16
|
-
```
|
|
14
|
+
执行前先读取 `.agents/rules/security-alerts.md`,并按其中的 Dependabot 告警读取命令获取告警详情。
|
|
17
15
|
|
|
18
16
|
验证告警处于 `open` 状态。如果已被关闭/修复,告知用户并退出。
|
|
19
17
|
|
|
@@ -67,13 +65,7 @@ CVE:{cve-id}
|
|
|
67
65
|
|
|
68
66
|
### 6. 执行关闭
|
|
69
67
|
|
|
70
|
-
|
|
71
|
-
gh api --method PATCH \
|
|
72
|
-
repos/{owner}/{repo}/dependabot/alerts/<alert-number> \
|
|
73
|
-
-f state=dismissed \
|
|
74
|
-
-f dismissed_reason="{api-reason}" \
|
|
75
|
-
-f dismissed_comment="{用户的说明}"
|
|
76
|
-
```
|
|
68
|
+
按 `.agents/rules/security-alerts.md` 中的 Dependabot 告警关闭命令执行关闭操作,并传入映射后的 `{api-reason}` 与用户说明。
|
|
77
69
|
|
|
78
70
|
**API reason 映射**:
|
|
79
71
|
- 误报 -> `not_used` 或 `inaccurate`
|
|
@@ -88,13 +80,13 @@ gh api --method PATCH \
|
|
|
88
80
|
获取当前时间:
|
|
89
81
|
|
|
90
82
|
```bash
|
|
91
|
-
date "+%Y-%m-%d %H:%M:%S"
|
|
83
|
+
date "+%Y-%m-%d %H:%M:%S%:z"
|
|
92
84
|
```
|
|
93
85
|
|
|
94
86
|
- 添加关闭记录到 task.md
|
|
95
87
|
- **追加**到 `## Activity Log`(不要覆盖之前的记录):
|
|
96
88
|
```
|
|
97
|
-
- {
|
|
89
|
+
- {YYYY-MM-DD HH:mm:ss±HH:MM} — **Alert Closed** by {agent} — Dependabot alert #{alert-number} dismissed: {reason}
|
|
98
90
|
```
|
|
99
91
|
- 归档任务
|
|
100
92
|
|
|
@@ -110,9 +102,9 @@ date "+%Y-%m-%d %H:%M:%S"
|
|
|
110
102
|
原因:{reason}
|
|
111
103
|
说明:{explanation}
|
|
112
104
|
|
|
113
|
-
查看:
|
|
105
|
+
查看:{alert-url}
|
|
114
106
|
|
|
115
|
-
|
|
107
|
+
注意:如有需要,可在平台侧重新打开。
|
|
116
108
|
|
|
117
109
|
下一步 - 完成并归档任务(如有关联任务):
|
|
118
110
|
- Claude Code / OpenCode:/complete-task {task-id}
|
|
@@ -123,7 +115,7 @@ date "+%Y-%m-%d %H:%M:%S"
|
|
|
123
115
|
## 注意事项
|
|
124
116
|
|
|
125
117
|
1. **谨慎处理高严重程度告警**:Critical/High 告警需要在关闭前进行充分分析。建议先执行 import-dependabot + analyze-task。
|
|
126
|
-
2.
|
|
118
|
+
2. **真实的理由**:关闭记录保存在平台中,可能会被审计。
|
|
127
119
|
3. **定期复查**:已关闭的告警应定期复查,因为代码变更可能使关闭理由失效。
|
|
128
120
|
4. **优先修复**:关闭应作为最后手段。优先考虑升级、替换或缓解。
|
|
129
121
|
|
|
@@ -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.
|
package/templates/.agents/skills/commit/reference/{task-status-update.md → task-status-update.en.md}
RENAMED
|
@@ -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
|
-
- {
|
|
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
|
-
- {
|
|
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
|
|
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
|
|
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
|
-
- {
|
|
67
|
+
- {YYYY-MM-DD HH:mm:ss±HH:MM} — **Completed** by {agent} — Task moved to completed/
|
|
68
68
|
```
|
|
69
69
|
|
|
70
|
-
### 4.
|
|
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
|
|
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
|
|
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
|
-
-
|
|
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
|
|
135
|
+
- [ ] Verified move succeeded
|
|
136
136
|
- [ ] Informed user of completion
|
|
137
137
|
|
|
138
138
|
## Notes
|
|
139
139
|
|
|
140
|
-
1. **Premature completion**: Do not
|
|
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
|
|
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
|
```
|