skill-family-engineering-kit 0.2.0 → 0.2.1

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 (70) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/CHANGELOG.zh-CN.md +21 -0
  3. package/NOTICE +10 -0
  4. package/README.md +157 -55
  5. package/README.zh-CN.md +207 -0
  6. package/candidate/index.mjs +4 -0
  7. package/candidate/profile-bundle.mjs +268 -0
  8. package/candidate/projection-bundle-cli.mjs +22 -0
  9. package/docs/404.html +1434 -408
  10. package/docs/agents/architecture-routing/index.html +1944 -0
  11. package/docs/agents/capability-catalog.en.json +1561 -0
  12. package/docs/agents/capability-catalog.json +934 -0
  13. package/docs/agents/capability-catalog.schema.json +179 -0
  14. package/docs/agents/capability-catalog.zh-CN.json +1561 -0
  15. package/docs/agents/index.html +1914 -0
  16. package/docs/architecture/index.html +1706 -497
  17. package/docs/assets/javascripts/lunr/tinyseg.js +2 -2
  18. package/docs/assets/javascripts/lunr/wordcut.js +37 -37
  19. package/docs/en/agents/architecture-routing/index.html +1944 -0
  20. package/docs/en/agents/index.html +1925 -0
  21. package/docs/en/architecture/index.html +2187 -0
  22. package/docs/en/examples-and-fixtures/index.html +1888 -0
  23. package/docs/en/help/index.html +2035 -0
  24. package/docs/en/index.html +1895 -0
  25. package/docs/en/licensing/index.html +1917 -0
  26. package/docs/en/migration/index.html +2334 -0
  27. package/docs/en/quickstart/index.html +1919 -0
  28. package/docs/en/recipes/adapter-text-closure/index.html +2000 -0
  29. package/docs/en/recipes/adopt-existing-repository/index.html +1986 -0
  30. package/docs/en/recipes/deterministic-human-report/index.html +1998 -0
  31. package/docs/en/recipes/domain-schema-validation/index.html +2007 -0
  32. package/docs/en/recipes/durable-local-state/index.html +2009 -0
  33. package/docs/en/recipes/host-profile-integration/index.html +2001 -0
  34. package/docs/en/recipes/index.html +1876 -0
  35. package/docs/en/recipes/safe-filesystem-and-atomic-write/index.html +1994 -0
  36. package/docs/en/reference/api/index.html +1917 -0
  37. package/docs/en/reference/compatibility/index.html +1990 -0
  38. package/docs/en/reference/failure-and-side-effect-matrix/index.html +2216 -0
  39. package/docs/examples-and-fixtures/index.html +1871 -0
  40. package/docs/git-lifecycle/index.html +1508 -482
  41. package/docs/help/index.html +1655 -554
  42. package/docs/index.html +1479 -450
  43. package/docs/integration/audit/failure-evidence/index.html +1488 -462
  44. package/docs/integration/audit/independence/index.html +1513 -487
  45. package/docs/integration/audit/index.html +1514 -488
  46. package/docs/integration/audit/mutation-taxonomy/index.html +1548 -522
  47. package/docs/integration/audit/version-compatibility/index.html +1489 -463
  48. package/docs/licensing/index.html +1917 -0
  49. package/docs/migration/index.html +1678 -586
  50. package/docs/public/status/index.html +1542 -516
  51. package/docs/quickstart/index.html +1589 -539
  52. package/docs/recipes/adapter-text-closure/index.html +2000 -0
  53. package/docs/recipes/adopt-existing-repository/index.html +1986 -0
  54. package/docs/recipes/deterministic-human-report/index.html +1998 -0
  55. package/docs/recipes/domain-schema-validation/index.html +2007 -0
  56. package/docs/recipes/durable-local-state/index.html +2009 -0
  57. package/docs/recipes/host-profile-integration/index.html +2001 -0
  58. package/docs/recipes/index.html +1876 -0
  59. package/docs/recipes/safe-filesystem-and-atomic-write/index.html +1994 -0
  60. package/docs/reference/api/contracts/index.html +2532 -0
  61. package/docs/reference/api/engineering-kit/index.html +2551 -0
  62. package/docs/reference/api/harness/index.html +2608 -0
  63. package/docs/reference/api/index.html +1857 -0
  64. package/docs/reference/compatibility/index.html +1990 -0
  65. package/docs/reference/failure-and-side-effect-matrix/index.html +2216 -0
  66. package/docs/search/search_index.json +1 -1
  67. package/docs/setup/index.html +1494 -468
  68. package/docs/sitemap.xml +152 -0
  69. package/package.json +14 -4
  70. package/release-notes/0.2.1.yaml +23 -0
@@ -0,0 +1,1944 @@
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/agents/architecture-routing/">
14
+
15
+
16
+ <link rel="prev" href="../">
17
+
18
+
19
+ <link rel="next" href="../../reference/compatibility/">
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 routing - 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-Routing-From-Intent-to-Layer-Capability-and-External-Project" 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 routing
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
+ <li class="md-nav__item">
1043
+ <a href="../../migration/" class="md-nav__link">
1044
+
1045
+
1046
+
1047
+ <span class="md-ellipsis">
1048
+
1049
+
1050
+ English · Migration
1051
+
1052
+
1053
+
1054
+ </span>
1055
+
1056
+
1057
+
1058
+ </a>
1059
+ </li>
1060
+
1061
+
1062
+
1063
+
1064
+
1065
+
1066
+
1067
+
1068
+
1069
+ <li class="md-nav__item">
1070
+ <a href="../../licensing/" class="md-nav__link">
1071
+
1072
+
1073
+
1074
+ <span class="md-ellipsis">
1075
+
1076
+
1077
+ English · Licensing
1078
+
1079
+
1080
+
1081
+ </span>
1082
+
1083
+
1084
+
1085
+ </a>
1086
+ </li>
1087
+
1088
+
1089
+
1090
+
1091
+
1092
+
1093
+
1094
+
1095
+
1096
+ <li class="md-nav__item">
1097
+ <a href="../" class="md-nav__link">
1098
+
1099
+
1100
+
1101
+ <span class="md-ellipsis">
1102
+
1103
+
1104
+ English · Agent entry
1105
+
1106
+
1107
+
1108
+ </span>
1109
+
1110
+
1111
+
1112
+ </a>
1113
+ </li>
1114
+
1115
+
1116
+
1117
+
1118
+
1119
+
1120
+
1121
+
1122
+
1123
+
1124
+
1125
+ <li class="md-nav__item md-nav__item--active">
1126
+
1127
+ <input class="md-nav__toggle md-toggle" type="checkbox" id="__toc">
1128
+
1129
+
1130
+
1131
+
1132
+
1133
+ <label class="md-nav__link md-nav__link--active" for="__toc">
1134
+
1135
+
1136
+
1137
+ <span class="md-ellipsis">
1138
+
1139
+
1140
+ English · Architecture routing
1141
+
1142
+
1143
+
1144
+ </span>
1145
+
1146
+
1147
+
1148
+ <span class="md-nav__icon md-icon"></span>
1149
+ </label>
1150
+
1151
+ <a href="./" class="md-nav__link md-nav__link--active">
1152
+
1153
+
1154
+
1155
+ <span class="md-ellipsis">
1156
+
1157
+
1158
+ English · Architecture routing
1159
+
1160
+
1161
+
1162
+ </span>
1163
+
1164
+
1165
+
1166
+ </a>
1167
+
1168
+
1169
+
1170
+ <nav class="md-nav md-nav--secondary" aria-label="目录">
1171
+
1172
+
1173
+
1174
+
1175
+
1176
+
1177
+ <label class="md-nav__title" for="__toc">
1178
+ <span class="md-nav__icon md-icon"></span>
1179
+ 目录
1180
+ </label>
1181
+ <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
1182
+
1183
+ <li class="md-nav__item">
1184
+ <a href="#Decision-Order" class="md-nav__link">
1185
+ <span class="md-ellipsis">
1186
+
1187
+ Decision Order
1188
+
1189
+ </span>
1190
+ </a>
1191
+
1192
+ </li>
1193
+
1194
+ <li class="md-nav__item">
1195
+ <a href="#Routing-Table" class="md-nav__link">
1196
+ <span class="md-ellipsis">
1197
+
1198
+ Routing Table
1199
+
1200
+ </span>
1201
+ </a>
1202
+
1203
+ </li>
1204
+
1205
+ <li class="md-nav__item">
1206
+ <a href="#Layer-Location-Quick-Reference" class="md-nav__link">
1207
+ <span class="md-ellipsis">
1208
+
1209
+ Layer-Location Quick Reference
1210
+
1211
+ </span>
1212
+ </a>
1213
+
1214
+ </li>
1215
+
1216
+ <li class="md-nav__item">
1217
+ <a href="#Typical-Misrouting-and-Correction" class="md-nav__link">
1218
+ <span class="md-ellipsis">
1219
+
1220
+ Typical Misrouting and Correction
1221
+
1222
+ </span>
1223
+ </a>
1224
+
1225
+ </li>
1226
+
1227
+ </ul>
1228
+
1229
+ </nav>
1230
+
1231
+ </li>
1232
+
1233
+
1234
+
1235
+
1236
+
1237
+
1238
+
1239
+
1240
+
1241
+ <li class="md-nav__item">
1242
+ <a href="../../reference/compatibility/" class="md-nav__link">
1243
+
1244
+
1245
+
1246
+ <span class="md-ellipsis">
1247
+
1248
+
1249
+ English · Compatibility
1250
+
1251
+
1252
+
1253
+ </span>
1254
+
1255
+
1256
+
1257
+ </a>
1258
+ </li>
1259
+
1260
+
1261
+
1262
+
1263
+
1264
+
1265
+
1266
+
1267
+
1268
+ <li class="md-nav__item">
1269
+ <a href="../../reference/failure-and-side-effect-matrix/" class="md-nav__link">
1270
+
1271
+
1272
+
1273
+ <span class="md-ellipsis">
1274
+
1275
+
1276
+ English · Failures and side effects
1277
+
1278
+
1279
+
1280
+ </span>
1281
+
1282
+
1283
+
1284
+ </a>
1285
+ </li>
1286
+
1287
+
1288
+
1289
+
1290
+
1291
+
1292
+
1293
+
1294
+
1295
+ <li class="md-nav__item">
1296
+ <a href="../../reference/api/" class="md-nav__link">
1297
+
1298
+
1299
+
1300
+ <span class="md-ellipsis">
1301
+
1302
+
1303
+ English · API reference
1304
+
1305
+
1306
+
1307
+ </span>
1308
+
1309
+
1310
+
1311
+ </a>
1312
+ </li>
1313
+
1314
+
1315
+
1316
+
1317
+
1318
+
1319
+
1320
+
1321
+
1322
+ <li class="md-nav__item">
1323
+ <a href="../../examples-and-fixtures/" class="md-nav__link">
1324
+
1325
+
1326
+
1327
+ <span class="md-ellipsis">
1328
+
1329
+
1330
+ English · Examples and fixtures
1331
+
1332
+
1333
+
1334
+ </span>
1335
+
1336
+
1337
+
1338
+ </a>
1339
+ </li>
1340
+
1341
+
1342
+
1343
+
1344
+
1345
+
1346
+
1347
+
1348
+
1349
+ <li class="md-nav__item">
1350
+ <a href="../../recipes/" class="md-nav__link">
1351
+
1352
+
1353
+
1354
+ <span class="md-ellipsis">
1355
+
1356
+
1357
+ English · Recipes
1358
+
1359
+
1360
+
1361
+ </span>
1362
+
1363
+
1364
+
1365
+ </a>
1366
+ </li>
1367
+
1368
+
1369
+
1370
+
1371
+
1372
+
1373
+
1374
+
1375
+
1376
+ <li class="md-nav__item">
1377
+ <a href="../../recipes/adopt-existing-repository/" class="md-nav__link">
1378
+
1379
+
1380
+
1381
+ <span class="md-ellipsis">
1382
+
1383
+
1384
+ English · Adopt an existing repository
1385
+
1386
+
1387
+
1388
+ </span>
1389
+
1390
+
1391
+
1392
+ </a>
1393
+ </li>
1394
+
1395
+
1396
+
1397
+
1398
+
1399
+
1400
+
1401
+
1402
+
1403
+ <li class="md-nav__item">
1404
+ <a href="../../recipes/safe-filesystem-and-atomic-write/" class="md-nav__link">
1405
+
1406
+
1407
+
1408
+ <span class="md-ellipsis">
1409
+
1410
+
1411
+ English · Safe filesystem and atomic write
1412
+
1413
+
1414
+
1415
+ </span>
1416
+
1417
+
1418
+
1419
+ </a>
1420
+ </li>
1421
+
1422
+
1423
+
1424
+
1425
+
1426
+
1427
+
1428
+
1429
+
1430
+ <li class="md-nav__item">
1431
+ <a href="../../recipes/adapter-text-closure/" class="md-nav__link">
1432
+
1433
+
1434
+
1435
+ <span class="md-ellipsis">
1436
+
1437
+
1438
+ English · Adapter text closure
1439
+
1440
+
1441
+
1442
+ </span>
1443
+
1444
+
1445
+
1446
+ </a>
1447
+ </li>
1448
+
1449
+
1450
+
1451
+
1452
+
1453
+
1454
+
1455
+
1456
+
1457
+ <li class="md-nav__item">
1458
+ <a href="../../recipes/deterministic-human-report/" class="md-nav__link">
1459
+
1460
+
1461
+
1462
+ <span class="md-ellipsis">
1463
+
1464
+
1465
+ English · Deterministic human report
1466
+
1467
+
1468
+
1469
+ </span>
1470
+
1471
+
1472
+
1473
+ </a>
1474
+ </li>
1475
+
1476
+
1477
+
1478
+
1479
+
1480
+
1481
+
1482
+
1483
+
1484
+ <li class="md-nav__item">
1485
+ <a href="../../recipes/durable-local-state/" class="md-nav__link">
1486
+
1487
+
1488
+
1489
+ <span class="md-ellipsis">
1490
+
1491
+
1492
+ English · Durable local state
1493
+
1494
+
1495
+
1496
+ </span>
1497
+
1498
+
1499
+
1500
+ </a>
1501
+ </li>
1502
+
1503
+
1504
+
1505
+
1506
+
1507
+
1508
+
1509
+
1510
+
1511
+ <li class="md-nav__item">
1512
+ <a href="../../recipes/host-profile-integration/" class="md-nav__link">
1513
+
1514
+
1515
+
1516
+ <span class="md-ellipsis">
1517
+
1518
+
1519
+ English · Host Profile integration
1520
+
1521
+
1522
+
1523
+ </span>
1524
+
1525
+
1526
+
1527
+ </a>
1528
+ </li>
1529
+
1530
+
1531
+
1532
+
1533
+
1534
+
1535
+
1536
+
1537
+
1538
+ <li class="md-nav__item">
1539
+ <a href="../../recipes/domain-schema-validation/" class="md-nav__link">
1540
+
1541
+
1542
+
1543
+ <span class="md-ellipsis">
1544
+
1545
+
1546
+ English · Domain Schema validation
1547
+
1548
+
1549
+
1550
+ </span>
1551
+
1552
+
1553
+
1554
+ </a>
1555
+ </li>
1556
+
1557
+
1558
+
1559
+
1560
+
1561
+
1562
+
1563
+
1564
+
1565
+ <li class="md-nav__item">
1566
+ <a href="../../../integration/audit/" class="md-nav__link">
1567
+
1568
+
1569
+
1570
+ <span class="md-ellipsis">
1571
+
1572
+
1573
+ 审计集成 · 入口
1574
+
1575
+
1576
+
1577
+ </span>
1578
+
1579
+
1580
+
1581
+ </a>
1582
+ </li>
1583
+
1584
+
1585
+
1586
+
1587
+
1588
+
1589
+
1590
+
1591
+
1592
+ <li class="md-nav__item">
1593
+ <a href="../../../integration/audit/mutation-taxonomy/" class="md-nav__link">
1594
+
1595
+
1596
+
1597
+ <span class="md-ellipsis">
1598
+
1599
+
1600
+ 审计集成 · 变异分类学
1601
+
1602
+
1603
+
1604
+ </span>
1605
+
1606
+
1607
+
1608
+ </a>
1609
+ </li>
1610
+
1611
+
1612
+
1613
+
1614
+
1615
+
1616
+
1617
+
1618
+
1619
+ <li class="md-nav__item">
1620
+ <a href="../../../integration/audit/independence/" class="md-nav__link">
1621
+
1622
+
1623
+
1624
+ <span class="md-ellipsis">
1625
+
1626
+
1627
+ 审计集成 · 独立性证明
1628
+
1629
+
1630
+
1631
+ </span>
1632
+
1633
+
1634
+
1635
+ </a>
1636
+ </li>
1637
+
1638
+
1639
+
1640
+
1641
+
1642
+
1643
+
1644
+
1645
+
1646
+ <li class="md-nav__item">
1647
+ <a href="../../../integration/audit/version-compatibility/" class="md-nav__link">
1648
+
1649
+
1650
+
1651
+ <span class="md-ellipsis">
1652
+
1653
+
1654
+ 审计集成 · 版本兼容
1655
+
1656
+
1657
+
1658
+ </span>
1659
+
1660
+
1661
+
1662
+ </a>
1663
+ </li>
1664
+
1665
+
1666
+
1667
+
1668
+
1669
+
1670
+
1671
+
1672
+
1673
+ <li class="md-nav__item">
1674
+ <a href="../../../integration/audit/failure-evidence/" class="md-nav__link">
1675
+
1676
+
1677
+
1678
+ <span class="md-ellipsis">
1679
+
1680
+
1681
+ 审计集成 · 失败证据与 AUD 码
1682
+
1683
+
1684
+
1685
+ </span>
1686
+
1687
+
1688
+
1689
+ </a>
1690
+ </li>
1691
+
1692
+
1693
+
1694
+ </ul>
1695
+ </nav>
1696
+ </div>
1697
+ </div>
1698
+ </div>
1699
+
1700
+
1701
+
1702
+ <div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
1703
+ <div class="md-sidebar__scrollwrap">
1704
+ <div class="md-sidebar__inner">
1705
+
1706
+
1707
+ <nav class="md-nav md-nav--secondary" aria-label="目录">
1708
+
1709
+
1710
+
1711
+
1712
+
1713
+
1714
+ <label class="md-nav__title" for="__toc">
1715
+ <span class="md-nav__icon md-icon"></span>
1716
+ 目录
1717
+ </label>
1718
+ <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
1719
+
1720
+ <li class="md-nav__item">
1721
+ <a href="#Decision-Order" class="md-nav__link">
1722
+ <span class="md-ellipsis">
1723
+
1724
+ Decision Order
1725
+
1726
+ </span>
1727
+ </a>
1728
+
1729
+ </li>
1730
+
1731
+ <li class="md-nav__item">
1732
+ <a href="#Routing-Table" class="md-nav__link">
1733
+ <span class="md-ellipsis">
1734
+
1735
+ Routing Table
1736
+
1737
+ </span>
1738
+ </a>
1739
+
1740
+ </li>
1741
+
1742
+ <li class="md-nav__item">
1743
+ <a href="#Layer-Location-Quick-Reference" class="md-nav__link">
1744
+ <span class="md-ellipsis">
1745
+
1746
+ Layer-Location Quick Reference
1747
+
1748
+ </span>
1749
+ </a>
1750
+
1751
+ </li>
1752
+
1753
+ <li class="md-nav__item">
1754
+ <a href="#Typical-Misrouting-and-Correction" class="md-nav__link">
1755
+ <span class="md-ellipsis">
1756
+
1757
+ Typical Misrouting and Correction
1758
+
1759
+ </span>
1760
+ </a>
1761
+
1762
+ </li>
1763
+
1764
+ </ul>
1765
+
1766
+ </nav>
1767
+ </div>
1768
+ </div>
1769
+ </div>
1770
+
1771
+
1772
+
1773
+ <div class="md-content" data-md-component="content">
1774
+
1775
+ <article class="md-content__inner md-typeset">
1776
+
1777
+
1778
+
1779
+
1780
+
1781
+ <blockquote>
1782
+ <p><a href="../../../agents/architecture-routing/">简体中文</a></p>
1783
+ </blockquote>
1784
+ <h1 id="Architecture-Routing-From-Intent-to-Layer-Capability-and-External-Project">Architecture Routing: From Intent to Layer, Capability, and External Project<a class="headerlink" href="#Architecture-Routing-From-Intent-to-Layer-Capability-and-External-Project" title="Permanent link">&para;</a></h1>
1785
+ <p>This page converges "where should an architecture requirement land" into a mechanically-reusable decision order and routing table. It serves new agents who, without reading the source code end-to-end, quickly obtain a verifiable answer: does this requirement belong to Foundation, in which layer (Contracts/Harness/Kit/Profile), with which stable entry point, what semantics remain owned by the caller, and when should it be handed off to an external project.</p>
1786
+ <h2 id="Decision-Order">Decision Order<a class="headerlink" href="#Decision-Order" title="Permanent link">&para;</a></h2>
1787
+ <p>Judge in order by number, stopping at the first match:</p>
1788
+ <ol>
1789
+ <li><strong>Does it contain domain semantics, a business state machine, or an audit oracle?</strong> If yes, keep it with the consumer; Foundation connects only business-neutral mechanisms.</li>
1790
+ <li><strong>Is it structure, a protocol, a stable error code, or an object Schema?</strong> → Contracts (contract authority).</li>
1791
+ <li><strong>Is it a cross-skill-family reusable Node mechanism?</strong> → Harness (Node implementation of the Contracts mechanism protocol).</li>
1792
+ <li><strong>Is it the engineering-phase scaffold/adopt-plan/projection/check, or a concrete host Profile injection?</strong> → Kit / Profile.</li>
1793
+ <li><strong>Does it involve publishing remote state?</strong> → release-skill.</li>
1794
+ <li><strong>Does it involve tasks, retries, rework, acceptance, or self-iteration?</strong> → loop-agent.</li>
1795
+ <li><strong>Does it involve artifact relationships, context, packet, or version-lock?</strong> → artifact-graph.</li>
1796
+ <li><strong>Does it have only one consumer, or has cross-two-real-consumer duplication not been proven?</strong> Keep it with the consumer by default; do not expand Foundation.</li>
1797
+ </ol>
1798
+ <blockquote>
1799
+ <p>Step 8 is the expansion gate. Any new component must justify: deleting it would force two or more real consumers to re-implement it, and this is verified by an independent fixture. Otherwise keep it on the consumer side.</p>
1800
+ </blockquote>
1801
+ <h2 id="Routing-Table">Routing Table<a class="headerlink" href="#Routing-Table" title="Permanent link">&para;</a></h2>
1802
+ <p>The table below gives the preferred capability and the forbidden misuse for common architecture intents. Each preferred capability can be looked up in <code>capability-catalog.json</code> by id for its entry points, side effects, and failure semantics.</p>
1803
+ <table>
1804
+ <thead>
1805
+ <tr>
1806
+ <th>Architecture intent</th>
1807
+ <th>Preferred capability</th>
1808
+ <th>Forbidden misuse</th>
1809
+ </tr>
1810
+ </thead>
1811
+ <tbody>
1812
+ <tr>
1813
+ <td>Validate a Foundation contract object</td>
1814
+ <td>Contracts / Harness validation (<code>foundation.contracts.object-validation</code>, <code>foundation.harness.contract-validation</code>)</td>
1815
+ <td>Do not replace the consumer's business Schema</td>
1816
+ </tr>
1817
+ <tr>
1818
+ <td>Safe file access and atomic write</td>
1819
+ <td>Harness path / atomic API (<code>foundation.harness.path-containment</code>, <code>foundation.harness.atomic-write</code>)</td>
1820
+ <td>Do not put file-selection business rules into Harness</td>
1821
+ </tr>
1822
+ <tr>
1823
+ <td>Generate a deterministic human report</td>
1824
+ <td>Harness report or Kit report sub-action (<code>foundation.harness.report</code>, <code>foundation.kit.report</code>)</td>
1825
+ <td>Do not freely author reports from open business outputs</td>
1826
+ </tr>
1827
+ <tr>
1828
+ <td>Durable events and derived snapshot</td>
1829
+ <td>Harness state-store (<code>foundation.harness.state-store</code>)</td>
1830
+ <td>Do not define a workflow state machine in Foundation</td>
1831
+ </tr>
1832
+ <tr>
1833
+ <td>New-project skeleton</td>
1834
+ <td>Kit scaffold (<code>foundation.kit.scaffold</code>)</td>
1835
+ <td>Do not overwrite a non-empty existing repository</td>
1836
+ </tr>
1837
+ <tr>
1838
+ <td>Existing-repository adoption inventory</td>
1839
+ <td>Kit adopt-plan (<code>foundation.kit.adopt-plan</code>)</td>
1840
+ <td>Do not write files, do not auto-migrate</td>
1841
+ </tr>
1842
+ <tr>
1843
+ <td>Managed projection</td>
1844
+ <td>Kit projection + Profile (<code>foundation.kit.projection</code>)</td>
1845
+ <td>Do not overwrite handwritten files</td>
1846
+ </tr>
1847
+ <tr>
1848
+ <td>Engineering diagnostics</td>
1849
+ <td>Kit check (<code>foundation.kit.check</code>)</td>
1850
+ <td>Do not auto-fix</td>
1851
+ </tr>
1852
+ <tr>
1853
+ <td>Publishing</td>
1854
+ <td>release-skill</td>
1855
+ <td>Foundation does not own remote writes</td>
1856
+ </tr>
1857
+ <tr>
1858
+ <td>Tasks/retries/rework</td>
1859
+ <td>loop-agent</td>
1860
+ <td>Foundation does not own a business state machine</td>
1861
+ </tr>
1862
+ <tr>
1863
+ <td>Artifact relationships/version-lock</td>
1864
+ <td>artifact-graph</td>
1865
+ <td>Foundation does not own the artifact graph</td>
1866
+ </tr>
1867
+ </tbody>
1868
+ </table>
1869
+ <h2 id="Layer-Location-Quick-Reference">Layer-Location Quick Reference<a class="headerlink" href="#Layer-Location-Quick-Reference" title="Permanent link">&para;</a></h2>
1870
+ <p>The dependency direction is fixed as Contracts → Harness → Engineering Kit; Profile declares horizontally, and the public core does not depend in reverse on a concrete Profile.</p>
1871
+ <ul>
1872
+ <li><strong>Contracts</strong>: structure, protocols, error codes, protocol-name registry; 18 top-level object kinds, 9 mandatory rules.</li>
1873
+ <li><strong>Harness</strong>: the thin Node mechanism runtime of Contracts; implements only business-neutral mechanisms, owning no semantics.</li>
1874
+ <li><strong>Engineering Kit</strong>: the four engineering commands (scaffold, adopt-plan, projection, check) and their read-only / restricted-write boundaries.</li>
1875
+ <li><strong>Profile</strong>: the declarative SPI for host and project-shape differences; implements only the stable SPI, injecting no business semantics.</li>
1876
+ <li><strong>External projects</strong>: release-skill (publishing), loop-agent (task lifecycle), artifact-graph (artifact relationships), independent audit consumer (domain semantics).</li>
1877
+ </ul>
1878
+ <h2 id="Typical-Misrouting-and-Correction">Typical Misrouting and Correction<a class="headerlink" href="#Typical-Misrouting-and-Correction" title="Permanent link">&para;</a></h2>
1879
+ <ul>
1880
+ <li>Misrouting a domain Schema to Foundation: the domain Schema is owned by the consumer; Foundation provides only a generic validation mechanism (<code>foundation.contracts.object-validation</code>).</li>
1881
+ <li>Misrouting a workflow state machine to Foundation: state-store provides only the event-log and snapshot substrate; reducer transitions and terminal states are owned by the caller (<code>foundation.unsupported.business-state-machine</code>).</li>
1882
+ <li>Misrouting a publish write to Foundation: remote writes belong to release-skill; Foundation contains no publish/remote-write entry point (<code>foundation.unsupported.remote-publish</code>).</li>
1883
+ <li>Misrouting an audit oracle to Foundation: the audit surface only performs deterministic serialization; domain conclusions belong to external review (<code>foundation.unsupported.domain-audit-semantics</code>).</li>
1884
+ </ul>
1885
+ <blockquote>
1886
+ <p>The honest boundary of routing judgment: structural checks only prove byte/structural consistency (provable in-repo); ordinary prose semantics and the final accept/reject conclusion belong to external independent review; no second gate is maintained within the target repository.</p>
1887
+ </blockquote>
1888
+
1889
+
1890
+
1891
+
1892
+
1893
+
1894
+
1895
+
1896
+
1897
+
1898
+
1899
+
1900
+
1901
+ </article>
1902
+ </div>
1903
+
1904
+
1905
+ <script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
1906
+ </div>
1907
+
1908
+ </main>
1909
+
1910
+ <footer class="md-footer">
1911
+
1912
+ <div class="md-footer-meta md-typeset">
1913
+ <div class="md-footer-meta__inner md-grid">
1914
+ <div class="md-copyright">
1915
+
1916
+
1917
+ Made with
1918
+ <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
1919
+ Material for MkDocs
1920
+ </a>
1921
+
1922
+ </div>
1923
+
1924
+ </div>
1925
+ </div>
1926
+ </footer>
1927
+
1928
+ </div>
1929
+ <div class="md-dialog" data-md-component="dialog">
1930
+ <div class="md-dialog__inner md-typeset"></div>
1931
+ </div>
1932
+
1933
+
1934
+
1935
+
1936
+
1937
+ <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>
1938
+
1939
+
1940
+ <script src="../../../assets/javascripts/bundle.d7400e89.min.js"></script>
1941
+
1942
+
1943
+ </body>
1944
+ </html>