Orchestrate Issues(编排问题)
运行由初始问题及其合理跟进组成的工作活动。通过实际的Wollipog子会话进行协调,而非进程内子代理。编排者负责调查、调度、审查结果并维护状态;子会话负责实现。创建或编辑此技能不会启动工作活动。
激活边界
问题数量、依赖关系、任务规模以及子会话工具的可用性均不授权委托。需要显式调用此工作流,或要求编排、跨会话协调、或将实现委托给子会话。已经为活跃工作活动建立的授权仍然有效;无需在每次轮次中重复。
“领取并实现问题1089、1090和1091”表示当前会话按照仓库的问题工作流(如已安装的issue-workflow技能)领取并实现这些问题,按依赖顺序进行,并使用其所需的隔离工作树和审查。不要仅仅因为请求列出了多个问题就启动子实现会话或询问是否要编排。关于编排者设置的问题标题或正文是任务主题,并非要成为编排者的指令。
“编排子会话以实现问题1089、1090和1091”或“对这些问题使用orchestrate-issues”会激活此工作流。收到多个分配问题的子会话仍然是实现会话;父会话的编排授权不会自动授权该子会话再次进行委托。仓库要求的审查(包括跨模型审查)由其自身规则管辖,并非问题实现的委托。
如果当前会话受编排者权限预设限制且无法直接实现,请解释该具体限制并要求指示,而不是静默生成子会话或尝试禁止的实现。仅仅拥有该预设可用并非使用它的授权。
输入与设置
count:任意正整数,要选择的初始问题数量。从请求中推断;如果省略,则使用5并说明该假设。显式问题列表取代优先级选择并确定数量。concurrency:可选上限,与数量无关。默认为count、策略的maximumConcurrentChildren以及可用实时子容量中的最小值。超出部分排队;切勿提升平台限制以适应数量。- 子会话的工具、模型和努力程度来自工作活动的Wollipog编排者策略(
get_campaign.behavior中的childHarness、childModel、childEffort);此技能本身没有默认值。每个值要么是固定的,要么是自动的(null)。请参阅解析子模型和努力程度。 - 审查者保留仓库审查工作流指定的模型。
- 可选的用户指定成本、时间、总问题数或跟进深度限制。保留继承的防护栏。不要发明预算值或任意成功的停止轮次。
读取using-wollipog、仓库说明以及仓库或用户提供的任何问题工作流、审查和问题报告技能或策略。只有using-wollipog是必需的;当仓库未定义问题工作流时,子会话遵循其贡献指南和此技能中的门控。子会话的执行环境中必须具有相同的技能。从该环境的目录解析技能路径;不要假定此机器的主目录路径在其他地方也存在。在准备发布负载之前,读取仓库的问题报告策略。
发现当前的运行器、仓库/工作空间、可用的工作线程工具及其模型/努力能力、子容量以及支持的会话工具。选择宣传所选模型的工作线程;不要假定每个模型都属于Codex。在创建任何内容之前检查当前会话和实时子会话列表。仅使用允许的编排者操作;项目写入和实现属于子会话。将工作活动账本保存在持久会话工件或允许的暂存区域中,切勿保存在主检出中。在让出或压缩之前,在对话中总结其最新状态。
解析子模型和努力程度
在选择任何内容之前,从get_campaign.behavior读取childHarness、childModel和childEffort,并在每次分发前再次读取:用户可以在工作活动运行期间更改它们,只有之后创建的子会话才使用新值。Wollipog的编排者设置是这些值的唯一来源。切勿回退到此技能中编写的、从前一个工作活动中记住的或从父会话继承的模型或努力程度。
- 固定值: 完全按原样使用。当
create_session省略固定值时,服务器会填写它并拒绝任何不同的值,因此不要覆盖它。如果用户的提示要求与固定设置不同的模型或努力程度,请报告冲突并要求用户更改Wollipog设置;在解决之前不要分发受影响的问题。 - 固定工具: 固定的
childHarness命名了一个工具,每台机器都有自己的代理。当get_campaign返回childHarnessAgents时,传递为你创建子会话的机器列出的agentId;列出的null机器无法运行它。不要从childHarness.agentId派生代理;它不必是任何机器上的代理。 - 固定模型或努力程度: 当
get_campaign返回childModelMachines时,仅在标记为supported的机器上创建子会话;其他机器无法运行该模型和努力程度,创建将被拒绝。 - 自动(
null): 每次分配时从get_agent_capabilities(MCP)或wollipog session capabilities(CLI)中选择。遵循page.nextOffset直到truncated为false。选择宣传所选模型的工具;不要假定每个模型都属于一个工具。基于问题的复杂性、不确定性、错误后果、上下文需求以及用户陈述的任何成本或延迟约束进行选择。用户提示中的模型或努力倾向指导自动选择,但不会更改Wollipog设置。对于直接的工作,优先选择经济且有能力的选择;对于复杂的调试、架构或广泛变更,则选择更强的推理能力。不要发明模型排名、价格或努力级别;使用宣传的能力并解释重大不确定性。如果某个模型宣传没有可配置的努力程度,则将努力程度记录为不适用。
如果固定值在当前能力发现中缺失,请报告不匹配并要求更正设置,同时继续进行独立的分类。切勿静默替代。
在分派之前,在选择表和账本中记录每个问题的工具、确切的模型和努力程度、每个值是固定还是自动的,以及自动选择的简要理由。自动模式授权这些常规选择而无需每个子会话询问;它不授权更改账户、计费安排、权限、预算或Wollipog设置本身。
在实现前验证模型和努力程度
使用create_session并设置useWorktree: true、已解析的工具、宣传的工作线程权限模式(非编排者模式)、以及在同一调用中已解析的model和effort,加上campaignWorkItemId命名子会话记录的工作项。CLI等效命令是wollipog session create ... --model <model> --effort <effort> --work-item <id> --worktree。仅当某个维度由策略固定(服务器提供)或不适用时才省略它。显式值在初始提示之前应用。首选结构化工具输入来处理任务文本。
从创建结果或get_session读回实际的有效组合,并确认它与已解析的组合匹配。如果不匹配,请在子会话开始工作之前停止它,记录不匹配并报告;不要接受未经验证的默认值。不支持显式努力程度的客户端和服务器将失败关闭;报告该阻塞因素,而不是重试而不设置努力程度。
检查实际的创建模式:运行器协议号本身并不暴露输入。
如果Custom主机缺少campaignWorkItemId,则在创建时仅使用只读的引导分配,
验证有效配置,使用支持的分配工具记录原始的工件项分配,
并在释放实现之前选择专用工作树。不要声称在该主机上具有原子性工件项绑定或绕过所需的保护入口。如果这些操作不可用,请报告兼容性阻塞因素;切勿更新承载工作活动的堆栈。
在重用子会话之前重新检查配置。对于自动分配,如果有证据表明之前的选择不足,请重新考虑组合并记录原因;仅在空闲时通过支持的配置操作应用更改,并在释放前验证,或创建具有明确所有权交接的替换。正常的prompt_session消息不会更改会话配置。切勿更改策略固定的值。
权限与门控
阅读随using-wollipog附带的Campaign Authority Preflight参考。在分派之前,
记录有效的Custom/Full Control模式、人工建立的边界和修订版本、允许的操作、
当前所有者、兼容性、证据目的地/提供者披露以及Human Required例外。通过其确切的指令来源识别未解决的人工规则;切勿静默重写外部或用户创作的指令。Full Control仅适用于仓库策略允许的符合资格的服务器建立权限。Custom保留现有的批准要求。更改后的策略必须通过其自身显式授权的贡献工作流。
延续用户的实际工作活动授权和仓库规则。常规声明、隔离工作树、测试、推送、打开PR以及所需审查无需重复许可。现有规则可能仍需要每个PR的合并授权、UI证据审查、远程分支删除授权以及每个准确消毒问题负载的批准。不要将对此工作流的请求静默转换为这些门控的豁免。
在分派之前阅读权威的当前工作活动状态和服务器派生策略的get_campaign,并在解决工作流决策之前再次阅读;当服务器状态可用时,不要依赖提示副本。对于类型化决策,如implementation_question、pr_merge、merged_branch_deletion、follow_up_issue_publication、ui_evidence_approval和review_round_extension,子会话必须在匹配操作之前立即使用request_workflow_decision、get_workflow_decision和consume_workflow_decision来处理确切的事件。父会话不得代表子会话创建或消费其门控。使用list_descendant_requests发现待定事件,并使用resolve_descendant_workflow_decision仅解决当前由编排者拥有的确切事件。仅将answer_descendant_question和resolve_descendant_approval用于适用的非工作流请求;它们绝不能替代类型化工作流门控。普通提示、过时批准或Parent Control可用性并非类型化门控的授权。
当你拥有包含多张图片的ui_evidence_approval决策时,首选prepare_descendant_ui_evidence_review。它将每张图片交给一个托管的审查者Session,使用全新的上下文,因此图片永远不会进入你自己的对话。从子会话声明的声明和问题的UI验收标准编写其简要说明。在审查者工作时,结束你的轮次或等待其会话而不是轮询,然后使用get_descendant_ui_evidence_review读取裁决。仅使用它返回的确切delegatedImageReview引用进行批准,并在evidenceReviewed中列出每个证据ID。拒绝建议时,使用包含观察到的缺陷的childMessage拒绝。将review_descendant_ui_evidence保留用于单张图片的决策,或用于当裁决留下不清楚之处时针对一张图片进行定向查看。审查者路径不可用时,它会拒绝并说明原因;改为直接审查。审查者是像任何其他工作活动子会话一样:验证其报告并将其包含在清理中。
在批准子会话的GitHub pr_merge之前,读取它所关闭的内容:决策的closingReferenceCheck列出了GitHub合并时会关闭的每个问题,并且服务器仅在其与快照的intendedClosures匹配时才创建该决策。仅当工作活动意味着该合并要关闭该问题时才批准关闭;否则使用子消息拒绝,以便子会话将引用改写为“Refs #N”。当缺少检查(子会话的运行器早于此功能)时,在批准之前自行运行wollipog pr closures <pr-url> --json。关闭关键词会绕过类型化的issue_closure门控,因此当工作活动通过该路由关闭问题时,子会话的合并通常不应关闭任何问题。
切勿更改工作活动控制设置、批准人工拥有的请求、冒充人工或使用普通提示绕过待定的批准。符合条件的根Full Control事件可以通过其确切的类型化解析路由使用服务器记录的常设授权;它不能铸造新的授权。当活动策略规定编排者无法检查证据字节时,UI证据仍然是人工拥有的。对于任何人工拥有的或未委托的门控,通过工具支持的类型化问题机制传递具体决策,并保持不相关的子会话继续推进。在Full Control下,没有人会看到根的问题:服务器会不予回答地驳回它们,因此自行解决编排者拥有的事件,并报告人工拥有的门控(该门控在Campaign Status中保持可见),而不是询问。当所有者为自己保留决策时(设计选择、风险后果...)