mcpField
N
next-ticket

next-ticket

github.com/doodledood开发78103 次安装1 天前更新
代码仓库

关于 next-ticket

next-ticket 是面向以 Ticket 跟踪工作的项目的技能。它按预期延误损失比较已就绪事项,认领一个 Ticket 并呈现其上下文,但不启动执行。

主要功能

  1. 01查找已配置的 Ticket 存储位置
  2. 02确定范围并比较已就绪的 Ticket
  3. 03按预期延误损失排序
  4. 04检查策略选择与延期条件
  5. 05认领并呈现一个 Ticket
  6. 06报告整理检查结果

适用场景

  1. 01跨多个工作方向选择事项
  2. 02在单个工作方向中选出下一项 Ticket
  3. 03发现受阻或延期事项
  4. 04连同上下文交接已认领的 Ticket

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/doodledood/manifest-dev --skill next-ticket

安装后在 Claude Code 中输入/next-ticket确认已加载。

详细介绍

next-ticket

找到 ticket 存储处,读取它,选出一个 ticket。该存储处遵循 ticket 约定(../ticket-up/references/TICKET_CONVENTION.md——如果上下文中尚未包含约定,就读取它);Ticket 所处的每种状态以及它经历的每次变更,包括挑选和认领,都遵循 ../ticket-up/references/AUTOMATED_EXECUTION.md 中的 Transitions 章节——也要读取该章节。

查找存储处。 读取 tickets/store-config.md——其中应指定一个固定的、相对于仓库的位置,说明存储处在哪。如果配置指定 GitHub 作为存储位置,那么存储处就是该仓库中归属于各 effort 跟踪 issue 的 issues;应查询,而不是读取文件。如果项目有意将存储处放在其他地方,则其上下文文件会说明这一点;运行时该文件已加载。若两者皆无,先查找,再提问:如果任何地方都不存在存储处,就直说,并说明让存储处出现的两种方式——对已完成的 manifest 运行 ticket-up,或按照约定手动编写 tickets——因为尚未跟踪任何工作的项目需要的是一个存储处,而不是关于要选哪种方式的问题。如果找到了存储处,不要假定它属于哪种类型,即使眼前就有 tickets/<effort>/ 目录也不要假定,因为项目将存储处迁至跟踪工具后,通常仍会保留这些目录。提出问题时展示你找到的内容,让对方能轻松作答,并将答案写入 tickets/store-config.md,避免重复询问。

确定候选范围。 不带参数的调用应直接作答,而不是询问要选哪个 effort。如果对话已经围绕某个 effort 展开,就限定在该 effort 内。如果存储处明确指定了 effort 顺序,就采用该顺序;这是明确的操作策略,优先于默认规则。否则,从存储处本身列出所有有未关闭 Tickets 的 effort——文件存储处中的 tickets/<effort>/,或在 GitHub 中一次查询未关闭 issues 并查看 effort 标签——并一并比较它们已就绪的 Tickets。读取每个相关 effort 的前置文件中的目标地和优先级覆盖设置,据此判断延迟造成的损失是否与该 effort 期望抵达的目标相符。

当候选项涉及多个 effort,且项目有 North Star(位于仓库根目录的 NORTH_STAR.md,或项目上下文文件指定的其他位置)时,读取其中的目标、衡量指标和原则:即 Goal、How we know 和 Principles 章节;如果 North Star 采用较旧的九字段格式,则读取 Winning, and the number watched 和 Never 字段。目标及其衡量指标用于评估各 effort 的目标地,这是前置文件本身未提供的跨 effort 衡量依据;如果某个候选项的工作会违背某项原则,应指出这一冲突,而不是选出它。若参考了 North Star,说明选择理由时要提及。没有 North Star,或其目标和衡量指标仍为空时,严格按照下文进行比较;在单个 effort 内,无论如何都不改变。

每次挑选时都要读取策略标记,无论候选范围如何。如果项目的 North Star 列出了当前生效且带有标记的策略选择——即标题后有 Revisit when 条件——就到其指定的来源处读取每个条件。如果某个条件看起来已满足,就报告该选择的记录标题,说明负责人可能会想重新审视该选择;如果无法读取某个条件的来源,就连同该来源一起报告。选择 Ticket 并不意味着要修改策略:应报告证据,交由负责人或已指派的代表处理;不要更改记录或列表。 按延误损失选择。 仅从范围内的开放集选取候选项,并只保留符合 Transitions 定义的已就绪 Ticket;每次选择时,都要读取每个延期 Ticket 的 Revisit when 来源。对于来源无法读取的每个延期 Ticket,在报告中写明其名称及来源。选择过程绝不修改该字段;要更改它,需要单独进行分配并具备相应授权,不能仅凭观察其来源来更改。只有在显式优先级覆盖需要将其作为排序依据时,才读取有界的近期已关闭历史,包括文件存储中的 done/ 归档。Ticket 是其所在载体为它保存的所有内容,而不仅是条目正文;载体引用会列出这些内容所在的位置。要完整阅读每个候选项,而不仅是看起来有竞争力的那些——附加上下文也会影响 Ticket 的排序,因此只为领先候选项阅读上下文,会让排序本身决定哪些信息能影响排序。适用明确的存储或工作量优先级覆盖,并遵循其适用范围;否则采用该约定的预期延误损失规则。比较最强的候选项,判断在各自等待对方受限的人力关注期间,会损失多少项目价值。考虑持续发生或即将到期的损害、更晚才开始的持久收益、最早有用启动时间确实会因此推迟的下游工作,以及会使重要决策恶化或推迟的延后信息。不要将这些因素转换成保存下来的分数。

此选择器分配的是一次人类加 AI 会话,而不是由人独立完成实现。只估算解决依赖人类的未知因素、审美判断或授权所需的交互式人力关注;AI 后续可继续进行的常规实现不计入。不要根据传统功能规模推断耗时,也不要套用固定的 Agent 速度倍数。如果合理的耗时都很短,且彼此差异不会实质性改变延误损失,就视为相同;较短的工作仅作为平局时的决胜因素。延续已经开始的工作也仅作为平局时的决胜因素。

Auto 不是内在优先级。只有项目上下文或已配置的自动化表明,足够快就能用到无人值守资源来处理该 Ticket 时,Auto 才有影响。在这种情况下,需要人类交互且价值相近的工作,可以优先于无人值守执行器能处理的 Auto 工作;但绝不硬性偏好非 Auto 工作,如果 Auto Ticket 的延误损失更大,它仍然胜出。仅凭 Auto 只能证明有授权,不能证明执行器确实存在。类型绝不是选择依据。

写明唯一的首选 Ticket:其标题、种类(shaped 表示构建;question 表示先查明问题)、是否带有 Auto 授权(granted 表示无人值守自动化可以端到端处理;ungranted 表示自动化最多只能处理到已就绪的拉取请求,之后由人员完成并合并)、若带有类型则写明其类型(若不带类型,则明确说明),并用一句话说明为何选择它,依据必须是使其排名第一的具体延误损失或明确的优先级覆盖。切勿编造数值分数来证明选择合理。 先认领,再汇报。 将认领作为选择 Ticket 的一部分写下来——添加一行 Claimed by:、指定负责人,或使用场地的等效方式——并直接报告已完成,而不是先询问。正是这一步写入,才会让两个会话选择不同的 Ticket:就绪规则已将已认领的 Ticket 视为有人接手,因此,若选择时不留下记录,所有读取此存储的读者都会选中同一个 Ticket。在每个场地都要认领,包括无法让认领持续生效的场地;并说明你刚才做了什么,不要暗示场地能做到它实际上做不到的事——在共享跟踪器上,认领对所有人都有效;而在文件存储中,认领只是记录意向,供下一个查看此检出内容的人参考,其他位置的工作者则看不到它。按照 Transitions 中的 Pick 行所述方式写入认领:如果将认领写成存储配置的自动化身份——即无人值守运行时使用的认领账号——就会看起来像一次中断的无人值守尝试;而无人值守工作会在用户正在处理的 Ticket 上继续。如果该行显示 Ticket 未认领,请说明原因。提供完整的 Ticket,包括附带的上下文——先前尝试的记录、某人在评论中留下的修正、已在进行中的关联工作。这些上下文是用户接手内容的一部分;只交接正文,会让用户只能靠滚动去发现这些内容,甚至可能完全发现不了。只有当这不是用户想要的 Ticket 时,才提出释放认领。不要替用户执行 Ticket、调用 run-ticket,也不要替用户选择工作流;选择与执行是分开的操作。

整理流程要说明该说明的内容。 阅读开放集合时,在报告中说明 ../ticket-up/references/TICKET_CONVENTION.md → Tidy pass 指示存储读者查看的内容,并按照其中的说明,记录并关闭每个已合并拉取请求的 Ticket。这两项都不必等到选定 Ticket,也都不是选择操作。

没有就绪项时,先检查活动范围内的每项工作,再进行报告。准确说明原因:每个开放 Ticket 都是受阻(列出阻塞边)、已延期(列出每项条件及其来源读取结果)、已认领(说明认领者),或者存储为空。只有受阻项的存储,通常意味着最有用的做法是完成或整理某项已在进行中的工作——说明关闭哪项工作能最大程度降低预期的下游延误损失,而不只是指出依赖项最多的那项。

易忽略之处

  • 指出看起来已被遗弃的已认领 Ticket(“由 X 认领,尚未处理;整理流程可以释放它”),并将是否释放留给人员决定(Transitions 中的 Release a stale claim 行)。

评论

支持 Markdown