import-issuelisted
Install: claude install-skill fitlab-ai/agent-infra
# 导入 Issue
导入指定的 Issue 并创建任务。参数:issue 编号。
## 行为边界 / 关键规则
- 本技能的唯一产出是 `task.md`
- 不要编写或修改业务代码。仅做导入
- 执行本技能后,你**必须**立即更新任务状态
## 执行流程
### 1. 获取 Issue 信息
执行前先读取 `.agents/rules/issue-pr-commands.md`,并按其中的前置步骤完成认证和代码托管平台检测;随后按其中的 “读取 Issue” 命令获取 Issue 信息。
提取:issue 编号、标题、描述、标签。
任务标题直接使用 Issue 的原始标题(保持 Issue 标题的原始语言)。
### 2. 检查已有任务
2.1 搜索 `.agents/workspace/active/` 中是否已有链接到此 Issue 的任务。
- 如果找到,**默认复用现有任务**(场景 A),不询问用户;在最终告知中明确「已复用现有任务 `{task-id}`,未重新导入」。若用户希望重新导入,需要先手动归档/删除已有任务再次执行本技能
- 如果未找到,继续执行 2.2
2.2 按 `.agents/rules/issue-pr-commands.md` 的“历史任务评论扫描”命令扫描 Issue 评论中的同步标记,查找可恢复的历史任务 ID。
该命令依赖步骤 1 已设置的 `$upstream_repo`。
退出码处理(pipeline 整体):
- 退出 0 + 输出 `found=false`:按新 Issue 导入流程创建新任务
- 退出 0 + 输出 `found=true`:复用 `task_id`
- 退出非 0(平台 API、认证、JSON 解析或任一段管道异常):视为 platform API 降级,向用户展示 stderr 后按新 Issue 导入流程继续,不阻塞导入
### 3. 创建任务目录和文件
3.1 决定 task ID 和 `created_at`。
| 场景 | 触发条件 | task ID 来源 | created_at 来源 | 用户确认 |
|---|---|---|---|---|
| 场景 A | 2.1 命中本地任务 | 复用本地 ID | 本地保留 | 默认复用,不询问;告知用户已复用 |
| 场景 B | 2.1 无命中 + 2.2 无候选 | `date +%Y%m%d-%H%M%S` 新建 | 当前时间 | 不需要 |
| 场景 C | 2.1 无命中 + 2.2 有候选 | 自动复用最早候选 ID | 优先用远端 frontmatter 的 `created_at`,缺失时用当前时间 | 告知即可 |
```bash
date +%Y%m%d-%H%M%S
```
3.2 写入任务目录和 `task.md`。
- 创建目录:`.agents/workspace/active/{task-id}/`
- 使用 `.agents/templates/task.md` 模板创建 `task.md`
- 场景 C 优先沿用远端 frontmatter 中的 `type`、`workflow`、`branch`、`created_by`、`milestone`;缺失或损坏字段按 Issue 标签和当前规则重新推断
- `current_step` 始终写入 `requirement-analysis`,不要恢复为远端原 `current_step`