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.
Files changed (74) hide show
  1. package/CHANGELOG.md +43 -0
  2. package/CHANGELOG.zh-CN.md +43 -0
  3. package/NOTICE +10 -0
  4. package/README.md +160 -55
  5. package/README.zh-CN.md +210 -0
  6. package/candidate/index.mjs +4 -0
  7. package/candidate/profile-bundle.mjs +1150 -0
  8. package/candidate/projection-bundle-cli.mjs +64 -0
  9. package/candidate/skill-naming-cli.mjs +59 -0
  10. package/candidate/skill-naming-policy.json +46 -0
  11. package/candidate/skill-naming.mjs +280 -0
  12. package/docs/404.html +1434 -408
  13. package/docs/agents/architecture-routing/index.html +1944 -0
  14. package/docs/agents/capability-catalog.en.json +1564 -0
  15. package/docs/agents/capability-catalog.json +935 -0
  16. package/docs/agents/capability-catalog.schema.json +179 -0
  17. package/docs/agents/capability-catalog.zh-CN.json +1564 -0
  18. package/docs/agents/index.html +1914 -0
  19. package/docs/architecture/index.html +1706 -497
  20. package/docs/assets/javascripts/lunr/tinyseg.js +2 -2
  21. package/docs/assets/javascripts/lunr/wordcut.js +37 -37
  22. package/docs/en/agents/architecture-routing/index.html +1944 -0
  23. package/docs/en/agents/index.html +1925 -0
  24. package/docs/en/architecture/index.html +2187 -0
  25. package/docs/en/examples-and-fixtures/index.html +1888 -0
  26. package/docs/en/help/index.html +2035 -0
  27. package/docs/en/index.html +1895 -0
  28. package/docs/en/licensing/index.html +1917 -0
  29. package/docs/en/migration/index.html +2335 -0
  30. package/docs/en/quickstart/index.html +1919 -0
  31. package/docs/en/recipes/adapter-text-closure/index.html +2000 -0
  32. package/docs/en/recipes/adopt-existing-repository/index.html +1987 -0
  33. package/docs/en/recipes/deterministic-human-report/index.html +1998 -0
  34. package/docs/en/recipes/domain-schema-validation/index.html +2009 -0
  35. package/docs/en/recipes/durable-local-state/index.html +2009 -0
  36. package/docs/en/recipes/host-profile-integration/index.html +2001 -0
  37. package/docs/en/recipes/index.html +1877 -0
  38. package/docs/en/recipes/safe-filesystem-and-atomic-write/index.html +1994 -0
  39. package/docs/en/reference/api/index.html +1941 -0
  40. package/docs/en/reference/compatibility/index.html +2036 -0
  41. package/docs/en/reference/failure-and-side-effect-matrix/index.html +2216 -0
  42. package/docs/examples-and-fixtures/index.html +1871 -0
  43. package/docs/git-lifecycle/index.html +1508 -482
  44. package/docs/help/index.html +1655 -554
  45. package/docs/index.html +1479 -450
  46. package/docs/integration/audit/failure-evidence/index.html +1488 -462
  47. package/docs/integration/audit/independence/index.html +1513 -487
  48. package/docs/integration/audit/index.html +1514 -488
  49. package/docs/integration/audit/mutation-taxonomy/index.html +1548 -522
  50. package/docs/integration/audit/version-compatibility/index.html +1489 -463
  51. package/docs/licensing/index.html +1917 -0
  52. package/docs/migration/index.html +1679 -586
  53. package/docs/public/status/index.html +1542 -516
  54. package/docs/quickstart/index.html +1589 -539
  55. package/docs/recipes/adapter-text-closure/index.html +2000 -0
  56. package/docs/recipes/adopt-existing-repository/index.html +1987 -0
  57. package/docs/recipes/deterministic-human-report/index.html +1998 -0
  58. package/docs/recipes/domain-schema-validation/index.html +2009 -0
  59. package/docs/recipes/durable-local-state/index.html +2009 -0
  60. package/docs/recipes/host-profile-integration/index.html +2001 -0
  61. package/docs/recipes/index.html +1877 -0
  62. package/docs/recipes/safe-filesystem-and-atomic-write/index.html +1994 -0
  63. package/docs/reference/api/contracts/index.html +2558 -0
  64. package/docs/reference/api/engineering-kit/index.html +2577 -0
  65. package/docs/reference/api/harness/index.html +2634 -0
  66. package/docs/reference/api/index.html +1881 -0
  67. package/docs/reference/compatibility/index.html +2036 -0
  68. package/docs/reference/failure-and-side-effect-matrix/index.html +2216 -0
  69. package/docs/search/search_index.json +1 -1
  70. package/docs/setup/index.html +1494 -468
  71. package/docs/sitemap.xml +152 -0
  72. package/package.json +16 -5
  73. package/release-notes/0.2.1.yaml +23 -0
  74. package/release-notes/0.3.0.yaml +25 -0
@@ -0,0 +1,2187 @@
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/architecture/">
14
+
15
+
16
+ <link rel="prev" href="../help/">
17
+
18
+
19
+ <link rel="next" href="../migration/">
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 · Architecture - 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="#Architecture-Boundaries" 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 · Architecture
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
+
1016
+
1017
+ <li class="md-nav__item md-nav__item--active">
1018
+
1019
+ <input class="md-nav__toggle md-toggle" type="checkbox" id="__toc">
1020
+
1021
+
1022
+
1023
+
1024
+
1025
+ <label class="md-nav__link md-nav__link--active" for="__toc">
1026
+
1027
+
1028
+
1029
+ <span class="md-ellipsis">
1030
+
1031
+
1032
+ English · Architecture
1033
+
1034
+
1035
+
1036
+ </span>
1037
+
1038
+
1039
+
1040
+ <span class="md-nav__icon md-icon"></span>
1041
+ </label>
1042
+
1043
+ <a href="./" class="md-nav__link md-nav__link--active">
1044
+
1045
+
1046
+
1047
+ <span class="md-ellipsis">
1048
+
1049
+
1050
+ English · Architecture
1051
+
1052
+
1053
+
1054
+ </span>
1055
+
1056
+
1057
+
1058
+ </a>
1059
+
1060
+
1061
+
1062
+ <nav class="md-nav md-nav--secondary" aria-label="目录">
1063
+
1064
+
1065
+
1066
+
1067
+
1068
+
1069
+ <label class="md-nav__title" for="__toc">
1070
+ <span class="md-nav__icon md-icon"></span>
1071
+ 目录
1072
+ </label>
1073
+ <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
1074
+
1075
+ <li class="md-nav__item">
1076
+ <a href="#Layers" class="md-nav__link">
1077
+ <span class="md-ellipsis">
1078
+
1079
+ Layers
1080
+
1081
+ </span>
1082
+ </a>
1083
+
1084
+ </li>
1085
+
1086
+ <li class="md-nav__item">
1087
+ <a href="#Responsibility-Matrix" class="md-nav__link">
1088
+ <span class="md-ellipsis">
1089
+
1090
+ Responsibility Matrix
1091
+
1092
+ </span>
1093
+ </a>
1094
+
1095
+ </li>
1096
+
1097
+ <li class="md-nav__item">
1098
+ <a href="#Capability-Ownership-Algorithm" class="md-nav__link">
1099
+ <span class="md-ellipsis">
1100
+
1101
+ Capability Ownership Algorithm
1102
+
1103
+ </span>
1104
+ </a>
1105
+
1106
+ </li>
1107
+
1108
+ <li class="md-nav__item">
1109
+ <a href="#Trust-and-Side-Effect-Boundaries" class="md-nav__link">
1110
+ <span class="md-ellipsis">
1111
+
1112
+ Trust and Side-Effect Boundaries
1113
+
1114
+ </span>
1115
+ </a>
1116
+
1117
+ </li>
1118
+
1119
+ <li class="md-nav__item">
1120
+ <a href="#Architecture-Decision-Tree" class="md-nav__link">
1121
+ <span class="md-ellipsis">
1122
+
1123
+ Architecture Decision Tree
1124
+
1125
+ </span>
1126
+ </a>
1127
+
1128
+ </li>
1129
+
1130
+ <li class="md-nav__item">
1131
+ <a href="#Routing-Relationships-with-External-Projects" class="md-nav__link">
1132
+ <span class="md-ellipsis">
1133
+
1134
+ Routing Relationships with External Projects
1135
+
1136
+ </span>
1137
+ </a>
1138
+
1139
+ </li>
1140
+
1141
+ <li class="md-nav__item">
1142
+ <a href="#Next-Phase-Capability-Lines-Architecture-Hand-off" class="md-nav__link">
1143
+ <span class="md-ellipsis">
1144
+
1145
+ Next-Phase Capability Lines (Architecture Hand-off)
1146
+
1147
+ </span>
1148
+ </a>
1149
+
1150
+ </li>
1151
+
1152
+ <li class="md-nav__item">
1153
+ <a href="#First-Version-Budget" class="md-nav__link">
1154
+ <span class="md-ellipsis">
1155
+
1156
+ First-Version Budget
1157
+
1158
+ </span>
1159
+ </a>
1160
+
1161
+ </li>
1162
+
1163
+ <li class="md-nav__item">
1164
+ <a href="#Machine-Source-of-Truth-and-File-Classification" class="md-nav__link">
1165
+ <span class="md-ellipsis">
1166
+
1167
+ Machine Source of Truth and File Classification
1168
+
1169
+ </span>
1170
+ </a>
1171
+
1172
+ </li>
1173
+
1174
+ <li class="md-nav__item">
1175
+ <a href="#Documentation-System-and-Fact-Check" class="md-nav__link">
1176
+ <span class="md-ellipsis">
1177
+
1178
+ Documentation System and Fact-Check
1179
+
1180
+ </span>
1181
+ </a>
1182
+
1183
+ </li>
1184
+
1185
+ <li class="md-nav__item">
1186
+ <a href="#Stable-Product-Gates" class="md-nav__link">
1187
+ <span class="md-ellipsis">
1188
+
1189
+ Stable Product Gates
1190
+
1191
+ </span>
1192
+ </a>
1193
+
1194
+ </li>
1195
+
1196
+ </ul>
1197
+
1198
+ </nav>
1199
+
1200
+ </li>
1201
+
1202
+
1203
+
1204
+
1205
+
1206
+
1207
+
1208
+
1209
+
1210
+ <li class="md-nav__item">
1211
+ <a href="../migration/" class="md-nav__link">
1212
+
1213
+
1214
+
1215
+ <span class="md-ellipsis">
1216
+
1217
+
1218
+ English · Migration
1219
+
1220
+
1221
+
1222
+ </span>
1223
+
1224
+
1225
+
1226
+ </a>
1227
+ </li>
1228
+
1229
+
1230
+
1231
+
1232
+
1233
+
1234
+
1235
+
1236
+
1237
+ <li class="md-nav__item">
1238
+ <a href="../licensing/" class="md-nav__link">
1239
+
1240
+
1241
+
1242
+ <span class="md-ellipsis">
1243
+
1244
+
1245
+ English · Licensing
1246
+
1247
+
1248
+
1249
+ </span>
1250
+
1251
+
1252
+
1253
+ </a>
1254
+ </li>
1255
+
1256
+
1257
+
1258
+
1259
+
1260
+
1261
+
1262
+
1263
+
1264
+ <li class="md-nav__item">
1265
+ <a href="../agents/" class="md-nav__link">
1266
+
1267
+
1268
+
1269
+ <span class="md-ellipsis">
1270
+
1271
+
1272
+ English · Agent entry
1273
+
1274
+
1275
+
1276
+ </span>
1277
+
1278
+
1279
+
1280
+ </a>
1281
+ </li>
1282
+
1283
+
1284
+
1285
+
1286
+
1287
+
1288
+
1289
+
1290
+
1291
+ <li class="md-nav__item">
1292
+ <a href="../agents/architecture-routing/" class="md-nav__link">
1293
+
1294
+
1295
+
1296
+ <span class="md-ellipsis">
1297
+
1298
+
1299
+ English · Architecture routing
1300
+
1301
+
1302
+
1303
+ </span>
1304
+
1305
+
1306
+
1307
+ </a>
1308
+ </li>
1309
+
1310
+
1311
+
1312
+
1313
+
1314
+
1315
+
1316
+
1317
+
1318
+ <li class="md-nav__item">
1319
+ <a href="../reference/compatibility/" class="md-nav__link">
1320
+
1321
+
1322
+
1323
+ <span class="md-ellipsis">
1324
+
1325
+
1326
+ English · Compatibility
1327
+
1328
+
1329
+
1330
+ </span>
1331
+
1332
+
1333
+
1334
+ </a>
1335
+ </li>
1336
+
1337
+
1338
+
1339
+
1340
+
1341
+
1342
+
1343
+
1344
+
1345
+ <li class="md-nav__item">
1346
+ <a href="../reference/failure-and-side-effect-matrix/" class="md-nav__link">
1347
+
1348
+
1349
+
1350
+ <span class="md-ellipsis">
1351
+
1352
+
1353
+ English · Failures and side effects
1354
+
1355
+
1356
+
1357
+ </span>
1358
+
1359
+
1360
+
1361
+ </a>
1362
+ </li>
1363
+
1364
+
1365
+
1366
+
1367
+
1368
+
1369
+
1370
+
1371
+
1372
+ <li class="md-nav__item">
1373
+ <a href="../reference/api/" class="md-nav__link">
1374
+
1375
+
1376
+
1377
+ <span class="md-ellipsis">
1378
+
1379
+
1380
+ English · API reference
1381
+
1382
+
1383
+
1384
+ </span>
1385
+
1386
+
1387
+
1388
+ </a>
1389
+ </li>
1390
+
1391
+
1392
+
1393
+
1394
+
1395
+
1396
+
1397
+
1398
+
1399
+ <li class="md-nav__item">
1400
+ <a href="../examples-and-fixtures/" class="md-nav__link">
1401
+
1402
+
1403
+
1404
+ <span class="md-ellipsis">
1405
+
1406
+
1407
+ English · Examples and fixtures
1408
+
1409
+
1410
+
1411
+ </span>
1412
+
1413
+
1414
+
1415
+ </a>
1416
+ </li>
1417
+
1418
+
1419
+
1420
+
1421
+
1422
+
1423
+
1424
+
1425
+
1426
+ <li class="md-nav__item">
1427
+ <a href="../recipes/" class="md-nav__link">
1428
+
1429
+
1430
+
1431
+ <span class="md-ellipsis">
1432
+
1433
+
1434
+ English · Recipes
1435
+
1436
+
1437
+
1438
+ </span>
1439
+
1440
+
1441
+
1442
+ </a>
1443
+ </li>
1444
+
1445
+
1446
+
1447
+
1448
+
1449
+
1450
+
1451
+
1452
+
1453
+ <li class="md-nav__item">
1454
+ <a href="../recipes/adopt-existing-repository/" class="md-nav__link">
1455
+
1456
+
1457
+
1458
+ <span class="md-ellipsis">
1459
+
1460
+
1461
+ English · Adopt an existing repository
1462
+
1463
+
1464
+
1465
+ </span>
1466
+
1467
+
1468
+
1469
+ </a>
1470
+ </li>
1471
+
1472
+
1473
+
1474
+
1475
+
1476
+
1477
+
1478
+
1479
+
1480
+ <li class="md-nav__item">
1481
+ <a href="../recipes/safe-filesystem-and-atomic-write/" class="md-nav__link">
1482
+
1483
+
1484
+
1485
+ <span class="md-ellipsis">
1486
+
1487
+
1488
+ English · Safe filesystem and atomic write
1489
+
1490
+
1491
+
1492
+ </span>
1493
+
1494
+
1495
+
1496
+ </a>
1497
+ </li>
1498
+
1499
+
1500
+
1501
+
1502
+
1503
+
1504
+
1505
+
1506
+
1507
+ <li class="md-nav__item">
1508
+ <a href="../recipes/adapter-text-closure/" class="md-nav__link">
1509
+
1510
+
1511
+
1512
+ <span class="md-ellipsis">
1513
+
1514
+
1515
+ English · Adapter text closure
1516
+
1517
+
1518
+
1519
+ </span>
1520
+
1521
+
1522
+
1523
+ </a>
1524
+ </li>
1525
+
1526
+
1527
+
1528
+
1529
+
1530
+
1531
+
1532
+
1533
+
1534
+ <li class="md-nav__item">
1535
+ <a href="../recipes/deterministic-human-report/" class="md-nav__link">
1536
+
1537
+
1538
+
1539
+ <span class="md-ellipsis">
1540
+
1541
+
1542
+ English · Deterministic human report
1543
+
1544
+
1545
+
1546
+ </span>
1547
+
1548
+
1549
+
1550
+ </a>
1551
+ </li>
1552
+
1553
+
1554
+
1555
+
1556
+
1557
+
1558
+
1559
+
1560
+
1561
+ <li class="md-nav__item">
1562
+ <a href="../recipes/durable-local-state/" class="md-nav__link">
1563
+
1564
+
1565
+
1566
+ <span class="md-ellipsis">
1567
+
1568
+
1569
+ English · Durable local state
1570
+
1571
+
1572
+
1573
+ </span>
1574
+
1575
+
1576
+
1577
+ </a>
1578
+ </li>
1579
+
1580
+
1581
+
1582
+
1583
+
1584
+
1585
+
1586
+
1587
+
1588
+ <li class="md-nav__item">
1589
+ <a href="../recipes/host-profile-integration/" class="md-nav__link">
1590
+
1591
+
1592
+
1593
+ <span class="md-ellipsis">
1594
+
1595
+
1596
+ English · Host Profile integration
1597
+
1598
+
1599
+
1600
+ </span>
1601
+
1602
+
1603
+
1604
+ </a>
1605
+ </li>
1606
+
1607
+
1608
+
1609
+
1610
+
1611
+
1612
+
1613
+
1614
+
1615
+ <li class="md-nav__item">
1616
+ <a href="../recipes/domain-schema-validation/" class="md-nav__link">
1617
+
1618
+
1619
+
1620
+ <span class="md-ellipsis">
1621
+
1622
+
1623
+ English · Domain Schema validation
1624
+
1625
+
1626
+
1627
+ </span>
1628
+
1629
+
1630
+
1631
+ </a>
1632
+ </li>
1633
+
1634
+
1635
+
1636
+
1637
+
1638
+
1639
+
1640
+
1641
+
1642
+ <li class="md-nav__item">
1643
+ <a href="../../integration/audit/" class="md-nav__link">
1644
+
1645
+
1646
+
1647
+ <span class="md-ellipsis">
1648
+
1649
+
1650
+ 审计集成 · 入口
1651
+
1652
+
1653
+
1654
+ </span>
1655
+
1656
+
1657
+
1658
+ </a>
1659
+ </li>
1660
+
1661
+
1662
+
1663
+
1664
+
1665
+
1666
+
1667
+
1668
+
1669
+ <li class="md-nav__item">
1670
+ <a href="../../integration/audit/mutation-taxonomy/" class="md-nav__link">
1671
+
1672
+
1673
+
1674
+ <span class="md-ellipsis">
1675
+
1676
+
1677
+ 审计集成 · 变异分类学
1678
+
1679
+
1680
+
1681
+ </span>
1682
+
1683
+
1684
+
1685
+ </a>
1686
+ </li>
1687
+
1688
+
1689
+
1690
+
1691
+
1692
+
1693
+
1694
+
1695
+
1696
+ <li class="md-nav__item">
1697
+ <a href="../../integration/audit/independence/" class="md-nav__link">
1698
+
1699
+
1700
+
1701
+ <span class="md-ellipsis">
1702
+
1703
+
1704
+ 审计集成 · 独立性证明
1705
+
1706
+
1707
+
1708
+ </span>
1709
+
1710
+
1711
+
1712
+ </a>
1713
+ </li>
1714
+
1715
+
1716
+
1717
+
1718
+
1719
+
1720
+
1721
+
1722
+
1723
+ <li class="md-nav__item">
1724
+ <a href="../../integration/audit/version-compatibility/" class="md-nav__link">
1725
+
1726
+
1727
+
1728
+ <span class="md-ellipsis">
1729
+
1730
+
1731
+ 审计集成 · 版本兼容
1732
+
1733
+
1734
+
1735
+ </span>
1736
+
1737
+
1738
+
1739
+ </a>
1740
+ </li>
1741
+
1742
+
1743
+
1744
+
1745
+
1746
+
1747
+
1748
+
1749
+
1750
+ <li class="md-nav__item">
1751
+ <a href="../../integration/audit/failure-evidence/" class="md-nav__link">
1752
+
1753
+
1754
+
1755
+ <span class="md-ellipsis">
1756
+
1757
+
1758
+ 审计集成 · 失败证据与 AUD 码
1759
+
1760
+
1761
+
1762
+ </span>
1763
+
1764
+
1765
+
1766
+ </a>
1767
+ </li>
1768
+
1769
+
1770
+
1771
+ </ul>
1772
+ </nav>
1773
+ </div>
1774
+ </div>
1775
+ </div>
1776
+
1777
+
1778
+
1779
+ <div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
1780
+ <div class="md-sidebar__scrollwrap">
1781
+ <div class="md-sidebar__inner">
1782
+
1783
+
1784
+ <nav class="md-nav md-nav--secondary" aria-label="目录">
1785
+
1786
+
1787
+
1788
+
1789
+
1790
+
1791
+ <label class="md-nav__title" for="__toc">
1792
+ <span class="md-nav__icon md-icon"></span>
1793
+ 目录
1794
+ </label>
1795
+ <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
1796
+
1797
+ <li class="md-nav__item">
1798
+ <a href="#Layers" class="md-nav__link">
1799
+ <span class="md-ellipsis">
1800
+
1801
+ Layers
1802
+
1803
+ </span>
1804
+ </a>
1805
+
1806
+ </li>
1807
+
1808
+ <li class="md-nav__item">
1809
+ <a href="#Responsibility-Matrix" class="md-nav__link">
1810
+ <span class="md-ellipsis">
1811
+
1812
+ Responsibility Matrix
1813
+
1814
+ </span>
1815
+ </a>
1816
+
1817
+ </li>
1818
+
1819
+ <li class="md-nav__item">
1820
+ <a href="#Capability-Ownership-Algorithm" class="md-nav__link">
1821
+ <span class="md-ellipsis">
1822
+
1823
+ Capability Ownership Algorithm
1824
+
1825
+ </span>
1826
+ </a>
1827
+
1828
+ </li>
1829
+
1830
+ <li class="md-nav__item">
1831
+ <a href="#Trust-and-Side-Effect-Boundaries" class="md-nav__link">
1832
+ <span class="md-ellipsis">
1833
+
1834
+ Trust and Side-Effect Boundaries
1835
+
1836
+ </span>
1837
+ </a>
1838
+
1839
+ </li>
1840
+
1841
+ <li class="md-nav__item">
1842
+ <a href="#Architecture-Decision-Tree" class="md-nav__link">
1843
+ <span class="md-ellipsis">
1844
+
1845
+ Architecture Decision Tree
1846
+
1847
+ </span>
1848
+ </a>
1849
+
1850
+ </li>
1851
+
1852
+ <li class="md-nav__item">
1853
+ <a href="#Routing-Relationships-with-External-Projects" class="md-nav__link">
1854
+ <span class="md-ellipsis">
1855
+
1856
+ Routing Relationships with External Projects
1857
+
1858
+ </span>
1859
+ </a>
1860
+
1861
+ </li>
1862
+
1863
+ <li class="md-nav__item">
1864
+ <a href="#Next-Phase-Capability-Lines-Architecture-Hand-off" class="md-nav__link">
1865
+ <span class="md-ellipsis">
1866
+
1867
+ Next-Phase Capability Lines (Architecture Hand-off)
1868
+
1869
+ </span>
1870
+ </a>
1871
+
1872
+ </li>
1873
+
1874
+ <li class="md-nav__item">
1875
+ <a href="#First-Version-Budget" class="md-nav__link">
1876
+ <span class="md-ellipsis">
1877
+
1878
+ First-Version Budget
1879
+
1880
+ </span>
1881
+ </a>
1882
+
1883
+ </li>
1884
+
1885
+ <li class="md-nav__item">
1886
+ <a href="#Machine-Source-of-Truth-and-File-Classification" class="md-nav__link">
1887
+ <span class="md-ellipsis">
1888
+
1889
+ Machine Source of Truth and File Classification
1890
+
1891
+ </span>
1892
+ </a>
1893
+
1894
+ </li>
1895
+
1896
+ <li class="md-nav__item">
1897
+ <a href="#Documentation-System-and-Fact-Check" class="md-nav__link">
1898
+ <span class="md-ellipsis">
1899
+
1900
+ Documentation System and Fact-Check
1901
+
1902
+ </span>
1903
+ </a>
1904
+
1905
+ </li>
1906
+
1907
+ <li class="md-nav__item">
1908
+ <a href="#Stable-Product-Gates" class="md-nav__link">
1909
+ <span class="md-ellipsis">
1910
+
1911
+ Stable Product Gates
1912
+
1913
+ </span>
1914
+ </a>
1915
+
1916
+ </li>
1917
+
1918
+ </ul>
1919
+
1920
+ </nav>
1921
+ </div>
1922
+ </div>
1923
+ </div>
1924
+
1925
+
1926
+
1927
+ <div class="md-content" data-md-component="content">
1928
+
1929
+ <article class="md-content__inner md-typeset">
1930
+
1931
+
1932
+
1933
+
1934
+
1935
+ <blockquote>
1936
+ <p><a href="../../architecture/">简体中文</a></p>
1937
+ </blockquote>
1938
+ <h1 id="Architecture-Boundaries">Architecture Boundaries<a class="headerlink" href="#Architecture-Boundaries" title="Permanent link">&para;</a></h1>
1939
+ <p>This page is the stable architecture projection of Skill Family Foundation for users. It explains only structure, responsibilities, boundaries, and routing; it does not carry dynamic release state (release state is recorded solely in <code>docs/status/current.md</code> and mechanically verified by <code>scripts/docs/fact-check.mjs</code>). All versions, commands, package counts, and support states are recomputed from the machine source of truth.</p>
1940
+ <h2 id="Layers">Layers<a class="headerlink" href="#Layers" title="Permanent link">&para;</a></h2>
1941
+ <p>The layering established by the 2026-08-09 architecture hand-off (FND-ADR-001~007, active, see <code>artifacts/decisions/</code>): a vertical dependency chain of four layers, with horizontal capability attachments, and no new vertical layers added.</p>
1942
+ <pre><code class="language-text">Skill Family business (per-product repositories: release-skill, loop-agent, skill-eval, etc.)
1943
+ │ depends on
1944
+ ▼
1945
+ Engineering Kit (scaffold / adopt-plan / projection / check)
1946
+ │ depends on
1947
+ ▼
1948
+ Harness Node (Contracts mechanism-protocol implementation)
1949
+ │ depends on
1950
+ ▼
1951
+ Contracts (structure, protocols, error codes, protocol-name registry)
1952
+ ▲
1953
+ └---------------- independent Audit consumer
1954
+
1955
+ Horizontal (attachment surfaces, no new vertical layers):
1956
+ - profiles/ declarations of host and project-shape differences; implements only the stable SPI
1957
+ - host external AI coding runtime environment: owns semantics; Foundation unifies structural differences
1958
+ - release-skill release state and all remote writes; does not enter Foundation
1959
+ - Artifact Graph the `artifacts/` architecture artifact system; its gate is check:artifacts
1960
+ </code></pre>
1961
+ <p>Arrows point to the depended-upon party. The public core must not depend in reverse on a concrete Profile or a concrete skill family; where a new capability's dependency direction lands is specified in <code>artifacts/design/FND-DES-001.md</code>, and asset-by-asset ownership is in FND-ADR-002.</p>
1962
+ <h2 id="Responsibility-Matrix">Responsibility Matrix<a class="headerlink" href="#Responsibility-Matrix" title="Permanent link">&para;</a></h2>
1963
+ <p>Each layer assumes only the responsibilities listed below; out-of-scope capabilities are owned by external projects or consumers.</p>
1964
+ <table>
1965
+ <thead>
1966
+ <tr>
1967
+ <th>Layer</th>
1968
+ <th>Owns</th>
1969
+ <th>Does not own (lands elsewhere)</th>
1970
+ </tr>
1971
+ </thead>
1972
+ <tbody>
1973
+ <tr>
1974
+ <td>Contracts</td>
1975
+ <td>Structure, protocols, error codes, protocol-name registry; 18 top-level object kinds; 9 mandatory rules</td>
1976
+ <td>Business-field semantics, domain auditing, remote writes, model generation</td>
1977
+ </tr>
1978
+ <tr>
1979
+ <td>Harness</td>
1980
+ <td>Node mechanism implementation of Contracts; path containment, atomic write, closures, request handling, report rendering, host-access mechanism, state substrate</td>
1981
+ <td>Business semantics, workflow orchestration, model invocation, git writes, network remotes</td>
1982
+ </tr>
1983
+ <tr>
1984
+ <td>Engineering Kit</td>
1985
+ <td>The four engineering commands and their read-only / restricted-write boundaries; host sub-action injection of concrete Profiles</td>
1986
+ <td>Auto-fix, auto-migration, remote release, a fifth command</td>
1987
+ </tr>
1988
+ <tr>
1989
+ <td>Profile</td>
1990
+ <td>Declarative SPI for host and project-shape differences; implements only the stable SPI</td>
1991
+ <td>Business semantics, executable-script entry points, public-core changes</td>
1992
+ </tr>
1993
+ <tr>
1994
+ <td>release-skill</td>
1995
+ <td>Release state and all remote writes</td>
1996
+ <td>Foundation contains no publish/remote-write entry point</td>
1997
+ </tr>
1998
+ <tr>
1999
+ <td>loop-agent</td>
2000
+ <td>Tasks, retries, rework, acceptance, self-iteration</td>
2001
+ <td>Foundation does not define a workflow state machine</td>
2002
+ </tr>
2003
+ <tr>
2004
+ <td>Artifact Graph</td>
2005
+ <td>Artifact relationships, context, packet, version-lock</td>
2006
+ <td>Foundation does not own the artifact graph</td>
2007
+ </tr>
2008
+ <tr>
2009
+ <td>Audit</td>
2010
+ <td>Independent fixtures, expected values, adjudication</td>
2011
+ <td>Domain-semantic conclusions are owned by external review</td>
2012
+ </tr>
2013
+ </tbody>
2014
+ </table>
2015
+ <h2 id="Capability-Ownership-Algorithm">Capability Ownership Algorithm<a class="headerlink" href="#Capability-Ownership-Algorithm" title="Permanent link">&para;</a></h2>
2016
+ <p>Given an architecture requirement, decide ownership in the following order, stopping at the first match:</p>
2017
+ <ol>
2018
+ <li>Contains domain semantics, a business state machine, or an audit oracle → keep it with the consumer; connect only business-neutral mechanisms.</li>
2019
+ <li>Is structure, a protocol, a stable error code, or an object Schema → Contracts.</li>
2020
+ <li>Is a Node mechanism reusable across skill families → Harness.</li>
2021
+ <li>Is scaffold/adopt-plan/projection/check or a concrete host Profile injection → Kit / Profile.</li>
2022
+ <li>Involves publishing remote state → release-skill.</li>
2023
+ <li>Involves tasks/retries/rework/acceptance → loop-agent.</li>
2024
+ <li>Involves artifact relationships / version-lock → artifact-graph.</li>
2025
+ <li>Has only one consumer, or has not been proven to repeat across two real consumers → keep it with the consumer; do not expand Foundation.</li>
2026
+ </ol>
2027
+ <p>Step 8 is the expansion gate: a new component must justify that deleting it would force two or more real consumers to re-implement it, and this must be verified by an independent fixture. The machine-readable version is in <code>docs/agents/architecture-routing.md</code>.</p>
2028
+ <h2 id="Trust-and-Side-Effect-Boundaries">Trust and Side-Effect Boundaries<a class="headerlink" href="#Trust-and-Side-Effect-Boundaries" title="Permanent link">&para;</a></h2>
2029
+ <p>Foundation's trust assumptions and side-effect conventions are solidified per layer; callers judge risk accordingly:</p>
2030
+ <ul>
2031
+ <li><strong>Contracts</strong>: pure functions, no file/Git/network/process side effects; error codes are frozen and do not drift (<code>foundation.contracts.error-codes</code>).</li>
2032
+ <li><strong>Harness</strong>: the mechanism layer reads and writes only within contained paths; <code>HARNESS_EXCLUSIONS</code> excludes release-state, remote-network-access, business-semantics, workflow-orchestration, model-calls, git-writes (<code>foundation.harness.errors</code>).</li>
2033
+ <li><strong>Engineering Kit</strong>: <code>FORBIDDEN_SIDE_EFFECTS</code> includes git-init/commit/push/tag, publish, remote-write; <code>REFUSED_MUTATION_FLAGS</code> are refused at the CLI entry point (<code>foundation.kit.cli</code>).</li>
2034
+ <li><strong>Profile</strong>: declarative differences; the entry point must be a JSON data resource; <code>coreOwned</code> (packages/commands/namespacePrefixes) is a forbidden target (<code>foundation.profile.extension-spi</code>).</li>
2035
+ <li><strong>State substrate</strong>: the event log is the sole authority, and the snapshot is a derived cache; <code>confirmOwnerTerminated</code> is an external trust anchor provided by the caller, and does not promise resistance against same-privilege malicious processes (<code>foundation.harness.state-store</code>).</li>
2036
+ </ul>
2037
+ <h2 id="Architecture-Decision-Tree">Architecture Decision Tree<a class="headerlink" href="#Architecture-Decision-Tree" title="Permanent link">&para;</a></h2>
2038
+ <pre><code class="language-text">Requirement contains domain semantics/state machine/audit? ──yes──▶ keep with consumer
2039
+ │no
2040
+ Is it structure/protocol/error code/Schema? ──yes──▶ Contracts
2041
+ │no
2042
+ Is it a Node mechanism across skill families? ──yes──▶ Harness
2043
+ │no
2044
+ Is it scaffold/adopt/projection/check or Profile injection? ──yes──▶ Kit / Profile
2045
+ │no
2046
+ Involves publishing remote state? ──yes──▶ release-skill
2047
+ │no
2048
+ Involves tasks/retries/rework/acceptance? ──yes──▶ loop-agent
2049
+ │no
2050
+ Involves artifact relationships/version-lock? ──yes──▶ artifact-graph
2051
+ │no
2052
+ Only one consumer / not proven across two real consumers? ──yes──▶ keep with consumer, do not expand
2053
+ </code></pre>
2054
+ <h2 id="Routing-Relationships-with-External-Projects">Routing Relationships with External Projects<a class="headerlink" href="#Routing-Relationships-with-External-Projects" title="Permanent link">&para;</a></h2>
2055
+ <p>Foundation is not an all-powerful base. The following responsibilities are explicitly outside Foundation:</p>
2056
+ <ul>
2057
+ <li><strong>Release and remote writes</strong>: owned by release-skill; Foundation provides no publish/remote-write entry point (<code>foundation.unsupported.remote-publish</code>).</li>
2058
+ <li><strong>Task lifecycle</strong>: owned by loop-agent (tasks, retries, rework, acceptance); Foundation contains no workflow state machine (<code>foundation.unsupported.business-state-machine</code>).</li>
2059
+ <li><strong>Artifact governance</strong>: artifact-graph owns the <code>artifacts/</code> relationship contract and version-lock; its gate is <code>check:artifacts</code>.</li>
2060
+ <li><strong>Domain auditing</strong>: an independent audit consumer owns the semantics and final accept/reject; Foundation provides only a deterministic audit surface (<code>foundation.unsupported.domain-audit-semantics</code>).</li>
2061
+ <li><strong>Host apply and lifecycle</strong>: host apply is stably refused, install/update/uninstall are unimplemented, and the full Qoder driver is unsupported (<code>foundation.unsupported.host-apply</code>, <code>foundation.unsupported.host-install-update-uninstall</code>, <code>foundation.unsupported.qoder-driver</code>).</li>
2062
+ </ul>
2063
+ <h2 id="Next-Phase-Capability-Lines-Architecture-Hand-off">Next-Phase Capability Lines (Architecture Hand-off)<a class="headerlink" href="#Next-Phase-Capability-Lines-Architecture-Hand-off" title="Permanent link">&para;</a></h2>
2064
+ <p>All three capability lines were included via the FND-ADR-001 capability admission-gate adjudication and all land within the existing layers:</p>
2065
+ <ul>
2066
+ <li><strong>Host-access line</strong> (FND-FR-001/FND-FR-002, FND-ADR-003): Contracts registers descriptor/source/manifest/probe/plan/receipt; Harness implements generic source closure, atomic build/materialize, and probe classification; Kit injects the concrete Profile and trusted driver. Currently only describe/build/probe/plan are supported; <code>apply</code> is stably refused; install/uninstall/update are unimplemented.</li>
2067
+ <li><strong>Durable state-substrate line</strong> (FND-FR-003, FND-ADR-004): append-only events, hash chain, snapshots, and verification recovery; provides only the state substrate, not business semantics such as state machines, task nodes, retries, terminal states, or memory.</li>
2068
+ <li><strong>Human-report line</strong> (FND-FR-004, FND-ADR-005): a two-layer contract — machine results are the sole source of truth, and the human report is deterministically rendered from machine results (Markdown + digest binding + graded checks), not freely authored.</li>
2069
+ </ul>
2070
+ <p>The three-package structure is preserved and a fourth package is not split out (FND-ADR-007); artifact governance uses the artifact-graph CLI and version-lock (FND-ADR-006).</p>
2071
+ <h2 id="First-Version-Budget">First-Version Budget<a class="headerlink" href="#First-Version-Budget" title="Permanent link">&para;</a></h2>
2072
+ <ul>
2073
+ <li>Top-level Contracts objects: 18 kinds (the complete list uses <code>packages/skill-family-contracts/src/registry.json</code> as the sole source of truth): project-manifest, profile-descriptor, managed-file-lock, operation-request, operation-result, migration-manifest, adapter-source, report-model, report-binding, host-descriptor, host-registry, host-capability-fact, host-probe-result, adapter-build-manifest, host-operation-plan, host-operation-receipt, state-event-envelope, state-snapshot-metadata;</li>
2074
+ <li>Kit top-level commands: 4 (scaffold, adopt-plan, projection, check);</li>
2075
+ <li>Mandatory mechanical rules: currently 9, budget not exceeding 20, absolute ceiling 30; CR-001 uniformly compiles all Schemas within the registry;</li>
2076
+ <li>Leaf packages: 3 (skill-family-contracts, skill-family-harness-node, skill-family-engineering-kit);</li>
2077
+ <li>Schema validator: Ajv 8.20.0 (exact version pin), supporting both draft-07 and 2020-12 dialects;</li>
2078
+ <li>kernel protocol: skill-family.kernel.operation (stable), Contracts version 1.4.0;</li>
2079
+ <li>Default runtime language: Node; first-version implementations in a second language: 0.</li>
2080
+ </ul>
2081
+ <p>Any new component must justify the two-or-more real-consumer re-implementation that deleting it would cause, and be verified by an independent fixture.</p>
2082
+ <h2 id="Machine-Source-of-Truth-and-File-Classification">Machine Source of Truth and File Classification<a class="headerlink" href="#Machine-Source-of-Truth-and-File-Classification" title="Permanent link">&para;</a></h2>
2083
+ <table>
2084
+ <thead>
2085
+ <tr>
2086
+ <th>Source of truth</th>
2087
+ <th>Content</th>
2088
+ </tr>
2089
+ </thead>
2090
+ <tbody>
2091
+ <tr>
2092
+ <td><code>.foundation/skeleton-manifest.json</code></td>
2093
+ <td>Package manifest, Profiles, fixtures, top-level commands</td>
2094
+ </tr>
2095
+ <tr>
2096
+ <td><code>.foundation/version-lock.json</code></td>
2097
+ <td>Exact versions and lock points for projen, pnpm, Node</td>
2098
+ </tr>
2099
+ <tr>
2100
+ <td><code>.foundation/file-registry.json</code></td>
2101
+ <td>Registration of managed / handwritten / artifact file classes</td>
2102
+ </tr>
2103
+ <tr>
2104
+ <td><code>package.json</code> and <code>packages/*/package.json</code></td>
2105
+ <td>Versions, commands, dependencies (all projen-managed)</td>
2106
+ </tr>
2107
+ <tr>
2108
+ <td><code>packages/skill-family-contracts/src/registry.json</code></td>
2109
+ <td>Protocol-name and Schema $id registry</td>
2110
+ </tr>
2111
+ <tr>
2112
+ <td><code>scripts/release-artifact-contract.json</code></td>
2113
+ <td>Fixed three-package release byte contract (members, required items, and content-digest rules)</td>
2114
+ </tr>
2115
+ </tbody>
2116
+ </table>
2117
+ <p>Managed files can only be modified via <code>.projenrc.js</code> and regenerated by running <code>pnpm synth</code>; handwritten files (including all documentation) are not overwritten by synth. The authoritative classification is in <code>.foundation/file-registry.json</code>.</p>
2118
+ <h2 id="Documentation-System-and-Fact-Check">Documentation System and Fact-Check<a class="headerlink" href="#Documentation-System-and-Fact-Check" title="Permanent link">&para;</a></h2>
2119
+ <p>The documentation system aims to eliminate manual drift through deterministic checks:</p>
2120
+ <ol>
2121
+ <li><strong>Frozen fact package</strong>: documentation writing consumes only the machine sources of truth listed in the table above. Models or authors must not write versions, commands, or package counts from memory; model names, credentials, and scheduling information do not enter documentation, nor do they enter Contracts.</li>
2122
+ <li><strong>Fact-check</strong>: <code>node scripts/docs/fact-check.mjs</code> verifies package names, commands, gate facts, version pins, and key numbers in the documentation against the source of truth, and cross-checks consistency across sources (manifest vs package.json, version-lock vs packageManager, rule count vs budget, etc.).</li>
2123
+ <li><strong>Link-check</strong>: <code>node scripts/docs/link-check.mjs</code> resolves in-repo relative links and heading anchors across the README and all <code>docs/**/*.md</code>, and verifies that <code>mkdocs.yml</code> nav is complete.</li>
2124
+ <li><strong>No-workflow boundary and public-boundary verification</strong>: this repository has no CI/CD workflow at all (the old topology's three Actions — ci/docs/docs-deploy — have been entirely deleted); all gates run within the private workspace (<code>pnpm check</code>); the public boundary is mechanically verified by <code>check:public-snapshots</code> and the release byte contract. The public static site is rendered by <code>scripts/render-public-site.mjs</code> (with the sole output <code>docs/public/site/**</code> and the deterministic baseline <code>docs/public/site-baseline.json</code>).</li>
2125
+ <li><strong>Version lock</strong>: the site toolchain is locked in <code>scripts/docs/toolchain.json</code> and <code>scripts/docs/requirements.txt</code>; the build uses only an out-of-repo Python virtual environment, with no system-level pip install.</li>
2126
+ </ol>
2127
+ <p>Both check scripts can be run directly via <code>node scripts/docs/&lt;name&gt;.mjs</code>: <code>fact-check.mjs</code> consumes the root-pinned <code>semver@7.8.5</code> via in-repo modules and requires <code>pnpm install --frozen-lockfile</code> to be completed first; <code>link-check.mjs</code> is a pure Node implementation. See <code>scripts/docs/README.md</code> for responsibilities.</p>
2128
+ <h2 id="Stable-Product-Gates">Stable Product Gates<a class="headerlink" href="#Stable-Product-Gates" title="Permanent link">&para;</a></h2>
2129
+ <p>The root <code>pnpm check</code> orchestrates only the 11 stable product gate IDs (<code>check:structure</code>~<code>check:artifacts</code>, each ID listed in Current Product Status), and no longer hard-pins the original command list; each stable ID composes a few product checks within its own package script. Gate facts are mechanically derived by <code>node scripts/docs/fact-check.mjs</code> from the root <code>package.json</code>'s <code>scripts.check</code> and verified verbatim. Documentation and setup invoke or list only the 11 stable IDs or the root <code>pnpm check</code>, and do not duplicate the underlying command list.</p>
2130
+ <p>The honest boundary of in-repo checks: structural checks only prove "byte/structural consistency (provable in-repo)"; one-time migration completeness, ordinary prose semantics, and the final accept/reject conclusion belong to the responsibility of external review; no second gate registry, baseline, or command comparator is maintained within the target repository.</p>
2131
+
2132
+
2133
+
2134
+
2135
+
2136
+
2137
+
2138
+
2139
+
2140
+
2141
+
2142
+
2143
+
2144
+ </article>
2145
+ </div>
2146
+
2147
+
2148
+ <script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
2149
+ </div>
2150
+
2151
+ </main>
2152
+
2153
+ <footer class="md-footer">
2154
+
2155
+ <div class="md-footer-meta md-typeset">
2156
+ <div class="md-footer-meta__inner md-grid">
2157
+ <div class="md-copyright">
2158
+
2159
+
2160
+ Made with
2161
+ <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
2162
+ Material for MkDocs
2163
+ </a>
2164
+
2165
+ </div>
2166
+
2167
+ </div>
2168
+ </div>
2169
+ </footer>
2170
+
2171
+ </div>
2172
+ <div class="md-dialog" data-md-component="dialog">
2173
+ <div class="md-dialog__inner md-typeset"></div>
2174
+ </div>
2175
+
2176
+
2177
+
2178
+
2179
+
2180
+ <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>
2181
+
2182
+
2183
+ <script src="../../assets/javascripts/bundle.d7400e89.min.js"></script>
2184
+
2185
+
2186
+ </body>
2187
+ </html>