GitHub 工作流
选择所请求的操作并遵循其任务参考。每个操作都作用于一个没有先前 ghflow 任务的普通 Issue 或 PR。仅加载当前所需的任务和共享规则。应用工作上下文和工具输出来处理参考加载、搜索和交接。
在执行操作之前,先应用执行模式。本地模型工作应保持在当前会话中,无需子代理。此模式将覆盖用于分配工作者或启动新审查会话的任务指令。
定位源文件和工具
通过任何符号链接解析此 SKILL.md 路径。其父目录是 GHFLOW_SKILL_DIR。在引用和子代理交接时,使用该目录下的绝对路径。在运行命令示例之前,将 GHFLOW_CLI 设置为该目录下 cli/ghflow.py 的绝对路径。请对路径使用引号。命令工具可以为每次调用启动一个新的 shell,因此在每个使用该变量的命令中导出该变量,或直接写出完整路径:
export GHFLOW_CLI="ABSOLUTE_SKILL_DIRECTORY/cli/ghflow.py"
python3 "$GHFLOW_CLI" --help
将 ABSOLUTE_SKILL_DIRECTORY 替换为已解析的目录。解析后的技能目录是源代码检出根目录。直接使用其 cli/ghflow.py。将当前目录保持在目标项目下,以便 Git、GitHub 和身份配置使用该项目。通过每个参考的链接来解析编写指南,而不是通过当前目录。如果源读取需要外部目录权限,请报告已解析的检出路径,并使用源访问权限中的设置说明。请勿静默更改代理权限。
所选的任务参考会指明它需要的共享规则。当条件适用时打开一个共享参考,并阅读做出决定的章节;不要在第一次操作前阅读所有共享参考。这些条件是:授权(当出现权限或范围问题时);证据(在报告结果或传递标识符之前);决策(当事实或选择缺失时);代理身份(在代理运行 Git 或 GitHub 命令之前);GitHub 写入(在更改 GitHub 记录之前)。CLI 读取不授予写入权限。
选择所请求的操作
将用户的明确请求与下面的操作进行匹配。从用户的请求或目标检出中识别主题仓库。python3 "$GHFLOW_CLI" facts 报告检出、仓库、工具、身份就绪状态以及项目事实文件;配合 --issue ISSUE_URL 参数,它会额外添加该 Issue 的分支、工作树、PR 和看板项。使用此命令代替单独的 git 和 gh 读取来获取这些状态,并且当它报告存在 .ghflow/project.md 时读取该文件。对于本地模型会话的启动,preamble ISSUE_URL 会将这些事实作为一个紧凑的块打印出来,适合放在第一个提示中。源代码检出提供指令和工具;其远程仓库和已配置的账号不标识主题。如果选定的仓库、Issue 或 PR 缺失,请在 GitHub 搜索或分配任务之前返回所需信息。对于仅评估的请求,请解释操作及其限制,无需执行交付。如果某个关键端点不明确,仅询问该决定。不要选择积压工作或添加固定的执行顺序。交付请求默认为进行后续审查,并保持其 PR 处于打开状态。阅读其协调参考并应用选定的执行模式来分派和审查需求。
| 请求 | 任务参考 |
|---|---|
| 重新评估现有 Issue | reconsider-issue |
| 定义想法或 Issue,包括仅草案的工作 | define-issue |
| 与用户确定 Issue 决策 | interview-issue |
| 将宽泛的父 Issue 拆分为子 Issue | decompose-parent-issue |
| 发布已审查的 Issue 草案 | file-issue |
| 通过本地提交实现 Issue | implement-issue |
| 独立审查代码变更 | review-changes |
| 将已提交的变更作为 PR 发布 | submit-pr |
| 处理 PR 反馈并修复 CI | address-pr-review |
| 合并已明确授权的 PR | merge-pr |
| 交付或处理一个选定的 Issue | express-issue |
| 交付一个已商定的父 Issue | deliver-parent-issue |
| 将相关 Issue 分组到主题下 | bundle-issues |
| 评估一组请求的开放 Issue | triage-issues |
| 解决需要输入信息的 Issue | sweep-needs-input |
| 定义已接受的 Issue | sweep-needs-definition |
| 将未阻塞的 Issue 返回到定义阶段 | sweep-blocked |
| 审计已关闭的 Issue | sweep-audit-closed |
| 对请求的看板范围进行优先级排序 | sweep-prioritize |
| 将 Issue 暂存到就绪队列中 | curate-ready-queue |
| 处理一个明确请求的就绪队列 | burndown-ready-queue |
| 编写或刷新项目事实文件 | prepare-project-facts |
执行与交接
对于持续进行的工作或重建成本高昂的发现,请应用任务笔记。在恢复执行或上下文压缩后,请先阅读任务的现有笔记,然后再重复研究或重新打开决策。
遵循所选参考的范围和停止点。将已有的授权传递到包含的任务中。仅限草案和只读的限制仍然适用;实现或提交绝不意味着合并权限。
在委托模式下,应用协调。向子代理提供所选操作和必要的输入。如果委托或所需的审查者模型不可用,则遵循共享规则并报告此限制。
返回操作的实际结果、来源、检查以及剩余决策。明确报告缺失的能力和不完整的证据。