dsh-gate-agent 0.0.0-stage → 0.1.0
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/README.md +284 -2
- package/cordis.patch.yml +144 -0
- package/icon.svg +4 -0
- package/launchers/verify-notes.mjs +20 -0
- package/launchers/verify-notes.yml +34 -0
- package/lib/index.js +2199 -0
- package/locale/en.json +6 -0
- package/locale/zh.json +6 -0
- package/package.json +32 -4
- package/skills/gate-code-review/SKILL.md +115 -0
- package/skills/gate-code-review/assets/worker-briefs/gate-implement-review.md +19 -0
- package/skills/gate-diagnosing-bugs/SKILL.md +143 -0
- package/skills/gate-diagnosing-bugs/scripts/hitl-loop.template.sh +44 -0
- package/skills/gate-domain-modeling/CONTEXT-FORMAT.md +64 -0
- package/skills/gate-domain-modeling/GLOSSARY-FORMAT.md +64 -0
- package/skills/gate-domain-modeling/SKILL.md +47 -0
- package/skills/gate-fix-bug/SKILL.md +99 -0
- package/skills/gate-fix-bug/assets/worker-briefs/fix-bug-review.md +23 -0
- package/skills/gate-fix-bug/assets/worker-briefs/gate-fix-bug.md +33 -0
- package/skills/gate-handoff/SKILL.md +20 -0
- package/skills/gate-implement/SKILL.md +82 -0
- package/skills/gate-implement/assets/worker-briefs/gate-enter-implement.md +24 -0
- package/skills/gate-implement/tickets.md +114 -0
- package/skills/gate-plan-review/SKILL.md +87 -0
- package/skills/gate-plan-review/assets/worker-briefs/plan-review.md +19 -0
- package/skills/gate-planning/SKILL.md +96 -0
- package/skills/gate-planning/assets/worker-briefs/gate-enter-plan.md +24 -0
- package/skills/gate-planning/proposal.md +51 -0
- package/skills/gate-planning/rfc.md +73 -0
- package/skills/gate-playwright-e2e/SKILL.md +178 -0
- package/skills/gate-playwright-e2e/reference/config.md +129 -0
- package/skills/gate-playwright-e2e/reference/patterns.md +83 -0
- package/skills/gate-prd/SKILL.md +42 -0
- package/skills/gate-research/SKILL.md +17 -0
- package/skills/gate-tdd/SKILL.md +39 -0
- package/skills/gate-tdd/mocking.md +61 -0
- package/skills/gate-tdd/tests.md +79 -0
- package/skills/gate-user-verify/DIAGNOSE.md +75 -0
- package/skills/gate-user-verify/SKILL.md +185 -0
- package/skills/gate-user-verify/assets/worker-briefs/gate-code-verify.md +32 -0
- package/skills/gate-verify/SKILL.md +73 -0
- package/skills/gate-verify/assets/worker-briefs/gate-verify.md +21 -0
- package/skills/gate-write-agent-notes/SKILL.md +199 -0
- package/skills/gate-write-agent-notes/assets/agent-notes-board.html +1779 -0
- package/skills/gate-write-agent-notes/references/archiving.md +113 -0
- package/skills/gate-write-agent-notes/references/classification.md +34 -0
- package/skills/gate-write-agent-notes/references/note-format.md +72 -0
- package/skills/gate-write-agent-notes/references/prose-checklist.md +52 -0
- package/skills/gate-write-agent-notes/references/quality-gate.md +60 -0
- package/skills/gate-write-agent-notes/references/simplification-checklist.md +27 -0
- package/skills/gate-write-agent-notes/references/verification.md +47 -0
- package/skills/gate-write-agent-notes/references/when-to-write.md +86 -0
- package/skills/gate-write-agent-notes/scripts/agent-note-tree.ts +85 -0
- package/skills/gate-write-agent-notes/scripts/archive-agent-note.ts +218 -0
- package/skills/gate-write-agent-notes/scripts/build-board.ts +240 -0
- package/skills/gate-write-agent-notes/scripts/check-note-anchors.ts +105 -0
- package/skills/gate-write-agent-notes/scripts/verify-agent-note-format.ts +158 -0
- package/skills/gate-write-agent-notes/scripts/verify-agent-note-lifecycle.ts +74 -0
- package/skills/gate-write-agent-notes/scripts/verify-agent-note-tree.ts +56 -0
- package/skills/gate-write-agent-notes/scripts/verify-archived-agent-notes.ts +127 -0
- package/skills/gate-write-agent-notes/templates/implemented.md +35 -0
- package/skills/gate-write-agent-notes/templates/proposed.md +41 -0
- package/skills/gate-write-agent-notes/templates/rejected.md +30 -0
- package/skills/gate-writing-for-agents/SKILL-MECHANICS.md +24 -0
- package/skills/gate-writing-for-agents/SKILL.md +85 -0
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# gate-fix-bug independent review worker
|
|
2
|
+
|
|
3
|
+
```markdown
|
|
4
|
+
你是 Gate 的独立 review worker。只评审 fix worker 的修复 diff,返回 findings,不修复。
|
|
5
|
+
|
|
6
|
+
## 修复基线
|
|
7
|
+
<fix 前 commit / 固定点、当前 diff 范围>
|
|
8
|
+
|
|
9
|
+
## 选定失败与合同
|
|
10
|
+
<原失败项、期望行为、验收/合同引用>
|
|
11
|
+
|
|
12
|
+
## 修复报告
|
|
13
|
+
<fix worker 的根因、改动、回归测试和验证结果>
|
|
14
|
+
|
|
15
|
+
## 评审范围
|
|
16
|
+
Standards / Spec 两轴;重点确认修复没有改变合同、没有扩大范围、没有削弱测试。
|
|
17
|
+
|
|
18
|
+
## 输出
|
|
19
|
+
返回 standards、spec 两组 findings,注明证据与严重度;不修改代码,不提交。
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# /gate-fix-bug — fix worker
|
|
2
|
+
|
|
3
|
+
```markdown
|
|
4
|
+
你是 Gate 的 fix-bug worker。使用 gate-fix-bug 完成这次已授权的实现缺陷修复;执行 Process 1-9,返回修复 receipt。独立 review 由主 agent 另派,不要自行完成 Step 10-12。
|
|
5
|
+
|
|
6
|
+
## 选定失败
|
|
7
|
+
<现象、复现步骤、最新结果>
|
|
8
|
+
|
|
9
|
+
## 期望行为与合同
|
|
10
|
+
<需求/验收/设计决定引用>
|
|
11
|
+
|
|
12
|
+
## 证据/诊断
|
|
13
|
+
<日志、失败测试、已有报告>
|
|
14
|
+
|
|
15
|
+
## 修复范围
|
|
16
|
+
<只修什么;明确不修什么>
|
|
17
|
+
|
|
18
|
+
## 基线
|
|
19
|
+
<commit、diff、相关文件>
|
|
20
|
+
|
|
21
|
+
## 约束
|
|
22
|
+
- 只修选定缺陷;不重构、不改产品行为、不加依赖、不做无关清理。
|
|
23
|
+
- 先复现;回归测试应先失败,修复后通过。
|
|
24
|
+
- 不通过削弱/删除有效测试让套件变绿。
|
|
25
|
+
- 若发现是测试/合同/设计/环境问题,停止并报告属主。
|
|
26
|
+
- 只执行 Process 1-9;不自行 review,不提交。
|
|
27
|
+
|
|
28
|
+
## 验证
|
|
29
|
+
<复现命令、相关测试、类型检查/构建>
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: gate-handoff
|
|
3
|
+
description: Compact the current conversation into a handoff document for another agent to pick up.
|
|
4
|
+
argument-hint: "What will the next session be used for?"
|
|
5
|
+
disable-model-invocation: true
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
Write a handoff document summarising the current conversation so a fresh agent can continue the work. Save to the temporary directory of the user's OS - not the current workspace.
|
|
9
|
+
|
|
10
|
+
Include a "suggested skills" section in the document, which suggests skills that the agent should invoke.
|
|
11
|
+
|
|
12
|
+
Do not duplicate content already captured in other artifacts (specs, plans, ADRs, issues, commits, diffs). Reference them by path or URL instead.
|
|
13
|
+
|
|
14
|
+
Redact any sensitive information, such as API keys, passwords, or personally identifiable information.
|
|
15
|
+
|
|
16
|
+
If the user passed arguments, treat them as a description of what the next session will focus on and tailor the doc accordingly.
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: gate-implement
|
|
3
|
+
description: Gate 实现方法:主 agent 读取后提炼任务并派发;subagent worker 不加载技能。
|
|
4
|
+
user-invocable: false
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Main agent use
|
|
8
|
+
|
|
9
|
+
主 agent 在派发前自行读取本方法,给 subagent worker 一份自包含任务:已接受的范围、约束、验收检查和实现规则。subagent worker 不应加载本技能或其他 gate 方法文件。
|
|
10
|
+
|
|
11
|
+
任务模板:本技能 `assets/worker-briefs/gate-enter-implement.md`。
|
|
12
|
+
|
|
13
|
+
## 实现
|
|
14
|
+
|
|
15
|
+
## 1. 入口条件
|
|
16
|
+
|
|
17
|
+
实现已接受工作项(proposed Agent Note)的选定范围。编码前读取其范围、验收条件与引用的设计章节。
|
|
18
|
+
|
|
19
|
+
实现前检查范围、验收条件、必需决定、批准证据、未解决 blocker,以及该范围的执行授权。复用有效证据,不重复确认。把已确认的范围和决定同步给各自属主;未解决的重要决定按项目的讨论、授权和 gate 规则返回 discuss。仅记录状态或位置不构成就绪或授权。
|
|
20
|
+
|
|
21
|
+
## 2. 按需拆分
|
|
22
|
+
|
|
23
|
+
通过 Implementation Gate 后,只在确实需要拆分时创建 implementation ticket。ticket 的存在不是进入实现的前提。
|
|
24
|
+
|
|
25
|
+
工作适合一个连贯执行单元时直接实现。
|
|
26
|
+
|
|
27
|
+
工作过大、存在有意义的独立切片或依赖时,读取 [tickets.md](./tickets.md) 。
|
|
28
|
+
|
|
29
|
+
不要为了枚举编码步骤而创建 ticket。
|
|
30
|
+
|
|
31
|
+
## 3. 执行
|
|
32
|
+
|
|
33
|
+
按工作项的范围、验收条件、引用要求、已接受设计和架构决定实现。
|
|
34
|
+
|
|
35
|
+
使用既有架构、约定、接口和领域语言,除非权威设计明确改变。
|
|
36
|
+
|
|
37
|
+
如果实现暴露出未解决的产品、领域、架构、接口、兼容性或其他合同决定,停止受影响实现,并向主 agent 返回 receipt 和该决定。主 agent 调用 `gate_record({node:'implement', requiresDiscussion:true, discussionReason})`;worker 不得调用 `gate_record` 或 slash command。决定未解决前先讨论,不做新的 planning/implement 授权,也不继续受影响代码。
|
|
38
|
+
|
|
39
|
+
### 实现期测试
|
|
40
|
+
|
|
41
|
+
按改动需要编写或更新测试。测试优先能改善反馈或明确行为时使用;采用时加载 `gate-tdd` 技能并遵循其流程。
|
|
42
|
+
|
|
43
|
+
工作时运行聚焦测试和相关静态检查。
|
|
44
|
+
|
|
45
|
+
### 实现 findings
|
|
46
|
+
|
|
47
|
+
gate 可能返回实质 findings。按属主处理:
|
|
48
|
+
|
|
49
|
+
| Finding | 路由 |
|
|
50
|
+
| --- | --- |
|
|
51
|
+
| 当前实现缺失或违反已同意合同 | 在当前实现中修复 |
|
|
52
|
+
| 同一已同意工作需要额外执行单元 | 增加或更新 implementation ticket |
|
|
53
|
+
| 产品或技术合同必须改变或从未解决 | 停止受影响工作,把决定 blocker 返回主 agent;主 agent 调 `gate_record` 带 `requiresDiscussion:true`;新 planning 需要授权 |
|
|
54
|
+
| 与已同意工作无关 | 不自动扩大范围 |
|
|
55
|
+
|
|
56
|
+
没有“顺手修一下”的无关工作路径。
|
|
57
|
+
|
|
58
|
+
对属于本实现的 findings,在当前实现中修复,重跑受影响测试和静态检查,并在下一次 receipt 报告每项处置。没有证据不要标记已解决。
|
|
59
|
+
|
|
60
|
+
## 4. Receipt 与交接
|
|
61
|
+
|
|
62
|
+
实现完成的条件:
|
|
63
|
+
|
|
64
|
+
- 授权范围已实现
|
|
65
|
+
- 必需 ticket 已完成
|
|
66
|
+
- 相关实现期检查通过
|
|
67
|
+
- 实质 findings 已解决或明确报告为 blocked
|
|
68
|
+
- 改动已准备好进入 `gate-verify`
|
|
69
|
+
|
|
70
|
+
返回 receipt,包含:
|
|
71
|
+
|
|
72
|
+
- 改动文件与覆盖范围
|
|
73
|
+
- 运行的测试和静态检查及结果
|
|
74
|
+
- 每项 finding 的处置
|
|
75
|
+
- 剩余风险、blocker 或需要决定的点
|
|
76
|
+
|
|
77
|
+
不要执行 `gate-verify`、不要把工作项标完成、不要推进 gate。verify 节点和最终完成由 gate 负责。
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# /gate-enter-implement — implement worker
|
|
2
|
+
|
|
3
|
+
```markdown
|
|
4
|
+
你是 Gate 的 implement worker。按已确认方案实施;不 review,不 verify,不推进 gate。
|
|
5
|
+
|
|
6
|
+
## 工作项
|
|
7
|
+
<task / 用户简述>
|
|
8
|
+
|
|
9
|
+
## 合同与范围
|
|
10
|
+
<验收条件、设计约束、本次要做 / 明确不做>
|
|
11
|
+
|
|
12
|
+
## 基线
|
|
13
|
+
<固定点、相关文件、已有改动>
|
|
14
|
+
|
|
15
|
+
## 实施要求
|
|
16
|
+
- 按现有架构和测试策略做最小完整实现。
|
|
17
|
+
- 不扩大范围,不引入无关依赖,不修改产品合同。
|
|
18
|
+
- 需要时补测试;记录实际运行的命令和结果。
|
|
19
|
+
|
|
20
|
+
## 交付
|
|
21
|
+
返回:改动文件、测试/命令结果、偏差、遗留风险。
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
# Implementation Tickets
|
|
2
|
+
|
|
3
|
+
After entering implementation, decompose authorized work only when it cannot be executed coherently as one unit. Tickets are created by implementation as needed, not prerequisites for its initial gate.
|
|
4
|
+
|
|
5
|
+
Tickets are execution units, not additional design documents.
|
|
6
|
+
|
|
7
|
+
Do not use decomposition to reopen decisions already settled upstream.
|
|
8
|
+
|
|
9
|
+
## Storage
|
|
10
|
+
|
|
11
|
+
Follow the project's documentation hierarchy for work-item ownership and its tracker configuration for operations. Existing work stays with its owner unless explicitly migrated; location-rule changes alone do not create replacement tickets.
|
|
12
|
+
|
|
13
|
+
Use the project's existing work-tracking mechanism.
|
|
14
|
+
|
|
15
|
+
Tickets may be:
|
|
16
|
+
|
|
17
|
+
- issues in an issue tracker
|
|
18
|
+
- local Markdown files
|
|
19
|
+
- another project-defined execution artifact
|
|
20
|
+
|
|
21
|
+
Reference the parent work item (proposed Agent Note) by its path, using the project's native relationship mechanism when available.
|
|
22
|
+
|
|
23
|
+
## Tracer bullets
|
|
24
|
+
|
|
25
|
+
Prefer tracer-bullet vertical slices.
|
|
26
|
+
|
|
27
|
+
Each ticket should:
|
|
28
|
+
|
|
29
|
+
- deliver a narrow but complete behavior or coherent change
|
|
30
|
+
- cut through the layers required for that behavior
|
|
31
|
+
- be independently verifiable where practical
|
|
32
|
+
- fit within one fresh execution context
|
|
33
|
+
- leave the system in a coherent state
|
|
34
|
+
- declare genuine blocking dependencies
|
|
35
|
+
|
|
36
|
+
Prefer one behavior through the necessary layers over one architectural layer across many behaviors.
|
|
37
|
+
|
|
38
|
+
## Blocking edges
|
|
39
|
+
|
|
40
|
+
Declare only dependencies that genuinely prevent a ticket from starting.
|
|
41
|
+
|
|
42
|
+
Tickets with no unresolved blockers form the executable frontier.
|
|
43
|
+
|
|
44
|
+
Do not create artificial sequencing where work can proceed independently.
|
|
45
|
+
|
|
46
|
+
Independent frontier tickets may execute in parallel when safe and supported.
|
|
47
|
+
|
|
48
|
+
Re-evaluate the executable frontier as tickets complete.
|
|
49
|
+
|
|
50
|
+
## Wide refactors
|
|
51
|
+
|
|
52
|
+
Do not force broad mechanical changes into artificial vertical slices.
|
|
53
|
+
|
|
54
|
+
When necessary, prefer:
|
|
55
|
+
|
|
56
|
+
1. **Expand** — introduce the new form alongside the old.
|
|
57
|
+
2. **Migrate** — move consumers in coherent batches.
|
|
58
|
+
3. **Contract** — remove the old form after migration.
|
|
59
|
+
|
|
60
|
+
Represent genuine dependency edges explicitly.
|
|
61
|
+
|
|
62
|
+
## Ticket contents
|
|
63
|
+
|
|
64
|
+
Keep each ticket concise.
|
|
65
|
+
|
|
66
|
+
Include:
|
|
67
|
+
|
|
68
|
+
### Objective
|
|
69
|
+
|
|
70
|
+
The behavior or coherent change the ticket delivers.
|
|
71
|
+
|
|
72
|
+
### Acceptance criteria
|
|
73
|
+
|
|
74
|
+
Observable or verifiable conditions for completion.
|
|
75
|
+
|
|
76
|
+
### Blocked by
|
|
77
|
+
|
|
78
|
+
Only genuine blocking work.
|
|
79
|
+
|
|
80
|
+
Use the project's native dependency mechanism when one exists.
|
|
81
|
+
|
|
82
|
+
## Inheritance
|
|
83
|
+
|
|
84
|
+
Tickets inherit scope, requirements, design and applicable execution authorization from their identified parent work item and referenced artifacts.
|
|
85
|
+
|
|
86
|
+
This may include:
|
|
87
|
+
|
|
88
|
+
- work item
|
|
89
|
+
- PRD
|
|
90
|
+
- work item contract
|
|
91
|
+
- Agent Note
|
|
92
|
+
- RFC
|
|
93
|
+
- ADRs
|
|
94
|
+
- project constraints
|
|
95
|
+
|
|
96
|
+
Reference those sources rather than duplicating them.
|
|
97
|
+
|
|
98
|
+
Avoid detailed implementation recipes or decisions the implementer can safely make itself.
|
|
99
|
+
|
|
100
|
+
## Execution
|
|
101
|
+
|
|
102
|
+
Work the executable frontier.
|
|
103
|
+
|
|
104
|
+
Before starting a ticket, check its inherited scope, acceptance conditions and blocking dependencies. Reuse the parent's valid authorization for that scope without repeating the full planning gate. A new material decision returns affected work to the project's Planning stage; decomposition cannot supply a missing upstream decision.
|
|
105
|
+
|
|
106
|
+
Complete each ticket to a coherent, tested, and verifiable state before advancing dependent work.
|
|
107
|
+
|
|
108
|
+
Update and close completed tickets according to the configured tracker workflow.
|
|
109
|
+
|
|
110
|
+
Commit completed ticket work when the repository workflow expects ticket-level commits.
|
|
111
|
+
|
|
112
|
+
Continue until all tickets required by the authorized scope are complete. Ticket completion does not replace the gate's review and verify nodes; return the completed scope and evidence to the gate.
|
|
113
|
+
|
|
114
|
+
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: gate-plan-review
|
|
3
|
+
description: 由主 agent 读取并提炼后派发的只读 Plan Review 方法;保留 Standards/Spec/Architecture 三轴,只报告发现。
|
|
4
|
+
user-invocable: false
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 主 agent 使用
|
|
8
|
+
|
|
9
|
+
主 agent 在派发前自行读取本方法,把工作项、Note、固定点和评审规则交给一个或多个 review worker;worker 数量由主 agent 按规模决定。worker 不应加载本技能或其他 gate 方法文件。worker prompt 只包含这些计划内容;不要附带项目环境验证(`package.json`、Node 版本、git 状态、文件存在性、初始化 smoke 结果)。
|
|
10
|
+
|
|
11
|
+
任务模板:本技能 `assets/worker-briefs/plan-review.md`;派发前读取并填写。
|
|
12
|
+
|
|
13
|
+
## 计划评审
|
|
14
|
+
|
|
15
|
+
评审被评审的工作项、范围、产品合同与 Agent Note;不修改规划,不替 planning 做决定。只评审计划内容,不评审项目环境、初始化结果、文件存在性或运行版本。
|
|
16
|
+
|
|
17
|
+
确定被评审的 Proposal 或既有工作项、选定范围、产品合同与 Agent Note。工作项拥有本次产品行为和验收;跨工作项合同同样由工作项或 Note 承接。评审整个规划集合,并把结果报告给同一工作项。
|
|
18
|
+
|
|
19
|
+
## 三条评审线
|
|
20
|
+
|
|
21
|
+
- **Standards**:是否符合现有权威决定、领域语言和项目约束;
|
|
22
|
+
- **Spec**:产品范围与验收是否明确,设计是否完整承接且没有遗漏、越界或暗中改写;
|
|
23
|
+
- **Architecture**:职责、依赖、接口、数据流和系统关系是否一致。
|
|
24
|
+
|
|
25
|
+
只报告实质问题和真实取舍。
|
|
26
|
+
|
|
27
|
+
## 产品合同检查
|
|
28
|
+
|
|
29
|
+
- 范围与非目标是否明确;
|
|
30
|
+
- 正常、边界和失败行为是否足够清楚;
|
|
31
|
+
- 标准、协议、安全策略、兼容边界和运维不变量是否写到能直接实现并验收的程度;
|
|
32
|
+
- 验收条件是否可观察、可判定;
|
|
33
|
+
- 产品决定是否仍需要实施者猜测;
|
|
34
|
+
- Proposal 是否重复 Design 的技术细节,或 Design 是否改写、扩大 Proposal 的验收;
|
|
35
|
+
- Proposal 是否用决策史代替可验收的产品行为;
|
|
36
|
+
- 备选与理由是否留在 Design / Alternatives,而不是混入 Proposal;
|
|
37
|
+
- 批准证据是否留在工作项节;
|
|
38
|
+
- 技术探索是否还留有会改变范围的重要未知问题。
|
|
39
|
+
|
|
40
|
+
## 技术设计检查
|
|
41
|
+
|
|
42
|
+
- 是否能从工作项追溯到适用的产品要求;
|
|
43
|
+
- 是否覆盖适用的产品行为和约束;
|
|
44
|
+
- 是否把产品假设当成技术决定;
|
|
45
|
+
- 是否存在尚未解决的重要技术选择;
|
|
46
|
+
- 是否具备足够清楚的验证切入点;
|
|
47
|
+
- 多份设计的边界是否完整且不互相矛盾;
|
|
48
|
+
- Design / Alternatives 是否承载长期设计、真实备选与理由;批准证据是否留在工作项节。
|
|
49
|
+
|
|
50
|
+
## 报告归属
|
|
51
|
+
|
|
52
|
+
评审结果报告为通过、需要修订或拒绝。需要外部批准的决定,在取得批准前不得视为已接受。
|
|
53
|
+
|
|
54
|
+
本 worker 只报告,不修改规划,不决定修正方案。按属主报告:
|
|
55
|
+
|
|
56
|
+
- 产品范围、行为与验收问题报告给工作项;
|
|
57
|
+
- 本次规划的技术设计问题报告给 Agent Note;引用输入的问题按项目配置反馈其属主;
|
|
58
|
+
- 状态、评审与批准证据报告给工作项;
|
|
59
|
+
- 领域术语问题报告给 技能`gate-domain-modeling` 的属主,技术决定报告给相关 Agent Note。
|
|
60
|
+
|
|
61
|
+
由 planning worker 决定并执行修正;本 worker 不更新工作项、Note 或就绪状态。
|
|
62
|
+
|
|
63
|
+
仅当提议为架构决定单独建档时,使用 技能`adr` 的准入条件检查反悔成本与真实权衡。其他 Agent Note 按项目部署后的 README 判断是否有长期设计价值。纯行为规则归产品合同;普通实现细节不因“重要”就自动生成 Note。
|
|
64
|
+
|
|
65
|
+
设计仍依赖临时产品假设时保持非权威。修订产品合同后,检查所有承接同一产品合同的设计,不只修改最先暴露问题的那一份。
|
|
66
|
+
|
|
67
|
+
## 评审标准
|
|
68
|
+
|
|
69
|
+
规划集合满足以下条件时报告通过:
|
|
70
|
+
|
|
71
|
+
- Standards、Spec 与 Architecture 没有未解决的实质问题;
|
|
72
|
+
- 工作项产品合同已经稳定;
|
|
73
|
+
- 每项适用验收条件都有设计承接,或明确说明无需技术设计;
|
|
74
|
+
- 实施所需设计已按项目约定接受或批准;
|
|
75
|
+
- 设计与适用产品合同之间没有遗漏、越界或冲突;
|
|
76
|
+
- 所需决定已解决并写回权威工件;
|
|
77
|
+
- 需要持久保存的决定已按约定记录;
|
|
78
|
+
- 实施不需要发明重要产品行为或架构。
|
|
79
|
+
|
|
80
|
+
评审通过只报告结论,不自动构成批准或执行授权,也不由本 worker 更新工作项或就绪状态。
|
|
81
|
+
|
|
82
|
+
没有通过时,报告未解决问题及其属主;由 planning worker 修正,gate 再安排复审。普通实现细节可以保持开放。
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# Plan / Proposal Review worker
|
|
2
|
+
|
|
3
|
+
```markdown
|
|
4
|
+
你是 Gate 的只读 Plan Review worker。只评审计划、提案或 Note,不修改、不写代码。
|
|
5
|
+
|
|
6
|
+
## 评审对象
|
|
7
|
+
<工作项 / 提案 / Note 路径、固定点>
|
|
8
|
+
|
|
9
|
+
## 合同
|
|
10
|
+
<需求、验收条件、适用设计决定>
|
|
11
|
+
|
|
12
|
+
## 评审三轴
|
|
13
|
+
Standards / Spec / Architecture。每轴只报 findings,注明证据与严重度。
|
|
14
|
+
|
|
15
|
+
## 输出
|
|
16
|
+
返回 standards、spec、architecture 三组 findings;不要合并三轴,不要修复。
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: gate-planning
|
|
3
|
+
description: Gate 规划方法:主 agent 读取后提炼任务并派发;worker 不加载技能。
|
|
4
|
+
user-invocable: false
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 必读资源
|
|
8
|
+
|
|
9
|
+
写设计节(`## Design`、`### 设计` 或自由设计节)前必须读取 `proposal.md` 和 `rfc.md`;rfc 的检查项必须进入 worker prompt,不能以“as needed”跳过。mechanical 或不写设计节的工作项不强制读 rfc。
|
|
10
|
+
|
|
11
|
+
## 主 agent 使用
|
|
12
|
+
|
|
13
|
+
主 agent 在派发前自行读取本方法,给 worker 一份自包含任务:具体工作项、约束和规划规则。worker 不应加载本技能或其他 gate 方法文件。worker prompt 只给计划内容;不要附带项目环境验证(`package.json`、Node 版本、git 状态、文件存在性、初始化 smoke 结果)。
|
|
14
|
+
|
|
15
|
+
任务模板:本技能 `assets/worker-briefs/gate-enter-plan.md`;派发前读取并填写。
|
|
16
|
+
|
|
17
|
+
# 规划
|
|
18
|
+
|
|
19
|
+
## 项目绑定
|
|
20
|
+
|
|
21
|
+
- 本次工作项就是 proposed Agent Note;
|
|
22
|
+
- 产品行为、范围、验收由工作项拥有;
|
|
23
|
+
- 工作项内容按 [proposal.md](./proposal.md) ;技术设计按 [rfc.md](./rfc.md)(写设计节前必读);
|
|
24
|
+
- 技术设计与长期决定写入 Agent Note;
|
|
25
|
+
- 模板使用内置 `gate-write-agent-notes` 的 `templates/proposed.md`;不新增或复制模板;
|
|
26
|
+
- Note 的位置、格式、生命周期遵循内置 `gate-write-agent-notes`;不得在 planning 内另建生命周期或状态;
|
|
27
|
+
- Plan Review 由 gate 的 `gate-plan-review` worker 执行;planning 接收主代理转交的 findings,负责决定与修正。
|
|
28
|
+
|
|
29
|
+
## 0. 先检索与判定归属
|
|
30
|
+
|
|
31
|
+
- 加载内置 `gate-write-agent-notes`,按 §3 用 `grep`/`glob`/`read` 检索入口注释、分类树、关键词和模块 README,不依赖 shell。
|
|
32
|
+
- 按 §4 判定:既有决定未变时就地同步 `implemented/` Note;新想法写 `proposed/`;class 只能是六类封闭集。
|
|
33
|
+
- 把检索证据写入 `noteSearch`,把归属与 class 写入 `notePaths` / `noteDecision`,随 `gate_record({node:'plan'})` 提交。
|
|
34
|
+
|
|
35
|
+
把当前对话与项目上下文整理成最少但足够的规划工件,使工作具备实施条件。先确定各项事实的项目属主,再按需让产品合同与技术探索往返收敛;不为填满文档类型而创建工件。
|
|
36
|
+
|
|
37
|
+
## 1. 确定工作项
|
|
38
|
+
|
|
39
|
+
本次工作项由 proposed Agent Note 承接。按 [proposal.md](./proposal.md) 写清 why、范围与非目标、产品行为与验收、决定与未决问题、评审与批准证据。
|
|
40
|
+
|
|
41
|
+
复用合适的既有 Note;需要新 Note 时加载内置技能 `gate-write-agent-notes` 创建 proposed Note,不另建独立 Proposal 文件,也不要求 Issue tracker。
|
|
42
|
+
|
|
43
|
+
在 gate 环境中,Note 的落盘使用 `gate_note_write`:新建写 `proposed/<class>/...`,原地同步既有 implemented Note 写 `implemented/<class>/...`;通用 `write`/`edit`/shell 在 planning 被限制。
|
|
44
|
+
|
|
45
|
+
工作项与设计在同一份 Note 分节;工作项不复制 Design 正文,Design 不改写工作项验收。
|
|
46
|
+
|
|
47
|
+
## 2. 收敛产品合同与技术设计
|
|
48
|
+
|
|
49
|
+
### 产品合同
|
|
50
|
+
|
|
51
|
+
产品行为、范围与验收由本次工作项写全;跨工作项持续生效的合同由工作项拥有,并在同一 Note 中分节,不复制成第二套合同。
|
|
52
|
+
|
|
53
|
+
### 探索性设计
|
|
54
|
+
|
|
55
|
+
当技术可行性会实质影响产品范围时,读取技术设计检查项[rfc.md](./rfc.md) ,在 proposed Note 中形成探索草案。只要写设计节,就必须先读 rfc.md;规模小不构成跳过理由。
|
|
56
|
+
|
|
57
|
+
探索草案必须区分产品事实与临时假设,把影响产品范围的结论反馈给工作项,不得作为实施依据。
|
|
58
|
+
|
|
59
|
+
产品合同与探索草案可以往返修改,直到范围与验收不再依赖未解决的技术可行性问题。
|
|
60
|
+
|
|
61
|
+
### 技术设计定稿
|
|
62
|
+
|
|
63
|
+
需要解决重要技术决定时,使用 技术设计检查项([rfc.md](./rfc.md) ),把已确定的产品合同转成 Agent Note 中的技术设计;一份产品合同可以由多个边界明确的 Note 分别承接。只要写设计节,就必须先读 rfc.md。
|
|
64
|
+
|
|
65
|
+
设计定稿遵循 技术设计规则([rfc.md](./rfc.md) ) 的合同稳定性与评审条件。Note 的 proposed/implemented 表示交付生命周期,不代替评审和批准证据。
|
|
66
|
+
|
|
67
|
+
使用项目既有领域语言和适用架构约束。领域术语与模型变化使用 `gate-domain-modeling`;需要为架构决定单独建档时,使用 `adr` 的准入条件判断,在相关 Agent Note 中记录决定。
|
|
68
|
+
|
|
69
|
+
### 决定权限
|
|
70
|
+
|
|
71
|
+
在已同意的产品合同、既有架构和项目约束内,自主解决普通技术选择。
|
|
72
|
+
|
|
73
|
+
涉及未解决的产品、业务、兼容性、成本、风险、架构方向或其他价值判断时,交由用户决定,除非用户已经明确委托决定权。
|
|
74
|
+
|
|
75
|
+
## 3. Review findings
|
|
76
|
+
|
|
77
|
+
Plan Review is owned by the gate's `gate-plan-review` worker; do not run it here.
|
|
78
|
+
|
|
79
|
+
主代理转交 findings 后,逐条决定其属主并在对应工件修正:产品范围与验收回到工作项,本次规划的技术设计回到 Agent Note,工作状态与批准证据回到工作项。引用输入的问题按项目配置反馈其属主,并报告受影响范围。不得自行宣称整体通过。
|
|
80
|
+
|
|
81
|
+
## 4. 完成与交接
|
|
82
|
+
|
|
83
|
+
Planning 完成需要同时满足:
|
|
84
|
+
|
|
85
|
+
- 产品范围和验收条件已经稳定;
|
|
86
|
+
- 实施所需设计已按项目约定接受或批准;
|
|
87
|
+
- 设计完整承接工作项产品合同;
|
|
88
|
+
- 所需决定已解决;
|
|
89
|
+
- 主代理报告 Plan Review 无未解决发现(不由本 worker 自行宣称)。
|
|
90
|
+
|
|
91
|
+
若用户只要求规划,交付规划结果与评审证据后结束。端到端任务把 receipt 交回 gate;执行授权由 gate 单独核对,不在本 worker 内推进。
|
|
92
|
+
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# /gate-enter-plan — planning worker
|
|
2
|
+
|
|
3
|
+
```markdown
|
|
4
|
+
你是 Gate 的 planning worker。完成规划并写 Note;不写代码,不实现。
|
|
5
|
+
|
|
6
|
+
## 需求/约束
|
|
7
|
+
<用户简述、已确认约束、范围>
|
|
8
|
+
|
|
9
|
+
## 项目上下文
|
|
10
|
+
<相关代码、文档、历史 Note 的关键事实;不要附环境 smoke>
|
|
11
|
+
|
|
12
|
+
## Design 检查项
|
|
13
|
+
<按 gate-planning/rfc.md 的适用检查点填写;worker 不加载技能,root 必须转交>
|
|
14
|
+
|
|
15
|
+
## Note 要求
|
|
16
|
+
- 先按 §3 检索历史,再按 §4 判定归属与 class。
|
|
17
|
+
- 新建时用 gate_note_write 写 proposed Note;原地同步 implemented Note 时写 implemented/<class>/...。
|
|
18
|
+
- 内容包含 problem / proposal / design / alternatives / acceptance / risks。
|
|
19
|
+
|
|
20
|
+
## 交付
|
|
21
|
+
返回:Note 路径、class、lifecycle、noteDecision、检索结论、主要设计取舍、未决问题。
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# Proposal
|
|
2
|
+
|
|
3
|
+
工作项与技术设计由同一份 proposed Agent Note 承接;工作项负责为什么要改、本次范围、产品行为与验收、评审与批准证据及就绪状态;技术设计写在同一 Note 的 Design 节,不另设设计属主。
|
|
4
|
+
|
|
5
|
+
## 配置与存放
|
|
6
|
+
|
|
7
|
+
- 唯一载体:`proposed/<class>/YYYY-MM-DD-topic.md`;
|
|
8
|
+
- 不创建独立 Proposal 文件;
|
|
9
|
+
- 模板使用 `<skills-root>/write-agent-notes/templates/proposed.md`;
|
|
10
|
+
- 路径、分类、格式与生命周期由 `write-agent-notes` Skill 管。
|
|
11
|
+
|
|
12
|
+
## 内容
|
|
13
|
+
|
|
14
|
+
同一份 Note 中,工作项部分必须包含:
|
|
15
|
+
|
|
16
|
+
```text
|
|
17
|
+
## Problem
|
|
18
|
+
why、背景、约束
|
|
19
|
+
|
|
20
|
+
## Proposal
|
|
21
|
+
### 范围与非目标
|
|
22
|
+
### 产品行为与验收
|
|
23
|
+
### 决定与未决问题
|
|
24
|
+
### 评审与批准证据
|
|
25
|
+
|
|
26
|
+
## Design
|
|
27
|
+
技术设计、边界、关键决定
|
|
28
|
+
|
|
29
|
+
## Alternatives considered
|
|
30
|
+
真实备选、最强理由、为什么不选
|
|
31
|
+
|
|
32
|
+
## Acceptance criteria
|
|
33
|
+
可观察、可判定的验收
|
|
34
|
+
|
|
35
|
+
## Risks
|
|
36
|
+
风险与未决问题
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
- `## Proposal` 的子项是内容要求,不是新增模板;
|
|
40
|
+
- `## Design` 是自由节,由 `rfc.md` 检查;
|
|
41
|
+
- `## Alternatives considered`、`## Acceptance criteria`、`## Risks` 保持 Agent Note 模板结构;
|
|
42
|
+
- 工作项内容与设计写在同一份 Note,不复制到第二份文件。
|
|
43
|
+
|
|
44
|
+
## 状态更新
|
|
45
|
+
|
|
46
|
+
- Plan Review 结果、批准与就绪状态记录在 Note 的工作项部分;
|
|
47
|
+
- 评审通过、批准、执行授权是三件事;
|
|
48
|
+
- 只有规划内容通过、所需批准齐备且没有阻塞时,才标记为就绪;
|
|
49
|
+
- proposed → implemented 由 `write-agent-notes` 在实现与验证完成后处理,planning 不提前转换。
|
|
50
|
+
|
|
51
|
+
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
# 技术设计
|
|
2
|
+
|
|
3
|
+
本文件提供技术设计的检查项,供 Planning 在 proposed Agent Note 中探索和定稿设计。Note 的位置与格式遵循项目配置。
|
|
4
|
+
|
|
5
|
+
设计可以早于产品合同定稿开始,但只有适用的工作项合同或工作项合同 稳定后,才能被接受并成为实施依据。
|
|
6
|
+
|
|
7
|
+
## 位置与生命周期
|
|
8
|
+
|
|
9
|
+
遵循项目 Agent Notes README 的生命周期。proposed/implemented/rejected 反映交付结果,不代表批准。
|
|
10
|
+
|
|
11
|
+
设计在获得项目要求的评审与批准前保持非权威;被替代时保留与替代设计的关系。已交付 Note 的决定被推翻时,由新 Note 记录新决定,旧 Note 不改写成相反结论。
|
|
12
|
+
|
|
13
|
+
## 输入与承接关系
|
|
14
|
+
|
|
15
|
+
评审时应能从工作项确认:
|
|
16
|
+
|
|
17
|
+
- 承接的工作项产品要求,或工作项合同 的修订及适用章节;
|
|
18
|
+
- 本设计负责的技术范围以及与同一产品合同下其他设计的边界。
|
|
19
|
+
|
|
20
|
+
一份产品合同可以拆给多份设计承接。设计不复制产品范围与验收正文;工作项建立要求与设计之间的链接。
|
|
21
|
+
|
|
22
|
+
## 探索草案
|
|
23
|
+
|
|
24
|
+
以下技术事实会影响产品范围时,可以先写探索草案:
|
|
25
|
+
|
|
26
|
+
- 上游能力和可用性;
|
|
27
|
+
- 成本、性能或资源上限;
|
|
28
|
+
- 兼容性与迁移可行性;
|
|
29
|
+
- 安全、可靠性或运维硬约束;
|
|
30
|
+
- 不同技术路线导致的产品体验差异。
|
|
31
|
+
|
|
32
|
+
探索草案必须区分已经确定的产品事实、临时假设和待决定问题。它输出可行性结论及其对产品范围的影响,把产品选择交回产品合同属主,不得自行定下产品行为。
|
|
33
|
+
|
|
34
|
+
探索草案不能作为实施依据。
|
|
35
|
+
|
|
36
|
+
## 技术设计
|
|
37
|
+
|
|
38
|
+
按需要解决会实质约束实现的内容:
|
|
39
|
+
|
|
40
|
+
- 系统边界与职责;
|
|
41
|
+
- 接口、协议、Schema 与持久化;
|
|
42
|
+
- 生命周期和失败行为;
|
|
43
|
+
- 兼容与迁移;
|
|
44
|
+
- 重要的安全、可靠性、性能或资源约束;
|
|
45
|
+
- 有意义的验证切入点。
|
|
46
|
+
|
|
47
|
+
普通实现细节留给实现阶段,不为完整感规定目录、类型或步骤。
|
|
48
|
+
|
|
49
|
+
设计不得扩大、缩小或改写适用产品合同。设计中发现产品缺口时,暂停相关部分的接受,先修订工作项或工作项合同,再检查同一合同下其他设计是否受影响。
|
|
50
|
+
|
|
51
|
+
## 技术决定
|
|
52
|
+
|
|
53
|
+
在已同意的产品合同、既有架构和项目约束内,自主解决普通技术选择。重要备选存在真实取舍时,给出推荐与足够的评审理由。
|
|
54
|
+
|
|
55
|
+
需要产品、业务、兼容性、成本、风险、持久架构方向或其他价值判断时,交给相应决定权限,不把问题伪装成纯技术选择。
|
|
56
|
+
|
|
57
|
+
接受的决定形成或改变领域语言时,使用 `gate-domain-modeling` SKILL 维护领域资料。需要为架构决定单独建档时,使用 `adr` SKILL 的准入条件判断;决定属于本设计时在同一 Note 中维护,可独立判断的新决定按项目 Note 规则记录。
|
|
58
|
+
|
|
59
|
+
## 定稿与评审条件
|
|
60
|
+
|
|
61
|
+
技术设计可以进入 Plan Review,需要满足:
|
|
62
|
+
|
|
63
|
+
- 适用的工作项产品合同或工作项合同 已经稳定;
|
|
64
|
+
- 承接的工作项要求,或工作项合同 的修订与章节明确;
|
|
65
|
+
- 方案足够解决重要技术决定;
|
|
66
|
+
- 重要备选有推荐;
|
|
67
|
+
- 需要外部权限的决定已明确;
|
|
68
|
+
- 验证切入点足够清楚;
|
|
69
|
+
- 实施不需要重新发现重要产品或技术决定。
|
|
70
|
+
|
|
71
|
+
准备好评审不等于已经接受或批准。
|
|
72
|
+
|
|
73
|
+
|