-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathVALIDATION.json
More file actions
298 lines (298 loc) · 47.7 KB
/
Copy pathVALIDATION.json
File metadata and controls
298 lines (298 loc) · 47.7 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
{
"checks": {
"files": {
"counts": {
"go": 2,
"json": 55,
"pascal": 4,
"powershell": 9,
"python": 64,
"toml": 2,
"xml": 0,
"yaml": 6
},
"file_count": 216,
"third_party_binary_bundling": "disabled"
},
"go": {
"builds": {
"linux": {
"buildvcs": false,
"bundled": "3c573e52b15b926f3dd54418f4a48eeddc4e0b6c05d893e4471b87dcc53ffa73",
"bundled_metadata": {
"command": [
"C:\\Program Files\\Go\\bin\\go.EXE",
"version",
"-m",
"<REPOSITORY_ROOT>\\writer\\published\\linux-x64\\SkyrimForge.Native"
],
"returncode": 0,
"stderr": "",
"stdout": "<REPOSITORY_ROOT>\\writer\\published\\linux-x64\\SkyrimForge.Native: go1.23.2\n\tpath\tskyrimforge/native\n\tmod\tskyrimforge/native\t(devel)\t\n\tbuild\t-buildmode=exe\n\tbuild\t-compiler=gc\n\tbuild\t-trimpath=true\n\tbuild\tCGO_ENABLED=0\n\tbuild\tGOARCH=amd64\n\tbuild\tGOOS=linux\n\tbuild\tGOAMD64=v1\n"
},
"first": "3c573e52b15b926f3dd54418f4a48eeddc4e0b6c05d893e4471b87dcc53ffa73",
"first_metadata": {
"command": [
"C:\\Program Files\\Go\\bin\\go.EXE",
"version",
"-m",
"<HOME>\\AppData\\Local\\Temp\\tmpbbb0pgpy\\linux-a"
],
"returncode": 0,
"stderr": "",
"stdout": "<HOME>\\AppData\\Local\\Temp\\tmpbbb0pgpy\\linux-a: go1.23.2\n\tpath\tskyrimforge/native\n\tmod\tskyrimforge/native\t(devel)\t\n\tbuild\t-buildmode=exe\n\tbuild\t-compiler=gc\n\tbuild\t-trimpath=true\n\tbuild\tCGO_ENABLED=0\n\tbuild\tGOARCH=amd64\n\tbuild\tGOOS=linux\n\tbuild\tGOAMD64=v1\n"
},
"result": "PASS",
"second": "3c573e52b15b926f3dd54418f4a48eeddc4e0b6c05d893e4471b87dcc53ffa73"
},
"windows": {
"buildvcs": false,
"bundled": "a210e332016837167022f0900e1e2bbfca0bc46be2625c48ae0ab637f248d842",
"bundled_metadata": {
"command": [
"C:\\Program Files\\Go\\bin\\go.EXE",
"version",
"-m",
"<REPOSITORY_ROOT>\\writer\\published\\win-x64\\SkyrimForge.Native.exe"
],
"returncode": 0,
"stderr": "",
"stdout": "<REPOSITORY_ROOT>\\writer\\published\\win-x64\\SkyrimForge.Native.exe: go1.23.2\n\tpath\tskyrimforge/native\n\tmod\tskyrimforge/native\t(devel)\t\n\tbuild\t-buildmode=exe\n\tbuild\t-compiler=gc\n\tbuild\t-trimpath=true\n\tbuild\tCGO_ENABLED=0\n\tbuild\tGOARCH=amd64\n\tbuild\tGOOS=windows\n\tbuild\tGOAMD64=v1\n"
},
"first": "a210e332016837167022f0900e1e2bbfca0bc46be2625c48ae0ab637f248d842",
"first_metadata": {
"command": [
"C:\\Program Files\\Go\\bin\\go.EXE",
"version",
"-m",
"<HOME>\\AppData\\Local\\Temp\\tmpbbb0pgpy\\windows-a.exe"
],
"returncode": 0,
"stderr": "",
"stdout": "<HOME>\\AppData\\Local\\Temp\\tmpbbb0pgpy\\windows-a.exe: go1.23.2\n\tpath\tskyrimforge/native\n\tmod\tskyrimforge/native\t(devel)\t\n\tbuild\t-buildmode=exe\n\tbuild\t-compiler=gc\n\tbuild\t-trimpath=true\n\tbuild\tCGO_ENABLED=0\n\tbuild\tGOARCH=amd64\n\tbuild\tGOOS=windows\n\tbuild\tGOAMD64=v1\n"
},
"result": "PASS",
"second": "a210e332016837167022f0900e1e2bbfca0bc46be2625c48ae0ab637f248d842"
}
},
"format": {
"command": [
"C:\\Program Files\\Go\\bin\\gofmt.exe",
"-l",
"."
],
"returncode": 0,
"stderr": "",
"stdout": ""
},
"race": {
"command": [
"C:\\Program Files\\Go\\bin\\go.EXE",
"test",
"-race",
"./..."
],
"returncode": 0,
"stderr": "",
"stdout": "ok \tskyrimforge/native\t(cached)\n"
},
"result": "PASS",
"tests": {
"command": [
"C:\\Program Files\\Go\\bin\\go.EXE",
"test",
"./..."
],
"returncode": 0,
"stderr": "",
"stdout": "ok \tskyrimforge/native\t(cached)\n"
},
"vet": {
"command": [
"C:\\Program Files\\Go\\bin\\go.EXE",
"vet",
"./..."
],
"returncode": 0,
"stderr": "",
"stdout": ""
}
},
"mcp": {
"dual_era": true,
"prompts": [
"build_compatibility_patch",
"build_fomod_installer",
"build_framework_config",
"build_native_plugin",
"configure_verified_toolchain",
"prepare_nexus_release",
"verify_mod_release"
],
"protocols": [
"2026-07-28",
"2025-11-25",
"2025-06-18",
"2024-11-05"
],
"resources": [
"forge://capabilities",
"forge://config",
"forge://docs/automation-fabric",
"forge://docs/capability-matrix",
"forge://docs/fomod",
"forge://docs/framework-engineering",
"forge://docs/native-plugin-engineering",
"forge://docs/nexus-publication",
"forge://docs/papyrus-engineering",
"forge://docs/toolchain-broker",
"forge://references/framework-source-lock",
"forge://references/native-source-lock",
"forge://references/nexus-policy-lock",
"forge://references/tool-catalog",
"forge://schemas/automation-job",
"forge://schemas/fomod-plan",
"forge://schemas/framework-plan",
"forge://schemas/native-plugin-plan",
"forge://schemas/nexus-publication-plan"
],
"result": "PASS",
"stderr": "",
"tools": 52
},
"native": {
"executed_platform": "windows",
"hashes": {
"linux": "3c573e52b15b926f3dd54418f4a48eeddc4e0b6c05d893e4471b87dcc53ffa73",
"windows": "a210e332016837167022f0900e1e2bbfca0bc46be2625c48ae0ab637f248d842"
},
"linux_elf": true,
"package_copies_match": true,
"package_copy_hashes": {
"linux": "3c573e52b15b926f3dd54418f4a48eeddc4e0b6c05d893e4471b87dcc53ffa73",
"windows": "a210e332016837167022f0900e1e2bbfca0bc46be2625c48ae0ab637f248d842"
},
"result": "PASS",
"self_test": {
"command": [
"<REPOSITORY_ROOT>\\writer\\published\\win-x64\\SkyrimForge.Native.exe",
"self-test"
],
"returncode": 0,
"stderr": "",
"stdout": "SKYRIM FORGE NATIVE SELF-TEST: PASS\n"
},
"version": {
"command": [
"<REPOSITORY_ROOT>\\writer\\published\\win-x64\\SkyrimForge.Native.exe",
"version"
],
"returncode": 0,
"stderr": "",
"stdout": "SkyrimForge.Native 6.0.0 go\n"
},
"windows_pe": true
},
"packaging": {
"sdist": {
"result": "PASS",
"sha256": "04025ffa166f528f19791391193e9e503395eb38053820e92b73b3e60ae3ed5d",
"size": 3621568
},
"wheel": {
"result": "PASS",
"sha256": "fd074aa6126fd79c0a3ccf5c33833129c41017cb74351566393f02309f029789",
"size": 1848764
}
},
"powershell": {
"batch_files": [
"Forge Doctor.bat",
"Run Tests.bat",
"Skyrim Forge GUI.bat",
"Skyrim Forge MCP.bat",
"Skyrim Forge.bat",
"START-HERE.bat"
],
"files": [
"Configure-Automation.ps1",
"Configure-Forge.ps1",
"Configure-Toolchain.ps1",
"Install-AI-Bridge.ps1",
"Install-Forge-Skill.ps1",
"Install-or-Update.ps1",
"PowerShell-Parse-Gate.ps1",
"Register-MCP.ps1",
"SkyrimForge.UIWorker.ps1"
],
"findings": [],
"result": "PASS"
},
"python": {
"compile": {
"command": [
"<HOME>\\AppData\\Local\\Python\\pythoncore-3.14-64\\python.exe",
"-m",
"compileall",
"-q",
"skyrim_forge",
"tests",
"scripts"
],
"returncode": 0,
"stderr": "",
"stdout": ""
},
"result": "PASS",
"self_test": {
"command": [
"<HOME>\\AppData\\Local\\Python\\pythoncore-3.14-64\\python.exe",
"-m",
"skyrim_forge",
"self-test"
],
"returncode": 0,
"stderr": "",
"stdout": "{\n \"checks\": {\n \"capabilities\": {\n \"capabilities\": [\n {\n \"id\": \"plugin.inspect\",\n \"level\": \"direct\",\n \"limitations\": \"Forge's parser is independent of xEdit but is not a replacement for xEdit or runtime validation.\",\n \"outputs\": [\n \"headers\",\n \"masters\",\n \"record queries\",\n \"hashes\"\n ],\n \"status\": \"implemented\"\n },\n {\n \"id\": \"plugin.write.low_risk\",\n \"level\": \"direct\",\n \"limitations\": \"Typed records only; no arbitrary binary record editing.\",\n \"outputs\": [\n \"KYWD\",\n \"GLOB\",\n \"FLST\",\n \"OTFT\"\n ],\n \"status\": \"implemented\"\n },\n {\n \"id\": \"framework.lint\",\n \"level\": \"profiled\",\n \"limitations\": \"Unknown or version-specific syntax is reported as unverified, not automatically rewritten.\",\n \"profiles\": [\n \"SPID 7.3\",\n \"KID 4.0.6\",\n \"BOS 3.4.1\",\n \"SkyPatcher 6.4.2 placement/core rules\",\n \"FLM 1.8.1 core rules\",\n \"CDF pinned JSON subset\"\n ],\n \"status\": \"implemented\"\n },\n {\n \"id\": \"framework.build\",\n \"level\": \"profiled\",\n \"limitations\": \"Generates only modeled subsets and validates the generated file. It does not invent category-specific SkyPatcher properties.\",\n \"profiles\": [\n \"SPID 7.3\",\n \"KID 4.0.6\",\n \"BOS 3.4.1\",\n \"SkyPatcher 6.4.2 core INI\",\n \"FLM 1.8.1 core INI\"\n ],\n \"status\": \"implemented\"\n },\n {\n \"id\": \"papyrus.analyze\",\n \"level\": \"profiled\",\n \"limitations\": \"Performance findings are review warnings, never automatic semantic rewrites.\",\n \"outputs\": [\n \"identity graph\",\n \"inheritance cycles\",\n \"import conflicts\",\n \"performance heuristics\"\n ],\n \"status\": \"implemented\"\n },\n {\n \"id\": \"papyrus.compile\",\n \"level\": \"adapter\",\n \"limitations\": \"Compilation proves compiler acceptance and fresh PEX output, not runtime correctness.\",\n \"requires\": [\n \"pinned Bethesda PapyrusCompiler\",\n \"flags file\",\n \"source imports\"\n ],\n \"status\": \"implemented\"\n },\n {\n \"id\": \"native.scaffold\",\n \"level\": \"profiled\",\n \"limitations\": \"The scaffold is source-locked; installed compilers and dependencies remain external.\",\n \"outputs\": [\n \"CommonLibSSE-NG CMake project\",\n \"vcpkg manifests\",\n \"SKSE entry point\",\n \"CI workflow\"\n ],\n \"status\": \"implemented\"\n },\n {\n \"id\": \"native.build\",\n \"level\": \"adapter\",\n \"limitations\": \"Builds only inside the Forge workspace and does not deploy to live Data.\",\n \"requires\": [\n \"pinned CMake\",\n \"pinned vcpkg\",\n \"Visual Studio C++ toolchain\"\n ],\n \"status\": \"implemented\"\n },\n {\n \"id\": \"native.binary_audit\",\n \"level\": \"direct\",\n \"limitations\": \"Static PE evidence does not prove compatibility with every SKSE plugin or runtime.\",\n \"outputs\": [\n \"PE architecture\",\n \"DLL characteristic\",\n \"imports\",\n \"hash\"\n ],\n \"status\": \"implemented\"\n },\n {\n \"id\": \"fomod.engineering\",\n \"level\": \"profiled\",\n \"limitations\": \"Declarative ModuleConfig only; arbitrary C# installers are blocked.\",\n \"outputs\": [\n \"typed plan\",\n \"ModuleConfig XML\",\n \"simulation\",\n \"release gate\"\n ],\n \"status\": \"implemented\"\n },\n {\n \"id\": \"xedit.automation\",\n \"level\": \"adapter\",\n \"limitations\": \"The xEdit process may show a window, but jobs require completion markers and no user interaction.\",\n \"requires\": [\n \"installed hash-pinned xEdit\",\n \"allowlisted Pascal scripts\"\n ],\n \"status\": \"implemented\"\n },\n {\n \"id\": \"creation_kit\",\n \"level\": \"worker_contract\",\n \"limitations\": \"No universal headless CK bridge is bundled. UI automation is narrow and coordinate-free.\",\n \"requires\": [\n \"version-pinned local CK or CKPE worker\"\n ],\n \"status\": \"adapter_only\"\n },\n {\n \"id\": \"wrye_bash\",\n \"level\": \"worker_contract\",\n \"limitations\": \"Requires a version-pinned worker around the installed Wrye Bash version.\",\n \"status\": \"adapter_only\"\n },\n {\n \"id\": \"loot\",\n \"level\": \"worker_contract\",\n \"limitations\": \"Forge validates and applies typed plans; it does not invent unsupported LOOT GUI arguments.\",\n \"status\": \"adapter_only\"\n },\n {\n \"id\": \"mo2\",\n \"level\": \"adapter\",\n \"limitations\": \"Profile capture and bounded launching only; live profile changes require approval.\",\n \"status\": \"implemented\"\n },\n {\n \"id\": \"vortex\",\n \"level\": \"adapter\",\n \"limitations\": \"Forge inspects staging and builds archives. It does not mutate Vortex's internal database.\",\n \"status\": \"read_only\"\n },\n {\n \"id\": \"nexus.publication\",\n \"level\": \"human_gate\",\n \"limitations\": \"Forge enforces machine-checkable declarations and evidence completeness, but cannot authenticate legal ownership, consent, trademark/privacy clearance, or permission conversations. The uploader must attest and remains responsible.\",\n \"outputs\": [\n \"rights manifest\",\n \"credits\",\n \"third-party notices\",\n \"permissions\",\n \"AI disclosure\",\n \"private evidence audit\",\n \"Nexus BBCode page\"\n ],\n \"status\": \"implemented\"\n },\n {\n \"id\": \"runtime.skyrim\",\n \"level\": \"human_gate\",\n \"limitations\": \"Crashes, visuals, balance, navmesh, save migration, hooks, animation quality, and gameplay require real runtime testing.\",\n \"status\": \"required\"\n },\n {\n \"id\": \"synthesis\",\n \"level\": \"worker_contract\",\n \"limitations\": \"Requires a pinned local Synthesis worker and patcher source; Forge can confine outputs and receipts but does not bundle the .NET ecosystem.\",\n \"status\": \"adapter_only\"\n },\n {\n \"id\": \"toolchain.discovery\",\n \"level\": \"direct\",\n \"limitations\": \"Static discovery never launches tools; local import does not grant redistribution rights.\",\n \"requires\": [\n \"local directory or ZIP\"\n ],\n \"status\": \"implemented\"\n },\n {\n \"id\": \"archive.bsarch\",\n \"level\": \"direct\",\n \"limitations\": \"Pack input and all outputs are confined to the Forge workspace; runtime game loading remains separate evidence.\",\n \"requires\": [\n \"configured hash-pinned BSArch\"\n ],\n \"status\": \"implemented\"\n },\n {\n \"id\": \"papyrus.decompile\",\n \"level\": \"direct\",\n \"limitations\": \"Decompiler output is not authoritative original source and conveys no redistribution rights.\",\n \"requires\": [\n \"configured hash-pinned Champollion\"\n ],\n \"status\": \"implemented\"\n },\n {\n \"id\": \"synthesis.cli\",\n \"level\": \"direct\",\n \"limitations\": \"Synthesis.exe GUI is not accepted as the CLI. Patcher-specific runtime behavior requires output verification.\",\n \"requires\": [\n \"Synthesis.Bethesda.CLI executable\"\n ],\n \"status\": \"implemented\"\n },\n {\n \"id\": \"mesh.deadmesh\",\n \"level\": \"direct\",\n \"limitations\": \"Static collision findings require mesh and runtime review.\",\n \"requires\": [\n \"configured hash-pinned dmscan with sidecars\"\n ],\n \"status\": \"implemented\"\n },\n {\n \"id\": \"assets.archive\",\n \"level\": \"adapter\",\n \"limitations\": \"BSA/BA2 creation requires a pinned Archive/BSArch worker; archive acceptance is not asset correctness.\",\n \"outputs\": [\n \"safe inventory\",\n \"hashes\",\n \"deterministic ZIP\"\n ],\n \"status\": \"implemented\"\n },\n {\n \"id\": \"assets.mesh_texture\",\n \"level\": \"worker_contract\",\n \"limitations\": \"NIF, DDS, parallax, PBR, and optimizer transforms require version-specific tools and visual review.\",\n \"requires\": [\n \"pinned asset worker\"\n ],\n \"status\": \"adapter_only\"\n },\n {\n \"id\": \"animation.behavior\",\n \"level\": \"worker_contract\",\n \"limitations\": \"Pandora/Nemesis/OAR/HKX generation is tool-version specific and requires in-game animation review.\",\n \"requires\": [\n \"pinned animation worker\"\n ],\n \"status\": \"adapter_only\"\n },\n {\n \"id\": \"bodyslide\",\n \"level\": \"worker_contract\",\n \"limitations\": \"Batch build can be confined and inventoried, but body/physics output needs visual and collision testing.\",\n \"requires\": [\n \"pinned BodySlide worker\"\n ],\n \"status\": \"adapter_only\"\n },\n {\n \"id\": \"lod\",\n \"level\": \"worker_contract\",\n \"limitations\": \"Worldspace/load-order-specific generation and visual inspection remain mandatory.\",\n \"requires\": [\n \"pinned xLODGen/DynDOLOD worker\"\n ],\n \"status\": \"adapter_only\"\n },\n {\n \"id\": \"grass_cache\",\n \"level\": \"worker_contract\",\n \"limitations\": \"Generation depends on runtime, load order, worldspaces, and stability; Forge does not bundle NGIO or game files.\",\n \"requires\": [\n \"pinned grass-cache worker\"\n ],\n \"status\": \"adapter_only\"\n },\n {\n \"id\": \"audio.voice\",\n \"level\": \"worker_contract\",\n \"limitations\": \"FUZ/LIP/voice generation requires legal source audio, tool-specific processing, and in-game dialogue timing review.\",\n \"requires\": [\n \"pinned audio worker\"\n ],\n \"status\": \"adapter_only\"\n },\n {\n \"id\": \"facegen\",\n \"level\": \"worker_contract\",\n \"limitations\": \"Generated NIF/DDS identity and appearance require xEdit verification and in-game visual review.\",\n \"requires\": [\n \"pinned Creation Kit/CKPE worker\"\n ],\n \"status\": \"adapter_only\"\n },\n {\n \"id\": \"quest.dialogue\",\n \"level\": \"worker_contract\",\n \"limitations\": \"CK fragment/SEQ/voice manifests may be automated by a pinned worker; quest flow, aliases, scenes, and dialogue timing require CK and runtime review.\",\n \"status\": \"adapter_only\"\n },\n {\n \"id\": \"worldspace.landscape\",\n \"level\": \"human_gate\",\n \"limitations\": \"Reference placement, landscape, lighting, occlusion, and seams are not safely judged by generic static automation.\",\n \"status\": \"not_automated\"\n },\n {\n \"id\": \"navmesh.write\",\n \"level\": \"unsupported\",\n \"limitations\": \"No generic NAVM writer is exposed. CK finalization and in-game traversal checks remain required.\",\n \"status\": \"blocked\"\n }\n ],\n \"product\": \"Skyrim Forge\",\n \"result\": \"PASS\",\n \"rule\": \"An AI must not claim a stronger evidence level than the capability registry reports.\",\n \"version\": \"6.0.0\"\n },\n \"fomod\": {\n \"assertions\": {\n \"generated_xml\": true,\n \"strict_validation\": true,\n \"typed_plan\": true\n },\n \"result\": \"PASS\",\n \"validation\": {\n \"counts\": {\n \"conditional_patterns\": 0,\n \"dependencies\": 0,\n \"groups\": 0,\n \"mappings\": 1,\n \"plugins\": 0,\n \"steps\": 0\n },\n \"defined_flags\": [],\n \"destination_collisions\": [],\n \"errors\": [],\n \"evidence\": \"FOMOD ModuleConfig 5.0 schema-shape, structural, semantic, source-coverage, destination-collision, temporal flag-reference, and XML-order validation. Actual Vortex/MO2 execution remains an external gate.\",\n \"info_xml\": \"C:\\\\Users\\\\karlo\\\\AppData\\\\Local\\\\Temp\\\\forge-fomod-self-test-_ikc5_r0\\\\source\\\\fomod\\\\info.xml\",\n \"missing_sources\": [],\n \"module_config\": \"C:\\\\Users\\\\karlo\\\\AppData\\\\Local\\\\Temp\\\\forge-fomod-self-test-_ikc5_r0\\\\source\\\\fomod\\\\ModuleConfig.xml\",\n \"referenced_flags\": [],\n \"result\": \"PASS\",\n \"root\": \"C:\\\\Users\\\\karlo\\\\AppData\\\\Local\\\\Temp\\\\forge-fomod-self-test-_ikc5_r0\\\\source\",\n \"unreferenced_payload\": [],\n \"warnings\": []\n }\n },\n \"framework_builder\": {\n \"assertions\": {\n \"bos\": true,\n \"flm\": true,\n \"kid\": true,\n \"skypatcher\": true,\n \"spid\": true\n },\n \"result\": \"PASS\"\n },\n \"framework_lint\": {\n \"assertions\": {\n \"bos_whitespace_rejected\": true,\n \"kid_exclusive_and_type\": true,\n \"kid_signature_rejected\": true,\n \"spid_actor_and_skill_range\": true,\n \"spid_single_value_skill_rejected\": true,\n \"spid_special_keys\": true\n },\n \"result\": \"PASS\"\n },\n \"native\": {\n \"assertions\": {\n \"scaffold_and_audit\": true\n },\n \"result\": \"PASS\"\n },\n \"nexus\": {\n \"files\": 2,\n \"result\": \"PASS\",\n \"share_ready\": true\n },\n \"papyrus\": {\n \"assertions\": {\n \"hot_event_warning\": true,\n \"valid_identity\": true\n },\n \"result\": \"PASS\"\n },\n \"toolchain\": {\n \"catalog_count\": 28,\n \"result\": \"PASS\"\n }\n },\n \"evidence\": \"Built-in deterministic regression fixtures. External tool and Skyrim runtime evidence remain separate.\",\n \"failed\": [],\n \"result\": \"PASS\",\n \"version\": \"6.0.0\"\n}\n"
},
"test_count": 159,
"tests": {
"command": [
"<HOME>\\AppData\\Local\\Python\\pythoncore-3.14-64\\python.exe",
"-m",
"unittest",
"discover",
"-s",
"tests",
"-v"
],
"returncode": 0,
"stderr": "test_automation_framework_job (test_automation.AutomationTests.test_automation_framework_job) ... ok\ntest_external_worker_contract (test_automation.AutomationTests.test_external_worker_contract) ... ok\ntest_external_worker_forces_output_root_and_rejects_escape (test_automation.AutomationTests.test_external_worker_forces_output_root_and_rejects_escape) ... ok\ntest_invalid_windows_exe_is_rejected_before_launch (test_automation.AutomationTests.test_invalid_windows_exe_is_rejected_before_launch) ... ok\ntest_loot_apply_only_allows_configured_profile_targets (test_automation.AutomationTests.test_loot_apply_only_allows_configured_profile_targets) ... ok\ntest_loot_plan_comparison (test_automation.AutomationTests.test_loot_plan_comparison) ... ok\ntest_mo2_command_forbids_multiple (test_automation.AutomationTests.test_mo2_command_forbids_multiple) ... ok\ntest_profile_snapshot (test_automation.AutomationTests.test_profile_snapshot) ... ok\ntest_python_fixture_uses_current_interpreter (test_automation.AutomationTests.test_python_fixture_uses_current_interpreter) ... ok\ntest_ui_job_rejects_coordinates_and_ocr (test_automation.AutomationTests.test_ui_job_rejects_coordinates_and_ocr) ... ok\ntest_unknown_automation_fields_rejected (test_automation.AutomationTests.test_unknown_automation_fields_rejected) ... ok\ntest_xedit_command_and_marker (test_automation.AutomationTests.test_xedit_command_and_marker) ... ok\ntest_xedit_fixed_script_executes_without_user_input (test_automation.AutomationTests.test_xedit_fixed_script_executes_without_user_input) ... ok\ntest_embedded_rebuild_helper_resolves_root_go_toolchain (test_ci_validation.CIValidationScopeTests.test_embedded_rebuild_helper_resolves_root_go_toolchain) ... ok\ntest_embedded_validator_resolves_root_go_toolchain (test_ci_validation.CIValidationScopeTests.test_embedded_validator_resolves_root_go_toolchain) ... ok\ntest_full_scope_contains_reproducibility_checks (test_ci_validation.CIValidationScopeTests.test_full_scope_contains_reproducibility_checks) ... ok\ntest_python_scope_never_rebuilds_native_binaries (test_ci_validation.CIValidationScopeTests.test_python_scope_never_rebuilds_native_binaries) ... ok\ntest_unknown_scope_is_rejected (test_ci_validation.CIValidationScopeTests.test_unknown_scope_is_rejected) ... ok\ntest_codeql_action_versions_are_pinned_together (test_ci_validation.WorkflowPinningTests.test_codeql_action_versions_are_pinned_together) ... ok\ntest_dependabot_groups_the_codeql_pair (test_ci_validation.WorkflowPinningTests.test_dependabot_groups_the_codeql_pair) ... ok\ntest_release_publish_is_idempotent (test_ci_validation.WorkflowPinningTests.test_release_publish_is_idempotent) ... ok\ntest_config_first_use_creates_workspace (test_core.CoreTests.test_config_first_use_creates_workspace) ... ok\ntest_configured_seven_zip_is_an_allowed_read_target (test_core.CoreTests.test_configured_seven_zip_is_an_allowed_read_target) ... ok\ntest_current_papyrus_defaults_roundtrip_without_repeated_migration (test_core.CoreTests.test_current_papyrus_defaults_roundtrip_without_repeated_migration) ... ok\ntest_empty_documents_workspace_migrates_to_install_root (test_core.CoreTests.test_empty_documents_workspace_migrates_to_install_root) ... ok\ntest_framework_regressions (test_core.CoreTests.test_framework_regressions) ... ok\ntest_legacy_papyrus_config_migrates_and_backs_up (test_core.CoreTests.test_legacy_papyrus_config_migrates_and_backs_up) ... ok\ntest_native_module_parses_with_python_311_grammar (test_core.CoreTests.test_native_module_parses_with_python_311_grammar) ... ok\ntest_plugin_build_and_query (test_core.CoreTests.test_plugin_build_and_query) ... ok\ntest_plugin_plan_rejects_unknown_record (test_core.CoreTests.test_plugin_plan_rejects_unknown_record) ... ok\ntest_private_release_can_never_claim_share_ready (test_core.CoreTests.test_private_release_can_never_claim_share_ready) ... ok\ntest_record_query_rejects_unbounded_limit (test_core.CoreTests.test_record_query_rejects_unbounded_limit) ... ok\ntest_release_rejects_private_windows_user_path (test_core.CoreTests.test_release_rejects_private_windows_user_path) ... ok\ntest_release_rejects_symlink (test_core.CoreTests.test_release_rejects_symlink) ... ok\ntest_release_validation_and_determinism (test_core.CoreTests.test_release_validation_and_determinism) ... ok\ntest_strict_json_rejects_duplicates_and_nonfinite (test_core.CoreTests.test_strict_json_rejects_duplicates_and_nonfinite) ... ok\ntest_user_workspace_follows_skyrim_forge_root_not_documents (test_core.CoreTests.test_user_workspace_follows_skyrim_forge_root_not_documents) ... ok\ntest_version_and_self_test_do_not_load_broken_config (test_core.CoreTests.test_version_and_self_test_do_not_load_broken_config) ... ok\ntest_workspace_escape_and_symlink_rejected (test_core.CoreTests.test_workspace_escape_and_symlink_rejected) ... ok\ntest_empty_files_node_is_accepted_for_informational_option (test_fomod.ExistingFomodCompatibilityTests.test_empty_files_node_is_accepted_for_informational_option) ... ok\ntest_empty_info_xml_is_valid_metadata_omission_with_warnings (test_fomod.ExistingFomodCompatibilityTests.test_empty_info_xml_is_valid_metadata_omission_with_warnings) ... ok\ntest_existing_xml_rejects_flag_reference_before_defining_step (test_fomod.ExistingFomodCompatibilityTests.test_existing_xml_rejects_flag_reference_before_defining_step) ... ok\ntest_always_install_and_install_if_usable_apply_when_option_unselected (test_fomod.FomodSchemaHardeningTests.test_always_install_and_install_if_usable_apply_when_option_unselected) ... ok\ntest_always_install_breaks_mutually_exclusive_collision_safety (test_fomod.FomodSchemaHardeningTests.test_always_install_breaks_mutually_exclusive_collision_safety) ... ok\ntest_csharp_installer_is_still_refused (test_fomod.FomodSchemaHardeningTests.test_csharp_installer_is_still_refused) ... ok\ntest_existing_xml_omitted_destination_defaults_to_source (test_fomod.FomodSchemaHardeningTests.test_existing_xml_omitted_destination_defaults_to_source) ... ok\ntest_generated_xml_uses_direct_visible_dependencies_and_schema_order (test_fomod.FomodSchemaHardeningTests.test_generated_xml_uses_direct_visible_dependencies_and_schema_order) ... ok\ntest_plugin_and_conditional_payload_requirements_are_enforced (test_fomod.FomodSchemaHardeningTests.test_plugin_and_conditional_payload_requirements_are_enforced) ... ok\ntest_schema_location_is_reported_but_never_fatal (test_fomod.FomodSchemaHardeningTests.test_schema_location_is_reported_but_never_fatal)\n`xsi:noNamespaceSchemaLocation` is an optional XML hint. ... ok\ntest_temporal_flag_references_are_enforced (test_fomod.FomodSchemaHardeningTests.test_temporal_flag_references_are_enforced) ... ok\ntest_typed_root_destination_is_emitted_explicitly (test_fomod.FomodSchemaHardeningTests.test_typed_root_destination_is_emitted_explicitly) ... ok\ntest_utf16_and_screenshot_module_image_are_supported (test_fomod.FomodSchemaHardeningTests.test_utf16_and_screenshot_module_image_are_supported) ... ok\ntest_equal_priority_collision_is_rejected (test_fomod.FomodTests.test_equal_priority_collision_is_rejected) ... ok\ntest_invalid_moduleconfig_order_is_rejected (test_fomod.FomodTests.test_invalid_moduleconfig_order_is_rejected) ... ok\ntest_path_traversal_is_rejected (test_fomod.FomodTests.test_path_traversal_is_rejected) ... ok\ntest_plan_build_validate_and_release_gate (test_fomod.FomodTests.test_plan_build_validate_and_release_gate) ... ok\ntest_scaffold_unwraps_single_data_folder (test_fomod.FomodTests.test_scaffold_unwraps_single_data_folder) ... ok\ntest_spid_style_branch_simulation_enforces_group_and_flags (test_fomod.FomodTests.test_spid_style_branch_simulation_enforces_group_and_flags) ... ok\ntest_unreferenced_payload_is_rejected (test_fomod.FomodTests.test_unreferenced_payload_is_rejected) ... ok\ntest_game_specific_version_dependency_is_recorded_not_refused (test_fomod.ThirdPartyFomodFalsePositiveTests.test_game_specific_version_dependency_is_recorded_not_refused) ... ok\ntest_plugin_with_an_option_image_is_accepted (test_fomod.ThirdPartyFomodFalsePositiveTests.test_plugin_with_an_option_image_is_accepted) ... ok\ntest_unreferenced_payload_names_the_files_it_rejects (test_fomod.ThirdPartyFomodFalsePositiveTests.test_unreferenced_payload_names_the_files_it_rejects) ... ok\ntest_kid_keys_are_case_insensitive (test_frameworks_spid.InstalledCorpusRegressionTests.test_kid_keys_are_case_insensitive) ... ok\ntest_kid_two_field_line_is_not_an_unsupported_type (test_frameworks_spid.InstalledCorpusRegressionTests.test_kid_two_field_line_is_not_an_unsupported_type) ... ok\ntest_repeated_advisory_is_collapsed_to_one_entry (test_frameworks_spid.InstalledCorpusRegressionTests.test_repeated_advisory_is_collapsed_to_one_entry) ... ok\ntest_skypatcher_categories_present_in_real_installs_are_known (test_frameworks_spid.InstalledCorpusRegressionTests.test_skypatcher_categories_present_in_real_installs_are_known) ... ok\ntest_skypatcher_clause_value_may_be_a_comma_separated_form_list (test_frameworks_spid.InstalledCorpusRegressionTests.test_skypatcher_clause_value_may_be_a_comma_separated_form_list) ... ok\ntest_stacked_and_midfile_boms_do_not_invent_findings (test_frameworks_spid.InstalledCorpusRegressionTests.test_stacked_and_midfile_boms_do_not_invent_findings) ... ok\ntest_actor_level_plus_skill_range_is_valid (test_frameworks_spid.SpidGrammarTests.test_actor_level_plus_skill_range_is_valid) ... ok\ntest_known_weapon_alias_remains_a_hard_error (test_frameworks_spid.SpidGrammarTests.test_known_weapon_alias_remains_a_hard_error) ... ok\ntest_runtime_proven_skill_filter_is_silent (test_frameworks_spid.SpidGrammarTests.test_runtime_proven_skill_filter_is_silent) ... ok\ntest_single_value_skill_expression_is_reported_not_failed (test_frameworks_spid.SpidGrammarTests.test_single_value_skill_expression_is_reported_not_failed)\nA single-value skill filter is reported, never failed. ... ok\ntest_skill_index_and_range_order_are_checked (test_frameworks_spid.SpidGrammarTests.test_skill_index_and_range_order_are_checked) ... ok\ntest_unknown_future_key_is_warning_not_false_failure (test_frameworks_spid.SpidGrammarTests.test_unknown_future_key_is_warning_not_false_failure) ... ok\ntest_both_eras_expose_the_same_tools (test_mcp.DualEraMcpTests.test_both_eras_expose_the_same_tools) ... ok\ntest_discover_answers_an_unprobed_client (test_mcp.DualEraMcpTests.test_discover_answers_an_unprobed_client) ... ok\ntest_initialize_modern_version_carries_result_type (test_mcp.DualEraMcpTests.test_initialize_modern_version_carries_result_type) ... ok\ntest_legacy_clients_keep_their_exact_result_shape (test_mcp.DualEraMcpTests.test_legacy_clients_keep_their_exact_result_shape) ... ok\ntest_legacy_initialize_keeps_handshake_shape (test_mcp.DualEraMcpTests.test_legacy_initialize_keeps_handshake_shape) ... ok\ntest_local_configuration_is_never_publicly_cacheable (test_mcp.DualEraMcpTests.test_local_configuration_is_never_publicly_cacheable) ... ok\ntest_modern_lists_carry_required_caching_hints (test_mcp.DualEraMcpTests.test_modern_lists_carry_required_caching_hints) ... ok\ntest_modern_tool_call_carries_result_type (test_mcp.DualEraMcpTests.test_modern_tool_call_carries_result_type) ... ok\ntest_server_discover_is_implemented (test_mcp.DualEraMcpTests.test_server_discover_is_implemented) ... ok\ntest_tool_call_without_meta_still_carries_result_type (test_mcp.DualEraMcpTests.test_tool_call_without_meta_still_carries_result_type) ... ok\ntest_unsupported_version_is_refused_with_its_supported_list (test_mcp.DualEraMcpTests.test_unsupported_version_is_refused_with_its_supported_list) ... ok\ntest_fomod_surface_is_exposed (test_mcp.McpTests.test_fomod_surface_is_exposed) ... ok\ntest_initialize_and_tools (test_mcp.McpTests.test_initialize_and_tools) ... ok\ntest_nexus_publication_surface_is_exposed (test_mcp.McpTests.test_nexus_publication_surface_is_exposed) ... ok\ntest_papyrus_compile_tool_reaches_the_service (test_mcp.McpTests.test_papyrus_compile_tool_reaches_the_service) ... ok\ntest_tool_call (test_mcp.McpTests.test_tool_call) ... ok\ntest_packaged_native_helpers_match_published_helpers (test_native_release_integrity.NativeReleaseIntegrityTests.test_packaged_native_helpers_match_published_helpers) ... ok\ntest_git_checkout_build_matches_bundled_helper (test_native_vcs_reproducibility.NativeVCSReproducibilityTests.test_git_checkout_build_matches_bundled_helper) ... skipped 'Exact release toolchain unavailable: go1.26.5'\ntest_release_build_paths_disable_vcs_metadata (test_native_vcs_reproducibility.NativeVCSReproducibilityTests.test_release_build_paths_disable_vcs_metadata) ... ok\ntest_absolute_permission_evidence_path_rejected (test_nexus_publication.NexusPublicationTests.test_absolute_permission_evidence_path_rejected) ... ok\ntest_adult_content_requires_matching_tag (test_nexus_publication.NexusPublicationTests.test_adult_content_requires_matching_tag) ... ok\ntest_build_bundle_separates_private_audit (test_nexus_publication.NexusPublicationTests.test_build_bundle_separates_private_audit) ... ok\ntest_compilation_requires_value_beyond_repackaging (test_nexus_publication.NexusPublicationTests.test_compilation_requires_value_beyond_repackaging) ... ok\ntest_copyleft_license_requires_source_and_acknowledgement (test_nexus_publication.NexusPublicationTests.test_copyleft_license_requires_source_and_acknowledgement) ... ok\ntest_credit_is_not_permission (test_nexus_publication.NexusPublicationTests.test_credit_is_not_permission) ... ok\ntest_donation_points_requires_each_asset_permission (test_nexus_publication.NexusPublicationTests.test_donation_points_requires_each_asset_permission) ... ok\ntest_event_profile_blocks_ai (test_nexus_publication.NexusPublicationTests.test_event_profile_blocks_ai) ... ok\ntest_executable_inventory_must_match_declaration (test_nexus_publication.NexusPublicationTests.test_executable_inventory_must_match_declaration) ... ok\ntest_explicit_permission_requires_evidence (test_nexus_publication.NexusPublicationTests.test_explicit_permission_requires_evidence) ... ok\ntest_internet_connected_tool_requires_source_staff_contact_and_disclosure (test_nexus_publication.NexusPublicationTests.test_internet_connected_tool_requires_source_staff_contact_and_disclosure) ... ok\ntest_known_game_file_is_blocked (test_nexus_publication.NexusPublicationTests.test_known_game_file_is_blocked) ... ok\ntest_multiple_asset_match_blocks_release (test_nexus_publication.NexusPublicationTests.test_multiple_asset_match_blocks_release) ... ok\ntest_nexus_permission_presets_cannot_exceed_asset_rights (test_nexus_publication.NexusPublicationTests.test_nexus_permission_presets_cannot_exceed_asset_rights) ... ok\ntest_open_license_requires_licence_copy (test_nexus_publication.NexusPublicationTests.test_open_license_requires_licence_copy) ... ok\ntest_patch_release_requires_original_dependency (test_nexus_publication.NexusPublicationTests.test_patch_release_requires_original_dependency) ... ok\ntest_performance_claim_requires_evidence (test_nexus_publication.NexusPublicationTests.test_performance_claim_requires_evidence) ... ok\ntest_relative_permission_evidence_is_hashed_but_not_exposed (test_nexus_publication.NexusPublicationTests.test_relative_permission_evidence_is_hashed_but_not_exposed) ... ok\ntest_rendered_page_contains_credits_permissions_and_ai_disclosure (test_nexus_publication.NexusPublicationTests.test_rendered_page_contains_credits_permissions_and_ai_disclosure) ... ok\ntest_stale_policy_review_blocks (test_nexus_publication.NexusPublicationTests.test_stale_policy_review_blocks) ... ok\ntest_unknown_license_requires_manual_acknowledgement (test_nexus_publication.NexusPublicationTests.test_unknown_license_requires_manual_acknowledgement) ... ok\ntest_unmapped_file_blocks_release (test_nexus_publication.NexusPublicationTests.test_unmapped_file_blocks_release) ... ok\ntest_uploader_attestation_cannot_be_mismatched (test_nexus_publication.NexusPublicationTests.test_uploader_attestation_cannot_be_mismatched) ... ok\ntest_valid_release_is_share_ready (test_nexus_publication.NexusPublicationTests.test_valid_release_is_share_ready) ... ok\ntest_line_endings_match_their_declared_attribute (test_packaging.DistributedIntegrityTests.test_line_endings_match_their_declared_attribute) ... ok\ntest_manifest_verifies_against_the_delivered_tree (test_packaging.DistributedIntegrityTests.test_manifest_verifies_against_the_delivered_tree) ... ok\ntest_no_external_build_requirements (test_packaging.PackagingTests.test_no_external_build_requirements) ... ok\ntest_runtime_installation_artifacts_are_never_packaged (test_packaging.PackagingTests.test_runtime_installation_artifacts_are_never_packaged) ... ok\ntest_wheel_determinism_and_native_files (test_packaging.PackagingTests.test_wheel_determinism_and_native_files) ... ok\ntest_batch_files_never_pass_quoted_dp0_as_a_standalone_external_argument (test_powershell_release.PowerShellReleaseTests.test_batch_files_never_pass_quoted_dp0_as_a_standalone_external_argument) ... ok\ntest_no_expandable_string_has_ambiguous_variable_before_colon (test_powershell_release.PowerShellReleaseTests.test_no_expandable_string_has_ambiguous_variable_before_colon) ... ok\ntest_parser_gate_defaults_to_its_own_directory_and_sanitizes_legacy_quote (test_powershell_release.PowerShellReleaseTests.test_parser_gate_defaults_to_its_own_directory_and_sanitizes_legacy_quote) ... ok\ntest_provider_bridge_uses_exact_shared_runtime (test_powershell_release.PowerShellReleaseTests.test_provider_bridge_uses_exact_shared_runtime) ... ok\ntest_python_bootstrap_is_pinned_and_verified (test_powershell_release.PowerShellReleaseTests.test_python_bootstrap_is_pinned_and_verified) ... ok\ntest_runtime_virtualenv_scripts_are_not_release_sources (test_powershell_release.PowerShellReleaseTests.test_runtime_virtualenv_scripts_are_not_release_sources) ... ok\ntest_skill_installer_is_transactional_and_uses_safe_formatting (test_powershell_release.PowerShellReleaseTests.test_skill_installer_is_transactional_and_uses_safe_formatting) ... ok\ntest_start_menu_uses_gate_default_root_and_has_noninteractive_ci_probe (test_powershell_release.PowerShellReleaseTests.test_start_menu_uses_gate_default_root_and_has_noninteractive_ci_probe) ... ok\ntest_windows_ci_exercises_broken_virtualenv_repair (test_powershell_release.PowerShellReleaseTests.test_windows_ci_exercises_broken_virtualenv_repair) ... ok\ntest_python_script_executes_through_current_interpreter (test_process_launch.ProcessLaunchTests.test_python_script_executes_through_current_interpreter) ... ok\ntest_windows_rejects_text_disguised_as_exe_without_launching (test_process_launch.ProcessLaunchTests.test_windows_rejects_text_disguised_as_exe_without_launching) ... ok\ntest_bsarch_adapter_uses_pinned_real_tool_contract_and_reopens (test_toolchain_v42.ToolchainV42Tests.test_bsarch_adapter_uses_pinned_real_tool_contract_and_reopens) ... ok\ntest_bulk_import_is_idempotent_and_reconfigures_existing_vault_entry (test_toolchain_v42.ToolchainV42Tests.test_bulk_import_is_idempotent_and_reconfigures_existing_vault_entry) ... ok\ntest_catalog_disables_public_third_party_binary_bundling (test_toolchain_v42.ToolchainV42Tests.test_catalog_disables_public_third_party_binary_bundling) ... ok\ntest_configure_existing_rejects_gui_as_cli_by_name (test_toolchain_v42.ToolchainV42Tests.test_configure_existing_rejects_gui_as_cli_by_name) ... ok\ntest_nested_bsarch_is_discovered_and_imported_with_pin (test_toolchain_v42.ToolchainV42Tests.test_nested_bsarch_is_discovered_and_imported_with_pin) ... ok\ntest_scan_does_not_execute_candidates (test_toolchain_v42.ToolchainV42Tests.test_scan_does_not_execute_candidates) ... ok\ntest_synthesis_gui_is_never_resolved_as_cli (test_toolchain_v42.ToolchainV42Tests.test_synthesis_gui_is_never_resolved_as_cli) ... ok\ntest_all_built_in_self_tests_are_integrated (test_v41_completion.V41CompletionTests.test_all_built_in_self_tests_are_integrated) ... ok\ntest_papyrus_compile_uses_pinned_python_mock_and_manifest (test_v41_completion.V41CompletionTests.test_papyrus_compile_uses_pinned_python_mock_and_manifest) ... ok\ntest_v41_mcp_surface_is_complete (test_v41_completion.V41CompletionTests.test_v41_mcp_surface_is_complete) ... ok\ntest_capability_registry_has_honest_boundaries (test_v41_engineering.V41EngineeringTests.test_capability_registry_has_honest_boundaries) ... ok\ntest_framework_builder_flags_single_value_skill_without_failing (test_v41_engineering.V41EngineeringTests.test_framework_builder_flags_single_value_skill_without_failing) ... ok\ntest_framework_builder_spid_runtime_proven_shape (test_v41_engineering.V41EngineeringTests.test_framework_builder_spid_runtime_proven_shape) ... ok\ntest_native_binary_audit_distinguishes_dll (test_v41_engineering.V41EngineeringTests.test_native_binary_audit_distinguishes_dll) ... ok\ntest_native_runtime_strategy_conflicts_are_rejected (test_v41_engineering.V41EngineeringTests.test_native_runtime_strategy_conflicts_are_rejected) ... ok\ntest_native_scaffold_uses_one_runtime_strategy_and_staging (test_v41_engineering.V41EngineeringTests.test_native_scaffold_uses_one_runtime_strategy_and_staging) ... ok\ntest_papyrus_case_identity_and_hot_event_are_reviewed (test_v41_engineering.V41EngineeringTests.test_papyrus_case_identity_and_hot_event_are_reviewed) ... ok\ntest_plugin_formkeys_are_required_and_encoded (test_v41_engineering.V41EngineeringTests.test_plugin_formkeys_are_required_and_encoded) ... ok\ntest_skypatcher_typed_build_uses_canonical_path (test_v41_engineering.V41EngineeringTests.test_skypatcher_typed_build_uses_canonical_path) ... ok\ntest_skypatcher_unknown_category_is_warning_not_false_failure (test_v41_engineering.V41EngineeringTests.test_skypatcher_unknown_category_is_warning_not_false_failure) ... ok\ntest_hermes_failure_path_restores_original_configuration (test_windows_provider_bridge.WindowsProviderBridgeTests.test_hermes_failure_path_restores_original_configuration) ... ok\ntest_hermes_registration_is_noninteractive_and_bounded (test_windows_provider_bridge.WindowsProviderBridgeTests.test_hermes_registration_is_noninteractive_and_bounded) ... ok\ntest_hermes_skill_defaults_to_local_app_data (test_windows_provider_bridge.WindowsProviderBridgeTests.test_hermes_skill_defaults_to_local_app_data) ... ok\ntest_kimi_doctor_failure_restores_original_configuration (test_windows_provider_bridge.WindowsProviderBridgeTests.test_kimi_doctor_failure_restores_original_configuration) ... skipped 'Register-MCP integration requires the installed Forge test runtime'\ntest_kimi_registration_preserves_other_servers_and_writes_forge (test_windows_provider_bridge.WindowsProviderBridgeTests.test_kimi_registration_preserves_other_servers_and_writes_forge) ... skipped 'Register-MCP integration requires the installed Forge test runtime'\ntest_kimi_rejects_array_shaped_server_map_without_overwriting (test_windows_provider_bridge.WindowsProviderBridgeTests.test_kimi_rejects_array_shaped_server_map_without_overwriting) ... skipped 'Register-MCP integration requires the installed Forge test runtime'\n\n----------------------------------------------------------------------\nRan 159 tests in 2.890s\n\nOK (skipped=4)\n",
"stdout": ""
}
},
"version": {
"hardcoded_in_ci": [],
"result": "PASS",
"sources": {
"CURRENT.txt": "6.0.0",
"README.md": "6.0.0",
"START-HERE.bat": "6.0.0",
"VERSION.txt": "6.0.0",
"integrations/skyrim-forge/SKILL.md (series)": "6.0",
"pyproject.toml": "6.0.0",
"skyrim_forge/version.py": "6.0.0",
"writer/native-go/main.go": "6.0.0"
},
"version": "6.0.0"
}
},
"errors": [],
"product": "Skyrim Forge",
"result": "PASS",
"scope": "full",
"version": "6.0.0",
"warnings": [
"PowerShell syntax is statically screened here; Windows CI executes the shipped parser gate, the exact START-HERE batch startup path, and every skill-provider installation"
]
}