universal-dev-standards 5.3.1 → 5.4.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/bundled/ai/standards/agent-communication-protocol.ai.yaml +32 -166
- package/bundled/ai/standards/agent-dispatch.ai.yaml +32 -58
- package/bundled/ai/standards/branch-completion.ai.yaml +34 -70
- package/bundled/ai/standards/change-batching-standards.ai.yaml +31 -180
- package/bundled/ai/standards/execution-history.ai.yaml +30 -288
- package/bundled/ai/standards/pipeline-integration-standards.ai.yaml +28 -169
- package/bundled/ai/standards/workflow-enforcement.ai.yaml +34 -240
- package/bundled/ai/standards/workflow-state-protocol.ai.yaml +31 -107
- package/bundled/locales/zh-CN/CHANGELOG.md +9 -2
- package/bundled/locales/zh-CN/README.md +1 -1
- package/bundled/locales/zh-TW/CHANGELOG.md +9 -2
- package/bundled/locales/zh-TW/README.md +1 -1
- package/package.json +1 -1
- package/src/commands/update.js +83 -11
- package/standards-registry.json +51 -11
|
@@ -1,177 +1,43 @@
|
|
|
1
|
-
# Agent Communication Protocol -
|
|
2
|
-
#
|
|
3
|
-
#
|
|
1
|
+
# Agent Communication Protocol - DEPRECATED STUB
|
|
2
|
+
# This file has been migrated to DevAP per DEC-049 (UDS/DevAP responsibility split).
|
|
3
|
+
# Canonical location: dev-autopilot/standards/orchestration/agent-communication-protocol.ai.yaml
|
|
4
|
+
# Migration: XSPEC-086 Phase 2 (2026-04-27)
|
|
5
|
+
#
|
|
6
|
+
# Human-readable standard: core/agent-communication-protocol.md (remains in UDS)
|
|
7
|
+
# Deprecation schedule: UDS 5.4.0 deprecated → UDS 6.0.0 removed
|
|
4
8
|
|
|
5
9
|
standard:
|
|
6
10
|
id: agent-communication
|
|
7
|
-
name: Agent Communication Protocol
|
|
8
|
-
description: 跨專案 Agent 統一通訊協定
|
|
9
|
-
|
|
10
11
|
meta:
|
|
11
|
-
version: "1.0.
|
|
12
|
-
updated: "2026-
|
|
12
|
+
version: "1.0.1"
|
|
13
|
+
updated: "2026-04-27"
|
|
14
|
+
deprecated: true
|
|
15
|
+
deprecated_since: "5.4.0"
|
|
16
|
+
removal_version: "6.0.0"
|
|
17
|
+
canonical_owner: devap
|
|
18
|
+
canonical_path: "dev-autopilot/standards/orchestration/agent-communication-protocol.ai.yaml"
|
|
13
19
|
source: core/agent-communication-protocol.md
|
|
14
|
-
description: 統一狀態碼、訊息信封、結構化交接與協定版本管理
|
|
15
|
-
scope: universal
|
|
16
|
-
|
|
17
|
-
guidelines:
|
|
18
|
-
- "Agent 間通訊必須使用 Envelope 格式,禁止 prompt injection"
|
|
19
|
-
- "狀態碼必須使用統一 8 碼超集:success / success_partial / failed / blocked / needs_context / skipped / timeout / unknown"
|
|
20
|
-
- "上下文傳遞必須使用 Handoff 物件,引用 artifact_id 而非嵌入完整內容"
|
|
21
|
-
- "未知狀態碼映射為 unknown,記錄警告,不中斷執行"
|
|
22
|
-
- "同 MAJOR 版本保證向後相容,不同 MAJOR 回報 VERSION_INCOMPATIBLE"
|
|
23
|
-
|
|
24
|
-
status_protocol:
|
|
25
|
-
- unified: success
|
|
26
|
-
uds: DONE
|
|
27
|
-
devap: success
|
|
28
|
-
vibeops: success
|
|
29
|
-
- unified: success_partial
|
|
30
|
-
uds: DONE_WITH_CONCERNS
|
|
31
|
-
devap: done_with_concerns
|
|
32
|
-
vibeops: partial
|
|
33
|
-
- unified: failed
|
|
34
|
-
uds: null
|
|
35
|
-
devap: failed
|
|
36
|
-
vibeops: failure
|
|
37
|
-
- unified: blocked
|
|
38
|
-
uds: BLOCKED
|
|
39
|
-
devap: blocked
|
|
40
|
-
vibeops: null
|
|
41
|
-
- unified: needs_context
|
|
42
|
-
uds: NEEDS_CONTEXT
|
|
43
|
-
devap: needs_context
|
|
44
|
-
vibeops: null
|
|
45
|
-
- unified: skipped
|
|
46
|
-
uds: null
|
|
47
|
-
devap: skipped
|
|
48
|
-
vibeops: null
|
|
49
|
-
- unified: timeout
|
|
50
|
-
uds: null
|
|
51
|
-
devap: timeout
|
|
52
|
-
vibeops: null
|
|
53
|
-
- unified: unknown
|
|
54
|
-
uds: null
|
|
55
|
-
devap: null
|
|
56
|
-
vibeops: null
|
|
57
|
-
|
|
58
|
-
envelope:
|
|
59
|
-
version: "1.0"
|
|
60
|
-
required_fields:
|
|
61
|
-
- field: envelope_version
|
|
62
|
-
type: string
|
|
63
|
-
description: "協定版本(MAJOR.MINOR)"
|
|
64
|
-
- field: message_id
|
|
65
|
-
type: uuid
|
|
66
|
-
description: "訊息唯一 ID"
|
|
67
|
-
- field: source
|
|
68
|
-
type: object
|
|
69
|
-
description: "發送者 { agent_id, agent_type, project }"
|
|
70
|
-
- field: target
|
|
71
|
-
type: object
|
|
72
|
-
description: "接收者 { agent_id?, agent_type }(broadcast 時可省略)"
|
|
73
|
-
- field: status
|
|
74
|
-
type: string
|
|
75
|
-
description: "統一狀態碼"
|
|
76
|
-
- field: timestamp
|
|
77
|
-
type: iso8601
|
|
78
|
-
description: "訊息建立時間"
|
|
79
|
-
- field: payload.artifact_type
|
|
80
|
-
type: string
|
|
81
|
-
enum: [spec, code, test, review, plan, design]
|
|
82
|
-
- field: payload.artifact_id
|
|
83
|
-
type: string
|
|
84
|
-
description: "Artifact 唯一 ID"
|
|
85
|
-
optional_fields:
|
|
86
|
-
- field: correlation_id
|
|
87
|
-
description: "關聯 ID(同一任務鏈)"
|
|
88
|
-
- field: parent_message_id
|
|
89
|
-
description: "父訊息 ID(回應時填寫)"
|
|
90
|
-
- field: metadata
|
|
91
|
-
description: "擴展元資料(model_tier, token_usage, duration_ms)"
|
|
92
|
-
- field: concerns
|
|
93
|
-
description: "success_partial 時的疑慮列表"
|
|
94
|
-
|
|
95
|
-
handoff:
|
|
96
|
-
required_fields:
|
|
97
|
-
- field: from
|
|
98
|
-
description: "發送者 { agent_id, agent_type, message_id }"
|
|
99
|
-
- field: to
|
|
100
|
-
description: "接收者 { agent_type }"
|
|
101
|
-
- field: artifacts
|
|
102
|
-
description: "Artifact 引用陣列 [{ artifact_id, artifact_type, summary }]"
|
|
103
|
-
optional_fields:
|
|
104
|
-
- field: decision_log
|
|
105
|
-
description: "決策記錄 [{ decision, reason, agent_id, timestamp }]"
|
|
106
|
-
- field: pending_items
|
|
107
|
-
description: "待處理事項 [{ item, priority, context? }]"
|
|
108
|
-
- field: constraints
|
|
109
|
-
description: "約束條件 [string]"
|
|
110
|
-
|
|
111
|
-
hook_exit_codes:
|
|
112
20
|
description: >
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
codes:
|
|
116
|
-
- code: 0
|
|
117
|
-
name: pass
|
|
118
|
-
description: "Hook 通過,工具/Agent 執行繼續"
|
|
119
|
-
blocking: false
|
|
120
|
-
stdout_handling: "忽略"
|
|
121
|
-
stderr_handling: "忽略"
|
|
122
|
-
- code: 2
|
|
123
|
-
name: block
|
|
124
|
-
description: "阻止執行;stderr 輸出作為回饋文字直接注入 AI 上下文"
|
|
125
|
-
blocking: true
|
|
126
|
-
stdout_handling: "忽略"
|
|
127
|
-
stderr_handling: "作為 AI feedback 注入(支援 JSON 格式 decision:block/reason)"
|
|
128
|
-
note: "PreToolUse exit 2 → 阻止工具呼叫;Stop exit 2 → 中止 session"
|
|
129
|
-
- code: other
|
|
130
|
-
name: warn
|
|
131
|
-
description: "非阻擋性警告;記錄日誌但執行繼續(exit 1 為常用警告代碼)"
|
|
132
|
-
blocking: false
|
|
133
|
-
stdout_handling: "記錄到系統日誌"
|
|
134
|
-
stderr_handling: "顯示為 warning,不注入 AI 上下文"
|
|
135
|
-
rules:
|
|
136
|
-
- "MUST: 阻擋行為只能用 exit 2,不得用 exit 1 或其他非零代碼"
|
|
137
|
-
- "MUST: exit 2 時 stderr 必須是人類可讀的原因(推薦 JSON: {reason: string})"
|
|
138
|
-
- "SHOULD: 軟性警告(deprecated pattern、style 違反)使用 exit 1"
|
|
139
|
-
- "MAY: exit 0 時可輸出 JSON 到 stdout(Stop hook 用 decision:block 要求 AI 繼續)"
|
|
21
|
+
DEPRECATED: This standard has moved to DevAP (orchestration layer).
|
|
22
|
+
Install DevAP and load standards/orchestration/agent-communication-protocol.ai.yaml instead.
|
|
140
23
|
|
|
141
24
|
rules:
|
|
25
|
+
- id: deprecation-notice
|
|
26
|
+
trigger: any agent communication operation
|
|
27
|
+
instruction: >
|
|
28
|
+
This standard (agent-communication-protocol.ai.yaml) has been migrated to DevAP.
|
|
29
|
+
For the canonical executable definition, load:
|
|
30
|
+
dev-autopilot/standards/orchestration/agent-communication-protocol.ai.yaml
|
|
31
|
+
|
|
32
|
+
The human-readable standard remains at:
|
|
33
|
+
universal-dev-standards/core/agent-communication-protocol.md
|
|
34
|
+
priority: required
|
|
35
|
+
|
|
142
36
|
- id: ACP-001
|
|
143
37
|
trigger: "訊息缺少必要欄位"
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
trigger: "收到未知狀態碼"
|
|
148
|
-
action: "映射為 unknown,記錄警告,繼續執行"
|
|
149
|
-
priority: high
|
|
150
|
-
- id: ACP-003
|
|
151
|
-
trigger: "收到不同 MAJOR 版本的訊息"
|
|
152
|
-
action: "回報 VERSION_INCOMPATIBLE,附帶支援的版本範圍"
|
|
153
|
-
priority: high
|
|
154
|
-
- id: ACP-004
|
|
155
|
-
trigger: "收到同 MAJOR 更高 MINOR 版本的訊息"
|
|
156
|
-
action: "解析已知欄位,忽略未知欄位,不報錯"
|
|
157
|
-
priority: medium
|
|
158
|
-
- id: ACP-005
|
|
159
|
-
trigger: "建立 Handoff"
|
|
160
|
-
action: "引用 artifact_id,不嵌入完整內容"
|
|
161
|
-
priority: medium
|
|
162
|
-
- id: ACP-006
|
|
163
|
-
trigger: "生成 hook 腳本"
|
|
164
|
-
action: "依照 hook_exit_codes 三分類:0=pass, 2=block+feedback, 其他=warn"
|
|
165
|
-
priority: high
|
|
38
|
+
instruction: >
|
|
39
|
+
DEPRECATED — load dev-autopilot/standards/orchestration/agent-communication-protocol.ai.yaml
|
|
40
|
+
for the current executable communication protocol.
|
|
166
41
|
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
validator:
|
|
170
|
-
type: ai_review
|
|
171
|
-
rule: "檢查 Agent 通訊是否遵循 Envelope 格式、統一狀態碼、Handoff 結構"
|
|
172
|
-
checks:
|
|
173
|
-
- "訊息是否使用 Envelope 格式(非 prompt injection)"
|
|
174
|
-
- "狀態碼是否為 8 碼超集之一"
|
|
175
|
-
- "Handoff 是否引用 artifact_id 而非嵌入內容"
|
|
176
|
-
- "decision_log 每筆是否包含 decision, reason, agent_id, timestamp"
|
|
177
|
-
- "版本不相容時是否回報 VERSION_INCOMPATIBLE"
|
|
42
|
+
Minimal fallback: Reject messages missing required Envelope fields and report INVALID_ENVELOPE.
|
|
43
|
+
priority: critical
|
|
@@ -1,69 +1,43 @@
|
|
|
1
|
-
# Agent Dispatch & Parallel Coordination -
|
|
2
|
-
#
|
|
3
|
-
#
|
|
1
|
+
# Agent Dispatch & Parallel Coordination - DEPRECATED STUB
|
|
2
|
+
# This file has been migrated to DevAP per DEC-049 (UDS/DevAP responsibility split).
|
|
3
|
+
# Canonical location: dev-autopilot/standards/orchestration/agent-dispatch.ai.yaml
|
|
4
|
+
# Migration: XSPEC-086 Phase 2 (2026-04-27)
|
|
5
|
+
#
|
|
6
|
+
# Human-readable standard: core/agent-dispatch.md (remains in UDS)
|
|
7
|
+
# Deprecation schedule: UDS 5.4.0 deprecated → UDS 6.0.0 removed
|
|
4
8
|
|
|
5
9
|
standard:
|
|
6
10
|
id: agent-dispatch
|
|
7
|
-
name: Agent Dispatch & Parallel Coordination
|
|
8
|
-
description: 子代理派遣與並行協調標準
|
|
9
|
-
|
|
10
11
|
meta:
|
|
11
|
-
version: "1.0.
|
|
12
|
-
updated: "2026-
|
|
12
|
+
version: "1.0.1"
|
|
13
|
+
updated: "2026-04-27"
|
|
14
|
+
deprecated: true
|
|
15
|
+
deprecated_since: "5.4.0"
|
|
16
|
+
removal_version: "6.0.0"
|
|
17
|
+
canonical_owner: devap
|
|
18
|
+
canonical_path: "dev-autopilot/standards/orchestration/agent-dispatch.ai.yaml"
|
|
13
19
|
source: core/agent-dispatch.md
|
|
14
|
-
description:
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
guidelines:
|
|
18
|
-
- "派遣前必須識別獨立域(無共享狀態 → 可並行)"
|
|
19
|
-
- "每個代理的 prompt 必須 Focused(單一問題域)、Self-contained(完整上下文)、Specific output(明確回報格式)"
|
|
20
|
-
- "代理必須回報明確狀態:DONE / DONE_WITH_CONCERNS / NEEDS_CONTEXT / BLOCKED"
|
|
21
|
-
- "並行代理返回後必須檢查檔案衝突"
|
|
22
|
-
- "所有代理完成後必須跑完整測試套件驗證整合"
|
|
20
|
+
description: >
|
|
21
|
+
DEPRECATED: This standard has moved to DevAP (orchestration layer).
|
|
22
|
+
Install DevAP and load standards/orchestration/agent-dispatch.ai.yaml instead.
|
|
23
23
|
|
|
24
|
-
|
|
25
|
-
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
- status: NEEDS_CONTEXT
|
|
32
|
-
description: "需要更多上下文才能完成"
|
|
33
|
-
orchestrator_action: "注入額外 context,重新派遣(不計為 retry)"
|
|
34
|
-
- status: BLOCKED
|
|
35
|
-
description: "無法完成,需要人工介入或升級處理"
|
|
36
|
-
orchestrator_action: "嘗試升級模型或拆分任務"
|
|
24
|
+
rules:
|
|
25
|
+
- id: deprecation-notice
|
|
26
|
+
trigger: any agent dispatch operation
|
|
27
|
+
instruction: >
|
|
28
|
+
This standard (agent-dispatch.ai.yaml) has been migrated to DevAP.
|
|
29
|
+
For the canonical executable definition, load:
|
|
30
|
+
dev-autopilot/standards/orchestration/agent-dispatch.ai.yaml
|
|
37
31
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
- principle: Self-contained
|
|
42
|
-
description: "prompt 包含完整執行所需的上下文"
|
|
43
|
-
- principle: Specific_output
|
|
44
|
-
description: "明確定義期望的回報格式"
|
|
32
|
+
The human-readable standard remains at:
|
|
33
|
+
universal-dev-standards/core/agent-dispatch.md
|
|
34
|
+
priority: required
|
|
45
35
|
|
|
46
|
-
rules:
|
|
47
|
-
- id: AD-001
|
|
48
|
-
trigger: "多個代理編輯相同檔案"
|
|
49
|
-
action: "標記衝突,需要人工或自動合併"
|
|
50
|
-
priority: critical
|
|
51
|
-
- id: AD-002
|
|
52
|
-
trigger: "代理回報 BLOCKED"
|
|
53
|
-
action: "嘗試升級模型等級再試一次"
|
|
54
|
-
priority: high
|
|
55
36
|
- id: AD-003
|
|
56
37
|
trigger: "所有並行代理完成"
|
|
57
|
-
|
|
58
|
-
|
|
38
|
+
instruction: >
|
|
39
|
+
DEPRECATED — load dev-autopilot/standards/orchestration/agent-dispatch.ai.yaml
|
|
40
|
+
for the current executable dispatch protocol.
|
|
59
41
|
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
validator:
|
|
63
|
-
type: ai_review
|
|
64
|
-
rule: "檢查代理派遣是否遵循獨立域識別、prompt 三原則、狀態協定"
|
|
65
|
-
checks:
|
|
66
|
-
- "並行代理是否在獨立域上工作(無共享檔案)"
|
|
67
|
-
- "代理 prompt 是否包含完整上下文"
|
|
68
|
-
- "代理是否回報標準化狀態碼"
|
|
69
|
-
- "並行完成後是否執行整合測試"
|
|
42
|
+
Minimal fallback: Run full test suite after all parallel agents complete.
|
|
43
|
+
priority: high
|
|
@@ -1,82 +1,46 @@
|
|
|
1
|
-
# Branch Completion Workflow -
|
|
2
|
-
#
|
|
3
|
-
#
|
|
1
|
+
# Branch Completion Workflow - DEPRECATED STUB
|
|
2
|
+
# This file has been migrated to DevAP per DEC-049 (UDS/DevAP responsibility split).
|
|
3
|
+
# Canonical location: dev-autopilot/standards/flow/branch-completion.ai.yaml
|
|
4
|
+
# Migration: XSPEC-086 Phase 2 (2026-04-27)
|
|
5
|
+
#
|
|
6
|
+
# Human-readable standard: core/branch-completion.md (remains in UDS)
|
|
7
|
+
# Deprecation schedule: UDS 5.4.0 deprecated → UDS 6.0.0 removed
|
|
4
8
|
|
|
5
9
|
standard:
|
|
6
10
|
id: branch-completion
|
|
7
|
-
name: Branch Completion Workflow
|
|
8
|
-
description: 分支完成工作流標準
|
|
9
|
-
|
|
10
11
|
meta:
|
|
11
|
-
version: "1.0.
|
|
12
|
-
updated: "2026-
|
|
12
|
+
version: "1.0.1"
|
|
13
|
+
updated: "2026-04-27"
|
|
14
|
+
deprecated: true
|
|
15
|
+
deprecated_since: "5.4.0"
|
|
16
|
+
removal_version: "6.0.0"
|
|
17
|
+
canonical_owner: devap
|
|
18
|
+
canonical_path: "dev-autopilot/standards/flow/branch-completion.ai.yaml"
|
|
13
19
|
source: core/branch-completion.md
|
|
14
|
-
description:
|
|
15
|
-
|
|
20
|
+
description: >
|
|
21
|
+
DEPRECATED: This standard has moved to DevAP (flow orchestration layer).
|
|
22
|
+
Install DevAP and load standards/flow/branch-completion.ai.yaml instead.
|
|
16
23
|
|
|
17
|
-
|
|
18
|
-
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
24
|
+
rules:
|
|
25
|
+
- id: deprecation-notice
|
|
26
|
+
trigger: any branch completion operation
|
|
27
|
+
instruction: >
|
|
28
|
+
This standard (branch-completion.ai.yaml) has been migrated to DevAP.
|
|
29
|
+
For the canonical executable definition, load:
|
|
30
|
+
dev-autopilot/standards/flow/branch-completion.ai.yaml
|
|
22
31
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
- "lint 通過"
|
|
26
|
-
- "type check 通過"
|
|
27
|
-
- "無未提交的變更"
|
|
32
|
+
The human-readable standard remains at:
|
|
33
|
+
universal-dev-standards/core/branch-completion.md
|
|
28
34
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
description: "合併到目標分支"
|
|
32
|
-
steps:
|
|
33
|
-
- "git checkout <target>"
|
|
34
|
-
- "git merge --no-ff <branch>"
|
|
35
|
-
- "刪除分支"
|
|
36
|
-
- "清理 worktree(若有)"
|
|
37
|
-
- id: create_pr
|
|
38
|
-
description: "建立 Pull Request"
|
|
39
|
-
steps:
|
|
40
|
-
- "推送分支到 remote"
|
|
41
|
-
- "建立 PR(含描述與測試計畫)"
|
|
42
|
-
- "等待審查"
|
|
43
|
-
- id: keep_as_is
|
|
44
|
-
description: "保持現狀不動"
|
|
45
|
-
steps:
|
|
46
|
-
- "記錄分支狀態"
|
|
47
|
-
- "提醒使用者稍後處理"
|
|
48
|
-
- id: discard
|
|
49
|
-
description: "丟棄所有變更"
|
|
50
|
-
steps:
|
|
51
|
-
- "要求使用者明確確認(輸入分支名稱)"
|
|
52
|
-
- "刪除分支(git branch -D)"
|
|
53
|
-
- "清理 worktree(若有)"
|
|
35
|
+
To install DevAP: npm install -g @devap/cli
|
|
36
|
+
priority: required
|
|
54
37
|
|
|
55
|
-
rules:
|
|
56
|
-
- id: BC-001
|
|
57
|
-
trigger: "使用者選擇 discard"
|
|
58
|
-
action: "要求輸入分支名稱確認,防止誤刪"
|
|
59
|
-
priority: critical
|
|
60
|
-
- id: BC-002
|
|
61
|
-
trigger: "分支有 worktree"
|
|
62
|
-
action: "完成後自動清理 worktree"
|
|
63
|
-
priority: high
|
|
64
38
|
- id: BC-003
|
|
65
39
|
trigger: "前置條件未滿足"
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
trigger: "分支閒置超過 14 天"
|
|
70
|
-
action: "通知使用者完成或丟棄"
|
|
71
|
-
priority: medium
|
|
40
|
+
instruction: >
|
|
41
|
+
DEPRECATED — load dev-autopilot/standards/flow/branch-completion.ai.yaml
|
|
42
|
+
for the current executable branch completion flow.
|
|
72
43
|
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
type: ai_review
|
|
77
|
-
rule: "檢查分支完成是否遵循前置條件檢查和四選項流程"
|
|
78
|
-
checks:
|
|
79
|
-
- "完成前是否通過所有前置條件(測試、lint、type check)"
|
|
80
|
-
- "是否提供完成選項供使用者選擇"
|
|
81
|
-
- "Discard 操作是否要求明確確認"
|
|
82
|
-
- "關聯的 worktree 是否被清理"
|
|
44
|
+
Minimal fallback: Block branch completion when prerequisites (tests, lint,
|
|
45
|
+
type check, no uncommitted changes) are not met.
|
|
46
|
+
priority: high
|
|
@@ -1,195 +1,46 @@
|
|
|
1
|
-
# Change Batching Standards -
|
|
2
|
-
#
|
|
1
|
+
# Change Batching Standards - DEPRECATED STUB
|
|
2
|
+
# This file has been migrated to DevAP per DEC-049 (UDS/DevAP responsibility split).
|
|
3
|
+
# Canonical location: dev-autopilot/standards/flow/change-batching-standards.ai.yaml
|
|
4
|
+
# Migration: XSPEC-086 Phase 2 (2026-04-27)
|
|
5
|
+
#
|
|
6
|
+
# Human-readable standard: core/change-batching-standards.md (remains in UDS)
|
|
7
|
+
# Deprecation schedule: UDS 5.4.0 deprecated → UDS 6.0.0 removed
|
|
3
8
|
|
|
4
9
|
standard:
|
|
5
10
|
id: change-batching-standards
|
|
6
|
-
name: Change Batching Standards
|
|
7
|
-
description: Pending changes state machine, threshold strategies, and atomicity guarantees for batch commits
|
|
8
|
-
|
|
9
11
|
meta:
|
|
10
|
-
version: "1.0.
|
|
11
|
-
updated: "2026-
|
|
12
|
+
version: "1.0.1"
|
|
13
|
+
updated: "2026-04-27"
|
|
14
|
+
deprecated: true
|
|
15
|
+
deprecated_since: "5.4.0"
|
|
16
|
+
removal_version: "6.0.0"
|
|
17
|
+
canonical_owner: devap
|
|
18
|
+
canonical_path: "dev-autopilot/standards/flow/change-batching-standards.ai.yaml"
|
|
12
19
|
source: core/change-batching-standards.md
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
- "Continuous Delivery (Jez Humble) — Small batch sizes"
|
|
17
|
-
- "Lean Software Development — Batch size optimization"
|
|
18
|
-
|
|
19
|
-
state_machine:
|
|
20
|
-
description: Pending changes lifecycle
|
|
21
|
-
states:
|
|
22
|
-
- state: PENDING
|
|
23
|
-
description: Change recorded, waiting for threshold
|
|
24
|
-
- state: READY
|
|
25
|
-
description: Threshold met, batch prepared for merge
|
|
26
|
-
- state: MERGED
|
|
27
|
-
description: Batch successfully committed
|
|
28
|
-
- state: FAILED
|
|
29
|
-
description: Merge attempt failed
|
|
30
|
-
- state: ARCHIVED
|
|
31
|
-
description: Post-commit record for audit
|
|
32
|
-
|
|
33
|
-
transitions:
|
|
34
|
-
- from: PENDING
|
|
35
|
-
to: PENDING
|
|
36
|
-
trigger: New change added
|
|
37
|
-
action: Increment counters, re-evaluate thresholds
|
|
38
|
-
- from: PENDING
|
|
39
|
-
to: READY
|
|
40
|
-
trigger: Threshold met
|
|
41
|
-
action: Prepare merge batch, run pre-merge validation
|
|
42
|
-
- from: READY
|
|
43
|
-
to: MERGED
|
|
44
|
-
trigger: Merge succeeds
|
|
45
|
-
action: Create commit, clear batch, archive
|
|
46
|
-
- from: READY
|
|
47
|
-
to: FAILED
|
|
48
|
-
trigger: Merge fails
|
|
49
|
-
action: Log failure, preserve changes
|
|
50
|
-
- from: FAILED
|
|
51
|
-
to: PENDING
|
|
52
|
-
trigger: Reset
|
|
53
|
-
action: Re-queue changes, clear failure state
|
|
54
|
-
- from: MERGED
|
|
55
|
-
to: ARCHIVED
|
|
56
|
-
trigger: Post-commit
|
|
57
|
-
action: Record batch metadata for audit
|
|
58
|
-
|
|
59
|
-
threshold_strategies:
|
|
60
|
-
strategies:
|
|
61
|
-
- name: count
|
|
62
|
-
parameter: maxChanges
|
|
63
|
-
default: 5
|
|
64
|
-
description: Merge after N individual changes accumulated
|
|
65
|
-
|
|
66
|
-
- name: score
|
|
67
|
-
parameter: maxScore
|
|
68
|
-
default: 10
|
|
69
|
-
description: Merge when cumulative change score >= M
|
|
70
|
-
|
|
71
|
-
- name: time
|
|
72
|
-
parameter: maxAge
|
|
73
|
-
default: "30m"
|
|
74
|
-
description: Merge when oldest pending change exceeds TTL
|
|
75
|
-
|
|
76
|
-
- name: manual
|
|
77
|
-
parameter: null
|
|
78
|
-
default: null
|
|
79
|
-
description: Merge only on explicit user request
|
|
80
|
-
|
|
81
|
-
change_scoring:
|
|
82
|
-
- type: trivial
|
|
83
|
-
score: 1
|
|
84
|
-
example: Typo fix, whitespace, comment update
|
|
85
|
-
- type: minor
|
|
86
|
-
score: 2
|
|
87
|
-
example: Single function change, variable rename
|
|
88
|
-
- type: standard
|
|
89
|
-
score: 3
|
|
90
|
-
example: New function, modified logic flow
|
|
91
|
-
- type: complex
|
|
92
|
-
score: 5
|
|
93
|
-
example: Multi-file change, API modification
|
|
94
|
-
- type: critical
|
|
95
|
-
score: 8
|
|
96
|
-
example: Schema change, breaking change
|
|
97
|
-
|
|
98
|
-
composite_rule: "Multiple thresholds combine with OR logic (first met triggers merge)"
|
|
99
|
-
|
|
100
|
-
merge_rules:
|
|
101
|
-
priority_order:
|
|
102
|
-
- Same-spec affinity — changes referencing same SPEC-ID merge first
|
|
103
|
-
- Same-file grouping — changes to same files merge together
|
|
104
|
-
- Dependency order — changes with dependencies merge in order
|
|
105
|
-
- Chronological — within same priority, merge by creation time
|
|
106
|
-
|
|
107
|
-
conflict_resolution:
|
|
108
|
-
- type: Same line, same file
|
|
109
|
-
strategy: Latest change wins
|
|
110
|
-
fallback: Manual resolution
|
|
111
|
-
- type: Overlapping functions
|
|
112
|
-
strategy: Semantic merge if possible
|
|
113
|
-
fallback: Manual resolution
|
|
114
|
-
- type: Dependency conflict
|
|
115
|
-
strategy: Resolve dependency first
|
|
116
|
-
fallback: Reject batch, split
|
|
117
|
-
|
|
118
|
-
pre_merge_validation:
|
|
119
|
-
- check: All tests pass
|
|
120
|
-
required: true
|
|
121
|
-
- check: No lint errors
|
|
122
|
-
required: true
|
|
123
|
-
- check: No conflicts
|
|
124
|
-
required: true
|
|
125
|
-
- check: AC coverage maintained
|
|
126
|
-
required: false
|
|
127
|
-
note: Recommended
|
|
128
|
-
|
|
129
|
-
atomicity:
|
|
130
|
-
principle: All-or-nothing
|
|
131
|
-
rules:
|
|
132
|
-
- Single commit — each merged batch produces exactly one commit
|
|
133
|
-
- No partial merge — any change failure rejects entire batch
|
|
134
|
-
- Rollback support — failed merges restore all changes to PENDING
|
|
135
|
-
- Isolation — batch merge does not affect changes outside batch
|
|
136
|
-
|
|
137
|
-
rollback:
|
|
138
|
-
on_failure:
|
|
139
|
-
- Log failure with batch details
|
|
140
|
-
- Return all changes to PENDING state
|
|
141
|
-
- Diagnose failing change(s)
|
|
142
|
-
- Options — fix and retry, remove failing change, split batch
|
|
143
|
-
|
|
144
|
-
triggers:
|
|
145
|
-
- trigger: Test failure
|
|
146
|
-
action: Reject entire batch
|
|
147
|
-
automatic: true
|
|
148
|
-
- trigger: Lint error
|
|
149
|
-
action: Reject entire batch
|
|
150
|
-
automatic: true
|
|
151
|
-
- trigger: Merge conflict
|
|
152
|
-
action: Reject and notify
|
|
153
|
-
automatic: true
|
|
154
|
-
- trigger: Build failure
|
|
155
|
-
action: Reject entire batch
|
|
156
|
-
automatic: true
|
|
157
|
-
- trigger: Manual rejection
|
|
158
|
-
action: Return to PENDING
|
|
159
|
-
automatic: false
|
|
20
|
+
description: >
|
|
21
|
+
DEPRECATED: This standard has moved to DevAP (flow orchestration layer).
|
|
22
|
+
Install DevAP and load standards/flow/change-batching-standards.ai.yaml instead.
|
|
160
23
|
|
|
161
24
|
rules:
|
|
162
|
-
- id:
|
|
163
|
-
trigger:
|
|
164
|
-
instruction:
|
|
165
|
-
|
|
25
|
+
- id: deprecation-notice
|
|
26
|
+
trigger: any batch change operation
|
|
27
|
+
instruction: >
|
|
28
|
+
This standard (change-batching-standards.ai.yaml) has been migrated to DevAP.
|
|
29
|
+
For the canonical executable definition, load:
|
|
30
|
+
dev-autopilot/standards/flow/change-batching-standards.ai.yaml
|
|
166
31
|
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
instruction: Group changes by specification or feature for cohesive commits
|
|
170
|
-
priority: recommended
|
|
32
|
+
The human-readable standard remains at:
|
|
33
|
+
universal-dev-standards/core/change-batching-standards.md
|
|
171
34
|
|
|
172
|
-
|
|
173
|
-
trigger: batch reaches READY state
|
|
174
|
-
instruction: Run full validation (tests, lint, conflicts) before merging
|
|
35
|
+
To install DevAP: npm install -g @devap/cli
|
|
175
36
|
priority: required
|
|
176
37
|
|
|
177
38
|
- id: atomic-commits
|
|
178
39
|
trigger: merging a batch
|
|
179
|
-
instruction:
|
|
180
|
-
|
|
40
|
+
instruction: >
|
|
41
|
+
DEPRECATED — load dev-autopilot/standards/flow/change-batching-standards.ai.yaml
|
|
42
|
+
for the current executable batch orchestration rules.
|
|
181
43
|
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
instruction: Return all changes to PENDING state; never lose changes
|
|
44
|
+
Minimal fallback: Enforce all-or-nothing batch merging — either all changes
|
|
45
|
+
commit or none do.
|
|
185
46
|
priority: required
|
|
186
|
-
|
|
187
|
-
- id: log-batch-decisions
|
|
188
|
-
trigger: any batch state transition
|
|
189
|
-
instruction: Log batch decisions (threshold met, merge result) for auditability
|
|
190
|
-
priority: recommended
|
|
191
|
-
|
|
192
|
-
related_standards:
|
|
193
|
-
- checkin-standards.md
|
|
194
|
-
- pipeline-integration-standards.md
|
|
195
|
-
- commit-message-guide.md
|