@stsepelin/checktrail 0.1.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (385) hide show
  1. package/CONTRIBUTING.md +42 -0
  2. package/LICENSE +21 -0
  3. package/README.md +355 -0
  4. package/SECURITY.md +46 -0
  5. package/dist/src/actionlint-evidence.d.ts +2 -0
  6. package/dist/src/actionlint-evidence.js +166 -0
  7. package/dist/src/actionlint-inputs.d.ts +5 -0
  8. package/dist/src/actionlint-inputs.js +123 -0
  9. package/dist/src/actionlint-runner.d.ts +1 -0
  10. package/dist/src/actionlint-runner.js +122 -0
  11. package/dist/src/actionlint.d.ts +19 -0
  12. package/dist/src/actionlint.js +80 -0
  13. package/dist/src/adapters.d.ts +49 -0
  14. package/dist/src/adapters.js +430 -0
  15. package/dist/src/architecture.d.ts +107 -0
  16. package/dist/src/architecture.js +230 -0
  17. package/dist/src/clang-evidence.d.ts +2 -0
  18. package/dist/src/clang-evidence.js +194 -0
  19. package/dist/src/clang-protocol.d.ts +3 -0
  20. package/dist/src/clang-protocol.js +25 -0
  21. package/dist/src/clang-runner.d.ts +1 -0
  22. package/dist/src/clang-runner.js +159 -0
  23. package/dist/src/clang.d.ts +44 -0
  24. package/dist/src/clang.js +197 -0
  25. package/dist/src/cli.d.ts +2 -0
  26. package/dist/src/cli.js +338 -0
  27. package/dist/src/config.d.ts +33 -0
  28. package/dist/src/config.js +140 -0
  29. package/dist/src/contract-schema.d.ts +85 -0
  30. package/dist/src/contract-schema.js +56 -0
  31. package/dist/src/contract-worker.d.ts +1 -0
  32. package/dist/src/contract-worker.js +123 -0
  33. package/dist/src/contracts.d.ts +22 -0
  34. package/dist/src/contracts.js +123 -0
  35. package/dist/src/django-evidence.d.ts +2 -0
  36. package/dist/src/django-evidence.js +100 -0
  37. package/dist/src/django-runner.d.ts +1 -0
  38. package/dist/src/django-runner.js +80 -0
  39. package/dist/src/django.d.ts +9 -0
  40. package/dist/src/django.js +50 -0
  41. package/dist/src/dotnet-compiler.d.ts +1 -0
  42. package/dist/src/dotnet-compiler.js +87 -0
  43. package/dist/src/dotnet-evidence.d.ts +2 -0
  44. package/dist/src/dotnet-evidence.js +127 -0
  45. package/dist/src/dotnet-runner.d.ts +1 -0
  46. package/dist/src/dotnet-runner.js +167 -0
  47. package/dist/src/dotnet.d.ts +65 -0
  48. package/dist/src/dotnet.js +120 -0
  49. package/dist/src/engine.d.ts +19 -0
  50. package/dist/src/engine.js +239 -0
  51. package/dist/src/environment.d.ts +6 -0
  52. package/dist/src/environment.js +36 -0
  53. package/dist/src/eslint-evidence.d.ts +2 -0
  54. package/dist/src/eslint-evidence.js +98 -0
  55. package/dist/src/eslint-runner.d.ts +1 -0
  56. package/dist/src/eslint-runner.js +61 -0
  57. package/dist/src/eslint.d.ts +2 -0
  58. package/dist/src/eslint.js +40 -0
  59. package/dist/src/evidence.d.ts +2 -0
  60. package/dist/src/evidence.js +313 -0
  61. package/dist/src/external-adapter.d.ts +164 -0
  62. package/dist/src/external-adapter.js +265 -0
  63. package/dist/src/external-evidence.d.ts +2 -0
  64. package/dist/src/external-evidence.js +127 -0
  65. package/dist/src/external-runner.d.ts +1 -0
  66. package/dist/src/external-runner.js +122 -0
  67. package/dist/src/fastapi-evidence.d.ts +2 -0
  68. package/dist/src/fastapi-evidence.js +126 -0
  69. package/dist/src/fastapi-runner.d.ts +1 -0
  70. package/dist/src/fastapi-runner.js +84 -0
  71. package/dist/src/fastapi.d.ts +10 -0
  72. package/dist/src/fastapi.js +52 -0
  73. package/dist/src/fetch-pack.d.ts +16 -0
  74. package/dist/src/fetch-pack.js +154 -0
  75. package/dist/src/finding-policy-schema.d.ts +146 -0
  76. package/dist/src/finding-policy-schema.js +70 -0
  77. package/dist/src/finding-policy.d.ts +62 -0
  78. package/dist/src/finding-policy.js +206 -0
  79. package/dist/src/git-selection.d.ts +3 -0
  80. package/dist/src/git-selection.js +229 -0
  81. package/dist/src/go-directives.d.ts +1 -0
  82. package/dist/src/go-directives.js +32 -0
  83. package/dist/src/go-scope.d.ts +11 -0
  84. package/dist/src/go-scope.js +122 -0
  85. package/dist/src/golangci-evidence.d.ts +2 -0
  86. package/dist/src/golangci-evidence.js +92 -0
  87. package/dist/src/golangci-runner.d.ts +1 -0
  88. package/dist/src/golangci-runner.js +124 -0
  89. package/dist/src/golangci.d.ts +2 -0
  90. package/dist/src/golangci.js +35 -0
  91. package/dist/src/guidance.d.ts +98 -0
  92. package/dist/src/guidance.js +247 -0
  93. package/dist/src/index.d.ts +31 -0
  94. package/dist/src/index.js +16 -0
  95. package/dist/src/inventory.d.ts +4 -0
  96. package/dist/src/inventory.js +94 -0
  97. package/dist/src/java-compiler.d.ts +1 -0
  98. package/dist/src/java-compiler.js +110 -0
  99. package/dist/src/java-evidence.d.ts +2 -0
  100. package/dist/src/java-evidence.js +114 -0
  101. package/dist/src/java-runner.d.ts +1 -0
  102. package/dist/src/java-runner.js +79 -0
  103. package/dist/src/java.d.ts +25 -0
  104. package/dist/src/java.js +102 -0
  105. package/dist/src/jest-evidence.d.ts +2 -0
  106. package/dist/src/jest-evidence.js +117 -0
  107. package/dist/src/jest-runner.d.ts +1 -0
  108. package/dist/src/jest-runner.js +46 -0
  109. package/dist/src/jest.d.ts +2 -0
  110. package/dist/src/jest.js +36 -0
  111. package/dist/src/junit.d.ts +18 -0
  112. package/dist/src/junit.js +157 -0
  113. package/dist/src/laravel-evidence.d.ts +2 -0
  114. package/dist/src/laravel-evidence.js +175 -0
  115. package/dist/src/laravel-runner.d.ts +1 -0
  116. package/dist/src/laravel-runner.js +168 -0
  117. package/dist/src/laravel.d.ts +8 -0
  118. package/dist/src/laravel.js +50 -0
  119. package/dist/src/local-tool.d.ts +1 -0
  120. package/dist/src/local-tool.js +19 -0
  121. package/dist/src/mcp.d.ts +14 -0
  122. package/dist/src/mcp.js +362 -0
  123. package/dist/src/mutation.d.ts +118 -0
  124. package/dist/src/mutation.js +370 -0
  125. package/dist/src/mypy-evidence.d.ts +2 -0
  126. package/dist/src/mypy-evidence.js +63 -0
  127. package/dist/src/mypy.d.ts +2 -0
  128. package/dist/src/mypy.js +59 -0
  129. package/dist/src/node-reporter.d.ts +1 -0
  130. package/dist/src/node-reporter.js +28 -0
  131. package/dist/src/nuxt-evidence.d.ts +2 -0
  132. package/dist/src/nuxt-evidence.js +160 -0
  133. package/dist/src/nuxt-protocol.d.ts +52 -0
  134. package/dist/src/nuxt-protocol.js +29 -0
  135. package/dist/src/nuxt-runner.d.ts +1 -0
  136. package/dist/src/nuxt-runner.js +165 -0
  137. package/dist/src/nuxt.d.ts +24 -0
  138. package/dist/src/nuxt.js +105 -0
  139. package/dist/src/output.d.ts +3 -0
  140. package/dist/src/output.js +48 -0
  141. package/dist/src/phpstan-evidence.d.ts +2 -0
  142. package/dist/src/phpstan-evidence.js +81 -0
  143. package/dist/src/phpstan.d.ts +2 -0
  144. package/dist/src/phpstan.js +51 -0
  145. package/dist/src/phpunit-evidence.d.ts +2 -0
  146. package/dist/src/phpunit-evidence.js +53 -0
  147. package/dist/src/phpunit.d.ts +2 -0
  148. package/dist/src/phpunit.js +58 -0
  149. package/dist/src/pint-evidence.d.ts +2 -0
  150. package/dist/src/pint-evidence.js +79 -0
  151. package/dist/src/pint-runner.d.ts +1 -0
  152. package/dist/src/pint-runner.js +53 -0
  153. package/dist/src/pint.d.ts +2 -0
  154. package/dist/src/pint.js +37 -0
  155. package/dist/src/playwright-evidence.d.ts +2 -0
  156. package/dist/src/playwright-evidence.js +127 -0
  157. package/dist/src/playwright-reporter.d.ts +10 -0
  158. package/dist/src/playwright-reporter.js +37 -0
  159. package/dist/src/playwright-runner.d.ts +1 -0
  160. package/dist/src/playwright-runner.js +61 -0
  161. package/dist/src/playwright.d.ts +2 -0
  162. package/dist/src/playwright.js +35 -0
  163. package/dist/src/policy-pack.d.ts +21 -0
  164. package/dist/src/policy-pack.js +41 -0
  165. package/dist/src/pytest-evidence.d.ts +2 -0
  166. package/dist/src/pytest-evidence.js +116 -0
  167. package/dist/src/pytest-runner.d.ts +1 -0
  168. package/dist/src/pytest-runner.js +48 -0
  169. package/dist/src/pytest.d.ts +2 -0
  170. package/dist/src/pytest.js +25 -0
  171. package/dist/src/report-validation.d.ts +129 -0
  172. package/dist/src/report-validation.js +27 -0
  173. package/dist/src/review.d.ts +270 -0
  174. package/dist/src/review.js +349 -0
  175. package/dist/src/ruby.d.ts +2 -0
  176. package/dist/src/ruby.js +25 -0
  177. package/dist/src/ruff-evidence.d.ts +2 -0
  178. package/dist/src/ruff-evidence.js +99 -0
  179. package/dist/src/ruff.d.ts +2 -0
  180. package/dist/src/ruff.js +40 -0
  181. package/dist/src/runner.d.ts +8 -0
  182. package/dist/src/runner.js +117 -0
  183. package/dist/src/runtime-inventory.d.ts +112 -0
  184. package/dist/src/runtime-inventory.js +200 -0
  185. package/dist/src/rust-dep-info.d.ts +1 -0
  186. package/dist/src/rust-dep-info.js +46 -0
  187. package/dist/src/rust-evidence.d.ts +2 -0
  188. package/dist/src/rust-evidence.js +157 -0
  189. package/dist/src/rust-runner.d.ts +1 -0
  190. package/dist/src/rust-runner.js +161 -0
  191. package/dist/src/rust.d.ts +7 -0
  192. package/dist/src/rust.js +39 -0
  193. package/dist/src/sarif.d.ts +86 -0
  194. package/dist/src/sarif.js +113 -0
  195. package/dist/src/schemas.d.ts +393 -0
  196. package/dist/src/schemas.js +222 -0
  197. package/dist/src/staticcheck-evidence.d.ts +2 -0
  198. package/dist/src/staticcheck-evidence.js +75 -0
  199. package/dist/src/swift.d.ts +2 -0
  200. package/dist/src/swift.js +20 -0
  201. package/dist/src/task-store.d.ts +37 -0
  202. package/dist/src/task-store.js +349 -0
  203. package/dist/src/tool-versions.d.ts +3 -0
  204. package/dist/src/tool-versions.js +260 -0
  205. package/dist/src/types.d.ts +157 -0
  206. package/dist/src/types.js +37 -0
  207. package/dist/src/typescript-build-evidence.d.ts +2 -0
  208. package/dist/src/typescript-build-evidence.js +86 -0
  209. package/dist/src/typescript-build-runner.d.ts +1 -0
  210. package/dist/src/typescript-build-runner.js +132 -0
  211. package/dist/src/typescript-build.d.ts +2 -0
  212. package/dist/src/typescript-build.js +41 -0
  213. package/dist/src/typescript.d.ts +2 -0
  214. package/dist/src/typescript.js +54 -0
  215. package/dist/src/validation-task-worker.d.ts +1 -0
  216. package/dist/src/validation-task-worker.js +205 -0
  217. package/dist/src/validation-tasks-protocol.d.ts +69 -0
  218. package/dist/src/validation-tasks-protocol.js +57 -0
  219. package/dist/src/validation-tasks.d.ts +11 -0
  220. package/dist/src/validation-tasks.js +144 -0
  221. package/dist/src/vitest-evidence.d.ts +2 -0
  222. package/dist/src/vitest-evidence.js +112 -0
  223. package/dist/src/vitest-runner.d.ts +1 -0
  224. package/dist/src/vitest-runner.js +48 -0
  225. package/dist/src/vitest.d.ts +2 -0
  226. package/dist/src/vitest.js +36 -0
  227. package/dist/src/vue-router-capture.d.ts +42 -0
  228. package/dist/src/vue-router-capture.js +87 -0
  229. package/dist/src/vue-router-evidence.d.ts +2 -0
  230. package/dist/src/vue-router-evidence.js +126 -0
  231. package/dist/src/vue-router-protocol.d.ts +63 -0
  232. package/dist/src/vue-router-protocol.js +44 -0
  233. package/dist/src/vue-router-runner.d.ts +1 -0
  234. package/dist/src/vue-router-runner.js +88 -0
  235. package/dist/src/vue-router.d.ts +23 -0
  236. package/dist/src/vue-router.js +108 -0
  237. package/dist/src/vue-tsc-runner.d.ts +1 -0
  238. package/dist/src/vue-tsc-runner.js +24 -0
  239. package/dist/src/workspace.d.ts +7 -0
  240. package/dist/src/workspace.js +53 -0
  241. package/docs/ACCEPTANCE.md +56 -0
  242. package/docs/ACTIONLINT.md +112 -0
  243. package/docs/ARCHITECTURE-POLICY.md +82 -0
  244. package/docs/ARCHITECTURE.md +122 -0
  245. package/docs/CLANG.md +113 -0
  246. package/docs/CLIENTS.md +109 -0
  247. package/docs/CONTRACTS.md +73 -0
  248. package/docs/DEPENDENCIES.md +42 -0
  249. package/docs/DJANGO.md +70 -0
  250. package/docs/DOTNET.md +114 -0
  251. package/docs/ENVIRONMENTS.md +52 -0
  252. package/docs/ESLINT.md +68 -0
  253. package/docs/EVALUATION.md +124 -0
  254. package/docs/EXECUTION.md +250 -0
  255. package/docs/EXTERNAL-ADAPTERS.md +170 -0
  256. package/docs/EXTERNAL-EVALUATION.md +155 -0
  257. package/docs/EXTERNAL-RUFF-EVALUATION.md +85 -0
  258. package/docs/FASTAPI.md +73 -0
  259. package/docs/FINDING-POLICY.md +67 -0
  260. package/docs/GO-RACE.md +19 -0
  261. package/docs/GO-SCOPE.md +63 -0
  262. package/docs/GOLANGCI-LINT.md +64 -0
  263. package/docs/GUIDANCE.md +46 -0
  264. package/docs/IMPACT-MEASUREMENT.md +97 -0
  265. package/docs/INSTALLATION.md +102 -0
  266. package/docs/JAVA.md +79 -0
  267. package/docs/JEST.md +36 -0
  268. package/docs/JUNIT.md +31 -0
  269. package/docs/LANGUAGES.md +113 -0
  270. package/docs/LARAVEL.md +111 -0
  271. package/docs/MCP-COMPATIBILITY.md +68 -0
  272. package/docs/MUTATIONS.md +93 -0
  273. package/docs/MYPY.md +37 -0
  274. package/docs/NATIVE-CI.md +96 -0
  275. package/docs/NUXT.md +123 -0
  276. package/docs/PACK-DISTRIBUTION.md +98 -0
  277. package/docs/PERFORMANCE.md +71 -0
  278. package/docs/PEST.md +36 -0
  279. package/docs/PHPSTAN.md +48 -0
  280. package/docs/PHPUNIT.md +32 -0
  281. package/docs/PINT.md +41 -0
  282. package/docs/PLAN.md +265 -0
  283. package/docs/PLAYWRIGHT.md +73 -0
  284. package/docs/POLICY-PACKS.md +106 -0
  285. package/docs/PRIOR-WORKFLOW-EVALUATION.md +116 -0
  286. package/docs/PUBLICATION.md +28 -0
  287. package/docs/PYTEST.md +51 -0
  288. package/docs/RELEASE.md +115 -0
  289. package/docs/RENAMING.md +55 -0
  290. package/docs/REVIEW-EXCHANGE.md +136 -0
  291. package/docs/RUBY.md +50 -0
  292. package/docs/RUFF.md +39 -0
  293. package/docs/RUNTIME-INVENTORY.md +56 -0
  294. package/docs/RUST.md +74 -0
  295. package/docs/SARIF.md +64 -0
  296. package/docs/STATUS.md +530 -0
  297. package/docs/SWIFT.md +48 -0
  298. package/docs/TASK-STORAGE.md +141 -0
  299. package/docs/TOOL-IDENTITY.md +30 -0
  300. package/docs/TYPESCRIPT-BUILD.md +55 -0
  301. package/docs/VALIDATION-TASKS.md +119 -0
  302. package/docs/VITEST.md +36 -0
  303. package/docs/VUE-ROUTER.md +130 -0
  304. package/docs/VUE-TSC.md +26 -0
  305. package/docs/WORKSPACES.md +81 -0
  306. package/docs/licenses/nodable-entities-3.0.0.txt +21 -0
  307. package/docs/measurements/client-claude-before-schema-fix-darwin-arm64-node26.json +60 -0
  308. package/docs/measurements/client-claude-darwin-arm64-node26.json +55 -0
  309. package/docs/measurements/client-codex-darwin-arm64-node26.json +175 -0
  310. package/docs/measurements/evaluation-corpus-repo-verifier.json +332 -0
  311. package/docs/measurements/evaluation-darwin-arm64-node26.json +1236 -0
  312. package/docs/measurements/evaluation-linux-arm64-node22.json +1236 -0
  313. package/docs/measurements/external-eslint-darwin-arm64-node26.json +11866 -0
  314. package/docs/measurements/external-eslint-linux-arm64-node22.json +11866 -0
  315. package/docs/measurements/external-eslint-preservation.json +1527 -0
  316. package/docs/measurements/external-ruff-darwin-arm64-node26.json +1031 -0
  317. package/docs/measurements/external-ruff-linux-arm64-node22.json +1031 -0
  318. package/docs/measurements/hosted-ci-52ba415.json +1005 -0
  319. package/docs/measurements/impact-darwin-arm64-node26.json +6685 -0
  320. package/docs/measurements/impact-linux-arm64-node22.json +6690 -0
  321. package/docs/measurements/performance-darwin-arm64-node26.json +845 -0
  322. package/docs/measurements/performance-linux-arm64-node22.json +845 -0
  323. package/docs/measurements/required-native-profiles.json +500 -0
  324. package/package.json +72 -0
  325. package/packs/actionlint.json +8 -0
  326. package/packs/cpp.json +8 -0
  327. package/packs/dotnet.json +8 -0
  328. package/packs/go.json +7 -0
  329. package/packs/java.json +8 -0
  330. package/packs/javascript-node.json +7 -0
  331. package/packs/nuxt.json +7 -0
  332. package/packs/php-pest.json +7 -0
  333. package/packs/php-phpunit.json +7 -0
  334. package/packs/python-pytest.json +7 -0
  335. package/packs/ruby.json +7 -0
  336. package/packs/rust.json +7 -0
  337. package/packs/swift.json +7 -0
  338. package/packs/vue-router.json +7 -0
  339. package/packs/vue.json +11 -0
  340. package/schemas/actionlint-config.schema.json +19 -0
  341. package/schemas/architecture-policy.schema.json +51 -0
  342. package/schemas/architecture-report.schema.json +123 -0
  343. package/schemas/architecture-summary.schema.json +82 -0
  344. package/schemas/clang-database.schema.json +23 -0
  345. package/schemas/config.schema.json +69 -0
  346. package/schemas/contract-bundle.schema.json +78 -0
  347. package/schemas/contract-report.schema.json +114 -0
  348. package/schemas/contract-summary.schema.json +72 -0
  349. package/schemas/dependency-graph.schema.json +65 -0
  350. package/schemas/django-config.schema.json +16 -0
  351. package/schemas/dotnet-config.schema.json +60 -0
  352. package/schemas/external-manifest.schema.json +97 -0
  353. package/schemas/external-reference.schema.json +10 -0
  354. package/schemas/external-request.schema.json +56 -0
  355. package/schemas/external-result.schema.json +111 -0
  356. package/schemas/fastapi-config.schema.json +27 -0
  357. package/schemas/finding-baseline.schema.json +92 -0
  358. package/schemas/finding-comparison-summary.schema.json +95 -0
  359. package/schemas/finding-comparison.schema.json +121 -0
  360. package/schemas/guidance-context.schema.json +34 -0
  361. package/schemas/guidance-report.schema.json +176 -0
  362. package/schemas/guidance-summary.schema.json +68 -0
  363. package/schemas/java-config.schema.json +24 -0
  364. package/schemas/junit.schema.json +69 -0
  365. package/schemas/laravel-config.schema.json +11 -0
  366. package/schemas/mutation-recipe.schema.json +31 -0
  367. package/schemas/mutation-report.schema.json +238 -0
  368. package/schemas/mutation-summary.schema.json +98 -0
  369. package/schemas/nuxt-config.schema.json +51 -0
  370. package/schemas/plan-summary.schema.json +63 -0
  371. package/schemas/plan.schema.json +244 -0
  372. package/schemas/policy-pack.schema.json +41 -0
  373. package/schemas/report-summary.schema.json +100 -0
  374. package/schemas/report.schema.json +463 -0
  375. package/schemas/review-assessment.schema.json +133 -0
  376. package/schemas/review-context-summary.schema.json +31 -0
  377. package/schemas/review-context.schema.json +254 -0
  378. package/schemas/review-receipt-summary.schema.json +104 -0
  379. package/schemas/review-receipt.schema.json +271 -0
  380. package/schemas/review-selection.schema.json +30 -0
  381. package/schemas/runtime-comparison-summary.schema.json +68 -0
  382. package/schemas/runtime-comparison.schema.json +127 -0
  383. package/schemas/runtime-inventory.schema.json +99 -0
  384. package/schemas/vue-router-config.schema.json +67 -0
  385. package/server.json +47 -0
@@ -0,0 +1,1031 @@
1
+ {
2
+ "schemaVersion": 1,
3
+ "provenance": "external-ruff-diagnostic-integration",
4
+ "interpretation": "Externally authored diagnostic integration cohort for a frozen wrapper; not independent native-rule effectiveness or prior-workflow comparison",
5
+ "startedFromDeclaredPlan": "7d83727f85c48792b0a9719f77d0eed13dbabffca1dad2916ea4d5d0ad418d55",
6
+ "platform": "linux",
7
+ "arch": "arm64",
8
+ "nodeVersion": "22.23.2",
9
+ "pythonVersion": "Python 3.12.13",
10
+ "upstream": {
11
+ "repository": "https://github.com/astral-sh/ruff",
12
+ "tag": "0.16.8",
13
+ "commit": "62914c4b9b79a9e5004374a9c482ad2ed69290e1"
14
+ },
15
+ "identities": {
16
+ "runtimeArtifactsSha256": "ff2534991f373526b95896780ae5cdd70c637b68a8cb939509cf4bea4d532fd5",
17
+ "packageLockSha256": "4e1ed6042edc258e3aad13d4180b1513f662641a1ffb74bdc377bc627591918c",
18
+ "ruffSha256": "9b6daf476518a05d3316ba35e303e7d0bdcf9b9f3ba0b67ff8b4f51408439c30",
19
+ "harnessSha256": "30fe77ada85a2d9b643bc360f25a09b9d179e0dc16a73891273671c8552b0b6f"
20
+ },
21
+ "inputsSha256": "1f64ac1522005c1c39e00bb469178a2f2f8d69b15f3ca8203ca9db1001555b75",
22
+ "cases": [
23
+ {
24
+ "rule": "F401",
25
+ "file": "F401_0.py",
26
+ "sourceSha256": "d111f8eebc6e248f535089b5ec3ad0bc7a39b2fcac7d91772168da89eb0e69c6",
27
+ "snapshotSha256": "efcf5f4e1df003fef61e9ebadecb6e4ffd264a383c544f85bf30c5de09d6c1b1",
28
+ "expected": [
29
+ {
30
+ "code": "F401",
31
+ "file": "F401_0.py",
32
+ "line": 2,
33
+ "column": 8
34
+ },
35
+ {
36
+ "code": "F401",
37
+ "file": "F401_0.py",
38
+ "line": 6,
39
+ "column": 5
40
+ },
41
+ {
42
+ "code": "F401",
43
+ "file": "F401_0.py",
44
+ "line": 12,
45
+ "column": 8
46
+ },
47
+ {
48
+ "code": "F401",
49
+ "file": "F401_0.py",
50
+ "line": 32,
51
+ "column": 12
52
+ },
53
+ {
54
+ "code": "F401",
55
+ "file": "F401_0.py",
56
+ "line": 33,
57
+ "column": 12
58
+ },
59
+ {
60
+ "code": "F401",
61
+ "file": "F401_0.py",
62
+ "line": 37,
63
+ "column": 12
64
+ },
65
+ {
66
+ "code": "F401",
67
+ "file": "F401_0.py",
68
+ "line": 52,
69
+ "column": 16
70
+ },
71
+ {
72
+ "code": "F401",
73
+ "file": "F401_0.py",
74
+ "line": 93,
75
+ "column": 16
76
+ },
77
+ {
78
+ "code": "F401",
79
+ "file": "F401_0.py",
80
+ "line": 94,
81
+ "column": 16
82
+ },
83
+ {
84
+ "code": "F401",
85
+ "file": "F401_0.py",
86
+ "line": 99,
87
+ "column": 8
88
+ },
89
+ {
90
+ "code": "F401",
91
+ "file": "F401_0.py",
92
+ "line": 105,
93
+ "column": 12
94
+ },
95
+ {
96
+ "code": "F401",
97
+ "file": "F401_0.py",
98
+ "line": 107,
99
+ "column": 12
100
+ },
101
+ {
102
+ "code": "F401",
103
+ "file": "F401_0.py",
104
+ "line": 112,
105
+ "column": 16
106
+ },
107
+ {
108
+ "code": "F401",
109
+ "file": "F401_0.py",
110
+ "line": 114,
111
+ "column": 16
112
+ },
113
+ {
114
+ "code": "F401",
115
+ "file": "F401_0.py",
116
+ "line": 122,
117
+ "column": 1
118
+ }
119
+ ]
120
+ },
121
+ {
122
+ "rule": "F821",
123
+ "file": "F821_0.py",
124
+ "sourceSha256": "3ad1c2e5b273ae9fa3a1d334532191081e588f20bc4dddc6d5d649ba2c4a75ab",
125
+ "snapshotSha256": "5807d6224f3491b8fcbdaf3b27c0034809d03373fb60ba82bf820fef19888d8b",
126
+ "expected": [
127
+ {
128
+ "code": "F821",
129
+ "file": "F821_0.py",
130
+ "line": 2,
131
+ "column": 12
132
+ },
133
+ {
134
+ "code": "F821",
135
+ "file": "F821_0.py",
136
+ "line": 6,
137
+ "column": 13
138
+ },
139
+ {
140
+ "code": "F821",
141
+ "file": "F821_0.py",
142
+ "line": 10,
143
+ "column": 9
144
+ },
145
+ {
146
+ "code": "F821",
147
+ "file": "F821_0.py",
148
+ "line": 21,
149
+ "column": 12
150
+ },
151
+ {
152
+ "code": "F821",
153
+ "file": "F821_0.py",
154
+ "line": 58,
155
+ "column": 5
156
+ },
157
+ {
158
+ "code": "F821",
159
+ "file": "F821_0.py",
160
+ "line": 83,
161
+ "column": 11
162
+ },
163
+ {
164
+ "code": "F821",
165
+ "file": "F821_0.py",
166
+ "line": 87,
167
+ "column": 8
168
+ },
169
+ {
170
+ "code": "F821",
171
+ "file": "F821_0.py",
172
+ "line": 90,
173
+ "column": 8
174
+ },
175
+ {
176
+ "code": "F821",
177
+ "file": "F821_0.py",
178
+ "line": 92,
179
+ "column": 11
180
+ },
181
+ {
182
+ "code": "F821",
183
+ "file": "F821_0.py",
184
+ "line": 93,
185
+ "column": 14
186
+ },
187
+ {
188
+ "code": "F821",
189
+ "file": "F821_0.py",
190
+ "line": 115,
191
+ "column": 10
192
+ },
193
+ {
194
+ "code": "F821",
195
+ "file": "F821_0.py",
196
+ "line": 123,
197
+ "column": 15
198
+ },
199
+ {
200
+ "code": "F821",
201
+ "file": "F821_0.py",
202
+ "line": 123,
203
+ "column": 22
204
+ }
205
+ ]
206
+ },
207
+ {
208
+ "rule": "F841",
209
+ "file": "F841_0.py",
210
+ "sourceSha256": "5a1c89ff48280ff93ec4c0143923567adfd3b1a2f3bc37eda1e0a05a9542542c",
211
+ "snapshotSha256": "6b60ff82600530802d0189eb742ef441ef30bd932ea93d13a42ef0e29cc95832",
212
+ "expected": [
213
+ {
214
+ "code": "F841",
215
+ "file": "F841_0.py",
216
+ "line": 3,
217
+ "column": 22
218
+ },
219
+ {
220
+ "code": "F841",
221
+ "file": "F841_0.py",
222
+ "line": 16,
223
+ "column": 5
224
+ },
225
+ {
226
+ "code": "F841",
227
+ "file": "F841_0.py",
228
+ "line": 20,
229
+ "column": 5
230
+ },
231
+ {
232
+ "code": "F841",
233
+ "file": "F841_0.py",
234
+ "line": 21,
235
+ "column": 6
236
+ },
237
+ {
238
+ "code": "F841",
239
+ "file": "F841_0.py",
240
+ "line": 21,
241
+ "column": 9
242
+ },
243
+ {
244
+ "code": "F841",
245
+ "file": "F841_0.py",
246
+ "line": 26,
247
+ "column": 14
248
+ },
249
+ {
250
+ "code": "F841",
251
+ "file": "F841_0.py",
252
+ "line": 51,
253
+ "column": 9
254
+ },
255
+ {
256
+ "code": "F841",
257
+ "file": "F841_0.py",
258
+ "line": 79,
259
+ "column": 26
260
+ },
261
+ {
262
+ "code": "F841",
263
+ "file": "F841_0.py",
264
+ "line": 85,
265
+ "column": 25
266
+ },
267
+ {
268
+ "code": "F841",
269
+ "file": "F841_0.py",
270
+ "line": 102,
271
+ "column": 5
272
+ },
273
+ {
274
+ "code": "F841",
275
+ "file": "F841_0.py",
276
+ "line": 115,
277
+ "column": 5
278
+ },
279
+ {
280
+ "code": "F841",
281
+ "file": "F841_0.py",
282
+ "line": 122,
283
+ "column": 14
284
+ },
285
+ {
286
+ "code": "F841",
287
+ "file": "F841_0.py",
288
+ "line": 127,
289
+ "column": 21
290
+ },
291
+ {
292
+ "code": "F841",
293
+ "file": "F841_0.py",
294
+ "line": 168,
295
+ "column": 9
296
+ },
297
+ {
298
+ "code": "F841",
299
+ "file": "F841_0.py",
300
+ "line": 174,
301
+ "column": 13
302
+ },
303
+ {
304
+ "code": "F841",
305
+ "file": "F841_0.py",
306
+ "line": 182,
307
+ "column": 17
308
+ }
309
+ ]
310
+ }
311
+ ],
312
+ "observations": [
313
+ {
314
+ "rule": "F401",
315
+ "system": "native",
316
+ "outcome": "failed",
317
+ "complete": true,
318
+ "diagnostics": [
319
+ {
320
+ "code": "F401",
321
+ "file": "F401_0.py",
322
+ "line": 2,
323
+ "column": 8
324
+ },
325
+ {
326
+ "code": "F401",
327
+ "file": "F401_0.py",
328
+ "line": 6,
329
+ "column": 5
330
+ },
331
+ {
332
+ "code": "F401",
333
+ "file": "F401_0.py",
334
+ "line": 12,
335
+ "column": 8
336
+ },
337
+ {
338
+ "code": "F401",
339
+ "file": "F401_0.py",
340
+ "line": 32,
341
+ "column": 12
342
+ },
343
+ {
344
+ "code": "F401",
345
+ "file": "F401_0.py",
346
+ "line": 33,
347
+ "column": 12
348
+ },
349
+ {
350
+ "code": "F401",
351
+ "file": "F401_0.py",
352
+ "line": 37,
353
+ "column": 12
354
+ },
355
+ {
356
+ "code": "F401",
357
+ "file": "F401_0.py",
358
+ "line": 52,
359
+ "column": 16
360
+ },
361
+ {
362
+ "code": "F401",
363
+ "file": "F401_0.py",
364
+ "line": 93,
365
+ "column": 16
366
+ },
367
+ {
368
+ "code": "F401",
369
+ "file": "F401_0.py",
370
+ "line": 94,
371
+ "column": 16
372
+ },
373
+ {
374
+ "code": "F401",
375
+ "file": "F401_0.py",
376
+ "line": 99,
377
+ "column": 8
378
+ },
379
+ {
380
+ "code": "F401",
381
+ "file": "F401_0.py",
382
+ "line": 105,
383
+ "column": 12
384
+ },
385
+ {
386
+ "code": "F401",
387
+ "file": "F401_0.py",
388
+ "line": 107,
389
+ "column": 12
390
+ },
391
+ {
392
+ "code": "F401",
393
+ "file": "F401_0.py",
394
+ "line": 112,
395
+ "column": 16
396
+ },
397
+ {
398
+ "code": "F401",
399
+ "file": "F401_0.py",
400
+ "line": 114,
401
+ "column": 16
402
+ },
403
+ {
404
+ "code": "F401",
405
+ "file": "F401_0.py",
406
+ "line": 122,
407
+ "column": 1
408
+ }
409
+ ],
410
+ "sourceFingerprint": "24d53d45bc00945949d133411c1449a6330c29154f50d7d2a0505ce47a06c433",
411
+ "wallMs": 12.729236999999998
412
+ },
413
+ {
414
+ "rule": "F401",
415
+ "system": "verifier",
416
+ "outcome": "failed",
417
+ "status": "failed",
418
+ "complete": true,
419
+ "sourceFingerprint": "24d53d45bc00945949d133411c1449a6330c29154f50d7d2a0505ce47a06c433",
420
+ "diagnostics": [
421
+ {
422
+ "code": "F401",
423
+ "file": "F401_0.py",
424
+ "line": 2,
425
+ "column": 8
426
+ },
427
+ {
428
+ "code": "F401",
429
+ "file": "F401_0.py",
430
+ "line": 6,
431
+ "column": 5
432
+ },
433
+ {
434
+ "code": "F401",
435
+ "file": "F401_0.py",
436
+ "line": 12,
437
+ "column": 8
438
+ },
439
+ {
440
+ "code": "F401",
441
+ "file": "F401_0.py",
442
+ "line": 32,
443
+ "column": 12
444
+ },
445
+ {
446
+ "code": "F401",
447
+ "file": "F401_0.py",
448
+ "line": 33,
449
+ "column": 12
450
+ },
451
+ {
452
+ "code": "F401",
453
+ "file": "F401_0.py",
454
+ "line": 37,
455
+ "column": 12
456
+ },
457
+ {
458
+ "code": "F401",
459
+ "file": "F401_0.py",
460
+ "line": 52,
461
+ "column": 16
462
+ },
463
+ {
464
+ "code": "F401",
465
+ "file": "F401_0.py",
466
+ "line": 93,
467
+ "column": 16
468
+ },
469
+ {
470
+ "code": "F401",
471
+ "file": "F401_0.py",
472
+ "line": 94,
473
+ "column": 16
474
+ },
475
+ {
476
+ "code": "F401",
477
+ "file": "F401_0.py",
478
+ "line": 99,
479
+ "column": 8
480
+ },
481
+ {
482
+ "code": "F401",
483
+ "file": "F401_0.py",
484
+ "line": 105,
485
+ "column": 12
486
+ },
487
+ {
488
+ "code": "F401",
489
+ "file": "F401_0.py",
490
+ "line": 107,
491
+ "column": 12
492
+ },
493
+ {
494
+ "code": "F401",
495
+ "file": "F401_0.py",
496
+ "line": 112,
497
+ "column": 16
498
+ },
499
+ {
500
+ "code": "F401",
501
+ "file": "F401_0.py",
502
+ "line": 114,
503
+ "column": 16
504
+ },
505
+ {
506
+ "code": "F401",
507
+ "file": "F401_0.py",
508
+ "line": 122,
509
+ "column": 1
510
+ }
511
+ ],
512
+ "tools": [
513
+ {
514
+ "name": "python",
515
+ "version": "3.12.13"
516
+ },
517
+ {
518
+ "name": "ruff",
519
+ "version": "0.16.8"
520
+ }
521
+ ],
522
+ "engineMs": 47.697289999999995,
523
+ "wallMs": 143.87451300000004
524
+ },
525
+ {
526
+ "rule": "F821",
527
+ "system": "verifier",
528
+ "outcome": "failed",
529
+ "status": "failed",
530
+ "complete": true,
531
+ "sourceFingerprint": "e7a24b1fe300bc75d444cba37389f203d35f951b92699fddb187607f38cca2f5",
532
+ "diagnostics": [
533
+ {
534
+ "code": "F821",
535
+ "file": "F821_0.py",
536
+ "line": 2,
537
+ "column": 12
538
+ },
539
+ {
540
+ "code": "F821",
541
+ "file": "F821_0.py",
542
+ "line": 6,
543
+ "column": 13
544
+ },
545
+ {
546
+ "code": "F821",
547
+ "file": "F821_0.py",
548
+ "line": 10,
549
+ "column": 9
550
+ },
551
+ {
552
+ "code": "F821",
553
+ "file": "F821_0.py",
554
+ "line": 21,
555
+ "column": 12
556
+ },
557
+ {
558
+ "code": "F821",
559
+ "file": "F821_0.py",
560
+ "line": 58,
561
+ "column": 5
562
+ },
563
+ {
564
+ "code": "F821",
565
+ "file": "F821_0.py",
566
+ "line": 83,
567
+ "column": 11
568
+ },
569
+ {
570
+ "code": "F821",
571
+ "file": "F821_0.py",
572
+ "line": 87,
573
+ "column": 8
574
+ },
575
+ {
576
+ "code": "F821",
577
+ "file": "F821_0.py",
578
+ "line": 90,
579
+ "column": 8
580
+ },
581
+ {
582
+ "code": "F821",
583
+ "file": "F821_0.py",
584
+ "line": 92,
585
+ "column": 11
586
+ },
587
+ {
588
+ "code": "F821",
589
+ "file": "F821_0.py",
590
+ "line": 93,
591
+ "column": 14
592
+ },
593
+ {
594
+ "code": "F821",
595
+ "file": "F821_0.py",
596
+ "line": 115,
597
+ "column": 10
598
+ },
599
+ {
600
+ "code": "F821",
601
+ "file": "F821_0.py",
602
+ "line": 123,
603
+ "column": 15
604
+ },
605
+ {
606
+ "code": "F821",
607
+ "file": "F821_0.py",
608
+ "line": 123,
609
+ "column": 22
610
+ }
611
+ ],
612
+ "tools": [
613
+ {
614
+ "name": "python",
615
+ "version": "3.12.13"
616
+ },
617
+ {
618
+ "name": "ruff",
619
+ "version": "0.16.8"
620
+ }
621
+ ],
622
+ "engineMs": 42.566034,
623
+ "wallMs": 130.103741
624
+ },
625
+ {
626
+ "rule": "F821",
627
+ "system": "native",
628
+ "outcome": "failed",
629
+ "complete": true,
630
+ "diagnostics": [
631
+ {
632
+ "code": "F821",
633
+ "file": "F821_0.py",
634
+ "line": 2,
635
+ "column": 12
636
+ },
637
+ {
638
+ "code": "F821",
639
+ "file": "F821_0.py",
640
+ "line": 6,
641
+ "column": 13
642
+ },
643
+ {
644
+ "code": "F821",
645
+ "file": "F821_0.py",
646
+ "line": 10,
647
+ "column": 9
648
+ },
649
+ {
650
+ "code": "F821",
651
+ "file": "F821_0.py",
652
+ "line": 21,
653
+ "column": 12
654
+ },
655
+ {
656
+ "code": "F821",
657
+ "file": "F821_0.py",
658
+ "line": 58,
659
+ "column": 5
660
+ },
661
+ {
662
+ "code": "F821",
663
+ "file": "F821_0.py",
664
+ "line": 83,
665
+ "column": 11
666
+ },
667
+ {
668
+ "code": "F821",
669
+ "file": "F821_0.py",
670
+ "line": 87,
671
+ "column": 8
672
+ },
673
+ {
674
+ "code": "F821",
675
+ "file": "F821_0.py",
676
+ "line": 90,
677
+ "column": 8
678
+ },
679
+ {
680
+ "code": "F821",
681
+ "file": "F821_0.py",
682
+ "line": 92,
683
+ "column": 11
684
+ },
685
+ {
686
+ "code": "F821",
687
+ "file": "F821_0.py",
688
+ "line": 93,
689
+ "column": 14
690
+ },
691
+ {
692
+ "code": "F821",
693
+ "file": "F821_0.py",
694
+ "line": 115,
695
+ "column": 10
696
+ },
697
+ {
698
+ "code": "F821",
699
+ "file": "F821_0.py",
700
+ "line": 123,
701
+ "column": 15
702
+ },
703
+ {
704
+ "code": "F821",
705
+ "file": "F821_0.py",
706
+ "line": 123,
707
+ "column": 22
708
+ }
709
+ ],
710
+ "sourceFingerprint": "e7a24b1fe300bc75d444cba37389f203d35f951b92699fddb187607f38cca2f5",
711
+ "wallMs": 7.615814999999998
712
+ },
713
+ {
714
+ "rule": "F841",
715
+ "system": "native",
716
+ "outcome": "failed",
717
+ "complete": true,
718
+ "diagnostics": [
719
+ {
720
+ "code": "F841",
721
+ "file": "F841_0.py",
722
+ "line": 3,
723
+ "column": 22
724
+ },
725
+ {
726
+ "code": "F841",
727
+ "file": "F841_0.py",
728
+ "line": 16,
729
+ "column": 5
730
+ },
731
+ {
732
+ "code": "F841",
733
+ "file": "F841_0.py",
734
+ "line": 20,
735
+ "column": 5
736
+ },
737
+ {
738
+ "code": "F841",
739
+ "file": "F841_0.py",
740
+ "line": 21,
741
+ "column": 6
742
+ },
743
+ {
744
+ "code": "F841",
745
+ "file": "F841_0.py",
746
+ "line": 21,
747
+ "column": 9
748
+ },
749
+ {
750
+ "code": "F841",
751
+ "file": "F841_0.py",
752
+ "line": 26,
753
+ "column": 14
754
+ },
755
+ {
756
+ "code": "F841",
757
+ "file": "F841_0.py",
758
+ "line": 51,
759
+ "column": 9
760
+ },
761
+ {
762
+ "code": "F841",
763
+ "file": "F841_0.py",
764
+ "line": 79,
765
+ "column": 26
766
+ },
767
+ {
768
+ "code": "F841",
769
+ "file": "F841_0.py",
770
+ "line": 85,
771
+ "column": 25
772
+ },
773
+ {
774
+ "code": "F841",
775
+ "file": "F841_0.py",
776
+ "line": 102,
777
+ "column": 5
778
+ },
779
+ {
780
+ "code": "F841",
781
+ "file": "F841_0.py",
782
+ "line": 115,
783
+ "column": 5
784
+ },
785
+ {
786
+ "code": "F841",
787
+ "file": "F841_0.py",
788
+ "line": 122,
789
+ "column": 14
790
+ },
791
+ {
792
+ "code": "F841",
793
+ "file": "F841_0.py",
794
+ "line": 127,
795
+ "column": 21
796
+ },
797
+ {
798
+ "code": "F841",
799
+ "file": "F841_0.py",
800
+ "line": 168,
801
+ "column": 9
802
+ },
803
+ {
804
+ "code": "F841",
805
+ "file": "F841_0.py",
806
+ "line": 174,
807
+ "column": 13
808
+ },
809
+ {
810
+ "code": "F841",
811
+ "file": "F841_0.py",
812
+ "line": 182,
813
+ "column": 17
814
+ }
815
+ ],
816
+ "sourceFingerprint": "cd7336834deafadfd0d4df8c303794a962dc5efd7981d8aba8eaa4ebe039aa0a",
817
+ "wallMs": 5.367523000000006
818
+ },
819
+ {
820
+ "rule": "F841",
821
+ "system": "verifier",
822
+ "outcome": "failed",
823
+ "status": "failed",
824
+ "complete": true,
825
+ "sourceFingerprint": "cd7336834deafadfd0d4df8c303794a962dc5efd7981d8aba8eaa4ebe039aa0a",
826
+ "diagnostics": [
827
+ {
828
+ "code": "F841",
829
+ "file": "F841_0.py",
830
+ "line": 3,
831
+ "column": 22
832
+ },
833
+ {
834
+ "code": "F841",
835
+ "file": "F841_0.py",
836
+ "line": 16,
837
+ "column": 5
838
+ },
839
+ {
840
+ "code": "F841",
841
+ "file": "F841_0.py",
842
+ "line": 20,
843
+ "column": 5
844
+ },
845
+ {
846
+ "code": "F841",
847
+ "file": "F841_0.py",
848
+ "line": 21,
849
+ "column": 6
850
+ },
851
+ {
852
+ "code": "F841",
853
+ "file": "F841_0.py",
854
+ "line": 21,
855
+ "column": 9
856
+ },
857
+ {
858
+ "code": "F841",
859
+ "file": "F841_0.py",
860
+ "line": 26,
861
+ "column": 14
862
+ },
863
+ {
864
+ "code": "F841",
865
+ "file": "F841_0.py",
866
+ "line": 51,
867
+ "column": 9
868
+ },
869
+ {
870
+ "code": "F841",
871
+ "file": "F841_0.py",
872
+ "line": 79,
873
+ "column": 26
874
+ },
875
+ {
876
+ "code": "F841",
877
+ "file": "F841_0.py",
878
+ "line": 85,
879
+ "column": 25
880
+ },
881
+ {
882
+ "code": "F841",
883
+ "file": "F841_0.py",
884
+ "line": 102,
885
+ "column": 5
886
+ },
887
+ {
888
+ "code": "F841",
889
+ "file": "F841_0.py",
890
+ "line": 115,
891
+ "column": 5
892
+ },
893
+ {
894
+ "code": "F841",
895
+ "file": "F841_0.py",
896
+ "line": 122,
897
+ "column": 14
898
+ },
899
+ {
900
+ "code": "F841",
901
+ "file": "F841_0.py",
902
+ "line": 127,
903
+ "column": 21
904
+ },
905
+ {
906
+ "code": "F841",
907
+ "file": "F841_0.py",
908
+ "line": 168,
909
+ "column": 9
910
+ },
911
+ {
912
+ "code": "F841",
913
+ "file": "F841_0.py",
914
+ "line": 174,
915
+ "column": 13
916
+ },
917
+ {
918
+ "code": "F841",
919
+ "file": "F841_0.py",
920
+ "line": 182,
921
+ "column": 17
922
+ }
923
+ ],
924
+ "tools": [
925
+ {
926
+ "name": "python",
927
+ "version": "3.12.13"
928
+ },
929
+ {
930
+ "name": "ruff",
931
+ "version": "0.16.8"
932
+ }
933
+ ],
934
+ "engineMs": 42.70954499999999,
935
+ "wallMs": 123.73139199999997
936
+ }
937
+ ],
938
+ "rows": [
939
+ {
940
+ "rule": "F401",
941
+ "system": "native",
942
+ "classification": "matched",
943
+ "comparison": {
944
+ "expected": 15,
945
+ "observed": 15,
946
+ "matched": 15,
947
+ "missing": [],
948
+ "unexpected": []
949
+ }
950
+ },
951
+ {
952
+ "rule": "F401",
953
+ "system": "verifier",
954
+ "classification": "matched",
955
+ "comparison": {
956
+ "expected": 15,
957
+ "observed": 15,
958
+ "matched": 15,
959
+ "missing": [],
960
+ "unexpected": []
961
+ }
962
+ },
963
+ {
964
+ "rule": "F821",
965
+ "system": "native",
966
+ "classification": "matched",
967
+ "comparison": {
968
+ "expected": 13,
969
+ "observed": 13,
970
+ "matched": 13,
971
+ "missing": [],
972
+ "unexpected": []
973
+ }
974
+ },
975
+ {
976
+ "rule": "F821",
977
+ "system": "verifier",
978
+ "classification": "matched",
979
+ "comparison": {
980
+ "expected": 13,
981
+ "observed": 13,
982
+ "matched": 13,
983
+ "missing": [],
984
+ "unexpected": []
985
+ }
986
+ },
987
+ {
988
+ "rule": "F841",
989
+ "system": "native",
990
+ "classification": "matched",
991
+ "comparison": {
992
+ "expected": 16,
993
+ "observed": 16,
994
+ "matched": 16,
995
+ "missing": [],
996
+ "unexpected": []
997
+ }
998
+ },
999
+ {
1000
+ "rule": "F841",
1001
+ "system": "verifier",
1002
+ "classification": "matched",
1003
+ "comparison": {
1004
+ "expected": 16,
1005
+ "observed": 16,
1006
+ "matched": 16,
1007
+ "missing": [],
1008
+ "unexpected": []
1009
+ }
1010
+ }
1011
+ ],
1012
+ "counts": {
1013
+ "files": 3,
1014
+ "excludedFiles": 0,
1015
+ "systemFileResults": 6,
1016
+ "matched": 6,
1017
+ "different": 0,
1018
+ "incomplete": 0,
1019
+ "excluded": 0
1020
+ },
1021
+ "model": {
1022
+ "calls": 0,
1023
+ "tokens": 0,
1024
+ "providerCost": 0
1025
+ },
1026
+ "limits": [
1027
+ "Whole mixed fixtures are not independent valid/invalid cases.",
1028
+ "Only rule codes and primary start locations are compared to upstream snapshots.",
1029
+ "No message/fix/end-location, population false-positive, review-quality or representative cost claim."
1030
+ ]
1031
+ }