motionloom 2.0.0 → 2.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/CHANGELOG.md +41 -0
- package/CODE_OF_CONDUCT.md +19 -0
- package/CONTRIBUTING.md +65 -0
- package/README.md +187 -134
- package/ROADMAP.md +32 -0
- package/SECURITY.md +27 -0
- package/SKILL.md +33 -8
- package/SUPPORT.md +23 -0
- package/agent-card.json +21 -6
- package/bin/motionloom.mjs +23 -5
- package/docs/STATUS.md +33 -0
- package/docs/audits/2.1.0-deep-stress-evaluation.md +97 -0
- package/docs/audits/data/2.1.0-deep-stress-6900.json +329 -0
- package/docs/audits/data/deep-stress-latest.json +329 -0
- package/docs/audits/external-project-corpus-2026-08-13.md +26 -0
- package/docs/releases/2.1.0.md +23 -0
- package/docs/releases/npm-publish-from-workstation.md +6 -6
- package/package.json +52 -26
- package/references/intelligence-core.md +1 -1
- package/schemas/project-memory.schema.json +180 -0
- package/scripts/analyze.py +56 -0
- package/scripts/capture-runtime-telemetry.py +119 -0
- package/scripts/devlab.py +126 -0
- package/scripts/docs-audit.py +96 -0
- package/scripts/eval-intelligence.py +23 -0
- package/scripts/eval-projects.py +156 -0
- package/scripts/intelligence.py +106 -6
- package/scripts/pr.py +150 -0
- package/scripts/prepack-clean.mjs +37 -0
- package/scripts/project-memory.py +483 -0
- package/scripts/project_memory_loader.py +31 -0
- package/scripts/release-verify.py +52 -0
- package/scripts/render.py +65 -0
- package/scripts/report.py +44 -2
- package/scripts/review-hook.py +13 -2
- package/scripts/skill-doctor.py +12 -2
- package/scripts/to-dotlottie.mjs +26 -20
- package/src/core/analyzer.py +174 -25
- package/tests/evals/intelligence-cases.json +10 -0
- package/tests/evals/project-corpus.json +51 -0
- package/tests/scripts/run_tests.py +52 -1
- package/tests/scripts/test_project_memory.py +129 -0
|
@@ -0,0 +1,329 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schema_version": "1.0",
|
|
3
|
+
"audit": "motionloom-deep-stress",
|
|
4
|
+
"generated_at": "2026-08-13T08:44:23.535422Z",
|
|
5
|
+
"seed": 20260813,
|
|
6
|
+
"requested_iterations": 5000,
|
|
7
|
+
"actual_iterations": 6900,
|
|
8
|
+
"fixture": {
|
|
9
|
+
"task_id": "browser-review-smoke-task",
|
|
10
|
+
"scene": "browser-review-smoke"
|
|
11
|
+
},
|
|
12
|
+
"summary": {
|
|
13
|
+
"passed": 6900,
|
|
14
|
+
"failed": 0,
|
|
15
|
+
"pass_rate": 1.0,
|
|
16
|
+
"false_positive": 0,
|
|
17
|
+
"false_negative": 0,
|
|
18
|
+
"clean_contracts_preserved": true,
|
|
19
|
+
"faults_rejected_without_false_negative": true,
|
|
20
|
+
"approval_false_invariant_preserved": true
|
|
21
|
+
},
|
|
22
|
+
"metrics": {
|
|
23
|
+
"canonical-json-metamorphic": {
|
|
24
|
+
"attempts": 600,
|
|
25
|
+
"passed": 600,
|
|
26
|
+
"failed": 0,
|
|
27
|
+
"false_positive": 0,
|
|
28
|
+
"false_negative": 0,
|
|
29
|
+
"codes": {
|
|
30
|
+
"equal": 600
|
|
31
|
+
},
|
|
32
|
+
"p50_ms": 0.018963,
|
|
33
|
+
"p95_ms": 0.027028,
|
|
34
|
+
"max_ms": 0.215561,
|
|
35
|
+
"pass_rate": 1.0
|
|
36
|
+
},
|
|
37
|
+
"dsse-ed25519-roundtrip": {
|
|
38
|
+
"attempts": 250,
|
|
39
|
+
"passed": 250,
|
|
40
|
+
"failed": 0,
|
|
41
|
+
"false_positive": 0,
|
|
42
|
+
"false_negative": 0,
|
|
43
|
+
"codes": {
|
|
44
|
+
"verified": 250
|
|
45
|
+
},
|
|
46
|
+
"p50_ms": 0.128048,
|
|
47
|
+
"p95_ms": 0.144034,
|
|
48
|
+
"max_ms": 0.163253,
|
|
49
|
+
"pass_rate": 1.0
|
|
50
|
+
},
|
|
51
|
+
"dsse-ed25519-tamper": {
|
|
52
|
+
"attempts": 250,
|
|
53
|
+
"passed": 250,
|
|
54
|
+
"failed": 0,
|
|
55
|
+
"false_positive": 0,
|
|
56
|
+
"false_negative": 0,
|
|
57
|
+
"codes": {
|
|
58
|
+
"invalid-signature": 250
|
|
59
|
+
},
|
|
60
|
+
"p50_ms": 0.130132,
|
|
61
|
+
"p95_ms": 0.140209,
|
|
62
|
+
"max_ms": 0.178904,
|
|
63
|
+
"pass_rate": 1.0
|
|
64
|
+
},
|
|
65
|
+
"statement-contract": {
|
|
66
|
+
"attempts": 600,
|
|
67
|
+
"passed": 600,
|
|
68
|
+
"failed": 0,
|
|
69
|
+
"false_positive": 0,
|
|
70
|
+
"false_negative": 0,
|
|
71
|
+
"codes": {
|
|
72
|
+
"valid": 200,
|
|
73
|
+
"rejected": 400
|
|
74
|
+
},
|
|
75
|
+
"p50_ms": 0.007181,
|
|
76
|
+
"p95_ms": 0.008413,
|
|
77
|
+
"max_ms": 0.059516,
|
|
78
|
+
"pass_rate": 1.0
|
|
79
|
+
},
|
|
80
|
+
"attestation-verifier-boundary": {
|
|
81
|
+
"attempts": 1500,
|
|
82
|
+
"passed": 1500,
|
|
83
|
+
"failed": 0,
|
|
84
|
+
"false_positive": 0,
|
|
85
|
+
"false_negative": 0,
|
|
86
|
+
"codes": {
|
|
87
|
+
"0": 375,
|
|
88
|
+
"11": 375,
|
|
89
|
+
"14": 375,
|
|
90
|
+
"13": 375
|
|
91
|
+
},
|
|
92
|
+
"p50_ms": 0.303064,
|
|
93
|
+
"p95_ms": 0.505011,
|
|
94
|
+
"max_ms": 0.842255,
|
|
95
|
+
"pass_rate": 1.0
|
|
96
|
+
},
|
|
97
|
+
"strict-quality-gate-clean": {
|
|
98
|
+
"attempts": 400,
|
|
99
|
+
"passed": 400,
|
|
100
|
+
"failed": 0,
|
|
101
|
+
"false_positive": 0,
|
|
102
|
+
"false_negative": 0,
|
|
103
|
+
"codes": {
|
|
104
|
+
"accepted": 400
|
|
105
|
+
},
|
|
106
|
+
"p50_ms": 24.511679,
|
|
107
|
+
"p95_ms": 29.717216,
|
|
108
|
+
"max_ms": 45.587579,
|
|
109
|
+
"pass_rate": 1.0
|
|
110
|
+
},
|
|
111
|
+
"intelligence-p1-clean": {
|
|
112
|
+
"attempts": 400,
|
|
113
|
+
"passed": 400,
|
|
114
|
+
"failed": 0,
|
|
115
|
+
"false_positive": 0,
|
|
116
|
+
"false_negative": 0,
|
|
117
|
+
"codes": {
|
|
118
|
+
"accepted": 400
|
|
119
|
+
},
|
|
120
|
+
"p50_ms": 17.860905,
|
|
121
|
+
"p95_ms": 21.976583,
|
|
122
|
+
"max_ms": 32.027403,
|
|
123
|
+
"pass_rate": 1.0
|
|
124
|
+
},
|
|
125
|
+
"replay-hash-clean": {
|
|
126
|
+
"attempts": 475,
|
|
127
|
+
"passed": 475,
|
|
128
|
+
"failed": 0,
|
|
129
|
+
"false_positive": 0,
|
|
130
|
+
"false_negative": 0,
|
|
131
|
+
"codes": {
|
|
132
|
+
"clean": 475
|
|
133
|
+
},
|
|
134
|
+
"p50_ms": 8.02739,
|
|
135
|
+
"p95_ms": 10.20982,
|
|
136
|
+
"max_ms": 13.31553,
|
|
137
|
+
"pass_rate": 1.0
|
|
138
|
+
},
|
|
139
|
+
"semantic-lint-clean": {
|
|
140
|
+
"attempts": 475,
|
|
141
|
+
"passed": 475,
|
|
142
|
+
"failed": 0,
|
|
143
|
+
"false_positive": 0,
|
|
144
|
+
"false_negative": 0,
|
|
145
|
+
"codes": {
|
|
146
|
+
"clean": 475
|
|
147
|
+
},
|
|
148
|
+
"p50_ms": 0.044806,
|
|
149
|
+
"p95_ms": 0.062948,
|
|
150
|
+
"max_ms": 0.120889,
|
|
151
|
+
"pass_rate": 1.0
|
|
152
|
+
},
|
|
153
|
+
"continuity-clean": {
|
|
154
|
+
"attempts": 475,
|
|
155
|
+
"passed": 475,
|
|
156
|
+
"failed": 0,
|
|
157
|
+
"false_positive": 0,
|
|
158
|
+
"false_negative": 0,
|
|
159
|
+
"codes": {
|
|
160
|
+
"clean": 475
|
|
161
|
+
},
|
|
162
|
+
"p50_ms": 0.036813,
|
|
163
|
+
"p95_ms": 0.053581,
|
|
164
|
+
"max_ms": 0.1014,
|
|
165
|
+
"pass_rate": 1.0
|
|
166
|
+
},
|
|
167
|
+
"approval-invariant": {
|
|
168
|
+
"attempts": 475,
|
|
169
|
+
"passed": 475,
|
|
170
|
+
"failed": 0,
|
|
171
|
+
"false_positive": 0,
|
|
172
|
+
"false_negative": 0,
|
|
173
|
+
"codes": {
|
|
174
|
+
"approval=false": 475
|
|
175
|
+
},
|
|
176
|
+
"p50_ms": 0.103737,
|
|
177
|
+
"p95_ms": 0.148545,
|
|
178
|
+
"max_ms": 0.202869,
|
|
179
|
+
"pass_rate": 1.0
|
|
180
|
+
},
|
|
181
|
+
"fault-graph-task-id": {
|
|
182
|
+
"attempts": 100,
|
|
183
|
+
"passed": 100,
|
|
184
|
+
"failed": 0,
|
|
185
|
+
"false_positive": 0,
|
|
186
|
+
"false_negative": 0,
|
|
187
|
+
"codes": {
|
|
188
|
+
"rejected": 100
|
|
189
|
+
},
|
|
190
|
+
"p50_ms": 14.465091,
|
|
191
|
+
"p95_ms": 16.091659,
|
|
192
|
+
"max_ms": 16.891256,
|
|
193
|
+
"pass_rate": 1.0
|
|
194
|
+
},
|
|
195
|
+
"fault-motion-ir-scene": {
|
|
196
|
+
"attempts": 100,
|
|
197
|
+
"passed": 100,
|
|
198
|
+
"failed": 0,
|
|
199
|
+
"false_positive": 0,
|
|
200
|
+
"false_negative": 0,
|
|
201
|
+
"codes": {
|
|
202
|
+
"rejected": 100
|
|
203
|
+
},
|
|
204
|
+
"p50_ms": 2.367015,
|
|
205
|
+
"p95_ms": 2.776738,
|
|
206
|
+
"max_ms": 3.812271,
|
|
207
|
+
"pass_rate": 1.0
|
|
208
|
+
},
|
|
209
|
+
"fault-provenance-task-id": {
|
|
210
|
+
"attempts": 100,
|
|
211
|
+
"passed": 100,
|
|
212
|
+
"failed": 0,
|
|
213
|
+
"false_positive": 0,
|
|
214
|
+
"false_negative": 0,
|
|
215
|
+
"codes": {
|
|
216
|
+
"rejected": 100
|
|
217
|
+
},
|
|
218
|
+
"p50_ms": 0.913747,
|
|
219
|
+
"p95_ms": 1.226514,
|
|
220
|
+
"max_ms": 1.544532,
|
|
221
|
+
"pass_rate": 1.0
|
|
222
|
+
},
|
|
223
|
+
"fault-replay-path-escape": {
|
|
224
|
+
"attempts": 100,
|
|
225
|
+
"passed": 100,
|
|
226
|
+
"failed": 0,
|
|
227
|
+
"false_positive": 0,
|
|
228
|
+
"false_negative": 0,
|
|
229
|
+
"codes": {
|
|
230
|
+
"rejected": 100
|
|
231
|
+
},
|
|
232
|
+
"p50_ms": 8.533108,
|
|
233
|
+
"p95_ms": 10.344097,
|
|
234
|
+
"max_ms": 11.235017,
|
|
235
|
+
"pass_rate": 1.0
|
|
236
|
+
},
|
|
237
|
+
"fault-p1-fix-plan-hash": {
|
|
238
|
+
"attempts": 100,
|
|
239
|
+
"passed": 100,
|
|
240
|
+
"failed": 0,
|
|
241
|
+
"false_positive": 0,
|
|
242
|
+
"false_negative": 0,
|
|
243
|
+
"codes": {
|
|
244
|
+
"rejected": 100
|
|
245
|
+
},
|
|
246
|
+
"p50_ms": 0.827828,
|
|
247
|
+
"p95_ms": 1.029271,
|
|
248
|
+
"max_ms": 1.439878,
|
|
249
|
+
"pass_rate": 1.0
|
|
250
|
+
},
|
|
251
|
+
"fault-p1-wrong-scene": {
|
|
252
|
+
"attempts": 100,
|
|
253
|
+
"passed": 100,
|
|
254
|
+
"failed": 0,
|
|
255
|
+
"false_positive": 0,
|
|
256
|
+
"false_negative": 0,
|
|
257
|
+
"codes": {
|
|
258
|
+
"rejected": 100
|
|
259
|
+
},
|
|
260
|
+
"p50_ms": 0.710469,
|
|
261
|
+
"p95_ms": 1.010883,
|
|
262
|
+
"max_ms": 1.146831,
|
|
263
|
+
"pass_rate": 1.0
|
|
264
|
+
},
|
|
265
|
+
"fault-continuity-structure": {
|
|
266
|
+
"attempts": 100,
|
|
267
|
+
"passed": 100,
|
|
268
|
+
"failed": 0,
|
|
269
|
+
"false_positive": 0,
|
|
270
|
+
"false_negative": 0,
|
|
271
|
+
"codes": {
|
|
272
|
+
"rejected": 100
|
|
273
|
+
},
|
|
274
|
+
"p50_ms": 0.069471,
|
|
275
|
+
"p95_ms": 0.091397,
|
|
276
|
+
"max_ms": 0.11505,
|
|
277
|
+
"pass_rate": 1.0
|
|
278
|
+
},
|
|
279
|
+
"fault-semantic-structure": {
|
|
280
|
+
"attempts": 100,
|
|
281
|
+
"passed": 100,
|
|
282
|
+
"failed": 0,
|
|
283
|
+
"false_positive": 0,
|
|
284
|
+
"false_negative": 0,
|
|
285
|
+
"codes": {
|
|
286
|
+
"rejected": 100
|
|
287
|
+
},
|
|
288
|
+
"p50_ms": 0.068215,
|
|
289
|
+
"p95_ms": 0.095822,
|
|
290
|
+
"max_ms": 0.118719,
|
|
291
|
+
"pass_rate": 1.0
|
|
292
|
+
},
|
|
293
|
+
"fault-attestation-approval": {
|
|
294
|
+
"attempts": 100,
|
|
295
|
+
"passed": 100,
|
|
296
|
+
"failed": 0,
|
|
297
|
+
"false_positive": 0,
|
|
298
|
+
"false_negative": 0,
|
|
299
|
+
"codes": {
|
|
300
|
+
"10": 100
|
|
301
|
+
},
|
|
302
|
+
"p50_ms": 0.220256,
|
|
303
|
+
"p95_ms": 0.316655,
|
|
304
|
+
"max_ms": 0.349047,
|
|
305
|
+
"pass_rate": 1.0
|
|
306
|
+
},
|
|
307
|
+
"fault-attestation-payload": {
|
|
308
|
+
"attempts": 100,
|
|
309
|
+
"passed": 100,
|
|
310
|
+
"failed": 0,
|
|
311
|
+
"false_positive": 0,
|
|
312
|
+
"false_negative": 0,
|
|
313
|
+
"codes": {
|
|
314
|
+
"11": 100
|
|
315
|
+
},
|
|
316
|
+
"p50_ms": 0.284957,
|
|
317
|
+
"p95_ms": 0.388469,
|
|
318
|
+
"max_ms": 0.452502,
|
|
319
|
+
"pass_rate": 1.0
|
|
320
|
+
}
|
|
321
|
+
},
|
|
322
|
+
"failures": [],
|
|
323
|
+
"interpretation": {
|
|
324
|
+
"logical_trials": "Each trial executes a real repository validator/helper against canonical fixture bytes or a controlled mutation; this is not a claim that 5,000 browser renders were performed.",
|
|
325
|
+
"false_positive": "A clean canonical case was rejected.",
|
|
326
|
+
"false_negative": "A controlled tamper, binding, revocation or invalid-contract case was accepted."
|
|
327
|
+
},
|
|
328
|
+
"wall_time_s": 25.883117
|
|
329
|
+
}
|
|
@@ -0,0 +1,329 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schema_version": "1.0",
|
|
3
|
+
"audit": "motionloom-deep-stress",
|
|
4
|
+
"generated_at": "2026-08-13T10:13:55.979988Z",
|
|
5
|
+
"seed": 20260813,
|
|
6
|
+
"requested_iterations": 5000,
|
|
7
|
+
"actual_iterations": 6900,
|
|
8
|
+
"fixture": {
|
|
9
|
+
"task_id": "browser-review-smoke-task",
|
|
10
|
+
"scene": "browser-review-smoke"
|
|
11
|
+
},
|
|
12
|
+
"summary": {
|
|
13
|
+
"passed": 6900,
|
|
14
|
+
"failed": 0,
|
|
15
|
+
"pass_rate": 1.0,
|
|
16
|
+
"false_positive": 0,
|
|
17
|
+
"false_negative": 0,
|
|
18
|
+
"clean_contracts_preserved": true,
|
|
19
|
+
"faults_rejected_without_false_negative": true,
|
|
20
|
+
"approval_false_invariant_preserved": true
|
|
21
|
+
},
|
|
22
|
+
"metrics": {
|
|
23
|
+
"canonical-json-metamorphic": {
|
|
24
|
+
"attempts": 600,
|
|
25
|
+
"passed": 600,
|
|
26
|
+
"failed": 0,
|
|
27
|
+
"false_positive": 0,
|
|
28
|
+
"false_negative": 0,
|
|
29
|
+
"codes": {
|
|
30
|
+
"equal": 600
|
|
31
|
+
},
|
|
32
|
+
"p50_ms": 0.018526,
|
|
33
|
+
"p95_ms": 0.019782,
|
|
34
|
+
"max_ms": 0.034744,
|
|
35
|
+
"pass_rate": 1.0
|
|
36
|
+
},
|
|
37
|
+
"dsse-ed25519-roundtrip": {
|
|
38
|
+
"attempts": 250,
|
|
39
|
+
"passed": 250,
|
|
40
|
+
"failed": 0,
|
|
41
|
+
"false_positive": 0,
|
|
42
|
+
"false_negative": 0,
|
|
43
|
+
"codes": {
|
|
44
|
+
"verified": 250
|
|
45
|
+
},
|
|
46
|
+
"p50_ms": 0.127995,
|
|
47
|
+
"p95_ms": 0.141972,
|
|
48
|
+
"max_ms": 0.244296,
|
|
49
|
+
"pass_rate": 1.0
|
|
50
|
+
},
|
|
51
|
+
"dsse-ed25519-tamper": {
|
|
52
|
+
"attempts": 250,
|
|
53
|
+
"passed": 250,
|
|
54
|
+
"failed": 0,
|
|
55
|
+
"false_positive": 0,
|
|
56
|
+
"false_negative": 0,
|
|
57
|
+
"codes": {
|
|
58
|
+
"invalid-signature": 250
|
|
59
|
+
},
|
|
60
|
+
"p50_ms": 0.131456,
|
|
61
|
+
"p95_ms": 0.144911,
|
|
62
|
+
"max_ms": 0.257528,
|
|
63
|
+
"pass_rate": 1.0
|
|
64
|
+
},
|
|
65
|
+
"statement-contract": {
|
|
66
|
+
"attempts": 600,
|
|
67
|
+
"passed": 600,
|
|
68
|
+
"failed": 0,
|
|
69
|
+
"false_positive": 0,
|
|
70
|
+
"false_negative": 0,
|
|
71
|
+
"codes": {
|
|
72
|
+
"valid": 200,
|
|
73
|
+
"rejected": 400
|
|
74
|
+
},
|
|
75
|
+
"p50_ms": 0.007304,
|
|
76
|
+
"p95_ms": 0.008605,
|
|
77
|
+
"max_ms": 0.063033,
|
|
78
|
+
"pass_rate": 1.0
|
|
79
|
+
},
|
|
80
|
+
"attestation-verifier-boundary": {
|
|
81
|
+
"attempts": 1500,
|
|
82
|
+
"passed": 1500,
|
|
83
|
+
"failed": 0,
|
|
84
|
+
"false_positive": 0,
|
|
85
|
+
"false_negative": 0,
|
|
86
|
+
"codes": {
|
|
87
|
+
"0": 375,
|
|
88
|
+
"11": 375,
|
|
89
|
+
"14": 375,
|
|
90
|
+
"13": 375
|
|
91
|
+
},
|
|
92
|
+
"p50_ms": 0.300549,
|
|
93
|
+
"p95_ms": 0.484133,
|
|
94
|
+
"max_ms": 0.866072,
|
|
95
|
+
"pass_rate": 1.0
|
|
96
|
+
},
|
|
97
|
+
"strict-quality-gate-clean": {
|
|
98
|
+
"attempts": 400,
|
|
99
|
+
"passed": 400,
|
|
100
|
+
"failed": 0,
|
|
101
|
+
"false_positive": 0,
|
|
102
|
+
"false_negative": 0,
|
|
103
|
+
"codes": {
|
|
104
|
+
"accepted": 400
|
|
105
|
+
},
|
|
106
|
+
"p50_ms": 25.817357,
|
|
107
|
+
"p95_ms": 28.37167,
|
|
108
|
+
"max_ms": 35.746459,
|
|
109
|
+
"pass_rate": 1.0
|
|
110
|
+
},
|
|
111
|
+
"intelligence-p1-clean": {
|
|
112
|
+
"attempts": 400,
|
|
113
|
+
"passed": 400,
|
|
114
|
+
"failed": 0,
|
|
115
|
+
"false_positive": 0,
|
|
116
|
+
"false_negative": 0,
|
|
117
|
+
"codes": {
|
|
118
|
+
"accepted": 400
|
|
119
|
+
},
|
|
120
|
+
"p50_ms": 19.18085,
|
|
121
|
+
"p95_ms": 21.672868,
|
|
122
|
+
"max_ms": 29.969583,
|
|
123
|
+
"pass_rate": 1.0
|
|
124
|
+
},
|
|
125
|
+
"replay-hash-clean": {
|
|
126
|
+
"attempts": 475,
|
|
127
|
+
"passed": 475,
|
|
128
|
+
"failed": 0,
|
|
129
|
+
"false_positive": 0,
|
|
130
|
+
"false_negative": 0,
|
|
131
|
+
"codes": {
|
|
132
|
+
"clean": 475
|
|
133
|
+
},
|
|
134
|
+
"p50_ms": 7.51816,
|
|
135
|
+
"p95_ms": 7.916555,
|
|
136
|
+
"max_ms": 11.545468,
|
|
137
|
+
"pass_rate": 1.0
|
|
138
|
+
},
|
|
139
|
+
"semantic-lint-clean": {
|
|
140
|
+
"attempts": 475,
|
|
141
|
+
"passed": 475,
|
|
142
|
+
"failed": 0,
|
|
143
|
+
"false_positive": 0,
|
|
144
|
+
"false_negative": 0,
|
|
145
|
+
"codes": {
|
|
146
|
+
"clean": 475
|
|
147
|
+
},
|
|
148
|
+
"p50_ms": 0.024703,
|
|
149
|
+
"p95_ms": 0.03313,
|
|
150
|
+
"max_ms": 0.08727,
|
|
151
|
+
"pass_rate": 1.0
|
|
152
|
+
},
|
|
153
|
+
"continuity-clean": {
|
|
154
|
+
"attempts": 475,
|
|
155
|
+
"passed": 475,
|
|
156
|
+
"failed": 0,
|
|
157
|
+
"false_positive": 0,
|
|
158
|
+
"false_negative": 0,
|
|
159
|
+
"codes": {
|
|
160
|
+
"clean": 475
|
|
161
|
+
},
|
|
162
|
+
"p50_ms": 0.024346,
|
|
163
|
+
"p95_ms": 0.033119,
|
|
164
|
+
"max_ms": 0.052678,
|
|
165
|
+
"pass_rate": 1.0
|
|
166
|
+
},
|
|
167
|
+
"approval-invariant": {
|
|
168
|
+
"attempts": 475,
|
|
169
|
+
"passed": 475,
|
|
170
|
+
"failed": 0,
|
|
171
|
+
"false_positive": 0,
|
|
172
|
+
"false_negative": 0,
|
|
173
|
+
"codes": {
|
|
174
|
+
"approval=false": 475
|
|
175
|
+
},
|
|
176
|
+
"p50_ms": 0.063713,
|
|
177
|
+
"p95_ms": 0.080847,
|
|
178
|
+
"max_ms": 0.1211,
|
|
179
|
+
"pass_rate": 1.0
|
|
180
|
+
},
|
|
181
|
+
"fault-graph-task-id": {
|
|
182
|
+
"attempts": 100,
|
|
183
|
+
"passed": 100,
|
|
184
|
+
"failed": 0,
|
|
185
|
+
"false_positive": 0,
|
|
186
|
+
"false_negative": 0,
|
|
187
|
+
"codes": {
|
|
188
|
+
"rejected": 100
|
|
189
|
+
},
|
|
190
|
+
"p50_ms": 13.765242,
|
|
191
|
+
"p95_ms": 15.757552,
|
|
192
|
+
"max_ms": 17.026196,
|
|
193
|
+
"pass_rate": 1.0
|
|
194
|
+
},
|
|
195
|
+
"fault-motion-ir-scene": {
|
|
196
|
+
"attempts": 100,
|
|
197
|
+
"passed": 100,
|
|
198
|
+
"failed": 0,
|
|
199
|
+
"false_positive": 0,
|
|
200
|
+
"false_negative": 0,
|
|
201
|
+
"codes": {
|
|
202
|
+
"rejected": 100
|
|
203
|
+
},
|
|
204
|
+
"p50_ms": 2.148835,
|
|
205
|
+
"p95_ms": 2.448147,
|
|
206
|
+
"max_ms": 2.860418,
|
|
207
|
+
"pass_rate": 1.0
|
|
208
|
+
},
|
|
209
|
+
"fault-provenance-task-id": {
|
|
210
|
+
"attempts": 100,
|
|
211
|
+
"passed": 100,
|
|
212
|
+
"failed": 0,
|
|
213
|
+
"false_positive": 0,
|
|
214
|
+
"false_negative": 0,
|
|
215
|
+
"codes": {
|
|
216
|
+
"rejected": 100
|
|
217
|
+
},
|
|
218
|
+
"p50_ms": 0.857105,
|
|
219
|
+
"p95_ms": 1.049827,
|
|
220
|
+
"max_ms": 1.36859,
|
|
221
|
+
"pass_rate": 1.0
|
|
222
|
+
},
|
|
223
|
+
"fault-replay-path-escape": {
|
|
224
|
+
"attempts": 100,
|
|
225
|
+
"passed": 100,
|
|
226
|
+
"failed": 0,
|
|
227
|
+
"false_positive": 0,
|
|
228
|
+
"false_negative": 0,
|
|
229
|
+
"codes": {
|
|
230
|
+
"rejected": 100
|
|
231
|
+
},
|
|
232
|
+
"p50_ms": 8.091177,
|
|
233
|
+
"p95_ms": 9.353946,
|
|
234
|
+
"max_ms": 10.112846,
|
|
235
|
+
"pass_rate": 1.0
|
|
236
|
+
},
|
|
237
|
+
"fault-p1-fix-plan-hash": {
|
|
238
|
+
"attempts": 100,
|
|
239
|
+
"passed": 100,
|
|
240
|
+
"failed": 0,
|
|
241
|
+
"false_positive": 0,
|
|
242
|
+
"false_negative": 0,
|
|
243
|
+
"codes": {
|
|
244
|
+
"rejected": 100
|
|
245
|
+
},
|
|
246
|
+
"p50_ms": 0.730294,
|
|
247
|
+
"p95_ms": 0.866361,
|
|
248
|
+
"max_ms": 1.132574,
|
|
249
|
+
"pass_rate": 1.0
|
|
250
|
+
},
|
|
251
|
+
"fault-p1-wrong-scene": {
|
|
252
|
+
"attempts": 100,
|
|
253
|
+
"passed": 100,
|
|
254
|
+
"failed": 0,
|
|
255
|
+
"false_positive": 0,
|
|
256
|
+
"false_negative": 0,
|
|
257
|
+
"codes": {
|
|
258
|
+
"rejected": 100
|
|
259
|
+
},
|
|
260
|
+
"p50_ms": 0.675249,
|
|
261
|
+
"p95_ms": 0.807189,
|
|
262
|
+
"max_ms": 1.103894,
|
|
263
|
+
"pass_rate": 1.0
|
|
264
|
+
},
|
|
265
|
+
"fault-continuity-structure": {
|
|
266
|
+
"attempts": 100,
|
|
267
|
+
"passed": 100,
|
|
268
|
+
"failed": 0,
|
|
269
|
+
"false_positive": 0,
|
|
270
|
+
"false_negative": 0,
|
|
271
|
+
"codes": {
|
|
272
|
+
"rejected": 100
|
|
273
|
+
},
|
|
274
|
+
"p50_ms": 0.066832,
|
|
275
|
+
"p95_ms": 0.081028,
|
|
276
|
+
"max_ms": 0.100648,
|
|
277
|
+
"pass_rate": 1.0
|
|
278
|
+
},
|
|
279
|
+
"fault-semantic-structure": {
|
|
280
|
+
"attempts": 100,
|
|
281
|
+
"passed": 100,
|
|
282
|
+
"failed": 0,
|
|
283
|
+
"false_positive": 0,
|
|
284
|
+
"false_negative": 0,
|
|
285
|
+
"codes": {
|
|
286
|
+
"rejected": 100
|
|
287
|
+
},
|
|
288
|
+
"p50_ms": 0.064075,
|
|
289
|
+
"p95_ms": 0.081449,
|
|
290
|
+
"max_ms": 0.116428,
|
|
291
|
+
"pass_rate": 1.0
|
|
292
|
+
},
|
|
293
|
+
"fault-attestation-approval": {
|
|
294
|
+
"attempts": 100,
|
|
295
|
+
"passed": 100,
|
|
296
|
+
"failed": 0,
|
|
297
|
+
"false_positive": 0,
|
|
298
|
+
"false_negative": 0,
|
|
299
|
+
"codes": {
|
|
300
|
+
"10": 100
|
|
301
|
+
},
|
|
302
|
+
"p50_ms": 0.204615,
|
|
303
|
+
"p95_ms": 0.265782,
|
|
304
|
+
"max_ms": 0.341527,
|
|
305
|
+
"pass_rate": 1.0
|
|
306
|
+
},
|
|
307
|
+
"fault-attestation-payload": {
|
|
308
|
+
"attempts": 100,
|
|
309
|
+
"passed": 100,
|
|
310
|
+
"failed": 0,
|
|
311
|
+
"false_positive": 0,
|
|
312
|
+
"false_negative": 0,
|
|
313
|
+
"codes": {
|
|
314
|
+
"11": 100
|
|
315
|
+
},
|
|
316
|
+
"p50_ms": 0.262104,
|
|
317
|
+
"p95_ms": 0.301103,
|
|
318
|
+
"max_ms": 0.414031,
|
|
319
|
+
"pass_rate": 1.0
|
|
320
|
+
}
|
|
321
|
+
},
|
|
322
|
+
"failures": [],
|
|
323
|
+
"interpretation": {
|
|
324
|
+
"logical_trials": "Each trial executes a real repository validator/helper against canonical fixture bytes or a controlled mutation; this is not a claim that 5,000 browser renders were performed.",
|
|
325
|
+
"false_positive": "A clean canonical case was rejected.",
|
|
326
|
+
"false_negative": "A controlled tamper, binding, revocation or invalid-contract case was accepted."
|
|
327
|
+
},
|
|
328
|
+
"wall_time_s": 25.354826
|
|
329
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# External Project Corpus Evidence — 2026-08-13
|
|
2
|
+
|
|
3
|
+
## Purpose
|
|
4
|
+
|
|
5
|
+
This is a labeled analyzer evaluation, not a claim that MotionLoom has been validated across the entire animation ecosystem. The runner reads explicit checkouts only; it does not install dependencies, execute external project code, or treat an absent checkout as a pass.
|
|
6
|
+
|
|
7
|
+
## Reproducibility
|
|
8
|
+
|
|
9
|
+
The evaluation used `python3 scripts/eval-projects.py` with the default bounded scan policy: at most 2,500 files, 25,000,000 bytes and 10 seconds per project. The first-party repository was evaluated from the local MotionLoom checkout. External checkouts were placed under `external/` in a temporary workspace and pinned to the following observed commits.
|
|
10
|
+
|
|
11
|
+
| Case | Source | Observed revision | Result | Signals checked |
|
|
12
|
+
|---|---|---|---|---|
|
|
13
|
+
| MotionLoom | [lenhonbp/MotionLoom](https://github.com/lenhonbp/MotionLoom) | local checkout | PASS | `name=motionloom` |
|
|
14
|
+
| Motion One | [motiondivision/motion](https://github.com/motiondivision/motion) | `adaf7a4e5368d704ea350669f6ac674fb26ff270` | PASS | `name=motion-one`, `framework=motion` |
|
|
15
|
+
| GSAP | [greensock/GSAP](https://github.com/greensock/GSAP) | `13e2b790546426a1a2e0e9b409f3f8dc6d6611f2` | PASS | `framework=gsap` |
|
|
16
|
+
| Rive React | [rive-app/rive-react](https://github.com/rive-app/rive-react) | `c05ec1842324a4a61d01f8e49dfd2ac2c37ae72c` | PASS | `name=rive-react`, `framework=rive` |
|
|
17
|
+
|
|
18
|
+
The final report was `status=pass`, with 3/3 required external projects available and 4/4 total cases passing. All four scans reported `scan_truncated=false` under the stated budgets.
|
|
19
|
+
|
|
20
|
+
## Interpretation
|
|
21
|
+
|
|
22
|
+
The package-identity precedence change is material. Motion One is a monorepo whose root workspace contains GSAP tooling; a dependency-only detector labeled it GSAP. Rive React similarly contains React dependencies but should expose a Rive runtime signal. MotionLoom now prefers an exact package identity (`motion`, `motion-one`, `framer-motion`, Rive packages) before generic dependency fallback, while retaining the bounded scan metadata.
|
|
23
|
+
|
|
24
|
+
This evidence supports a **small, reproducible analyzer corpus signal**. It does not prove animation quality, runtime correctness, visual fidelity, accessibility, licensing compliance, or first-pass acceptance. Those remain separate gates requiring runtime evidence, Dev Lab review and explicit user confirmation.
|
|
25
|
+
|
|
26
|
+
When external checkouts are not supplied, the same command intentionally reports `insufficient_evidence`; CI uses `--allow-insufficient` for visibility without converting missing product evidence into a green product claim.
|