skill-family-engineering-kit 0.2.0 → 0.3.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/CHANGELOG.md +43 -0
- package/CHANGELOG.zh-CN.md +43 -0
- package/NOTICE +10 -0
- package/README.md +160 -55
- package/README.zh-CN.md +210 -0
- package/candidate/index.mjs +4 -0
- package/candidate/profile-bundle.mjs +1150 -0
- package/candidate/projection-bundle-cli.mjs +64 -0
- package/candidate/skill-naming-cli.mjs +59 -0
- package/candidate/skill-naming-policy.json +46 -0
- package/candidate/skill-naming.mjs +280 -0
- package/docs/404.html +1434 -408
- package/docs/agents/architecture-routing/index.html +1944 -0
- package/docs/agents/capability-catalog.en.json +1564 -0
- package/docs/agents/capability-catalog.json +935 -0
- package/docs/agents/capability-catalog.schema.json +179 -0
- package/docs/agents/capability-catalog.zh-CN.json +1564 -0
- package/docs/agents/index.html +1914 -0
- package/docs/architecture/index.html +1706 -497
- package/docs/assets/javascripts/lunr/tinyseg.js +2 -2
- package/docs/assets/javascripts/lunr/wordcut.js +37 -37
- package/docs/en/agents/architecture-routing/index.html +1944 -0
- package/docs/en/agents/index.html +1925 -0
- package/docs/en/architecture/index.html +2187 -0
- package/docs/en/examples-and-fixtures/index.html +1888 -0
- package/docs/en/help/index.html +2035 -0
- package/docs/en/index.html +1895 -0
- package/docs/en/licensing/index.html +1917 -0
- package/docs/en/migration/index.html +2335 -0
- package/docs/en/quickstart/index.html +1919 -0
- package/docs/en/recipes/adapter-text-closure/index.html +2000 -0
- package/docs/en/recipes/adopt-existing-repository/index.html +1987 -0
- package/docs/en/recipes/deterministic-human-report/index.html +1998 -0
- package/docs/en/recipes/domain-schema-validation/index.html +2009 -0
- package/docs/en/recipes/durable-local-state/index.html +2009 -0
- package/docs/en/recipes/host-profile-integration/index.html +2001 -0
- package/docs/en/recipes/index.html +1877 -0
- package/docs/en/recipes/safe-filesystem-and-atomic-write/index.html +1994 -0
- package/docs/en/reference/api/index.html +1941 -0
- package/docs/en/reference/compatibility/index.html +2036 -0
- package/docs/en/reference/failure-and-side-effect-matrix/index.html +2216 -0
- package/docs/examples-and-fixtures/index.html +1871 -0
- package/docs/git-lifecycle/index.html +1508 -482
- package/docs/help/index.html +1655 -554
- package/docs/index.html +1479 -450
- package/docs/integration/audit/failure-evidence/index.html +1488 -462
- package/docs/integration/audit/independence/index.html +1513 -487
- package/docs/integration/audit/index.html +1514 -488
- package/docs/integration/audit/mutation-taxonomy/index.html +1548 -522
- package/docs/integration/audit/version-compatibility/index.html +1489 -463
- package/docs/licensing/index.html +1917 -0
- package/docs/migration/index.html +1679 -586
- package/docs/public/status/index.html +1542 -516
- package/docs/quickstart/index.html +1589 -539
- package/docs/recipes/adapter-text-closure/index.html +2000 -0
- package/docs/recipes/adopt-existing-repository/index.html +1987 -0
- package/docs/recipes/deterministic-human-report/index.html +1998 -0
- package/docs/recipes/domain-schema-validation/index.html +2009 -0
- package/docs/recipes/durable-local-state/index.html +2009 -0
- package/docs/recipes/host-profile-integration/index.html +2001 -0
- package/docs/recipes/index.html +1877 -0
- package/docs/recipes/safe-filesystem-and-atomic-write/index.html +1994 -0
- package/docs/reference/api/contracts/index.html +2558 -0
- package/docs/reference/api/engineering-kit/index.html +2577 -0
- package/docs/reference/api/harness/index.html +2634 -0
- package/docs/reference/api/index.html +1881 -0
- package/docs/reference/compatibility/index.html +2036 -0
- package/docs/reference/failure-and-side-effect-matrix/index.html +2216 -0
- package/docs/search/search_index.json +1 -1
- package/docs/setup/index.html +1494 -468
- package/docs/sitemap.xml +152 -0
- package/package.json +16 -5
- package/release-notes/0.2.1.yaml +23 -0
- package/release-notes/0.3.0.yaml +25 -0
|
@@ -0,0 +1,2335 @@
|
|
|
1
|
+
|
|
2
|
+
<!doctype html>
|
|
3
|
+
<html lang="zh" class="no-js">
|
|
4
|
+
<head>
|
|
5
|
+
|
|
6
|
+
<meta charset="utf-8">
|
|
7
|
+
<meta name="viewport" content="width=device-width,initial-scale=1">
|
|
8
|
+
|
|
9
|
+
<meta name="description" content="Skill Family 生命周期公共工程基础设施父工作区">
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
<link rel="canonical" href="https://ifoohoo.github.io/skill-family-engineering-kit/en/migration/">
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
<link rel="prev" href="../architecture/">
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
<link rel="next" href="../licensing/">
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
<link rel="icon" href="../../assets/images/favicon.png">
|
|
26
|
+
<meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.7.7">
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
<title>English · Migration - Skill Family Foundation</title>
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
<link rel="stylesheet" href="../../assets/stylesheets/main.ec1eaa64.min.css">
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
<link rel="stylesheet" href="../../assets/stylesheets/palette.ab4e12ef.min.css">
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
<script>__md_scope=new URL("../..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
</head>
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
<body dir="ltr" data-md-color-scheme="default" data-md-color-primary="indigo" data-md-color-accent="indigo">
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
<input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
|
|
70
|
+
<input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
|
|
71
|
+
<label class="md-overlay" for="__drawer"></label>
|
|
72
|
+
<div data-md-component="skip">
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
<a href="#Existing-Repository-Adoption-and-Migration-FND-070" class="md-skip">
|
|
76
|
+
跳转至
|
|
77
|
+
</a>
|
|
78
|
+
|
|
79
|
+
</div>
|
|
80
|
+
<div data-md-component="announce">
|
|
81
|
+
|
|
82
|
+
</div>
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
<header class="md-header md-header--shadow" data-md-component="header">
|
|
90
|
+
<nav class="md-header__inner md-grid" aria-label="页眉">
|
|
91
|
+
<a href="../.." title="Skill Family Foundation" class="md-header__button md-logo" aria-label="Skill Family Foundation" data-md-component="logo">
|
|
92
|
+
|
|
93
|
+
|
|
94
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg>
|
|
95
|
+
|
|
96
|
+
</a>
|
|
97
|
+
<label class="md-header__button md-icon" for="__drawer">
|
|
98
|
+
|
|
99
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"/></svg>
|
|
100
|
+
</label>
|
|
101
|
+
<div class="md-header__title" data-md-component="header-title">
|
|
102
|
+
<div class="md-header__ellipsis">
|
|
103
|
+
<div class="md-header__topic">
|
|
104
|
+
<span class="md-ellipsis">
|
|
105
|
+
Skill Family Foundation
|
|
106
|
+
</span>
|
|
107
|
+
</div>
|
|
108
|
+
<div class="md-header__topic" data-md-component="header-topic">
|
|
109
|
+
<span class="md-ellipsis">
|
|
110
|
+
|
|
111
|
+
English · Migration
|
|
112
|
+
|
|
113
|
+
</span>
|
|
114
|
+
</div>
|
|
115
|
+
</div>
|
|
116
|
+
</div>
|
|
117
|
+
|
|
118
|
+
|
|
119
|
+
<form class="md-header__option" data-md-component="palette">
|
|
120
|
+
|
|
121
|
+
|
|
122
|
+
|
|
123
|
+
|
|
124
|
+
<input class="md-option" data-md-color-media="(prefers-color-scheme: light)" data-md-color-scheme="default" data-md-color-primary="indigo" data-md-color-accent="indigo" aria-label="切换到深色模式" type="radio" name="__palette" id="__palette_0">
|
|
125
|
+
|
|
126
|
+
<label class="md-header__button md-icon" title="切换到深色模式" for="__palette_1" hidden>
|
|
127
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 8a4 4 0 0 0-4 4 4 4 0 0 0 4 4 4 4 0 0 0 4-4 4 4 0 0 0-4-4m0 10a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg>
|
|
128
|
+
</label>
|
|
129
|
+
|
|
130
|
+
|
|
131
|
+
|
|
132
|
+
|
|
133
|
+
|
|
134
|
+
<input class="md-option" data-md-color-media="(prefers-color-scheme: dark)" data-md-color-scheme="slate" data-md-color-primary="indigo" data-md-color-accent="indigo" aria-label="切换到浅色模式" type="radio" name="__palette" id="__palette_1">
|
|
135
|
+
|
|
136
|
+
<label class="md-header__button md-icon" title="切换到浅色模式" for="__palette_0" hidden>
|
|
137
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12s-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6a6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg>
|
|
138
|
+
</label>
|
|
139
|
+
|
|
140
|
+
|
|
141
|
+
</form>
|
|
142
|
+
|
|
143
|
+
|
|
144
|
+
|
|
145
|
+
<script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script>
|
|
146
|
+
|
|
147
|
+
|
|
148
|
+
|
|
149
|
+
|
|
150
|
+
|
|
151
|
+
<label class="md-header__button md-icon" for="__search">
|
|
152
|
+
|
|
153
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg>
|
|
154
|
+
</label>
|
|
155
|
+
<div class="md-search" data-md-component="search" role="dialog">
|
|
156
|
+
<label class="md-search__overlay" for="__search"></label>
|
|
157
|
+
<div class="md-search__inner" role="search">
|
|
158
|
+
<form class="md-search__form" name="search">
|
|
159
|
+
<input type="text" class="md-search__input" name="query" aria-label="搜索" placeholder="搜索" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" required>
|
|
160
|
+
<label class="md-search__icon md-icon" for="__search">
|
|
161
|
+
|
|
162
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg>
|
|
163
|
+
|
|
164
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg>
|
|
165
|
+
</label>
|
|
166
|
+
<nav class="md-search__options" aria-label="查找">
|
|
167
|
+
|
|
168
|
+
<button type="reset" class="md-search__icon md-icon" title="清空当前内容" aria-label="清空当前内容" tabindex="-1">
|
|
169
|
+
|
|
170
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg>
|
|
171
|
+
</button>
|
|
172
|
+
</nav>
|
|
173
|
+
|
|
174
|
+
</form>
|
|
175
|
+
<div class="md-search__output">
|
|
176
|
+
<div class="md-search__scrollwrap" tabindex="0" data-md-scrollfix>
|
|
177
|
+
<div class="md-search-result" data-md-component="search-result">
|
|
178
|
+
<div class="md-search-result__meta">
|
|
179
|
+
正在初始化搜索引擎
|
|
180
|
+
</div>
|
|
181
|
+
<ol class="md-search-result__list" role="presentation"></ol>
|
|
182
|
+
</div>
|
|
183
|
+
</div>
|
|
184
|
+
</div>
|
|
185
|
+
</div>
|
|
186
|
+
</div>
|
|
187
|
+
|
|
188
|
+
|
|
189
|
+
|
|
190
|
+
</nav>
|
|
191
|
+
|
|
192
|
+
</header>
|
|
193
|
+
|
|
194
|
+
<div class="md-container" data-md-component="container">
|
|
195
|
+
|
|
196
|
+
|
|
197
|
+
|
|
198
|
+
|
|
199
|
+
|
|
200
|
+
|
|
201
|
+
<main class="md-main" data-md-component="main">
|
|
202
|
+
<div class="md-main__inner md-grid">
|
|
203
|
+
|
|
204
|
+
|
|
205
|
+
|
|
206
|
+
<div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" >
|
|
207
|
+
<div class="md-sidebar__scrollwrap">
|
|
208
|
+
<div class="md-sidebar__inner">
|
|
209
|
+
|
|
210
|
+
|
|
211
|
+
|
|
212
|
+
|
|
213
|
+
<nav class="md-nav md-nav--primary" aria-label="导航栏" data-md-level="0">
|
|
214
|
+
<label class="md-nav__title" for="__drawer">
|
|
215
|
+
<a href="../.." title="Skill Family Foundation" class="md-nav__button md-logo" aria-label="Skill Family Foundation" data-md-component="logo">
|
|
216
|
+
|
|
217
|
+
|
|
218
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg>
|
|
219
|
+
|
|
220
|
+
</a>
|
|
221
|
+
Skill Family Foundation
|
|
222
|
+
</label>
|
|
223
|
+
|
|
224
|
+
<ul class="md-nav__list" data-md-scrollfix>
|
|
225
|
+
|
|
226
|
+
|
|
227
|
+
|
|
228
|
+
|
|
229
|
+
|
|
230
|
+
|
|
231
|
+
|
|
232
|
+
<li class="md-nav__item">
|
|
233
|
+
<a href="../.." class="md-nav__link">
|
|
234
|
+
|
|
235
|
+
|
|
236
|
+
|
|
237
|
+
<span class="md-ellipsis">
|
|
238
|
+
|
|
239
|
+
|
|
240
|
+
中文 · 首页
|
|
241
|
+
|
|
242
|
+
|
|
243
|
+
|
|
244
|
+
</span>
|
|
245
|
+
|
|
246
|
+
|
|
247
|
+
|
|
248
|
+
</a>
|
|
249
|
+
</li>
|
|
250
|
+
|
|
251
|
+
|
|
252
|
+
|
|
253
|
+
|
|
254
|
+
|
|
255
|
+
|
|
256
|
+
|
|
257
|
+
|
|
258
|
+
|
|
259
|
+
<li class="md-nav__item">
|
|
260
|
+
<a href="../../setup/" class="md-nav__link">
|
|
261
|
+
|
|
262
|
+
|
|
263
|
+
|
|
264
|
+
<span class="md-ellipsis">
|
|
265
|
+
|
|
266
|
+
|
|
267
|
+
中文 · 安装与环境
|
|
268
|
+
|
|
269
|
+
|
|
270
|
+
|
|
271
|
+
</span>
|
|
272
|
+
|
|
273
|
+
|
|
274
|
+
|
|
275
|
+
</a>
|
|
276
|
+
</li>
|
|
277
|
+
|
|
278
|
+
|
|
279
|
+
|
|
280
|
+
|
|
281
|
+
|
|
282
|
+
|
|
283
|
+
|
|
284
|
+
|
|
285
|
+
|
|
286
|
+
<li class="md-nav__item">
|
|
287
|
+
<a href="../../quickstart/" class="md-nav__link">
|
|
288
|
+
|
|
289
|
+
|
|
290
|
+
|
|
291
|
+
<span class="md-ellipsis">
|
|
292
|
+
|
|
293
|
+
|
|
294
|
+
中文 · 快速开始
|
|
295
|
+
|
|
296
|
+
|
|
297
|
+
|
|
298
|
+
</span>
|
|
299
|
+
|
|
300
|
+
|
|
301
|
+
|
|
302
|
+
</a>
|
|
303
|
+
</li>
|
|
304
|
+
|
|
305
|
+
|
|
306
|
+
|
|
307
|
+
|
|
308
|
+
|
|
309
|
+
|
|
310
|
+
|
|
311
|
+
|
|
312
|
+
|
|
313
|
+
<li class="md-nav__item">
|
|
314
|
+
<a href="../../git-lifecycle/" class="md-nav__link">
|
|
315
|
+
|
|
316
|
+
|
|
317
|
+
|
|
318
|
+
<span class="md-ellipsis">
|
|
319
|
+
|
|
320
|
+
|
|
321
|
+
中文 · Git 生命周期指南
|
|
322
|
+
|
|
323
|
+
|
|
324
|
+
|
|
325
|
+
</span>
|
|
326
|
+
|
|
327
|
+
|
|
328
|
+
|
|
329
|
+
</a>
|
|
330
|
+
</li>
|
|
331
|
+
|
|
332
|
+
|
|
333
|
+
|
|
334
|
+
|
|
335
|
+
|
|
336
|
+
|
|
337
|
+
|
|
338
|
+
|
|
339
|
+
|
|
340
|
+
<li class="md-nav__item">
|
|
341
|
+
<a href="../../help/" class="md-nav__link">
|
|
342
|
+
|
|
343
|
+
|
|
344
|
+
|
|
345
|
+
<span class="md-ellipsis">
|
|
346
|
+
|
|
347
|
+
|
|
348
|
+
中文 · 能力与诊断
|
|
349
|
+
|
|
350
|
+
|
|
351
|
+
|
|
352
|
+
</span>
|
|
353
|
+
|
|
354
|
+
|
|
355
|
+
|
|
356
|
+
</a>
|
|
357
|
+
</li>
|
|
358
|
+
|
|
359
|
+
|
|
360
|
+
|
|
361
|
+
|
|
362
|
+
|
|
363
|
+
|
|
364
|
+
|
|
365
|
+
|
|
366
|
+
|
|
367
|
+
<li class="md-nav__item">
|
|
368
|
+
<a href="../../architecture/" class="md-nav__link">
|
|
369
|
+
|
|
370
|
+
|
|
371
|
+
|
|
372
|
+
<span class="md-ellipsis">
|
|
373
|
+
|
|
374
|
+
|
|
375
|
+
中文 · 架构边界
|
|
376
|
+
|
|
377
|
+
|
|
378
|
+
|
|
379
|
+
</span>
|
|
380
|
+
|
|
381
|
+
|
|
382
|
+
|
|
383
|
+
</a>
|
|
384
|
+
</li>
|
|
385
|
+
|
|
386
|
+
|
|
387
|
+
|
|
388
|
+
|
|
389
|
+
|
|
390
|
+
|
|
391
|
+
|
|
392
|
+
|
|
393
|
+
|
|
394
|
+
<li class="md-nav__item">
|
|
395
|
+
<a href="../../public/status/" class="md-nav__link">
|
|
396
|
+
|
|
397
|
+
|
|
398
|
+
|
|
399
|
+
<span class="md-ellipsis">
|
|
400
|
+
|
|
401
|
+
|
|
402
|
+
中文 · 公开状态
|
|
403
|
+
|
|
404
|
+
|
|
405
|
+
|
|
406
|
+
</span>
|
|
407
|
+
|
|
408
|
+
|
|
409
|
+
|
|
410
|
+
</a>
|
|
411
|
+
</li>
|
|
412
|
+
|
|
413
|
+
|
|
414
|
+
|
|
415
|
+
|
|
416
|
+
|
|
417
|
+
|
|
418
|
+
|
|
419
|
+
|
|
420
|
+
|
|
421
|
+
<li class="md-nav__item">
|
|
422
|
+
<a href="../../migration/" class="md-nav__link">
|
|
423
|
+
|
|
424
|
+
|
|
425
|
+
|
|
426
|
+
<span class="md-ellipsis">
|
|
427
|
+
|
|
428
|
+
|
|
429
|
+
中文 · 存量采用与迁移
|
|
430
|
+
|
|
431
|
+
|
|
432
|
+
|
|
433
|
+
</span>
|
|
434
|
+
|
|
435
|
+
|
|
436
|
+
|
|
437
|
+
</a>
|
|
438
|
+
</li>
|
|
439
|
+
|
|
440
|
+
|
|
441
|
+
|
|
442
|
+
|
|
443
|
+
|
|
444
|
+
|
|
445
|
+
|
|
446
|
+
|
|
447
|
+
|
|
448
|
+
<li class="md-nav__item">
|
|
449
|
+
<a href="../../licensing/" class="md-nav__link">
|
|
450
|
+
|
|
451
|
+
|
|
452
|
+
|
|
453
|
+
<span class="md-ellipsis">
|
|
454
|
+
|
|
455
|
+
|
|
456
|
+
中文 · 许可与署名
|
|
457
|
+
|
|
458
|
+
|
|
459
|
+
|
|
460
|
+
</span>
|
|
461
|
+
|
|
462
|
+
|
|
463
|
+
|
|
464
|
+
</a>
|
|
465
|
+
</li>
|
|
466
|
+
|
|
467
|
+
|
|
468
|
+
|
|
469
|
+
|
|
470
|
+
|
|
471
|
+
|
|
472
|
+
|
|
473
|
+
|
|
474
|
+
|
|
475
|
+
<li class="md-nav__item">
|
|
476
|
+
<a href="../../agents/" class="md-nav__link">
|
|
477
|
+
|
|
478
|
+
|
|
479
|
+
|
|
480
|
+
<span class="md-ellipsis">
|
|
481
|
+
|
|
482
|
+
|
|
483
|
+
中文 · 智能体入口
|
|
484
|
+
|
|
485
|
+
|
|
486
|
+
|
|
487
|
+
</span>
|
|
488
|
+
|
|
489
|
+
|
|
490
|
+
|
|
491
|
+
</a>
|
|
492
|
+
</li>
|
|
493
|
+
|
|
494
|
+
|
|
495
|
+
|
|
496
|
+
|
|
497
|
+
|
|
498
|
+
|
|
499
|
+
|
|
500
|
+
|
|
501
|
+
|
|
502
|
+
<li class="md-nav__item">
|
|
503
|
+
<a href="../../agents/architecture-routing/" class="md-nav__link">
|
|
504
|
+
|
|
505
|
+
|
|
506
|
+
|
|
507
|
+
<span class="md-ellipsis">
|
|
508
|
+
|
|
509
|
+
|
|
510
|
+
中文 · 架构路由
|
|
511
|
+
|
|
512
|
+
|
|
513
|
+
|
|
514
|
+
</span>
|
|
515
|
+
|
|
516
|
+
|
|
517
|
+
|
|
518
|
+
</a>
|
|
519
|
+
</li>
|
|
520
|
+
|
|
521
|
+
|
|
522
|
+
|
|
523
|
+
|
|
524
|
+
|
|
525
|
+
|
|
526
|
+
|
|
527
|
+
|
|
528
|
+
|
|
529
|
+
<li class="md-nav__item">
|
|
530
|
+
<a href="../../reference/compatibility/" class="md-nav__link">
|
|
531
|
+
|
|
532
|
+
|
|
533
|
+
|
|
534
|
+
<span class="md-ellipsis">
|
|
535
|
+
|
|
536
|
+
|
|
537
|
+
中文 · 兼容性
|
|
538
|
+
|
|
539
|
+
|
|
540
|
+
|
|
541
|
+
</span>
|
|
542
|
+
|
|
543
|
+
|
|
544
|
+
|
|
545
|
+
</a>
|
|
546
|
+
</li>
|
|
547
|
+
|
|
548
|
+
|
|
549
|
+
|
|
550
|
+
|
|
551
|
+
|
|
552
|
+
|
|
553
|
+
|
|
554
|
+
|
|
555
|
+
|
|
556
|
+
<li class="md-nav__item">
|
|
557
|
+
<a href="../../reference/failure-and-side-effect-matrix/" class="md-nav__link">
|
|
558
|
+
|
|
559
|
+
|
|
560
|
+
|
|
561
|
+
<span class="md-ellipsis">
|
|
562
|
+
|
|
563
|
+
|
|
564
|
+
中文 · 失败与副作用
|
|
565
|
+
|
|
566
|
+
|
|
567
|
+
|
|
568
|
+
</span>
|
|
569
|
+
|
|
570
|
+
|
|
571
|
+
|
|
572
|
+
</a>
|
|
573
|
+
</li>
|
|
574
|
+
|
|
575
|
+
|
|
576
|
+
|
|
577
|
+
|
|
578
|
+
|
|
579
|
+
|
|
580
|
+
|
|
581
|
+
|
|
582
|
+
|
|
583
|
+
<li class="md-nav__item">
|
|
584
|
+
<a href="../../reference/api/" class="md-nav__link">
|
|
585
|
+
|
|
586
|
+
|
|
587
|
+
|
|
588
|
+
<span class="md-ellipsis">
|
|
589
|
+
|
|
590
|
+
|
|
591
|
+
中文 · API 参考
|
|
592
|
+
|
|
593
|
+
|
|
594
|
+
|
|
595
|
+
</span>
|
|
596
|
+
|
|
597
|
+
|
|
598
|
+
|
|
599
|
+
</a>
|
|
600
|
+
</li>
|
|
601
|
+
|
|
602
|
+
|
|
603
|
+
|
|
604
|
+
|
|
605
|
+
|
|
606
|
+
|
|
607
|
+
|
|
608
|
+
|
|
609
|
+
|
|
610
|
+
<li class="md-nav__item">
|
|
611
|
+
<a href="../../reference/api/contracts/" class="md-nav__link">
|
|
612
|
+
|
|
613
|
+
|
|
614
|
+
|
|
615
|
+
<span class="md-ellipsis">
|
|
616
|
+
|
|
617
|
+
|
|
618
|
+
中文 · Contracts API
|
|
619
|
+
|
|
620
|
+
|
|
621
|
+
|
|
622
|
+
</span>
|
|
623
|
+
|
|
624
|
+
|
|
625
|
+
|
|
626
|
+
</a>
|
|
627
|
+
</li>
|
|
628
|
+
|
|
629
|
+
|
|
630
|
+
|
|
631
|
+
|
|
632
|
+
|
|
633
|
+
|
|
634
|
+
|
|
635
|
+
|
|
636
|
+
|
|
637
|
+
<li class="md-nav__item">
|
|
638
|
+
<a href="../../reference/api/harness/" class="md-nav__link">
|
|
639
|
+
|
|
640
|
+
|
|
641
|
+
|
|
642
|
+
<span class="md-ellipsis">
|
|
643
|
+
|
|
644
|
+
|
|
645
|
+
中文 · Harness API
|
|
646
|
+
|
|
647
|
+
|
|
648
|
+
|
|
649
|
+
</span>
|
|
650
|
+
|
|
651
|
+
|
|
652
|
+
|
|
653
|
+
</a>
|
|
654
|
+
</li>
|
|
655
|
+
|
|
656
|
+
|
|
657
|
+
|
|
658
|
+
|
|
659
|
+
|
|
660
|
+
|
|
661
|
+
|
|
662
|
+
|
|
663
|
+
|
|
664
|
+
<li class="md-nav__item">
|
|
665
|
+
<a href="../../reference/api/engineering-kit/" class="md-nav__link">
|
|
666
|
+
|
|
667
|
+
|
|
668
|
+
|
|
669
|
+
<span class="md-ellipsis">
|
|
670
|
+
|
|
671
|
+
|
|
672
|
+
中文 · Engineering Kit API
|
|
673
|
+
|
|
674
|
+
|
|
675
|
+
|
|
676
|
+
</span>
|
|
677
|
+
|
|
678
|
+
|
|
679
|
+
|
|
680
|
+
</a>
|
|
681
|
+
</li>
|
|
682
|
+
|
|
683
|
+
|
|
684
|
+
|
|
685
|
+
|
|
686
|
+
|
|
687
|
+
|
|
688
|
+
|
|
689
|
+
|
|
690
|
+
|
|
691
|
+
<li class="md-nav__item">
|
|
692
|
+
<a href="../../examples-and-fixtures/" class="md-nav__link">
|
|
693
|
+
|
|
694
|
+
|
|
695
|
+
|
|
696
|
+
<span class="md-ellipsis">
|
|
697
|
+
|
|
698
|
+
|
|
699
|
+
中文 · 样例与 Fixture
|
|
700
|
+
|
|
701
|
+
|
|
702
|
+
|
|
703
|
+
</span>
|
|
704
|
+
|
|
705
|
+
|
|
706
|
+
|
|
707
|
+
</a>
|
|
708
|
+
</li>
|
|
709
|
+
|
|
710
|
+
|
|
711
|
+
|
|
712
|
+
|
|
713
|
+
|
|
714
|
+
|
|
715
|
+
|
|
716
|
+
|
|
717
|
+
|
|
718
|
+
<li class="md-nav__item">
|
|
719
|
+
<a href="../../recipes/" class="md-nav__link">
|
|
720
|
+
|
|
721
|
+
|
|
722
|
+
|
|
723
|
+
<span class="md-ellipsis">
|
|
724
|
+
|
|
725
|
+
|
|
726
|
+
中文 · Recipes
|
|
727
|
+
|
|
728
|
+
|
|
729
|
+
|
|
730
|
+
</span>
|
|
731
|
+
|
|
732
|
+
|
|
733
|
+
|
|
734
|
+
</a>
|
|
735
|
+
</li>
|
|
736
|
+
|
|
737
|
+
|
|
738
|
+
|
|
739
|
+
|
|
740
|
+
|
|
741
|
+
|
|
742
|
+
|
|
743
|
+
|
|
744
|
+
|
|
745
|
+
<li class="md-nav__item">
|
|
746
|
+
<a href="../../recipes/adopt-existing-repository/" class="md-nav__link">
|
|
747
|
+
|
|
748
|
+
|
|
749
|
+
|
|
750
|
+
<span class="md-ellipsis">
|
|
751
|
+
|
|
752
|
+
|
|
753
|
+
中文 · 采用存量仓库
|
|
754
|
+
|
|
755
|
+
|
|
756
|
+
|
|
757
|
+
</span>
|
|
758
|
+
|
|
759
|
+
|
|
760
|
+
|
|
761
|
+
</a>
|
|
762
|
+
</li>
|
|
763
|
+
|
|
764
|
+
|
|
765
|
+
|
|
766
|
+
|
|
767
|
+
|
|
768
|
+
|
|
769
|
+
|
|
770
|
+
|
|
771
|
+
|
|
772
|
+
<li class="md-nav__item">
|
|
773
|
+
<a href="../../recipes/safe-filesystem-and-atomic-write/" class="md-nav__link">
|
|
774
|
+
|
|
775
|
+
|
|
776
|
+
|
|
777
|
+
<span class="md-ellipsis">
|
|
778
|
+
|
|
779
|
+
|
|
780
|
+
中文 · 安全文件系统与原子写
|
|
781
|
+
|
|
782
|
+
|
|
783
|
+
|
|
784
|
+
</span>
|
|
785
|
+
|
|
786
|
+
|
|
787
|
+
|
|
788
|
+
</a>
|
|
789
|
+
</li>
|
|
790
|
+
|
|
791
|
+
|
|
792
|
+
|
|
793
|
+
|
|
794
|
+
|
|
795
|
+
|
|
796
|
+
|
|
797
|
+
|
|
798
|
+
|
|
799
|
+
<li class="md-nav__item">
|
|
800
|
+
<a href="../../recipes/adapter-text-closure/" class="md-nav__link">
|
|
801
|
+
|
|
802
|
+
|
|
803
|
+
|
|
804
|
+
<span class="md-ellipsis">
|
|
805
|
+
|
|
806
|
+
|
|
807
|
+
中文 · Adapter 文本闭包
|
|
808
|
+
|
|
809
|
+
|
|
810
|
+
|
|
811
|
+
</span>
|
|
812
|
+
|
|
813
|
+
|
|
814
|
+
|
|
815
|
+
</a>
|
|
816
|
+
</li>
|
|
817
|
+
|
|
818
|
+
|
|
819
|
+
|
|
820
|
+
|
|
821
|
+
|
|
822
|
+
|
|
823
|
+
|
|
824
|
+
|
|
825
|
+
|
|
826
|
+
<li class="md-nav__item">
|
|
827
|
+
<a href="../../recipes/deterministic-human-report/" class="md-nav__link">
|
|
828
|
+
|
|
829
|
+
|
|
830
|
+
|
|
831
|
+
<span class="md-ellipsis">
|
|
832
|
+
|
|
833
|
+
|
|
834
|
+
中文 · 确定性人类报告
|
|
835
|
+
|
|
836
|
+
|
|
837
|
+
|
|
838
|
+
</span>
|
|
839
|
+
|
|
840
|
+
|
|
841
|
+
|
|
842
|
+
</a>
|
|
843
|
+
</li>
|
|
844
|
+
|
|
845
|
+
|
|
846
|
+
|
|
847
|
+
|
|
848
|
+
|
|
849
|
+
|
|
850
|
+
|
|
851
|
+
|
|
852
|
+
|
|
853
|
+
<li class="md-nav__item">
|
|
854
|
+
<a href="../../recipes/durable-local-state/" class="md-nav__link">
|
|
855
|
+
|
|
856
|
+
|
|
857
|
+
|
|
858
|
+
<span class="md-ellipsis">
|
|
859
|
+
|
|
860
|
+
|
|
861
|
+
中文 · 持久本地状态
|
|
862
|
+
|
|
863
|
+
|
|
864
|
+
|
|
865
|
+
</span>
|
|
866
|
+
|
|
867
|
+
|
|
868
|
+
|
|
869
|
+
</a>
|
|
870
|
+
</li>
|
|
871
|
+
|
|
872
|
+
|
|
873
|
+
|
|
874
|
+
|
|
875
|
+
|
|
876
|
+
|
|
877
|
+
|
|
878
|
+
|
|
879
|
+
|
|
880
|
+
<li class="md-nav__item">
|
|
881
|
+
<a href="../../recipes/host-profile-integration/" class="md-nav__link">
|
|
882
|
+
|
|
883
|
+
|
|
884
|
+
|
|
885
|
+
<span class="md-ellipsis">
|
|
886
|
+
|
|
887
|
+
|
|
888
|
+
中文 · 宿主 Profile 集成
|
|
889
|
+
|
|
890
|
+
|
|
891
|
+
|
|
892
|
+
</span>
|
|
893
|
+
|
|
894
|
+
|
|
895
|
+
|
|
896
|
+
</a>
|
|
897
|
+
</li>
|
|
898
|
+
|
|
899
|
+
|
|
900
|
+
|
|
901
|
+
|
|
902
|
+
|
|
903
|
+
|
|
904
|
+
|
|
905
|
+
|
|
906
|
+
|
|
907
|
+
<li class="md-nav__item">
|
|
908
|
+
<a href="../../recipes/domain-schema-validation/" class="md-nav__link">
|
|
909
|
+
|
|
910
|
+
|
|
911
|
+
|
|
912
|
+
<span class="md-ellipsis">
|
|
913
|
+
|
|
914
|
+
|
|
915
|
+
中文 · 领域 Schema 校验
|
|
916
|
+
|
|
917
|
+
|
|
918
|
+
|
|
919
|
+
</span>
|
|
920
|
+
|
|
921
|
+
|
|
922
|
+
|
|
923
|
+
</a>
|
|
924
|
+
</li>
|
|
925
|
+
|
|
926
|
+
|
|
927
|
+
|
|
928
|
+
|
|
929
|
+
|
|
930
|
+
|
|
931
|
+
|
|
932
|
+
|
|
933
|
+
|
|
934
|
+
<li class="md-nav__item">
|
|
935
|
+
<a href="../" class="md-nav__link">
|
|
936
|
+
|
|
937
|
+
|
|
938
|
+
|
|
939
|
+
<span class="md-ellipsis">
|
|
940
|
+
|
|
941
|
+
|
|
942
|
+
English · Home
|
|
943
|
+
|
|
944
|
+
|
|
945
|
+
|
|
946
|
+
</span>
|
|
947
|
+
|
|
948
|
+
|
|
949
|
+
|
|
950
|
+
</a>
|
|
951
|
+
</li>
|
|
952
|
+
|
|
953
|
+
|
|
954
|
+
|
|
955
|
+
|
|
956
|
+
|
|
957
|
+
|
|
958
|
+
|
|
959
|
+
|
|
960
|
+
|
|
961
|
+
<li class="md-nav__item">
|
|
962
|
+
<a href="../quickstart/" class="md-nav__link">
|
|
963
|
+
|
|
964
|
+
|
|
965
|
+
|
|
966
|
+
<span class="md-ellipsis">
|
|
967
|
+
|
|
968
|
+
|
|
969
|
+
English · Quickstart
|
|
970
|
+
|
|
971
|
+
|
|
972
|
+
|
|
973
|
+
</span>
|
|
974
|
+
|
|
975
|
+
|
|
976
|
+
|
|
977
|
+
</a>
|
|
978
|
+
</li>
|
|
979
|
+
|
|
980
|
+
|
|
981
|
+
|
|
982
|
+
|
|
983
|
+
|
|
984
|
+
|
|
985
|
+
|
|
986
|
+
|
|
987
|
+
|
|
988
|
+
<li class="md-nav__item">
|
|
989
|
+
<a href="../help/" class="md-nav__link">
|
|
990
|
+
|
|
991
|
+
|
|
992
|
+
|
|
993
|
+
<span class="md-ellipsis">
|
|
994
|
+
|
|
995
|
+
|
|
996
|
+
English · Capabilities and diagnostics
|
|
997
|
+
|
|
998
|
+
|
|
999
|
+
|
|
1000
|
+
</span>
|
|
1001
|
+
|
|
1002
|
+
|
|
1003
|
+
|
|
1004
|
+
</a>
|
|
1005
|
+
</li>
|
|
1006
|
+
|
|
1007
|
+
|
|
1008
|
+
|
|
1009
|
+
|
|
1010
|
+
|
|
1011
|
+
|
|
1012
|
+
|
|
1013
|
+
|
|
1014
|
+
|
|
1015
|
+
<li class="md-nav__item">
|
|
1016
|
+
<a href="../architecture/" class="md-nav__link">
|
|
1017
|
+
|
|
1018
|
+
|
|
1019
|
+
|
|
1020
|
+
<span class="md-ellipsis">
|
|
1021
|
+
|
|
1022
|
+
|
|
1023
|
+
English · Architecture
|
|
1024
|
+
|
|
1025
|
+
|
|
1026
|
+
|
|
1027
|
+
</span>
|
|
1028
|
+
|
|
1029
|
+
|
|
1030
|
+
|
|
1031
|
+
</a>
|
|
1032
|
+
</li>
|
|
1033
|
+
|
|
1034
|
+
|
|
1035
|
+
|
|
1036
|
+
|
|
1037
|
+
|
|
1038
|
+
|
|
1039
|
+
|
|
1040
|
+
|
|
1041
|
+
|
|
1042
|
+
|
|
1043
|
+
|
|
1044
|
+
<li class="md-nav__item md-nav__item--active">
|
|
1045
|
+
|
|
1046
|
+
<input class="md-nav__toggle md-toggle" type="checkbox" id="__toc">
|
|
1047
|
+
|
|
1048
|
+
|
|
1049
|
+
|
|
1050
|
+
|
|
1051
|
+
|
|
1052
|
+
<label class="md-nav__link md-nav__link--active" for="__toc">
|
|
1053
|
+
|
|
1054
|
+
|
|
1055
|
+
|
|
1056
|
+
<span class="md-ellipsis">
|
|
1057
|
+
|
|
1058
|
+
|
|
1059
|
+
English · Migration
|
|
1060
|
+
|
|
1061
|
+
|
|
1062
|
+
|
|
1063
|
+
</span>
|
|
1064
|
+
|
|
1065
|
+
|
|
1066
|
+
|
|
1067
|
+
<span class="md-nav__icon md-icon"></span>
|
|
1068
|
+
</label>
|
|
1069
|
+
|
|
1070
|
+
<a href="./" class="md-nav__link md-nav__link--active">
|
|
1071
|
+
|
|
1072
|
+
|
|
1073
|
+
|
|
1074
|
+
<span class="md-ellipsis">
|
|
1075
|
+
|
|
1076
|
+
|
|
1077
|
+
English · Migration
|
|
1078
|
+
|
|
1079
|
+
|
|
1080
|
+
|
|
1081
|
+
</span>
|
|
1082
|
+
|
|
1083
|
+
|
|
1084
|
+
|
|
1085
|
+
</a>
|
|
1086
|
+
|
|
1087
|
+
|
|
1088
|
+
|
|
1089
|
+
<nav class="md-nav md-nav--secondary" aria-label="目录">
|
|
1090
|
+
|
|
1091
|
+
|
|
1092
|
+
|
|
1093
|
+
|
|
1094
|
+
|
|
1095
|
+
|
|
1096
|
+
<label class="md-nav__title" for="__toc">
|
|
1097
|
+
<span class="md-nav__icon md-icon"></span>
|
|
1098
|
+
目录
|
|
1099
|
+
</label>
|
|
1100
|
+
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
|
|
1101
|
+
|
|
1102
|
+
<li class="md-nav__item">
|
|
1103
|
+
<a href="#Classification-Method" class="md-nav__link">
|
|
1104
|
+
<span class="md-ellipsis">
|
|
1105
|
+
|
|
1106
|
+
Classification Method
|
|
1107
|
+
|
|
1108
|
+
</span>
|
|
1109
|
+
</a>
|
|
1110
|
+
|
|
1111
|
+
</li>
|
|
1112
|
+
|
|
1113
|
+
<li class="md-nav__item">
|
|
1114
|
+
<a href="#Principles" class="md-nav__link">
|
|
1115
|
+
<span class="md-ellipsis">
|
|
1116
|
+
|
|
1117
|
+
Principles
|
|
1118
|
+
|
|
1119
|
+
</span>
|
|
1120
|
+
</a>
|
|
1121
|
+
|
|
1122
|
+
</li>
|
|
1123
|
+
|
|
1124
|
+
<li class="md-nav__item">
|
|
1125
|
+
<a href="#adopt-plan-Output-Structure" class="md-nav__link">
|
|
1126
|
+
<span class="md-ellipsis">
|
|
1127
|
+
|
|
1128
|
+
adopt-plan Output Structure
|
|
1129
|
+
|
|
1130
|
+
</span>
|
|
1131
|
+
</a>
|
|
1132
|
+
|
|
1133
|
+
</li>
|
|
1134
|
+
|
|
1135
|
+
<li class="md-nav__item">
|
|
1136
|
+
<a href="#Migration-Manifest-skill-familymigrationjson" class="md-nav__link">
|
|
1137
|
+
<span class="md-ellipsis">
|
|
1138
|
+
|
|
1139
|
+
Migration Manifest (skill-family.migration.json)
|
|
1140
|
+
|
|
1141
|
+
</span>
|
|
1142
|
+
</a>
|
|
1143
|
+
|
|
1144
|
+
</li>
|
|
1145
|
+
|
|
1146
|
+
<li class="md-nav__item">
|
|
1147
|
+
<a href="#Migration-State-Machine" class="md-nav__link">
|
|
1148
|
+
<span class="md-ellipsis">
|
|
1149
|
+
|
|
1150
|
+
Migration State Machine
|
|
1151
|
+
|
|
1152
|
+
</span>
|
|
1153
|
+
</a>
|
|
1154
|
+
|
|
1155
|
+
</li>
|
|
1156
|
+
|
|
1157
|
+
<li class="md-nav__item">
|
|
1158
|
+
<a href="#Completion-Gate" class="md-nav__link">
|
|
1159
|
+
<span class="md-ellipsis">
|
|
1160
|
+
|
|
1161
|
+
Completion Gate
|
|
1162
|
+
|
|
1163
|
+
</span>
|
|
1164
|
+
</a>
|
|
1165
|
+
|
|
1166
|
+
<nav class="md-nav" aria-label="Completion Gate">
|
|
1167
|
+
<ul class="md-nav__list">
|
|
1168
|
+
|
|
1169
|
+
<li class="md-nav__item">
|
|
1170
|
+
<a href="#Mandatory-Negative-Cases-completion-must-be-false-in-any-scenario" class="md-nav__link">
|
|
1171
|
+
<span class="md-ellipsis">
|
|
1172
|
+
|
|
1173
|
+
Mandatory Negative Cases (completion must be false in any scenario)
|
|
1174
|
+
|
|
1175
|
+
</span>
|
|
1176
|
+
</a>
|
|
1177
|
+
|
|
1178
|
+
</li>
|
|
1179
|
+
|
|
1180
|
+
</ul>
|
|
1181
|
+
</nav>
|
|
1182
|
+
|
|
1183
|
+
</li>
|
|
1184
|
+
|
|
1185
|
+
<li class="md-nav__item">
|
|
1186
|
+
<a href="#Legacy-Removal-and-Rollback-Contract" class="md-nav__link">
|
|
1187
|
+
<span class="md-ellipsis">
|
|
1188
|
+
|
|
1189
|
+
Legacy-Removal and Rollback Contract
|
|
1190
|
+
|
|
1191
|
+
</span>
|
|
1192
|
+
</a>
|
|
1193
|
+
|
|
1194
|
+
</li>
|
|
1195
|
+
|
|
1196
|
+
<li class="md-nav__item">
|
|
1197
|
+
<a href="#Ten-Field-Hand-off-Draft" class="md-nav__link">
|
|
1198
|
+
<span class="md-ellipsis">
|
|
1199
|
+
|
|
1200
|
+
Ten-Field Hand-off Draft
|
|
1201
|
+
|
|
1202
|
+
</span>
|
|
1203
|
+
</a>
|
|
1204
|
+
|
|
1205
|
+
<nav class="md-nav" aria-label="Ten-Field Hand-off Draft">
|
|
1206
|
+
<ul class="md-nav__list">
|
|
1207
|
+
|
|
1208
|
+
<li class="md-nav__item">
|
|
1209
|
+
<a href="#INCOMPLETE-Blocking-Rules" class="md-nav__link">
|
|
1210
|
+
<span class="md-ellipsis">
|
|
1211
|
+
|
|
1212
|
+
INCOMPLETE Blocking Rules
|
|
1213
|
+
|
|
1214
|
+
</span>
|
|
1215
|
+
</a>
|
|
1216
|
+
|
|
1217
|
+
</li>
|
|
1218
|
+
|
|
1219
|
+
<li class="md-nav__item">
|
|
1220
|
+
<a href="#Binding" class="md-nav__link">
|
|
1221
|
+
<span class="md-ellipsis">
|
|
1222
|
+
|
|
1223
|
+
Binding
|
|
1224
|
+
|
|
1225
|
+
</span>
|
|
1226
|
+
</a>
|
|
1227
|
+
|
|
1228
|
+
</li>
|
|
1229
|
+
|
|
1230
|
+
<li class="md-nav__item">
|
|
1231
|
+
<a href="#Rendering-Boundary" class="md-nav__link">
|
|
1232
|
+
<span class="md-ellipsis">
|
|
1233
|
+
|
|
1234
|
+
Rendering Boundary
|
|
1235
|
+
|
|
1236
|
+
</span>
|
|
1237
|
+
</a>
|
|
1238
|
+
|
|
1239
|
+
</li>
|
|
1240
|
+
|
|
1241
|
+
</ul>
|
|
1242
|
+
</nav>
|
|
1243
|
+
|
|
1244
|
+
</li>
|
|
1245
|
+
|
|
1246
|
+
<li class="md-nav__item">
|
|
1247
|
+
<a href="#Hazard-Class-Fixtures" class="md-nav__link">
|
|
1248
|
+
<span class="md-ellipsis">
|
|
1249
|
+
|
|
1250
|
+
Hazard-Class Fixtures
|
|
1251
|
+
|
|
1252
|
+
</span>
|
|
1253
|
+
</a>
|
|
1254
|
+
|
|
1255
|
+
</li>
|
|
1256
|
+
|
|
1257
|
+
</ul>
|
|
1258
|
+
|
|
1259
|
+
</nav>
|
|
1260
|
+
|
|
1261
|
+
</li>
|
|
1262
|
+
|
|
1263
|
+
|
|
1264
|
+
|
|
1265
|
+
|
|
1266
|
+
|
|
1267
|
+
|
|
1268
|
+
|
|
1269
|
+
|
|
1270
|
+
|
|
1271
|
+
<li class="md-nav__item">
|
|
1272
|
+
<a href="../licensing/" class="md-nav__link">
|
|
1273
|
+
|
|
1274
|
+
|
|
1275
|
+
|
|
1276
|
+
<span class="md-ellipsis">
|
|
1277
|
+
|
|
1278
|
+
|
|
1279
|
+
English · Licensing
|
|
1280
|
+
|
|
1281
|
+
|
|
1282
|
+
|
|
1283
|
+
</span>
|
|
1284
|
+
|
|
1285
|
+
|
|
1286
|
+
|
|
1287
|
+
</a>
|
|
1288
|
+
</li>
|
|
1289
|
+
|
|
1290
|
+
|
|
1291
|
+
|
|
1292
|
+
|
|
1293
|
+
|
|
1294
|
+
|
|
1295
|
+
|
|
1296
|
+
|
|
1297
|
+
|
|
1298
|
+
<li class="md-nav__item">
|
|
1299
|
+
<a href="../agents/" class="md-nav__link">
|
|
1300
|
+
|
|
1301
|
+
|
|
1302
|
+
|
|
1303
|
+
<span class="md-ellipsis">
|
|
1304
|
+
|
|
1305
|
+
|
|
1306
|
+
English · Agent entry
|
|
1307
|
+
|
|
1308
|
+
|
|
1309
|
+
|
|
1310
|
+
</span>
|
|
1311
|
+
|
|
1312
|
+
|
|
1313
|
+
|
|
1314
|
+
</a>
|
|
1315
|
+
</li>
|
|
1316
|
+
|
|
1317
|
+
|
|
1318
|
+
|
|
1319
|
+
|
|
1320
|
+
|
|
1321
|
+
|
|
1322
|
+
|
|
1323
|
+
|
|
1324
|
+
|
|
1325
|
+
<li class="md-nav__item">
|
|
1326
|
+
<a href="../agents/architecture-routing/" class="md-nav__link">
|
|
1327
|
+
|
|
1328
|
+
|
|
1329
|
+
|
|
1330
|
+
<span class="md-ellipsis">
|
|
1331
|
+
|
|
1332
|
+
|
|
1333
|
+
English · Architecture routing
|
|
1334
|
+
|
|
1335
|
+
|
|
1336
|
+
|
|
1337
|
+
</span>
|
|
1338
|
+
|
|
1339
|
+
|
|
1340
|
+
|
|
1341
|
+
</a>
|
|
1342
|
+
</li>
|
|
1343
|
+
|
|
1344
|
+
|
|
1345
|
+
|
|
1346
|
+
|
|
1347
|
+
|
|
1348
|
+
|
|
1349
|
+
|
|
1350
|
+
|
|
1351
|
+
|
|
1352
|
+
<li class="md-nav__item">
|
|
1353
|
+
<a href="../reference/compatibility/" class="md-nav__link">
|
|
1354
|
+
|
|
1355
|
+
|
|
1356
|
+
|
|
1357
|
+
<span class="md-ellipsis">
|
|
1358
|
+
|
|
1359
|
+
|
|
1360
|
+
English · Compatibility
|
|
1361
|
+
|
|
1362
|
+
|
|
1363
|
+
|
|
1364
|
+
</span>
|
|
1365
|
+
|
|
1366
|
+
|
|
1367
|
+
|
|
1368
|
+
</a>
|
|
1369
|
+
</li>
|
|
1370
|
+
|
|
1371
|
+
|
|
1372
|
+
|
|
1373
|
+
|
|
1374
|
+
|
|
1375
|
+
|
|
1376
|
+
|
|
1377
|
+
|
|
1378
|
+
|
|
1379
|
+
<li class="md-nav__item">
|
|
1380
|
+
<a href="../reference/failure-and-side-effect-matrix/" class="md-nav__link">
|
|
1381
|
+
|
|
1382
|
+
|
|
1383
|
+
|
|
1384
|
+
<span class="md-ellipsis">
|
|
1385
|
+
|
|
1386
|
+
|
|
1387
|
+
English · Failures and side effects
|
|
1388
|
+
|
|
1389
|
+
|
|
1390
|
+
|
|
1391
|
+
</span>
|
|
1392
|
+
|
|
1393
|
+
|
|
1394
|
+
|
|
1395
|
+
</a>
|
|
1396
|
+
</li>
|
|
1397
|
+
|
|
1398
|
+
|
|
1399
|
+
|
|
1400
|
+
|
|
1401
|
+
|
|
1402
|
+
|
|
1403
|
+
|
|
1404
|
+
|
|
1405
|
+
|
|
1406
|
+
<li class="md-nav__item">
|
|
1407
|
+
<a href="../reference/api/" class="md-nav__link">
|
|
1408
|
+
|
|
1409
|
+
|
|
1410
|
+
|
|
1411
|
+
<span class="md-ellipsis">
|
|
1412
|
+
|
|
1413
|
+
|
|
1414
|
+
English · API reference
|
|
1415
|
+
|
|
1416
|
+
|
|
1417
|
+
|
|
1418
|
+
</span>
|
|
1419
|
+
|
|
1420
|
+
|
|
1421
|
+
|
|
1422
|
+
</a>
|
|
1423
|
+
</li>
|
|
1424
|
+
|
|
1425
|
+
|
|
1426
|
+
|
|
1427
|
+
|
|
1428
|
+
|
|
1429
|
+
|
|
1430
|
+
|
|
1431
|
+
|
|
1432
|
+
|
|
1433
|
+
<li class="md-nav__item">
|
|
1434
|
+
<a href="../examples-and-fixtures/" class="md-nav__link">
|
|
1435
|
+
|
|
1436
|
+
|
|
1437
|
+
|
|
1438
|
+
<span class="md-ellipsis">
|
|
1439
|
+
|
|
1440
|
+
|
|
1441
|
+
English · Examples and fixtures
|
|
1442
|
+
|
|
1443
|
+
|
|
1444
|
+
|
|
1445
|
+
</span>
|
|
1446
|
+
|
|
1447
|
+
|
|
1448
|
+
|
|
1449
|
+
</a>
|
|
1450
|
+
</li>
|
|
1451
|
+
|
|
1452
|
+
|
|
1453
|
+
|
|
1454
|
+
|
|
1455
|
+
|
|
1456
|
+
|
|
1457
|
+
|
|
1458
|
+
|
|
1459
|
+
|
|
1460
|
+
<li class="md-nav__item">
|
|
1461
|
+
<a href="../recipes/" class="md-nav__link">
|
|
1462
|
+
|
|
1463
|
+
|
|
1464
|
+
|
|
1465
|
+
<span class="md-ellipsis">
|
|
1466
|
+
|
|
1467
|
+
|
|
1468
|
+
English · Recipes
|
|
1469
|
+
|
|
1470
|
+
|
|
1471
|
+
|
|
1472
|
+
</span>
|
|
1473
|
+
|
|
1474
|
+
|
|
1475
|
+
|
|
1476
|
+
</a>
|
|
1477
|
+
</li>
|
|
1478
|
+
|
|
1479
|
+
|
|
1480
|
+
|
|
1481
|
+
|
|
1482
|
+
|
|
1483
|
+
|
|
1484
|
+
|
|
1485
|
+
|
|
1486
|
+
|
|
1487
|
+
<li class="md-nav__item">
|
|
1488
|
+
<a href="../recipes/adopt-existing-repository/" class="md-nav__link">
|
|
1489
|
+
|
|
1490
|
+
|
|
1491
|
+
|
|
1492
|
+
<span class="md-ellipsis">
|
|
1493
|
+
|
|
1494
|
+
|
|
1495
|
+
English · Adopt an existing repository
|
|
1496
|
+
|
|
1497
|
+
|
|
1498
|
+
|
|
1499
|
+
</span>
|
|
1500
|
+
|
|
1501
|
+
|
|
1502
|
+
|
|
1503
|
+
</a>
|
|
1504
|
+
</li>
|
|
1505
|
+
|
|
1506
|
+
|
|
1507
|
+
|
|
1508
|
+
|
|
1509
|
+
|
|
1510
|
+
|
|
1511
|
+
|
|
1512
|
+
|
|
1513
|
+
|
|
1514
|
+
<li class="md-nav__item">
|
|
1515
|
+
<a href="../recipes/safe-filesystem-and-atomic-write/" class="md-nav__link">
|
|
1516
|
+
|
|
1517
|
+
|
|
1518
|
+
|
|
1519
|
+
<span class="md-ellipsis">
|
|
1520
|
+
|
|
1521
|
+
|
|
1522
|
+
English · Safe filesystem and atomic write
|
|
1523
|
+
|
|
1524
|
+
|
|
1525
|
+
|
|
1526
|
+
</span>
|
|
1527
|
+
|
|
1528
|
+
|
|
1529
|
+
|
|
1530
|
+
</a>
|
|
1531
|
+
</li>
|
|
1532
|
+
|
|
1533
|
+
|
|
1534
|
+
|
|
1535
|
+
|
|
1536
|
+
|
|
1537
|
+
|
|
1538
|
+
|
|
1539
|
+
|
|
1540
|
+
|
|
1541
|
+
<li class="md-nav__item">
|
|
1542
|
+
<a href="../recipes/adapter-text-closure/" class="md-nav__link">
|
|
1543
|
+
|
|
1544
|
+
|
|
1545
|
+
|
|
1546
|
+
<span class="md-ellipsis">
|
|
1547
|
+
|
|
1548
|
+
|
|
1549
|
+
English · Adapter text closure
|
|
1550
|
+
|
|
1551
|
+
|
|
1552
|
+
|
|
1553
|
+
</span>
|
|
1554
|
+
|
|
1555
|
+
|
|
1556
|
+
|
|
1557
|
+
</a>
|
|
1558
|
+
</li>
|
|
1559
|
+
|
|
1560
|
+
|
|
1561
|
+
|
|
1562
|
+
|
|
1563
|
+
|
|
1564
|
+
|
|
1565
|
+
|
|
1566
|
+
|
|
1567
|
+
|
|
1568
|
+
<li class="md-nav__item">
|
|
1569
|
+
<a href="../recipes/deterministic-human-report/" class="md-nav__link">
|
|
1570
|
+
|
|
1571
|
+
|
|
1572
|
+
|
|
1573
|
+
<span class="md-ellipsis">
|
|
1574
|
+
|
|
1575
|
+
|
|
1576
|
+
English · Deterministic human report
|
|
1577
|
+
|
|
1578
|
+
|
|
1579
|
+
|
|
1580
|
+
</span>
|
|
1581
|
+
|
|
1582
|
+
|
|
1583
|
+
|
|
1584
|
+
</a>
|
|
1585
|
+
</li>
|
|
1586
|
+
|
|
1587
|
+
|
|
1588
|
+
|
|
1589
|
+
|
|
1590
|
+
|
|
1591
|
+
|
|
1592
|
+
|
|
1593
|
+
|
|
1594
|
+
|
|
1595
|
+
<li class="md-nav__item">
|
|
1596
|
+
<a href="../recipes/durable-local-state/" class="md-nav__link">
|
|
1597
|
+
|
|
1598
|
+
|
|
1599
|
+
|
|
1600
|
+
<span class="md-ellipsis">
|
|
1601
|
+
|
|
1602
|
+
|
|
1603
|
+
English · Durable local state
|
|
1604
|
+
|
|
1605
|
+
|
|
1606
|
+
|
|
1607
|
+
</span>
|
|
1608
|
+
|
|
1609
|
+
|
|
1610
|
+
|
|
1611
|
+
</a>
|
|
1612
|
+
</li>
|
|
1613
|
+
|
|
1614
|
+
|
|
1615
|
+
|
|
1616
|
+
|
|
1617
|
+
|
|
1618
|
+
|
|
1619
|
+
|
|
1620
|
+
|
|
1621
|
+
|
|
1622
|
+
<li class="md-nav__item">
|
|
1623
|
+
<a href="../recipes/host-profile-integration/" class="md-nav__link">
|
|
1624
|
+
|
|
1625
|
+
|
|
1626
|
+
|
|
1627
|
+
<span class="md-ellipsis">
|
|
1628
|
+
|
|
1629
|
+
|
|
1630
|
+
English · Host Profile integration
|
|
1631
|
+
|
|
1632
|
+
|
|
1633
|
+
|
|
1634
|
+
</span>
|
|
1635
|
+
|
|
1636
|
+
|
|
1637
|
+
|
|
1638
|
+
</a>
|
|
1639
|
+
</li>
|
|
1640
|
+
|
|
1641
|
+
|
|
1642
|
+
|
|
1643
|
+
|
|
1644
|
+
|
|
1645
|
+
|
|
1646
|
+
|
|
1647
|
+
|
|
1648
|
+
|
|
1649
|
+
<li class="md-nav__item">
|
|
1650
|
+
<a href="../recipes/domain-schema-validation/" class="md-nav__link">
|
|
1651
|
+
|
|
1652
|
+
|
|
1653
|
+
|
|
1654
|
+
<span class="md-ellipsis">
|
|
1655
|
+
|
|
1656
|
+
|
|
1657
|
+
English · Domain Schema validation
|
|
1658
|
+
|
|
1659
|
+
|
|
1660
|
+
|
|
1661
|
+
</span>
|
|
1662
|
+
|
|
1663
|
+
|
|
1664
|
+
|
|
1665
|
+
</a>
|
|
1666
|
+
</li>
|
|
1667
|
+
|
|
1668
|
+
|
|
1669
|
+
|
|
1670
|
+
|
|
1671
|
+
|
|
1672
|
+
|
|
1673
|
+
|
|
1674
|
+
|
|
1675
|
+
|
|
1676
|
+
<li class="md-nav__item">
|
|
1677
|
+
<a href="../../integration/audit/" class="md-nav__link">
|
|
1678
|
+
|
|
1679
|
+
|
|
1680
|
+
|
|
1681
|
+
<span class="md-ellipsis">
|
|
1682
|
+
|
|
1683
|
+
|
|
1684
|
+
审计集成 · 入口
|
|
1685
|
+
|
|
1686
|
+
|
|
1687
|
+
|
|
1688
|
+
</span>
|
|
1689
|
+
|
|
1690
|
+
|
|
1691
|
+
|
|
1692
|
+
</a>
|
|
1693
|
+
</li>
|
|
1694
|
+
|
|
1695
|
+
|
|
1696
|
+
|
|
1697
|
+
|
|
1698
|
+
|
|
1699
|
+
|
|
1700
|
+
|
|
1701
|
+
|
|
1702
|
+
|
|
1703
|
+
<li class="md-nav__item">
|
|
1704
|
+
<a href="../../integration/audit/mutation-taxonomy/" class="md-nav__link">
|
|
1705
|
+
|
|
1706
|
+
|
|
1707
|
+
|
|
1708
|
+
<span class="md-ellipsis">
|
|
1709
|
+
|
|
1710
|
+
|
|
1711
|
+
审计集成 · 变异分类学
|
|
1712
|
+
|
|
1713
|
+
|
|
1714
|
+
|
|
1715
|
+
</span>
|
|
1716
|
+
|
|
1717
|
+
|
|
1718
|
+
|
|
1719
|
+
</a>
|
|
1720
|
+
</li>
|
|
1721
|
+
|
|
1722
|
+
|
|
1723
|
+
|
|
1724
|
+
|
|
1725
|
+
|
|
1726
|
+
|
|
1727
|
+
|
|
1728
|
+
|
|
1729
|
+
|
|
1730
|
+
<li class="md-nav__item">
|
|
1731
|
+
<a href="../../integration/audit/independence/" class="md-nav__link">
|
|
1732
|
+
|
|
1733
|
+
|
|
1734
|
+
|
|
1735
|
+
<span class="md-ellipsis">
|
|
1736
|
+
|
|
1737
|
+
|
|
1738
|
+
审计集成 · 独立性证明
|
|
1739
|
+
|
|
1740
|
+
|
|
1741
|
+
|
|
1742
|
+
</span>
|
|
1743
|
+
|
|
1744
|
+
|
|
1745
|
+
|
|
1746
|
+
</a>
|
|
1747
|
+
</li>
|
|
1748
|
+
|
|
1749
|
+
|
|
1750
|
+
|
|
1751
|
+
|
|
1752
|
+
|
|
1753
|
+
|
|
1754
|
+
|
|
1755
|
+
|
|
1756
|
+
|
|
1757
|
+
<li class="md-nav__item">
|
|
1758
|
+
<a href="../../integration/audit/version-compatibility/" class="md-nav__link">
|
|
1759
|
+
|
|
1760
|
+
|
|
1761
|
+
|
|
1762
|
+
<span class="md-ellipsis">
|
|
1763
|
+
|
|
1764
|
+
|
|
1765
|
+
审计集成 · 版本兼容
|
|
1766
|
+
|
|
1767
|
+
|
|
1768
|
+
|
|
1769
|
+
</span>
|
|
1770
|
+
|
|
1771
|
+
|
|
1772
|
+
|
|
1773
|
+
</a>
|
|
1774
|
+
</li>
|
|
1775
|
+
|
|
1776
|
+
|
|
1777
|
+
|
|
1778
|
+
|
|
1779
|
+
|
|
1780
|
+
|
|
1781
|
+
|
|
1782
|
+
|
|
1783
|
+
|
|
1784
|
+
<li class="md-nav__item">
|
|
1785
|
+
<a href="../../integration/audit/failure-evidence/" class="md-nav__link">
|
|
1786
|
+
|
|
1787
|
+
|
|
1788
|
+
|
|
1789
|
+
<span class="md-ellipsis">
|
|
1790
|
+
|
|
1791
|
+
|
|
1792
|
+
审计集成 · 失败证据与 AUD 码
|
|
1793
|
+
|
|
1794
|
+
|
|
1795
|
+
|
|
1796
|
+
</span>
|
|
1797
|
+
|
|
1798
|
+
|
|
1799
|
+
|
|
1800
|
+
</a>
|
|
1801
|
+
</li>
|
|
1802
|
+
|
|
1803
|
+
|
|
1804
|
+
|
|
1805
|
+
</ul>
|
|
1806
|
+
</nav>
|
|
1807
|
+
</div>
|
|
1808
|
+
</div>
|
|
1809
|
+
</div>
|
|
1810
|
+
|
|
1811
|
+
|
|
1812
|
+
|
|
1813
|
+
<div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
|
|
1814
|
+
<div class="md-sidebar__scrollwrap">
|
|
1815
|
+
<div class="md-sidebar__inner">
|
|
1816
|
+
|
|
1817
|
+
|
|
1818
|
+
<nav class="md-nav md-nav--secondary" aria-label="目录">
|
|
1819
|
+
|
|
1820
|
+
|
|
1821
|
+
|
|
1822
|
+
|
|
1823
|
+
|
|
1824
|
+
|
|
1825
|
+
<label class="md-nav__title" for="__toc">
|
|
1826
|
+
<span class="md-nav__icon md-icon"></span>
|
|
1827
|
+
目录
|
|
1828
|
+
</label>
|
|
1829
|
+
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
|
|
1830
|
+
|
|
1831
|
+
<li class="md-nav__item">
|
|
1832
|
+
<a href="#Classification-Method" class="md-nav__link">
|
|
1833
|
+
<span class="md-ellipsis">
|
|
1834
|
+
|
|
1835
|
+
Classification Method
|
|
1836
|
+
|
|
1837
|
+
</span>
|
|
1838
|
+
</a>
|
|
1839
|
+
|
|
1840
|
+
</li>
|
|
1841
|
+
|
|
1842
|
+
<li class="md-nav__item">
|
|
1843
|
+
<a href="#Principles" class="md-nav__link">
|
|
1844
|
+
<span class="md-ellipsis">
|
|
1845
|
+
|
|
1846
|
+
Principles
|
|
1847
|
+
|
|
1848
|
+
</span>
|
|
1849
|
+
</a>
|
|
1850
|
+
|
|
1851
|
+
</li>
|
|
1852
|
+
|
|
1853
|
+
<li class="md-nav__item">
|
|
1854
|
+
<a href="#adopt-plan-Output-Structure" class="md-nav__link">
|
|
1855
|
+
<span class="md-ellipsis">
|
|
1856
|
+
|
|
1857
|
+
adopt-plan Output Structure
|
|
1858
|
+
|
|
1859
|
+
</span>
|
|
1860
|
+
</a>
|
|
1861
|
+
|
|
1862
|
+
</li>
|
|
1863
|
+
|
|
1864
|
+
<li class="md-nav__item">
|
|
1865
|
+
<a href="#Migration-Manifest-skill-familymigrationjson" class="md-nav__link">
|
|
1866
|
+
<span class="md-ellipsis">
|
|
1867
|
+
|
|
1868
|
+
Migration Manifest (skill-family.migration.json)
|
|
1869
|
+
|
|
1870
|
+
</span>
|
|
1871
|
+
</a>
|
|
1872
|
+
|
|
1873
|
+
</li>
|
|
1874
|
+
|
|
1875
|
+
<li class="md-nav__item">
|
|
1876
|
+
<a href="#Migration-State-Machine" class="md-nav__link">
|
|
1877
|
+
<span class="md-ellipsis">
|
|
1878
|
+
|
|
1879
|
+
Migration State Machine
|
|
1880
|
+
|
|
1881
|
+
</span>
|
|
1882
|
+
</a>
|
|
1883
|
+
|
|
1884
|
+
</li>
|
|
1885
|
+
|
|
1886
|
+
<li class="md-nav__item">
|
|
1887
|
+
<a href="#Completion-Gate" class="md-nav__link">
|
|
1888
|
+
<span class="md-ellipsis">
|
|
1889
|
+
|
|
1890
|
+
Completion Gate
|
|
1891
|
+
|
|
1892
|
+
</span>
|
|
1893
|
+
</a>
|
|
1894
|
+
|
|
1895
|
+
<nav class="md-nav" aria-label="Completion Gate">
|
|
1896
|
+
<ul class="md-nav__list">
|
|
1897
|
+
|
|
1898
|
+
<li class="md-nav__item">
|
|
1899
|
+
<a href="#Mandatory-Negative-Cases-completion-must-be-false-in-any-scenario" class="md-nav__link">
|
|
1900
|
+
<span class="md-ellipsis">
|
|
1901
|
+
|
|
1902
|
+
Mandatory Negative Cases (completion must be false in any scenario)
|
|
1903
|
+
|
|
1904
|
+
</span>
|
|
1905
|
+
</a>
|
|
1906
|
+
|
|
1907
|
+
</li>
|
|
1908
|
+
|
|
1909
|
+
</ul>
|
|
1910
|
+
</nav>
|
|
1911
|
+
|
|
1912
|
+
</li>
|
|
1913
|
+
|
|
1914
|
+
<li class="md-nav__item">
|
|
1915
|
+
<a href="#Legacy-Removal-and-Rollback-Contract" class="md-nav__link">
|
|
1916
|
+
<span class="md-ellipsis">
|
|
1917
|
+
|
|
1918
|
+
Legacy-Removal and Rollback Contract
|
|
1919
|
+
|
|
1920
|
+
</span>
|
|
1921
|
+
</a>
|
|
1922
|
+
|
|
1923
|
+
</li>
|
|
1924
|
+
|
|
1925
|
+
<li class="md-nav__item">
|
|
1926
|
+
<a href="#Ten-Field-Hand-off-Draft" class="md-nav__link">
|
|
1927
|
+
<span class="md-ellipsis">
|
|
1928
|
+
|
|
1929
|
+
Ten-Field Hand-off Draft
|
|
1930
|
+
|
|
1931
|
+
</span>
|
|
1932
|
+
</a>
|
|
1933
|
+
|
|
1934
|
+
<nav class="md-nav" aria-label="Ten-Field Hand-off Draft">
|
|
1935
|
+
<ul class="md-nav__list">
|
|
1936
|
+
|
|
1937
|
+
<li class="md-nav__item">
|
|
1938
|
+
<a href="#INCOMPLETE-Blocking-Rules" class="md-nav__link">
|
|
1939
|
+
<span class="md-ellipsis">
|
|
1940
|
+
|
|
1941
|
+
INCOMPLETE Blocking Rules
|
|
1942
|
+
|
|
1943
|
+
</span>
|
|
1944
|
+
</a>
|
|
1945
|
+
|
|
1946
|
+
</li>
|
|
1947
|
+
|
|
1948
|
+
<li class="md-nav__item">
|
|
1949
|
+
<a href="#Binding" class="md-nav__link">
|
|
1950
|
+
<span class="md-ellipsis">
|
|
1951
|
+
|
|
1952
|
+
Binding
|
|
1953
|
+
|
|
1954
|
+
</span>
|
|
1955
|
+
</a>
|
|
1956
|
+
|
|
1957
|
+
</li>
|
|
1958
|
+
|
|
1959
|
+
<li class="md-nav__item">
|
|
1960
|
+
<a href="#Rendering-Boundary" class="md-nav__link">
|
|
1961
|
+
<span class="md-ellipsis">
|
|
1962
|
+
|
|
1963
|
+
Rendering Boundary
|
|
1964
|
+
|
|
1965
|
+
</span>
|
|
1966
|
+
</a>
|
|
1967
|
+
|
|
1968
|
+
</li>
|
|
1969
|
+
|
|
1970
|
+
</ul>
|
|
1971
|
+
</nav>
|
|
1972
|
+
|
|
1973
|
+
</li>
|
|
1974
|
+
|
|
1975
|
+
<li class="md-nav__item">
|
|
1976
|
+
<a href="#Hazard-Class-Fixtures" class="md-nav__link">
|
|
1977
|
+
<span class="md-ellipsis">
|
|
1978
|
+
|
|
1979
|
+
Hazard-Class Fixtures
|
|
1980
|
+
|
|
1981
|
+
</span>
|
|
1982
|
+
</a>
|
|
1983
|
+
|
|
1984
|
+
</li>
|
|
1985
|
+
|
|
1986
|
+
</ul>
|
|
1987
|
+
|
|
1988
|
+
</nav>
|
|
1989
|
+
</div>
|
|
1990
|
+
</div>
|
|
1991
|
+
</div>
|
|
1992
|
+
|
|
1993
|
+
|
|
1994
|
+
|
|
1995
|
+
<div class="md-content" data-md-component="content">
|
|
1996
|
+
|
|
1997
|
+
<article class="md-content__inner md-typeset">
|
|
1998
|
+
|
|
1999
|
+
|
|
2000
|
+
|
|
2001
|
+
|
|
2002
|
+
|
|
2003
|
+
<blockquote>
|
|
2004
|
+
<p><a href="../../migration/">简体中文</a></p>
|
|
2005
|
+
</blockquote>
|
|
2006
|
+
<h1 id="Existing-Repository-Adoption-and-Migration-FND-070">Existing-Repository Adoption and Migration (FND-070)<a class="headerlink" href="#Existing-Repository-Adoption-and-Migration-FND-070" title="Permanent link">¶</a></h1>
|
|
2007
|
+
<p>This page describes how an existing project adopts the Skill Family infrastructure, and the gate for judging migration completion. It serves two reader types: a human owner uses it to judge the adoption path and risks; an agent uses it to run a read-only inventory via <code>adopt-plan</code>, without duplicating write actions on this page.</p>
|
|
2008
|
+
<h2 id="Classification-Method">Classification Method<a class="headerlink" href="#Classification-Method" title="Permanent link">¶</a></h2>
|
|
2009
|
+
<p>Before an existing repository connects to Foundation, classify it into one of the four categories below. The classification determines which path to take, whether files are written, and how the legacy implementation is handled.</p>
|
|
2010
|
+
<table>
|
|
2011
|
+
<thead>
|
|
2012
|
+
<tr>
|
|
2013
|
+
<th>Category</th>
|
|
2014
|
+
<th>Meaning</th>
|
|
2015
|
+
<th>Handling path</th>
|
|
2016
|
+
<th>Writes files?</th>
|
|
2017
|
+
</tr>
|
|
2018
|
+
</thead>
|
|
2019
|
+
<tbody>
|
|
2020
|
+
<tr>
|
|
2021
|
+
<td><code>direct-adoption</code></td>
|
|
2022
|
+
<td>The repository already has a capability that can be replaced by Foundation as-is, with no business-semantic coupling</td>
|
|
2023
|
+
<td>Direct adoption: <code>adopt-plan</code> inventory → <code>scaffold</code>/<code>projection</code> writes to disk</td>
|
|
2024
|
+
<td>Yes (contained)</td>
|
|
2025
|
+
</tr>
|
|
2026
|
+
<tr>
|
|
2027
|
+
<td><code>compatibility-layer</code></td>
|
|
2028
|
+
<td>The repository's existing implementation differs from the Foundation interface and needs a compatibility adaptation layer</td>
|
|
2029
|
+
<td>Write a compatibility layer, then adopt; the legacy implementation exits via the compatibility layer</td>
|
|
2030
|
+
<td>Yes (compatibility layer contained)</td>
|
|
2031
|
+
</tr>
|
|
2032
|
+
<tr>
|
|
2033
|
+
<td><code>keep-business</code></td>
|
|
2034
|
+
<td>The capability contains domain semantics or a business state machine, belongs to the caller, and Foundation does not take it</td>
|
|
2035
|
+
<td>Keep with the consumer; connect only business-neutral mechanisms</td>
|
|
2036
|
+
<td>No (on the Foundation side)</td>
|
|
2037
|
+
</tr>
|
|
2038
|
+
<tr>
|
|
2039
|
+
<td><code>foundation-gap</code></td>
|
|
2040
|
+
<td>A needed capability is not yet provided by Foundation (e.g., host apply, Qoder driver)</td>
|
|
2041
|
+
<td>Keep with the consumer or a later version; do not forcibly expand Foundation</td>
|
|
2042
|
+
<td>No</td>
|
|
2043
|
+
</tr>
|
|
2044
|
+
</tbody>
|
|
2045
|
+
</table>
|
|
2046
|
+
<blockquote>
|
|
2047
|
+
<p>Classification is a prerequisite for the adoption decision. Capabilities that fall into <code>keep-business</code> or <code>foundation-gap</code> should not be stuffed into Foundation just to "complete adoption"; this is exactly the concrete instantiation of architecture-routing steps 1 and 8.</p>
|
|
2048
|
+
</blockquote>
|
|
2049
|
+
<h2 id="Principles">Principles<a class="headerlink" href="#Principles" title="Permanent link">¶</a></h2>
|
|
2050
|
+
<ol>
|
|
2051
|
+
<li><strong>Plan first</strong>: any existing repository first runs the read-only <code>adopt-plan</code>, obtaining the current state, target Profile, exact write set, conflicts, legacy-implementation exit list, and acceptance commands, before deciding whether to perform a write.</li>
|
|
2052
|
+
<li><strong>Read-only plan, zero change</strong>: <code>adopt-plan</code> writes no files (including temporary files), runs no git write commands, renames nothing, and touches no remotes; zero change to the input repository's bytes (provable by before/after hash walk-through).</li>
|
|
2053
|
+
<li><strong>Adoption and rename are separate</strong>: infrastructure adoption never drags along a repository rename or remote-coordinate change; the two are independent decisions, and the tool provides no rename capability.</li>
|
|
2054
|
+
<li><strong>Dual-track does not count as complete</strong>: the migration-completion judgment requires the legacy duplicate implementation to have been deleted; connecting the new infrastructure while the legacy implementation still remains is permanently judged false.</li>
|
|
2055
|
+
</ol>
|
|
2056
|
+
<h2 id="adopt-plan-Output-Structure">adopt-plan Output Structure<a class="headerlink" href="#adopt-plan-Output-Structure" title="Permanent link">¶</a></h2>
|
|
2057
|
+
<table>
|
|
2058
|
+
<thead>
|
|
2059
|
+
<tr>
|
|
2060
|
+
<th>Section</th>
|
|
2061
|
+
<th>Content</th>
|
|
2062
|
+
</tr>
|
|
2063
|
+
</thead>
|
|
2064
|
+
<tbody>
|
|
2065
|
+
<tr>
|
|
2066
|
+
<td><code>target</code></td>
|
|
2067
|
+
<td>Current state: entry-point count, target's own managed declarations</td>
|
|
2068
|
+
</tr>
|
|
2069
|
+
<tr>
|
|
2070
|
+
<td><code>project</code> / <code>traceability</code></td>
|
|
2071
|
+
<td>Target Profile and the source of truth for each write (Contracts version, skeleton generation function, license Profile and variant)</td>
|
|
2072
|
+
</tr>
|
|
2073
|
+
<tr>
|
|
2074
|
+
<td><code>git</code></td>
|
|
2075
|
+
<td>Read-only Git pre-state (repository, HEAD, clean)</td>
|
|
2076
|
+
</tr>
|
|
2077
|
+
<tr>
|
|
2078
|
+
<td><code>writeSet</code></td>
|
|
2079
|
+
<td>Exact write set: per-path action (only <code>create</code>/<code>unchanged</code>), fileClass, sha256</td>
|
|
2080
|
+
</tr>
|
|
2081
|
+
<tr>
|
|
2082
|
+
<td><code>conflicts</code></td>
|
|
2083
|
+
<td>Handwritten conflicts, managed drift, symlink placeholders, temporary exceptions for missing fields</td>
|
|
2084
|
+
</tr>
|
|
2085
|
+
<tr>
|
|
2086
|
+
<td><code>risks</code></td>
|
|
2087
|
+
<td>dirty, nested repository, tracked-but-ignored, expired exceptions, etc.</td>
|
|
2088
|
+
</tr>
|
|
2089
|
+
<tr>
|
|
2090
|
+
<td><code>migration</code></td>
|
|
2091
|
+
<td>Migration state machine: binding, on-disk proof (adoptionProof), pending-write count, check gate, four-class verification evidence, state and completion judgment</td>
|
|
2092
|
+
</tr>
|
|
2093
|
+
<tr>
|
|
2094
|
+
<td><code>verificationPlan</code></td>
|
|
2095
|
+
<td>Acceptance command sequence (check → projection → re-check)</td>
|
|
2096
|
+
</tr>
|
|
2097
|
+
</tbody>
|
|
2098
|
+
</table>
|
|
2099
|
+
<h2 id="Migration-Manifest-skill-familymigrationjson">Migration Manifest (skill-family.migration.json)<a class="headerlink" href="#Migration-Manifest-skill-familymigrationjson" title="Permanent link">¶</a></h2>
|
|
2100
|
+
<p>The target repository declares its own migration state in the root directory:</p>
|
|
2101
|
+
<pre><code class="language-json">{
|
|
2102
|
+
"kind": "skill-family.migration-manifest",
|
|
2103
|
+
"legacyInfra": [
|
|
2104
|
+
{ "path": "scripts/old-validator.mjs", "replacedBy": "sf-kit check" }
|
|
2105
|
+
],
|
|
2106
|
+
"exceptions": [
|
|
2107
|
+
{
|
|
2108
|
+
"owner": "owner",
|
|
2109
|
+
"reason": "specific reason",
|
|
2110
|
+
"deadline": "2026-12-31",
|
|
2111
|
+
"migrationTarget": "wave-m1"
|
|
2112
|
+
}
|
|
2113
|
+
],
|
|
2114
|
+
"targetProfile": "generic",
|
|
2115
|
+
"foundationPackages": [
|
|
2116
|
+
{ "name": "skill-family-contracts", "version": "0.3.0", "digest": "sha256:<64 hex digits>" },
|
|
2117
|
+
{ "name": "skill-family-harness-node", "version": "0.3.0", "digest": "sha256:<64 hex digits>" },
|
|
2118
|
+
{ "name": "skill-family-engineering-kit", "version": "0.3.0", "digest": "sha256:<64 hex digits>" }
|
|
2119
|
+
],
|
|
2120
|
+
"verification": {
|
|
2121
|
+
"unit": "docs/evidence/unit.json",
|
|
2122
|
+
"integration": "docs/evidence/integration.json",
|
|
2123
|
+
"consumer": "docs/evidence/consumer.json",
|
|
2124
|
+
"independentAudit": "docs/evidence/independent-audit.json"
|
|
2125
|
+
}
|
|
2126
|
+
}
|
|
2127
|
+
</code></pre>
|
|
2128
|
+
<p>The structure above shows the core fields of the migration manifest; each <code>legacyInfra</code> entry gives the legacy-implementation path and its replacement; the tool only read-only evaluates existence and never deletes on its behalf.</p>
|
|
2129
|
+
<p>The Quickstart Profile candidate moves to v2 in 0.3.0. A migration manifest that binds candidate capabilities must pin all three Foundation packages to exactly 0.3.0; an existing integration that still requires v1 must keep all three packages pinned to exactly 0.2.1 and must not mix the two sets.</p>
|
|
2130
|
+
<ul>
|
|
2131
|
+
<li><code>legacyInfra</code>: each entry gives the legacy-implementation path and its replacement; the tool only read-only evaluates existence and never deletes on its behalf.</li>
|
|
2132
|
+
<li><code>exceptions</code> are <strong>temporary exceptions</strong>: must simultaneously contain all four fields — owner, reason, deadline, and migrationTarget — and missing any field counts as a conflict (plan failure); expired exceptions are not auto-renewed and persistently block the completion judgment.</li>
|
|
2133
|
+
<li><code>targetProfile</code> / <code>foundationPackages</code>: adoption binding. The target Profile must be consistent with the plan Profile; the three Foundation packages (contracts, harness-node, engineering-kit) must each bind an <strong>exact version number</strong> (floating ranges not accepted) and a <code>sha256:</code> digest.</li>
|
|
2134
|
+
<li><code>verification</code>: paths to the four classes of verification-evidence documents (unit, integration, consumer, independentAudit). Each piece of evidence must be parseable JSON whose <code>projectId</code> matches the target project's identity to count as proven; out-of-bounds paths, missing, unparseable, or identity-mismatched evidence are all unproven, fail-closed.</li>
|
|
2135
|
+
</ul>
|
|
2136
|
+
<h2 id="Migration-State-Machine">Migration State Machine<a class="headerlink" href="#Migration-State-Machine" title="Permanent link">¶</a></h2>
|
|
2137
|
+
<p>States advance monotonically and are derived only from read-only evidence; no tool advances state by writing.</p>
|
|
2138
|
+
<pre><code>not-declared → declared → adopted → verified → complete
|
|
2139
|
+
</code></pre>
|
|
2140
|
+
<table>
|
|
2141
|
+
<thead>
|
|
2142
|
+
<tr>
|
|
2143
|
+
<th>State</th>
|
|
2144
|
+
<th>Meaning</th>
|
|
2145
|
+
</tr>
|
|
2146
|
+
</thead>
|
|
2147
|
+
<tbody>
|
|
2148
|
+
<tr>
|
|
2149
|
+
<td><code>not-declared</code></td>
|
|
2150
|
+
<td>No contract-valid migration manifest exists</td>
|
|
2151
|
+
</tr>
|
|
2152
|
+
<tr>
|
|
2153
|
+
<td><code>declared</code></td>
|
|
2154
|
+
<td>The manifest contract is valid, but the adoption-proof facts are incomplete</td>
|
|
2155
|
+
</tr>
|
|
2156
|
+
<tr>
|
|
2157
|
+
<td><code>adopted</code></td>
|
|
2158
|
+
<td>Foundation bytes are on disk and the legacy implementation has exited, but the check gate is not green</td>
|
|
2159
|
+
</tr>
|
|
2160
|
+
<tr>
|
|
2161
|
+
<td><code>verified</code></td>
|
|
2162
|
+
<td>The check gate is green, but not all verification evidence is proven</td>
|
|
2163
|
+
</tr>
|
|
2164
|
+
<tr>
|
|
2165
|
+
<td><code>complete</code></td>
|
|
2166
|
+
<td>All eight completion conditions are satisfied; <code>complete</code> is true if and only if the state is <code>complete</code></td>
|
|
2167
|
+
</tr>
|
|
2168
|
+
</tbody>
|
|
2169
|
+
</table>
|
|
2170
|
+
<h2 id="Completion-Gate">Completion Gate<a class="headerlink" href="#Completion-Gate" title="Permanent link">¶</a></h2>
|
|
2171
|
+
<p><code>migration.completion.complete</code> is true if and only if <strong>all eight</strong> hold:</p>
|
|
2172
|
+
<ol>
|
|
2173
|
+
<li>A contract-valid migration manifest has been declared (kind/fields validated by the Contracts schema);</li>
|
|
2174
|
+
<li>The adoption binding is proven: the target Profile is consistent with the plan, and the three Foundation packages each bind an exact version and a sha256 digest;</li>
|
|
2175
|
+
<li>The Project Manifest, managed lock, identity, and all managed skeleton files are on disk and their digests are consistent with the plan (<code>adoptionProof.missing</code>/<code>mismatched</code> are empty);</li>
|
|
2176
|
+
<li>The write set has no pending create/replace/project actions (<code>pendingWrites</code> is 0);</li>
|
|
2177
|
+
<li>The Foundation check gate is green;</li>
|
|
2178
|
+
<li>Each legacy implementation has exited (absent) — containment refusal or malformed entries fail-closed identically to present;</li>
|
|
2179
|
+
<li>No missing fields, no unparseable deadline, no expired temporary exceptions; no unresolved adoption conflicts;</li>
|
|
2180
|
+
<li>All four classes of verification evidence (unit/integration/consumer/independentAudit) are proven and identity (projectId) matches.</li>
|
|
2181
|
+
</ol>
|
|
2182
|
+
<p>An unevaluated input is equivalent to unproven: the gate advances only on presented evidence. The blocking reason (<code>blockers</code>) is a stable, readable string that can go directly into the migration review record.</p>
|
|
2183
|
+
<h3 id="Mandatory-Negative-Cases-completion-must-be-false-in-any-scenario">Mandatory Negative Cases (completion must be false in any scenario)<a class="headerlink" href="#Mandatory-Negative-Cases-completion-must-be-false-in-any-scenario" title="Permanent link">¶</a></h3>
|
|
2184
|
+
<ul>
|
|
2185
|
+
<li>Empty repository + empty manifest (no contract-valid manifest → <code>not-declared</code>);</li>
|
|
2186
|
+
<li>Manifest with wrong kind (schema-invalid → treated as undeclared);</li>
|
|
2187
|
+
<li>9 skeleton files still pending create (<code>declared</code>, all missing paths listed);</li>
|
|
2188
|
+
<li>Managed lock drift (<code>mismatched</code> non-empty);</li>
|
|
2189
|
+
<li>Only the new implementation connected, legacy still present (dual-track → <code>declared</code>);</li>
|
|
2190
|
+
<li>Consumer verification evidence missing or identity mismatched (<code>verified</code>, must not complete);</li>
|
|
2191
|
+
<li>Temporary exception expired (the tool never renews).</li>
|
|
2192
|
+
</ul>
|
|
2193
|
+
<h2 id="Legacy-Removal-and-Rollback-Contract">Legacy-Removal and Rollback Contract<a class="headerlink" href="#Legacy-Removal-and-Rollback-Contract" title="Permanent link">¶</a></h2>
|
|
2194
|
+
<ul>
|
|
2195
|
+
<li><strong>Removal is the caller's responsibility</strong>: <code>adopt-plan</code> only evaluates legacy-implementation existence and lists the exit manifest, never deleting on its behalf; <code>foundation-gap</code> and <code>keep-business</code> capabilities do not require removal.</li>
|
|
2196
|
+
<li><strong>Rollback relies on evidence</strong>: before adoption writes to disk, a dual-digest binding of <code>adoptionProof</code> and <code>foundationPlanDigest</code> must exist first; on rollback, the plan write set's <code>expect.sha256</code> pre-state is used to restore; an overwrite action that does not declare its pre-state is refused at the <code>projection</code> stage.</li>
|
|
2197
|
+
<li><strong>fail-closed default</strong>: any unparseable, out-of-bounds, identity-mismatched, or evidence-missing input makes the corresponding judgment unproven; success is not assumed.</li>
|
|
2198
|
+
</ul>
|
|
2199
|
+
<h2 id="Ten-Field-Hand-off-Draft">Ten-Field Hand-off Draft<a class="headerlink" href="#Ten-Field-Hand-off-Draft" title="Permanent link">¶</a></h2>
|
|
2200
|
+
<p><code>adopt-plan</code> output carries a <code>handoffDraft</code> sub-block (kind=<code>skill-family.handoff-draft</code>, schemaVersion=1), providing structured data draft for the planner-side ten-field hand-off. Field sources are only two kinds: <code>derived</code> (mechanically derivable from read-only evidence) and <code>INCOMPLETE</code> (not mechanically derivable, never guessed). The ten fields correspond one-to-one with the source constant <code>HANDOFF_FIELDS</code>:</p>
|
|
2201
|
+
<table>
|
|
2202
|
+
<thead>
|
|
2203
|
+
<tr>
|
|
2204
|
+
<th>id</th>
|
|
2205
|
+
<th>Field name</th>
|
|
2206
|
+
<th>Source</th>
|
|
2207
|
+
</tr>
|
|
2208
|
+
</thead>
|
|
2209
|
+
<tbody>
|
|
2210
|
+
<tr>
|
|
2211
|
+
<td>1</td>
|
|
2212
|
+
<td><code>project-identity</code></td>
|
|
2213
|
+
<td>derived</td>
|
|
2214
|
+
</tr>
|
|
2215
|
+
<tr>
|
|
2216
|
+
<td>2</td>
|
|
2217
|
+
<td><code>repository-state</code></td>
|
|
2218
|
+
<td>derived</td>
|
|
2219
|
+
</tr>
|
|
2220
|
+
<tr>
|
|
2221
|
+
<td>3</td>
|
|
2222
|
+
<td><code>foundation-binding</code></td>
|
|
2223
|
+
<td>derived (manifest declared binding) / INCOMPLETE (no manifest declared)</td>
|
|
2224
|
+
</tr>
|
|
2225
|
+
<tr>
|
|
2226
|
+
<td>4</td>
|
|
2227
|
+
<td><code>write-set-policy</code></td>
|
|
2228
|
+
<td>derived</td>
|
|
2229
|
+
</tr>
|
|
2230
|
+
<tr>
|
|
2231
|
+
<td>5</td>
|
|
2232
|
+
<td><code>legacy-exits</code></td>
|
|
2233
|
+
<td>derived</td>
|
|
2234
|
+
</tr>
|
|
2235
|
+
<tr>
|
|
2236
|
+
<td>6</td>
|
|
2237
|
+
<td><code>business-logic-to-keep</code></td>
|
|
2238
|
+
<td>always INCOMPLETE</td>
|
|
2239
|
+
</tr>
|
|
2240
|
+
<tr>
|
|
2241
|
+
<td>7</td>
|
|
2242
|
+
<td><code>plan-summary</code></td>
|
|
2243
|
+
<td>derived</td>
|
|
2244
|
+
</tr>
|
|
2245
|
+
<tr>
|
|
2246
|
+
<td>8</td>
|
|
2247
|
+
<td><code>verification-entries</code></td>
|
|
2248
|
+
<td>derived (all four classes of evidence proven) / INCOMPLETE (any unproven)</td>
|
|
2249
|
+
</tr>
|
|
2250
|
+
<tr>
|
|
2251
|
+
<td>9</td>
|
|
2252
|
+
<td><code>legacy-removal-recovery</code></td>
|
|
2253
|
+
<td>always INCOMPLETE</td>
|
|
2254
|
+
</tr>
|
|
2255
|
+
<tr>
|
|
2256
|
+
<td>10</td>
|
|
2257
|
+
<td><code>authorization-status</code></td>
|
|
2258
|
+
<td>derived (commit/push/tag/publish always false)</td>
|
|
2259
|
+
</tr>
|
|
2260
|
+
</tbody>
|
|
2261
|
+
</table>
|
|
2262
|
+
<h3 id="INCOMPLETE-Blocking-Rules">INCOMPLETE Blocking Rules<a class="headerlink" href="#INCOMPLETE-Blocking-Rules" title="Permanent link">¶</a></h3>
|
|
2263
|
+
<ul>
|
|
2264
|
+
<li>Any INCOMPLETE field makes <code>ready=false</code>: a draft with gaps must not enter the hand-off.</li>
|
|
2265
|
+
<li>The tool never guesses mechanically-undeterminable fields:</li>
|
|
2266
|
+
<li><code>business-logic-to-keep</code> and <code>legacy-removal-recovery</code> are <strong>always INCOMPLETE</strong> and must be provided by a human owner; the tool has no basis to derive them;</li>
|
|
2267
|
+
<li><code>foundation-binding</code> is INCOMPLETE when no migration manifest declares (<code>foundationPackages</code>) it, counting only the manifest-declared binding;</li>
|
|
2268
|
+
<li><code>verification-entries</code> is INCOMPLETE when any of the four classes of evidence (unit/integration/consumer/independentAudit) is not proven.</li>
|
|
2269
|
+
</ul>
|
|
2270
|
+
<h3 id="Binding">Binding<a class="headerlink" href="#Binding" title="Permanent link">¶</a></h3>
|
|
2271
|
+
<p>The draft carries a dual sha256 digest (the <code>binding</code> block): <code>targetSetDigest</code> summarizes the target repository's file set, and <code>foundationPlanDigest</code> summarizes the Foundation plan write set. Two plans for the same target yield the same digest, precisely binding the draft and the target state at plan time.</p>
|
|
2272
|
+
<h3 id="Rendering-Boundary">Rendering Boundary<a class="headerlink" href="#Rendering-Boundary" title="Permanent link">¶</a></h3>
|
|
2273
|
+
<ul>
|
|
2274
|
+
<li>The renderer writes only the planner-side hand-off draft, <strong>never the consumer repository</strong>;</li>
|
|
2275
|
+
<li>No fifth Kit top-level command is added: Kit top-level commands are permanently the four — scaffold, adopt-plan, projection, check — and <code>handoffDraft</code> is only a sub-block of <code>adopt-plan</code> output.</li>
|
|
2276
|
+
</ul>
|
|
2277
|
+
<h2 id="Hazard-Class-Fixtures">Hazard-Class Fixtures<a class="headerlink" href="#Hazard-Class-Fixtures" title="Permanent link">¶</a></h2>
|
|
2278
|
+
<p><code>fixtures/adoption/cases/</code> covers seven hazard classes: dirty repository, nested repository, tracked-but-ignored, symlink placeholder, generated-artifact drift, legacy-implementation exit gate, and temporary-exception fields. Each case proves the plan is read-only via byte-level before/after snapshots; see the in-repo <code>fixtures/adoption/README.md</code> for case descriptions.</p>
|
|
2279
|
+
|
|
2280
|
+
|
|
2281
|
+
|
|
2282
|
+
|
|
2283
|
+
|
|
2284
|
+
|
|
2285
|
+
|
|
2286
|
+
|
|
2287
|
+
|
|
2288
|
+
|
|
2289
|
+
|
|
2290
|
+
|
|
2291
|
+
|
|
2292
|
+
</article>
|
|
2293
|
+
</div>
|
|
2294
|
+
|
|
2295
|
+
|
|
2296
|
+
<script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
|
|
2297
|
+
</div>
|
|
2298
|
+
|
|
2299
|
+
</main>
|
|
2300
|
+
|
|
2301
|
+
<footer class="md-footer">
|
|
2302
|
+
|
|
2303
|
+
<div class="md-footer-meta md-typeset">
|
|
2304
|
+
<div class="md-footer-meta__inner md-grid">
|
|
2305
|
+
<div class="md-copyright">
|
|
2306
|
+
|
|
2307
|
+
|
|
2308
|
+
Made with
|
|
2309
|
+
<a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
|
|
2310
|
+
Material for MkDocs
|
|
2311
|
+
</a>
|
|
2312
|
+
|
|
2313
|
+
</div>
|
|
2314
|
+
|
|
2315
|
+
</div>
|
|
2316
|
+
</div>
|
|
2317
|
+
</footer>
|
|
2318
|
+
|
|
2319
|
+
</div>
|
|
2320
|
+
<div class="md-dialog" data-md-component="dialog">
|
|
2321
|
+
<div class="md-dialog__inner md-typeset"></div>
|
|
2322
|
+
</div>
|
|
2323
|
+
|
|
2324
|
+
|
|
2325
|
+
|
|
2326
|
+
|
|
2327
|
+
|
|
2328
|
+
<script id="__config" type="application/json">{"annotate": null, "base": "../..", "features": [], "search": "../../assets/javascripts/workers/search.2c215733.min.js", "tags": null, "translations": {"clipboard.copied": "\u5df2\u590d\u5236", "clipboard.copy": "\u590d\u5236", "search.result.more.one": "\u5728\u8be5\u9875\u4e0a\u8fd8\u6709 1 \u4e2a\u7b26\u5408\u6761\u4ef6\u7684\u7ed3\u679c", "search.result.more.other": "\u5728\u8be5\u9875\u4e0a\u8fd8\u6709 # \u4e2a\u7b26\u5408\u6761\u4ef6\u7684\u7ed3\u679c", "search.result.none": "\u6ca1\u6709\u627e\u5230\u7b26\u5408\u6761\u4ef6\u7684\u7ed3\u679c", "search.result.one": "\u627e\u5230 1 \u4e2a\u7b26\u5408\u6761\u4ef6\u7684\u7ed3\u679c", "search.result.other": "# \u4e2a\u7b26\u5408\u6761\u4ef6\u7684\u7ed3\u679c", "search.result.placeholder": "\u952e\u5165\u4ee5\u5f00\u59cb\u641c\u7d22", "search.result.term.missing": "\u7f3a\u5c11", "select.version": "\u9009\u62e9\u5f53\u524d\u7248\u672c"}, "version": null}</script>
|
|
2329
|
+
|
|
2330
|
+
|
|
2331
|
+
<script src="../../assets/javascripts/bundle.d7400e89.min.js"></script>
|
|
2332
|
+
|
|
2333
|
+
|
|
2334
|
+
</body>
|
|
2335
|
+
</html>
|