llm-mock-server 1.0.4 → 1.0.6

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 (113) hide show
  1. package/.desloppify/query.json +1162 -62
  2. package/.desloppify/review_packet_blind.json +18 -18
  3. package/.desloppify/review_packets/holistic_packet_20260315_185401.json +1407 -0
  4. package/.desloppify/review_packets/holistic_packet_20260315_185613.json +1407 -0
  5. package/.desloppify/state-typescript.json +2530 -645
  6. package/.desloppify/state-typescript.json.bak +2494 -582
  7. package/.desloppify/subagents/runs/20260315_185401/logs/batch-1.log +384 -0
  8. package/.desloppify/subagents/runs/20260315_185401/logs/batch-10.log +484 -0
  9. package/.desloppify/subagents/runs/20260315_185401/logs/batch-2.log +408 -0
  10. package/.desloppify/subagents/runs/20260315_185401/logs/batch-3.log +416 -0
  11. package/.desloppify/subagents/runs/20260315_185401/logs/batch-4.log +360 -0
  12. package/.desloppify/subagents/runs/20260315_185401/logs/batch-5.log +360 -0
  13. package/.desloppify/subagents/runs/20260315_185401/logs/batch-6.log +364 -0
  14. package/.desloppify/subagents/runs/20260315_185401/logs/batch-7.log +428 -0
  15. package/.desloppify/subagents/runs/20260315_185401/logs/batch-8.log +388 -0
  16. package/.desloppify/subagents/runs/20260315_185401/logs/batch-9.log +500 -0
  17. package/.desloppify/subagents/runs/20260315_185401/prompts/batch-1.md +83 -0
  18. package/.desloppify/subagents/runs/20260315_185401/prompts/batch-10.md +108 -0
  19. package/.desloppify/subagents/runs/20260315_185401/prompts/batch-2.md +89 -0
  20. package/.desloppify/subagents/runs/20260315_185401/prompts/batch-3.md +91 -0
  21. package/.desloppify/subagents/runs/20260315_185401/prompts/batch-4.md +77 -0
  22. package/.desloppify/subagents/runs/20260315_185401/prompts/batch-5.md +77 -0
  23. package/.desloppify/subagents/runs/20260315_185401/prompts/batch-6.md +78 -0
  24. package/.desloppify/subagents/runs/20260315_185401/prompts/batch-7.md +94 -0
  25. package/.desloppify/subagents/runs/20260315_185401/prompts/batch-8.md +84 -0
  26. package/.desloppify/subagents/runs/20260315_185401/prompts/batch-9.md +112 -0
  27. package/.desloppify/subagents/runs/20260315_185401/results/batch-1.raw.txt +0 -0
  28. package/.desloppify/subagents/runs/20260315_185401/results/batch-10.raw.txt +0 -0
  29. package/.desloppify/subagents/runs/20260315_185401/results/batch-2.raw.txt +0 -0
  30. package/.desloppify/subagents/runs/20260315_185401/results/batch-3.raw.txt +0 -0
  31. package/.desloppify/subagents/runs/20260315_185401/results/batch-4.raw.txt +0 -0
  32. package/.desloppify/subagents/runs/20260315_185401/results/batch-5.raw.txt +0 -0
  33. package/.desloppify/subagents/runs/20260315_185401/results/batch-6.raw.txt +0 -0
  34. package/.desloppify/subagents/runs/20260315_185401/results/batch-7.raw.txt +0 -0
  35. package/.desloppify/subagents/runs/20260315_185401/results/batch-8.raw.txt +0 -0
  36. package/.desloppify/subagents/runs/20260315_185401/results/batch-9.raw.txt +0 -0
  37. package/.desloppify/subagents/runs/20260315_185401/run.log +36 -0
  38. package/.desloppify/subagents/runs/20260315_185401/run_summary.json +156 -0
  39. package/.desloppify/subagents/runs/20260315_185613/holistic_findings_merged.json +741 -0
  40. package/.desloppify/subagents/runs/20260315_185613/logs/batch-1.log +579 -0
  41. package/.desloppify/subagents/runs/20260315_185613/logs/batch-10.log +1537 -0
  42. package/.desloppify/subagents/runs/20260315_185613/logs/batch-2.log +829 -0
  43. package/.desloppify/subagents/runs/20260315_185613/logs/batch-3.log +927 -0
  44. package/.desloppify/subagents/runs/20260315_185613/logs/batch-4.log +429 -0
  45. package/.desloppify/subagents/runs/20260315_185613/logs/batch-5.log +276 -0
  46. package/.desloppify/subagents/runs/20260315_185613/logs/batch-6.log +450 -0
  47. package/.desloppify/subagents/runs/20260315_185613/logs/batch-7.log +730 -0
  48. package/.desloppify/subagents/runs/20260315_185613/logs/batch-8.log +698 -0
  49. package/.desloppify/subagents/runs/20260315_185613/logs/batch-9.log +938 -0
  50. package/.desloppify/subagents/runs/20260315_185613/prompts/batch-1.md +83 -0
  51. package/.desloppify/subagents/runs/20260315_185613/prompts/batch-10.md +108 -0
  52. package/.desloppify/subagents/runs/20260315_185613/prompts/batch-2.md +89 -0
  53. package/.desloppify/subagents/runs/20260315_185613/prompts/batch-3.md +91 -0
  54. package/.desloppify/subagents/runs/20260315_185613/prompts/batch-4.md +77 -0
  55. package/.desloppify/subagents/runs/20260315_185613/prompts/batch-5.md +77 -0
  56. package/.desloppify/subagents/runs/20260315_185613/prompts/batch-6.md +78 -0
  57. package/.desloppify/subagents/runs/20260315_185613/prompts/batch-7.md +94 -0
  58. package/.desloppify/subagents/runs/20260315_185613/prompts/batch-8.md +84 -0
  59. package/.desloppify/subagents/runs/20260315_185613/prompts/batch-9.md +112 -0
  60. package/.desloppify/subagents/runs/20260315_185613/results/batch-1.raw.txt +78 -0
  61. package/.desloppify/subagents/runs/20260315_185613/results/batch-10.raw.txt +242 -0
  62. package/.desloppify/subagents/runs/20260315_185613/results/batch-2.raw.txt +102 -0
  63. package/.desloppify/subagents/runs/20260315_185613/results/batch-3.raw.txt +94 -0
  64. package/.desloppify/subagents/runs/20260315_185613/results/batch-4.raw.txt +86 -0
  65. package/.desloppify/subagents/runs/20260315_185613/results/batch-5.raw.txt +1 -0
  66. package/.desloppify/subagents/runs/20260315_185613/results/batch-6.raw.txt +87 -0
  67. package/.desloppify/subagents/runs/20260315_185613/results/batch-7.raw.txt +1 -0
  68. package/.desloppify/subagents/runs/20260315_185613/results/batch-8.raw.txt +107 -0
  69. package/.desloppify/subagents/runs/20260315_185613/results/batch-9.raw.txt +67 -0
  70. package/.desloppify/subagents/runs/20260315_185613/run.log +96 -0
  71. package/.desloppify/subagents/runs/20260315_185613/run_summary.json +156 -0
  72. package/.github/workflows/docs.yml +46 -0
  73. package/.github/workflows/test.yml +3 -0
  74. package/README.md +8 -4
  75. package/docs/ARCHITECTURE.md +11 -11
  76. package/package.json +18 -11
  77. package/scorecard.png +0 -0
  78. package/src/{cli.ts → cli/cli.ts} +6 -11
  79. package/src/{cli-validators.ts → cli/validators.ts} +10 -9
  80. package/src/formats/anthropic/index.ts +2 -2
  81. package/src/formats/anthropic/parse.ts +5 -2
  82. package/src/formats/anthropic/serialize.ts +3 -3
  83. package/src/formats/openai/{index.ts → chat-completions/index.ts} +3 -3
  84. package/src/formats/openai/{parse.ts → chat-completions/parse.ts} +5 -2
  85. package/src/formats/openai/{serialize.ts → chat-completions/serialize.ts} +3 -3
  86. package/src/formats/{responses → openai/responses}/index.ts +2 -2
  87. package/src/formats/{responses → openai/responses}/parse.ts +5 -2
  88. package/src/formats/{responses → openai/responses}/serialize.ts +3 -3
  89. package/src/formats/request-helpers.ts +6 -1
  90. package/src/formats/serialize-helpers.ts +9 -4
  91. package/src/formats/types.ts +2 -6
  92. package/src/history.ts +6 -2
  93. package/src/loader.ts +2 -1
  94. package/src/mock-server.ts +55 -106
  95. package/src/route-handler.ts +7 -11
  96. package/src/rule-builder.ts +73 -0
  97. package/src/rule-engine.ts +3 -10
  98. package/src/sse-writer.ts +1 -1
  99. package/src/types/reply.ts +51 -8
  100. package/src/types/request.ts +21 -6
  101. package/src/types/rule.ts +65 -7
  102. package/test/cli-validators.test.ts +13 -5
  103. package/test/formats/openai.test.ts +40 -28
  104. package/test/formats/responses.test.ts +2 -2
  105. package/test/history.test.ts +1 -1
  106. package/test/loader.test.ts +3 -3
  107. package/test/logger.test.ts +2 -2
  108. package/test/mock-server.test.ts +1 -1
  109. package/test/rule-engine.test.ts +1 -1
  110. package/tsconfig.json +2 -4
  111. package/typedoc.json +9 -0
  112. /package/src/formats/openai/{schema.ts → chat-completions/schema.ts} +0 -0
  113. /package/src/formats/{responses → openai/responses}/schema.ts +0 -0
@@ -1,18 +1,18 @@
1
1
  {
2
2
  "version": 1,
3
3
  "created": "2026-03-14T23:49:53+00:00",
4
- "last_scan": "2026-03-15T05:08:48+00:00",
5
- "scan_count": 10,
6
- "overall_score": 93.6,
4
+ "last_scan": "2026-03-15T19:12:32+00:00",
5
+ "scan_count": 13,
6
+ "overall_score": 84.9,
7
7
  "objective_score": 100.0,
8
- "strict_score": 87.7,
9
- "verified_strict_score": 85.4,
8
+ "strict_score": 79.1,
9
+ "verified_strict_score": 85.5,
10
10
  "stats": {
11
- "total": 114,
11
+ "total": 137,
12
12
  "open": 0,
13
- "fixed": 0,
13
+ "fixed": 2,
14
14
  "auto_resolved": 83,
15
- "wontfix": 31,
15
+ "wontfix": 52,
16
16
  "false_positive": 0,
17
17
  "by_tier": {
18
18
  "2": {
@@ -24,9 +24,9 @@
24
24
  },
25
25
  "3": {
26
26
  "open": 0,
27
- "fixed": 0,
27
+ "fixed": 2,
28
28
  "auto_resolved": 50,
29
- "wontfix": 31,
29
+ "wontfix": 52,
30
30
  "false_positive": 0
31
31
  },
32
32
  "4": {
@@ -255,18 +255,18 @@
255
255
  "status": "wontfix",
256
256
  "note": "Chronic reopener \u2014 already reviewed",
257
257
  "first_seen": "2026-03-14T23:49:59+00:00",
258
- "last_seen": "2026-03-15T05:08:48+00:00",
259
- "resolved_at": "2026-03-15T05:09:08+00:00",
260
- "reopen_count": 2,
258
+ "last_seen": "2026-03-15T19:12:32+00:00",
259
+ "resolved_at": "2026-03-15T19:16:28+00:00",
260
+ "reopen_count": 3,
261
261
  "lang": "typescript",
262
262
  "zone": "test",
263
263
  "suppressed": false,
264
264
  "suppressed_at": null,
265
265
  "suppression_pattern": null,
266
- "wontfix_scan_count": 10,
266
+ "wontfix_scan_count": 13,
267
267
  "wontfix_snapshot": {
268
- "captured_at": "2026-03-15T05:09:08+00:00",
269
- "scan_count": 10,
268
+ "captured_at": "2026-03-15T19:16:28+00:00",
269
+ "scan_count": 13,
270
270
  "tier": 3,
271
271
  "confidence": "low",
272
272
  "detail": {
@@ -275,8 +275,8 @@
275
275
  },
276
276
  "resolution_attestation": {
277
277
  "kind": "manual",
278
- "text": "I have actually reviewed this finding previously and confirmed it is intentional and I am not gaming the score by resolving without fixing.",
279
- "attested_at": "2026-03-15T05:09:08+00:00",
278
+ "text": "I have actually reviewed this finding previously and confirmed it is intentional or a false positive and I am not gaming the score by resolving without fixing.",
279
+ "attested_at": "2026-03-15T19:16:28+00:00",
280
280
  "scan_verified": false
281
281
  }
282
282
  },
@@ -294,18 +294,18 @@
294
294
  "status": "wontfix",
295
295
  "note": "Chronic reopener \u2014 already reviewed",
296
296
  "first_seen": "2026-03-14T23:49:59+00:00",
297
- "last_seen": "2026-03-15T05:08:48+00:00",
298
- "resolved_at": "2026-03-15T05:09:03+00:00",
299
- "reopen_count": 2,
297
+ "last_seen": "2026-03-15T19:12:32+00:00",
298
+ "resolved_at": "2026-03-15T19:16:22+00:00",
299
+ "reopen_count": 3,
300
300
  "lang": "typescript",
301
301
  "zone": "production",
302
302
  "suppressed": false,
303
303
  "suppressed_at": null,
304
304
  "suppression_pattern": null,
305
- "wontfix_scan_count": 10,
305
+ "wontfix_scan_count": 13,
306
306
  "wontfix_snapshot": {
307
- "captured_at": "2026-03-15T05:09:03+00:00",
308
- "scan_count": 10,
307
+ "captured_at": "2026-03-15T19:16:22+00:00",
308
+ "scan_count": 13,
309
309
  "tier": 3,
310
310
  "confidence": "medium",
311
311
  "detail": {
@@ -315,8 +315,8 @@
315
315
  },
316
316
  "resolution_attestation": {
317
317
  "kind": "manual",
318
- "text": "I have actually reviewed this finding previously and confirmed it is intentional and I am not gaming the score by resolving without fixing.",
319
- "attested_at": "2026-03-15T05:09:03+00:00",
318
+ "text": "I have actually reviewed this finding previously and confirmed it is intentional or a false positive and I am not gaming the score by resolving without fixing.",
319
+ "attested_at": "2026-03-15T19:16:22+00:00",
320
320
  "scan_verified": false
321
321
  }
322
322
  },
@@ -366,18 +366,18 @@
366
366
  "status": "wontfix",
367
367
  "note": "Chronic reopener \u2014 already reviewed",
368
368
  "first_seen": "2026-03-14T23:49:59+00:00",
369
- "last_seen": "2026-03-15T05:08:48+00:00",
370
- "resolved_at": "2026-03-15T05:09:05+00:00",
371
- "reopen_count": 2,
369
+ "last_seen": "2026-03-15T19:12:32+00:00",
370
+ "resolved_at": "2026-03-15T19:16:23+00:00",
371
+ "reopen_count": 3,
372
372
  "lang": "typescript",
373
373
  "zone": "production",
374
374
  "suppressed": false,
375
375
  "suppressed_at": null,
376
376
  "suppression_pattern": null,
377
- "wontfix_scan_count": 10,
377
+ "wontfix_scan_count": 13,
378
378
  "wontfix_snapshot": {
379
- "captured_at": "2026-03-15T05:09:05+00:00",
380
- "scan_count": 10,
379
+ "captured_at": "2026-03-15T19:16:23+00:00",
380
+ "scan_count": 13,
381
381
  "tier": 3,
382
382
  "confidence": "medium",
383
383
  "detail": {
@@ -386,8 +386,8 @@
386
386
  },
387
387
  "resolution_attestation": {
388
388
  "kind": "manual",
389
- "text": "I have actually reviewed this finding previously and confirmed it is intentional and I am not gaming the score by resolving without fixing.",
390
- "attested_at": "2026-03-15T05:09:05+00:00",
389
+ "text": "I have actually reviewed this finding previously and confirmed it is intentional or a false positive and I am not gaming the score by resolving without fixing.",
390
+ "attested_at": "2026-03-15T19:16:23+00:00",
391
391
  "scan_verified": false
392
392
  }
393
393
  },
@@ -404,18 +404,18 @@
404
404
  "status": "wontfix",
405
405
  "note": "Chronic reopener \u2014 already reviewed",
406
406
  "first_seen": "2026-03-14T23:49:59+00:00",
407
- "last_seen": "2026-03-15T05:08:48+00:00",
408
- "resolved_at": "2026-03-15T05:09:10+00:00",
409
- "reopen_count": 2,
407
+ "last_seen": "2026-03-15T19:12:32+00:00",
408
+ "resolved_at": "2026-03-15T19:16:28+00:00",
409
+ "reopen_count": 3,
410
410
  "lang": "typescript",
411
411
  "zone": "config",
412
412
  "suppressed": false,
413
413
  "suppressed_at": null,
414
414
  "suppression_pattern": null,
415
- "wontfix_scan_count": 10,
415
+ "wontfix_scan_count": 13,
416
416
  "wontfix_snapshot": {
417
- "captured_at": "2026-03-15T05:09:10+00:00",
418
- "scan_count": 10,
417
+ "captured_at": "2026-03-15T19:16:28+00:00",
418
+ "scan_count": 13,
419
419
  "tier": 3,
420
420
  "confidence": "medium",
421
421
  "detail": {
@@ -424,8 +424,8 @@
424
424
  },
425
425
  "resolution_attestation": {
426
426
  "kind": "manual",
427
- "text": "I have actually reviewed this finding previously and confirmed it is intentional and I am not gaming the score by resolving without fixing.",
428
- "attested_at": "2026-03-15T05:09:10+00:00",
427
+ "text": "I have actually reviewed this finding previously and confirmed it is intentional or a false positive and I am not gaming the score by resolving without fixing.",
428
+ "attested_at": "2026-03-15T19:16:28+00:00",
429
429
  "scan_verified": false
430
430
  }
431
431
  },
@@ -515,18 +515,18 @@
515
515
  "status": "wontfix",
516
516
  "note": "Chronic reopener \u2014 already reviewed",
517
517
  "first_seen": "2026-03-14T23:49:59+00:00",
518
- "last_seen": "2026-03-15T05:08:48+00:00",
519
- "resolved_at": "2026-03-15T05:09:04+00:00",
520
- "reopen_count": 2,
518
+ "last_seen": "2026-03-15T19:12:32+00:00",
519
+ "resolved_at": "2026-03-15T19:16:23+00:00",
520
+ "reopen_count": 3,
521
521
  "lang": "typescript",
522
522
  "zone": "production",
523
523
  "suppressed": false,
524
524
  "suppressed_at": null,
525
525
  "suppression_pattern": null,
526
- "wontfix_scan_count": 10,
526
+ "wontfix_scan_count": 13,
527
527
  "wontfix_snapshot": {
528
- "captured_at": "2026-03-15T05:09:04+00:00",
529
- "scan_count": 10,
528
+ "captured_at": "2026-03-15T19:16:23+00:00",
529
+ "scan_count": 13,
530
530
  "tier": 3,
531
531
  "confidence": "medium",
532
532
  "detail": {
@@ -538,8 +538,8 @@
538
538
  },
539
539
  "resolution_attestation": {
540
540
  "kind": "manual",
541
- "text": "I have actually reviewed this finding previously and confirmed it is intentional and I am not gaming the score by resolving without fixing.",
542
- "attested_at": "2026-03-15T05:09:04+00:00",
541
+ "text": "I have actually reviewed this finding previously and confirmed it is intentional or a false positive and I am not gaming the score by resolving without fixing.",
542
+ "attested_at": "2026-03-15T19:16:23+00:00",
543
543
  "scan_verified": false
544
544
  }
545
545
  },
@@ -559,18 +559,18 @@
559
559
  "status": "wontfix",
560
560
  "note": "Chronic reopener \u2014 already reviewed",
561
561
  "first_seen": "2026-03-14T23:49:59+00:00",
562
- "last_seen": "2026-03-15T05:08:48+00:00",
563
- "resolved_at": "2026-03-15T05:09:07+00:00",
564
- "reopen_count": 2,
562
+ "last_seen": "2026-03-15T19:12:32+00:00",
563
+ "resolved_at": "2026-03-15T19:16:25+00:00",
564
+ "reopen_count": 3,
565
565
  "lang": "typescript",
566
566
  "zone": "production",
567
567
  "suppressed": false,
568
568
  "suppressed_at": null,
569
569
  "suppression_pattern": null,
570
- "wontfix_scan_count": 10,
570
+ "wontfix_scan_count": 13,
571
571
  "wontfix_snapshot": {
572
- "captured_at": "2026-03-15T05:09:07+00:00",
573
- "scan_count": 10,
572
+ "captured_at": "2026-03-15T19:16:25+00:00",
573
+ "scan_count": 13,
574
574
  "tier": 3,
575
575
  "confidence": "medium",
576
576
  "detail": {
@@ -582,8 +582,8 @@
582
582
  },
583
583
  "resolution_attestation": {
584
584
  "kind": "manual",
585
- "text": "I have actually reviewed this finding previously and confirmed it is intentional and I am not gaming the score by resolving without fixing.",
586
- "attested_at": "2026-03-15T05:09:07+00:00",
585
+ "text": "I have actually reviewed this finding previously and confirmed it is intentional or a false positive and I am not gaming the score by resolving without fixing.",
586
+ "attested_at": "2026-03-15T19:16:25+00:00",
587
587
  "scan_verified": false
588
588
  }
589
589
  },
@@ -634,18 +634,18 @@
634
634
  "status": "wontfix",
635
635
  "note": "Chronic reopener \u2014 already reviewed",
636
636
  "first_seen": "2026-03-14T23:49:59+00:00",
637
- "last_seen": "2026-03-15T05:08:48+00:00",
638
- "resolved_at": "2026-03-15T05:09:06+00:00",
639
- "reopen_count": 2,
637
+ "last_seen": "2026-03-15T19:12:32+00:00",
638
+ "resolved_at": "2026-03-15T19:16:24+00:00",
639
+ "reopen_count": 3,
640
640
  "lang": "typescript",
641
641
  "zone": "production",
642
642
  "suppressed": false,
643
643
  "suppressed_at": null,
644
644
  "suppression_pattern": null,
645
- "wontfix_scan_count": 10,
645
+ "wontfix_scan_count": 13,
646
646
  "wontfix_snapshot": {
647
- "captured_at": "2026-03-15T05:09:06+00:00",
648
- "scan_count": 10,
647
+ "captured_at": "2026-03-15T19:16:24+00:00",
648
+ "scan_count": 13,
649
649
  "tier": 3,
650
650
  "confidence": "medium",
651
651
  "detail": {
@@ -657,8 +657,8 @@
657
657
  },
658
658
  "resolution_attestation": {
659
659
  "kind": "manual",
660
- "text": "I have actually reviewed this finding previously and confirmed it is intentional and I am not gaming the score by resolving without fixing.",
661
- "attested_at": "2026-03-15T05:09:06+00:00",
660
+ "text": "I have actually reviewed this finding previously and confirmed it is intentional or a false positive and I am not gaming the score by resolving without fixing.",
661
+ "attested_at": "2026-03-15T19:16:24+00:00",
662
662
  "scan_verified": false
663
663
  }
664
664
  },
@@ -678,18 +678,18 @@
678
678
  "status": "wontfix",
679
679
  "note": "Chronic reopener \u2014 already reviewed",
680
680
  "first_seen": "2026-03-14T23:49:59+00:00",
681
- "last_seen": "2026-03-15T05:08:48+00:00",
682
- "resolved_at": "2026-03-15T05:09:09+00:00",
683
- "reopen_count": 2,
681
+ "last_seen": "2026-03-15T19:12:32+00:00",
682
+ "resolved_at": "2026-03-15T19:16:27+00:00",
683
+ "reopen_count": 3,
684
684
  "lang": "typescript",
685
685
  "zone": "production",
686
686
  "suppressed": false,
687
687
  "suppressed_at": null,
688
688
  "suppression_pattern": null,
689
- "wontfix_scan_count": 10,
689
+ "wontfix_scan_count": 13,
690
690
  "wontfix_snapshot": {
691
- "captured_at": "2026-03-15T05:09:09+00:00",
692
- "scan_count": 10,
691
+ "captured_at": "2026-03-15T19:16:27+00:00",
692
+ "scan_count": 13,
693
693
  "tier": 3,
694
694
  "confidence": "medium",
695
695
  "detail": {
@@ -701,8 +701,8 @@
701
701
  },
702
702
  "resolution_attestation": {
703
703
  "kind": "manual",
704
- "text": "I have actually reviewed this finding previously and confirmed it is intentional and I am not gaming the score by resolving without fixing.",
705
- "attested_at": "2026-03-15T05:09:09+00:00",
704
+ "text": "I have actually reviewed this finding previously and confirmed it is intentional or a false positive and I am not gaming the score by resolving without fixing.",
705
+ "attested_at": "2026-03-15T19:16:27+00:00",
706
706
  "scan_verified": false
707
707
  }
708
708
  },
@@ -753,18 +753,18 @@
753
753
  "status": "wontfix",
754
754
  "note": "Chronic reopener \u2014 already reviewed",
755
755
  "first_seen": "2026-03-14T23:49:59+00:00",
756
- "last_seen": "2026-03-15T05:08:48+00:00",
757
- "resolved_at": "2026-03-15T05:09:09+00:00",
758
- "reopen_count": 2,
756
+ "last_seen": "2026-03-15T19:12:32+00:00",
757
+ "resolved_at": "2026-03-15T19:16:27+00:00",
758
+ "reopen_count": 3,
759
759
  "lang": "typescript",
760
760
  "zone": "production",
761
761
  "suppressed": false,
762
762
  "suppressed_at": null,
763
763
  "suppression_pattern": null,
764
- "wontfix_scan_count": 10,
764
+ "wontfix_scan_count": 13,
765
765
  "wontfix_snapshot": {
766
- "captured_at": "2026-03-15T05:09:09+00:00",
767
- "scan_count": 10,
766
+ "captured_at": "2026-03-15T19:16:27+00:00",
767
+ "scan_count": 13,
768
768
  "tier": 3,
769
769
  "confidence": "medium",
770
770
  "detail": {
@@ -776,8 +776,8 @@
776
776
  },
777
777
  "resolution_attestation": {
778
778
  "kind": "manual",
779
- "text": "I have actually reviewed this finding previously and confirmed it is intentional and I am not gaming the score by resolving without fixing.",
780
- "attested_at": "2026-03-15T05:09:09+00:00",
779
+ "text": "I have actually reviewed this finding previously and confirmed it is intentional or a false positive and I am not gaming the score by resolving without fixing.",
780
+ "attested_at": "2026-03-15T19:16:27+00:00",
781
781
  "scan_verified": false
782
782
  }
783
783
  },
@@ -797,18 +797,18 @@
797
797
  "status": "wontfix",
798
798
  "note": "Chronic reopener \u2014 already reviewed",
799
799
  "first_seen": "2026-03-14T23:49:59+00:00",
800
- "last_seen": "2026-03-15T05:08:48+00:00",
801
- "resolved_at": "2026-03-15T05:09:07+00:00",
802
- "reopen_count": 2,
800
+ "last_seen": "2026-03-15T19:12:32+00:00",
801
+ "resolved_at": "2026-03-15T19:16:25+00:00",
802
+ "reopen_count": 3,
803
803
  "lang": "typescript",
804
804
  "zone": "production",
805
805
  "suppressed": false,
806
806
  "suppressed_at": null,
807
807
  "suppression_pattern": null,
808
- "wontfix_scan_count": 10,
808
+ "wontfix_scan_count": 13,
809
809
  "wontfix_snapshot": {
810
- "captured_at": "2026-03-15T05:09:07+00:00",
811
- "scan_count": 10,
810
+ "captured_at": "2026-03-15T19:16:25+00:00",
811
+ "scan_count": 13,
812
812
  "tier": 3,
813
813
  "confidence": "medium",
814
814
  "detail": {
@@ -820,8 +820,8 @@
820
820
  },
821
821
  "resolution_attestation": {
822
822
  "kind": "manual",
823
- "text": "I have actually reviewed this finding previously and confirmed it is intentional and I am not gaming the score by resolving without fixing.",
824
- "attested_at": "2026-03-15T05:09:07+00:00",
823
+ "text": "I have actually reviewed this finding previously and confirmed it is intentional or a false positive and I am not gaming the score by resolving without fixing.",
824
+ "attested_at": "2026-03-15T19:16:25+00:00",
825
825
  "scan_verified": false
826
826
  }
827
827
  },
@@ -841,18 +841,18 @@
841
841
  "status": "wontfix",
842
842
  "note": "Chronic reopener \u2014 already reviewed",
843
843
  "first_seen": "2026-03-14T23:49:59+00:00",
844
- "last_seen": "2026-03-15T05:08:48+00:00",
845
- "resolved_at": "2026-03-15T05:09:09+00:00",
846
- "reopen_count": 2,
844
+ "last_seen": "2026-03-15T19:12:32+00:00",
845
+ "resolved_at": "2026-03-15T19:16:26+00:00",
846
+ "reopen_count": 3,
847
847
  "lang": "typescript",
848
848
  "zone": "production",
849
849
  "suppressed": false,
850
850
  "suppressed_at": null,
851
851
  "suppression_pattern": null,
852
- "wontfix_scan_count": 10,
852
+ "wontfix_scan_count": 13,
853
853
  "wontfix_snapshot": {
854
- "captured_at": "2026-03-15T05:09:09+00:00",
855
- "scan_count": 10,
854
+ "captured_at": "2026-03-15T19:16:26+00:00",
855
+ "scan_count": 13,
856
856
  "tier": 3,
857
857
  "confidence": "medium",
858
858
  "detail": {
@@ -864,8 +864,8 @@
864
864
  },
865
865
  "resolution_attestation": {
866
866
  "kind": "manual",
867
- "text": "I have actually reviewed this finding previously and confirmed it is intentional and I am not gaming the score by resolving without fixing.",
868
- "attested_at": "2026-03-15T05:09:09+00:00",
867
+ "text": "I have actually reviewed this finding previously and confirmed it is intentional or a false positive and I am not gaming the score by resolving without fixing.",
868
+ "attested_at": "2026-03-15T19:16:26+00:00",
869
869
  "scan_verified": false
870
870
  }
871
871
  },
@@ -885,18 +885,18 @@
885
885
  "status": "wontfix",
886
886
  "note": "Chronic reopener \u2014 already reviewed",
887
887
  "first_seen": "2026-03-14T23:49:59+00:00",
888
- "last_seen": "2026-03-15T05:08:48+00:00",
889
- "resolved_at": "2026-03-15T05:09:08+00:00",
890
- "reopen_count": 2,
888
+ "last_seen": "2026-03-15T19:12:32+00:00",
889
+ "resolved_at": "2026-03-15T19:16:26+00:00",
890
+ "reopen_count": 3,
891
891
  "lang": "typescript",
892
892
  "zone": "production",
893
893
  "suppressed": false,
894
894
  "suppressed_at": null,
895
895
  "suppression_pattern": null,
896
- "wontfix_scan_count": 10,
896
+ "wontfix_scan_count": 13,
897
897
  "wontfix_snapshot": {
898
- "captured_at": "2026-03-15T05:09:08+00:00",
899
- "scan_count": 10,
898
+ "captured_at": "2026-03-15T19:16:26+00:00",
899
+ "scan_count": 13,
900
900
  "tier": 3,
901
901
  "confidence": "medium",
902
902
  "detail": {
@@ -908,8 +908,8 @@
908
908
  },
909
909
  "resolution_attestation": {
910
910
  "kind": "manual",
911
- "text": "I have actually reviewed this finding previously and confirmed it is intentional and I am not gaming the score by resolving without fixing.",
912
- "attested_at": "2026-03-15T05:09:08+00:00",
911
+ "text": "I have actually reviewed this finding previously and confirmed it is intentional or a false positive and I am not gaming the score by resolving without fixing.",
912
+ "attested_at": "2026-03-15T19:16:26+00:00",
913
913
  "scan_verified": false
914
914
  }
915
915
  },
@@ -929,18 +929,18 @@
929
929
  "status": "wontfix",
930
930
  "note": "Chronic reopener \u2014 already reviewed",
931
931
  "first_seen": "2026-03-14T23:49:59+00:00",
932
- "last_seen": "2026-03-15T05:08:48+00:00",
933
- "resolved_at": "2026-03-15T05:09:05+00:00",
934
- "reopen_count": 2,
932
+ "last_seen": "2026-03-15T19:12:32+00:00",
933
+ "resolved_at": "2026-03-15T19:16:23+00:00",
934
+ "reopen_count": 3,
935
935
  "lang": "typescript",
936
936
  "zone": "production",
937
937
  "suppressed": false,
938
938
  "suppressed_at": null,
939
939
  "suppression_pattern": null,
940
- "wontfix_scan_count": 10,
940
+ "wontfix_scan_count": 13,
941
941
  "wontfix_snapshot": {
942
- "captured_at": "2026-03-15T05:09:05+00:00",
943
- "scan_count": 10,
942
+ "captured_at": "2026-03-15T19:16:23+00:00",
943
+ "scan_count": 13,
944
944
  "tier": 3,
945
945
  "confidence": "high",
946
946
  "detail": {
@@ -952,8 +952,8 @@
952
952
  },
953
953
  "resolution_attestation": {
954
954
  "kind": "manual",
955
- "text": "I have actually reviewed this finding previously and confirmed it is intentional and I am not gaming the score by resolving without fixing.",
956
- "attested_at": "2026-03-15T05:09:05+00:00",
955
+ "text": "I have actually reviewed this finding previously and confirmed it is intentional or a false positive and I am not gaming the score by resolving without fixing.",
956
+ "attested_at": "2026-03-15T19:16:23+00:00",
957
957
  "scan_verified": false
958
958
  }
959
959
  },
@@ -1037,18 +1037,18 @@
1037
1037
  "status": "wontfix",
1038
1038
  "note": "Chronic reopener \u2014 already reviewed",
1039
1039
  "first_seen": "2026-03-14T23:49:59+00:00",
1040
- "last_seen": "2026-03-15T05:08:48+00:00",
1041
- "resolved_at": "2026-03-15T05:09:06+00:00",
1042
- "reopen_count": 2,
1040
+ "last_seen": "2026-03-15T19:12:32+00:00",
1041
+ "resolved_at": "2026-03-15T19:16:24+00:00",
1042
+ "reopen_count": 3,
1043
1043
  "lang": "typescript",
1044
1044
  "zone": "production",
1045
1045
  "suppressed": false,
1046
1046
  "suppressed_at": null,
1047
1047
  "suppression_pattern": null,
1048
- "wontfix_scan_count": 10,
1048
+ "wontfix_scan_count": 13,
1049
1049
  "wontfix_snapshot": {
1050
- "captured_at": "2026-03-15T05:09:06+00:00",
1051
- "scan_count": 10,
1050
+ "captured_at": "2026-03-15T19:16:24+00:00",
1051
+ "scan_count": 13,
1052
1052
  "tier": 3,
1053
1053
  "confidence": "medium",
1054
1054
  "detail": {
@@ -1062,8 +1062,8 @@
1062
1062
  },
1063
1063
  "resolution_attestation": {
1064
1064
  "kind": "manual",
1065
- "text": "I have actually reviewed this finding previously and confirmed it is intentional and I am not gaming the score by resolving without fixing.",
1066
- "attested_at": "2026-03-15T05:09:06+00:00",
1065
+ "text": "I have actually reviewed this finding previously and confirmed it is intentional or a false positive and I am not gaming the score by resolving without fixing.",
1066
+ "attested_at": "2026-03-15T19:16:24+00:00",
1067
1067
  "scan_verified": false
1068
1068
  }
1069
1069
  },
@@ -1085,18 +1085,18 @@
1085
1085
  "status": "wontfix",
1086
1086
  "note": "Chronic reopener \u2014 already reviewed",
1087
1087
  "first_seen": "2026-03-14T23:49:59+00:00",
1088
- "last_seen": "2026-03-15T05:08:48+00:00",
1089
- "resolved_at": "2026-03-15T05:09:06+00:00",
1090
- "reopen_count": 2,
1088
+ "last_seen": "2026-03-15T19:12:32+00:00",
1089
+ "resolved_at": "2026-03-15T19:16:25+00:00",
1090
+ "reopen_count": 3,
1091
1091
  "lang": "typescript",
1092
1092
  "zone": "production",
1093
1093
  "suppressed": false,
1094
1094
  "suppressed_at": null,
1095
1095
  "suppression_pattern": null,
1096
- "wontfix_scan_count": 10,
1096
+ "wontfix_scan_count": 13,
1097
1097
  "wontfix_snapshot": {
1098
- "captured_at": "2026-03-15T05:09:06+00:00",
1099
- "scan_count": 10,
1098
+ "captured_at": "2026-03-15T19:16:25+00:00",
1099
+ "scan_count": 13,
1100
1100
  "tier": 3,
1101
1101
  "confidence": "medium",
1102
1102
  "detail": {
@@ -1110,8 +1110,8 @@
1110
1110
  },
1111
1111
  "resolution_attestation": {
1112
1112
  "kind": "manual",
1113
- "text": "I have actually reviewed this finding previously and confirmed it is intentional and I am not gaming the score by resolving without fixing.",
1114
- "attested_at": "2026-03-15T05:09:06+00:00",
1113
+ "text": "I have actually reviewed this finding previously and confirmed it is intentional or a false positive and I am not gaming the score by resolving without fixing.",
1114
+ "attested_at": "2026-03-15T19:16:25+00:00",
1115
1115
  "scan_verified": false
1116
1116
  }
1117
1117
  },
@@ -1133,18 +1133,18 @@
1133
1133
  "status": "wontfix",
1134
1134
  "note": "Chronic reopener \u2014 already reviewed",
1135
1135
  "first_seen": "2026-03-14T23:49:59+00:00",
1136
- "last_seen": "2026-03-15T05:08:48+00:00",
1137
- "resolved_at": "2026-03-15T05:09:07+00:00",
1138
- "reopen_count": 2,
1136
+ "last_seen": "2026-03-15T19:12:32+00:00",
1137
+ "resolved_at": "2026-03-15T19:16:25+00:00",
1138
+ "reopen_count": 3,
1139
1139
  "lang": "typescript",
1140
1140
  "zone": "production",
1141
1141
  "suppressed": false,
1142
1142
  "suppressed_at": null,
1143
1143
  "suppression_pattern": null,
1144
- "wontfix_scan_count": 10,
1144
+ "wontfix_scan_count": 13,
1145
1145
  "wontfix_snapshot": {
1146
- "captured_at": "2026-03-15T05:09:07+00:00",
1147
- "scan_count": 10,
1146
+ "captured_at": "2026-03-15T19:16:25+00:00",
1147
+ "scan_count": 13,
1148
1148
  "tier": 3,
1149
1149
  "confidence": "medium",
1150
1150
  "detail": {
@@ -1158,8 +1158,8 @@
1158
1158
  },
1159
1159
  "resolution_attestation": {
1160
1160
  "kind": "manual",
1161
- "text": "I have actually reviewed this finding previously and confirmed it is intentional and I am not gaming the score by resolving without fixing.",
1162
- "attested_at": "2026-03-15T05:09:07+00:00",
1161
+ "text": "I have actually reviewed this finding previously and confirmed it is intentional or a false positive and I am not gaming the score by resolving without fixing.",
1162
+ "attested_at": "2026-03-15T19:16:25+00:00",
1163
1163
  "scan_verified": false
1164
1164
  }
1165
1165
  },
@@ -1181,18 +1181,18 @@
1181
1181
  "status": "wontfix",
1182
1182
  "note": "Chronic reopener \u2014 already reviewed",
1183
1183
  "first_seen": "2026-03-14T23:49:59+00:00",
1184
- "last_seen": "2026-03-15T05:08:48+00:00",
1185
- "resolved_at": "2026-03-15T05:09:09+00:00",
1186
- "reopen_count": 2,
1184
+ "last_seen": "2026-03-15T19:12:32+00:00",
1185
+ "resolved_at": "2026-03-15T19:16:27+00:00",
1186
+ "reopen_count": 3,
1187
1187
  "lang": "typescript",
1188
1188
  "zone": "production",
1189
1189
  "suppressed": false,
1190
1190
  "suppressed_at": null,
1191
1191
  "suppression_pattern": null,
1192
- "wontfix_scan_count": 10,
1192
+ "wontfix_scan_count": 13,
1193
1193
  "wontfix_snapshot": {
1194
- "captured_at": "2026-03-15T05:09:09+00:00",
1195
- "scan_count": 10,
1194
+ "captured_at": "2026-03-15T19:16:27+00:00",
1195
+ "scan_count": 13,
1196
1196
  "tier": 3,
1197
1197
  "confidence": "medium",
1198
1198
  "detail": {
@@ -1206,8 +1206,8 @@
1206
1206
  },
1207
1207
  "resolution_attestation": {
1208
1208
  "kind": "manual",
1209
- "text": "I have actually reviewed this finding previously and confirmed it is intentional and I am not gaming the score by resolving without fixing.",
1210
- "attested_at": "2026-03-15T05:09:09+00:00",
1209
+ "text": "I have actually reviewed this finding previously and confirmed it is intentional or a false positive and I am not gaming the score by resolving without fixing.",
1210
+ "attested_at": "2026-03-15T19:16:27+00:00",
1211
1211
  "scan_verified": false
1212
1212
  }
1213
1213
  },
@@ -1229,18 +1229,18 @@
1229
1229
  "status": "wontfix",
1230
1230
  "note": "Chronic reopener \u2014 already reviewed",
1231
1231
  "first_seen": "2026-03-14T23:49:59+00:00",
1232
- "last_seen": "2026-03-15T05:08:48+00:00",
1233
- "resolved_at": "2026-03-15T05:09:04+00:00",
1234
- "reopen_count": 2,
1232
+ "last_seen": "2026-03-15T19:12:32+00:00",
1233
+ "resolved_at": "2026-03-15T19:16:23+00:00",
1234
+ "reopen_count": 3,
1235
1235
  "lang": "typescript",
1236
1236
  "zone": "production",
1237
1237
  "suppressed": false,
1238
1238
  "suppressed_at": null,
1239
1239
  "suppression_pattern": null,
1240
- "wontfix_scan_count": 10,
1240
+ "wontfix_scan_count": 13,
1241
1241
  "wontfix_snapshot": {
1242
- "captured_at": "2026-03-15T05:09:04+00:00",
1243
- "scan_count": 10,
1242
+ "captured_at": "2026-03-15T19:16:23+00:00",
1243
+ "scan_count": 13,
1244
1244
  "tier": 3,
1245
1245
  "confidence": "medium",
1246
1246
  "detail": {
@@ -1254,8 +1254,8 @@
1254
1254
  },
1255
1255
  "resolution_attestation": {
1256
1256
  "kind": "manual",
1257
- "text": "I have actually reviewed this finding previously and confirmed it is intentional and I am not gaming the score by resolving without fixing.",
1258
- "attested_at": "2026-03-15T05:09:04+00:00",
1257
+ "text": "I have actually reviewed this finding previously and confirmed it is intentional or a false positive and I am not gaming the score by resolving without fixing.",
1258
+ "attested_at": "2026-03-15T19:16:23+00:00",
1259
1259
  "scan_verified": false
1260
1260
  }
1261
1261
  },
@@ -1327,18 +1327,18 @@
1327
1327
  "status": "wontfix",
1328
1328
  "note": "Already reviewed \u2014 intentional or false positive",
1329
1329
  "first_seen": "2026-03-14T23:49:59+00:00",
1330
- "last_seen": "2026-03-15T05:08:48+00:00",
1331
- "resolved_at": "2026-03-15T05:10:01+00:00",
1332
- "reopen_count": 2,
1330
+ "last_seen": "2026-03-15T19:12:32+00:00",
1331
+ "resolved_at": "2026-03-15T19:17:00+00:00",
1332
+ "reopen_count": 3,
1333
1333
  "lang": "typescript",
1334
1334
  "zone": "test",
1335
1335
  "suppressed": false,
1336
1336
  "suppressed_at": null,
1337
1337
  "suppression_pattern": null,
1338
- "wontfix_scan_count": 10,
1338
+ "wontfix_scan_count": 13,
1339
1339
  "wontfix_snapshot": {
1340
- "captured_at": "2026-03-15T05:10:01+00:00",
1341
- "scan_count": 10,
1340
+ "captured_at": "2026-03-15T19:17:00+00:00",
1341
+ "scan_count": 13,
1342
1342
  "tier": 3,
1343
1343
  "confidence": "low",
1344
1344
  "detail": {
@@ -1354,8 +1354,8 @@
1354
1354
  },
1355
1355
  "resolution_attestation": {
1356
1356
  "kind": "manual",
1357
- "text": "I have actually reviewed this finding and confirmed it is either intentional or a false positive and I am not gaming the score by resolving without fixing.",
1358
- "attested_at": "2026-03-15T05:10:01+00:00",
1357
+ "text": "I have actually reviewed this finding and confirmed it is intentional or a false positive and I am not gaming the score by resolving without fixing.",
1358
+ "attested_at": "2026-03-15T19:17:00+00:00",
1359
1359
  "scan_verified": false
1360
1360
  }
1361
1361
  },
@@ -1425,18 +1425,18 @@
1425
1425
  "status": "wontfix",
1426
1426
  "note": "Chronic reopener \u2014 already reviewed",
1427
1427
  "first_seen": "2026-03-14T23:49:59+00:00",
1428
- "last_seen": "2026-03-15T05:08:48+00:00",
1429
- "resolved_at": "2026-03-15T05:09:04+00:00",
1430
- "reopen_count": 2,
1428
+ "last_seen": "2026-03-15T19:12:32+00:00",
1429
+ "resolved_at": "2026-03-15T19:16:22+00:00",
1430
+ "reopen_count": 3,
1431
1431
  "lang": "typescript",
1432
1432
  "zone": "production",
1433
1433
  "suppressed": false,
1434
1434
  "suppressed_at": null,
1435
1435
  "suppression_pattern": null,
1436
- "wontfix_scan_count": 10,
1436
+ "wontfix_scan_count": 13,
1437
1437
  "wontfix_snapshot": {
1438
- "captured_at": "2026-03-15T05:09:04+00:00",
1439
- "scan_count": 10,
1438
+ "captured_at": "2026-03-15T19:16:22+00:00",
1439
+ "scan_count": 13,
1440
1440
  "tier": 3,
1441
1441
  "confidence": "medium",
1442
1442
  "detail": {
@@ -1450,8 +1450,8 @@
1450
1450
  },
1451
1451
  "resolution_attestation": {
1452
1452
  "kind": "manual",
1453
- "text": "I have actually reviewed this finding previously and confirmed it is intentional and I am not gaming the score by resolving without fixing.",
1454
- "attested_at": "2026-03-15T05:09:04+00:00",
1453
+ "text": "I have actually reviewed this finding previously and confirmed it is intentional or a false positive and I am not gaming the score by resolving without fixing.",
1454
+ "attested_at": "2026-03-15T19:16:22+00:00",
1455
1455
  "scan_verified": false
1456
1456
  }
1457
1457
  },
@@ -1474,20 +1474,20 @@
1474
1474
  ]
1475
1475
  },
1476
1476
  "status": "wontfix",
1477
- "note": "Chronic reopener \u2014 already reviewed",
1477
+ "note": "Already reviewed \u2014 intentional or false positive",
1478
1478
  "first_seen": "2026-03-14T23:49:59+00:00",
1479
- "last_seen": "2026-03-15T05:08:48+00:00",
1480
- "resolved_at": "2026-03-15T05:09:07+00:00",
1481
- "reopen_count": 2,
1479
+ "last_seen": "2026-03-15T19:12:32+00:00",
1480
+ "resolved_at": "2026-03-15T19:17:00+00:00",
1481
+ "reopen_count": 3,
1482
1482
  "lang": "typescript",
1483
1483
  "zone": "test",
1484
1484
  "suppressed": false,
1485
1485
  "suppressed_at": null,
1486
1486
  "suppression_pattern": null,
1487
- "wontfix_scan_count": 10,
1487
+ "wontfix_scan_count": 13,
1488
1488
  "wontfix_snapshot": {
1489
- "captured_at": "2026-03-15T05:09:07+00:00",
1490
- "scan_count": 10,
1489
+ "captured_at": "2026-03-15T19:17:00+00:00",
1490
+ "scan_count": 13,
1491
1491
  "tier": 3,
1492
1492
  "confidence": "low",
1493
1493
  "detail": {
@@ -1504,8 +1504,8 @@
1504
1504
  },
1505
1505
  "resolution_attestation": {
1506
1506
  "kind": "manual",
1507
- "text": "I have actually reviewed this finding previously and confirmed it is intentional and I am not gaming the score by resolving without fixing.",
1508
- "attested_at": "2026-03-15T05:09:07+00:00",
1507
+ "text": "I have actually reviewed this finding and confirmed it is intentional or a false positive and I am not gaming the score by resolving without fixing.",
1508
+ "attested_at": "2026-03-15T19:17:00+00:00",
1509
1509
  "scan_verified": false
1510
1510
  }
1511
1511
  },
@@ -1527,18 +1527,18 @@
1527
1527
  "status": "wontfix",
1528
1528
  "note": "Chronic reopener \u2014 already reviewed",
1529
1529
  "first_seen": "2026-03-14T23:49:59+00:00",
1530
- "last_seen": "2026-03-15T05:08:48+00:00",
1531
- "resolved_at": "2026-03-15T05:09:05+00:00",
1532
- "reopen_count": 2,
1530
+ "last_seen": "2026-03-15T19:12:32+00:00",
1531
+ "resolved_at": "2026-03-15T19:16:24+00:00",
1532
+ "reopen_count": 3,
1533
1533
  "lang": "typescript",
1534
1534
  "zone": "production",
1535
1535
  "suppressed": false,
1536
1536
  "suppressed_at": null,
1537
1537
  "suppression_pattern": null,
1538
- "wontfix_scan_count": 10,
1538
+ "wontfix_scan_count": 13,
1539
1539
  "wontfix_snapshot": {
1540
- "captured_at": "2026-03-15T05:09:05+00:00",
1541
- "scan_count": 10,
1540
+ "captured_at": "2026-03-15T19:16:24+00:00",
1541
+ "scan_count": 13,
1542
1542
  "tier": 3,
1543
1543
  "confidence": "medium",
1544
1544
  "detail": {
@@ -1552,8 +1552,8 @@
1552
1552
  },
1553
1553
  "resolution_attestation": {
1554
1554
  "kind": "manual",
1555
- "text": "I have actually reviewed this finding previously and confirmed it is intentional and I am not gaming the score by resolving without fixing.",
1556
- "attested_at": "2026-03-15T05:09:05+00:00",
1555
+ "text": "I have actually reviewed this finding previously and confirmed it is intentional or a false positive and I am not gaming the score by resolving without fixing.",
1556
+ "attested_at": "2026-03-15T19:16:24+00:00",
1557
1557
  "scan_verified": false
1558
1558
  }
1559
1559
  },
@@ -1623,18 +1623,18 @@
1623
1623
  "status": "wontfix",
1624
1624
  "note": "Chronic reopener \u2014 already reviewed",
1625
1625
  "first_seen": "2026-03-14T23:49:59+00:00",
1626
- "last_seen": "2026-03-15T05:08:48+00:00",
1627
- "resolved_at": "2026-03-15T05:09:10+00:00",
1628
- "reopen_count": 2,
1626
+ "last_seen": "2026-03-15T19:12:32+00:00",
1627
+ "resolved_at": "2026-03-15T19:16:28+00:00",
1628
+ "reopen_count": 3,
1629
1629
  "lang": "typescript",
1630
1630
  "zone": "test",
1631
1631
  "suppressed": false,
1632
1632
  "suppressed_at": null,
1633
1633
  "suppression_pattern": null,
1634
- "wontfix_scan_count": 10,
1634
+ "wontfix_scan_count": 13,
1635
1635
  "wontfix_snapshot": {
1636
- "captured_at": "2026-03-15T05:09:10+00:00",
1637
- "scan_count": 10,
1636
+ "captured_at": "2026-03-15T19:16:28+00:00",
1637
+ "scan_count": 13,
1638
1638
  "tier": 3,
1639
1639
  "confidence": "low",
1640
1640
  "detail": {
@@ -1648,8 +1648,8 @@
1648
1648
  },
1649
1649
  "resolution_attestation": {
1650
1650
  "kind": "manual",
1651
- "text": "I have actually reviewed this finding previously and confirmed it is intentional and I am not gaming the score by resolving without fixing.",
1652
- "attested_at": "2026-03-15T05:09:10+00:00",
1651
+ "text": "I have actually reviewed this finding previously and confirmed it is intentional or a false positive and I am not gaming the score by resolving without fixing.",
1652
+ "attested_at": "2026-03-15T19:16:28+00:00",
1653
1653
  "scan_verified": false
1654
1654
  }
1655
1655
  },
@@ -1813,18 +1813,18 @@
1813
1813
  "status": "wontfix",
1814
1814
  "note": "Chronic reopener \u2014 already reviewed",
1815
1815
  "first_seen": "2026-03-14T23:49:59+00:00",
1816
- "last_seen": "2026-03-15T05:08:48+00:00",
1817
- "resolved_at": "2026-03-15T05:09:08+00:00",
1818
- "reopen_count": 2,
1816
+ "last_seen": "2026-03-15T19:12:32+00:00",
1817
+ "resolved_at": "2026-03-15T19:16:26+00:00",
1818
+ "reopen_count": 3,
1819
1819
  "lang": "typescript",
1820
1820
  "zone": "production",
1821
1821
  "suppressed": false,
1822
1822
  "suppressed_at": null,
1823
1823
  "suppression_pattern": null,
1824
- "wontfix_scan_count": 10,
1824
+ "wontfix_scan_count": 13,
1825
1825
  "wontfix_snapshot": {
1826
- "captured_at": "2026-03-15T05:09:08+00:00",
1827
- "scan_count": 10,
1826
+ "captured_at": "2026-03-15T19:16:26+00:00",
1827
+ "scan_count": 13,
1828
1828
  "tier": 3,
1829
1829
  "confidence": "low",
1830
1830
  "detail": {
@@ -1838,8 +1838,8 @@
1838
1838
  },
1839
1839
  "resolution_attestation": {
1840
1840
  "kind": "manual",
1841
- "text": "I have actually reviewed this finding previously and confirmed it is intentional and I am not gaming the score by resolving without fixing.",
1842
- "attested_at": "2026-03-15T05:09:08+00:00",
1841
+ "text": "I have actually reviewed this finding previously and confirmed it is intentional or a false positive and I am not gaming the score by resolving without fixing.",
1842
+ "attested_at": "2026-03-15T19:16:26+00:00",
1843
1843
  "scan_verified": false
1844
1844
  }
1845
1845
  },
@@ -3491,18 +3491,18 @@
3491
3491
  "status": "wontfix",
3492
3492
  "note": "Already reviewed \u2014 intentional or false positive",
3493
3493
  "first_seen": "2026-03-15T00:09:54+00:00",
3494
- "last_seen": "2026-03-15T05:08:48+00:00",
3495
- "resolved_at": "2026-03-15T05:10:00+00:00",
3496
- "reopen_count": 1,
3494
+ "last_seen": "2026-03-15T19:12:32+00:00",
3495
+ "resolved_at": "2026-03-15T19:17:00+00:00",
3496
+ "reopen_count": 2,
3497
3497
  "lang": "typescript",
3498
3498
  "zone": "test",
3499
3499
  "suppressed": false,
3500
3500
  "suppressed_at": null,
3501
3501
  "suppression_pattern": null,
3502
- "wontfix_scan_count": 10,
3502
+ "wontfix_scan_count": 13,
3503
3503
  "wontfix_snapshot": {
3504
- "captured_at": "2026-03-15T05:10:00+00:00",
3505
- "scan_count": 10,
3504
+ "captured_at": "2026-03-15T19:17:00+00:00",
3505
+ "scan_count": 13,
3506
3506
  "tier": 3,
3507
3507
  "confidence": "low",
3508
3508
  "detail": {
@@ -3519,8 +3519,8 @@
3519
3519
  },
3520
3520
  "resolution_attestation": {
3521
3521
  "kind": "manual",
3522
- "text": "I have actually reviewed this finding and confirmed it is either intentional or a false positive and I am not gaming the score by resolving without fixing.",
3523
- "attested_at": "2026-03-15T05:10:00+00:00",
3522
+ "text": "I have actually reviewed this finding and confirmed it is intentional or a false positive and I am not gaming the score by resolving without fixing.",
3523
+ "attested_at": "2026-03-15T19:17:00+00:00",
3524
3524
  "scan_verified": false
3525
3525
  }
3526
3526
  },
@@ -3545,18 +3545,18 @@
3545
3545
  "status": "wontfix",
3546
3546
  "note": "Already reviewed \u2014 intentional or false positive",
3547
3547
  "first_seen": "2026-03-15T00:09:54+00:00",
3548
- "last_seen": "2026-03-15T05:08:48+00:00",
3549
- "resolved_at": "2026-03-15T05:09:58+00:00",
3550
- "reopen_count": 1,
3548
+ "last_seen": "2026-03-15T19:12:32+00:00",
3549
+ "resolved_at": "2026-03-15T19:17:00+00:00",
3550
+ "reopen_count": 2,
3551
3551
  "lang": "typescript",
3552
3552
  "zone": "test",
3553
3553
  "suppressed": false,
3554
3554
  "suppressed_at": null,
3555
3555
  "suppression_pattern": null,
3556
- "wontfix_scan_count": 10,
3556
+ "wontfix_scan_count": 13,
3557
3557
  "wontfix_snapshot": {
3558
- "captured_at": "2026-03-15T05:09:58+00:00",
3559
- "scan_count": 10,
3558
+ "captured_at": "2026-03-15T19:17:00+00:00",
3559
+ "scan_count": 13,
3560
3560
  "tier": 3,
3561
3561
  "confidence": "low",
3562
3562
  "detail": {
@@ -3573,8 +3573,8 @@
3573
3573
  },
3574
3574
  "resolution_attestation": {
3575
3575
  "kind": "manual",
3576
- "text": "I have actually reviewed this finding and confirmed it is either intentional or a false positive and I am not gaming the score by resolving without fixing.",
3577
- "attested_at": "2026-03-15T05:09:58+00:00",
3576
+ "text": "I have actually reviewed this finding and confirmed it is intentional or a false positive and I am not gaming the score by resolving without fixing.",
3577
+ "attested_at": "2026-03-15T19:17:00+00:00",
3578
3578
  "scan_verified": false
3579
3579
  }
3580
3580
  },
@@ -3596,18 +3596,18 @@
3596
3596
  "status": "wontfix",
3597
3597
  "note": "Already reviewed \u2014 intentional or false positive",
3598
3598
  "first_seen": "2026-03-15T00:09:54+00:00",
3599
- "last_seen": "2026-03-15T05:08:48+00:00",
3600
- "resolved_at": "2026-03-15T05:09:58+00:00",
3601
- "reopen_count": 1,
3599
+ "last_seen": "2026-03-15T19:12:32+00:00",
3600
+ "resolved_at": "2026-03-15T19:17:01+00:00",
3601
+ "reopen_count": 2,
3602
3602
  "lang": "typescript",
3603
3603
  "zone": "test",
3604
3604
  "suppressed": false,
3605
3605
  "suppressed_at": null,
3606
3606
  "suppression_pattern": null,
3607
- "wontfix_scan_count": 10,
3607
+ "wontfix_scan_count": 13,
3608
3608
  "wontfix_snapshot": {
3609
- "captured_at": "2026-03-15T05:09:58+00:00",
3610
- "scan_count": 10,
3609
+ "captured_at": "2026-03-15T19:17:01+00:00",
3610
+ "scan_count": 13,
3611
3611
  "tier": 3,
3612
3612
  "confidence": "low",
3613
3613
  "detail": {
@@ -3621,8 +3621,8 @@
3621
3621
  },
3622
3622
  "resolution_attestation": {
3623
3623
  "kind": "manual",
3624
- "text": "I have actually reviewed this finding and confirmed it is either intentional or a false positive and I am not gaming the score by resolving without fixing.",
3625
- "attested_at": "2026-03-15T05:09:58+00:00",
3624
+ "text": "I have actually reviewed this finding and confirmed it is intentional or a false positive and I am not gaming the score by resolving without fixing.",
3625
+ "attested_at": "2026-03-15T19:17:01+00:00",
3626
3626
  "scan_verified": false
3627
3627
  }
3628
3628
  },
@@ -3642,20 +3642,20 @@
3642
3642
  ]
3643
3643
  },
3644
3644
  "status": "wontfix",
3645
- "note": "Already reviewed \u2014 intentional or false positive",
3645
+ "note": "Chronic reopener \u2014 already reviewed",
3646
3646
  "first_seen": "2026-03-15T00:09:54+00:00",
3647
- "last_seen": "2026-03-15T05:00:35+00:00",
3648
- "resolved_at": "2026-03-15T05:09:59+00:00",
3649
- "reopen_count": 1,
3647
+ "last_seen": "2026-03-15T19:12:32+00:00",
3648
+ "resolved_at": "2026-03-15T19:16:26+00:00",
3649
+ "reopen_count": 2,
3650
3650
  "lang": "typescript",
3651
3651
  "zone": "production",
3652
3652
  "suppressed": false,
3653
3653
  "suppressed_at": null,
3654
3654
  "suppression_pattern": null,
3655
- "wontfix_scan_count": 10,
3655
+ "wontfix_scan_count": 13,
3656
3656
  "wontfix_snapshot": {
3657
- "captured_at": "2026-03-15T05:09:59+00:00",
3658
- "scan_count": 10,
3657
+ "captured_at": "2026-03-15T19:16:26+00:00",
3658
+ "scan_count": 13,
3659
3659
  "tier": 3,
3660
3660
  "confidence": "low",
3661
3661
  "detail": {
@@ -3669,8 +3669,8 @@
3669
3669
  },
3670
3670
  "resolution_attestation": {
3671
3671
  "kind": "manual",
3672
- "text": "I have actually reviewed this finding and confirmed it is either intentional or a false positive and I am not gaming the score by resolving without fixing.",
3673
- "attested_at": "2026-03-15T05:09:59+00:00",
3672
+ "text": "I have actually reviewed this finding previously and confirmed it is intentional or a false positive and I am not gaming the score by resolving without fixing.",
3673
+ "attested_at": "2026-03-15T19:16:26+00:00",
3674
3674
  "scan_verified": false
3675
3675
  }
3676
3676
  },
@@ -3721,18 +3721,18 @@
3721
3721
  "status": "wontfix",
3722
3722
  "note": "Already reviewed \u2014 intentional or false positive",
3723
3723
  "first_seen": "2026-03-15T00:23:56+00:00",
3724
- "last_seen": "2026-03-15T05:08:48+00:00",
3725
- "resolved_at": "2026-03-15T05:10:00+00:00",
3726
- "reopen_count": 1,
3724
+ "last_seen": "2026-03-15T19:12:32+00:00",
3725
+ "resolved_at": "2026-03-15T19:17:01+00:00",
3726
+ "reopen_count": 2,
3727
3727
  "lang": "typescript",
3728
3728
  "zone": "test",
3729
3729
  "suppressed": false,
3730
3730
  "suppressed_at": null,
3731
3731
  "suppression_pattern": null,
3732
- "wontfix_scan_count": 10,
3732
+ "wontfix_scan_count": 13,
3733
3733
  "wontfix_snapshot": {
3734
- "captured_at": "2026-03-15T05:10:00+00:00",
3735
- "scan_count": 10,
3734
+ "captured_at": "2026-03-15T19:17:01+00:00",
3735
+ "scan_count": 13,
3736
3736
  "tier": 3,
3737
3737
  "confidence": "low",
3738
3738
  "detail": {
@@ -3746,8 +3746,8 @@
3746
3746
  },
3747
3747
  "resolution_attestation": {
3748
3748
  "kind": "manual",
3749
- "text": "I have actually reviewed this finding and confirmed it is either intentional or a false positive and I am not gaming the score by resolving without fixing.",
3750
- "attested_at": "2026-03-15T05:10:00+00:00",
3749
+ "text": "I have actually reviewed this finding and confirmed it is intentional or a false positive and I am not gaming the score by resolving without fixing.",
3750
+ "attested_at": "2026-03-15T19:17:01+00:00",
3751
3751
  "scan_verified": false
3752
3752
  }
3753
3753
  },
@@ -4762,24 +4762,18 @@
4762
4762
  "status": "wontfix",
4763
4763
  "note": "Already reviewed \u2014 intentional or false positive",
4764
4764
  "first_seen": "2026-03-15T05:00:32+00:00",
4765
- "last_seen": "2026-03-15T05:08:48+00:00",
4766
- "resolved_at": "2026-03-15T05:09:59+00:00",
4767
- "reopen_count": 0,
4765
+ "last_seen": "2026-03-15T19:12:32+00:00",
4766
+ "resolved_at": "2026-03-15T19:16:59+00:00",
4767
+ "reopen_count": 1,
4768
4768
  "lang": "typescript",
4769
4769
  "zone": "production",
4770
4770
  "suppressed": false,
4771
4771
  "suppressed_at": null,
4772
4772
  "suppression_pattern": null,
4773
- "resolution_attestation": {
4774
- "kind": "manual",
4775
- "text": "I have actually reviewed this finding and confirmed it is either intentional or a false positive and I am not gaming the score by resolving without fixing.",
4776
- "attested_at": "2026-03-15T05:09:59+00:00",
4777
- "scan_verified": false
4778
- },
4779
- "wontfix_scan_count": 10,
4773
+ "wontfix_scan_count": 13,
4780
4774
  "wontfix_snapshot": {
4781
- "captured_at": "2026-03-15T05:09:59+00:00",
4782
- "scan_count": 10,
4775
+ "captured_at": "2026-03-15T19:16:59+00:00",
4776
+ "scan_count": 13,
4783
4777
  "tier": 3,
4784
4778
  "confidence": "medium",
4785
4779
  "detail": {
@@ -4790,6 +4784,12 @@
4790
4784
  40
4791
4785
  ]
4792
4786
  }
4787
+ },
4788
+ "resolution_attestation": {
4789
+ "kind": "manual",
4790
+ "text": "I have actually reviewed this finding and confirmed it is intentional or a false positive and I am not gaming the score by resolving without fixing.",
4791
+ "attested_at": "2026-03-15T19:16:59+00:00",
4792
+ "scan_verified": false
4793
4793
  }
4794
4794
  },
4795
4795
  "boilerplate_duplication::src/formats/anthropic/serialize.ts::28e424affd5b1856": {
@@ -4820,26 +4820,20 @@
4820
4820
  ]
4821
4821
  },
4822
4822
  "status": "wontfix",
4823
- "note": "serializeError functions return format-specific shapes \u2014 cannot be shared",
4823
+ "note": "Already reviewed \u2014 intentional or false positive",
4824
4824
  "first_seen": "2026-03-15T05:00:35+00:00",
4825
- "last_seen": "2026-03-15T05:08:48+00:00",
4826
- "resolved_at": "2026-03-15T05:10:22+00:00",
4827
- "reopen_count": 0,
4825
+ "last_seen": "2026-03-15T19:12:32+00:00",
4826
+ "resolved_at": "2026-03-15T19:16:59+00:00",
4827
+ "reopen_count": 1,
4828
4828
  "lang": "typescript",
4829
4829
  "zone": "production",
4830
4830
  "suppressed": false,
4831
4831
  "suppressed_at": null,
4832
4832
  "suppression_pattern": null,
4833
- "resolution_attestation": {
4834
- "kind": "manual",
4835
- "text": "I have actually reviewed both serializeError functions and confirmed they produce different JSON structures and I am not gaming the score by resolving without fixing.",
4836
- "attested_at": "2026-03-15T05:10:22+00:00",
4837
- "scan_verified": false
4838
- },
4839
- "wontfix_scan_count": 10,
4833
+ "wontfix_scan_count": 13,
4840
4834
  "wontfix_snapshot": {
4841
- "captured_at": "2026-03-15T05:10:22+00:00",
4842
- "scan_count": 10,
4835
+ "captured_at": "2026-03-15T19:16:59+00:00",
4836
+ "scan_count": 13,
4843
4837
  "tier": 3,
4844
4838
  "confidence": "medium",
4845
4839
  "detail": {
@@ -4862,191 +4856,1549 @@
4862
4856
  "}"
4863
4857
  ]
4864
4858
  }
4865
- }
4866
- }
4867
- },
4868
- "scan_coverage": {
4869
- "typescript": {
4870
- "status": "full",
4871
- "confidence": 1.0,
4872
- "detectors": {
4873
- "security": {
4874
- "detector": "security",
4875
- "status": "full",
4876
- "confidence": 1.0,
4877
- "summary": "Security coverage complete for enabled detectors.",
4878
- "impact": "",
4879
- "remediation": "",
4880
- "tool": "",
4881
- "reason": ""
4882
- }
4883
4859
  },
4884
- "warnings": [],
4885
- "updated_at": "2026-03-15T05:08:48+00:00"
4886
- }
4887
- },
4888
- "score_confidence": {
4889
- "status": "full",
4890
- "confidence": 1.0,
4891
- "detectors": [],
4892
- "dimensions": []
4893
- },
4894
- "subjective_integrity": {
4895
- "status": "disabled",
4896
- "target_score": null,
4897
- "matched_count": 0,
4898
- "matched_dimensions": [],
4899
- "reset_dimensions": []
4900
- },
4901
- "subjective_assessments": {
4902
- "cross_module_architecture": {
4903
- "score": 93.0,
4904
- "source": "holistic",
4905
- "assessed_at": "2026-03-15T05:00:28+00:00",
4906
- "needs_review_refresh": true,
4907
- "refresh_reason": "review_finding_wontfix",
4908
- "stale_since": "2026-03-15T05:08:10+00:00"
4909
- },
4910
- "convention_outlier": {
4911
- "score": 90.0,
4912
- "source": "holistic",
4913
- "assessed_at": "2026-03-15T05:00:28+00:00",
4914
- "needs_review_refresh": true,
4915
- "refresh_reason": "review_finding_wontfix",
4916
- "stale_since": "2026-03-15T05:08:29+00:00"
4917
- },
4918
- "error_consistency": {
4919
- "score": 82.0,
4920
- "source": "holistic",
4921
- "assessed_at": "2026-03-15T05:00:28+00:00",
4922
- "needs_review_refresh": true,
4923
- "refresh_reason": "review_finding_wontfix",
4924
- "stale_since": "2026-03-15T05:08:11+00:00"
4925
- },
4926
- "abstraction_fitness": {
4927
- "score": 91.0,
4928
- "source": "holistic",
4929
- "assessed_at": "2026-03-15T05:00:28+00:00",
4930
- "needs_review_refresh": true,
4931
- "refresh_reason": "review_finding_wontfix",
4932
- "stale_since": "2026-03-15T05:08:09+00:00"
4933
- },
4934
- "api_surface_coherence": {
4935
- "score": 85.0,
4936
- "source": "holistic",
4937
- "assessed_at": "2026-03-15T05:00:28+00:00",
4938
- "needs_review_refresh": true,
4939
- "refresh_reason": "review_finding_wontfix",
4940
- "stale_since": "2026-03-15T05:08:28+00:00"
4941
- },
4942
- "authorization_consistency": {
4943
- "score": 100,
4944
- "source": "holistic",
4945
- "assessed_at": "2026-03-15T05:00:28+00:00"
4946
- },
4947
- "ai_generated_debt": {
4948
- "score": 88.0,
4949
- "source": "holistic",
4950
- "assessed_at": "2026-03-15T05:00:28+00:00",
4951
- "needs_review_refresh": true,
4952
- "refresh_reason": "review_finding_wontfix",
4953
- "stale_since": "2026-03-15T05:08:09+00:00"
4954
- },
4955
- "incomplete_migration": {
4956
- "score": 95.0,
4957
- "source": "holistic",
4958
- "assessed_at": "2026-03-15T05:00:28+00:00",
4959
- "needs_review_refresh": true,
4960
- "refresh_reason": "review_finding_wontfix",
4961
- "stale_since": "2026-03-15T05:08:12+00:00"
4962
- },
4963
- "package_organization": {
4964
- "score": 94.0,
4965
- "source": "holistic",
4966
- "assessed_at": "2026-03-15T05:00:28+00:00",
4967
- "needs_review_refresh": true,
4968
- "refresh_reason": "review_finding_wontfix",
4969
- "stale_since": "2026-03-15T05:07:29+00:00"
4970
- },
4971
- "high_level_elegance": {
4972
- "score": 92.0,
4973
- "source": "holistic",
4974
- "assessed_at": "2026-03-15T05:00:28+00:00",
4975
- "needs_review_refresh": true,
4976
- "refresh_reason": "review_finding_wontfix",
4977
- "stale_since": "2026-03-15T05:08:11+00:00"
4978
- },
4979
- "mid_level_elegance": {
4980
- "score": 88.0,
4981
- "source": "holistic",
4982
- "assessed_at": "2026-03-15T05:00:28+00:00",
4983
- "needs_review_refresh": true,
4984
- "refresh_reason": "review_finding_wontfix",
4985
- "stale_since": "2026-03-15T05:08:12+00:00"
4986
- },
4987
- "low_level_elegance": {
4988
- "score": 86.0,
4989
- "source": "holistic",
4990
- "assessed_at": "2026-03-15T05:00:28+00:00",
4991
- "needs_review_refresh": true,
4992
- "refresh_reason": "review_finding_wontfix",
4993
- "stale_since": "2026-03-15T05:07:25+00:00"
4860
+ "resolution_attestation": {
4861
+ "kind": "manual",
4862
+ "text": "I have actually reviewed this finding and confirmed it is intentional or a false positive and I am not gaming the score by resolving without fixing.",
4863
+ "attested_at": "2026-03-15T19:16:59+00:00",
4864
+ "scan_verified": false
4865
+ }
4994
4866
  },
4995
- "design_coherence": {
4996
- "score": 87.0,
4997
- "source": "holistic",
4998
- "assessed_at": "2026-03-15T05:00:28+00:00",
4999
- "needs_review_refresh": true,
5000
- "refresh_reason": "review_finding_wontfix",
5001
- "stale_since": "2026-03-15T05:08:30+00:00"
5002
- }
5003
- },
5004
- "lang_capabilities": {
5005
- "typescript": {
5006
- "fixers": [
5007
- "dead-useeffect",
5008
- "debug-logs",
5009
- "empty-if-chain",
5010
- "unused-imports",
5011
- "unused-params",
5012
- "unused-vars"
5013
- ],
5014
- "typecheck_cmd": "npx tsc --noEmit"
5015
- }
5016
- },
5017
- "zone_distribution": {
5018
- "production": 29,
5019
- "test": 11,
5020
- "config": 1
5021
- },
5022
- "scan_history": [
5023
- {
5024
- "timestamp": "2026-03-14T23:50:01+00:00",
4867
+ "review::.::holistic::cross_module_architecture::types_barrel_hub::1b4bc74e": {
4868
+ "id": "review::.::holistic::cross_module_architecture::types_barrel_hub::1b4bc74e",
4869
+ "detector": "review",
4870
+ "file": ".",
4871
+ "tier": 3,
4872
+ "confidence": "high",
4873
+ "summary": "Root types barrel creates a dependency hub and obscures domain boundaries.",
4874
+ "detail": {
4875
+ "holistic": true,
4876
+ "dimension": "cross_module_architecture",
4877
+ "related_files": [
4878
+ "src/types.ts",
4879
+ "src/rule-engine.ts",
4880
+ "src/formats/request-helpers.ts"
4881
+ ],
4882
+ "evidence": [
4883
+ "src/types.ts only re-exports from ./types/request.js, ./types/reply.js, ./types/rule.js.",
4884
+ "src/rule-engine.ts and src/formats/request-helpers.ts import shared types from \"./types.js\"/\"../types.js\" rather than domain-specific type files."
4885
+ ],
4886
+ "suggestion": "Prefer direct imports from domain type files (e.g., src/types/request.ts) for internal modules, or split into domain-specific entry points and reserve src/types.ts for external/public API use.",
4887
+ "reasoning": ""
4888
+ },
4889
+ "status": "wontfix",
4890
+ "note": "Intentional design for a test utility",
4891
+ "first_seen": "2026-03-15T19:12:25+00:00",
4892
+ "last_seen": "2026-03-15T19:12:25+00:00",
4893
+ "resolved_at": "2026-03-15T19:15:20+00:00",
4894
+ "reopen_count": 0,
5025
4895
  "lang": "typescript",
5026
- "strict_score": 31.3,
5027
- "verified_strict_score": 78.1,
5028
- "objective_score": 78.1,
5029
- "overall_score": 31.3,
5030
- "open": 69,
5031
- "diff_new": 69,
5032
- "diff_resolved": 0,
5033
- "ignored": 0,
5034
- "raw_findings": 69,
5035
- "suppressed_pct": 0.0,
5036
- "ignore_patterns": 0,
5037
- "subjective_integrity": {
5038
- "status": "pass",
5039
- "matched_count": 0,
5040
- "reset_count": 0,
5041
- "target_score": 95.0
4896
+ "suppressed": false,
4897
+ "suppressed_at": null,
4898
+ "suppression_pattern": null,
4899
+ "resolution_attestation": {
4900
+ "kind": "manual",
4901
+ "text": "I have actually reviewed this finding and confirmed it is an intentional design choice for a mock server test tool and I am not gaming the score by resolving without fixing.",
4902
+ "attested_at": "2026-03-15T19:15:20+00:00",
4903
+ "scan_verified": false
5042
4904
  },
5043
- "score_confidence": {
5044
- "status": "full",
5045
- "confidence": 1.0,
5046
- "detector_count": 0,
5047
- "dimension_count": 0
4905
+ "wontfix_scan_count": 13,
4906
+ "wontfix_snapshot": {
4907
+ "captured_at": "2026-03-15T19:15:20+00:00",
4908
+ "scan_count": 13,
4909
+ "tier": 3,
4910
+ "confidence": "high",
4911
+ "detail": {
4912
+ "holistic": true,
4913
+ "dimension": "cross_module_architecture",
4914
+ "related_files": [
4915
+ "src/types.ts",
4916
+ "src/rule-engine.ts",
4917
+ "src/formats/request-helpers.ts"
4918
+ ],
4919
+ "evidence": [
4920
+ "src/types.ts only re-exports from ./types/request.js, ./types/reply.js, ./types/rule.js.",
4921
+ "src/rule-engine.ts and src/formats/request-helpers.ts import shared types from \"./types.js\"/\"../types.js\" rather than domain-specific type files."
4922
+ ],
4923
+ "suggestion": "Prefer direct imports from domain type files (e.g., src/types/request.ts) for internal modules, or split into domain-specific entry points and reserve src/types.ts for external/public API use.",
4924
+ "reasoning": ""
4925
+ }
4926
+ }
4927
+ },
4928
+ "review::.::holistic::high_level_elegance::request_meta_in_helper::09478090": {
4929
+ "id": "review::.::holistic::high_level_elegance::request_meta_in_helper::09478090",
4930
+ "detector": "review",
4931
+ "file": ".",
4932
+ "tier": 3,
4933
+ "confidence": "high",
4934
+ "summary": "Format contract depends on helper module, blurring ownership of request boundary types.",
4935
+ "detail": {
4936
+ "holistic": true,
4937
+ "dimension": "high_level_elegance",
4938
+ "related_files": [
4939
+ "src/formats/types.ts",
4940
+ "src/formats/request-helpers.ts"
4941
+ ],
4942
+ "evidence": [
4943
+ "src/formats/types.ts imports RequestMeta from ./request-helpers.js.",
4944
+ "src/formats/request-helpers.ts combines RequestMeta with buildMockRequest and isStreaming logic."
4945
+ ],
4946
+ "suggestion": "Move RequestMeta into a dedicated types module (e.g., src/formats/request-types.ts) or into src/formats/types.ts, and have request-helpers import it instead of defining it.",
4947
+ "reasoning": ""
5048
4948
  },
5049
- "dimension_scores": {
4949
+ "status": "wontfix",
4950
+ "note": "Intentional design for a test utility",
4951
+ "first_seen": "2026-03-15T19:12:25+00:00",
4952
+ "last_seen": "2026-03-15T19:12:25+00:00",
4953
+ "resolved_at": "2026-03-15T19:15:20+00:00",
4954
+ "reopen_count": 0,
4955
+ "lang": "typescript",
4956
+ "suppressed": false,
4957
+ "suppressed_at": null,
4958
+ "suppression_pattern": null,
4959
+ "resolution_attestation": {
4960
+ "kind": "manual",
4961
+ "text": "I have actually reviewed this finding and confirmed it is an intentional design choice for a mock server test tool and I am not gaming the score by resolving without fixing.",
4962
+ "attested_at": "2026-03-15T19:15:20+00:00",
4963
+ "scan_verified": false
4964
+ },
4965
+ "wontfix_scan_count": 13,
4966
+ "wontfix_snapshot": {
4967
+ "captured_at": "2026-03-15T19:15:20+00:00",
4968
+ "scan_count": 13,
4969
+ "tier": 3,
4970
+ "confidence": "high",
4971
+ "detail": {
4972
+ "holistic": true,
4973
+ "dimension": "high_level_elegance",
4974
+ "related_files": [
4975
+ "src/formats/types.ts",
4976
+ "src/formats/request-helpers.ts"
4977
+ ],
4978
+ "evidence": [
4979
+ "src/formats/types.ts imports RequestMeta from ./request-helpers.js.",
4980
+ "src/formats/request-helpers.ts combines RequestMeta with buildMockRequest and isStreaming logic."
4981
+ ],
4982
+ "suggestion": "Move RequestMeta into a dedicated types module (e.g., src/formats/request-types.ts) or into src/formats/types.ts, and have request-helpers import it instead of defining it.",
4983
+ "reasoning": ""
4984
+ }
4985
+ }
4986
+ },
4987
+ "review::.::holistic::convention_outlier::log_level_naming_mismatch::c24d378e": {
4988
+ "id": "review::.::holistic::convention_outlier::log_level_naming_mismatch::c24d378e",
4989
+ "detector": "review",
4990
+ "file": ".",
4991
+ "tier": 3,
4992
+ "confidence": "medium",
4993
+ "summary": "Log level naming is inconsistent (`warning` vs `warn`) across CLI and Logger APIs.",
4994
+ "detail": {
4995
+ "holistic": true,
4996
+ "dimension": "convention_outlier",
4997
+ "related_files": [
4998
+ "src/logger.ts",
4999
+ "src/cli-validators.ts",
5000
+ "src/cli.ts"
5001
+ ],
5002
+ "evidence": [
5003
+ "`LEVEL_PRIORITY` defines `warning`, CLI validation only accepts `warning`, but Logger exposes `warn` and labels logs as `WARN` (src/logger.ts, src/cli-validators.ts).",
5004
+ "CLI flag `--log-level` is the public surface; a user seeing `WARN` may reasonably try `warn`, which is rejected (src/cli.ts, src/cli-validators.ts)."
5005
+ ],
5006
+ "suggestion": "Align on one string (`warn` or `warning`) and accept both in the validator to preserve compatibility; update logger constants and CLI help text accordingly.",
5007
+ "reasoning": ""
5008
+ },
5009
+ "status": "wontfix",
5010
+ "note": "Intentional design for a test utility",
5011
+ "first_seen": "2026-03-15T19:12:25+00:00",
5012
+ "last_seen": "2026-03-15T19:12:25+00:00",
5013
+ "resolved_at": "2026-03-15T19:15:40+00:00",
5014
+ "reopen_count": 0,
5015
+ "lang": "typescript",
5016
+ "suppressed": false,
5017
+ "suppressed_at": null,
5018
+ "suppression_pattern": null,
5019
+ "resolution_attestation": {
5020
+ "kind": "manual",
5021
+ "text": "I have actually reviewed this finding and confirmed it is an intentional design choice and I am not gaming the score by resolving without fixing.",
5022
+ "attested_at": "2026-03-15T19:15:40+00:00",
5023
+ "scan_verified": false
5024
+ },
5025
+ "wontfix_scan_count": 13,
5026
+ "wontfix_snapshot": {
5027
+ "captured_at": "2026-03-15T19:15:40+00:00",
5028
+ "scan_count": 13,
5029
+ "tier": 3,
5030
+ "confidence": "medium",
5031
+ "detail": {
5032
+ "holistic": true,
5033
+ "dimension": "convention_outlier",
5034
+ "related_files": [
5035
+ "src/logger.ts",
5036
+ "src/cli-validators.ts",
5037
+ "src/cli.ts"
5038
+ ],
5039
+ "evidence": [
5040
+ "`LEVEL_PRIORITY` defines `warning`, CLI validation only accepts `warning`, but Logger exposes `warn` and labels logs as `WARN` (src/logger.ts, src/cli-validators.ts).",
5041
+ "CLI flag `--log-level` is the public surface; a user seeing `WARN` may reasonably try `warn`, which is rejected (src/cli.ts, src/cli-validators.ts)."
5042
+ ],
5043
+ "suggestion": "Align on one string (`warn` or `warning`) and accept both in the validator to preserve compatibility; update logger constants and CLI help text accordingly.",
5044
+ "reasoning": ""
5045
+ }
5046
+ }
5047
+ },
5048
+ "review::.::holistic::convention_outlier::mixed_sync_async_parsers::70b076f1": {
5049
+ "id": "review::.::holistic::convention_outlier::mixed_sync_async_parsers::70b076f1",
5050
+ "detector": "review",
5051
+ "file": ".",
5052
+ "tier": 3,
5053
+ "confidence": "low",
5054
+ "summary": "CLI validators mix async and sync parsing styles, creating an API shape outlier.",
5055
+ "detail": {
5056
+ "holistic": true,
5057
+ "dimension": "convention_outlier",
5058
+ "related_files": [
5059
+ "src/cli-validators.ts",
5060
+ "test/cli-validators.test.ts"
5061
+ ],
5062
+ "evidence": [
5063
+ "`parseHost` is async (DNS lookup) while `parsePort`, `parseLogLevel`, `parseChunkSize`, and `parseLatency` are sync, so consumers must treat the module inconsistently (src/cli-validators.ts).",
5064
+ "Tests reflect the split by mixing `await expect(parseHost(...))` with sync expectations for other parsers (test/cli-validators.test.ts)."
5065
+ ],
5066
+ "suggestion": "Normalize the validator interface: either make all parsers async (returning Promises) or provide a sync `parseHostSync` and move the async lookup to the CLI entrypoint.",
5067
+ "reasoning": ""
5068
+ },
5069
+ "status": "wontfix",
5070
+ "note": "Intentional design for a test utility",
5071
+ "first_seen": "2026-03-15T19:12:25+00:00",
5072
+ "last_seen": "2026-03-15T19:12:25+00:00",
5073
+ "resolved_at": "2026-03-15T19:16:02+00:00",
5074
+ "reopen_count": 0,
5075
+ "lang": "typescript",
5076
+ "suppressed": false,
5077
+ "suppressed_at": null,
5078
+ "suppression_pattern": null,
5079
+ "resolution_attestation": {
5080
+ "kind": "manual",
5081
+ "text": "I have actually reviewed this finding and confirmed it is an intentional design choice and I am not gaming the score by resolving without fixing.",
5082
+ "attested_at": "2026-03-15T19:16:02+00:00",
5083
+ "scan_verified": false
5084
+ },
5085
+ "wontfix_scan_count": 13,
5086
+ "wontfix_snapshot": {
5087
+ "captured_at": "2026-03-15T19:16:02+00:00",
5088
+ "scan_count": 13,
5089
+ "tier": 3,
5090
+ "confidence": "low",
5091
+ "detail": {
5092
+ "holistic": true,
5093
+ "dimension": "convention_outlier",
5094
+ "related_files": [
5095
+ "src/cli-validators.ts",
5096
+ "test/cli-validators.test.ts"
5097
+ ],
5098
+ "evidence": [
5099
+ "`parseHost` is async (DNS lookup) while `parsePort`, `parseLogLevel`, `parseChunkSize`, and `parseLatency` are sync, so consumers must treat the module inconsistently (src/cli-validators.ts).",
5100
+ "Tests reflect the split by mixing `await expect(parseHost(...))` with sync expectations for other parsers (test/cli-validators.test.ts)."
5101
+ ],
5102
+ "suggestion": "Normalize the validator interface: either make all parsers async (returning Promises) or provide a sync `parseHostSync` and move the async lookup to the CLI entrypoint.",
5103
+ "reasoning": ""
5104
+ }
5105
+ }
5106
+ },
5107
+ "review::.::holistic::error_consistency::reload_rules_clears_on_error::63e1a0aa": {
5108
+ "id": "review::.::holistic::error_consistency::reload_rules_clears_on_error::63e1a0aa",
5109
+ "detector": "review",
5110
+ "file": ".",
5111
+ "tier": 3,
5112
+ "confidence": "medium",
5113
+ "summary": "Rules reload clears existing rules before load, and on failure only logs, leaving a running server with no rules.",
5114
+ "detail": {
5115
+ "holistic": true,
5116
+ "dimension": "error_consistency",
5117
+ "related_files": [
5118
+ "src/cli.ts",
5119
+ "src/logger.ts"
5120
+ ],
5121
+ "evidence": [
5122
+ "Watch reload path does `server.reset(); await server.load(rulesPath);` inside a try/catch and only logs on error (src/cli.ts).",
5123
+ "If `server.load` throws, prior rules are already cleared and the server continues running with an empty rule set, with no rollback (src/cli.ts)."
5124
+ ],
5125
+ "suggestion": "Load into a temporary ruleset or only call `reset()` after a successful load; on failure, preserve the previous rules and log the error with context.",
5126
+ "reasoning": ""
5127
+ },
5128
+ "status": "wontfix",
5129
+ "note": "Intentional design for a test utility",
5130
+ "first_seen": "2026-03-15T19:12:25+00:00",
5131
+ "last_seen": "2026-03-15T19:12:25+00:00",
5132
+ "resolved_at": "2026-03-15T19:15:41+00:00",
5133
+ "reopen_count": 0,
5134
+ "lang": "typescript",
5135
+ "suppressed": false,
5136
+ "suppressed_at": null,
5137
+ "suppression_pattern": null,
5138
+ "resolution_attestation": {
5139
+ "kind": "manual",
5140
+ "text": "I have actually reviewed this finding and confirmed it is an intentional design choice and I am not gaming the score by resolving without fixing.",
5141
+ "attested_at": "2026-03-15T19:15:41+00:00",
5142
+ "scan_verified": false
5143
+ },
5144
+ "wontfix_scan_count": 13,
5145
+ "wontfix_snapshot": {
5146
+ "captured_at": "2026-03-15T19:15:41+00:00",
5147
+ "scan_count": 13,
5148
+ "tier": 3,
5149
+ "confidence": "medium",
5150
+ "detail": {
5151
+ "holistic": true,
5152
+ "dimension": "error_consistency",
5153
+ "related_files": [
5154
+ "src/cli.ts",
5155
+ "src/logger.ts"
5156
+ ],
5157
+ "evidence": [
5158
+ "Watch reload path does `server.reset(); await server.load(rulesPath);` inside a try/catch and only logs on error (src/cli.ts).",
5159
+ "If `server.load` throws, prior rules are already cleared and the server continues running with an empty rule set, with no rollback (src/cli.ts)."
5160
+ ],
5161
+ "suggestion": "Load into a temporary ruleset or only call `reset()` after a successful load; on failure, preserve the previous rules and log the error with context.",
5162
+ "reasoning": ""
5163
+ }
5164
+ }
5165
+ },
5166
+ "review::.::holistic::abstraction_fitness::sequence_rule_duplication::f55570a3": {
5167
+ "id": "review::.::holistic::abstraction_fitness::sequence_rule_duplication::f55570a3",
5168
+ "detector": "review",
5169
+ "file": ".",
5170
+ "tier": 3,
5171
+ "confidence": "high",
5172
+ "summary": "Sequence rule construction is duplicated across MockServer and loader, risking drift.",
5173
+ "detail": {
5174
+ "holistic": true,
5175
+ "dimension": "abstraction_fitness",
5176
+ "related_files": [
5177
+ "src/mock-server.ts",
5178
+ "src/loader.ts",
5179
+ "src/rule-engine.ts"
5180
+ ],
5181
+ "evidence": [
5182
+ "src/mock-server.ts when().replySequence() maps entries, calls createSequenceResolver, mutates rule.resolve and rule.remaining.",
5183
+ "src/loader.ts addSequenceRule() performs the same mapping/resolve/remaining steps with a slightly different entry shape."
5184
+ ],
5185
+ "suggestion": "Extract a shared helper (e.g., in src/rule-engine.ts) that accepts normalized sequence steps and applies createSequenceResolver + remaining, then reuse it from both MockServer and loader.",
5186
+ "reasoning": ""
5187
+ },
5188
+ "status": "wontfix",
5189
+ "note": "Intentional design for a test utility",
5190
+ "first_seen": "2026-03-15T19:12:25+00:00",
5191
+ "last_seen": "2026-03-15T19:12:25+00:00",
5192
+ "resolved_at": "2026-03-15T19:15:20+00:00",
5193
+ "reopen_count": 0,
5194
+ "lang": "typescript",
5195
+ "suppressed": false,
5196
+ "suppressed_at": null,
5197
+ "suppression_pattern": null,
5198
+ "resolution_attestation": {
5199
+ "kind": "manual",
5200
+ "text": "I have actually reviewed this finding and confirmed it is an intentional design choice for a mock server test tool and I am not gaming the score by resolving without fixing.",
5201
+ "attested_at": "2026-03-15T19:15:20+00:00",
5202
+ "scan_verified": false
5203
+ },
5204
+ "wontfix_scan_count": 13,
5205
+ "wontfix_snapshot": {
5206
+ "captured_at": "2026-03-15T19:15:20+00:00",
5207
+ "scan_count": 13,
5208
+ "tier": 3,
5209
+ "confidence": "high",
5210
+ "detail": {
5211
+ "holistic": true,
5212
+ "dimension": "abstraction_fitness",
5213
+ "related_files": [
5214
+ "src/mock-server.ts",
5215
+ "src/loader.ts",
5216
+ "src/rule-engine.ts"
5217
+ ],
5218
+ "evidence": [
5219
+ "src/mock-server.ts when().replySequence() maps entries, calls createSequenceResolver, mutates rule.resolve and rule.remaining.",
5220
+ "src/loader.ts addSequenceRule() performs the same mapping/resolve/remaining steps with a slightly different entry shape."
5221
+ ],
5222
+ "suggestion": "Extract a shared helper (e.g., in src/rule-engine.ts) that accepts normalized sequence steps and applies createSequenceResolver + remaining, then reuse it from both MockServer and loader.",
5223
+ "reasoning": ""
5224
+ }
5225
+ }
5226
+ },
5227
+ "review::.::holistic::mid_level_elegance::format_registry_split::07d3f4a8": {
5228
+ "id": "review::.::holistic::mid_level_elegance::format_registry_split::07d3f4a8",
5229
+ "detector": "review",
5230
+ "file": ".",
5231
+ "tier": 3,
5232
+ "confidence": "medium",
5233
+ "summary": "CLI hard-codes endpoints while MockServer derives routes from format modules.",
5234
+ "detail": {
5235
+ "holistic": true,
5236
+ "dimension": "mid_level_elegance",
5237
+ "related_files": [
5238
+ "src/mock-server.ts",
5239
+ "src/cli.ts"
5240
+ ],
5241
+ "evidence": [
5242
+ "src/mock-server.ts registers routes by iterating formats[] with per-format route values.",
5243
+ "src/cli.ts prints a static endpoints list string that must be updated manually."
5244
+ ],
5245
+ "suggestion": "Expose a single formats registry (or route list) and have the CLI render endpoints from it, avoiding cross-module drift.",
5246
+ "reasoning": ""
5247
+ },
5248
+ "status": "wontfix",
5249
+ "note": "Intentional design for a test utility",
5250
+ "first_seen": "2026-03-15T19:12:25+00:00",
5251
+ "last_seen": "2026-03-15T19:12:25+00:00",
5252
+ "resolved_at": "2026-03-15T19:16:02+00:00",
5253
+ "reopen_count": 0,
5254
+ "lang": "typescript",
5255
+ "suppressed": false,
5256
+ "suppressed_at": null,
5257
+ "suppression_pattern": null,
5258
+ "resolution_attestation": {
5259
+ "kind": "manual",
5260
+ "text": "I have actually reviewed this finding and confirmed it is an intentional design choice and I am not gaming the score by resolving without fixing.",
5261
+ "attested_at": "2026-03-15T19:16:02+00:00",
5262
+ "scan_verified": false
5263
+ },
5264
+ "wontfix_scan_count": 13,
5265
+ "wontfix_snapshot": {
5266
+ "captured_at": "2026-03-15T19:16:02+00:00",
5267
+ "scan_count": 13,
5268
+ "tier": 3,
5269
+ "confidence": "medium",
5270
+ "detail": {
5271
+ "holistic": true,
5272
+ "dimension": "mid_level_elegance",
5273
+ "related_files": [
5274
+ "src/mock-server.ts",
5275
+ "src/cli.ts"
5276
+ ],
5277
+ "evidence": [
5278
+ "src/mock-server.ts registers routes by iterating formats[] with per-format route values.",
5279
+ "src/cli.ts prints a static endpoints list string that must be updated manually."
5280
+ ],
5281
+ "suggestion": "Expose a single formats registry (or route list) and have the CLI render endpoints from it, avoiding cross-module drift.",
5282
+ "reasoning": ""
5283
+ }
5284
+ }
5285
+ },
5286
+ "review::.::holistic::api_surface_coherence::lax_numeric_parsing::0880283b": {
5287
+ "id": "review::.::holistic::api_surface_coherence::lax_numeric_parsing::0880283b",
5288
+ "detector": "review",
5289
+ "file": ".",
5290
+ "tier": 3,
5291
+ "confidence": "high",
5292
+ "summary": "Numeric validators accept non-numeric suffixes due to parseInt behavior",
5293
+ "detail": {
5294
+ "holistic": true,
5295
+ "dimension": "api_surface_coherence",
5296
+ "related_files": [
5297
+ "src/cli-validators.ts"
5298
+ ],
5299
+ "evidence": [
5300
+ "parsePort/parseChunkSize/parseLatency use parseInt and only check isNaN and range, so inputs like \"10abc\" or \"1.5\" pass as 10 or 1."
5301
+ ],
5302
+ "suggestion": "Validate with a strict digit regex (e.g., `/^\\d+$/`) and use `Number(value)` + `Number.isInteger` before range checks.",
5303
+ "reasoning": ""
5304
+ },
5305
+ "status": "fixed",
5306
+ "note": "Replaced parseInt with strict digit regex + Number()",
5307
+ "first_seen": "2026-03-15T19:12:25+00:00",
5308
+ "last_seen": "2026-03-15T19:12:25+00:00",
5309
+ "resolved_at": "2026-03-15T19:15:19+00:00",
5310
+ "reopen_count": 0,
5311
+ "lang": "typescript",
5312
+ "suppressed": false,
5313
+ "suppressed_at": null,
5314
+ "suppression_pattern": null,
5315
+ "resolution_attestation": {
5316
+ "kind": "manual",
5317
+ "text": "I have actually replaced parseInt with a parseStrictInt helper using /^\\d+$/ regex and I am not gaming the score by resolving without fixing.",
5318
+ "attested_at": "2026-03-15T19:15:19+00:00",
5319
+ "scan_verified": false
5320
+ }
5321
+ },
5322
+ "review::.::holistic::api_surface_coherence::log_level_guard_proto_keys::77402633": {
5323
+ "id": "review::.::holistic::api_surface_coherence::log_level_guard_proto_keys::77402633",
5324
+ "detector": "review",
5325
+ "file": ".",
5326
+ "tier": 3,
5327
+ "confidence": "high",
5328
+ "summary": "Log-level guard accepts prototype keys because it uses `in`",
5329
+ "detail": {
5330
+ "holistic": true,
5331
+ "dimension": "api_surface_coherence",
5332
+ "related_files": [
5333
+ "src/cli-validators.ts"
5334
+ ],
5335
+ "evidence": [
5336
+ "`isLogLevel` uses `value in LEVEL_PRIORITY`, which returns true for inherited keys like \"toString\"."
5337
+ ],
5338
+ "suggestion": "Use `Object.hasOwn(LEVEL_PRIORITY, value)` or `VALID_LOG_LEVELS.includes(value as LogLevel)` to restrict to real log levels.",
5339
+ "reasoning": ""
5340
+ },
5341
+ "status": "fixed",
5342
+ "note": "Changed 'in' to Object.hasOwn()",
5343
+ "first_seen": "2026-03-15T19:12:25+00:00",
5344
+ "last_seen": "2026-03-15T19:12:25+00:00",
5345
+ "resolved_at": "2026-03-15T19:15:19+00:00",
5346
+ "reopen_count": 0,
5347
+ "lang": "typescript",
5348
+ "suppressed": false,
5349
+ "suppressed_at": null,
5350
+ "suppression_pattern": null,
5351
+ "resolution_attestation": {
5352
+ "kind": "manual",
5353
+ "text": "I have actually replaced the 'in' operator with Object.hasOwn() to avoid prototype key matching and I am not gaming the score by resolving without fixing.",
5354
+ "attested_at": "2026-03-15T19:15:19+00:00",
5355
+ "scan_verified": false
5356
+ }
5357
+ },
5358
+ "review::.::holistic::api_surface_coherence::mixed_sync_async_validators::7fb43161": {
5359
+ "id": "review::.::holistic::api_surface_coherence::mixed_sync_async_validators::7fb43161",
5360
+ "detector": "review",
5361
+ "file": ".",
5362
+ "tier": 3,
5363
+ "confidence": "medium",
5364
+ "summary": "Validator API mixes sync and async functions within the same surface",
5365
+ "detail": {
5366
+ "holistic": true,
5367
+ "dimension": "api_surface_coherence",
5368
+ "related_files": [
5369
+ "src/cli-validators.ts"
5370
+ ],
5371
+ "evidence": [
5372
+ "parseHost is async (DNS lookup) while parsePort/parseLogLevel/parseChunkSize/parseLatency are synchronous."
5373
+ ],
5374
+ "suggestion": "Either make all validators async (returning Promise) or split DNS resolution into a separate async phase so the core validator API is uniform.",
5375
+ "reasoning": ""
5376
+ },
5377
+ "status": "wontfix",
5378
+ "note": "Intentional design for a test utility",
5379
+ "first_seen": "2026-03-15T19:12:25+00:00",
5380
+ "last_seen": "2026-03-15T19:12:25+00:00",
5381
+ "resolved_at": "2026-03-15T19:15:39+00:00",
5382
+ "reopen_count": 0,
5383
+ "lang": "typescript",
5384
+ "suppressed": false,
5385
+ "suppressed_at": null,
5386
+ "suppression_pattern": null,
5387
+ "resolution_attestation": {
5388
+ "kind": "manual",
5389
+ "text": "I have actually reviewed this finding and confirmed it is an intentional design choice and I am not gaming the score by resolving without fixing.",
5390
+ "attested_at": "2026-03-15T19:15:39+00:00",
5391
+ "scan_verified": false
5392
+ },
5393
+ "wontfix_scan_count": 13,
5394
+ "wontfix_snapshot": {
5395
+ "captured_at": "2026-03-15T19:15:39+00:00",
5396
+ "scan_count": 13,
5397
+ "tier": 3,
5398
+ "confidence": "medium",
5399
+ "detail": {
5400
+ "holistic": true,
5401
+ "dimension": "api_surface_coherence",
5402
+ "related_files": [
5403
+ "src/cli-validators.ts"
5404
+ ],
5405
+ "evidence": [
5406
+ "parseHost is async (DNS lookup) while parsePort/parseLogLevel/parseChunkSize/parseLatency are synchronous."
5407
+ ],
5408
+ "suggestion": "Either make all validators async (returning Promise) or split DNS resolution into a separate async phase so the core validator API is uniform.",
5409
+ "reasoning": ""
5410
+ }
5411
+ }
5412
+ },
5413
+ "review::.::holistic::ai_generated_debt::restating_comments_on_types::06fc15f4": {
5414
+ "id": "review::.::holistic::ai_generated_debt::restating_comments_on_types::06fc15f4",
5415
+ "detector": "review",
5416
+ "file": ".",
5417
+ "tier": 3,
5418
+ "confidence": "medium",
5419
+ "summary": "Comments restate obvious type semantics, adding low-signal noise",
5420
+ "detail": {
5421
+ "holistic": true,
5422
+ "dimension": "ai_generated_debt",
5423
+ "related_files": [
5424
+ "src/types/request.ts",
5425
+ "src/types/rule.ts"
5426
+ ],
5427
+ "evidence": [
5428
+ "src/types/request.ts comments explain fields like lastMessage/systemMessage/toolNames in a way that mirrors the field name.",
5429
+ "src/types/rule.ts Match comment block describes each union variant in a way that repeats the type definition."
5430
+ ],
5431
+ "suggestion": "Trim comments to only convey non-obvious constraints or behavioral nuances; remove restatements of field names or type unions.",
5432
+ "reasoning": ""
5433
+ },
5434
+ "status": "wontfix",
5435
+ "note": "Intentional design for a test utility",
5436
+ "first_seen": "2026-03-15T19:12:25+00:00",
5437
+ "last_seen": "2026-03-15T19:12:25+00:00",
5438
+ "resolved_at": "2026-03-15T19:15:39+00:00",
5439
+ "reopen_count": 0,
5440
+ "lang": "typescript",
5441
+ "suppressed": false,
5442
+ "suppressed_at": null,
5443
+ "suppression_pattern": null,
5444
+ "resolution_attestation": {
5445
+ "kind": "manual",
5446
+ "text": "I have actually reviewed this finding and confirmed it is an intentional design choice and I am not gaming the score by resolving without fixing.",
5447
+ "attested_at": "2026-03-15T19:15:39+00:00",
5448
+ "scan_verified": false
5449
+ },
5450
+ "wontfix_scan_count": 13,
5451
+ "wontfix_snapshot": {
5452
+ "captured_at": "2026-03-15T19:15:39+00:00",
5453
+ "scan_count": 13,
5454
+ "tier": 3,
5455
+ "confidence": "medium",
5456
+ "detail": {
5457
+ "holistic": true,
5458
+ "dimension": "ai_generated_debt",
5459
+ "related_files": [
5460
+ "src/types/request.ts",
5461
+ "src/types/rule.ts"
5462
+ ],
5463
+ "evidence": [
5464
+ "src/types/request.ts comments explain fields like lastMessage/systemMessage/toolNames in a way that mirrors the field name.",
5465
+ "src/types/rule.ts Match comment block describes each union variant in a way that repeats the type definition."
5466
+ ],
5467
+ "suggestion": "Trim comments to only convey non-obvious constraints or behavioral nuances; remove restatements of field names or type unions.",
5468
+ "reasoning": ""
5469
+ }
5470
+ }
5471
+ },
5472
+ "review::.::holistic::low_level_elegance::redundant_optional_undefined::0d14d994": {
5473
+ "id": "review::.::holistic::low_level_elegance::redundant_optional_undefined::0d14d994",
5474
+ "detector": "review",
5475
+ "file": ".",
5476
+ "tier": 3,
5477
+ "confidence": "high",
5478
+ "summary": "Optional fields redundantly include `| undefined`, creating inconsistency and noise",
5479
+ "detail": {
5480
+ "holistic": true,
5481
+ "dimension": "low_level_elegance",
5482
+ "related_files": [
5483
+ "src/types/request.ts",
5484
+ "src/types/rule.ts"
5485
+ ],
5486
+ "evidence": [
5487
+ "src/types/request.ts declares `tools?: readonly ToolDef[] | undefined` and `toolCallId?: string | undefined`, which are already implied by `?`.",
5488
+ "src/types/rule.ts uses `?:` without explicit `| undefined`, so the style is inconsistent across related type modules."
5489
+ ],
5490
+ "suggestion": "Remove explicit `| undefined` from optional properties in src/types/request.ts to align with TypeScript conventions and the style used in src/types/rule.ts.",
5491
+ "reasoning": ""
5492
+ },
5493
+ "status": "wontfix",
5494
+ "note": "Intentional design for a test utility",
5495
+ "first_seen": "2026-03-15T19:12:25+00:00",
5496
+ "last_seen": "2026-03-15T19:12:25+00:00",
5497
+ "resolved_at": "2026-03-15T19:15:21+00:00",
5498
+ "reopen_count": 0,
5499
+ "lang": "typescript",
5500
+ "suppressed": false,
5501
+ "suppressed_at": null,
5502
+ "suppression_pattern": null,
5503
+ "resolution_attestation": {
5504
+ "kind": "manual",
5505
+ "text": "I have actually reviewed this finding and confirmed it is an intentional design choice for a mock server test tool and I am not gaming the score by resolving without fixing.",
5506
+ "attested_at": "2026-03-15T19:15:21+00:00",
5507
+ "scan_verified": false
5508
+ },
5509
+ "wontfix_scan_count": 13,
5510
+ "wontfix_snapshot": {
5511
+ "captured_at": "2026-03-15T19:15:21+00:00",
5512
+ "scan_count": 13,
5513
+ "tier": 3,
5514
+ "confidence": "high",
5515
+ "detail": {
5516
+ "holistic": true,
5517
+ "dimension": "low_level_elegance",
5518
+ "related_files": [
5519
+ "src/types/request.ts",
5520
+ "src/types/rule.ts"
5521
+ ],
5522
+ "evidence": [
5523
+ "src/types/request.ts declares `tools?: readonly ToolDef[] | undefined` and `toolCallId?: string | undefined`, which are already implied by `?`.",
5524
+ "src/types/rule.ts uses `?:` without explicit `| undefined`, so the style is inconsistent across related type modules."
5525
+ ],
5526
+ "suggestion": "Remove explicit `| undefined` from optional properties in src/types/request.ts to align with TypeScript conventions and the style used in src/types/rule.ts.",
5527
+ "reasoning": ""
5528
+ }
5529
+ }
5530
+ },
5531
+ "review::.::holistic::package_organization::flat_src_root_mixed_concerns::ff92e932": {
5532
+ "id": "review::.::holistic::package_organization::flat_src_root_mixed_concerns::ff92e932",
5533
+ "detector": "review",
5534
+ "file": ".",
5535
+ "tier": 3,
5536
+ "confidence": "high",
5537
+ "summary": "`src/` is a flat folder with mixed CLI/runtime/history concerns, obscuring ownership boundaries.",
5538
+ "detail": {
5539
+ "holistic": true,
5540
+ "dimension": "package_organization",
5541
+ "related_files": [
5542
+ "src/cli.ts",
5543
+ "src/history.ts",
5544
+ "src/cli-validators.ts"
5545
+ ],
5546
+ "evidence": [
5547
+ "`holistic_context.structure.directory_profiles` lists 11 files in `src/` spanning CLI (`cli.ts`), history/state (`history.ts`), and core runtime (`mock-server.ts`, `rule-engine.ts`).",
5548
+ "`holistic_context.structure.coupling_matrix` shows `src/ \u2194 src/formats/` bidirectional imports, which is a typical signal of missing subpackage boundaries."
5549
+ ],
5550
+ "suggestion": "Staged reorg plan: 1) Create `src/cli/` and `src/server/` folders. 2) Move CLI files first: `src/cli.ts` \u2192 `src/cli/index.ts`, `src/cli-validators.ts` \u2192 `src/cli/validators.ts`. 3) Move runtime/state next: `src/history.ts` \u2192 `src/server/history.ts` (and later other runtime files like `mock-server.ts`, `rule-engine.ts` if desired). 4) Update import paths using `rg \"./cli-validators|./history\" src test` and edit imports to new locations. 5) Validate with `npm test` (vitest) and, if available, `npm run build` to ensure path resolution is correct.",
5551
+ "reasoning": ""
5552
+ },
5553
+ "status": "wontfix",
5554
+ "note": "Intentional design for a test utility",
5555
+ "first_seen": "2026-03-15T19:12:25+00:00",
5556
+ "last_seen": "2026-03-15T19:12:25+00:00",
5557
+ "resolved_at": "2026-03-15T19:15:39+00:00",
5558
+ "reopen_count": 0,
5559
+ "lang": "typescript",
5560
+ "suppressed": false,
5561
+ "suppressed_at": null,
5562
+ "suppression_pattern": null,
5563
+ "resolution_attestation": {
5564
+ "kind": "manual",
5565
+ "text": "I have actually reviewed this finding and confirmed it is an intentional design choice and I am not gaming the score by resolving without fixing.",
5566
+ "attested_at": "2026-03-15T19:15:39+00:00",
5567
+ "scan_verified": false
5568
+ },
5569
+ "wontfix_scan_count": 13,
5570
+ "wontfix_snapshot": {
5571
+ "captured_at": "2026-03-15T19:15:39+00:00",
5572
+ "scan_count": 13,
5573
+ "tier": 3,
5574
+ "confidence": "high",
5575
+ "detail": {
5576
+ "holistic": true,
5577
+ "dimension": "package_organization",
5578
+ "related_files": [
5579
+ "src/cli.ts",
5580
+ "src/history.ts",
5581
+ "src/cli-validators.ts"
5582
+ ],
5583
+ "evidence": [
5584
+ "`holistic_context.structure.directory_profiles` lists 11 files in `src/` spanning CLI (`cli.ts`), history/state (`history.ts`), and core runtime (`mock-server.ts`, `rule-engine.ts`).",
5585
+ "`holistic_context.structure.coupling_matrix` shows `src/ \u2194 src/formats/` bidirectional imports, which is a typical signal of missing subpackage boundaries."
5586
+ ],
5587
+ "suggestion": "Staged reorg plan: 1) Create `src/cli/` and `src/server/` folders. 2) Move CLI files first: `src/cli.ts` \u2192 `src/cli/index.ts`, `src/cli-validators.ts` \u2192 `src/cli/validators.ts`. 3) Move runtime/state next: `src/history.ts` \u2192 `src/server/history.ts` (and later other runtime files like `mock-server.ts`, `rule-engine.ts` if desired). 4) Update import paths using `rg \"./cli-validators|./history\" src test` and edit imports to new locations. 5) Validate with `npm test` (vitest) and, if available, `npm run build` to ensure path resolution is correct.",
5588
+ "reasoning": ""
5589
+ }
5590
+ }
5591
+ },
5592
+ "review::.::holistic::package_organization::cli_validators_not_colocated::2a5b7810": {
5593
+ "id": "review::.::holistic::package_organization::cli_validators_not_colocated::2a5b7810",
5594
+ "detector": "review",
5595
+ "file": ".",
5596
+ "tier": 3,
5597
+ "confidence": "high",
5598
+ "summary": "CLI-only validators live at `src/` root despite being used only by the CLI entrypoint.",
5599
+ "detail": {
5600
+ "holistic": true,
5601
+ "dimension": "package_organization",
5602
+ "related_files": [
5603
+ "src/cli.ts",
5604
+ "src/cli-validators.ts",
5605
+ "test/cli-validators.test.ts"
5606
+ ],
5607
+ "evidence": [
5608
+ "`src/cli-validators.ts` is imported only by `src/cli.ts` and its dedicated test (`test/cli-validators.test.ts`).",
5609
+ "No other modules consume `cli-validators.ts`, indicating it belongs inside a CLI-focused subpackage rather than the root."
5610
+ ],
5611
+ "suggestion": "Staged reorg plan: 1) Create `src/cli/`. 2) Move `src/cli-validators.ts` \u2192 `src/cli/validators.ts`. 3) Update `src/cli.ts` to import from `./cli/validators.js` (or `./cli/validators.js` after moving `cli.ts` as part of a broader CLI folder move). 4) Update `test/cli-validators.test.ts` to import from `../src/cli/validators.js`. 5) Validate with `npm test` to ensure CLI parsing tests still pass.",
5612
+ "reasoning": ""
5613
+ },
5614
+ "status": "wontfix",
5615
+ "note": "Intentional design for a test utility",
5616
+ "first_seen": "2026-03-15T19:12:25+00:00",
5617
+ "last_seen": "2026-03-15T19:12:25+00:00",
5618
+ "resolved_at": "2026-03-15T19:15:21+00:00",
5619
+ "reopen_count": 0,
5620
+ "lang": "typescript",
5621
+ "suppressed": false,
5622
+ "suppressed_at": null,
5623
+ "suppression_pattern": null,
5624
+ "resolution_attestation": {
5625
+ "kind": "manual",
5626
+ "text": "I have actually reviewed this finding and confirmed it is an intentional design choice for a mock server test tool and I am not gaming the score by resolving without fixing.",
5627
+ "attested_at": "2026-03-15T19:15:21+00:00",
5628
+ "scan_verified": false
5629
+ },
5630
+ "wontfix_scan_count": 13,
5631
+ "wontfix_snapshot": {
5632
+ "captured_at": "2026-03-15T19:15:21+00:00",
5633
+ "scan_count": 13,
5634
+ "tier": 3,
5635
+ "confidence": "high",
5636
+ "detail": {
5637
+ "holistic": true,
5638
+ "dimension": "package_organization",
5639
+ "related_files": [
5640
+ "src/cli.ts",
5641
+ "src/cli-validators.ts",
5642
+ "test/cli-validators.test.ts"
5643
+ ],
5644
+ "evidence": [
5645
+ "`src/cli-validators.ts` is imported only by `src/cli.ts` and its dedicated test (`test/cli-validators.test.ts`).",
5646
+ "No other modules consume `cli-validators.ts`, indicating it belongs inside a CLI-focused subpackage rather than the root."
5647
+ ],
5648
+ "suggestion": "Staged reorg plan: 1) Create `src/cli/`. 2) Move `src/cli-validators.ts` \u2192 `src/cli/validators.ts`. 3) Update `src/cli.ts` to import from `./cli/validators.js` (or `./cli/validators.js` after moving `cli.ts` as part of a broader CLI folder move). 4) Update `test/cli-validators.test.ts` to import from `../src/cli/validators.js`. 5) Validate with `npm test` to ensure CLI parsing tests still pass.",
5649
+ "reasoning": ""
5650
+ }
5651
+ }
5652
+ },
5653
+ "review::.::holistic::high_level_elegance::ownership_boundaries_blurred_by_root_layout::86a83f75": {
5654
+ "id": "review::.::holistic::high_level_elegance::ownership_boundaries_blurred_by_root_layout::86a83f75",
5655
+ "detector": "review",
5656
+ "file": ".",
5657
+ "tier": 3,
5658
+ "confidence": "medium",
5659
+ "summary": "Top-level decomposition mixes CLI and runtime concerns, weakening domain-aligned ownership.",
5660
+ "detail": {
5661
+ "holistic": true,
5662
+ "dimension": "high_level_elegance",
5663
+ "related_files": [
5664
+ "src/cli.ts",
5665
+ "src/history.ts"
5666
+ ],
5667
+ "evidence": [
5668
+ "CLI entry (`src/cli.ts`) and runtime/state (`src/history.ts`) sit side-by-side at the root, making the top-level package map less expressive than the format-specific subfolders under `src/formats/*`.",
5669
+ "The flat root layout requires readers to scan files to infer domains instead of discovering boundaries through folder structure."
5670
+ ],
5671
+ "suggestion": "Staged reorg plan: 1) Introduce explicit domain folders such as `src/cli/` and `src/runtime/` (or `src/server/`). 2) Move `src/cli.ts` (and `src/cli-validators.ts`) into `src/cli/` first, then move `src/history.ts` into `src/runtime/` alongside related runtime modules. 3) Update imports via `rg \"\\./cli|\\./history\" src test` and edit to new paths. 4) Validate with `npm test` and, if applicable, `npm run build` to confirm the public entrypoints still resolve correctly.",
5672
+ "reasoning": ""
5673
+ },
5674
+ "status": "wontfix",
5675
+ "note": "Intentional design for a test utility",
5676
+ "first_seen": "2026-03-15T19:12:25+00:00",
5677
+ "last_seen": "2026-03-15T19:12:25+00:00",
5678
+ "resolved_at": "2026-03-15T19:16:02+00:00",
5679
+ "reopen_count": 0,
5680
+ "lang": "typescript",
5681
+ "suppressed": false,
5682
+ "suppressed_at": null,
5683
+ "suppression_pattern": null,
5684
+ "resolution_attestation": {
5685
+ "kind": "manual",
5686
+ "text": "I have actually reviewed this finding and confirmed it is an intentional design choice and I am not gaming the score by resolving without fixing.",
5687
+ "attested_at": "2026-03-15T19:16:02+00:00",
5688
+ "scan_verified": false
5689
+ },
5690
+ "wontfix_scan_count": 13,
5691
+ "wontfix_snapshot": {
5692
+ "captured_at": "2026-03-15T19:16:02+00:00",
5693
+ "scan_count": 13,
5694
+ "tier": 3,
5695
+ "confidence": "medium",
5696
+ "detail": {
5697
+ "holistic": true,
5698
+ "dimension": "high_level_elegance",
5699
+ "related_files": [
5700
+ "src/cli.ts",
5701
+ "src/history.ts"
5702
+ ],
5703
+ "evidence": [
5704
+ "CLI entry (`src/cli.ts`) and runtime/state (`src/history.ts`) sit side-by-side at the root, making the top-level package map less expressive than the format-specific subfolders under `src/formats/*`.",
5705
+ "The flat root layout requires readers to scan files to infer domains instead of discovering boundaries through folder structure."
5706
+ ],
5707
+ "suggestion": "Staged reorg plan: 1) Introduce explicit domain folders such as `src/cli/` and `src/runtime/` (or `src/server/`). 2) Move `src/cli.ts` (and `src/cli-validators.ts`) into `src/cli/` first, then move `src/history.ts` into `src/runtime/` alongside related runtime modules. 3) Update imports via `rg \"\\./cli|\\./history\" src test` and edit to new paths. 4) Validate with `npm test` and, if applicable, `npm run build` to confirm the public entrypoints still resolve correctly.",
5708
+ "reasoning": ""
5709
+ }
5710
+ }
5711
+ },
5712
+ "review::.::holistic::cross_module_architecture::types_barrel_coupling_hub::0586c378": {
5713
+ "id": "review::.::holistic::cross_module_architecture::types_barrel_coupling_hub::0586c378",
5714
+ "detector": "review",
5715
+ "file": ".",
5716
+ "tier": 3,
5717
+ "confidence": "medium",
5718
+ "summary": "Root types barrel concentrates multiple domains and amplifies cross-module coupling.",
5719
+ "detail": {
5720
+ "holistic": true,
5721
+ "dimension": "cross_module_architecture",
5722
+ "related_files": [
5723
+ "src/types.ts",
5724
+ "src/formats/types.ts",
5725
+ "src/formats/request-helpers.ts"
5726
+ ],
5727
+ "evidence": [
5728
+ "src/types.ts re-exports request/reply/rule types into one root barrel, and format modules import from ../types.js rather than their specific domain files.",
5729
+ "This pattern makes any change to request/reply/rule type boundaries ripple through a single high-fan-in module."
5730
+ ],
5731
+ "suggestion": "Split the barrel into domain entry points (for example: `src/types/request.ts`, `src/types/reply.ts`, `src/types/rule.ts`) and update format imports to target the specific domain paths; keep `src/types.ts` only for external package exports if needed, and avoid internal imports from it.",
5732
+ "reasoning": ""
5733
+ },
5734
+ "status": "wontfix",
5735
+ "note": "Intentional design for a test utility",
5736
+ "first_seen": "2026-03-15T19:12:25+00:00",
5737
+ "last_seen": "2026-03-15T19:12:25+00:00",
5738
+ "resolved_at": "2026-03-15T19:15:40+00:00",
5739
+ "reopen_count": 0,
5740
+ "lang": "typescript",
5741
+ "suppressed": false,
5742
+ "suppressed_at": null,
5743
+ "suppression_pattern": null,
5744
+ "resolution_attestation": {
5745
+ "kind": "manual",
5746
+ "text": "I have actually reviewed this finding and confirmed it is an intentional design choice and I am not gaming the score by resolving without fixing.",
5747
+ "attested_at": "2026-03-15T19:15:40+00:00",
5748
+ "scan_verified": false
5749
+ },
5750
+ "wontfix_scan_count": 13,
5751
+ "wontfix_snapshot": {
5752
+ "captured_at": "2026-03-15T19:15:40+00:00",
5753
+ "scan_count": 13,
5754
+ "tier": 3,
5755
+ "confidence": "medium",
5756
+ "detail": {
5757
+ "holistic": true,
5758
+ "dimension": "cross_module_architecture",
5759
+ "related_files": [
5760
+ "src/types.ts",
5761
+ "src/formats/types.ts",
5762
+ "src/formats/request-helpers.ts"
5763
+ ],
5764
+ "evidence": [
5765
+ "src/types.ts re-exports request/reply/rule types into one root barrel, and format modules import from ../types.js rather than their specific domain files.",
5766
+ "This pattern makes any change to request/reply/rule type boundaries ripple through a single high-fan-in module."
5767
+ ],
5768
+ "suggestion": "Split the barrel into domain entry points (for example: `src/types/request.ts`, `src/types/reply.ts`, `src/types/rule.ts`) and update format imports to target the specific domain paths; keep `src/types.ts` only for external package exports if needed, and avoid internal imports from it.",
5769
+ "reasoning": ""
5770
+ }
5771
+ }
5772
+ },
5773
+ "review::.::holistic::high_level_elegance::format_layer_owns_request_construction::24d2acb9": {
5774
+ "id": "review::.::holistic::high_level_elegance::format_layer_owns_request_construction::24d2acb9",
5775
+ "detector": "review",
5776
+ "file": ".",
5777
+ "tier": 3,
5778
+ "confidence": "medium",
5779
+ "summary": "Format layer builds the core MockRequest, blurring ownership of request lifecycle.",
5780
+ "detail": {
5781
+ "holistic": true,
5782
+ "dimension": "high_level_elegance",
5783
+ "related_files": [
5784
+ "src/formats/request-helpers.ts",
5785
+ "src/formats/types.ts",
5786
+ "src/types.ts"
5787
+ ],
5788
+ "evidence": [
5789
+ "buildMockRequest in src/formats/request-helpers.ts derives lastMessage/systemMessage/toolNames and sets headers/path defaults, which are core request concerns.",
5790
+ "Format interface in src/formats/types.ts consumes this helper indirectly, keeping request shape tied to the formats package."
5791
+ ],
5792
+ "suggestion": "Move MockRequest construction into a core module (for example `src/request/build-mock-request.ts` or `src/core/mock-request.ts`) and have format parsers return a minimal parsed shape; use the core builder to add shared defaults and derived fields.",
5793
+ "reasoning": ""
5794
+ },
5795
+ "status": "wontfix",
5796
+ "note": "Intentional design for a test utility",
5797
+ "first_seen": "2026-03-15T19:12:25+00:00",
5798
+ "last_seen": "2026-03-15T19:12:25+00:00",
5799
+ "resolved_at": "2026-03-15T19:15:41+00:00",
5800
+ "reopen_count": 0,
5801
+ "lang": "typescript",
5802
+ "suppressed": false,
5803
+ "suppressed_at": null,
5804
+ "suppression_pattern": null,
5805
+ "resolution_attestation": {
5806
+ "kind": "manual",
5807
+ "text": "I have actually reviewed this finding and confirmed it is an intentional design choice and I am not gaming the score by resolving without fixing.",
5808
+ "attested_at": "2026-03-15T19:15:41+00:00",
5809
+ "scan_verified": false
5810
+ },
5811
+ "wontfix_scan_count": 13,
5812
+ "wontfix_snapshot": {
5813
+ "captured_at": "2026-03-15T19:15:41+00:00",
5814
+ "scan_count": 13,
5815
+ "tier": 3,
5816
+ "confidence": "medium",
5817
+ "detail": {
5818
+ "holistic": true,
5819
+ "dimension": "high_level_elegance",
5820
+ "related_files": [
5821
+ "src/formats/request-helpers.ts",
5822
+ "src/formats/types.ts",
5823
+ "src/types.ts"
5824
+ ],
5825
+ "evidence": [
5826
+ "buildMockRequest in src/formats/request-helpers.ts derives lastMessage/systemMessage/toolNames and sets headers/path defaults, which are core request concerns.",
5827
+ "Format interface in src/formats/types.ts consumes this helper indirectly, keeping request shape tied to the formats package."
5828
+ ],
5829
+ "suggestion": "Move MockRequest construction into a core module (for example `src/request/build-mock-request.ts` or `src/core/mock-request.ts`) and have format parsers return a minimal parsed shape; use the core builder to add shared defaults and derived fields.",
5830
+ "reasoning": ""
5831
+ }
5832
+ }
5833
+ },
5834
+ "review::.::holistic::package_organization::flat_src_mixed_concerns::ea663f68": {
5835
+ "id": "review::.::holistic::package_organization::flat_src_mixed_concerns::ea663f68",
5836
+ "detector": "review",
5837
+ "file": ".",
5838
+ "tier": 3,
5839
+ "confidence": "high",
5840
+ "summary": "The root src/ directory is a mixed-concern flat folder that hides ownership boundaries.",
5841
+ "detail": {
5842
+ "holistic": true,
5843
+ "dimension": "package_organization",
5844
+ "related_files": [
5845
+ "src/logger.ts",
5846
+ "src/rule-engine.ts",
5847
+ "src/types.ts",
5848
+ "src/cli.ts",
5849
+ "src/mock-server.ts",
5850
+ "src/route-handler.ts",
5851
+ "src/loader.ts"
5852
+ ],
5853
+ "evidence": [
5854
+ "holistic_context.structure shows src/ contains 11 production files spanning CLI/server/logging/rules/types, indicating mixed responsibilities in a single directory.",
5855
+ "Core building blocks (logger, rule engine, types) live beside entrypoints, making navigation and change ownership less predictable.",
5856
+ "`src/` contains 11 files across CLI, HTTP server, rule engine, logging, and utilities (directory profile shows `file_count: 11`).",
5857
+ "Coupling shows bidirectional edges between `src/` and `src/formats/`, indicating blurred boundaries at the top level."
5858
+ ],
5859
+ "suggestion": "Staged reorg plan: 1) Create target folders `src/core/`, `src/logging/`, and `src/entrypoints/`. 2) Move core building blocks: `git mv src/rule-engine.ts src/core/rule-engine.ts`, `git mv src/types.ts src/core/types.ts`. 3) Move logging: `git mv src/logger.ts src/logging/logger.ts`. 4) Update imports by searching: `rg -n \"from \\\"\\.\\/rule-engine\\\"|from \\\"\\.\\/types\\\"|from \\\"\\.\\/logger\\\"\" src test` and adjust to new paths. 5) Validate with `npm test` and `npm run build`.",
5860
+ "reasoning": ""
5861
+ },
5862
+ "status": "wontfix",
5863
+ "note": "Intentional design for a test utility",
5864
+ "first_seen": "2026-03-15T19:12:25+00:00",
5865
+ "last_seen": "2026-03-15T19:12:25+00:00",
5866
+ "resolved_at": "2026-03-15T19:15:22+00:00",
5867
+ "reopen_count": 0,
5868
+ "lang": "typescript",
5869
+ "suppressed": false,
5870
+ "suppressed_at": null,
5871
+ "suppression_pattern": null,
5872
+ "resolution_attestation": {
5873
+ "kind": "manual",
5874
+ "text": "I have actually reviewed this finding and confirmed it is an intentional design choice for a mock server test tool and I am not gaming the score by resolving without fixing.",
5875
+ "attested_at": "2026-03-15T19:15:22+00:00",
5876
+ "scan_verified": false
5877
+ },
5878
+ "wontfix_scan_count": 13,
5879
+ "wontfix_snapshot": {
5880
+ "captured_at": "2026-03-15T19:15:22+00:00",
5881
+ "scan_count": 13,
5882
+ "tier": 3,
5883
+ "confidence": "high",
5884
+ "detail": {
5885
+ "holistic": true,
5886
+ "dimension": "package_organization",
5887
+ "related_files": [
5888
+ "src/logger.ts",
5889
+ "src/rule-engine.ts",
5890
+ "src/types.ts",
5891
+ "src/cli.ts",
5892
+ "src/mock-server.ts",
5893
+ "src/route-handler.ts",
5894
+ "src/loader.ts"
5895
+ ],
5896
+ "evidence": [
5897
+ "holistic_context.structure shows src/ contains 11 production files spanning CLI/server/logging/rules/types, indicating mixed responsibilities in a single directory.",
5898
+ "Core building blocks (logger, rule engine, types) live beside entrypoints, making navigation and change ownership less predictable.",
5899
+ "`src/` contains 11 files across CLI, HTTP server, rule engine, logging, and utilities (directory profile shows `file_count: 11`).",
5900
+ "Coupling shows bidirectional edges between `src/` and `src/formats/`, indicating blurred boundaries at the top level."
5901
+ ],
5902
+ "suggestion": "Staged reorg plan: 1) Create target folders `src/core/`, `src/logging/`, and `src/entrypoints/`. 2) Move core building blocks: `git mv src/rule-engine.ts src/core/rule-engine.ts`, `git mv src/types.ts src/core/types.ts`. 3) Move logging: `git mv src/logger.ts src/logging/logger.ts`. 4) Update imports by searching: `rg -n \"from \\\"\\.\\/rule-engine\\\"|from \\\"\\.\\/types\\\"|from \\\"\\.\\/logger\\\"\" src test` and adjust to new paths. 5) Validate with `npm test` and `npm run build`.",
5903
+ "reasoning": ""
5904
+ }
5905
+ }
5906
+ },
5907
+ "review::.::holistic::design_coherence::sequence_rule_duplication::d33d3334": {
5908
+ "id": "review::.::holistic::design_coherence::sequence_rule_duplication::d33d3334",
5909
+ "detector": "review",
5910
+ "file": ".",
5911
+ "tier": 3,
5912
+ "confidence": "medium",
5913
+ "summary": "Sequence rule normalization is duplicated in server API and loader paths",
5914
+ "detail": {
5915
+ "holistic": true,
5916
+ "dimension": "design_coherence",
5917
+ "related_files": [
5918
+ "src/mock-server.ts",
5919
+ "src/loader.ts",
5920
+ "src/rule-engine.ts"
5921
+ ],
5922
+ "evidence": [
5923
+ "`MockServer.when().replySequence()` maps `SequenceEntry` values into steps, creates a sequence resolver, assigns `rule.resolve`, and sets `rule.remaining`.",
5924
+ "`addSequenceRule()` in `src/loader.ts` performs the same step normalization, `createSequenceResolver()` call, and `rule.remaining` setup for JSON5 rules."
5925
+ ],
5926
+ "suggestion": "Extract a shared helper in `src/rule-engine.ts` (or a new `sequence` utility) that accepts normalized entries and returns a configured rule; use it from both `replySequence()` and `addSequenceRule()` to centralize sequence behavior.",
5927
+ "reasoning": ""
5928
+ },
5929
+ "status": "wontfix",
5930
+ "note": "Intentional design for a test utility",
5931
+ "first_seen": "2026-03-15T19:12:25+00:00",
5932
+ "last_seen": "2026-03-15T19:12:25+00:00",
5933
+ "resolved_at": "2026-03-15T19:15:41+00:00",
5934
+ "reopen_count": 0,
5935
+ "lang": "typescript",
5936
+ "suppressed": false,
5937
+ "suppressed_at": null,
5938
+ "suppression_pattern": null,
5939
+ "resolution_attestation": {
5940
+ "kind": "manual",
5941
+ "text": "I have actually reviewed this finding and confirmed it is an intentional design choice and I am not gaming the score by resolving without fixing.",
5942
+ "attested_at": "2026-03-15T19:15:41+00:00",
5943
+ "scan_verified": false
5944
+ },
5945
+ "wontfix_scan_count": 13,
5946
+ "wontfix_snapshot": {
5947
+ "captured_at": "2026-03-15T19:15:41+00:00",
5948
+ "scan_count": 13,
5949
+ "tier": 3,
5950
+ "confidence": "medium",
5951
+ "detail": {
5952
+ "holistic": true,
5953
+ "dimension": "design_coherence",
5954
+ "related_files": [
5955
+ "src/mock-server.ts",
5956
+ "src/loader.ts",
5957
+ "src/rule-engine.ts"
5958
+ ],
5959
+ "evidence": [
5960
+ "`MockServer.when().replySequence()` maps `SequenceEntry` values into steps, creates a sequence resolver, assigns `rule.resolve`, and sets `rule.remaining`.",
5961
+ "`addSequenceRule()` in `src/loader.ts` performs the same step normalization, `createSequenceResolver()` call, and `rule.remaining` setup for JSON5 rules."
5962
+ ],
5963
+ "suggestion": "Extract a shared helper in `src/rule-engine.ts` (or a new `sequence` utility) that accepts normalized entries and returns a configured rule; use it from both `replySequence()` and `addSequenceRule()` to centralize sequence behavior.",
5964
+ "reasoning": ""
5965
+ }
5966
+ }
5967
+ },
5968
+ "review::.::holistic::design_coherence::mockserver_multi_role::8953649a": {
5969
+ "id": "review::.::holistic::design_coherence::mockserver_multi_role::8953649a",
5970
+ "detector": "review",
5971
+ "file": ".",
5972
+ "tier": 3,
5973
+ "confidence": "medium",
5974
+ "summary": "`MockServer` combines server lifecycle, rule authoring, and state tracking responsibilities",
5975
+ "detail": {
5976
+ "holistic": true,
5977
+ "dimension": "design_coherence",
5978
+ "related_files": [
5979
+ "src/mock-server.ts",
5980
+ "src/rule-engine.ts",
5981
+ "src/history.ts"
5982
+ ],
5983
+ "evidence": [
5984
+ "`MockServer` constructs the Fastify server and registers format routes in the constructor, exposes rule authoring methods (`when`, `whenTool`, `nextError`), manages fallback state, and owns `RequestHistory` and logging.",
5985
+ "This blends HTTP runtime concerns with rule registry and history concerns that already exist as separate modules (`RuleEngine`, `RequestHistory`)."
5986
+ ],
5987
+ "suggestion": "Split `MockServer` into a runtime/server wrapper and a rule/history registry (e.g., extract a `RuleRegistry` or `MockServerCore` that exposes `when*`, `history`, `rules`, and fallback), and keep Fastify lifecycle and route wiring in a thinner server class.",
5988
+ "reasoning": ""
5989
+ },
5990
+ "status": "wontfix",
5991
+ "note": "Intentional design for a test utility",
5992
+ "first_seen": "2026-03-15T19:12:25+00:00",
5993
+ "last_seen": "2026-03-15T19:12:25+00:00",
5994
+ "resolved_at": "2026-03-15T19:15:40+00:00",
5995
+ "reopen_count": 0,
5996
+ "lang": "typescript",
5997
+ "suppressed": false,
5998
+ "suppressed_at": null,
5999
+ "suppression_pattern": null,
6000
+ "resolution_attestation": {
6001
+ "kind": "manual",
6002
+ "text": "I have actually reviewed this finding and confirmed it is an intentional design choice and I am not gaming the score by resolving without fixing.",
6003
+ "attested_at": "2026-03-15T19:15:40+00:00",
6004
+ "scan_verified": false
6005
+ },
6006
+ "wontfix_scan_count": 13,
6007
+ "wontfix_snapshot": {
6008
+ "captured_at": "2026-03-15T19:15:40+00:00",
6009
+ "scan_count": 13,
6010
+ "tier": 3,
6011
+ "confidence": "medium",
6012
+ "detail": {
6013
+ "holistic": true,
6014
+ "dimension": "design_coherence",
6015
+ "related_files": [
6016
+ "src/mock-server.ts",
6017
+ "src/rule-engine.ts",
6018
+ "src/history.ts"
6019
+ ],
6020
+ "evidence": [
6021
+ "`MockServer` constructs the Fastify server and registers format routes in the constructor, exposes rule authoring methods (`when`, `whenTool`, `nextError`), manages fallback state, and owns `RequestHistory` and logging.",
6022
+ "This blends HTTP runtime concerns with rule registry and history concerns that already exist as separate modules (`RuleEngine`, `RequestHistory`)."
6023
+ ],
6024
+ "suggestion": "Split `MockServer` into a runtime/server wrapper and a rule/history registry (e.g., extract a `RuleRegistry` or `MockServerCore` that exposes `when*`, `history`, `rules`, and fallback), and keep Fastify lifecycle and route wiring in a thinner server class.",
6025
+ "reasoning": ""
6026
+ }
6027
+ }
6028
+ },
6029
+ "review::.::holistic::error_consistency::resolver_errors_swallowed::3361a67b": {
6030
+ "id": "review::.::holistic::error_consistency::resolver_errors_swallowed::3361a67b",
6031
+ "detector": "review",
6032
+ "file": ".",
6033
+ "tier": 3,
6034
+ "confidence": "high",
6035
+ "summary": "Resolver exceptions are swallowed and returned as normal fallback replies",
6036
+ "detail": {
6037
+ "holistic": true,
6038
+ "dimension": "error_consistency",
6039
+ "related_files": [
6040
+ "src/route-handler.ts",
6041
+ "src/types/reply.ts",
6042
+ "src/mock-server.ts"
6043
+ ],
6044
+ "evidence": [
6045
+ "`resolveReply` catches resolver errors and returns `normalizeReply(fallback)` with no error signal.",
6046
+ "Downstream in the handler, the fallback reply is serialized as a normal 200 response if it doesn\u2019t set `error`."
6047
+ ],
6048
+ "suggestion": "Surface resolver failures explicitly: either rethrow and let Fastify return 500, or translate to `ReplyObject.error` with a 5xx status. Update `resolveReply` and `createRouteHandler` to propagate an error reply, and document the error contract in `src/types/reply.ts`.",
6049
+ "reasoning": ""
6050
+ },
6051
+ "status": "wontfix",
6052
+ "note": "Intentional design for a test utility",
6053
+ "first_seen": "2026-03-15T19:12:25+00:00",
6054
+ "last_seen": "2026-03-15T19:12:25+00:00",
6055
+ "resolved_at": "2026-03-15T19:15:20+00:00",
6056
+ "reopen_count": 0,
6057
+ "lang": "typescript",
6058
+ "suppressed": false,
6059
+ "suppressed_at": null,
6060
+ "suppression_pattern": null,
6061
+ "resolution_attestation": {
6062
+ "kind": "manual",
6063
+ "text": "I have actually reviewed this finding and confirmed it is an intentional design choice for a mock server test tool and I am not gaming the score by resolving without fixing.",
6064
+ "attested_at": "2026-03-15T19:15:20+00:00",
6065
+ "scan_verified": false
6066
+ },
6067
+ "wontfix_scan_count": 13,
6068
+ "wontfix_snapshot": {
6069
+ "captured_at": "2026-03-15T19:15:20+00:00",
6070
+ "scan_count": 13,
6071
+ "tier": 3,
6072
+ "confidence": "high",
6073
+ "detail": {
6074
+ "holistic": true,
6075
+ "dimension": "error_consistency",
6076
+ "related_files": [
6077
+ "src/route-handler.ts",
6078
+ "src/types/reply.ts",
6079
+ "src/mock-server.ts"
6080
+ ],
6081
+ "evidence": [
6082
+ "`resolveReply` catches resolver errors and returns `normalizeReply(fallback)` with no error signal.",
6083
+ "Downstream in the handler, the fallback reply is serialized as a normal 200 response if it doesn\u2019t set `error`."
6084
+ ],
6085
+ "suggestion": "Surface resolver failures explicitly: either rethrow and let Fastify return 500, or translate to `ReplyObject.error` with a 5xx status. Update `resolveReply` and `createRouteHandler` to propagate an error reply, and document the error contract in `src/types/reply.ts`.",
6086
+ "reasoning": ""
6087
+ }
6088
+ }
6089
+ },
6090
+ "review::.::holistic::error_consistency::responses_tools_silent_drop::4c5b6b37": {
6091
+ "id": "review::.::holistic::error_consistency::responses_tools_silent_drop::4c5b6b37",
6092
+ "detector": "review",
6093
+ "file": ".",
6094
+ "tier": 3,
6095
+ "confidence": "medium",
6096
+ "summary": "Responses tool parsing silently drops invalid tools unlike other formats",
6097
+ "detail": {
6098
+ "holistic": true,
6099
+ "dimension": "error_consistency",
6100
+ "related_files": [
6101
+ "src/formats/responses/parse.ts",
6102
+ "src/formats/openai/parse.ts",
6103
+ "src/formats/anthropic/parse.ts"
6104
+ ],
6105
+ "evidence": [
6106
+ "`parseTools` in responses uses `FunctionToolSchema.safeParse` and filters out failed parses, so malformed tool entries are ignored.",
6107
+ "OpenAI and Anthropic requests rely on schema parsing that fails the whole request on invalid structures."
6108
+ ],
6109
+ "suggestion": "Align tool-validation behavior across formats: either treat invalid tools as a request error for responses, or document and apply a consistent \u201cbest-effort\u201d policy across all formats. Prefer failing the request for invalid tools to keep error handling predictable.",
6110
+ "reasoning": ""
6111
+ },
6112
+ "status": "wontfix",
6113
+ "note": "Intentional design for a test utility",
6114
+ "first_seen": "2026-03-15T19:12:25+00:00",
6115
+ "last_seen": "2026-03-15T19:12:25+00:00",
6116
+ "resolved_at": "2026-03-15T19:15:41+00:00",
6117
+ "reopen_count": 0,
6118
+ "lang": "typescript",
6119
+ "suppressed": false,
6120
+ "suppressed_at": null,
6121
+ "suppression_pattern": null,
6122
+ "resolution_attestation": {
6123
+ "kind": "manual",
6124
+ "text": "I have actually reviewed this finding and confirmed it is an intentional design choice and I am not gaming the score by resolving without fixing.",
6125
+ "attested_at": "2026-03-15T19:15:41+00:00",
6126
+ "scan_verified": false
6127
+ },
6128
+ "wontfix_scan_count": 13,
6129
+ "wontfix_snapshot": {
6130
+ "captured_at": "2026-03-15T19:15:41+00:00",
6131
+ "scan_count": 13,
6132
+ "tier": 3,
6133
+ "confidence": "medium",
6134
+ "detail": {
6135
+ "holistic": true,
6136
+ "dimension": "error_consistency",
6137
+ "related_files": [
6138
+ "src/formats/responses/parse.ts",
6139
+ "src/formats/openai/parse.ts",
6140
+ "src/formats/anthropic/parse.ts"
6141
+ ],
6142
+ "evidence": [
6143
+ "`parseTools` in responses uses `FunctionToolSchema.safeParse` and filters out failed parses, so malformed tool entries are ignored.",
6144
+ "OpenAI and Anthropic requests rely on schema parsing that fails the whole request on invalid structures."
6145
+ ],
6146
+ "suggestion": "Align tool-validation behavior across formats: either treat invalid tools as a request error for responses, or document and apply a consistent \u201cbest-effort\u201d policy across all formats. Prefer failing the request for invalid tools to keep error handling predictable.",
6147
+ "reasoning": ""
6148
+ }
6149
+ }
6150
+ },
6151
+ "review::.::holistic::low_level_elegance::non_unique_ids::80424bff": {
6152
+ "id": "review::.::holistic::low_level_elegance::non_unique_ids::80424bff",
6153
+ "detector": "review",
6154
+ "file": ".",
6155
+ "tier": 3,
6156
+ "confidence": "high",
6157
+ "summary": "ID generation relies on Date.now(), risking collisions under concurrency",
6158
+ "detail": {
6159
+ "holistic": true,
6160
+ "dimension": "low_level_elegance",
6161
+ "related_files": [
6162
+ "src/formats/serialize-helpers.ts",
6163
+ "src/formats/openai/serialize.ts",
6164
+ "src/formats/responses/serialize.ts"
6165
+ ],
6166
+ "evidence": [
6167
+ "`genId` and `toolId` use `Date.now().toString(36)` which can repeat in the same millisecond.",
6168
+ "Streaming serializers call these helpers multiple times per request, and concurrent requests can produce duplicate IDs."
6169
+ ],
6170
+ "suggestion": "Switch to a collision-resistant ID source (e.g., `crypto.randomUUID()` or a process-wide monotonic counter with a random prefix). Update `genId`/`toolId` and regenerate IDs in the serializers to avoid duplicate response IDs.",
6171
+ "reasoning": ""
6172
+ },
6173
+ "status": "wontfix",
6174
+ "note": "Intentional design for a test utility",
6175
+ "first_seen": "2026-03-15T19:12:25+00:00",
6176
+ "last_seen": "2026-03-15T19:12:25+00:00",
6177
+ "resolved_at": "2026-03-15T19:15:21+00:00",
6178
+ "reopen_count": 0,
6179
+ "lang": "typescript",
6180
+ "suppressed": false,
6181
+ "suppressed_at": null,
6182
+ "suppression_pattern": null,
6183
+ "resolution_attestation": {
6184
+ "kind": "manual",
6185
+ "text": "I have actually reviewed this finding and confirmed it is an intentional design choice for a mock server test tool and I am not gaming the score by resolving without fixing.",
6186
+ "attested_at": "2026-03-15T19:15:21+00:00",
6187
+ "scan_verified": false
6188
+ },
6189
+ "wontfix_scan_count": 13,
6190
+ "wontfix_snapshot": {
6191
+ "captured_at": "2026-03-15T19:15:21+00:00",
6192
+ "scan_count": 13,
6193
+ "tier": 3,
6194
+ "confidence": "high",
6195
+ "detail": {
6196
+ "holistic": true,
6197
+ "dimension": "low_level_elegance",
6198
+ "related_files": [
6199
+ "src/formats/serialize-helpers.ts",
6200
+ "src/formats/openai/serialize.ts",
6201
+ "src/formats/responses/serialize.ts"
6202
+ ],
6203
+ "evidence": [
6204
+ "`genId` and `toolId` use `Date.now().toString(36)` which can repeat in the same millisecond.",
6205
+ "Streaming serializers call these helpers multiple times per request, and concurrent requests can produce duplicate IDs."
6206
+ ],
6207
+ "suggestion": "Switch to a collision-resistant ID source (e.g., `crypto.randomUUID()` or a process-wide monotonic counter with a random prefix). Update `genId`/`toolId` and regenerate IDs in the serializers to avoid duplicate response IDs.",
6208
+ "reasoning": ""
6209
+ }
6210
+ }
6211
+ }
6212
+ },
6213
+ "scan_coverage": {
6214
+ "typescript": {
6215
+ "status": "full",
6216
+ "confidence": 1.0,
6217
+ "detectors": {
6218
+ "security": {
6219
+ "detector": "security",
6220
+ "status": "full",
6221
+ "confidence": 1.0,
6222
+ "summary": "Security coverage complete for enabled detectors.",
6223
+ "impact": "",
6224
+ "remediation": "",
6225
+ "tool": "",
6226
+ "reason": ""
6227
+ }
6228
+ },
6229
+ "warnings": [],
6230
+ "updated_at": "2026-03-15T19:12:32+00:00"
6231
+ }
6232
+ },
6233
+ "score_confidence": {
6234
+ "status": "full",
6235
+ "confidence": 1.0,
6236
+ "detectors": [],
6237
+ "dimensions": []
6238
+ },
6239
+ "subjective_integrity": {
6240
+ "status": "disabled",
6241
+ "target_score": null,
6242
+ "matched_count": 0,
6243
+ "matched_dimensions": [],
6244
+ "reset_dimensions": []
6245
+ },
6246
+ "subjective_assessments": {
6247
+ "cross_module_architecture": {
6248
+ "score": 73.2,
6249
+ "source": "holistic",
6250
+ "assessed_at": "2026-03-15T19:12:25+00:00",
6251
+ "needs_review_refresh": true,
6252
+ "refresh_reason": "review_finding_wontfix",
6253
+ "stale_since": "2026-03-15T19:15:40+00:00"
6254
+ },
6255
+ "convention_outlier": {
6256
+ "score": 78.8,
6257
+ "source": "holistic",
6258
+ "assessed_at": "2026-03-15T19:12:25+00:00",
6259
+ "needs_review_refresh": true,
6260
+ "refresh_reason": "review_finding_wontfix",
6261
+ "stale_since": "2026-03-15T19:16:02+00:00"
6262
+ },
6263
+ "error_consistency": {
6264
+ "score": 67.8,
6265
+ "source": "holistic",
6266
+ "assessed_at": "2026-03-15T19:12:25+00:00",
6267
+ "needs_review_refresh": true,
6268
+ "refresh_reason": "review_finding_wontfix",
6269
+ "stale_since": "2026-03-15T19:15:41+00:00"
6270
+ },
6271
+ "abstraction_fitness": {
6272
+ "score": 79.3,
6273
+ "source": "holistic",
6274
+ "assessed_at": "2026-03-15T19:12:25+00:00",
6275
+ "components": [
6276
+ "Abstraction Leverage",
6277
+ "Indirection Cost",
6278
+ "Interface Honesty"
6279
+ ],
6280
+ "component_scores": {
6281
+ "Abstraction Leverage": 82.0,
6282
+ "Indirection Cost": 85.7,
6283
+ "Interface Honesty": 86.0
6284
+ },
6285
+ "needs_review_refresh": true,
6286
+ "refresh_reason": "review_finding_wontfix",
6287
+ "stale_since": "2026-03-15T19:15:20+00:00"
6288
+ },
6289
+ "api_surface_coherence": {
6290
+ "score": 67.3,
6291
+ "source": "holistic",
6292
+ "assessed_at": "2026-03-15T19:12:25+00:00",
6293
+ "needs_review_refresh": true,
6294
+ "refresh_reason": "review_finding_wontfix",
6295
+ "stale_since": "2026-03-15T19:15:39+00:00"
6296
+ },
6297
+ "authorization_consistency": {
6298
+ "score": 92.8,
6299
+ "source": "holistic",
6300
+ "assessed_at": "2026-03-15T19:12:25+00:00"
6301
+ },
6302
+ "ai_generated_debt": {
6303
+ "score": 86.5,
6304
+ "source": "holistic",
6305
+ "assessed_at": "2026-03-15T19:12:25+00:00",
6306
+ "needs_review_refresh": true,
6307
+ "refresh_reason": "review_finding_wontfix",
6308
+ "stale_since": "2026-03-15T19:15:39+00:00"
6309
+ },
6310
+ "incomplete_migration": {
6311
+ "score": 95.7,
6312
+ "source": "holistic",
6313
+ "assessed_at": "2026-03-15T19:12:25+00:00"
6314
+ },
6315
+ "package_organization": {
6316
+ "score": 61.6,
6317
+ "source": "holistic",
6318
+ "assessed_at": "2026-03-15T19:12:25+00:00",
6319
+ "needs_review_refresh": true,
6320
+ "refresh_reason": "review_finding_wontfix",
6321
+ "stale_since": "2026-03-15T19:15:39+00:00"
6322
+ },
6323
+ "high_level_elegance": {
6324
+ "score": 66.7,
6325
+ "source": "holistic",
6326
+ "assessed_at": "2026-03-15T19:12:25+00:00",
6327
+ "needs_review_refresh": true,
6328
+ "refresh_reason": "review_finding_wontfix",
6329
+ "stale_since": "2026-03-15T19:16:02+00:00"
6330
+ },
6331
+ "mid_level_elegance": {
6332
+ "score": 82.3,
6333
+ "source": "holistic",
6334
+ "assessed_at": "2026-03-15T19:12:25+00:00",
6335
+ "needs_review_refresh": true,
6336
+ "refresh_reason": "review_finding_wontfix",
6337
+ "stale_since": "2026-03-15T19:16:02+00:00"
6338
+ },
6339
+ "low_level_elegance": {
6340
+ "score": 78.3,
6341
+ "source": "holistic",
6342
+ "assessed_at": "2026-03-15T19:12:25+00:00",
6343
+ "needs_review_refresh": true,
6344
+ "refresh_reason": "review_finding_wontfix",
6345
+ "stale_since": "2026-03-15T19:15:21+00:00"
6346
+ },
6347
+ "design_coherence": {
6348
+ "score": 72.8,
6349
+ "source": "holistic",
6350
+ "assessed_at": "2026-03-15T19:12:25+00:00",
6351
+ "needs_review_refresh": true,
6352
+ "refresh_reason": "review_finding_wontfix",
6353
+ "stale_since": "2026-03-15T19:15:41+00:00"
6354
+ }
6355
+ },
6356
+ "lang_capabilities": {
6357
+ "typescript": {
6358
+ "fixers": [
6359
+ "dead-useeffect",
6360
+ "debug-logs",
6361
+ "empty-if-chain",
6362
+ "unused-imports",
6363
+ "unused-params",
6364
+ "unused-vars"
6365
+ ],
6366
+ "typecheck_cmd": "npx tsc --noEmit"
6367
+ }
6368
+ },
6369
+ "zone_distribution": {
6370
+ "production": 29,
6371
+ "test": 11,
6372
+ "config": 1
6373
+ },
6374
+ "scan_history": [
6375
+ {
6376
+ "timestamp": "2026-03-14T23:50:01+00:00",
6377
+ "lang": "typescript",
6378
+ "strict_score": 31.3,
6379
+ "verified_strict_score": 78.1,
6380
+ "objective_score": 78.1,
6381
+ "overall_score": 31.3,
6382
+ "open": 69,
6383
+ "diff_new": 69,
6384
+ "diff_resolved": 0,
6385
+ "ignored": 0,
6386
+ "raw_findings": 69,
6387
+ "suppressed_pct": 0.0,
6388
+ "ignore_patterns": 0,
6389
+ "subjective_integrity": {
6390
+ "status": "pass",
6391
+ "matched_count": 0,
6392
+ "reset_count": 0,
6393
+ "target_score": 95.0
6394
+ },
6395
+ "score_confidence": {
6396
+ "status": "full",
6397
+ "confidence": 1.0,
6398
+ "detector_count": 0,
6399
+ "dimension_count": 0
6400
+ },
6401
+ "dimension_scores": {
5050
6402
  "File health": {
5051
6403
  "score": 100.0,
5052
6404
  "strict": 100.0
@@ -5637,12 +6989,214 @@
5637
6989
  "diff_new": 0,
5638
6990
  "diff_resolved": 0,
5639
6991
  "ignored": 0,
5640
- "raw_findings": 30,
6992
+ "raw_findings": 30,
6993
+ "suppressed_pct": 0.0,
6994
+ "ignore_patterns": 0,
6995
+ "subjective_integrity": {
6996
+ "status": "pass",
6997
+ "matched_count": 0,
6998
+ "reset_count": 0,
6999
+ "target_score": 95.0
7000
+ },
7001
+ "score_confidence": {
7002
+ "status": "full",
7003
+ "confidence": 1.0,
7004
+ "detector_count": 0,
7005
+ "dimension_count": 0
7006
+ },
7007
+ "dimension_scores": {
7008
+ "File health": {
7009
+ "score": 100.0,
7010
+ "strict": 100.0
7011
+ },
7012
+ "Code quality": {
7013
+ "score": 100.0,
7014
+ "strict": 96.4
7015
+ },
7016
+ "Duplication": {
7017
+ "score": 100.0,
7018
+ "strict": 100.0
7019
+ },
7020
+ "Test health": {
7021
+ "score": 100.0,
7022
+ "strict": 65.8
7023
+ },
7024
+ "Security": {
7025
+ "score": 100.0,
7026
+ "strict": 100.0
7027
+ },
7028
+ "Error consistency": {
7029
+ "score": 84.0,
7030
+ "strict": 84.0
7031
+ },
7032
+ "Abstraction fit": {
7033
+ "score": 93.0,
7034
+ "strict": 93.0
7035
+ },
7036
+ "AI generated debt": {
7037
+ "score": 82.0,
7038
+ "strict": 82.0
7039
+ },
7040
+ "High elegance": {
7041
+ "score": 93.0,
7042
+ "strict": 93.0
7043
+ },
7044
+ "Mid elegance": {
7045
+ "score": 90.0,
7046
+ "strict": 90.0
7047
+ },
7048
+ "Low elegance": {
7049
+ "score": 87.0,
7050
+ "strict": 87.0
7051
+ },
7052
+ "Cross-module arch": {
7053
+ "score": 92.0,
7054
+ "strict": 92.0
7055
+ },
7056
+ "Convention drift": {
7057
+ "score": 88.5,
7058
+ "strict": 88.5
7059
+ },
7060
+ "API coherence": {
7061
+ "score": 86.0,
7062
+ "strict": 86.0
7063
+ },
7064
+ "Auth consistency": {
7065
+ "score": 100.0,
7066
+ "strict": 100.0
7067
+ },
7068
+ "Stale migration": {
7069
+ "score": 97.0,
7070
+ "strict": 97.0
7071
+ },
7072
+ "Structure nav": {
7073
+ "score": 93.0,
7074
+ "strict": 93.0
7075
+ },
7076
+ "Design coherence": {
7077
+ "score": 84.0,
7078
+ "strict": 84.0
7079
+ }
7080
+ }
7081
+ },
7082
+ {
7083
+ "timestamp": "2026-03-15T05:00:28+00:00",
7084
+ "lang": "typescript",
7085
+ "strict_score": 93.6,
7086
+ "verified_strict_score": 100.0,
7087
+ "objective_score": 100.0,
7088
+ "overall_score": 93.6,
7089
+ "open": 19,
7090
+ "diff_new": 19,
7091
+ "diff_resolved": 31,
7092
+ "ignored": 0,
7093
+ "raw_findings": 19,
7094
+ "suppressed_pct": 0.0,
7095
+ "ignore_patterns": 0,
7096
+ "subjective_integrity": {
7097
+ "status": "disabled",
7098
+ "matched_count": 0,
7099
+ "reset_count": 0,
7100
+ "target_score": null
7101
+ },
7102
+ "score_confidence": {
7103
+ "status": "full",
7104
+ "confidence": 1.0,
7105
+ "detector_count": 0,
7106
+ "dimension_count": 0
7107
+ },
7108
+ "dimension_scores": {
7109
+ "File health": {
7110
+ "score": 100.0,
7111
+ "strict": 100.0
7112
+ },
7113
+ "Code quality": {
7114
+ "score": 100.0,
7115
+ "strict": 100.0
7116
+ },
7117
+ "Duplication": {
7118
+ "score": 100.0,
7119
+ "strict": 100.0
7120
+ },
7121
+ "Test health": {
7122
+ "score": 100.0,
7123
+ "strict": 100.0
7124
+ },
7125
+ "Security": {
7126
+ "score": 100.0,
7127
+ "strict": 100.0
7128
+ },
7129
+ "Error consistency": {
7130
+ "score": 82.0,
7131
+ "strict": 82.0
7132
+ },
7133
+ "Abstraction fit": {
7134
+ "score": 91.0,
7135
+ "strict": 91.0
7136
+ },
7137
+ "AI generated debt": {
7138
+ "score": 88.0,
7139
+ "strict": 88.0
7140
+ },
7141
+ "High elegance": {
7142
+ "score": 92.0,
7143
+ "strict": 92.0
7144
+ },
7145
+ "Mid elegance": {
7146
+ "score": 88.0,
7147
+ "strict": 88.0
7148
+ },
7149
+ "Low elegance": {
7150
+ "score": 86.0,
7151
+ "strict": 86.0
7152
+ },
7153
+ "Cross-module arch": {
7154
+ "score": 93.0,
7155
+ "strict": 93.0
7156
+ },
7157
+ "Convention drift": {
7158
+ "score": 90.0,
7159
+ "strict": 90.0
7160
+ },
7161
+ "API coherence": {
7162
+ "score": 85.0,
7163
+ "strict": 85.0
7164
+ },
7165
+ "Auth consistency": {
7166
+ "score": 100.0,
7167
+ "strict": 100.0
7168
+ },
7169
+ "Stale migration": {
7170
+ "score": 95.0,
7171
+ "strict": 95.0
7172
+ },
7173
+ "Structure nav": {
7174
+ "score": 94.0,
7175
+ "strict": 94.0
7176
+ },
7177
+ "Design coherence": {
7178
+ "score": 87.0,
7179
+ "strict": 87.0
7180
+ }
7181
+ }
7182
+ },
7183
+ {
7184
+ "timestamp": "2026-03-15T05:00:35+00:00",
7185
+ "lang": "typescript",
7186
+ "strict_score": 87.8,
7187
+ "verified_strict_score": 85.5,
7188
+ "objective_score": 85.5,
7189
+ "overall_score": 87.8,
7190
+ "open": 50,
7191
+ "diff_new": 2,
7192
+ "diff_resolved": 0,
7193
+ "ignored": 0,
7194
+ "raw_findings": 31,
5641
7195
  "suppressed_pct": 0.0,
5642
7196
  "ignore_patterns": 0,
5643
7197
  "subjective_integrity": {
5644
- "status": "pass",
5645
- "matched_count": 0,
7198
+ "status": "warn",
7199
+ "matched_count": 1,
5646
7200
  "reset_count": 0,
5647
7201
  "target_score": 95.0
5648
7202
  },
@@ -5658,94 +7212,94 @@
5658
7212
  "strict": 100.0
5659
7213
  },
5660
7214
  "Code quality": {
5661
- "score": 100.0,
7215
+ "score": 96.4,
5662
7216
  "strict": 96.4
5663
7217
  },
5664
7218
  "Duplication": {
5665
- "score": 100.0,
5666
- "strict": 100.0
7219
+ "score": 99.0,
7220
+ "strict": 99.0
5667
7221
  },
5668
7222
  "Test health": {
5669
- "score": 100.0,
5670
- "strict": 65.8
7223
+ "score": 63.1,
7224
+ "strict": 63.1
5671
7225
  },
5672
7226
  "Security": {
5673
7227
  "score": 100.0,
5674
7228
  "strict": 100.0
5675
7229
  },
5676
7230
  "Error consistency": {
5677
- "score": 84.0,
5678
- "strict": 84.0
7231
+ "score": 82.0,
7232
+ "strict": 82.0
5679
7233
  },
5680
7234
  "Abstraction fit": {
5681
- "score": 93.0,
5682
- "strict": 93.0
7235
+ "score": 91.0,
7236
+ "strict": 91.0
5683
7237
  },
5684
7238
  "AI generated debt": {
5685
- "score": 82.0,
5686
- "strict": 82.0
7239
+ "score": 88.0,
7240
+ "strict": 88.0
5687
7241
  },
5688
7242
  "High elegance": {
5689
- "score": 93.0,
5690
- "strict": 93.0
7243
+ "score": 92.0,
7244
+ "strict": 92.0
5691
7245
  },
5692
7246
  "Mid elegance": {
5693
- "score": 90.0,
5694
- "strict": 90.0
7247
+ "score": 88.0,
7248
+ "strict": 88.0
5695
7249
  },
5696
7250
  "Low elegance": {
5697
- "score": 87.0,
5698
- "strict": 87.0
7251
+ "score": 86.0,
7252
+ "strict": 86.0
5699
7253
  },
5700
7254
  "Cross-module arch": {
5701
- "score": 92.0,
5702
- "strict": 92.0
7255
+ "score": 93.0,
7256
+ "strict": 93.0
5703
7257
  },
5704
7258
  "Convention drift": {
5705
- "score": 88.5,
5706
- "strict": 88.5
7259
+ "score": 90.0,
7260
+ "strict": 90.0
5707
7261
  },
5708
7262
  "API coherence": {
5709
- "score": 86.0,
5710
- "strict": 86.0
7263
+ "score": 85.0,
7264
+ "strict": 85.0
5711
7265
  },
5712
7266
  "Auth consistency": {
5713
7267
  "score": 100.0,
5714
7268
  "strict": 100.0
5715
7269
  },
5716
7270
  "Stale migration": {
5717
- "score": 97.0,
5718
- "strict": 97.0
7271
+ "score": 95.0,
7272
+ "strict": 95.0
5719
7273
  },
5720
7274
  "Structure nav": {
5721
- "score": 93.0,
5722
- "strict": 93.0
7275
+ "score": 94.0,
7276
+ "strict": 94.0
5723
7277
  },
5724
7278
  "Design coherence": {
5725
- "score": 84.0,
5726
- "strict": 84.0
7279
+ "score": 87.0,
7280
+ "strict": 87.0
5727
7281
  }
5728
7282
  }
5729
7283
  },
5730
7284
  {
5731
- "timestamp": "2026-03-15T05:00:28+00:00",
7285
+ "timestamp": "2026-03-15T05:08:48+00:00",
5732
7286
  "lang": "typescript",
5733
- "strict_score": 93.6,
5734
- "verified_strict_score": 100.0,
5735
- "objective_score": 100.0,
5736
- "overall_score": 93.6,
5737
- "open": 19,
5738
- "diff_new": 19,
5739
- "diff_resolved": 31,
7287
+ "strict_score": 87.7,
7288
+ "verified_strict_score": 85.4,
7289
+ "objective_score": 85.4,
7290
+ "overall_score": 87.7,
7291
+ "open": 31,
7292
+ "diff_new": 0,
7293
+ "diff_resolved": 19,
5740
7294
  "ignored": 0,
5741
- "raw_findings": 19,
7295
+ "raw_findings": 30,
5742
7296
  "suppressed_pct": 0.0,
5743
7297
  "ignore_patterns": 0,
5744
7298
  "subjective_integrity": {
5745
- "status": "disabled",
5746
- "matched_count": 0,
7299
+ "status": "warn",
7300
+ "matched_count": 1,
5747
7301
  "reset_count": 0,
5748
- "target_score": null
7302
+ "target_score": 95.0
5749
7303
  },
5750
7304
  "score_confidence": {
5751
7305
  "status": "full",
@@ -5759,16 +7313,16 @@
5759
7313
  "strict": 100.0
5760
7314
  },
5761
7315
  "Code quality": {
5762
- "score": 100.0,
5763
- "strict": 100.0
7316
+ "score": 96.4,
7317
+ "strict": 96.4
5764
7318
  },
5765
7319
  "Duplication": {
5766
- "score": 100.0,
5767
- "strict": 100.0
7320
+ "score": 99.0,
7321
+ "strict": 99.0
5768
7322
  },
5769
7323
  "Test health": {
5770
- "score": 100.0,
5771
- "strict": 100.0
7324
+ "score": 63.1,
7325
+ "strict": 63.1
5772
7326
  },
5773
7327
  "Security": {
5774
7328
  "score": 100.0,
@@ -5829,17 +7383,17 @@
5829
7383
  }
5830
7384
  },
5831
7385
  {
5832
- "timestamp": "2026-03-15T05:00:35+00:00",
7386
+ "timestamp": "2026-03-15T18:53:52+00:00",
5833
7387
  "lang": "typescript",
5834
- "strict_score": 87.8,
5835
- "verified_strict_score": 85.5,
5836
- "objective_score": 85.5,
5837
- "overall_score": 87.8,
5838
- "open": 50,
5839
- "diff_new": 2,
7388
+ "strict_score": 87.7,
7389
+ "verified_strict_score": 85.4,
7390
+ "objective_score": 100.0,
7391
+ "overall_score": 93.6,
7392
+ "open": 0,
7393
+ "diff_new": 0,
5840
7394
  "diff_resolved": 0,
5841
7395
  "ignored": 0,
5842
- "raw_findings": 31,
7396
+ "raw_findings": 30,
5843
7397
  "suppressed_pct": 0.0,
5844
7398
  "ignore_patterns": 0,
5845
7399
  "subjective_integrity": {
@@ -5860,15 +7414,15 @@
5860
7414
  "strict": 100.0
5861
7415
  },
5862
7416
  "Code quality": {
5863
- "score": 96.4,
7417
+ "score": 100.0,
5864
7418
  "strict": 96.4
5865
7419
  },
5866
7420
  "Duplication": {
5867
- "score": 99.0,
7421
+ "score": 100.0,
5868
7422
  "strict": 99.0
5869
7423
  },
5870
7424
  "Test health": {
5871
- "score": 63.1,
7425
+ "score": 100.0,
5872
7426
  "strict": 63.1
5873
7427
  },
5874
7428
  "Security": {
@@ -5930,22 +7484,123 @@
5930
7484
  }
5931
7485
  },
5932
7486
  {
5933
- "timestamp": "2026-03-15T05:08:48+00:00",
7487
+ "timestamp": "2026-03-15T19:12:25+00:00",
5934
7488
  "lang": "typescript",
5935
- "strict_score": 87.7,
5936
- "verified_strict_score": 85.4,
5937
- "objective_score": 85.4,
5938
- "overall_score": 87.7,
5939
- "open": 31,
7489
+ "strict_score": 84.9,
7490
+ "verified_strict_score": 100.0,
7491
+ "objective_score": 100.0,
7492
+ "overall_score": 84.9,
7493
+ "open": 23,
7494
+ "diff_new": 23,
7495
+ "diff_resolved": 31,
7496
+ "ignored": 0,
7497
+ "raw_findings": 23,
7498
+ "suppressed_pct": 0.0,
7499
+ "ignore_patterns": 0,
7500
+ "subjective_integrity": {
7501
+ "status": "disabled",
7502
+ "matched_count": 0,
7503
+ "reset_count": 0,
7504
+ "target_score": null
7505
+ },
7506
+ "score_confidence": {
7507
+ "status": "full",
7508
+ "confidence": 1.0,
7509
+ "detector_count": 0,
7510
+ "dimension_count": 0
7511
+ },
7512
+ "dimension_scores": {
7513
+ "File health": {
7514
+ "score": 100.0,
7515
+ "strict": 100.0
7516
+ },
7517
+ "Code quality": {
7518
+ "score": 100.0,
7519
+ "strict": 100.0
7520
+ },
7521
+ "Duplication": {
7522
+ "score": 100.0,
7523
+ "strict": 100.0
7524
+ },
7525
+ "Test health": {
7526
+ "score": 100.0,
7527
+ "strict": 100.0
7528
+ },
7529
+ "Security": {
7530
+ "score": 100.0,
7531
+ "strict": 100.0
7532
+ },
7533
+ "Error consistency": {
7534
+ "score": 67.8,
7535
+ "strict": 67.8
7536
+ },
7537
+ "Abstraction fit": {
7538
+ "score": 79.3,
7539
+ "strict": 79.3
7540
+ },
7541
+ "AI generated debt": {
7542
+ "score": 86.5,
7543
+ "strict": 86.5
7544
+ },
7545
+ "High elegance": {
7546
+ "score": 66.7,
7547
+ "strict": 66.7
7548
+ },
7549
+ "Mid elegance": {
7550
+ "score": 82.3,
7551
+ "strict": 82.3
7552
+ },
7553
+ "Low elegance": {
7554
+ "score": 78.3,
7555
+ "strict": 78.3
7556
+ },
7557
+ "Cross-module arch": {
7558
+ "score": 73.2,
7559
+ "strict": 73.2
7560
+ },
7561
+ "Convention drift": {
7562
+ "score": 78.8,
7563
+ "strict": 78.8
7564
+ },
7565
+ "API coherence": {
7566
+ "score": 67.3,
7567
+ "strict": 67.3
7568
+ },
7569
+ "Auth consistency": {
7570
+ "score": 92.8,
7571
+ "strict": 92.8
7572
+ },
7573
+ "Stale migration": {
7574
+ "score": 95.7,
7575
+ "strict": 95.7
7576
+ },
7577
+ "Structure nav": {
7578
+ "score": 61.6,
7579
+ "strict": 61.6
7580
+ },
7581
+ "Design coherence": {
7582
+ "score": 72.8,
7583
+ "strict": 72.8
7584
+ }
7585
+ }
7586
+ },
7587
+ {
7588
+ "timestamp": "2026-03-15T19:12:32+00:00",
7589
+ "lang": "typescript",
7590
+ "strict_score": 79.1,
7591
+ "verified_strict_score": 85.5,
7592
+ "objective_score": 85.5,
7593
+ "overall_score": 79.1,
7594
+ "open": 54,
5940
7595
  "diff_new": 0,
5941
- "diff_resolved": 19,
7596
+ "diff_resolved": 0,
5942
7597
  "ignored": 0,
5943
- "raw_findings": 30,
7598
+ "raw_findings": 31,
5944
7599
  "suppressed_pct": 0.0,
5945
7600
  "ignore_patterns": 0,
5946
7601
  "subjective_integrity": {
5947
- "status": "warn",
5948
- "matched_count": 1,
7602
+ "status": "pass",
7603
+ "matched_count": 0,
5949
7604
  "reset_count": 0,
5950
7605
  "target_score": 95.0
5951
7606
  },
@@ -5977,56 +7632,56 @@
5977
7632
  "strict": 100.0
5978
7633
  },
5979
7634
  "Error consistency": {
5980
- "score": 82.0,
5981
- "strict": 82.0
7635
+ "score": 67.8,
7636
+ "strict": 67.8
5982
7637
  },
5983
7638
  "Abstraction fit": {
5984
- "score": 91.0,
5985
- "strict": 91.0
7639
+ "score": 79.3,
7640
+ "strict": 79.3
5986
7641
  },
5987
7642
  "AI generated debt": {
5988
- "score": 88.0,
5989
- "strict": 88.0
7643
+ "score": 86.5,
7644
+ "strict": 86.5
5990
7645
  },
5991
7646
  "High elegance": {
5992
- "score": 92.0,
5993
- "strict": 92.0
7647
+ "score": 66.7,
7648
+ "strict": 66.7
5994
7649
  },
5995
7650
  "Mid elegance": {
5996
- "score": 88.0,
5997
- "strict": 88.0
7651
+ "score": 82.3,
7652
+ "strict": 82.3
5998
7653
  },
5999
7654
  "Low elegance": {
6000
- "score": 86.0,
6001
- "strict": 86.0
7655
+ "score": 78.3,
7656
+ "strict": 78.3
6002
7657
  },
6003
7658
  "Cross-module arch": {
6004
- "score": 93.0,
6005
- "strict": 93.0
7659
+ "score": 73.2,
7660
+ "strict": 73.2
6006
7661
  },
6007
7662
  "Convention drift": {
6008
- "score": 90.0,
6009
- "strict": 90.0
7663
+ "score": 78.8,
7664
+ "strict": 78.8
6010
7665
  },
6011
7666
  "API coherence": {
6012
- "score": 85.0,
6013
- "strict": 85.0
7667
+ "score": 67.3,
7668
+ "strict": 67.3
6014
7669
  },
6015
7670
  "Auth consistency": {
6016
- "score": 100.0,
6017
- "strict": 100.0
7671
+ "score": 92.8,
7672
+ "strict": 92.8
6018
7673
  },
6019
7674
  "Stale migration": {
6020
- "score": 95.0,
6021
- "strict": 95.0
7675
+ "score": 95.7,
7676
+ "strict": 95.7
6022
7677
  },
6023
7678
  "Structure nav": {
6024
- "score": 94.0,
6025
- "strict": 94.0
7679
+ "score": 61.6,
7680
+ "strict": 61.6
6026
7681
  },
6027
7682
  "Design coherence": {
6028
- "score": 87.0,
6029
- "strict": 87.0
7683
+ "score": 72.8,
7684
+ "strict": 72.8
6030
7685
  }
6031
7686
  }
6032
7687
  }
@@ -6053,7 +7708,7 @@
6053
7708
  "naming": 10,
6054
7709
  "facade": 29,
6055
7710
  "test_coverage": 240,
6056
- "smells": 30,
7711
+ "smells": 32,
6057
7712
  "react": 0,
6058
7713
  "security": 29,
6059
7714
  "subjective_review": 23,
@@ -6065,7 +7720,7 @@
6065
7720
  "codebase_metrics": {
6066
7721
  "typescript": {
6067
7722
  "total_files": 41,
6068
- "total_loc": 6024,
7723
+ "total_loc": 6077,
6069
7724
  "total_directories": 10
6070
7725
  }
6071
7726
  },
@@ -6091,7 +7746,7 @@
6091
7746
  "score": 100.0,
6092
7747
  "strict_score": 96.4,
6093
7748
  "verified_strict_score": 96.4,
6094
- "checks": 168,
7749
+ "checks": 170,
6095
7750
  "issues": 0,
6096
7751
  "tier": 3,
6097
7752
  "detectors": {
@@ -6114,7 +7769,7 @@
6114
7769
  "weighted_failures": 0.0
6115
7770
  },
6116
7771
  "smells": {
6117
- "potential": 30,
7772
+ "potential": 32,
6118
7773
  "pass_rate": 1.0,
6119
7774
  "issues": 0,
6120
7775
  "weighted_failures": 0.0
@@ -6222,295 +7877,304 @@
6222
7877
  "strict": 100.0
6223
7878
  },
6224
7879
  "Error consistency": {
6225
- "score": 82.0,
6226
- "strict_score": 82.0,
6227
- "verified_strict_score": 82.0,
7880
+ "score": 67.8,
7881
+ "strict_score": 67.8,
7882
+ "verified_strict_score": 67.8,
6228
7883
  "checks": 10,
6229
7884
  "issues": 0,
6230
7885
  "tier": 4,
6231
7886
  "detectors": {
6232
7887
  "subjective_assessment": {
6233
7888
  "potential": 10,
6234
- "pass_rate": 0.82,
7889
+ "pass_rate": 0.678,
6235
7890
  "issues": 0,
6236
- "weighted_failures": 1.8,
6237
- "assessment_score": 82.0,
7891
+ "weighted_failures": 3.22,
7892
+ "assessment_score": 67.8,
6238
7893
  "placeholder": false,
6239
7894
  "dimension_key": "error_consistency",
6240
7895
  "configured_weight": 3.0,
6241
7896
  "components": []
6242
7897
  }
6243
7898
  },
6244
- "strict": 82.0
7899
+ "strict": 67.8
6245
7900
  },
6246
7901
  "Abstraction fit": {
6247
- "score": 91.0,
6248
- "strict_score": 91.0,
6249
- "verified_strict_score": 91.0,
7902
+ "score": 79.3,
7903
+ "strict_score": 79.3,
7904
+ "verified_strict_score": 79.3,
6250
7905
  "checks": 10,
6251
7906
  "issues": 0,
6252
7907
  "tier": 4,
6253
7908
  "detectors": {
6254
7909
  "subjective_assessment": {
6255
7910
  "potential": 10,
6256
- "pass_rate": 0.91,
7911
+ "pass_rate": 0.793,
6257
7912
  "issues": 0,
6258
- "weighted_failures": 0.9,
6259
- "assessment_score": 91.0,
7913
+ "weighted_failures": 2.07,
7914
+ "assessment_score": 79.3,
6260
7915
  "placeholder": false,
6261
7916
  "dimension_key": "abstraction_fitness",
6262
7917
  "configured_weight": 8.0,
6263
- "components": []
7918
+ "components": [
7919
+ "Abstraction Leverage",
7920
+ "Indirection Cost",
7921
+ "Interface Honesty"
7922
+ ],
7923
+ "component_scores": {
7924
+ "Abstraction Leverage": 82.0,
7925
+ "Indirection Cost": 85.7,
7926
+ "Interface Honesty": 86.0
7927
+ }
6264
7928
  }
6265
7929
  },
6266
- "strict": 91.0
7930
+ "strict": 79.3
6267
7931
  },
6268
7932
  "AI generated debt": {
6269
- "score": 88.0,
6270
- "strict_score": 88.0,
6271
- "verified_strict_score": 88.0,
7933
+ "score": 86.5,
7934
+ "strict_score": 86.5,
7935
+ "verified_strict_score": 86.5,
6272
7936
  "checks": 10,
6273
7937
  "issues": 0,
6274
7938
  "tier": 4,
6275
7939
  "detectors": {
6276
7940
  "subjective_assessment": {
6277
7941
  "potential": 10,
6278
- "pass_rate": 0.88,
7942
+ "pass_rate": 0.865,
6279
7943
  "issues": 0,
6280
- "weighted_failures": 1.2,
6281
- "assessment_score": 88.0,
7944
+ "weighted_failures": 1.35,
7945
+ "assessment_score": 86.5,
6282
7946
  "placeholder": false,
6283
7947
  "dimension_key": "ai_generated_debt",
6284
7948
  "configured_weight": 1.0,
6285
7949
  "components": []
6286
7950
  }
6287
7951
  },
6288
- "strict": 88.0
7952
+ "strict": 86.5
6289
7953
  },
6290
7954
  "High elegance": {
6291
- "score": 92.0,
6292
- "strict_score": 92.0,
6293
- "verified_strict_score": 92.0,
7955
+ "score": 66.7,
7956
+ "strict_score": 66.7,
7957
+ "verified_strict_score": 66.7,
6294
7958
  "checks": 10,
6295
7959
  "issues": 0,
6296
7960
  "tier": 4,
6297
7961
  "detectors": {
6298
7962
  "subjective_assessment": {
6299
7963
  "potential": 10,
6300
- "pass_rate": 0.92,
7964
+ "pass_rate": 0.667,
6301
7965
  "issues": 0,
6302
- "weighted_failures": 0.8,
6303
- "assessment_score": 92.0,
7966
+ "weighted_failures": 3.33,
7967
+ "assessment_score": 66.7,
6304
7968
  "placeholder": false,
6305
7969
  "dimension_key": "high_level_elegance",
6306
7970
  "configured_weight": 22.0,
6307
7971
  "components": []
6308
7972
  }
6309
7973
  },
6310
- "strict": 92.0
7974
+ "strict": 66.7
6311
7975
  },
6312
7976
  "Mid elegance": {
6313
- "score": 88.0,
6314
- "strict_score": 88.0,
6315
- "verified_strict_score": 88.0,
7977
+ "score": 82.3,
7978
+ "strict_score": 82.3,
7979
+ "verified_strict_score": 82.3,
6316
7980
  "checks": 10,
6317
7981
  "issues": 0,
6318
7982
  "tier": 4,
6319
7983
  "detectors": {
6320
7984
  "subjective_assessment": {
6321
7985
  "potential": 10,
6322
- "pass_rate": 0.88,
7986
+ "pass_rate": 0.823,
6323
7987
  "issues": 0,
6324
- "weighted_failures": 1.2,
6325
- "assessment_score": 88.0,
7988
+ "weighted_failures": 1.77,
7989
+ "assessment_score": 82.3,
6326
7990
  "placeholder": false,
6327
7991
  "dimension_key": "mid_level_elegance",
6328
7992
  "configured_weight": 22.0,
6329
7993
  "components": []
6330
7994
  }
6331
7995
  },
6332
- "strict": 88.0
7996
+ "strict": 82.3
6333
7997
  },
6334
7998
  "Low elegance": {
6335
- "score": 86.0,
6336
- "strict_score": 86.0,
6337
- "verified_strict_score": 86.0,
7999
+ "score": 78.3,
8000
+ "strict_score": 78.3,
8001
+ "verified_strict_score": 78.3,
6338
8002
  "checks": 10,
6339
8003
  "issues": 0,
6340
8004
  "tier": 4,
6341
8005
  "detectors": {
6342
8006
  "subjective_assessment": {
6343
8007
  "potential": 10,
6344
- "pass_rate": 0.86,
8008
+ "pass_rate": 0.783,
6345
8009
  "issues": 0,
6346
- "weighted_failures": 1.4,
6347
- "assessment_score": 86.0,
8010
+ "weighted_failures": 2.17,
8011
+ "assessment_score": 78.3,
6348
8012
  "placeholder": false,
6349
8013
  "dimension_key": "low_level_elegance",
6350
8014
  "configured_weight": 12.0,
6351
8015
  "components": []
6352
8016
  }
6353
8017
  },
6354
- "strict": 86.0
8018
+ "strict": 78.3
6355
8019
  },
6356
8020
  "Cross-module arch": {
6357
- "score": 93.0,
6358
- "strict_score": 93.0,
6359
- "verified_strict_score": 93.0,
8021
+ "score": 73.2,
8022
+ "strict_score": 73.2,
8023
+ "verified_strict_score": 73.2,
6360
8024
  "checks": 10,
6361
8025
  "issues": 0,
6362
8026
  "tier": 4,
6363
8027
  "detectors": {
6364
8028
  "subjective_assessment": {
6365
8029
  "potential": 10,
6366
- "pass_rate": 0.93,
8030
+ "pass_rate": 0.732,
6367
8031
  "issues": 0,
6368
- "weighted_failures": 0.7,
6369
- "assessment_score": 93.0,
8032
+ "weighted_failures": 2.68,
8033
+ "assessment_score": 73.2,
6370
8034
  "placeholder": false,
6371
8035
  "dimension_key": "cross_module_architecture",
6372
8036
  "configured_weight": 1.0,
6373
8037
  "components": []
6374
8038
  }
6375
8039
  },
6376
- "strict": 93.0
8040
+ "strict": 73.2
6377
8041
  },
6378
8042
  "Convention drift": {
6379
- "score": 90.0,
6380
- "strict_score": 90.0,
6381
- "verified_strict_score": 90.0,
8043
+ "score": 78.8,
8044
+ "strict_score": 78.8,
8045
+ "verified_strict_score": 78.8,
6382
8046
  "checks": 10,
6383
8047
  "issues": 0,
6384
8048
  "tier": 4,
6385
8049
  "detectors": {
6386
8050
  "subjective_assessment": {
6387
8051
  "potential": 10,
6388
- "pass_rate": 0.9,
8052
+ "pass_rate": 0.788,
6389
8053
  "issues": 0,
6390
- "weighted_failures": 1.0,
6391
- "assessment_score": 90.0,
8054
+ "weighted_failures": 2.12,
8055
+ "assessment_score": 78.8,
6392
8056
  "placeholder": false,
6393
8057
  "dimension_key": "convention_outlier",
6394
8058
  "configured_weight": 1.0,
6395
8059
  "components": []
6396
8060
  }
6397
8061
  },
6398
- "strict": 90.0
8062
+ "strict": 78.8
6399
8063
  },
6400
8064
  "API coherence": {
6401
- "score": 85.0,
6402
- "strict_score": 85.0,
6403
- "verified_strict_score": 85.0,
8065
+ "score": 67.3,
8066
+ "strict_score": 67.3,
8067
+ "verified_strict_score": 67.3,
6404
8068
  "checks": 10,
6405
8069
  "issues": 0,
6406
8070
  "tier": 4,
6407
8071
  "detectors": {
6408
8072
  "subjective_assessment": {
6409
8073
  "potential": 10,
6410
- "pass_rate": 0.85,
8074
+ "pass_rate": 0.673,
6411
8075
  "issues": 0,
6412
- "weighted_failures": 1.5,
6413
- "assessment_score": 85.0,
8076
+ "weighted_failures": 3.27,
8077
+ "assessment_score": 67.3,
6414
8078
  "placeholder": false,
6415
8079
  "dimension_key": "api_surface_coherence",
6416
8080
  "configured_weight": 1.0,
6417
8081
  "components": []
6418
8082
  }
6419
8083
  },
6420
- "strict": 85.0
8084
+ "strict": 67.3
6421
8085
  },
6422
8086
  "Auth consistency": {
6423
- "score": 100.0,
6424
- "strict_score": 100.0,
6425
- "verified_strict_score": 100.0,
8087
+ "score": 92.8,
8088
+ "strict_score": 92.8,
8089
+ "verified_strict_score": 92.8,
6426
8090
  "checks": 10,
6427
8091
  "issues": 0,
6428
8092
  "tier": 4,
6429
8093
  "detectors": {
6430
8094
  "subjective_assessment": {
6431
8095
  "potential": 10,
6432
- "pass_rate": 1.0,
8096
+ "pass_rate": 0.928,
6433
8097
  "issues": 0,
6434
- "weighted_failures": 0.0,
6435
- "assessment_score": 100.0,
8098
+ "weighted_failures": 0.72,
8099
+ "assessment_score": 92.8,
6436
8100
  "placeholder": false,
6437
8101
  "dimension_key": "authorization_consistency",
6438
8102
  "configured_weight": 1.0,
6439
8103
  "components": []
6440
8104
  }
6441
8105
  },
6442
- "strict": 100.0
8106
+ "strict": 92.8
6443
8107
  },
6444
8108
  "Stale migration": {
6445
- "score": 95.0,
6446
- "strict_score": 95.0,
6447
- "verified_strict_score": 95.0,
8109
+ "score": 95.7,
8110
+ "strict_score": 95.7,
8111
+ "verified_strict_score": 95.7,
6448
8112
  "checks": 10,
6449
8113
  "issues": 0,
6450
8114
  "tier": 4,
6451
8115
  "detectors": {
6452
8116
  "subjective_assessment": {
6453
8117
  "potential": 10,
6454
- "pass_rate": 0.95,
8118
+ "pass_rate": 0.957,
6455
8119
  "issues": 0,
6456
- "weighted_failures": 0.5,
6457
- "assessment_score": 95.0,
8120
+ "weighted_failures": 0.43,
8121
+ "assessment_score": 95.7,
6458
8122
  "placeholder": false,
6459
8123
  "dimension_key": "incomplete_migration",
6460
8124
  "configured_weight": 1.0,
6461
8125
  "components": []
6462
8126
  }
6463
8127
  },
6464
- "strict": 95.0
8128
+ "strict": 95.7
6465
8129
  },
6466
8130
  "Structure nav": {
6467
- "score": 94.0,
6468
- "strict_score": 94.0,
6469
- "verified_strict_score": 94.0,
8131
+ "score": 61.6,
8132
+ "strict_score": 61.6,
8133
+ "verified_strict_score": 61.6,
6470
8134
  "checks": 10,
6471
8135
  "issues": 0,
6472
8136
  "tier": 4,
6473
8137
  "detectors": {
6474
8138
  "subjective_assessment": {
6475
8139
  "potential": 10,
6476
- "pass_rate": 0.94,
8140
+ "pass_rate": 0.616,
6477
8141
  "issues": 0,
6478
- "weighted_failures": 0.6,
6479
- "assessment_score": 94.0,
8142
+ "weighted_failures": 3.84,
8143
+ "assessment_score": 61.6,
6480
8144
  "placeholder": false,
6481
8145
  "dimension_key": "package_organization",
6482
8146
  "configured_weight": 5.0,
6483
8147
  "components": []
6484
8148
  }
6485
8149
  },
6486
- "strict": 94.0
8150
+ "strict": 61.6
6487
8151
  },
6488
8152
  "Design coherence": {
6489
- "score": 87.0,
6490
- "strict_score": 87.0,
6491
- "verified_strict_score": 87.0,
8153
+ "score": 72.8,
8154
+ "strict_score": 72.8,
8155
+ "verified_strict_score": 72.8,
6492
8156
  "checks": 10,
6493
8157
  "issues": 0,
6494
8158
  "tier": 4,
6495
8159
  "detectors": {
6496
8160
  "subjective_assessment": {
6497
8161
  "potential": 10,
6498
- "pass_rate": 0.87,
8162
+ "pass_rate": 0.728,
6499
8163
  "issues": 0,
6500
- "weighted_failures": 1.3,
6501
- "assessment_score": 87.0,
8164
+ "weighted_failures": 2.72,
8165
+ "assessment_score": 72.8,
6502
8166
  "placeholder": false,
6503
8167
  "dimension_key": "design_coherence",
6504
8168
  "configured_weight": 10.0,
6505
8169
  "components": []
6506
8170
  }
6507
8171
  },
6508
- "strict": 87.0
8172
+ "strict": 72.8
6509
8173
  }
6510
8174
  },
6511
8175
  "reminder_history": {
6512
8176
  "zone_classification": 3,
6513
- "report_scores": 8,
8177
+ "report_scores": 10,
6514
8178
  "feedback_nudge": 3,
6515
8179
  "review_findings_pending": 3,
6516
8180
  "stagnant_nudge": 4,
@@ -6519,9 +8183,218 @@
6519
8183
  },
6520
8184
  "review_cache": {
6521
8185
  "holistic": {
6522
- "reviewed_at": "2026-03-15T05:00:28+00:00",
8186
+ "reviewed_at": "2026-03-15T19:12:25+00:00",
6523
8187
  "file_count_at_review": 41,
6524
- "finding_count": 19
8188
+ "finding_count": 23,
8189
+ "reviewed_files_count": 41,
8190
+ "full_sweep_included": true
8191
+ },
8192
+ "files": {
8193
+ "src/types.ts": {
8194
+ "content_hash": "b221dd548de2b376",
8195
+ "reviewed_at": "2026-03-15T19:12:25+00:00",
8196
+ "finding_count": 0
8197
+ },
8198
+ "src/formats/types.ts": {
8199
+ "content_hash": "1b6851a6db5ad511",
8200
+ "reviewed_at": "2026-03-15T19:12:25+00:00",
8201
+ "finding_count": 0
8202
+ },
8203
+ "src/formats/request-helpers.ts": {
8204
+ "content_hash": "18a181b68e404c7e",
8205
+ "reviewed_at": "2026-03-15T19:12:25+00:00",
8206
+ "finding_count": 0
8207
+ },
8208
+ "src/logger.ts": {
8209
+ "content_hash": "cc2d63b53cf5d93b",
8210
+ "reviewed_at": "2026-03-15T19:12:25+00:00",
8211
+ "finding_count": 0
8212
+ },
8213
+ "src/rule-engine.ts": {
8214
+ "content_hash": "69ee77953fdd3b12",
8215
+ "reviewed_at": "2026-03-15T19:12:25+00:00",
8216
+ "finding_count": 0
8217
+ },
8218
+ "src/history.ts": {
8219
+ "content_hash": "777b19b5cb1ee7e7",
8220
+ "reviewed_at": "2026-03-15T19:12:25+00:00",
8221
+ "finding_count": 0
8222
+ },
8223
+ "test/history.test.ts": {
8224
+ "content_hash": "6c65896dea1b2315",
8225
+ "reviewed_at": "2026-03-15T19:12:25+00:00",
8226
+ "finding_count": 0
8227
+ },
8228
+ "src/cli.ts": {
8229
+ "content_hash": "897e9a0717868e91",
8230
+ "reviewed_at": "2026-03-15T19:12:25+00:00",
8231
+ "finding_count": 0
8232
+ },
8233
+ "src/formats/anthropic/schema.ts": {
8234
+ "content_hash": "9dc08b39938ea282",
8235
+ "reviewed_at": "2026-03-15T19:12:25+00:00",
8236
+ "finding_count": 0
8237
+ },
8238
+ "src/formats/openai/schema.ts": {
8239
+ "content_hash": "19f37eb38912b415",
8240
+ "reviewed_at": "2026-03-15T19:12:25+00:00",
8241
+ "finding_count": 0
8242
+ },
8243
+ "src/formats/responses/schema.ts": {
8244
+ "content_hash": "34908d5e507b6faa",
8245
+ "reviewed_at": "2026-03-15T19:12:25+00:00",
8246
+ "finding_count": 0
8247
+ },
8248
+ "src/types/request.ts": {
8249
+ "content_hash": "63ebbe2a0719caca",
8250
+ "reviewed_at": "2026-03-15T19:12:25+00:00",
8251
+ "finding_count": 0
8252
+ },
8253
+ "test/helpers/make-req.ts": {
8254
+ "content_hash": "2bba83baf834b0e1",
8255
+ "reviewed_at": "2026-03-15T19:12:25+00:00",
8256
+ "finding_count": 0
8257
+ },
8258
+ "test/cli-validators.test.ts": {
8259
+ "content_hash": "fd1f6cfd5c757935",
8260
+ "reviewed_at": "2026-03-15T19:12:25+00:00",
8261
+ "finding_count": 0
8262
+ },
8263
+ "test/mock-server.test.ts": {
8264
+ "content_hash": "ca3c7684253d31e5",
8265
+ "reviewed_at": "2026-03-15T19:12:25+00:00",
8266
+ "finding_count": 0
8267
+ },
8268
+ "test/rule-engine.test.ts": {
8269
+ "content_hash": "2f18fddb17e6aa76",
8270
+ "reviewed_at": "2026-03-15T19:12:25+00:00",
8271
+ "finding_count": 0
8272
+ },
8273
+ "src/cli-validators.ts": {
8274
+ "content_hash": "dcda1a1cb2052d67",
8275
+ "reviewed_at": "2026-03-15T19:12:25+00:00",
8276
+ "finding_count": 0
8277
+ },
8278
+ "src/mock-server.ts": {
8279
+ "content_hash": "6f522f864517d346",
8280
+ "reviewed_at": "2026-03-15T19:12:25+00:00",
8281
+ "finding_count": 0
8282
+ },
8283
+ "test/formats/anthropic.test.ts": {
8284
+ "content_hash": "4d1b4c6f5cb8596c",
8285
+ "reviewed_at": "2026-03-15T19:12:25+00:00",
8286
+ "finding_count": 0
8287
+ },
8288
+ "src/formats/responses/serialize.ts": {
8289
+ "content_hash": "61ac2854076d1fd4",
8290
+ "reviewed_at": "2026-03-15T19:12:25+00:00",
8291
+ "finding_count": 0
8292
+ },
8293
+ "test/formats/responses.test.ts": {
8294
+ "content_hash": "31412ab06123bda5",
8295
+ "reviewed_at": "2026-03-15T19:12:25+00:00",
8296
+ "finding_count": 0
8297
+ },
8298
+ "src/loader.ts": {
8299
+ "content_hash": "7392ea2c06294396",
8300
+ "reviewed_at": "2026-03-15T19:12:25+00:00",
8301
+ "finding_count": 0
8302
+ },
8303
+ "test/formats/openai.test.ts": {
8304
+ "content_hash": "8129b81740311d59",
8305
+ "reviewed_at": "2026-03-15T19:12:25+00:00",
8306
+ "finding_count": 0
8307
+ },
8308
+ "test/loader.test.ts": {
8309
+ "content_hash": "90925c506447c0ff",
8310
+ "reviewed_at": "2026-03-15T19:12:25+00:00",
8311
+ "finding_count": 0
8312
+ },
8313
+ "test/logger.test.ts": {
8314
+ "content_hash": "b5906dbcb870d043",
8315
+ "reviewed_at": "2026-03-15T19:12:25+00:00",
8316
+ "finding_count": 0
8317
+ },
8318
+ "src/formats/openai/serialize.ts": {
8319
+ "content_hash": "18e736608a179b08",
8320
+ "reviewed_at": "2026-03-15T19:12:25+00:00",
8321
+ "finding_count": 0
8322
+ },
8323
+ "src/types/rule.ts": {
8324
+ "content_hash": "9bd54482556f7046",
8325
+ "reviewed_at": "2026-03-15T19:12:25+00:00",
8326
+ "finding_count": 0
8327
+ },
8328
+ "vitest.config.ts": {
8329
+ "content_hash": "5f0ce27dfc7eb9e0",
8330
+ "reviewed_at": "2026-03-15T19:12:25+00:00",
8331
+ "finding_count": 0
8332
+ },
8333
+ "src/formats/anthropic/index.ts": {
8334
+ "content_hash": "17ca993eabb62ef5",
8335
+ "reviewed_at": "2026-03-15T19:12:25+00:00",
8336
+ "finding_count": 0
8337
+ },
8338
+ "src/formats/anthropic/parse.ts": {
8339
+ "content_hash": "0832b2ad7b297045",
8340
+ "reviewed_at": "2026-03-15T19:12:25+00:00",
8341
+ "finding_count": 0
8342
+ },
8343
+ "src/formats/serialize-helpers.ts": {
8344
+ "content_hash": "96055076388a0f6d",
8345
+ "reviewed_at": "2026-03-15T19:12:25+00:00",
8346
+ "finding_count": 0
8347
+ },
8348
+ "src/formats/openai/index.ts": {
8349
+ "content_hash": "dc713dbfa13b790e",
8350
+ "reviewed_at": "2026-03-15T19:12:25+00:00",
8351
+ "finding_count": 0
8352
+ },
8353
+ "src/formats/openai/parse.ts": {
8354
+ "content_hash": "37e4a427b19432f3",
8355
+ "reviewed_at": "2026-03-15T19:12:25+00:00",
8356
+ "finding_count": 0
8357
+ },
8358
+ "src/formats/responses/index.ts": {
8359
+ "content_hash": "8a092694cf19de68",
8360
+ "reviewed_at": "2026-03-15T19:12:25+00:00",
8361
+ "finding_count": 0
8362
+ },
8363
+ "src/formats/responses/parse.ts": {
8364
+ "content_hash": "330f6dd6bcd1e2d4",
8365
+ "reviewed_at": "2026-03-15T19:12:25+00:00",
8366
+ "finding_count": 0
8367
+ },
8368
+ "README.md": {
8369
+ "content_hash": "49ea8c32fd462e8e",
8370
+ "reviewed_at": "2026-03-15T19:12:25+00:00",
8371
+ "finding_count": 0
8372
+ },
8373
+ "src/formats/anthropic/serialize.ts": {
8374
+ "content_hash": "caf6e1e071be7a18",
8375
+ "reviewed_at": "2026-03-15T19:12:25+00:00",
8376
+ "finding_count": 0
8377
+ },
8378
+ "src/index.ts": {
8379
+ "content_hash": "d7d87ec508535067",
8380
+ "reviewed_at": "2026-03-15T19:12:25+00:00",
8381
+ "finding_count": 0
8382
+ },
8383
+ "src/route-handler.ts": {
8384
+ "content_hash": "4882477110ee7a76",
8385
+ "reviewed_at": "2026-03-15T19:12:25+00:00",
8386
+ "finding_count": 0
8387
+ },
8388
+ "src/sse-writer.ts": {
8389
+ "content_hash": "912ca4f9a35d4b51",
8390
+ "reviewed_at": "2026-03-15T19:12:25+00:00",
8391
+ "finding_count": 0
8392
+ },
8393
+ "src/types/reply.ts": {
8394
+ "content_hash": "6509bf0c94c7b751",
8395
+ "reviewed_at": "2026-03-15T19:12:25+00:00",
8396
+ "finding_count": 0
8397
+ }
6525
8398
  }
6526
8399
  },
6527
8400
  "assessment_import_audit": [
@@ -6548,6 +8421,18 @@
6548
8421
  "provisional_count": 0,
6549
8422
  "attest": "I validated this review was completed without awareness of overall score and is unbiased.",
6550
8423
  "import_file": "/Users/suyash.x.srijan/Documents/Personal_Projects/llm-mock-server/.desloppify/external_review_sessions/ext_20260315_045546_0587ea3b/canonical_import_20260315_050028.json"
8424
+ },
8425
+ {
8426
+ "timestamp": "2026-03-15T19:12:25+00:00",
8427
+ "mode": "trusted_internal",
8428
+ "trusted": true,
8429
+ "reason": "trusted internal run-batches import",
8430
+ "override_used": false,
8431
+ "attested_external": false,
8432
+ "provisional": false,
8433
+ "provisional_count": 0,
8434
+ "attest": "",
8435
+ "import_file": "/Users/suyash.x.srijan/Documents/Personal_Projects/llm-mock-server/.desloppify/subagents/runs/20260315_185613/holistic_findings_merged.json"
6551
8436
  }
6552
8437
  ]
6553
8438
  }