dsh-gate-agent 0.1.1 → 0.1.2

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/cordis.patch.yml CHANGED
@@ -1,144 +1,144 @@
1
- # Agent preset cordis: one `@deepseek-ai/dsh-agent-preset` declaration inserted
2
- # after the web patch. Edits saved from the Web editor override this row's
3
- # `config.plugins` by id from the profile patch.
4
- - insert:
5
- - id: preset-developer
6
- name: '@deepseek-ai/dsh-agent-preset'
7
- config:
8
- id: developer
9
- name: 开发者模式
10
- description: 基于创造模式的开发者模式,含 gate 阶段门禁。
11
- order: 5
12
- plugins:
13
- # Same persona as `standard`: tool descriptions and the skill catalog carry
14
- # the operating detail, and the skills own the preset-authoring rules.
15
- - id: persona
16
- name: '@deepseek-ai/dsh-persona'
17
- config:
18
- prefix: >-
19
- You are a coding agent powered by the {{model}} model.
20
- - id: agent-instructions
21
- name: '@deepseek-ai/dsh-agent-instructions'
22
- config:
23
- maxBytes: 65536
24
- - id: time-context
25
- name: '@deepseek-ai/dsh-time-context'
26
- - id: tool-bash
27
- name: '@deepseek-ai/dsh-tool-bash'
28
- disabled: !!js process.platform === 'win32'
29
- - id: tool-pwsh
30
- name: '@deepseek-ai/dsh-tool-pwsh'
31
- disabled: !!js process.platform !== 'win32'
32
- - id: tool-fs
33
- name: '@deepseek-ai/dsh-tool-fs'
34
- config:
35
- # Set true to add the apply_patch tool beside edit.
36
- applyPatch: false
37
- - id: tool-fs-search
38
- name: '@deepseek-ai/dsh-tool-fs-search'
39
- config:
40
- sampleOverCapGlobResults: false
41
- - id: tool-jobs
42
- name: '@deepseek-ai/dsh-tool-jobs'
43
- - id: tool-schedule
44
- name: '@deepseek-ai/dsh-tool-schedule'
45
- - id: command-goal
46
- name: '@deepseek-ai/dsh-command-goal'
47
- - id: tool-goal
48
- name: '@deepseek-ai/dsh-tool-goal'
49
- - id: planning
50
- name: cordis:group
51
- group: true
52
- isolate:
53
- planMode: true
54
- config:
55
- - id: plan-mode
56
- name: '@deepseek-ai/dsh-plan-mode'
57
- config:
58
- section: |
59
- You are in plan mode. Stay in plan mode until the user approves your plan through exit_plan_mode or switches the session mode. Imperative language to implement changes means plan the implementation, not execute it. A user's conversational agreement — including an answer confirming something you asked — approves nothing and does not end plan mode; fold the confirmed decision into the plan and submit it through exit_plan_mode.
60
-
61
- Explore first. Use non-mutating reads, searches, static analysis, and checks to ground the plan in the actual repository. Do not edit or write files, change configuration, run formatters or code generation that rewrites tracked files, commit, or otherwise carry out the plan. Prefer existing functions and patterns over new machinery.
62
-
63
- The tool catalog stays the same across modes for request-cache stability. These plan-mode rules override any later tool description or guidance that suggests using mutation tools; those tools remain listed to keep the tool catalog unchanged. Do not use todo_write to track this planning phase: it tracks implementation after an approved plan, while the plan itself belongs in exit_plan_mode.
64
-
65
- Resolve discoverable facts by inspection. Use ask_user_question only for user-owned choices or material ambiguity that inspection cannot answer. Do not ask the user where code lives or how current behavior works when you can find out.
66
-
67
- Make the plan decision-complete: state the goal and success criteria; group implementation changes by subsystem; identify public API, schema, and data-flow changes; cover edge cases, failure modes, tests, acceptance criteria, and explicit assumptions. Keep it concise enough to review but detailed enough that another engineer can implement it without making design decisions.
68
-
69
- When ready, call exit_plan_mode with the complete plan markdown, starting with a # title. Make exit_plan_mode the only and final tool call in that assistant response: it presents the plan for approval, and implementation begins only in a later step after approval. Do not paste the final plan as a plain reply or ask "should I proceed?" through prose or ask_user_question. If review rejects it, incorporate the feedback and present again. If the review channel is unavailable or aborted, stay in plan mode and ask the user to switch modes manually; do not proceed with implementation.
70
- - id: compaction
71
- name: cordis:group
72
- group: true
73
- isolate:
74
- compaction: true
75
- toolResultPruner: true
76
- config:
77
- - id: compaction-basic
78
- name: '@deepseek-ai/dsh-compaction-basic'
79
- - id: command-compact
80
- name: '@deepseek-ai/dsh-command-compact'
81
- - id: tool-result-pruner
82
- name: '@deepseek-ai/dsh-compaction-tool-result-pruner'
83
- config:
84
- thresholdChars: 8192
85
- headChars: 4096
86
- tailChars: 1024
87
- - id: delegation
88
- name: cordis:group
89
- group: true
90
- isolate:
91
- workflowEngine: true
92
- config:
93
- - id: tool-subagent-control
94
- name: '@deepseek-ai/dsh-tool-subagent-control'
95
- - id: tool-subagent
96
- name: '@deepseek-ai/dsh-tool-subagent'
97
- config:
98
- provider: spawn
99
- toolName: subagent
100
- modelSelection: true
101
- modelDiscovery: true
102
- - id: tool-subagent-fork
103
- name: '@deepseek-ai/dsh-tool-subagent'
104
- config:
105
- provider: fork
106
- toolName: subagent_fork
107
- - id: workflow-ptc
108
- name: '@deepseek-ai/dsh-workflow-ptc'
109
- config:
110
- provider: spawn
111
- - id: tool-workflow
112
- name: '@deepseek-ai/dsh-tool-workflow'
113
- - id: tool-ask-user
114
- name: '@deepseek-ai/dsh-tool-ask-user'
115
- - id: tool-todo
116
- name: '@deepseek-ai/dsh-tool-todo'
117
- config:
118
- allowParallelInProgress: true
119
- - id: tool-web
120
- name: '@deepseek-ai/dsh-tool-web'
121
- config:
122
- fetch: true
123
- searchTimeoutMs: 60000
124
- - id: tool-cordis
125
- name: '@deepseek-ai/dsh-tool-cordis'
126
- - id: skill-filesystem
127
- name: '@deepseek-ai/dsh-skill-filesystem'
128
- config:
129
- customSkillDirs:
130
- - !!js process.getBuiltinModule('node:path').join(process.getBuiltinModule('node:path').dirname(process.getBuiltinModule('node:module').createRequire(baseUrl).resolve('@deepseek-ai/dsh-agent-preset/package.json')), 'skills')
131
- bundledSkillDir: !!js process.getBuiltinModule('node:path').join(process.getBuiltinModule('node:path').dirname(process.getBuiltinModule('node:module').createRequire(baseUrl).resolve('dsh-gate-agent/package.json')), 'skills')
132
- - id: tool-skill
133
- name: '@deepseek-ai/dsh-tool-skill'
134
- - id: present
135
- name: '@deepseek-ai/dsh-tool-present'
136
- - id: tool-plugin-manager
137
- name: '@deepseek-ai/dsh-plugin-manager/tools'
138
- disabled: !!js "!ctx.get('profileContext')"
139
- - id: tool-plugin-market
140
- name: '@deepseek-ai/dsh-plugin-market/tools'
141
- disabled: !!js "!ctx.get('profileContext')"
142
- - id: gate
143
- name: 'dsh-gate-agent'
144
-
1
+ # Agent preset cordis: one `@deepseek-ai/dsh-agent-preset` declaration inserted
2
+ # after the web patch. Edits saved from the Web editor override this row's
3
+ # `config.plugins` by id from the profile patch.
4
+ - insert:
5
+ - id: preset-developer
6
+ name: '@deepseek-ai/dsh-agent-preset'
7
+ config:
8
+ id: developer
9
+ name: 开发者模式
10
+ description: 基于创造模式的开发者模式,含 gate 阶段门禁。
11
+ order: 5
12
+ plugins:
13
+ # Same persona as `standard`: tool descriptions and the skill catalog carry
14
+ # the operating detail, and the skills own the preset-authoring rules.
15
+ - id: persona
16
+ name: '@deepseek-ai/dsh-persona'
17
+ config:
18
+ prefix: >-
19
+ You are a coding agent powered by the {{model}} model.
20
+ - id: agent-instructions
21
+ name: '@deepseek-ai/dsh-agent-instructions'
22
+ config:
23
+ maxBytes: 65536
24
+ - id: time-context
25
+ name: '@deepseek-ai/dsh-time-context'
26
+ - id: tool-bash
27
+ name: '@deepseek-ai/dsh-tool-bash'
28
+ disabled: !!js process.platform === 'win32'
29
+ - id: tool-pwsh
30
+ name: '@deepseek-ai/dsh-tool-pwsh'
31
+ disabled: !!js process.platform !== 'win32'
32
+ - id: tool-fs
33
+ name: '@deepseek-ai/dsh-tool-fs'
34
+ config:
35
+ # Set true to add the apply_patch tool beside edit.
36
+ applyPatch: false
37
+ - id: tool-fs-search
38
+ name: '@deepseek-ai/dsh-tool-fs-search'
39
+ config:
40
+ sampleOverCapGlobResults: false
41
+ - id: tool-jobs
42
+ name: '@deepseek-ai/dsh-tool-jobs'
43
+ - id: tool-schedule
44
+ name: '@deepseek-ai/dsh-tool-schedule'
45
+ - id: command-goal
46
+ name: '@deepseek-ai/dsh-command-goal'
47
+ - id: tool-goal
48
+ name: '@deepseek-ai/dsh-tool-goal'
49
+ - id: planning
50
+ name: cordis:group
51
+ group: true
52
+ isolate:
53
+ planMode: true
54
+ config:
55
+ - id: plan-mode
56
+ name: '@deepseek-ai/dsh-plan-mode'
57
+ config:
58
+ section: |
59
+ You are in plan mode. Stay in plan mode until the user approves your plan through exit_plan_mode or switches the session mode. Imperative language to implement changes means plan the implementation, not execute it. A user's conversational agreement — including an answer confirming something you asked — approves nothing and does not end plan mode; fold the confirmed decision into the plan and submit it through exit_plan_mode.
60
+
61
+ Explore first. Use non-mutating reads, searches, static analysis, and checks to ground the plan in the actual repository. Do not edit or write files, change configuration, run formatters or code generation that rewrites tracked files, commit, or otherwise carry out the plan. Prefer existing functions and patterns over new machinery.
62
+
63
+ The tool catalog stays the same across modes for request-cache stability. These plan-mode rules override any later tool description or guidance that suggests using mutation tools; those tools remain listed to keep the tool catalog unchanged. Do not use todo_write to track this planning phase: it tracks implementation after an approved plan, while the plan itself belongs in exit_plan_mode.
64
+
65
+ Resolve discoverable facts by inspection. Use ask_user_question only for user-owned choices or material ambiguity that inspection cannot answer. Do not ask the user where code lives or how current behavior works when you can find out.
66
+
67
+ Make the plan decision-complete: state the goal and success criteria; group implementation changes by subsystem; identify public API, schema, and data-flow changes; cover edge cases, failure modes, tests, acceptance criteria, and explicit assumptions. Keep it concise enough to review but detailed enough that another engineer can implement it without making design decisions.
68
+
69
+ When ready, call exit_plan_mode with the complete plan markdown, starting with a # title. Make exit_plan_mode the only and final tool call in that assistant response: it presents the plan for approval, and implementation begins only in a later step after approval. Do not paste the final plan as a plain reply or ask "should I proceed?" through prose or ask_user_question. If review rejects it, incorporate the feedback and present again. If the review channel is unavailable or aborted, stay in plan mode and ask the user to switch modes manually; do not proceed with implementation.
70
+ - id: compaction
71
+ name: cordis:group
72
+ group: true
73
+ isolate:
74
+ compaction: true
75
+ toolResultPruner: true
76
+ config:
77
+ - id: compaction-basic
78
+ name: '@deepseek-ai/dsh-compaction-basic'
79
+ - id: command-compact
80
+ name: '@deepseek-ai/dsh-command-compact'
81
+ - id: tool-result-pruner
82
+ name: '@deepseek-ai/dsh-compaction-tool-result-pruner'
83
+ config:
84
+ thresholdChars: 8192
85
+ headChars: 4096
86
+ tailChars: 1024
87
+ - id: delegation
88
+ name: cordis:group
89
+ group: true
90
+ isolate:
91
+ workflowEngine: true
92
+ config:
93
+ - id: tool-subagent-control
94
+ name: '@deepseek-ai/dsh-tool-subagent-control'
95
+ - id: tool-subagent
96
+ name: '@deepseek-ai/dsh-tool-subagent'
97
+ config:
98
+ provider: spawn
99
+ toolName: subagent
100
+ modelSelection: true
101
+ modelDiscovery: true
102
+ - id: tool-subagent-fork
103
+ name: '@deepseek-ai/dsh-tool-subagent'
104
+ config:
105
+ provider: fork
106
+ toolName: subagent_fork
107
+ - id: workflow-ptc
108
+ name: '@deepseek-ai/dsh-workflow-ptc'
109
+ config:
110
+ provider: spawn
111
+ - id: tool-workflow
112
+ name: '@deepseek-ai/dsh-tool-workflow'
113
+ - id: tool-ask-user
114
+ name: '@deepseek-ai/dsh-tool-ask-user'
115
+ - id: tool-todo
116
+ name: '@deepseek-ai/dsh-tool-todo'
117
+ config:
118
+ allowParallelInProgress: true
119
+ - id: tool-web
120
+ name: '@deepseek-ai/dsh-tool-web'
121
+ config:
122
+ fetch: true
123
+ searchTimeoutMs: 60000
124
+ - id: tool-cordis
125
+ name: '@deepseek-ai/dsh-tool-cordis'
126
+ - id: skill-filesystem
127
+ name: '@deepseek-ai/dsh-skill-filesystem'
128
+ config:
129
+ customSkillDirs:
130
+ - !!js process.getBuiltinModule('node:path').join(process.getBuiltinModule('node:path').dirname(process.getBuiltinModule('node:module').createRequire(baseUrl).resolve('@deepseek-ai/dsh-agent-preset/package.json')), 'skills')
131
+ bundledSkillDir: !!js process.getBuiltinModule('node:path').join(process.getBuiltinModule('node:path').dirname(process.getBuiltinModule('node:module').createRequire(baseUrl).resolve('dsh-gate-agent/package.json')), 'skills')
132
+ - id: tool-skill
133
+ name: '@deepseek-ai/dsh-tool-skill'
134
+ - id: present
135
+ name: '@deepseek-ai/dsh-tool-present'
136
+ - id: tool-plugin-manager
137
+ name: '@deepseek-ai/dsh-plugin-manager/tools'
138
+ disabled: !!js "!ctx.get('profileContext')"
139
+ - id: tool-plugin-market
140
+ name: '@deepseek-ai/dsh-plugin-market/tools'
141
+ disabled: !!js "!ctx.get('profileContext')"
142
+ - id: gate
143
+ name: 'dsh-gate-agent'
144
+
package/icon.svg CHANGED
@@ -1,4 +1,4 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none">
2
- <path d="M12 2.5 20 5.5v6.2c0 5.1-3.4 8.5-8 9.8-4.6-1.3-8-4.7-8-9.8V5.5L12 2.5Z" stroke="currentColor" stroke-width="1.8" stroke-linejoin="round"/>
3
- <path d="M8.5 12.2 11 14.7l4.8-5.2" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"/>
4
- </svg>
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none">
2
+ <path d="M12 2.5 20 5.5v6.2c0 5.1-3.4 8.5-8 9.8-4.6-1.3-8-4.7-8-9.8V5.5L12 2.5Z" stroke="currentColor" stroke-width="1.8" stroke-linejoin="round"/>
3
+ <path d="M8.5 12.2 11 14.7l4.8-5.2" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"/>
4
+ </svg>
@@ -1,20 +1,20 @@
1
- import { spawnSync } from 'node:child_process'
2
- import { join } from 'node:path'
3
-
4
- const scriptsDir = join(process.cwd(), '.agents', 'gate', 'ci')
5
- const notesRoot = join(process.cwd(), '.agents', 'notes')
6
- const scripts = [
7
- 'verify-agent-note-tree.ts',
8
- 'verify-agent-note-format.ts',
9
- 'verify-agent-note-lifecycle.ts',
10
- 'verify-archived-agent-notes.ts',
11
- ]
12
-
13
- for (const name of scripts) {
14
- const result = spawnSync(
15
- process.execPath,
16
- [join(scriptsDir, name), '--root', notesRoot],
17
- { stdio: 'inherit' },
18
- )
19
- if (result.status !== 0) process.exit(result.status ?? 1)
20
- }
1
+ import { spawnSync } from 'node:child_process'
2
+ import { join } from 'node:path'
3
+
4
+ const scriptsDir = join(process.cwd(), '.agents', 'gate', 'ci')
5
+ const notesRoot = join(process.cwd(), '.agents', 'notes')
6
+ const scripts = [
7
+ 'verify-agent-note-tree.ts',
8
+ 'verify-agent-note-format.ts',
9
+ 'verify-agent-note-lifecycle.ts',
10
+ 'verify-archived-agent-notes.ts',
11
+ ]
12
+
13
+ for (const name of scripts) {
14
+ const result = spawnSync(
15
+ process.execPath,
16
+ [join(scriptsDir, name), '--root', notesRoot],
17
+ { stdio: 'inherit' },
18
+ )
19
+ if (result.status !== 0) process.exit(result.status ?? 1)
20
+ }
@@ -1,34 +1,34 @@
1
- # 由 gate-init 生成;校验脚本在 .agents/gate/ci/,不依赖插件安装路径。
2
- name: Verify Agent Notes
3
-
4
- on:
5
- push:
6
- branches:
7
- - main
8
- pull_request:
9
-
10
- permissions:
11
- contents: read
12
-
13
- jobs:
14
- verify:
15
- runs-on: ubuntu-latest
16
- steps:
17
- - name: Checkout
18
- uses: actions/checkout@v4
19
- with:
20
- fetch-depth: 0
21
-
22
- - name: Setup Node
23
- uses: actions/setup-node@v4
24
- with:
25
- node-version: 24
26
-
27
- - name: Verify note tree, format, lifecycle, and archive seals
28
- env:
29
- AGENT_NOTE_ARCHIVE_BASE_REF: ${{ github.event.pull_request.base.sha || github.event.before }}
30
- run: |
31
- npx --yes tsx .agents/gate/ci/verify-agent-note-tree.ts --root .agents/notes
32
- npx --yes tsx .agents/gate/ci/verify-agent-note-format.ts --root .agents/notes
33
- npx --yes tsx .agents/gate/ci/verify-agent-note-lifecycle.ts --root .agents/notes
34
- npx --yes tsx .agents/gate/ci/verify-archived-agent-notes.ts --root .agents/notes
1
+ # 由 gate-init 生成;校验脚本在 .agents/gate/ci/,不依赖插件安装路径。
2
+ name: Verify Agent Notes
3
+
4
+ on:
5
+ push:
6
+ branches:
7
+ - main
8
+ pull_request:
9
+
10
+ permissions:
11
+ contents: read
12
+
13
+ jobs:
14
+ verify:
15
+ runs-on: ubuntu-latest
16
+ steps:
17
+ - name: Checkout
18
+ uses: actions/checkout@v4
19
+ with:
20
+ fetch-depth: 0
21
+
22
+ - name: Setup Node
23
+ uses: actions/setup-node@v4
24
+ with:
25
+ node-version: 24
26
+
27
+ - name: Verify note tree, format, lifecycle, and archive seals
28
+ env:
29
+ AGENT_NOTE_ARCHIVE_BASE_REF: ${{ github.event.pull_request.base.sha || github.event.before }}
30
+ run: |
31
+ npx --yes tsx .agents/gate/ci/verify-agent-note-tree.ts --root .agents/notes
32
+ npx --yes tsx .agents/gate/ci/verify-agent-note-format.ts --root .agents/notes
33
+ npx --yes tsx .agents/gate/ci/verify-agent-note-lifecycle.ts --root .agents/notes
34
+ npx --yes tsx .agents/gate/ci/verify-archived-agent-notes.ts --root .agents/notes
package/locale/en.json CHANGED
@@ -1,6 +1,6 @@
1
- {
2
- "meta": {
3
- "title": "Gate",
4
- "description": "Phase gate and write policy for agent workflows."
5
- }
6
- }
1
+ {
2
+ "meta": {
3
+ "title": "Gate",
4
+ "description": "Phase gate and write policy for agent workflows."
5
+ }
6
+ }
package/locale/zh.json CHANGED
@@ -1,6 +1,6 @@
1
- {
2
- "meta": {
3
- "title": "Gate 门禁",
4
- "description": "按阶段控制 agent 的写入与评审流程。"
5
- }
6
- }
1
+ {
2
+ "meta": {
3
+ "title": "Gate 门禁",
4
+ "description": "按阶段控制 agent 的写入与评审流程。"
5
+ }
6
+ }
package/package.json CHANGED
@@ -1,34 +1,34 @@
1
- {
2
- "name": "dsh-gate-agent",
3
- "version": "0.1.1",
4
- "type": "module",
5
- "description": "Full write gate and phase orchestrator with plugin-local skills.",
6
- "exports": {
7
- ".": "./lib/index.js",
8
- "./locale/*.json": "./locale/*.json",
9
- "./icon": "./icon.svg",
10
- "./package.json": "./package.json"
11
- },
12
- "files": [
13
- "lib",
14
- "skills",
15
- "launchers",
16
- "cordis.patch.yml",
17
- "README.md",
18
- "locale/*.json",
19
- "icon.svg"
20
- ],
21
- "scripts": {
22
- "build": "node scripts/bundle.mjs",
23
- "typecheck": "tsc -p tsconfig.json",
24
- "test": "node scripts/bundle.mjs && node scripts/check-split.mjs && node test/unit.mjs && node test/composition.mjs && node test/registry.mjs"
25
- },
26
- "dsh": {
27
- "bundle": {
28
- "patch": "./cordis.patch.yml"
29
- }
30
- },
31
- "publishConfig": {
32
- "access": "public"
33
- }
34
- }
1
+ {
2
+ "name": "dsh-gate-agent",
3
+ "version": "0.1.2",
4
+ "type": "module",
5
+ "description": "Full write gate and phase orchestrator with plugin-local skills.",
6
+ "exports": {
7
+ ".": "./lib/index.js",
8
+ "./locale/*.json": "./locale/*.json",
9
+ "./icon": "./icon.svg",
10
+ "./package.json": "./package.json"
11
+ },
12
+ "files": [
13
+ "lib",
14
+ "skills",
15
+ "launchers",
16
+ "cordis.patch.yml",
17
+ "README.md",
18
+ "locale/*.json",
19
+ "icon.svg"
20
+ ],
21
+ "scripts": {
22
+ "build": "node scripts/bundle.mjs",
23
+ "typecheck": "tsc -p tsconfig.json",
24
+ "test": "node scripts/bundle.mjs && node scripts/check-split.mjs && node test/unit.mjs && node test/composition.mjs && node test/registry.mjs"
25
+ },
26
+ "dsh": {
27
+ "bundle": {
28
+ "patch": "./cordis.patch.yml"
29
+ }
30
+ },
31
+ "publishConfig": {
32
+ "access": "public"
33
+ }
34
+ }
@@ -6,8 +6,8 @@ user-invocable: false
6
6
 
7
7
  ## Gate 使用
8
8
 
9
- 主 agent 读取本方法后,按改动规模派一个或多个 review worker;worker 不加载本技能或其他 gate 方法文件。`gate_record({node:'code-review'})` 需要 `reviewAxes.standards.findings` 与 `reviewAxes.spec.findings`;worker 数量由主 agent 决定,但两轴都必须产出。
10
-
9
+ 主 agent 读取本方法后,按改动规模派一个或多个 review worker;worker 不加载本技能或其他 gate 方法文件。`gate_record({node:'code-review'})` 需要 `reviewAxes.standards.findings` 与 `reviewAxes.spec.findings`;worker 数量由主 agent 决定,但两轴都必须产出。
10
+
11
11
  任务模板:本技能 `assets/worker-briefs/gate-implement-review.md`。
12
12
 
13
13
  Two-axis review of the requested change scope, including uncommitted work when applicable:
@@ -1,19 +1,19 @@
1
- # /gate-implement-review — review worker
2
-
3
- ```markdown
4
- 你是 Gate 的只读 Implementation Review worker。只评审改动,不修复,不写代码。
5
-
6
- ## 评审对象
7
- <范围、固定点、完整 diff>
8
-
9
- ## 合同
10
- <工作项验收条件、适用设计决定>
11
-
12
- ## 两轴
13
- Standards / Spec。每轴只报 findings,注明文件/证据与严重度。
14
-
15
- ## 输出
16
- 返回 standards、spec 两组 findings;不要合并两轴,不要修改代码。
17
- ```
1
+ # /gate-implement-review — review worker
2
+
3
+ ```markdown
4
+ 你是 Gate 的只读 Implementation Review worker。只评审改动,不修复,不写代码。
5
+
6
+ ## 评审对象
7
+ <范围、固定点、完整 diff>
8
+
9
+ ## 合同
10
+ <工作项验收条件、适用设计决定>
11
+
12
+ ## 两轴
13
+ Standards / Spec。每轴只报 findings,注明文件/证据与严重度。
14
+
15
+ ## 输出
16
+ 返回 standards、spec 两组 findings;不要合并两轴,不要修改代码。
17
+ ```
18
18
 
19
19
 
@@ -51,9 +51,9 @@ _Avoid_: Client, buyer, account
51
51
  - **Ordering ↔ Billing**: Shared types for `CustomerId` and `Money`
52
52
  ```
53
53
 
54
- The skill infers which structure applies:
55
-
56
- Resolve the root from project instructions before these checks; the current working directory may be a subproject. Use the project documentation hierarchy for ownership; the context map does not create separate record categories. Paths shown in the map are Markdown links relative to the map file.
54
+ The skill infers which structure applies:
55
+
56
+ Resolve the root from project instructions before these checks; the current working directory may be a subproject. Use the project documentation hierarchy for ownership; the context map does not create separate record categories. Paths shown in the map are Markdown links relative to the map file.
57
57
 
58
58
  - If `CONTEXT-MAP.md` exists, read it to find contexts
59
59
  - If only a root `CONTEXT.md` exists, single context
@@ -51,9 +51,9 @@ _Avoid_: Client, buyer, account
51
51
  - **Ordering ↔ Billing**: Shared types for `CustomerId` and `Money`
52
52
  ```
53
53
 
54
- The skill infers which structure applies:
55
-
56
- Resolve the root from project instructions before these checks; the current working directory may be a subproject. Use the project documentation hierarchy for ownership; the context map does not create separate record categories. Paths shown in the map are Markdown links relative to the map file.
54
+ The skill infers which structure applies:
55
+
56
+ Resolve the root from project instructions before these checks; the current working directory may be a subproject. Use the project documentation hierarchy for ownership; the context map does not create separate record categories. Paths shown in the map are Markdown links relative to the map file.
57
57
 
58
58
  - If `GLOSSARY-MAP.md` exists, read it to find contexts
59
59
  - If only a root `GLOSSARY.md` exists, single context
@@ -1,23 +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
- ```
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
21
 
22
22
 
23
23