skill-family-engineering-kit 0.1.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 (80) hide show
  1. package/CODE_OF_CONDUCT.md +131 -0
  2. package/CONTRIBUTING.md +69 -0
  3. package/LICENSE +201 -0
  4. package/README.md +74 -0
  5. package/SECURITY.md +34 -0
  6. package/data/licensing/registry.json +211 -0
  7. package/data/licensing/schema.json +207 -0
  8. package/docs/.nojekyll +0 -0
  9. package/docs/404.html +613 -0
  10. package/docs/architecture/index.html +904 -0
  11. package/docs/assets/images/favicon.png +0 -0
  12. package/docs/assets/javascripts/bundle.d7400e89.min.js +16 -0
  13. package/docs/assets/javascripts/lunr/min/lunr.ar.min.js +1 -0
  14. package/docs/assets/javascripts/lunr/min/lunr.da.min.js +18 -0
  15. package/docs/assets/javascripts/lunr/min/lunr.de.min.js +18 -0
  16. package/docs/assets/javascripts/lunr/min/lunr.du.min.js +18 -0
  17. package/docs/assets/javascripts/lunr/min/lunr.el.min.js +1 -0
  18. package/docs/assets/javascripts/lunr/min/lunr.es.min.js +18 -0
  19. package/docs/assets/javascripts/lunr/min/lunr.fi.min.js +18 -0
  20. package/docs/assets/javascripts/lunr/min/lunr.fr.min.js +18 -0
  21. package/docs/assets/javascripts/lunr/min/lunr.he.min.js +1 -0
  22. package/docs/assets/javascripts/lunr/min/lunr.hi.min.js +1 -0
  23. package/docs/assets/javascripts/lunr/min/lunr.hu.min.js +18 -0
  24. package/docs/assets/javascripts/lunr/min/lunr.hy.min.js +1 -0
  25. package/docs/assets/javascripts/lunr/min/lunr.it.min.js +18 -0
  26. package/docs/assets/javascripts/lunr/min/lunr.ja.min.js +1 -0
  27. package/docs/assets/javascripts/lunr/min/lunr.jp.min.js +1 -0
  28. package/docs/assets/javascripts/lunr/min/lunr.kn.min.js +1 -0
  29. package/docs/assets/javascripts/lunr/min/lunr.ko.min.js +1 -0
  30. package/docs/assets/javascripts/lunr/min/lunr.multi.min.js +1 -0
  31. package/docs/assets/javascripts/lunr/min/lunr.nl.min.js +18 -0
  32. package/docs/assets/javascripts/lunr/min/lunr.no.min.js +18 -0
  33. package/docs/assets/javascripts/lunr/min/lunr.pt.min.js +18 -0
  34. package/docs/assets/javascripts/lunr/min/lunr.ro.min.js +18 -0
  35. package/docs/assets/javascripts/lunr/min/lunr.ru.min.js +18 -0
  36. package/docs/assets/javascripts/lunr/min/lunr.sa.min.js +1 -0
  37. package/docs/assets/javascripts/lunr/min/lunr.stemmer.support.min.js +1 -0
  38. package/docs/assets/javascripts/lunr/min/lunr.sv.min.js +18 -0
  39. package/docs/assets/javascripts/lunr/min/lunr.ta.min.js +1 -0
  40. package/docs/assets/javascripts/lunr/min/lunr.te.min.js +1 -0
  41. package/docs/assets/javascripts/lunr/min/lunr.th.min.js +1 -0
  42. package/docs/assets/javascripts/lunr/min/lunr.tr.min.js +18 -0
  43. package/docs/assets/javascripts/lunr/min/lunr.vi.min.js +1 -0
  44. package/docs/assets/javascripts/lunr/min/lunr.zh.min.js +1 -0
  45. package/docs/assets/javascripts/lunr/tinyseg.js +206 -0
  46. package/docs/assets/javascripts/lunr/wordcut.js +6708 -0
  47. package/docs/assets/javascripts/workers/search.2c215733.min.js +42 -0
  48. package/docs/assets/stylesheets/main.ec1eaa64.min.css +1 -0
  49. package/docs/assets/stylesheets/palette.ab4e12ef.min.css +1 -0
  50. package/docs/git-lifecycle/index.html +976 -0
  51. package/docs/help/index.html +907 -0
  52. package/docs/index.html +837 -0
  53. package/docs/integration/audit/baseline/audit-codes.json +62 -0
  54. package/docs/integration/audit/failure-evidence/index.html +872 -0
  55. package/docs/integration/audit/independence/index.html +841 -0
  56. package/docs/integration/audit/index.html +826 -0
  57. package/docs/integration/audit/mutation-taxonomy/index.html +1022 -0
  58. package/docs/integration/audit/schemas/audit-evidence.schema.json +182 -0
  59. package/docs/integration/audit/version-compatibility/index.html +845 -0
  60. package/docs/migration/index.html +1213 -0
  61. package/docs/quickstart/index.html +842 -0
  62. package/docs/search/search_index.json +1 -0
  63. package/docs/setup/index.html +941 -0
  64. package/docs/sitemap.xml +51 -0
  65. package/package.json +42 -0
  66. package/src/adopt-plan.mjs +594 -0
  67. package/src/check.mjs +415 -0
  68. package/src/cli.mjs +230 -0
  69. package/src/errors.mjs +144 -0
  70. package/src/gitprobe.mjs +230 -0
  71. package/src/identity-check.mjs +563 -0
  72. package/src/index.mjs +233 -0
  73. package/src/license-texts/Apache-2.0.txt +201 -0
  74. package/src/license-texts/MIT.txt +21 -0
  75. package/src/licensing.mjs +299 -0
  76. package/src/migration.mjs +427 -0
  77. package/src/projection.mjs +397 -0
  78. package/src/scaffold.mjs +178 -0
  79. package/src/skeleton.mjs +886 -0
  80. package/src/workspace.mjs +236 -0
@@ -0,0 +1,826 @@
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/integration/audit/">
14
+
15
+
16
+ <link rel="prev" href="../../migration/">
17
+
18
+
19
+ <link rel="next" href="mutation-taxonomy/">
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>独立审计集成 - 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="#独立审计集成FND-060" 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
+ 独立审计集成
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="../../migration/" 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
+
422
+
423
+ <li class="md-nav__item md-nav__item--active">
424
+
425
+ <input class="md-nav__toggle md-toggle" type="checkbox" id="__toc">
426
+
427
+
428
+
429
+
430
+
431
+ <label class="md-nav__link md-nav__link--active" for="__toc">
432
+
433
+
434
+
435
+ <span class="md-ellipsis">
436
+
437
+
438
+ 独立审计集成
439
+
440
+
441
+
442
+ </span>
443
+
444
+
445
+
446
+ <span class="md-nav__icon md-icon"></span>
447
+ </label>
448
+
449
+ <a href="./" class="md-nav__link md-nav__link--active">
450
+
451
+
452
+
453
+ <span class="md-ellipsis">
454
+
455
+
456
+ 独立审计集成
457
+
458
+
459
+
460
+ </span>
461
+
462
+
463
+
464
+ </a>
465
+
466
+
467
+
468
+ <nav class="md-nav md-nav--secondary" aria-label="目录">
469
+
470
+
471
+
472
+
473
+
474
+
475
+ <label class="md-nav__title" for="__toc">
476
+ <span class="md-nav__icon md-icon"></span>
477
+ 目录
478
+ </label>
479
+ <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
480
+
481
+ <li class="md-nav__item">
482
+ <a href="#权威边界" class="md-nav__link">
483
+ <span class="md-ellipsis">
484
+
485
+ 权威边界
486
+
487
+ </span>
488
+ </a>
489
+
490
+ </li>
491
+
492
+ <li class="md-nav__item">
493
+ <a href="#目录结构" class="md-nav__link">
494
+ <span class="md-ellipsis">
495
+
496
+ 目录结构
497
+
498
+ </span>
499
+ </a>
500
+
501
+ </li>
502
+
503
+ <li class="md-nav__item">
504
+ <a href="#运行" class="md-nav__link">
505
+ <span class="md-ellipsis">
506
+
507
+ 运行
508
+
509
+ </span>
510
+ </a>
511
+
512
+ </li>
513
+
514
+ <li class="md-nav__item">
515
+ <a href="#裁决规则" class="md-nav__link">
516
+ <span class="md-ellipsis">
517
+
518
+ 裁决规则
519
+
520
+ </span>
521
+ </a>
522
+
523
+ </li>
524
+
525
+ </ul>
526
+
527
+ </nav>
528
+
529
+ </li>
530
+
531
+
532
+
533
+
534
+
535
+
536
+
537
+
538
+
539
+ <li class="md-nav__item">
540
+ <a href="mutation-taxonomy/" class="md-nav__link">
541
+
542
+
543
+
544
+ <span class="md-ellipsis">
545
+
546
+
547
+ 审计变异分类学
548
+
549
+
550
+
551
+ </span>
552
+
553
+
554
+
555
+ </a>
556
+ </li>
557
+
558
+
559
+
560
+
561
+
562
+
563
+
564
+
565
+
566
+ <li class="md-nav__item">
567
+ <a href="independence/" class="md-nav__link">
568
+
569
+
570
+
571
+ <span class="md-ellipsis">
572
+
573
+
574
+ 审计独立性证明
575
+
576
+
577
+
578
+ </span>
579
+
580
+
581
+
582
+ </a>
583
+ </li>
584
+
585
+
586
+
587
+
588
+
589
+
590
+
591
+
592
+
593
+ <li class="md-nav__item">
594
+ <a href="version-compatibility/" class="md-nav__link">
595
+
596
+
597
+
598
+ <span class="md-ellipsis">
599
+
600
+
601
+ 审计版本兼容定义
602
+
603
+
604
+
605
+ </span>
606
+
607
+
608
+
609
+ </a>
610
+ </li>
611
+
612
+
613
+
614
+
615
+
616
+
617
+
618
+
619
+
620
+ <li class="md-nav__item">
621
+ <a href="failure-evidence/" class="md-nav__link">
622
+
623
+
624
+
625
+ <span class="md-ellipsis">
626
+
627
+
628
+ 审计失败证据与 AUD 码
629
+
630
+
631
+
632
+ </span>
633
+
634
+
635
+
636
+ </a>
637
+ </li>
638
+
639
+
640
+
641
+ </ul>
642
+ </nav>
643
+ </div>
644
+ </div>
645
+ </div>
646
+
647
+
648
+
649
+ <div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
650
+ <div class="md-sidebar__scrollwrap">
651
+ <div class="md-sidebar__inner">
652
+
653
+
654
+ <nav class="md-nav md-nav--secondary" aria-label="目录">
655
+
656
+
657
+
658
+
659
+
660
+
661
+ <label class="md-nav__title" for="__toc">
662
+ <span class="md-nav__icon md-icon"></span>
663
+ 目录
664
+ </label>
665
+ <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
666
+
667
+ <li class="md-nav__item">
668
+ <a href="#权威边界" class="md-nav__link">
669
+ <span class="md-ellipsis">
670
+
671
+ 权威边界
672
+
673
+ </span>
674
+ </a>
675
+
676
+ </li>
677
+
678
+ <li class="md-nav__item">
679
+ <a href="#目录结构" class="md-nav__link">
680
+ <span class="md-ellipsis">
681
+
682
+ 目录结构
683
+
684
+ </span>
685
+ </a>
686
+
687
+ </li>
688
+
689
+ <li class="md-nav__item">
690
+ <a href="#运行" class="md-nav__link">
691
+ <span class="md-ellipsis">
692
+
693
+ 运行
694
+
695
+ </span>
696
+ </a>
697
+
698
+ </li>
699
+
700
+ <li class="md-nav__item">
701
+ <a href="#裁决规则" class="md-nav__link">
702
+ <span class="md-ellipsis">
703
+
704
+ 裁决规则
705
+
706
+ </span>
707
+ </a>
708
+
709
+ </li>
710
+
711
+ </ul>
712
+
713
+ </nav>
714
+ </div>
715
+ </div>
716
+ </div>
717
+
718
+
719
+
720
+ <div class="md-content" data-md-component="content">
721
+
722
+ <article class="md-content__inner md-typeset">
723
+
724
+
725
+
726
+
727
+
728
+ <h1 id="独立审计集成FND-060">独立审计集成(FND-060)<a class="headerlink" href="#独立审计集成FND-060" title="Permanent link">&para;</a></h1>
729
+ <p>本目录是独立审计(Audit)消费已发布 Contracts 的最小集成面。审计的职责是:以<strong>独立于生成器与 oracle</strong> 的 fixture、预期值和裁决,验证被消费的 <code>skill-family-contracts</code> 包没有被篡改、削弱或漏检。</p>
730
+ <h2 id="权威边界">权威边界<a class="headerlink" href="#权威边界" title="Permanent link">&para;</a></h2>
731
+ <ul>
732
+ <li>审计<strong>只消费</strong> Contracts 的公开接口(<code>describeAuditSurface</code>、<code>validateDocument</code>、<code>checkOperation</code>、<code>findProtocol</code>、<code>isRegisteredErrorCode</code>、<code>digestDocument</code> 等),依赖方向恒为 Audit → Contracts;</li>
733
+ <li>审计<strong>不依赖</strong> engineering-kit,也不依赖 harness(见 <a href="independence/">independence.md</a> 的机械证明);</li>
734
+ <li>Contracts 不反向依赖审计:Contracts 侧只新增了只读投影模块 <code>src/audit-surface.mjs</code>,不接受任何回调、注册或审计侧输入;</li>
735
+ <li>审计 fixture、预期与裁决全部由产品侧维护(夹具 provenance <code>product-fixture</code>,pin provenance <code>product-compatibility-fixture</code>),<strong>不复用</strong>生成器自测预期表,也不读取 oracle 判据(该隔离由 <a href="independence/">independence.md</a> 的机械证明强制)。</li>
736
+ </ul>
737
+ <h2 id="目录结构">目录结构<a class="headerlink" href="#目录结构" title="Permanent link">&para;</a></h2>
738
+ <pre><code class="language-text">docs/integration/audit/
739
+ README.md 本文件
740
+ mutation-taxonomy.md 五类变异分类学(冻结)
741
+ failure-evidence.md 失败证据格式与 AUD 码登记表
742
+ version-compatibility.md 版本兼容定义
743
+ isolation-and-lockfile.md 隔离安装与包锁验证设计
744
+ independence.md 独立性声明与机械证明
745
+ schemas/audit-evidence.schema.json 证据文档的 JSON Schema(审计自有)
746
+ baseline/contracts-1.1.1.pin.json Contracts 1.1.1 现行基线 pin(摘要+事实)
747
+ baseline/contracts-1.1.0.pin.json Contracts 1.1.0 只读兼容存档 pin
748
+ baseline/contracts-1.0.0.pin.json Contracts 1.0.0 只读兼容存档 pin
749
+ baseline/audit-codes.json AUD 码登记表(append-only)
750
+ fixtures/{structure,semantics,digest,omission,engine}/ 18 个变异 fixture
751
+ runner/ 审计运行器(只读,证据输出到 stdout)
752
+ </code></pre>
753
+ <h2 id="运行">运行<a class="headerlink" href="#运行" title="Permanent link">&para;</a></h2>
754
+ <pre><code class="language-bash"># 完整管线:独立性证明 → 包锁验证 → 变异重放 → 漏报负例自检
755
+ node docs/integration/audit/runner/run-all.mjs
756
+
757
+ # 分步运行
758
+ node docs/integration/audit/runner/proof-independence.mjs # 独立性机械证明
759
+ node docs/integration/audit/runner/verify-lock.mjs # 消费包 pin/锁验证
760
+ node docs/integration/audit/runner/run-audit.mjs # 变异重放 + 证据
761
+ node docs/integration/audit/runner/selftest-negative.mjs # 漏报负例控制
762
+ </code></pre>
763
+ <p>退出码约定:<code>0</code> 通过;<code>1</code> 有发现(verdict fail);<code>2</code> 用法或机制错误。所有报告以 JSON 输出到 stdout,运行器对仓库<strong>零写入</strong>。</p>
764
+ <h2 id="裁决规则">裁决规则<a class="headerlink" href="#裁决规则" title="Permanent link">&para;</a></h2>
765
+ <ul>
766
+ <li>五类变异(结构、语义、摘要、遗漏、检查引擎被削弱)每类至少 3 个 fixture,且至少检出 1 个;</li>
767
+ <li><strong>任一类漏报即失败</strong>:覆盖门(AUD-MISS-001)机械强制,漏报类的存在使整体 verdict 必为 fail;</li>
768
+ <li>任一 fixture 未被如预期检出、基线 pin 漂移、fixture 信封不合法,都产生 mandatory 级发现并使 verdict fail。</li>
769
+ </ul>
770
+
771
+
772
+
773
+
774
+
775
+
776
+
777
+
778
+
779
+
780
+
781
+
782
+
783
+ </article>
784
+ </div>
785
+
786
+
787
+ <script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
788
+ </div>
789
+
790
+ </main>
791
+
792
+ <footer class="md-footer">
793
+
794
+ <div class="md-footer-meta md-typeset">
795
+ <div class="md-footer-meta__inner md-grid">
796
+ <div class="md-copyright">
797
+
798
+
799
+ Made with
800
+ <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
801
+ Material for MkDocs
802
+ </a>
803
+
804
+ </div>
805
+
806
+ </div>
807
+ </div>
808
+ </footer>
809
+
810
+ </div>
811
+ <div class="md-dialog" data-md-component="dialog">
812
+ <div class="md-dialog__inner md-typeset"></div>
813
+ </div>
814
+
815
+
816
+
817
+
818
+
819
+ <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>
820
+
821
+
822
+ <script src="../../assets/javascripts/bundle.d7400e89.min.js"></script>
823
+
824
+
825
+ </body>
826
+ </html>