用途
work-intake 是所有工作请求的统一入口。每个工作请求都先经过 intake,由它确定范围、收集需求,并路由到合适的工作流。其核心原则是:没有小到不值得跟踪的工作,也没有大到无法分解的工作。
主要能力
- 项目看板就绪检查(门禁):在开始任何工作 intake 之前,验证项目看板基础设施是否就绪。这是一个门禁,未通过前不得进入澄清性问题环节。检查内容包括:GITHUB_PROJECT_NUM 环境变量是否设置、GH_PROJECT_OWNER 环境变量是否设置、项目是否可访问、必需字段(Status、Type、Priority)是否存在。
- 澄清性问题:在界定范围前理解请求,包括基本问题(想达成什么目标、成功是什么样、谁/什么受影响、有无约束、是否属于更大计划的一部分)和发现性问题(如何使用、当前存在什么、已尝试过什么、有无先例或示例)。
- 范围评估:根据未知数、交付物、代码区域、依赖关系、持续时间、标准等维度,将请求评估为 Trivial(微小)、Small(小)、Large(大)、Massive(庞大)四个级别。
- 路由到合适工作流:根据范围评估结果,将请求路由到 issue-prerequisite、issue-decomposition、epic-management 或 initiative-architecture 等下游技能。
- 可恢复性检查点:在路由前,将 intake 评估记录到内存中,包括请求、范围、未知数、路由目标、状态。
使用方式
开始时声明:"I'm using work-intake to understand and scope this request before beginning."
流程如下:
- 步骤 0:项目看板就绪(门禁)。验证环境变量和项目可访问性,检查必需字段。若门禁失败,需配置缺失的环境变量、创建项目看板、添加必需字段,然后重新运行就绪检查。
- 步骤 1:澄清性问题。向用户提问以理解目标和成功标准。
- 步骤 2:范围评估。根据范围矩阵评估请求级别。
- 步骤 3:路由到合适工作流。根据范围级别选择下游技能。
范围决策逻辑:
- 未知数为无且交付物不超过 2 个 → TRIVIAL:直接使用 issue-prerequisite
- 未知数少且交付物不超过 5 个 → SMALL:使用 issue-prerequisite,可能使用 issue-decomposition
- 未知数多或交付物超过 5 个 → LARGE:使用 epic-management 并创建研究 spike
- 未知数极多或交付物超过 20 个或涉及新基础设施 → MASSIVE:使用 initiative-architecture
适用场景
适用于任何工作请求的初始处理阶段,无论请求大小。示例:
- Trivial 示例:"把登录页按钮调浅一点。" → 目标:调整按钮颜色;成功:按钮变浅;未知数:无;交付物:1 个;范围:TRIVIAL;路由到 issue-prerequisite。
- Large 示例:"给应用添加深色模式。" → 目标:主题切换能力;成功:用户可切换深色/浅色模式;未知数:当前主题方案、组件库支持、持久化机制;交付物:约 10 个;范围:LARGE;路由到 epic-management。
- Massive 示例:"让用户通过点击手机弹窗登录。" → 目标:移动推送通知登录;成功:用户收到推送、点击、登录;未知数:是否有移动应用、推送通知基础设施、认证流程设计、安全要求;交付物:30+ 个;范围:MASSIVE;路由到 initiative-architecture。
限制
- 项目看板就绪是硬性门禁,未通过前不得进入任何下游技能。
- 需要设置 GITHUB_PROJECT_NUM 和 GH_PROJECT_OWNER 环境变量。
- 需要项目看板可访问,并建议配置 Status、Type、Priority 字段。
- 范围评估依赖对未知数和交付物的准确判断,若判断偏差可能导致路由不当。
- 该技能本身不执行实现,仅负责 intake 和路由。
红旗信号
以下措辞暗示请求范围比表面更大:
- "只是加个……" + 新能力 → Large(新能力等于基础设施)
- "用户应该能够……" → Large(面向用户等于全栈)
- "集成……" → Large(外部等于 API、认证、错误处理)
- "像[其他产品]那样……" → Massive(功能对等等于大量工作)
- "移动/应用/通知" → Massive(除非应用已存在)
- "实时/同步/直播" → Large(基础设施)
永不拒绝工作
无论请求多么庞大:承认目标、解释流程、开始调查、记录一切、分解直到可处理。从"庞大请求"到"实现"的路径是:庞大请求 → 倡议架构(记录未知数,创建研究 spike)→ 研究 spike(回答未知数)→ 史诗结构(分组交付物)→ 问题分解(创建可处理任务)→ 实现(一次一个问题)。