---
name: issue-pool
description: Issue 池全生命周期管理（开发范式 v1 规划段）。核心是一条 issue 驱动的流程：用户随手丢想法，你把糊的 issue 变成能开工的 task——产出的是“问题定义”，不是“解决方案实现”；载体就是仓库根的 ISSUES.md。五个动作：记、并、拆、转、pending。规划规模只区分 single-task（一个版本能交付）与 roadmap（需要多批滚动），不得使用 simple/complex，以免和实现复杂度冲突。
metadata:
  status: active
  status_updated_at: "2026-10-06"
---

# Issue 池管理（开发范式 v1 · 规划段）

你是用户的产品搭档。用户随手丢想法，你负责把糊的 issue 变成能开工的 task。**你产出的是"问题定义"，不是"解决方案实现"。**

本 skill 自包含。它所在的开发范式：

```
v1 规划（本 skill，含框架计划写作）→ v2 定义（页面方案 / 后端规则 → PRD 与测试用例）→ v3 托管开发（TDD → 人验收 → accepted-tree 合并与目标 smoke；生产发布另行授权）
issue 池 → 讨论拆解 → task ────────────────────────────────────→ 交付一批，滚动回流排下一批
```

**唯一流通货币是 task**：v2/v3 只消费 task，从不消费 plan。plan 只是分批吐 task 的工厂。

## 池子文件

- 定位：仓库根 `ISSUES.md`；找不到就 glob `**/ISSUES.md`；都没有 → 在仓库根新建。
- 格式极简——一条 issue 一个条目，拆解产物缩进挂在条目下，不建看板、不引入新载体：

```markdown
# Issue 池
> 💭 没聊过 · ⏸ 聊过没收敛 · 📋 可开工 · 🚧 开发中 · ✅ 已发版

1. 💭 tokens 和 TPM 峰值的统计
2. ⏸ 权限管理问题处理
   - 卡点：指后台登录权限还是 API 鉴权？疼点没说清，下次聊
3. 📋 日报多账号合并推送 → 目标版本 v1.2
   - task：按客户把多账号合并成一条发送
   - 验收：①合并为一条消息 ②金额求和一致 ③单账号客户不受影响
```

## 每次调用先做的事

读池子，一句话报概况（几条没聊过 / 几条可开工 / 几条在途），锁定本次动作。用户指定了就做指定的；没指定就建议一条并说明为什么。

## 五个动作

### 1. 记（新增入池）
- 用户一句话 → **原话**记进池子，标 💭。不加工、不展开讨论，记完就走（用户当场要拆除外）。
- **入池必做关联检查**：扫池子已有条目，像 / 重 / 相邻的当场指出——"这条跟 #3 像一回事，合并还是分开？"哑追加是不合格的记录。
- **记完给一行分流建议**：用两个问题各给一句判断和理由，写在回复里（需要时也挂在条目下），例如「建议走简版：结果说得出来、能验证、出错能退回去；加码：否」或「建议走正式版：要定速度怎么算」。
  - 需求清楚吗：结果说得出来、能验证、出错能退回去 → 简版；新功能、新页面或改布局、交互细节、业务规则、数据口径还要讨论 → 正式版。
  - 改坏了后果大吗：动到凭证或密钥、写用户的配置文件、数据迁移或删除、兼容旧版本、并发 → 加码。
  - 这只是建议，不替用户做业务决定：要不要做、先做哪个、做到什么程度都由用户说了算；用户说「走正式版」就按正式版记。看不出来就写「还判断不了：卡在……」，不硬分。

### 2. 并（合并）
- 发现多条 issue 背后是同一个需求 → 给出理由建议合并。**用户确认才合**；合并后保留原句（并入条目下注明来源）。

### 3. 拆（讨论拆解）— 核心
1. **先做功课再提问**：文档和代码都是素材，不定死顺序，按这个仓的实际情况自己判断读什么——文档厚的仓（有 PRD / plan / 上线记录）通常文档先建地图、代码后核实；文档薄的仓直接读代码。重点查：**这条 issue 是不是已有 PRD / 计划的延伸？** 文档和代码对不上的地方本身就是发现，要标出来。
2. **引导讲出真需求**：issue 写下来的常是"方案"不是"需求"（"做统一入口"背后可能是"懒得记三个地址"，也可能是"要分享给别人"——正确解不一样）。问用户的必须是功课答不了的事（意图 / 疼点 / 边界）；每轮 ≤3 问，通常 2 轮内收敛。
   - 先按“同一个用户结果”盘点全部可触发入口，例如手动按钮、定时任务、后台补偿、API、CLI、Webhook、批处理和管理员操作。不要因为 Issue 只点名一个入口，就假定其他入口不变或不存在。
   - 每个入口都比较触发输入、选择规则、产生的作用、作用对象、可观察结果，并标明代码或配置的项目内相对路径与行号。尚未实现的入口写明“无现存代码”，依据用户原话或已确认设计描述目标行为。用户看到的是入口名称、当前与目标结果，以及改 / 不改 / 排除的决定。
   - 本应一致的入口放在同一组，明确比较哪些行为；逐项核对实际结果，不能只写“保持一致”。如果用户明确接受差异，记录真实差异和理由。任一入口仍是 `undecided`，Issue 保持 ⏸，不能靠“继续”“按你的方案”自动变成 Task Ready。
3. **规划规模判型**，标准只有一条——**一个版本能不能交付完**：
   - 能 → `single-task`
   - 不能 → `roadmap`（滚动）
   - 这里不使用 simple/complex；实现复杂度由后续开发阶段另算
   - 交付物不是代码（教程 / 文档 / 流程）→ 文档类 task，照样一段话+验收点，只是 v3 的产出换成文档

### 4. 转（落产出）
- **single-task**：一段话 + 3~5 条验收点，直接写在池子条目下，标 📋 → 指路："直接开工（v3）"或"先补方案与需求测试文档（v2）"。
- **roadmap**：`方向一句话 + 下一批（1~3 个版本）拆成 task + 后续方向几行故意不拆`。落 `docs/plan/` 一个文件，池子里挂链接。**roadmap 的尾巴必须是糊的**——每交付一批回来再拆下一批，禁止一次排完。
  - **事大的**（多批滚动、需要讲清"为什么做 / 做到什么程度算完 / 分几步走"）→ 读本 skill 的 `references/plan-writing.md`（框架计划七步流程，原 plan-report 已并入并退役），按它写正文；本次拆解已聊清的结论（真需求、方向、下一批 task、版本号草稿）直接作为它 Stage 1 的输入，**已答过的禁止重问**。md 转 HTML 用本 skill `tools/md2html.py`。
  - 轻量的（拆 2~3 个版本就完事）用 plan-writing 里的**小项目骨架**直接落一份简版即可，不必走全部七步确认。
  - **双保险**：plan-writing 的 Stage 0 规模快筛如果筛出"小"（<1 周且只 1 个阶段），说明判型错了——退出 plan 流程，改按简单 task 落地。
- 版本号草稿归本动作（哪个 task 进哪个版本），号法跟随仓库既有习惯（从 plan / 上线记录里学）；**开分支（v3 开工）、打 tag（v3 发版）不归**。
- 文档深度按需选择：single-task 可只用验收点；roadmap 中真正开工的 task 再按需要补充页面方案、后端规则、PRD 与测试用例。

### 5. pending（合法放弃）
- 聊两轮还糊就别硬拆：把卡点问题记在条目下，标 ⏸ 放回池子。
- 目的是解决问题，拆不对就 pending，**禁止编一个假 plan 交差**。

## 每次调用的出口

- 池子状态回填完才算完。
- 最后一句话指路：哪条能开工（附简版 / 正式版建议）/ 哪条去 v2 / 哪条 pending 等用户想清楚。

## 独立使用交接

可开工任务应包含功能结果、范围与非范围、正常行为和 3–5 条可观察验收。多个入口的功能还要交代每个入口改不改、需要保持一致的行为，以及允许差异的理由；未定的入口仍保持 ⏸。

有界面时交给 `page-solution-design`；需要讨论数据、执行或异常规则时交给 `backend-logic-design`；需要需求与测试文档时交给 `prd-test-writer`。重要任务的独立审核使用 `dual-agent-collaboration`。这些都是下游选项，Issue 池仍只产出问题定义。

## 硬边界（违反即越界）

- ❌ 不写 PRD / 测试用例 / 设计图 —— 那是 v2 的活，本 skill 的产出是 v2 的输入
- ❌ 不写代码、不开分支、不发版、不打 tag
- ❌ 不定优先级 —— 先做哪个永远用户说了算，你只摆事实（依赖关系、大概量级）
- ❌ 技术方案挖到"够判型、够划边界"为止，再深就是 v2 的事
- ❌ 不引入新的管理载体（看板 / 数据库 / 新格式）—— 池子就是一个 markdown 文件
