@weotro/dx 0.1.15 → 0.1.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/skills/project-agent-standards/SKILL.md +82 -0
- package/skills/project-agent-standards/agents/openai.yaml +6 -0
- package/skills/project-agent-standards/assets/development-standards.md +49 -0
- package/skills/project-agent-standards/assets/dx-development-workflow.md +46 -0
- package/skills/project-agent-standards/assets/follow-up-issues.md +9 -0
- package/skills/project-agent-standards/assets/github/ISSUE_TEMPLATE/issue.md +27 -0
- package/skills/project-agent-standards/assets/github/pull_request_template.md +27 -0
- package/skills/ship-issue-pr/SKILL.md +88 -45
package/package.json
CHANGED
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: project-agent-standards
|
|
3
|
+
description: 审核并补齐项目面向 agent 的 GitHub 模板、开发评审规范、DX 工作流与回访 Issue 规则,将 AGENTS.md 整理为按需读取的渐进披露结构。
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# 项目 Agent 规范整备
|
|
7
|
+
|
|
8
|
+
对用户指定仓库执行审核并补齐缺项;未指定时使用当前仓库。只读审核请求只报告差异。默认执行本地可回退的模板和文档修改,不包含提交、推送、发布 Issue / PR、安装工具或改造构建系统。现有全局技能保持不变。
|
|
9
|
+
|
|
10
|
+
## 1. 建立项目依据
|
|
11
|
+
|
|
12
|
+
检查工作区状态,读取目标及祖先的 `AGENTS.md`。按需检查已有规范、贡献指南、GitHub 模板、技术栈清单、任务配置和 CI。优先搜索标题与职责,不能仅凭文件名判定规范缺失。
|
|
13
|
+
|
|
14
|
+
记录以下六项的现状、路径和缺口:Issue / PR 模板、agent 引用、开发评审规范、DX / Nx 工作流、回访规则、AGENTS.md 渐进披露结构。检查根及模块 agent 入口的内容分工、读取条件和引用链;祖先指令用于确定约束,不修改目标仓库之外的文件。区分已配置的命令、实际运行结果与未来建议;不读取或输出秘密值。
|
|
15
|
+
|
|
16
|
+
完成条件:每项均有存在证据或明确的缺失结论,能够识别目标模块与实际工具链。
|
|
17
|
+
|
|
18
|
+
## 2. 补齐 GitHub 模板
|
|
19
|
+
|
|
20
|
+
使用随技能携带的完整模板,无需访问原始项目:
|
|
21
|
+
|
|
22
|
+
| 资源 | 目标标准位置 |
|
|
23
|
+
| --- | --- |
|
|
24
|
+
| [Issue 模板](assets/github/ISSUE_TEMPLATE/issue.md) | `.github/ISSUE_TEMPLATE/issue.md` |
|
|
25
|
+
| [PR 模板](assets/github/pull_request_template.md) | `.github/pull_request_template.md` |
|
|
26
|
+
|
|
27
|
+
目标缺失时创建目录并直接复制。目标已有等效内容时保留;空文件或缺少模板必需结构时,以资源覆盖该目标文件。覆盖前保留目标的未提交或未跟踪原文到仓库外的临时备份,并记录路径;已提交的原文可通过 Git 恢复。用户明确要求统一为附带模板时直接覆盖。
|
|
28
|
+
|
|
29
|
+
检查根目录、`docs/` 与 `.github/` 是否有竞争的默认 PR 模板;将仍适用的独有约束合入标准模板,再清理被取代的默认副本并更新引用。保留用途不同的 Issue Forms、多模板及配置,不因其存在就删除。已有标准文件中的项目专属验收要求同样需要保留。
|
|
30
|
+
|
|
31
|
+
完成条件:两个标准位置均有可用模板,默认 PR 模板选择无冲突,独有约束和用户原文可追踪。
|
|
32
|
+
|
|
33
|
+
## 3. 补齐面向 agent 的参考文档
|
|
34
|
+
|
|
35
|
+
按缺口读取对应资源,依照源码、配置和已有决策改写。现有等效文档优先就地补齐并继续使用其路径;只有缺失时才使用表中的默认路径。
|
|
36
|
+
|
|
37
|
+
| 缺项 | 适配资源 | 默认路径 |
|
|
38
|
+
| --- | --- | --- |
|
|
39
|
+
| 开发与评审规范 | [开发规范骨架](assets/development-standards.md) | `docs/guides/development-standards.md` |
|
|
40
|
+
| DX / Nx 工作流 | [工作流骨架](assets/dx-development-workflow.md) | `docs/guides/dx-development-workflow.md` |
|
|
41
|
+
| 回访规则 | [回访规则](assets/follow-up-issues.md) | `docs/agents/follow-up-issues.md` |
|
|
42
|
+
|
|
43
|
+
文档写给执行任务的 agent:说明触发条件、具体决策、命令前置条件、失败处理与完成证据。删除骨架中的编写提示及不适用分支,替换所有 `{{...}}`。保留目标项目语言约定,无约定时使用简体中文。
|
|
44
|
+
|
|
45
|
+
开发规范应覆盖实际模块与风险;不会因使用此技能就迁移成三层架构或引入新的测试框架。将已有约束、此次建立的规则和未来建议分清;尚未接入的检查不能写成已经运行的门禁。
|
|
46
|
+
|
|
47
|
+
DX 文档必须检查实际 DX 配置、Nx 目标与 CLI 能力。已接入则记录真实命令;只接入其一则分别说明职责;均未接入也生成说明,明确“未接入”并给出现有命令,不编造 `dx` 入口。工具链接入是另一个任务。
|
|
48
|
+
|
|
49
|
+
回访规则合入现有 Issue 规范的对应章节;没有载体时才创建独立文档。沿用目标项目的本地或远程追踪方式,不引入原始项目的 `.scratch/` 默认存储决定。
|
|
50
|
+
|
|
51
|
+
完成条件:三类说明可被 agent 直接使用,命令有配置依据,待确认事实明确列出,无未替换占位符。
|
|
52
|
+
|
|
53
|
+
## 4. 检查并改造 AGENTS.md 的渐进披露结构
|
|
54
|
+
|
|
55
|
+
渐进披露按任务需要加载说明:根入口保留项目识别、全局必需约束与条件明确的文档入口;模块入口保留该目录适用的规则;详细流程、命令说明、模板字段和专题规范放在被引用文档中。判断依据是内容职责与加载方式,不以行数或是否已有链接判定。只有简短必需规则的入口无需为了拆分而创建文件。
|
|
56
|
+
|
|
57
|
+
存在下列情况时,在本次整备中直接改造:入口堆放仅特定任务需要的详细流程;所有专题文档被要求无条件全文加载;只有链接而没有读取条件;相同规范在多个入口重复维护。只读审核请求则报告问题和迁移建议。
|
|
58
|
+
|
|
59
|
+
1. 按原有规则的适用范围梳理内容,保留全局必需约束及模块覆盖关系;将条件性细节归入现有等效文档,缺少载体时再按专题创建文档,沿用项目目录约定。
|
|
60
|
+
2. 在原入口用“执行什么任务时,必须读取哪个文档”的短指令替换已迁移细节。适用时才读取的专题不使用无条件全文导入;避免入口互相引用或仅为转发再增加一层目录页。
|
|
61
|
+
3. 更新迁移内容中的相对链接和其他引用,确保目标存在且能从入口到达。保留原规则的强制程度、例外、权限边界和历史决策,不因移动位置而削弱要求。修改未提交或未跟踪原文前保存仓库外备份并记录路径。
|
|
62
|
+
4. 建立原章节到新位置的对应记录,逐项核对无遗漏后再删除重复正文。已有合适结构则就地补齐缺失的读取条件和链接,重复执行不重复拆分。
|
|
63
|
+
|
|
64
|
+
在根 `AGENTS.md` 放 GitHub 模板和回访规则的触发入口;模块独有的开发规范放在模块 `AGENTS.md`。若仓库采用其他 agent 入口,复用其引用链;缺少入口则创建根 `AGENTS.md`。参考以下文字并替换为真实的相对链接:
|
|
65
|
+
|
|
66
|
+
> 创建或更新 GitHub Issue / PR 正文时,必须读取并使用 [Issue 模板](.github/ISSUE_TEMPLATE/issue.md) / [PR 模板](.github/pull_request_template.md)。网页、CLI、API 和技能操作均适用。正文结构和填写要求以模板为准;发布前检查必填章节与占位内容。
|
|
67
|
+
|
|
68
|
+
> 开发、修复或评审代码时,按任务范围读取 [开发与评审规范](docs/guides/development-standards.md) 的相关章节。
|
|
69
|
+
|
|
70
|
+
> 初始化环境、选择启动 / 验证 / 构建命令或排查环境注入时,读取 [开发工作流](docs/guides/dx-development-workflow.md) 的相关章节。
|
|
71
|
+
|
|
72
|
+
> 创建、更新或转为回访用途的 Issue 时,读取 [回访规则](docs/agents/follow-up-issues.md)。
|
|
73
|
+
|
|
74
|
+
入口保留必要约束和读取条件。模板字段留在模板,命令细节留在工作流,回访标识留在 Issue 规范。将仓库其他位置同义重复的说明改成引用或删除;保留模块专属约束与历史决策。重复运行时复用既有入口,不追加相同规则。
|
|
75
|
+
|
|
76
|
+
完成条件:入口、模块规则与专题细节分工清楚,每个按需文档都有明确触发条件,原有有效约束完整保留,没有失效链接、循环引用或无条件加载所有专题的要求。
|
|
77
|
+
|
|
78
|
+
## 5. 验证与交付
|
|
79
|
+
|
|
80
|
+
检查差异、Markdown 链接、模板 frontmatter、占位符和竞争模板。逐项复核第 1 步的六项清单与所有新引用,确认再执行一次不会增加文件或重复条目。对照迁移记录检查规则完整性,并分别用代码修改、Issue / PR 编写和回访任务走查入口,确认能够找到对应规范,且不会要求加载无关专题。
|
|
81
|
+
|
|
82
|
+
纯文档修改按项目规则做差异与格式验证;验证命令存在可以检查配置或安全的帮助输出,不为文档审核运行发布、迁移或全仓测试。报告每项的保留 / 新建 / 更新状态、文件链接、实际验证和未确认事项,以及渐进披露检查结论与章节迁移去向;未接入 DX / Nx 要明确说明。不要将文档中列出的命令写成已经执行通过。
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
<!-- 编写提示:这是适配骨架,不是可直接复制的项目决策。用实际目录、框架和验证目标替换变量,删除不适用章节与本提示。 -->
|
|
2
|
+
# {{项目或模块}} 开发与评审规范
|
|
3
|
+
|
|
4
|
+
适用范围:{{目录与业务入口}}。
|
|
5
|
+
依据:{{已有架构决策、领域术语、工具配置的相对链接}}。
|
|
6
|
+
|
|
7
|
+
## 规范与执行
|
|
8
|
+
|
|
9
|
+
开发、修复和评审时按改动范围读取对应章节。“必须”是验收要求,“应”允许有依据的偏离,“可”是可选方案。新增规则的目标状态与现有实现分开记录;文档本身不证明实现合规。
|
|
10
|
+
|
|
11
|
+
开始实现前明确输入输出、权限、业务不变量、失败行为和验证方式。架构例外按项目既有决策机制处理,并在 PR 模板对应章节记录影响及验证。
|
|
12
|
+
|
|
13
|
+
## 模块边界与依赖
|
|
14
|
+
|
|
15
|
+
{{记录实际模块、各层职责、允许的依赖方向、入口与组装位置,以及一组目标仓库真实路径。单体、库、前端或脚本项目按自身结构填写。}}
|
|
16
|
+
|
|
17
|
+
公共接口暴露调用者需要的能力;基础设施与第三方细节留在适配边界。修改共享接口时检查实际消费方,并说明兼容方式。
|
|
18
|
+
|
|
19
|
+
## 契约、状态与错误
|
|
20
|
+
|
|
21
|
+
{{记录协议或组件接口的真源、生成文件边界、输入校验、错误码或异常约定。}}
|
|
22
|
+
|
|
23
|
+
边界明确空值、非法输入、超时、取消与重复操作的行为。状态变化通过可观察结果验收。诊断遵循项目语言及脱敏规则,避免暴露凭据和用户敏感内容。
|
|
24
|
+
|
|
25
|
+
## 数据与外部副作用
|
|
26
|
+
|
|
27
|
+
{{仅在存在持久化或远程调用时保留:事务边界、并发约束、幂等、重试、迁移兼容性、失败恢复及资源生命周期。引用实际实现约定,不默认引入事务框架或 Outbox。}}
|
|
28
|
+
|
|
29
|
+
## 界面与交互
|
|
30
|
+
|
|
31
|
+
{{仅在存在界面时保留:状态归属、加载/空/错误状态、可访问性、响应式、已有设计系统、前后端契约和关键交互验收。}}
|
|
32
|
+
|
|
33
|
+
## 安全、配置与运行
|
|
34
|
+
|
|
35
|
+
{{说明实际身份与权限边界、配置来源及优先级、秘密存储、启停与日志约定。依项目风险补充资源限制和可观测性。}}
|
|
36
|
+
|
|
37
|
+
## 验证与评审
|
|
38
|
+
|
|
39
|
+
按变更风险选择能观察行为的检查:业务逻辑、接口、持久化、交互及跨模块链路分别映射到现有测试入口。缺少自动化覆盖时记录具体缺口,不把计划中的检查当成已接入门禁。
|
|
40
|
+
|
|
41
|
+
| 变更范围 | 验收证据 | 命令依据 |
|
|
42
|
+
| --- | --- | --- |
|
|
43
|
+
| {{真实模块或变更类型}} | {{需验证的行为、失败路径}} | {{链接到工作流对应章节}} |
|
|
44
|
+
|
|
45
|
+
纯文档核对差异、格式和引用;代码改动执行覆盖本次风险的检查。相关检查已通过且输入未变化时不重复运行。按证据区分本次回归、既有失败和环境问题;验证结果统一填写 PR 模板。
|
|
46
|
+
|
|
47
|
+
## 规范维护
|
|
48
|
+
|
|
49
|
+
{{列出本项目特有的评审要点及已知未落实要求。只引用真实存在的文档;需要外部依据时核对所用框架版本,未核实的判断标为待确认。}}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
<!-- 编写提示:先检查项目实际配置。未接入 DX / Nx 时保留标题但明确状态,将命令表改为现有工具入口;删除无关章节、变量和本提示。 -->
|
|
2
|
+
# DX 与 Nx 开发工作流
|
|
3
|
+
|
|
4
|
+
供 agent 在初始化环境、选择命令或排查执行问题时按需读取。
|
|
5
|
+
|
|
6
|
+
## 工具职责与真源
|
|
7
|
+
|
|
8
|
+
接入状态:{{DX 与 Nx 分别为已接入 / 未接入;缺少 CLI 与缺少仓库配置分别说明}}。
|
|
9
|
+
|
|
10
|
+
{{列出公开任务入口、内部编排工具、实际配置路径及版本依据。只有已验证使用全局 DX 时才写全局安装策略;不套用其他仓库包名、版本或目录。}}
|
|
11
|
+
|
|
12
|
+
## 环境准备
|
|
13
|
+
|
|
14
|
+
{{记录实际运行时版本来源、依赖安装命令、所需服务及其由谁管理。没有初始化入口就列现有必要步骤,不虚构 dx setup。}}
|
|
15
|
+
|
|
16
|
+
## 配置与注入
|
|
17
|
+
|
|
18
|
+
{{记录环境选择参数、配置文件加载顺序、秘密的本地存放位置、必须变量名及校验时机。说明绕过公开入口是否会丢失环境注入;不填写真实秘密。}}
|
|
19
|
+
|
|
20
|
+
## 命令选择
|
|
21
|
+
|
|
22
|
+
下表命令来自项目配置;“已配置”不表示本次已经运行通过。
|
|
23
|
+
|
|
24
|
+
| 任务 | 实际命令 | 前置条件 | 行为与副作用 |
|
|
25
|
+
| --- | --- | --- | --- |
|
|
26
|
+
| {{初始化 / 启动 / 检查 / 测试 / 构建中实际存在的任务}} | {{精确命令}} | {{所需依赖与环境}} | {{执行范围、产物、是否启动服务或修改数据}} |
|
|
27
|
+
|
|
28
|
+
{{DX 已接入时核对 CLI 支持的参数与目标映射;Nx 已接入时说明依赖顺序、缓存和 configuration。只记录存在的目标,明确附加路径或参数是否真的透传。}}
|
|
29
|
+
|
|
30
|
+
## 验证范围与失败处理
|
|
31
|
+
|
|
32
|
+
{{按模块列出行为验收入口,区分单元 / 集成 / E2E、Mock / 真实依赖。说明完整套件是否已包含子套件,避免重复执行。}}
|
|
33
|
+
|
|
34
|
+
环境或依赖缺失单列为未运行或环境失败;测试进程失败不能记为通过。失败证据包括实际命令、退出状态和关键原因。运行结果填写仓库 PR 模板。
|
|
35
|
+
|
|
36
|
+
## 生成产物与服务生命周期
|
|
37
|
+
|
|
38
|
+
{{有生成代码时:真源、生成目标、消费方依赖和是否入库。有服务时:启动/结束责任、端口来源、临时数据隔离与清理,以及是否自动迁移。无相应行为则删除本节。}}
|
|
39
|
+
|
|
40
|
+
## 发布边界
|
|
41
|
+
|
|
42
|
+
{{只列现有发布入口、目标环境和执行权限;没有入口就明确尚未配置。文档审核不执行发布或迁移。}}
|
|
43
|
+
|
|
44
|
+
## 尚未接入或待确认
|
|
45
|
+
|
|
46
|
+
{{只列具体缺项及其对 agent 的影响。未接入 DX / Nx 时给出现有替代入口,明确本次只补文档,未安装或接入工具链;无缺项时删除本节。}}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
# 回访 Issue 规则
|
|
2
|
+
|
|
3
|
+
创建用于后续复查、跟进验证的 Issue,或将既有 Issue 转为该用途时:
|
|
4
|
+
|
|
5
|
+
- 标题使用 `[回访] 原标题`,并添加名称完全一致的 `回访` 标签;前缀与标签只保留一份,保留其他标签和流程状态。
|
|
6
|
+
- GitHub Issue 正文沿用仓库 Issue 模板,在现有章节内写清回访对象、触发条件或时间、可观察的验收标准;模板的正文结构不在此重复定义。
|
|
7
|
+
- 获得创建或更新 GitHub Issue 的授权后,若仓库缺少 `回访` label,随该次操作创建并应用;权限不足时报告标签未完成,不把 Issue 标记为全部处理完成。
|
|
8
|
+
- 项目已有本地 Issue 追踪时,一级标题保留此前缀,在 `Labels:` 行或既有标签字段记录 `回访`,沿用原状态机制。同步到 GitHub 时保留标识;本规则不改变项目的本地 / 远程追踪策略。
|
|
9
|
+
- 验证完成后按项目流程记录证据并关闭或更新状态;“回访”本身不表示验收通过。
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Issue
|
|
3
|
+
about: 提交功能、缺陷、重构或其他可执行事项
|
|
4
|
+
title: ""
|
|
5
|
+
labels: ""
|
|
6
|
+
assignees: ""
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 背景
|
|
10
|
+
|
|
11
|
+
<!-- 说明当前情况、问题或提出该事项的原因。 -->
|
|
12
|
+
|
|
13
|
+
## 目标
|
|
14
|
+
|
|
15
|
+
<!-- 说明完成后可观察的状态;明确不做的事单独列出。 -->
|
|
16
|
+
|
|
17
|
+
## 验收标准
|
|
18
|
+
|
|
19
|
+
<!-- 使用客观、可验证的条目;每条标准应能通过测试、命令或明确观察进行确认。 -->
|
|
20
|
+
|
|
21
|
+
- [ ]
|
|
22
|
+
|
|
23
|
+
## 关联
|
|
24
|
+
|
|
25
|
+
<!-- 可选。相关 Issue/PR 用 Refs: #<id> 列出;没有则删除本段。 -->
|
|
26
|
+
|
|
27
|
+
Refs: #
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
## 变更目的
|
|
2
|
+
|
|
3
|
+
<!-- 用 1-3 句话说明问题、预期结果和必要背景;不要复述 Issue 全文。 -->
|
|
4
|
+
|
|
5
|
+
## 主要改动
|
|
6
|
+
|
|
7
|
+
<!-- 用精简条目说明最终行为、契约或运维变化;不记录探索过程、agent 分工、复杂度门禁或完整日志。 -->
|
|
8
|
+
|
|
9
|
+
-
|
|
10
|
+
|
|
11
|
+
## 验证结果
|
|
12
|
+
|
|
13
|
+
<!-- 只记录当前 HEAD 的最低充分验证。每项写“命令或检查 — 状态 — 关键结果”;状态使用“通过 / 失败 / 未运行”。失败必须说明是否为已登记并在基线复现的既有问题。 -->
|
|
14
|
+
|
|
15
|
+
-
|
|
16
|
+
|
|
17
|
+
## 风险与后续
|
|
18
|
+
|
|
19
|
+
<!-- 统一列出未覆盖范围、已知风险、follow-up 和合并/发布后动作;每项标注“阻塞 / 非阻塞 / 发布后”。存在“阻塞”项时不得合并;没有则填写“无”。 -->
|
|
20
|
+
|
|
21
|
+
无
|
|
22
|
+
|
|
23
|
+
## 关联
|
|
24
|
+
|
|
25
|
+
<!-- 主 Issue 使用 Closes: #<issue-id>;其他关联使用 Refs: #<issue-id>。 -->
|
|
26
|
+
|
|
27
|
+
Closes: #
|
|
@@ -6,94 +6,137 @@ disable-model-invocation: true
|
|
|
6
6
|
|
|
7
7
|
# Ship Issue PR
|
|
8
8
|
|
|
9
|
-
统一 Codex 与 Claude Code
|
|
9
|
+
统一 Codex 与 Claude Code 的 Issue → 实现 → PR → 审查修复 → 验证 → 合并交付流程。
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
本文件包含完整流程与两种宿主的工具说明。依次完成下列步骤;已有成果按验收标准承接,缺失的 Issue、方案审核、审查评论或验证报告必须补齐。
|
|
12
12
|
|
|
13
13
|
## 执行边界与优先级
|
|
14
14
|
|
|
15
15
|
在宿主系统与开发者指令约束内,当前任务的具体要求和已有授权 > 项目适用的 AGENTS.md > 本技能及其他通用技能。项目规定的验证、分支与合并要求继续适用。
|
|
16
16
|
|
|
17
|
-
|
|
17
|
+
用户调用本技能执行交付时,默认流程包括:创建或复用本次 Issue、提交与推送代码、创建或更新 PR、发布审查/修复/验证评论、通过门禁后合并、关闭已完成的 Issue,以及按下文规则创建和派发 follow-up Issue。沿用会话中已有授权,不逐步重复确认;用户明确限定仅本地、仅审查或不合并时遵守该终点。编辑或讨论本技能本身不触发交付操作。
|
|
18
18
|
|
|
19
|
-
|
|
19
|
+
从相关文件和直接依赖开始,按证据扩大范围。交付授权不包含生产部署、破坏性数据操作或与任务无关的对外消息;需要额外授权的动作先准备可审阅结果,说明对象与影响。缺少目标事实时先查上下文与项目配置,能独立进行的工作继续,确实无法确定目标时才询问。
|
|
20
20
|
|
|
21
|
-
##
|
|
21
|
+
## 1. 检查状态并确定交付目标
|
|
22
22
|
|
|
23
|
-
|
|
23
|
+
检查当前分支、工作区状态(已暂存、未暂存及未跟踪文件)、分支相对基线的 diff 和已有提交,同时读取当前对话中的问题、需求、Issue/PR 链接。核对 remote、相关 Issue、已有 PR 和认证;基线、命令、模板和 CI 从项目实际配置确定。
|
|
24
24
|
|
|
25
|
-
|
|
25
|
+
- 已有修改:判断是否就是本次待交付内容,对照上下文识别已实现、待修复和待验证部分;有 diff 不等于已完成需求。
|
|
26
|
+
- 没有修改:根据上下文和关联 Issue 明确要解决的问题,再进入实现;已有提交或 PR 时从剩余步骤继续。
|
|
27
|
+
- 既没有可交付修改,也没有可确定的问题或 Issue:先询问具体目标,获得目标后创建 Issue,避免编造需求。
|
|
28
|
+
|
|
29
|
+
无关改动保持原样;不明归属的文件先避开,必要时在隔离 worktree 继续。只在必须修改且无法安全保留时澄清归属。工具或认证缺失只阻塞依赖它的操作,本地准备继续。
|
|
26
30
|
|
|
27
31
|
按本次需求或 diff 检查直接相关的重复实现;没有证据时不扩大为全仓历史审计。
|
|
28
32
|
|
|
29
|
-
## Issue
|
|
33
|
+
## 2. 补齐 Issue 与工作分支
|
|
34
|
+
|
|
35
|
+
本次交付必须关联 Issue。优先核实并复用上下文、分支或 PR 指向的 Issue,搜索相关 Issue 避免重复;没有匹配项就创建,适用于已有代码修改和只有待解决问题两种入口。
|
|
30
36
|
|
|
31
|
-
|
|
37
|
+
创建前读取项目 Issue 模板、贡献规范及与本次需求相关的规划/路线图,按模板填写背景、目标、范围、验收标准、依赖和规划归属。没有模板时使用这些字段;缺少规划信息时如实注明,不编造里程碑或扩大范围。创建后读回编号、正文与 URL,确认覆盖实际任务。远端创建失败时保留正文草稿并继续独立准备,但 Issue 未补齐不能完成交付。
|
|
32
38
|
|
|
33
39
|
采用项目分支规则和指定基线;无规则时为本次交付创建独立分支,遵守宿主的默认命名前缀。已有合规分支可继续。创建 worktree 时保留任务所需的未提交上下文,按项目实际 setup 准备依赖,不默认执行全量构建或同步私有环境文件。
|
|
34
40
|
|
|
35
|
-
Issue/PR
|
|
41
|
+
Issue/PR 正文及评论优先使用结构化工具参数;使用 CLI 时将多行内容写入本次任务独立的临时文件,用 `--body-file` 传递,提交说明可用 `git commit -F`。每次发布后读回内容与链接;重试前检查是否已成功,避免重复记录。修正影响理解的占位内容,合法代码示例或引用中的 TODO 不当作未完成工作。
|
|
42
|
+
|
|
43
|
+
## 3. 判定复杂度并确定方案
|
|
44
|
+
|
|
45
|
+
满足任一条件即按复杂任务处理:
|
|
46
|
+
|
|
47
|
+
- 本次修改的文件超过 5 个,且新增与删除的总行数超过 100 行;两个数量条件必须同时成立。
|
|
48
|
+
- 涉及并发逻辑、数据库变更或多端协同,例如事务/锁/并行写入、数据模型/迁移、前后端或多个客户端的契约与行为联动。
|
|
49
|
+
|
|
50
|
+
统计范围是本次交付相对目标基线的完整改动,包含已提交、已暂存、未暂存及相关未跟踪文件,同一文件只计一次,排除无关工作。未开始实现时依据预计范围和语义影响判断,实施中范围扩大或最终 diff 达到条件时升级为复杂任务。记录统计、影响点和判定理由到 Issue 或 PR。
|
|
51
|
+
|
|
52
|
+
简单任务由主线程拟定必要步骤并直接实现。复杂任务必须依次完成:
|
|
36
53
|
|
|
37
|
-
|
|
54
|
+
1. 主线程先提出方案,包含现状、目标、拟改文件/模块、接口与数据影响、风险、验收和测试计划。
|
|
55
|
+
2. 调用下文第三方独立通道审核方案,提供需求、规划约束及相关源码;仅咨询,不授予写权限。
|
|
56
|
+
3. 主线程核验返回意见,修订方案,记录采纳项、未采纳理由及最终方案。关键分歧未解决时再次审核,方案确定后才交给第三方实施。
|
|
38
57
|
|
|
39
|
-
|
|
58
|
+
如果接手时复杂改动已存在,先根据现有 diff 整理方案并补做第三方审核,再交由第三方核查实现与完成必要修正,无需删除成果重做。
|
|
40
59
|
|
|
41
|
-
|
|
60
|
+
## 4. 实施与主线程复核
|
|
42
61
|
|
|
43
|
-
|
|
62
|
+
复杂任务由第三方实施,主线程负责方案定稿、协调与验收;简单任务主线程直接实施。交接包含最终方案、Issue、工作目录、责任文件、项目约束、已完成成果、验收标准及实际验证命令。主线程负责本次 Git/GitHub 交付,实施者只修改分配文件。
|
|
44
63
|
|
|
45
|
-
|
|
64
|
+
咨询与审查只读,实施才授予必要写权限。不同执行者避免同时修改同一范围,可在不重叠文件上继续工作;需要隔离时使用独立 worktree。任务书必须带上相关流程和项目规则,不能假定执行通道能加载技能。
|
|
65
|
+
|
|
66
|
+
第三方完成后,主线程核对完整 diff、责任范围和验收标准,检查遗漏、回归、越界改动与测试证据,处理发现的问题。第三方返回成功不等于主线程已验收,也不替代后续 PR Code Review。
|
|
67
|
+
|
|
68
|
+
复杂任务的第三方方案审核、实施与 Code Review 都是必需步骤。通道不可用时记录具体阻塞,继续可独立完成的准备或诊断;只有用户明确调整流程后才能以主线程实现或自审替代。依赖工具降级为当前模型 sub-agent 时如实记录,不能算已满足第三方要求。
|
|
69
|
+
|
|
70
|
+
### 委派活性与接管
|
|
46
71
|
|
|
47
72
|
保存本次任务 ID、工作目录、输出来源和责任文件基线,持续观察同一任务。有效日志、工具进展或责任文件变化可以证明活动;只读任务不要求文件修改。
|
|
48
73
|
|
|
49
74
|
单次等待超时或静默告警只触发诊断,检查原会话、子命令、权限等待与错误;重复空心跳不代表进展。确认失败或无法推进后优先恢复;接管前确认原执行者及其写进程已停止,再核对现有成果,仅完成剩余工作。遵守用户取消要求,不盲目重放任务或绕过权限拒绝。
|
|
50
75
|
|
|
51
|
-
##
|
|
76
|
+
## 5. 提交代码并创建或更新 PR
|
|
52
77
|
|
|
53
|
-
|
|
78
|
+
完成实现与主线程复核后,按项目要求执行提交前检查。按项目提交规范和 PR 模板准备交付;无 PR 模板时写明问题、最终变更、Issue 关联、复杂度判定、方案审核、验证现状与遗留风险。
|
|
54
79
|
|
|
55
|
-
|
|
80
|
+
暂存明确的本次文件,核对暂存 diff,避免带入无关修改或凭据,随后提交并推送;提交钩子改变内容时补验受影响部分。复用已有 PR,确认 base/head 正确。创建或更新后读回标题、正文和 URL;部分失败先核对远端实际状态,只补剩余操作。
|
|
56
81
|
|
|
57
|
-
|
|
58
|
-
- 仅 commit SHA 改变、内容相同:核对后关联新提交,不重跑相同检查。
|
|
59
|
-
- 代码、验收标准、依赖或环境变化:检查增量及受影响调用方,仅补跑受影响项。
|
|
60
|
-
- 来源或覆盖不足:补齐缺失检查;影响无法界定时再扩大到当前交付的完整 diff 和必要测试。
|
|
82
|
+
尚未完成审查或验证时准确标记待完成项,可使用草稿 PR;不能把创建 PR 当作交付结束。
|
|
61
83
|
|
|
62
|
-
|
|
84
|
+
## 6. Code Review、评论与修复循环
|
|
63
85
|
|
|
64
|
-
|
|
86
|
+
按最新复杂度选择审查方式:简单任务由主线程直接 Code Review;复杂任务必须调用第三方独立审查通道。独立审查使用未参与实现或修复的会话,主线程仍须核验关键证据。
|
|
87
|
+
|
|
88
|
+
首次审查覆盖本次完整 PR diff 及必要上下文。每轮完成后都向 PR 发布 Code Review 结果评论,包括审查方式、实际审查者、被审查 head SHA、覆盖范围、发现及结论;无发现也要留下记录。每条发现给出严重程度、文件位置、触发条件、影响与修复建议。
|
|
65
89
|
|
|
66
|
-
|
|
90
|
+
存在有效问题时完成修复并推送,在 PR 发布修复报告评论:逐项关联发现、说明修复内容、提交与验证结果;不采纳的意见写明证据和理由。阻塞验收或影响正确性、安全的未解决问题不能转成 follow-up 后视为通过。
|
|
67
91
|
|
|
68
|
-
|
|
92
|
+
修复后判断是否需要再次 Code Review:修改行为、接口、数据/并发逻辑,修复重大问题,或引入新风险时必须复审;复杂任务仍走第三方独立通道。复审覆盖修复增量与受影响调用方,范围扩大时重新覆盖完整 diff,并发布新一轮审查评论。纯文字或不改变行为的修正可核对后不再调用审查,但在修复报告中写明理由。循环直至阻塞性发现解决,不按固定轮数提前结束。
|
|
69
93
|
|
|
70
|
-
|
|
94
|
+
## 7. 最终运行、编译与测试验证
|
|
71
95
|
|
|
72
|
-
|
|
96
|
+
审查与最后一次修复完成后,对最终待合并代码完成一轮验证:按项目配置运行受影响目标的编译/构建、启动或运行冒烟检查,以及与改动相关的单元测试、集成测试和端到端(E2E)测试。多端改动覆盖受影响各端与关键联动路径,同时完成项目 AGENTS.md 和 CI 要求的检查。
|
|
73
97
|
|
|
74
|
-
|
|
98
|
+
按实际影响选择相关测试,不强制执行与任务无关的全仓或跨端检查。某类检查不适用或项目没有对应命令时,在报告中明确说明理由;关键行为缺少自动化覆盖时补充适当测试或可复现验证。环境、认证或外部资源缺失导致必需检查无法运行时,标记阻塞,不声称验证通过。
|
|
99
|
+
|
|
100
|
+
记录被验证的代码与输入、覆盖范围、命令、实际执行者和可读结果。未提交改动也属于输入;不能只用 HEAD 代表含本地修改的验证现场。证据详细程度以能够判断是否仍适用为准。
|
|
101
|
+
|
|
102
|
+
- 最终修复后已执行且内容、基线与相关输入未变:复用这一轮可核实的验证结果,包括其他执行者结果,无需重复运行同一命令。早于最后修复的结果只作过程证据,不能替代最终一轮。
|
|
103
|
+
- 仅 commit SHA 改变、内容相同:核对后关联新提交,不重跑相同检查。
|
|
104
|
+
- 最终验证后代码再次修复:重新完成最终一轮;仅验收标准、依赖或环境变化时核对覆盖并补齐失效项。
|
|
105
|
+
- 来源或覆盖不足:补齐缺失检查;影响无法界定时再扩大到当前交付的完整 diff 和必要测试。
|
|
75
106
|
|
|
76
|
-
|
|
107
|
+
测试通过不能替代代码审查。失败按复现、日志或基线证据归因;已知失败清单只是线索,未收录不代表本次引入。保留失败事实,修复任务范围内的问题,其他问题写明影响。
|
|
77
108
|
|
|
78
|
-
|
|
109
|
+
将最终验证报告发布为 PR 评论,包含 head SHA、环境、执行者、命令、覆盖范围、通过/失败结果、不适用项及阻塞。检查当前 head 对应的实际必需 CI;CI 未结束则等待,失败或必需验证缺失则继续处理。评论发布后读回确认;报告仍在本地或发布失败时,记录步骤尚未完成。
|
|
79
110
|
|
|
80
|
-
|
|
111
|
+
测试若会清理共享数据库或改动共用资源,使用隔离环境,或沿用项目的互斥机制。不要把生产迁移当常规测试,也不要通过固定全局锁路径假定所有项目共享一套数据库。
|
|
81
112
|
|
|
82
|
-
##
|
|
113
|
+
## 8. 合并与关闭
|
|
83
114
|
|
|
84
|
-
|
|
115
|
+
默认在门禁全部满足后合并;用户限制终点时按其要求停止。合并前确认 Issue 验收完成、复杂任务必需的第三方步骤完成、Code Review 报告及发生修复时的修复报告已评论、适用的最终运行/编译/相关测试及必需 CI 通过、验证报告已评论、阻塞性 findings 已解决。核对最新远端 head、base 与验证对象;变化使证据失效时重新进入相关审查和最终验证步骤。
|
|
85
116
|
|
|
86
117
|
使用项目允许的合并方式,绑定已核验的 head(例如 gh 的 `--match-head-commit`);保留分支保护,不能用管理员开关绕过。自动合并已设置不代表已合并,读回 `mergedAt` 与状态后再报告;异步检查仍在运行时准确说明等待原因。
|
|
87
118
|
|
|
88
119
|
合并后按任务要求回访关联 Issue,确认实际验收与关闭状态。只有本次确实完成整个 Issue 时才使用关闭关联;对误关或剩余工作按已有授权修正并报告。
|
|
89
120
|
|
|
90
|
-
##
|
|
121
|
+
## 9. Follow-up Issue 与派发
|
|
122
|
+
|
|
123
|
+
全过程发现新的范围外问题时,搜索去重后直接创建或补充 follow-up Issue,按项目模板与规划记录复现/证据、影响、目标、验收标准、来源 Issue/PR 和依赖。当前验收必须解决的问题留在本次修复循环,不能通过拆 Issue 绕过合并门禁。
|
|
124
|
+
|
|
125
|
+
回访性质的 follow-up(例如发布后效果检查、观察期结束后的验证或问题修复后的跟踪确认)必须添加回访标签。优先使用项目已有的回访标签;没有对应标签时创建 `回访` 并添加。复用已有 Issue 时也要补齐标签,保留其他标签,并读回确认。正文写明回访时间或触发条件、检查对象和完成标准;尚未到回访时机的任务按等待项处理。
|
|
126
|
+
|
|
127
|
+
| Follow-up 状态 | 处理 |
|
|
128
|
+
| --- | --- |
|
|
129
|
+
| 无阻塞,代码与所需资源均可用 | 直接创建独立 worktree,派发 sub-agent,要求调用 `ship-issue-pr` 完成同一套流程 |
|
|
130
|
+
| 依赖当前 PR、其他任务或尚未满足的条件 | 在 Issue 按项目支持的状态/标签标记等待,写明阻塞对象与解除条件;条件满足后再派发 |
|
|
131
|
+
| 需要额外外部资源、人工决策、账号或权限 | 只创建 Issue 并列出需要谁提供什么,不派发执行者 |
|
|
132
|
+
|
|
133
|
+
主线程维护后续队列,记录 Issue、状态、依赖、worktree、agent ID 与交付进度,避免重复派发。运行中的依赖完成、当前 PR 合并或收到条件变更时重查等待项;如需跨会话等待,使用宿主可用的持久任务/提醒机制,记录唤醒条件与检查方式。宿主不支持持久等待时,将等待项与恢复条件明确交付,不能声称会自动唤醒。
|
|
91
134
|
|
|
92
|
-
|
|
135
|
+
子任务采用各自责任范围与正确基线,交接 Issue、验收、项目规则和完整交付终点。依赖父 PR 时等合并后从最新基线派发。子任务发现新问题仍创建 follow-up Issue,交回主线程统一去重与调度,避免重复或递归派发。外部资源后来齐备时,重新判断阻塞并进入可派发队列。
|
|
93
136
|
|
|
94
|
-
|
|
137
|
+
主线程持续跟踪已派发任务直到完成或明确阻塞;follow-up 的等待不阻止满足门禁的当前 PR 合并。回收 worktree 前确认成果已保留、没有待整合改动且允许删除;squash 合并后不能仅凭分支名称判断可强删。
|
|
95
138
|
|
|
96
|
-
|
|
139
|
+
最终报告实际终点、本次改动、复杂度、第三方执行情况、审查/修复/验证评论链接、Issue/PR 状态,以及 follow-up 的已派发、等待和外部资源清单。已设置自动合并与已合并分别陈述;有阻塞时明确停在哪一步、缺什么以及恢复条件。
|
|
97
140
|
|
|
98
141
|
## 按宿主选择工具
|
|
99
142
|
|
|
@@ -103,9 +146,9 @@ Issue/PR 多行正文写入本次任务独立的临时文件,用 `--body-file`
|
|
|
103
146
|
| --- | --- |
|
|
104
147
|
| Codex | 下文 Codex 运行时:通过 ask_cc / delegate-cc 咨询、审查或执行 |
|
|
105
148
|
| Claude Code | 下文 Claude Code 运行时:通过可用的 Codex 插件协作 |
|
|
106
|
-
| 其他或外部工具不可用 |
|
|
149
|
+
| 其他或外部工具不可用 | 简单任务由当前执行者完成;复杂任务记录第三方通道阻塞,按第 4 步处理 |
|
|
107
150
|
|
|
108
|
-
|
|
151
|
+
简单任务直接推进。复杂任务必须使用当前宿主对应的第三方通道:Codex 调用 Claude Code,Claude Code 调用 Codex。普通同宿主 sub-agent 可承接 follow-up,但不替代复杂任务的第三方步骤。外部执行者接手的是分配范围,完整交付与事实核验仍由主线程负责。
|
|
109
152
|
|
|
110
153
|
## Codex 运行时
|
|
111
154
|
|
|
@@ -128,11 +171,11 @@ Issue/PR 多行正文写入本次任务独立的临时文件,用 `--body-file`
|
|
|
128
171
|
|
|
129
172
|
### 等待、验收与后续任务
|
|
130
173
|
|
|
131
|
-
保存会话 ID
|
|
174
|
+
保存会话 ID,读取同一任务的流式结果;静默或宿主单次等待超时先排查,接管前确保原写进程停止。依赖缺失或确实无法运行时按第 4 步记录阻塞与已完成成果,不能把降级接手计为第三方完成。
|
|
132
175
|
|
|
133
176
|
可核实的验证结果按共享流程复用,不因来自其他执行者而全部重跑。
|
|
134
177
|
|
|
135
|
-
|
|
178
|
+
对第 9 步已满足派发条件的 follow-up,使用 `spawn_agent` 的可用角色,prompt 指定独立 worktree、Issue、目标、交付终点和责任文件,并要求调用 `ship-issue-pr`。子任务发现新问题创建或复用 Issue,交回主线程统一调度。
|
|
136
179
|
|
|
137
180
|
## Claude Code 运行时
|
|
138
181
|
|
|
@@ -146,7 +189,7 @@ Issue/PR 多行正文写入本次任务独立的临时文件,用 `--body-file`
|
|
|
146
189
|
- 普通审查:Codex companion 的 `review`。
|
|
147
190
|
- 需要挑战方案假设时:companion 的 `adversarial-review`。
|
|
148
191
|
|
|
149
|
-
|
|
192
|
+
通道不可用时按第 4 步记录复杂任务的阻塞,并继续可独立完成的准备。
|
|
150
193
|
|
|
151
194
|
### companion 与结果
|
|
152
195
|
|
|
@@ -165,6 +208,6 @@ node "<plugin-root>/scripts/codex-companion.mjs" review --wait --base "<actual-b
|
|
|
165
208
|
|
|
166
209
|
根据实际权限判断补跑项,不预设沙箱不能联网、绑定端口或运行数据库测试。核对版本、命令、环境和可读输出后复用验证,只补缺失或失效项。
|
|
167
210
|
|
|
168
|
-
|
|
211
|
+
等待期间主进程可继续不重叠工作。静默告警触发诊断,接管前确保原写进程停止;无法使用外部通道时记录阻塞,不把自审冒充独立审查。
|
|
169
212
|
|
|
170
|
-
|
|
213
|
+
对第 9 步已满足派发条件的 follow-up,使用 `Agent(subagent_type: "general-purpose", run_in_background: true)`,指定独立 worktree、Issue、责任范围及交付终点,要求调用 `ship-issue-pr`。子任务发现新问题创建或复用 Issue,交回主线程统一调度。
|