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.
- package/CODE_OF_CONDUCT.md +131 -0
- package/CONTRIBUTING.md +69 -0
- package/LICENSE +201 -0
- package/README.md +74 -0
- package/SECURITY.md +34 -0
- package/data/licensing/registry.json +211 -0
- package/data/licensing/schema.json +207 -0
- package/docs/.nojekyll +0 -0
- package/docs/404.html +613 -0
- package/docs/architecture/index.html +904 -0
- package/docs/assets/images/favicon.png +0 -0
- package/docs/assets/javascripts/bundle.d7400e89.min.js +16 -0
- package/docs/assets/javascripts/lunr/min/lunr.ar.min.js +1 -0
- package/docs/assets/javascripts/lunr/min/lunr.da.min.js +18 -0
- package/docs/assets/javascripts/lunr/min/lunr.de.min.js +18 -0
- package/docs/assets/javascripts/lunr/min/lunr.du.min.js +18 -0
- package/docs/assets/javascripts/lunr/min/lunr.el.min.js +1 -0
- package/docs/assets/javascripts/lunr/min/lunr.es.min.js +18 -0
- package/docs/assets/javascripts/lunr/min/lunr.fi.min.js +18 -0
- package/docs/assets/javascripts/lunr/min/lunr.fr.min.js +18 -0
- package/docs/assets/javascripts/lunr/min/lunr.he.min.js +1 -0
- package/docs/assets/javascripts/lunr/min/lunr.hi.min.js +1 -0
- package/docs/assets/javascripts/lunr/min/lunr.hu.min.js +18 -0
- package/docs/assets/javascripts/lunr/min/lunr.hy.min.js +1 -0
- package/docs/assets/javascripts/lunr/min/lunr.it.min.js +18 -0
- package/docs/assets/javascripts/lunr/min/lunr.ja.min.js +1 -0
- package/docs/assets/javascripts/lunr/min/lunr.jp.min.js +1 -0
- package/docs/assets/javascripts/lunr/min/lunr.kn.min.js +1 -0
- package/docs/assets/javascripts/lunr/min/lunr.ko.min.js +1 -0
- package/docs/assets/javascripts/lunr/min/lunr.multi.min.js +1 -0
- package/docs/assets/javascripts/lunr/min/lunr.nl.min.js +18 -0
- package/docs/assets/javascripts/lunr/min/lunr.no.min.js +18 -0
- package/docs/assets/javascripts/lunr/min/lunr.pt.min.js +18 -0
- package/docs/assets/javascripts/lunr/min/lunr.ro.min.js +18 -0
- package/docs/assets/javascripts/lunr/min/lunr.ru.min.js +18 -0
- package/docs/assets/javascripts/lunr/min/lunr.sa.min.js +1 -0
- package/docs/assets/javascripts/lunr/min/lunr.stemmer.support.min.js +1 -0
- package/docs/assets/javascripts/lunr/min/lunr.sv.min.js +18 -0
- package/docs/assets/javascripts/lunr/min/lunr.ta.min.js +1 -0
- package/docs/assets/javascripts/lunr/min/lunr.te.min.js +1 -0
- package/docs/assets/javascripts/lunr/min/lunr.th.min.js +1 -0
- package/docs/assets/javascripts/lunr/min/lunr.tr.min.js +18 -0
- package/docs/assets/javascripts/lunr/min/lunr.vi.min.js +1 -0
- package/docs/assets/javascripts/lunr/min/lunr.zh.min.js +1 -0
- package/docs/assets/javascripts/lunr/tinyseg.js +206 -0
- package/docs/assets/javascripts/lunr/wordcut.js +6708 -0
- package/docs/assets/javascripts/workers/search.2c215733.min.js +42 -0
- package/docs/assets/stylesheets/main.ec1eaa64.min.css +1 -0
- package/docs/assets/stylesheets/palette.ab4e12ef.min.css +1 -0
- package/docs/git-lifecycle/index.html +976 -0
- package/docs/help/index.html +907 -0
- package/docs/index.html +837 -0
- package/docs/integration/audit/baseline/audit-codes.json +62 -0
- package/docs/integration/audit/failure-evidence/index.html +872 -0
- package/docs/integration/audit/independence/index.html +841 -0
- package/docs/integration/audit/index.html +826 -0
- package/docs/integration/audit/mutation-taxonomy/index.html +1022 -0
- package/docs/integration/audit/schemas/audit-evidence.schema.json +182 -0
- package/docs/integration/audit/version-compatibility/index.html +845 -0
- package/docs/migration/index.html +1213 -0
- package/docs/quickstart/index.html +842 -0
- package/docs/search/search_index.json +1 -0
- package/docs/setup/index.html +941 -0
- package/docs/sitemap.xml +51 -0
- package/package.json +42 -0
- package/src/adopt-plan.mjs +594 -0
- package/src/check.mjs +415 -0
- package/src/cli.mjs +230 -0
- package/src/errors.mjs +144 -0
- package/src/gitprobe.mjs +230 -0
- package/src/identity-check.mjs +563 -0
- package/src/index.mjs +233 -0
- package/src/license-texts/Apache-2.0.txt +201 -0
- package/src/license-texts/MIT.txt +21 -0
- package/src/licensing.mjs +299 -0
- package/src/migration.mjs +427 -0
- package/src/projection.mjs +397 -0
- package/src/scaffold.mjs +178 -0
- package/src/skeleton.mjs +886 -0
- package/src/workspace.mjs +236 -0
|
@@ -0,0 +1,1022 @@
|
|
|
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/mutation-taxonomy/">
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
<link rel="prev" href="../">
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
<link rel="next" href="../independence/">
|
|
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="#变异分类学冻结" 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
|
+
<li class="md-nav__item">
|
|
422
|
+
<a href="../" 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
|
+
|
|
449
|
+
|
|
450
|
+
<li class="md-nav__item md-nav__item--active">
|
|
451
|
+
|
|
452
|
+
<input class="md-nav__toggle md-toggle" type="checkbox" id="__toc">
|
|
453
|
+
|
|
454
|
+
|
|
455
|
+
|
|
456
|
+
|
|
457
|
+
|
|
458
|
+
<label class="md-nav__link md-nav__link--active" for="__toc">
|
|
459
|
+
|
|
460
|
+
|
|
461
|
+
|
|
462
|
+
<span class="md-ellipsis">
|
|
463
|
+
|
|
464
|
+
|
|
465
|
+
审计变异分类学
|
|
466
|
+
|
|
467
|
+
|
|
468
|
+
|
|
469
|
+
</span>
|
|
470
|
+
|
|
471
|
+
|
|
472
|
+
|
|
473
|
+
<span class="md-nav__icon md-icon"></span>
|
|
474
|
+
</label>
|
|
475
|
+
|
|
476
|
+
<a href="./" class="md-nav__link md-nav__link--active">
|
|
477
|
+
|
|
478
|
+
|
|
479
|
+
|
|
480
|
+
<span class="md-ellipsis">
|
|
481
|
+
|
|
482
|
+
|
|
483
|
+
审计变异分类学
|
|
484
|
+
|
|
485
|
+
|
|
486
|
+
|
|
487
|
+
</span>
|
|
488
|
+
|
|
489
|
+
|
|
490
|
+
|
|
491
|
+
</a>
|
|
492
|
+
|
|
493
|
+
|
|
494
|
+
|
|
495
|
+
<nav class="md-nav md-nav--secondary" aria-label="目录">
|
|
496
|
+
|
|
497
|
+
|
|
498
|
+
|
|
499
|
+
|
|
500
|
+
|
|
501
|
+
|
|
502
|
+
<label class="md-nav__title" for="__toc">
|
|
503
|
+
<span class="md-nav__icon md-icon"></span>
|
|
504
|
+
目录
|
|
505
|
+
</label>
|
|
506
|
+
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
|
|
507
|
+
|
|
508
|
+
<li class="md-nav__item">
|
|
509
|
+
<a href="#各类别定义与判据" class="md-nav__link">
|
|
510
|
+
<span class="md-ellipsis">
|
|
511
|
+
|
|
512
|
+
各类别定义与判据
|
|
513
|
+
|
|
514
|
+
</span>
|
|
515
|
+
</a>
|
|
516
|
+
|
|
517
|
+
<nav class="md-nav" aria-label="各类别定义与判据">
|
|
518
|
+
<ul class="md-nav__list">
|
|
519
|
+
|
|
520
|
+
<li class="md-nav__item">
|
|
521
|
+
<a href="#M1-结构structure" class="md-nav__link">
|
|
522
|
+
<span class="md-ellipsis">
|
|
523
|
+
|
|
524
|
+
M1 结构(structure)
|
|
525
|
+
|
|
526
|
+
</span>
|
|
527
|
+
</a>
|
|
528
|
+
|
|
529
|
+
</li>
|
|
530
|
+
|
|
531
|
+
<li class="md-nav__item">
|
|
532
|
+
<a href="#M2-语义semantics" class="md-nav__link">
|
|
533
|
+
<span class="md-ellipsis">
|
|
534
|
+
|
|
535
|
+
M2 语义(semantics)
|
|
536
|
+
|
|
537
|
+
</span>
|
|
538
|
+
</a>
|
|
539
|
+
|
|
540
|
+
</li>
|
|
541
|
+
|
|
542
|
+
<li class="md-nav__item">
|
|
543
|
+
<a href="#M3-摘要digest" class="md-nav__link">
|
|
544
|
+
<span class="md-ellipsis">
|
|
545
|
+
|
|
546
|
+
M3 摘要(digest)
|
|
547
|
+
|
|
548
|
+
</span>
|
|
549
|
+
</a>
|
|
550
|
+
|
|
551
|
+
</li>
|
|
552
|
+
|
|
553
|
+
<li class="md-nav__item">
|
|
554
|
+
<a href="#M4-遗漏omission" class="md-nav__link">
|
|
555
|
+
<span class="md-ellipsis">
|
|
556
|
+
|
|
557
|
+
M4 遗漏(omission)
|
|
558
|
+
|
|
559
|
+
</span>
|
|
560
|
+
</a>
|
|
561
|
+
|
|
562
|
+
</li>
|
|
563
|
+
|
|
564
|
+
<li class="md-nav__item">
|
|
565
|
+
<a href="#M5-检查引擎被削弱engine" class="md-nav__link">
|
|
566
|
+
<span class="md-ellipsis">
|
|
567
|
+
|
|
568
|
+
M5 检查引擎被削弱(engine)
|
|
569
|
+
|
|
570
|
+
</span>
|
|
571
|
+
</a>
|
|
572
|
+
|
|
573
|
+
</li>
|
|
574
|
+
|
|
575
|
+
</ul>
|
|
576
|
+
</nav>
|
|
577
|
+
|
|
578
|
+
</li>
|
|
579
|
+
|
|
580
|
+
<li class="md-nav__item">
|
|
581
|
+
<a href="#fixture-信封冻结" class="md-nav__link">
|
|
582
|
+
<span class="md-ellipsis">
|
|
583
|
+
|
|
584
|
+
fixture 信封(冻结)
|
|
585
|
+
|
|
586
|
+
</span>
|
|
587
|
+
</a>
|
|
588
|
+
|
|
589
|
+
</li>
|
|
590
|
+
|
|
591
|
+
<li class="md-nav__item">
|
|
592
|
+
<a href="#数量冻结与漏报律" class="md-nav__link">
|
|
593
|
+
<span class="md-ellipsis">
|
|
594
|
+
|
|
595
|
+
数量冻结与漏报律
|
|
596
|
+
|
|
597
|
+
</span>
|
|
598
|
+
</a>
|
|
599
|
+
|
|
600
|
+
</li>
|
|
601
|
+
|
|
602
|
+
</ul>
|
|
603
|
+
|
|
604
|
+
</nav>
|
|
605
|
+
|
|
606
|
+
</li>
|
|
607
|
+
|
|
608
|
+
|
|
609
|
+
|
|
610
|
+
|
|
611
|
+
|
|
612
|
+
|
|
613
|
+
|
|
614
|
+
|
|
615
|
+
|
|
616
|
+
<li class="md-nav__item">
|
|
617
|
+
<a href="../independence/" class="md-nav__link">
|
|
618
|
+
|
|
619
|
+
|
|
620
|
+
|
|
621
|
+
<span class="md-ellipsis">
|
|
622
|
+
|
|
623
|
+
|
|
624
|
+
审计独立性证明
|
|
625
|
+
|
|
626
|
+
|
|
627
|
+
|
|
628
|
+
</span>
|
|
629
|
+
|
|
630
|
+
|
|
631
|
+
|
|
632
|
+
</a>
|
|
633
|
+
</li>
|
|
634
|
+
|
|
635
|
+
|
|
636
|
+
|
|
637
|
+
|
|
638
|
+
|
|
639
|
+
|
|
640
|
+
|
|
641
|
+
|
|
642
|
+
|
|
643
|
+
<li class="md-nav__item">
|
|
644
|
+
<a href="../version-compatibility/" class="md-nav__link">
|
|
645
|
+
|
|
646
|
+
|
|
647
|
+
|
|
648
|
+
<span class="md-ellipsis">
|
|
649
|
+
|
|
650
|
+
|
|
651
|
+
审计版本兼容定义
|
|
652
|
+
|
|
653
|
+
|
|
654
|
+
|
|
655
|
+
</span>
|
|
656
|
+
|
|
657
|
+
|
|
658
|
+
|
|
659
|
+
</a>
|
|
660
|
+
</li>
|
|
661
|
+
|
|
662
|
+
|
|
663
|
+
|
|
664
|
+
|
|
665
|
+
|
|
666
|
+
|
|
667
|
+
|
|
668
|
+
|
|
669
|
+
|
|
670
|
+
<li class="md-nav__item">
|
|
671
|
+
<a href="../failure-evidence/" class="md-nav__link">
|
|
672
|
+
|
|
673
|
+
|
|
674
|
+
|
|
675
|
+
<span class="md-ellipsis">
|
|
676
|
+
|
|
677
|
+
|
|
678
|
+
审计失败证据与 AUD 码
|
|
679
|
+
|
|
680
|
+
|
|
681
|
+
|
|
682
|
+
</span>
|
|
683
|
+
|
|
684
|
+
|
|
685
|
+
|
|
686
|
+
</a>
|
|
687
|
+
</li>
|
|
688
|
+
|
|
689
|
+
|
|
690
|
+
|
|
691
|
+
</ul>
|
|
692
|
+
</nav>
|
|
693
|
+
</div>
|
|
694
|
+
</div>
|
|
695
|
+
</div>
|
|
696
|
+
|
|
697
|
+
|
|
698
|
+
|
|
699
|
+
<div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
|
|
700
|
+
<div class="md-sidebar__scrollwrap">
|
|
701
|
+
<div class="md-sidebar__inner">
|
|
702
|
+
|
|
703
|
+
|
|
704
|
+
<nav class="md-nav md-nav--secondary" aria-label="目录">
|
|
705
|
+
|
|
706
|
+
|
|
707
|
+
|
|
708
|
+
|
|
709
|
+
|
|
710
|
+
|
|
711
|
+
<label class="md-nav__title" for="__toc">
|
|
712
|
+
<span class="md-nav__icon md-icon"></span>
|
|
713
|
+
目录
|
|
714
|
+
</label>
|
|
715
|
+
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
|
|
716
|
+
|
|
717
|
+
<li class="md-nav__item">
|
|
718
|
+
<a href="#各类别定义与判据" class="md-nav__link">
|
|
719
|
+
<span class="md-ellipsis">
|
|
720
|
+
|
|
721
|
+
各类别定义与判据
|
|
722
|
+
|
|
723
|
+
</span>
|
|
724
|
+
</a>
|
|
725
|
+
|
|
726
|
+
<nav class="md-nav" aria-label="各类别定义与判据">
|
|
727
|
+
<ul class="md-nav__list">
|
|
728
|
+
|
|
729
|
+
<li class="md-nav__item">
|
|
730
|
+
<a href="#M1-结构structure" class="md-nav__link">
|
|
731
|
+
<span class="md-ellipsis">
|
|
732
|
+
|
|
733
|
+
M1 结构(structure)
|
|
734
|
+
|
|
735
|
+
</span>
|
|
736
|
+
</a>
|
|
737
|
+
|
|
738
|
+
</li>
|
|
739
|
+
|
|
740
|
+
<li class="md-nav__item">
|
|
741
|
+
<a href="#M2-语义semantics" class="md-nav__link">
|
|
742
|
+
<span class="md-ellipsis">
|
|
743
|
+
|
|
744
|
+
M2 语义(semantics)
|
|
745
|
+
|
|
746
|
+
</span>
|
|
747
|
+
</a>
|
|
748
|
+
|
|
749
|
+
</li>
|
|
750
|
+
|
|
751
|
+
<li class="md-nav__item">
|
|
752
|
+
<a href="#M3-摘要digest" class="md-nav__link">
|
|
753
|
+
<span class="md-ellipsis">
|
|
754
|
+
|
|
755
|
+
M3 摘要(digest)
|
|
756
|
+
|
|
757
|
+
</span>
|
|
758
|
+
</a>
|
|
759
|
+
|
|
760
|
+
</li>
|
|
761
|
+
|
|
762
|
+
<li class="md-nav__item">
|
|
763
|
+
<a href="#M4-遗漏omission" class="md-nav__link">
|
|
764
|
+
<span class="md-ellipsis">
|
|
765
|
+
|
|
766
|
+
M4 遗漏(omission)
|
|
767
|
+
|
|
768
|
+
</span>
|
|
769
|
+
</a>
|
|
770
|
+
|
|
771
|
+
</li>
|
|
772
|
+
|
|
773
|
+
<li class="md-nav__item">
|
|
774
|
+
<a href="#M5-检查引擎被削弱engine" class="md-nav__link">
|
|
775
|
+
<span class="md-ellipsis">
|
|
776
|
+
|
|
777
|
+
M5 检查引擎被削弱(engine)
|
|
778
|
+
|
|
779
|
+
</span>
|
|
780
|
+
</a>
|
|
781
|
+
|
|
782
|
+
</li>
|
|
783
|
+
|
|
784
|
+
</ul>
|
|
785
|
+
</nav>
|
|
786
|
+
|
|
787
|
+
</li>
|
|
788
|
+
|
|
789
|
+
<li class="md-nav__item">
|
|
790
|
+
<a href="#fixture-信封冻结" class="md-nav__link">
|
|
791
|
+
<span class="md-ellipsis">
|
|
792
|
+
|
|
793
|
+
fixture 信封(冻结)
|
|
794
|
+
|
|
795
|
+
</span>
|
|
796
|
+
</a>
|
|
797
|
+
|
|
798
|
+
</li>
|
|
799
|
+
|
|
800
|
+
<li class="md-nav__item">
|
|
801
|
+
<a href="#数量冻结与漏报律" class="md-nav__link">
|
|
802
|
+
<span class="md-ellipsis">
|
|
803
|
+
|
|
804
|
+
数量冻结与漏报律
|
|
805
|
+
|
|
806
|
+
</span>
|
|
807
|
+
</a>
|
|
808
|
+
|
|
809
|
+
</li>
|
|
810
|
+
|
|
811
|
+
</ul>
|
|
812
|
+
|
|
813
|
+
</nav>
|
|
814
|
+
</div>
|
|
815
|
+
</div>
|
|
816
|
+
</div>
|
|
817
|
+
|
|
818
|
+
|
|
819
|
+
|
|
820
|
+
<div class="md-content" data-md-component="content">
|
|
821
|
+
|
|
822
|
+
<article class="md-content__inner md-typeset">
|
|
823
|
+
|
|
824
|
+
|
|
825
|
+
|
|
826
|
+
|
|
827
|
+
|
|
828
|
+
<h1 id="变异分类学冻结">变异分类学(冻结)<a class="headerlink" href="#变异分类学冻结" title="Permanent link">¶</a></h1>
|
|
829
|
+
<p>FND-060 冻结五类变异。每一类都有独立的检测机制与每类 ≥3 例的变异 fixture;fixture 与预期是产品侧维护的测试语料(provenance <code>product-fixture</code>,见下方 fixture 信封),不复用生成器自测预期表,不读取 oracle 判据(该输入隔离由 <a href="../independence/">independence.md</a> 的机械证明强制)。它们证明产品侧输入隔离和兼容性,不证明作者、模型或认知独立;外部最终接受由仓外独立复审承担。分类集合是闭合的:新增类别属于审计分类学变更,必须走新的裁决并更新本文件与 <code>runner/lib/paths.mjs</code> 的 <code>MUTATION_CLASSES</code>。</p>
|
|
830
|
+
<table>
|
|
831
|
+
<thead>
|
|
832
|
+
<tr>
|
|
833
|
+
<th>类别</th>
|
|
834
|
+
<th>枚举值</th>
|
|
835
|
+
<th>检测机制</th>
|
|
836
|
+
<th>消费接口</th>
|
|
837
|
+
<th>审计码</th>
|
|
838
|
+
</tr>
|
|
839
|
+
</thead>
|
|
840
|
+
<tbody>
|
|
841
|
+
<tr>
|
|
842
|
+
<td>结构</td>
|
|
843
|
+
<td><code>structure</code></td>
|
|
844
|
+
<td>严格方言下的 schema 校验拒绝</td>
|
|
845
|
+
<td><code>validateDocument</code>(strict, 2020-12)</td>
|
|
846
|
+
<td>AUD-M1-STRUCT</td>
|
|
847
|
+
</tr>
|
|
848
|
+
<tr>
|
|
849
|
+
<td>语义</td>
|
|
850
|
+
<td><code>semantics</code></td>
|
|
851
|
+
<td>结构合法但违反冻结语义(协议登记、操作词表、params 契约、错误码成员资格)</td>
|
|
852
|
+
<td><code>findProtocol</code>、<code>checkOperation</code>、<code>isRegisteredErrorCode</code></td>
|
|
853
|
+
<td>AUD-M2-SEM</td>
|
|
854
|
+
</tr>
|
|
855
|
+
<tr>
|
|
856
|
+
<td>摘要</td>
|
|
857
|
+
<td><code>digest</code></td>
|
|
858
|
+
<td>规范化 JSON 的 SHA-256 与冻结 pin 不一致</td>
|
|
859
|
+
<td><code>digestDocument</code></td>
|
|
860
|
+
<td>AUD-M3-DIGEST</td>
|
|
861
|
+
</tr>
|
|
862
|
+
<tr>
|
|
863
|
+
<td>遗漏</td>
|
|
864
|
+
<td><code>omission</code></td>
|
|
865
|
+
<td>冻结必备部件缺失(登记、规则覆盖、错误码成员)</td>
|
|
866
|
+
<td>基线 pin 事实清单对比</td>
|
|
867
|
+
<td>AUD-M4-OMIT</td>
|
|
868
|
+
</tr>
|
|
869
|
+
<tr>
|
|
870
|
+
<td>检查引擎被削弱</td>
|
|
871
|
+
<td><code>engine</code></td>
|
|
872
|
+
<td>引擎参数完整性对比(预算、校验策略、检查类型闭集、稳定性政策)</td>
|
|
873
|
+
<td><code>describeAuditSurface</code> + 基线 pin</td>
|
|
874
|
+
<td>AUD-M5-ENGINE</td>
|
|
875
|
+
</tr>
|
|
876
|
+
</tbody>
|
|
877
|
+
</table>
|
|
878
|
+
<h2 id="各类别定义与判据">各类别定义与判据<a class="headerlink" href="#各类别定义与判据" title="Permanent link">¶</a></h2>
|
|
879
|
+
<h3 id="M1-结构structure">M1 结构(structure)<a class="headerlink" href="#M1-结构structure" title="Permanent link">¶</a></h3>
|
|
880
|
+
<p>变异改变文档的<strong>形状</strong>:缺必填成员、类型漂移、未声明成员、模式违规。判据:在 <code>2020-12</code> 方言、<code>strict</code> 策略下,文档必须被拒绝,且稳定码等于 fixture 声明的 <code>expect.observedErrorCode</code>(本类全部为 SFC1001)。预期由产品侧对照相应 schema 的 required/pattern/additionalProperties 推导,不取自生成器自测预期表或 oracle 判据。</p>
|
|
881
|
+
<h3 id="M2-语义semantics">M2 语义(semantics)<a class="headerlink" href="#M2-语义semantics" title="Permanent link">¶</a></h3>
|
|
882
|
+
<p>变异保持 schema 合法性,但违反冻结的<strong>登记语义</strong>。三个语义检查点(fixture 用 <code>expect.semanticCheck</code> 声明):</p>
|
|
883
|
+
<ul>
|
|
884
|
+
<li><code>protocol-registered</code>:协议名/版本必须在登记表中,否则 SFC1011;</li>
|
|
885
|
+
<li><code>operation-vocabulary</code>:操作名必须在协议版本的冻结词表内(否则 SFC2002),params 必须满足该操作的冻结 params 契约(否则 SFC2003);</li>
|
|
886
|
+
<li><code>error-code-registered</code>:operation-result 中的错误码必须是冻结登记表成员(形状合法但未登记 → SFC1009)。</li>
|
|
887
|
+
</ul>
|
|
888
|
+
<h3 id="M3-摘要digest">M3 摘要(digest)<a class="headerlink" href="#M3-摘要digest" title="Permanent link">¶</a></h3>
|
|
889
|
+
<p>变异保持结构与语义,仅改变<strong>规范化字节</strong>(措辞改写、同义替换)。判据:<code>digestDocument(input)</code> 必须不等于基线 pin 中 <code>documentDigests[expect.pinField]</code>。这是唯一能捕获"含义不变、字节改变"的类别。规范化规则由 Contracts 的 <code>canonicalJson</code> 冻结:对象键逐级字典序排序、数组保序、只接受 JSON 数据类型。</p>
|
|
890
|
+
<h3 id="M4-遗漏omission">M4 遗漏(omission)<a class="headerlink" href="#M4-遗漏omission" title="Permanent link">¶</a></h3>
|
|
891
|
+
<p>变异从冻结文档中<strong>删除</strong>必备部件。三个覆盖检查(fixture 用 <code>expect.check</code> 声明):</p>
|
|
892
|
+
<ul>
|
|
893
|
+
<li><code>registry-schema-coverage</code>:五个顶层对象的 schema 登记缺一不可;</li>
|
|
894
|
+
<li><code>rules-checktype-coverage</code>:九个检查类型每个都必须被至少一条 mandatory 规则覆盖;</li>
|
|
895
|
+
<li><code>error-code-coverage</code>:冻结错误码清单一个不能少。</li>
|
|
896
|
+
</ul>
|
|
897
|
+
<p>判据:观察到的缺失清单必须与 <code>expect.missing</code> <strong>完全一致</strong>(多报、漏报都算 fixture 失败)。</p>
|
|
898
|
+
<h3 id="M5-检查引擎被削弱engine">M5 检查引擎被削弱(engine)<a class="headerlink" href="#M5-检查引擎被削弱engine" title="Permanent link">¶</a></h3>
|
|
899
|
+
<p>变异不删除部件,而是<strong>放宽引擎参数</strong>。四个完整性检查(fixture 用 <code>expect.check</code> 声明):</p>
|
|
900
|
+
<ul>
|
|
901
|
+
<li><code>rules-budget</code>:预算数值(firstVersionMax=20、absoluteMax=30)不得变化;</li>
|
|
902
|
+
<li><code>validation-policies</code>:strict 策略必须保持 coerceTypes=false、useDefaults=false、allErrors=true、validateFormats=true;tolerant 策略逐键对比;</li>
|
|
903
|
+
<li><code>check-type-set</code>:九个检查类型是闭集,缺一不可;</li>
|
|
904
|
+
<li><code>error-code-stability</code>:错误码 append-only 稳定性政策原文不得改写。</li>
|
|
905
|
+
</ul>
|
|
906
|
+
<p>判据:观察到的被削弱字段清单必须与 <code>expect.weakened</code> 完全一致。</p>
|
|
907
|
+
<h2 id="fixture-信封冻结">fixture 信封(冻结)<a class="headerlink" href="#fixture-信封冻结" title="Permanent link">¶</a></h2>
|
|
908
|
+
<p>每个 fixture 是一个 JSON 文件:</p>
|
|
909
|
+
<table>
|
|
910
|
+
<thead>
|
|
911
|
+
<tr>
|
|
912
|
+
<th>字段</th>
|
|
913
|
+
<th>要求</th>
|
|
914
|
+
</tr>
|
|
915
|
+
</thead>
|
|
916
|
+
<tbody>
|
|
917
|
+
<tr>
|
|
918
|
+
<td><code>schemaVersion</code></td>
|
|
919
|
+
<td>常量 <code>1</code></td>
|
|
920
|
+
</tr>
|
|
921
|
+
<tr>
|
|
922
|
+
<td><code>kind</code></td>
|
|
923
|
+
<td>常量 <code>skill-family.audit.mutation-fixture</code></td>
|
|
924
|
+
</tr>
|
|
925
|
+
<tr>
|
|
926
|
+
<td><code>fixtureId</code></td>
|
|
927
|
+
<td><code>^AUD-M[1-5]-[0-9]{2}$</code>,第 6 位数字必须与类别一致</td>
|
|
928
|
+
</tr>
|
|
929
|
+
<tr>
|
|
930
|
+
<td><code>mutationClass</code></td>
|
|
931
|
+
<td>五类之一,且必须与所在目录一致</td>
|
|
932
|
+
</tr>
|
|
933
|
+
<tr>
|
|
934
|
+
<td><code>provenance</code></td>
|
|
935
|
+
<td>必须为 <code>product-fixture</code>(机械检查 P5)</td>
|
|
936
|
+
</tr>
|
|
937
|
+
<tr>
|
|
938
|
+
<td><code>description</code></td>
|
|
939
|
+
<td>变异意图说明</td>
|
|
940
|
+
</tr>
|
|
941
|
+
<tr>
|
|
942
|
+
<td><code>target</code></td>
|
|
943
|
+
<td>被测对象(schema/文件/投影)</td>
|
|
944
|
+
</tr>
|
|
945
|
+
<tr>
|
|
946
|
+
<td><code>input</code></td>
|
|
947
|
+
<td>变异后的完整文档或投影</td>
|
|
948
|
+
</tr>
|
|
949
|
+
<tr>
|
|
950
|
+
<td><code>expect.detected</code></td>
|
|
951
|
+
<td>必须为 <code>true</code>(变异必须被检出)</td>
|
|
952
|
+
</tr>
|
|
953
|
+
<tr>
|
|
954
|
+
<td><code>expect.auditCode</code></td>
|
|
955
|
+
<td>必须等于该类别的审计码</td>
|
|
956
|
+
</tr>
|
|
957
|
+
</tbody>
|
|
958
|
+
</table>
|
|
959
|
+
<p><strong>provenance 现行事实</strong>:变异 fixture 是产品侧测试语料(<code>product-fixture</code>),基线 pin 是产品侧兼容基线(<code>product-compatibility-fixture</code>,见 <a href="../version-compatibility/">version-compatibility.md</a>);它们证明产品侧输入隔离和兼容性,不证明作者、模型或认知独立。外部最终接受由仓外独立复审承担。历史纠错:fixture 与 pin 曾携带旧值 <code>independent-r2</code> 与独立作者叙事,该声称与本仓事实不符,已修正为上述如实词汇;纠错不改变任何 fixture 的 <code>input</code>/<code>expect</code>、digest 或 facts 字段。</p>
|
|
960
|
+
<h2 id="数量冻结与漏报律">数量冻结与漏报律<a class="headerlink" href="#数量冻结与漏报律" title="Permanent link">¶</a></h2>
|
|
961
|
+
<ul>
|
|
962
|
+
<li>每类 fixture ≥ 3(当前实际:结构 4、语义 4、摘要 3、遗漏 3、引擎 4,共 18);</li>
|
|
963
|
+
<li>覆盖门要求每类 <code>fixtures ≥ 3 且 detected ≥ 1</code>,不满足产生 AUD-MISS-001 并强制 verdict fail;</li>
|
|
964
|
+
<li>漏报律的负例验证由 <code>runner/selftest-negative.mjs</code> 执行:逐类禁用检测器,断言每次破坏都使运行失败。</li>
|
|
965
|
+
</ul>
|
|
966
|
+
|
|
967
|
+
|
|
968
|
+
|
|
969
|
+
|
|
970
|
+
|
|
971
|
+
|
|
972
|
+
|
|
973
|
+
|
|
974
|
+
|
|
975
|
+
|
|
976
|
+
|
|
977
|
+
|
|
978
|
+
|
|
979
|
+
</article>
|
|
980
|
+
</div>
|
|
981
|
+
|
|
982
|
+
|
|
983
|
+
<script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
|
|
984
|
+
</div>
|
|
985
|
+
|
|
986
|
+
</main>
|
|
987
|
+
|
|
988
|
+
<footer class="md-footer">
|
|
989
|
+
|
|
990
|
+
<div class="md-footer-meta md-typeset">
|
|
991
|
+
<div class="md-footer-meta__inner md-grid">
|
|
992
|
+
<div class="md-copyright">
|
|
993
|
+
|
|
994
|
+
|
|
995
|
+
Made with
|
|
996
|
+
<a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
|
|
997
|
+
Material for MkDocs
|
|
998
|
+
</a>
|
|
999
|
+
|
|
1000
|
+
</div>
|
|
1001
|
+
|
|
1002
|
+
</div>
|
|
1003
|
+
</div>
|
|
1004
|
+
</footer>
|
|
1005
|
+
|
|
1006
|
+
</div>
|
|
1007
|
+
<div class="md-dialog" data-md-component="dialog">
|
|
1008
|
+
<div class="md-dialog__inner md-typeset"></div>
|
|
1009
|
+
</div>
|
|
1010
|
+
|
|
1011
|
+
|
|
1012
|
+
|
|
1013
|
+
|
|
1014
|
+
|
|
1015
|
+
<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>
|
|
1016
|
+
|
|
1017
|
+
|
|
1018
|
+
<script src="../../../assets/javascripts/bundle.d7400e89.min.js"></script>
|
|
1019
|
+
|
|
1020
|
+
|
|
1021
|
+
</body>
|
|
1022
|
+
</html>
|