patina-cli 3.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (180) hide show
  1. package/.patina.default.yaml +211 -0
  2. package/CHANGELOG.md +265 -0
  3. package/LICENSE +21 -0
  4. package/README.md +319 -0
  5. package/README_JA.md +254 -0
  6. package/README_KR.md +253 -0
  7. package/README_ZH.md +254 -0
  8. package/SKILL-MAX.md +455 -0
  9. package/SKILL.md +730 -0
  10. package/assets/brand/patina-icon.svg +9 -0
  11. package/assets/brand/patina-logo.svg +17 -0
  12. package/assets/social/patina-before-after.svg +46 -0
  13. package/assets/social/patina-og.svg +31 -0
  14. package/bin/patina.js +9 -0
  15. package/core/scoring.md +657 -0
  16. package/core/standalone-prompt.md +364 -0
  17. package/core/stylometry.md +754 -0
  18. package/core/voice.md +163 -0
  19. package/docs/AUTHENTICATION.md +105 -0
  20. package/docs/AUTHENTICATION_KR.md +105 -0
  21. package/docs/BRANDING.md +37 -0
  22. package/docs/CLI.md +80 -0
  23. package/docs/COMPARISON.md +38 -0
  24. package/docs/COOKBOOK.md +173 -0
  25. package/docs/DEMO.md +40 -0
  26. package/docs/ETHICS.md +27 -0
  27. package/docs/EXAMPLES.md +130 -0
  28. package/docs/EXAMPLES_KR.md +130 -0
  29. package/docs/EXIT-CODES.md +25 -0
  30. package/docs/FAQ.md +67 -0
  31. package/docs/FAQ_KR.md +65 -0
  32. package/docs/FLAG-PARITY.md +53 -0
  33. package/docs/GLOSSARY.md +123 -0
  34. package/docs/PATTERNS-EN.md +718 -0
  35. package/docs/PATTERNS-JA.md +706 -0
  36. package/docs/PATTERNS-KO.md +707 -0
  37. package/docs/PATTERNS-ZH.md +706 -0
  38. package/docs/PATTERNS.md +22 -0
  39. package/docs/ROADMAP.md +315 -0
  40. package/docs/audits/2026-05-deep-research.md +290 -0
  41. package/docs/benchmarks/detector-comparison.json +442 -0
  42. package/docs/benchmarks/detector-comparison.md +65 -0
  43. package/docs/benchmarks/latest.json +988 -0
  44. package/docs/benchmarks/latest.md +112 -0
  45. package/docs/integrations/docker.md +19 -0
  46. package/docs/integrations/github-action.md +59 -0
  47. package/docs/integrations/pre-commit.md +77 -0
  48. package/docs/integrations/release.md +43 -0
  49. package/docs/internal/HARNESS.md +14 -0
  50. package/docs/internal/README.md +14 -0
  51. package/docs/internal/WARP.md +23 -0
  52. package/docs/research/2025-rebaseline-plan.md +89 -0
  53. package/docs/research/ai-human-metrics.md +380 -0
  54. package/docs/social/gstack-cardnews.html +236 -0
  55. package/docs/social/gstack-cardnews.md +88 -0
  56. package/docs/social/gstack-thread.md +106 -0
  57. package/docs/social/patina-launch-copy.md +227 -0
  58. package/docs/superpowers/specs/2026-04-03-meaning-preservation-design.md +299 -0
  59. package/lexicon/ai-en.md +162 -0
  60. package/lexicon/ai-ko.md +159 -0
  61. package/package.json +100 -0
  62. package/patina-max/SKILL.md +523 -0
  63. package/patina-max/composite.py +457 -0
  64. package/patterns/en-communication.md +89 -0
  65. package/patterns/en-content.md +133 -0
  66. package/patterns/en-filler.md +113 -0
  67. package/patterns/en-language.md +163 -0
  68. package/patterns/en-structure.md +173 -0
  69. package/patterns/en-style.md +139 -0
  70. package/patterns/en-viral-hook.md +211 -0
  71. package/patterns/ja-communication.md +101 -0
  72. package/patterns/ja-content.md +153 -0
  73. package/patterns/ja-filler.md +123 -0
  74. package/patterns/ja-language.md +190 -0
  75. package/patterns/ja-structure.md +142 -0
  76. package/patterns/ja-style.md +147 -0
  77. package/patterns/ja-viral-hook.md +216 -0
  78. package/patterns/ko-communication.md +98 -0
  79. package/patterns/ko-content.md +154 -0
  80. package/patterns/ko-filler.md +105 -0
  81. package/patterns/ko-language.md +182 -0
  82. package/patterns/ko-structure.md +147 -0
  83. package/patterns/ko-style.md +146 -0
  84. package/patterns/ko-viral-hook.md +211 -0
  85. package/patterns/zh-communication.md +101 -0
  86. package/patterns/zh-content.md +153 -0
  87. package/patterns/zh-filler.md +118 -0
  88. package/patterns/zh-language.md +173 -0
  89. package/patterns/zh-structure.md +145 -0
  90. package/patterns/zh-style.md +159 -0
  91. package/patterns/zh-viral-hook.md +216 -0
  92. package/profiles/academic.md +53 -0
  93. package/profiles/blog.md +81 -0
  94. package/profiles/casual-conversation.md +105 -0
  95. package/profiles/code-comment.md +104 -0
  96. package/profiles/commit-message.md +99 -0
  97. package/profiles/default.md +62 -0
  98. package/profiles/email.md +52 -0
  99. package/profiles/formal.md +98 -0
  100. package/profiles/instructional.md +80 -0
  101. package/profiles/legal.md +57 -0
  102. package/profiles/marketing.md +56 -0
  103. package/profiles/medical.md +53 -0
  104. package/profiles/narrative.md +79 -0
  105. package/profiles/release-notes.md +98 -0
  106. package/profiles/social.md +56 -0
  107. package/profiles/technical.md +53 -0
  108. package/scripts/benchmark-report.mjs +252 -0
  109. package/scripts/check-release-metadata.mjs +48 -0
  110. package/scripts/detector-comparison.mjs +267 -0
  111. package/scripts/lint.mjs +40 -0
  112. package/scripts/precommit-score.mjs +31 -0
  113. package/scripts/prose-score.mjs +186 -0
  114. package/scripts/update-benchmark-ranges.mjs +108 -0
  115. package/src/api.js +330 -0
  116. package/src/auth.js +105 -0
  117. package/src/backends/claude-cli.js +112 -0
  118. package/src/backends/codex-cli.js +121 -0
  119. package/src/backends/contract.js +21 -0
  120. package/src/backends/gemini-cli.js +135 -0
  121. package/src/backends/index.js +159 -0
  122. package/src/cache.js +106 -0
  123. package/src/cli.js +1280 -0
  124. package/src/commands/doctor.js +229 -0
  125. package/src/commands/init.js +208 -0
  126. package/src/config.js +126 -0
  127. package/src/errors.js +53 -0
  128. package/src/features/index.js +96 -0
  129. package/src/features/lexicon.js +90 -0
  130. package/src/features/segment.js +49 -0
  131. package/src/features/stylometry.js +50 -0
  132. package/src/loader.js +103 -0
  133. package/src/logger.js +70 -0
  134. package/src/manifest.js +162 -0
  135. package/src/max-mode.js +207 -0
  136. package/src/ouroboros.js +233 -0
  137. package/src/output.js +480 -0
  138. package/src/prompt-builder.js +409 -0
  139. package/src/providers.js +100 -0
  140. package/src/scoring.js +531 -0
  141. package/src/security.js +133 -0
  142. package/tests/fixtures/suspect-zones/en/ai/en-ai-01.md +16 -0
  143. package/tests/fixtures/suspect-zones/en/ai/en-ai-02.md +16 -0
  144. package/tests/fixtures/suspect-zones/en/ai/en-ai-03.md +17 -0
  145. package/tests/fixtures/suspect-zones/en/ai/en-ai-04.md +15 -0
  146. package/tests/fixtures/suspect-zones/en/ai/en-ai-05.md +16 -0
  147. package/tests/fixtures/suspect-zones/en/ai/en-ai-06-chat-register.md +16 -0
  148. package/tests/fixtures/suspect-zones/en/natural/en-nat-01.md +15 -0
  149. package/tests/fixtures/suspect-zones/en/natural/en-nat-02.md +15 -0
  150. package/tests/fixtures/suspect-zones/en/natural/en-nat-03.md +15 -0
  151. package/tests/fixtures/suspect-zones/en/natural/en-nat-04.md +15 -0
  152. package/tests/fixtures/suspect-zones/en/natural/en-nat-05.md +15 -0
  153. package/tests/fixtures/suspect-zones/expected-ranges.json +939 -0
  154. package/tests/fixtures/suspect-zones/ja/ai/ja-ai-01.md +11 -0
  155. package/tests/fixtures/suspect-zones/ja/ai/ja-ai-02.md +11 -0
  156. package/tests/fixtures/suspect-zones/ja/ai/ja-ai-03.md +11 -0
  157. package/tests/fixtures/suspect-zones/ja/natural/ja-nat-01.md +11 -0
  158. package/tests/fixtures/suspect-zones/ja/natural/ja-nat-02.md +11 -0
  159. package/tests/fixtures/suspect-zones/ja/natural/ja-nat-03.md +11 -0
  160. package/tests/fixtures/suspect-zones/ko/ai/ko-ai-01.md +14 -0
  161. package/tests/fixtures/suspect-zones/ko/ai/ko-ai-02.md +16 -0
  162. package/tests/fixtures/suspect-zones/ko/ai/ko-ai-03.md +15 -0
  163. package/tests/fixtures/suspect-zones/ko/ai/ko-ai-04.md +15 -0
  164. package/tests/fixtures/suspect-zones/ko/ai/ko-ai-05.md +16 -0
  165. package/tests/fixtures/suspect-zones/ko/ai/ko-ai-06-chat-register.md +16 -0
  166. package/tests/fixtures/suspect-zones/ko/natural/ko-nat-01.md +15 -0
  167. package/tests/fixtures/suspect-zones/ko/natural/ko-nat-02.md +15 -0
  168. package/tests/fixtures/suspect-zones/ko/natural/ko-nat-03.md +15 -0
  169. package/tests/fixtures/suspect-zones/ko/natural/ko-nat-04.md +14 -0
  170. package/tests/fixtures/suspect-zones/ko/natural/ko-nat-05.md +15 -0
  171. package/tests/fixtures/suspect-zones/zh/ai/zh-ai-01.md +11 -0
  172. package/tests/fixtures/suspect-zones/zh/ai/zh-ai-02.md +11 -0
  173. package/tests/fixtures/suspect-zones/zh/ai/zh-ai-03.md +11 -0
  174. package/tests/fixtures/suspect-zones/zh/natural/zh-nat-01.md +11 -0
  175. package/tests/fixtures/suspect-zones/zh/natural/zh-nat-02.md +11 -0
  176. package/tests/fixtures/suspect-zones/zh/natural/zh-nat-03.md +11 -0
  177. package/tests/quality/README.md +121 -0
  178. package/tests/quality/benchmark.mjs +306 -0
  179. package/tests/quality/detectors.manual.example.json +31 -0
  180. package/tests/quality/dogfood.mjs +44 -0
@@ -0,0 +1,939 @@
1
+ {
2
+ "schemaVersion": 1,
3
+ "generatedBy": "node scripts/update-benchmark-ranges.mjs",
4
+ "generatedAt": "2026-05-20T03:49:33.350Z",
5
+ "fixtureCount": 34,
6
+ "tolerances": {
7
+ "cv": 0.025,
8
+ "mattr": 0.03,
9
+ "lexiconDensity": 5
10
+ },
11
+ "metrics": {
12
+ "en-ai-01": {
13
+ "path": "tests/fixtures/suspect-zones/en/ai/en-ai-01.md",
14
+ "lang": "en",
15
+ "class": "ai",
16
+ "expected_hot": true,
17
+ "predicted_hot": true,
18
+ "detectors": {
19
+ "burstiness": true,
20
+ "mattr": false,
21
+ "lexicon": false
22
+ },
23
+ "cv_band": "low",
24
+ "cv_range": [
25
+ 0.033,
26
+ 0.083
27
+ ],
28
+ "mattr_band": "high",
29
+ "mattr_range": [
30
+ 0.898,
31
+ 0.958
32
+ ],
33
+ "lexicon_density_range": [
34
+ 0,
35
+ 5
36
+ ],
37
+ "lexicon_hits": []
38
+ },
39
+ "en-ai-02": {
40
+ "path": "tests/fixtures/suspect-zones/en/ai/en-ai-02.md",
41
+ "lang": "en",
42
+ "class": "ai",
43
+ "expected_hot": true,
44
+ "predicted_hot": true,
45
+ "detectors": {
46
+ "burstiness": true,
47
+ "mattr": false,
48
+ "lexicon": false
49
+ },
50
+ "cv_band": "low",
51
+ "cv_range": [
52
+ 0.065,
53
+ 0.115
54
+ ],
55
+ "mattr_band": "high",
56
+ "mattr_range": [
57
+ 0.811,
58
+ 0.871
59
+ ],
60
+ "lexicon_density_range": [
61
+ 0,
62
+ 5
63
+ ],
64
+ "lexicon_hits": []
65
+ },
66
+ "en-ai-03": {
67
+ "path": "tests/fixtures/suspect-zones/en/ai/en-ai-03.md",
68
+ "lang": "en",
69
+ "class": "ai",
70
+ "expected_hot": true,
71
+ "predicted_hot": true,
72
+ "detectors": {
73
+ "burstiness": true,
74
+ "mattr": false,
75
+ "lexicon": false
76
+ },
77
+ "cv_band": "low",
78
+ "cv_range": [
79
+ 0.04,
80
+ 0.09
81
+ ],
82
+ "mattr_band": "high",
83
+ "mattr_range": [
84
+ 0.798,
85
+ 0.858
86
+ ],
87
+ "lexicon_density_range": [
88
+ 0,
89
+ 5
90
+ ],
91
+ "lexicon_hits": []
92
+ },
93
+ "en-ai-04": {
94
+ "path": "tests/fixtures/suspect-zones/en/ai/en-ai-04.md",
95
+ "lang": "en",
96
+ "class": "ai",
97
+ "expected_hot": true,
98
+ "predicted_hot": true,
99
+ "detectors": {
100
+ "burstiness": true,
101
+ "mattr": false,
102
+ "lexicon": false
103
+ },
104
+ "cv_band": "low",
105
+ "cv_range": [
106
+ 0.045,
107
+ 0.095
108
+ ],
109
+ "mattr_band": "high",
110
+ "mattr_range": [
111
+ 0.81,
112
+ 0.87
113
+ ],
114
+ "lexicon_density_range": [
115
+ 0,
116
+ 5
117
+ ],
118
+ "lexicon_hits": []
119
+ },
120
+ "en-ai-05": {
121
+ "path": "tests/fixtures/suspect-zones/en/ai/en-ai-05.md",
122
+ "lang": "en",
123
+ "class": "ai",
124
+ "expected_hot": true,
125
+ "predicted_hot": true,
126
+ "detectors": {
127
+ "burstiness": true,
128
+ "mattr": false,
129
+ "lexicon": false
130
+ },
131
+ "cv_band": "low",
132
+ "cv_range": [
133
+ 0.068,
134
+ 0.118
135
+ ],
136
+ "mattr_band": "high",
137
+ "mattr_range": [
138
+ 0.849,
139
+ 0.909
140
+ ],
141
+ "lexicon_density_range": [
142
+ 0,
143
+ 5
144
+ ],
145
+ "lexicon_hits": []
146
+ },
147
+ "en-ai-06-chat-register": {
148
+ "path": "tests/fixtures/suspect-zones/en/ai/en-ai-06-chat-register.md",
149
+ "lang": "en",
150
+ "class": "ai",
151
+ "expected_hot": true,
152
+ "predicted_hot": true,
153
+ "detectors": {
154
+ "burstiness": true,
155
+ "mattr": false,
156
+ "lexicon": false
157
+ },
158
+ "cv_band": "low",
159
+ "cv_range": [
160
+ 0.009,
161
+ 0.059
162
+ ],
163
+ "mattr_band": "high",
164
+ "mattr_range": [
165
+ 0.784,
166
+ 0.844
167
+ ],
168
+ "lexicon_density_range": [
169
+ 0,
170
+ 5
171
+ ],
172
+ "lexicon_hits": []
173
+ },
174
+ "en-nat-01": {
175
+ "path": "tests/fixtures/suspect-zones/en/natural/en-nat-01.md",
176
+ "lang": "en",
177
+ "class": "natural",
178
+ "expected_hot": false,
179
+ "predicted_hot": false,
180
+ "detectors": {
181
+ "burstiness": false,
182
+ "mattr": false,
183
+ "lexicon": false
184
+ },
185
+ "cv_band": "high",
186
+ "cv_range": [
187
+ 0.856,
188
+ 0.906
189
+ ],
190
+ "mattr_band": "high",
191
+ "mattr_range": [
192
+ 0.868,
193
+ 0.928
194
+ ],
195
+ "lexicon_density_range": [
196
+ 0,
197
+ 5
198
+ ],
199
+ "lexicon_hits": []
200
+ },
201
+ "en-nat-02": {
202
+ "path": "tests/fixtures/suspect-zones/en/natural/en-nat-02.md",
203
+ "lang": "en",
204
+ "class": "natural",
205
+ "expected_hot": false,
206
+ "predicted_hot": false,
207
+ "detectors": {
208
+ "burstiness": false,
209
+ "mattr": false,
210
+ "lexicon": false
211
+ },
212
+ "cv_band": "high",
213
+ "cv_range": [
214
+ 0.861,
215
+ 0.911
216
+ ],
217
+ "mattr_band": "high",
218
+ "mattr_range": [
219
+ 0.854,
220
+ 0.914
221
+ ],
222
+ "lexicon_density_range": [
223
+ 0,
224
+ 5
225
+ ],
226
+ "lexicon_hits": []
227
+ },
228
+ "en-nat-03": {
229
+ "path": "tests/fixtures/suspect-zones/en/natural/en-nat-03.md",
230
+ "lang": "en",
231
+ "class": "natural",
232
+ "expected_hot": false,
233
+ "predicted_hot": false,
234
+ "detectors": {
235
+ "burstiness": false,
236
+ "mattr": false,
237
+ "lexicon": false
238
+ },
239
+ "cv_band": "high",
240
+ "cv_range": [
241
+ 0.889,
242
+ 0.939
243
+ ],
244
+ "mattr_band": "high",
245
+ "mattr_range": [
246
+ 0.852,
247
+ 0.912
248
+ ],
249
+ "lexicon_density_range": [
250
+ 0,
251
+ 5
252
+ ],
253
+ "lexicon_hits": []
254
+ },
255
+ "en-nat-04": {
256
+ "path": "tests/fixtures/suspect-zones/en/natural/en-nat-04.md",
257
+ "lang": "en",
258
+ "class": "natural",
259
+ "expected_hot": false,
260
+ "predicted_hot": false,
261
+ "detectors": {
262
+ "burstiness": false,
263
+ "mattr": false,
264
+ "lexicon": false
265
+ },
266
+ "cv_band": "mid",
267
+ "cv_range": [
268
+ 0.469,
269
+ 0.519
270
+ ],
271
+ "mattr_band": "high",
272
+ "mattr_range": [
273
+ 0.824,
274
+ 0.884
275
+ ],
276
+ "lexicon_density_range": [
277
+ 0,
278
+ 5
279
+ ],
280
+ "lexicon_hits": []
281
+ },
282
+ "en-nat-05": {
283
+ "path": "tests/fixtures/suspect-zones/en/natural/en-nat-05.md",
284
+ "lang": "en",
285
+ "class": "natural",
286
+ "expected_hot": false,
287
+ "predicted_hot": false,
288
+ "detectors": {
289
+ "burstiness": false,
290
+ "mattr": false,
291
+ "lexicon": false
292
+ },
293
+ "cv_band": "high",
294
+ "cv_range": [
295
+ 0.828,
296
+ 0.878
297
+ ],
298
+ "mattr_band": "high",
299
+ "mattr_range": [
300
+ 0.845,
301
+ 0.905
302
+ ],
303
+ "lexicon_density_range": [
304
+ 0,
305
+ 5
306
+ ],
307
+ "lexicon_hits": []
308
+ },
309
+ "ja-ai-01": {
310
+ "path": "tests/fixtures/suspect-zones/ja/ai/ja-ai-01.md",
311
+ "lang": "ja",
312
+ "class": "ai",
313
+ "expected_hot": true,
314
+ "predicted_hot": true,
315
+ "detectors": {
316
+ "burstiness": true,
317
+ "mattr": false,
318
+ "lexicon": false
319
+ },
320
+ "cv_band": "low",
321
+ "cv_range": [
322
+ 0.02,
323
+ 0.07
324
+ ],
325
+ "mattr_band": "high",
326
+ "mattr_range": [
327
+ 0.803,
328
+ 0.863
329
+ ],
330
+ "lexicon_density_range": [
331
+ 0,
332
+ 5
333
+ ],
334
+ "lexicon_hits": []
335
+ },
336
+ "ja-ai-02": {
337
+ "path": "tests/fixtures/suspect-zones/ja/ai/ja-ai-02.md",
338
+ "lang": "ja",
339
+ "class": "ai",
340
+ "expected_hot": true,
341
+ "predicted_hot": true,
342
+ "detectors": {
343
+ "burstiness": true,
344
+ "mattr": false,
345
+ "lexicon": false
346
+ },
347
+ "cv_band": "low",
348
+ "cv_range": [
349
+ 0.205,
350
+ 0.255
351
+ ],
352
+ "mattr_band": "high",
353
+ "mattr_range": [
354
+ 0.755,
355
+ 0.815
356
+ ],
357
+ "lexicon_density_range": [
358
+ 0,
359
+ 5
360
+ ],
361
+ "lexicon_hits": []
362
+ },
363
+ "ja-ai-03": {
364
+ "path": "tests/fixtures/suspect-zones/ja/ai/ja-ai-03.md",
365
+ "lang": "ja",
366
+ "class": "ai",
367
+ "expected_hot": true,
368
+ "predicted_hot": true,
369
+ "detectors": {
370
+ "burstiness": true,
371
+ "mattr": false,
372
+ "lexicon": false
373
+ },
374
+ "cv_band": "low",
375
+ "cv_range": [
376
+ 0.038,
377
+ 0.088
378
+ ],
379
+ "mattr_band": "high",
380
+ "mattr_range": [
381
+ 0.765,
382
+ 0.825
383
+ ],
384
+ "lexicon_density_range": [
385
+ 0,
386
+ 5
387
+ ],
388
+ "lexicon_hits": []
389
+ },
390
+ "ja-nat-01": {
391
+ "path": "tests/fixtures/suspect-zones/ja/natural/ja-nat-01.md",
392
+ "lang": "ja",
393
+ "class": "natural",
394
+ "expected_hot": false,
395
+ "predicted_hot": false,
396
+ "detectors": {
397
+ "burstiness": false,
398
+ "mattr": false,
399
+ "lexicon": false
400
+ },
401
+ "cv_band": "mid",
402
+ "cv_range": [
403
+ 0.462,
404
+ 0.512
405
+ ],
406
+ "mattr_band": "high",
407
+ "mattr_range": [
408
+ 0.689,
409
+ 0.749
410
+ ],
411
+ "lexicon_density_range": [
412
+ 0,
413
+ 5
414
+ ],
415
+ "lexicon_hits": []
416
+ },
417
+ "ja-nat-02": {
418
+ "path": "tests/fixtures/suspect-zones/ja/natural/ja-nat-02.md",
419
+ "lang": "ja",
420
+ "class": "natural",
421
+ "expected_hot": false,
422
+ "predicted_hot": false,
423
+ "detectors": {
424
+ "burstiness": false,
425
+ "mattr": false,
426
+ "lexicon": false
427
+ },
428
+ "cv_band": "high",
429
+ "cv_range": [
430
+ 0.625,
431
+ 0.675
432
+ ],
433
+ "mattr_band": "high",
434
+ "mattr_range": [
435
+ 0.766,
436
+ 0.826
437
+ ],
438
+ "lexicon_density_range": [
439
+ 0,
440
+ 5
441
+ ],
442
+ "lexicon_hits": []
443
+ },
444
+ "ja-nat-03": {
445
+ "path": "tests/fixtures/suspect-zones/ja/natural/ja-nat-03.md",
446
+ "lang": "ja",
447
+ "class": "natural",
448
+ "expected_hot": false,
449
+ "predicted_hot": false,
450
+ "detectors": {
451
+ "burstiness": false,
452
+ "mattr": false,
453
+ "lexicon": false
454
+ },
455
+ "cv_band": "mid",
456
+ "cv_range": [
457
+ 0.37,
458
+ 0.42
459
+ ],
460
+ "mattr_band": "high",
461
+ "mattr_range": [
462
+ 0.777,
463
+ 0.837
464
+ ],
465
+ "lexicon_density_range": [
466
+ 0,
467
+ 5
468
+ ],
469
+ "lexicon_hits": []
470
+ },
471
+ "ko-ai-01": {
472
+ "path": "tests/fixtures/suspect-zones/ko/ai/ko-ai-01.md",
473
+ "lang": "ko",
474
+ "class": "ai",
475
+ "expected_hot": true,
476
+ "predicted_hot": true,
477
+ "detectors": {
478
+ "burstiness": true,
479
+ "mattr": false,
480
+ "lexicon": true
481
+ },
482
+ "cv_band": "low",
483
+ "cv_range": [
484
+ 0.068,
485
+ 0.118
486
+ ],
487
+ "mattr_band": "high",
488
+ "mattr_range": [
489
+ 0.947,
490
+ 1.007
491
+ ],
492
+ "lexicon_density_range": [
493
+ 18.256,
494
+ 28.256
495
+ ],
496
+ "lexicon_hits": [
497
+ "추세"
498
+ ]
499
+ },
500
+ "ko-ai-02": {
501
+ "path": "tests/fixtures/suspect-zones/ko/ai/ko-ai-02.md",
502
+ "lang": "ko",
503
+ "class": "ai",
504
+ "expected_hot": true,
505
+ "predicted_hot": true,
506
+ "detectors": {
507
+ "burstiness": true,
508
+ "mattr": false,
509
+ "lexicon": true
510
+ },
511
+ "cv_band": "low",
512
+ "cv_range": [
513
+ 0.048,
514
+ 0.098
515
+ ],
516
+ "mattr_band": "high",
517
+ "mattr_range": [
518
+ 0.79,
519
+ 0.85
520
+ ],
521
+ "lexicon_density_range": [
522
+ 14.608,
523
+ 24.608
524
+ ],
525
+ "lexicon_hits": [
526
+ "환경"
527
+ ]
528
+ },
529
+ "ko-ai-03": {
530
+ "path": "tests/fixtures/suspect-zones/ko/ai/ko-ai-03.md",
531
+ "lang": "ko",
532
+ "class": "ai",
533
+ "expected_hot": true,
534
+ "predicted_hot": true,
535
+ "detectors": {
536
+ "burstiness": true,
537
+ "mattr": false,
538
+ "lexicon": true
539
+ },
540
+ "cv_band": "low",
541
+ "cv_range": [
542
+ 0.048,
543
+ 0.098
544
+ ],
545
+ "mattr_band": "high",
546
+ "mattr_range": [
547
+ 0.76,
548
+ 0.82
549
+ ],
550
+ "lexicon_density_range": [
551
+ 14.608,
552
+ 24.608
553
+ ],
554
+ "lexicon_hits": [
555
+ "추세"
556
+ ]
557
+ },
558
+ "ko-ai-04": {
559
+ "path": "tests/fixtures/suspect-zones/ko/ai/ko-ai-04.md",
560
+ "lang": "ko",
561
+ "class": "ai",
562
+ "expected_hot": true,
563
+ "predicted_hot": true,
564
+ "detectors": {
565
+ "burstiness": true,
566
+ "mattr": false,
567
+ "lexicon": false
568
+ },
569
+ "cv_band": "low",
570
+ "cv_range": [
571
+ 0.073,
572
+ 0.123
573
+ ],
574
+ "mattr_band": "high",
575
+ "mattr_range": [
576
+ 0.823,
577
+ 0.883
578
+ ],
579
+ "lexicon_density_range": [
580
+ 0,
581
+ 5
582
+ ],
583
+ "lexicon_hits": []
584
+ },
585
+ "ko-ai-05": {
586
+ "path": "tests/fixtures/suspect-zones/ko/ai/ko-ai-05.md",
587
+ "lang": "ko",
588
+ "class": "ai",
589
+ "expected_hot": true,
590
+ "predicted_hot": true,
591
+ "detectors": {
592
+ "burstiness": true,
593
+ "mattr": false,
594
+ "lexicon": false
595
+ },
596
+ "cv_band": "low",
597
+ "cv_range": [
598
+ 0.073,
599
+ 0.123
600
+ ],
601
+ "mattr_band": "high",
602
+ "mattr_range": [
603
+ 0.823,
604
+ 0.883
605
+ ],
606
+ "lexicon_density_range": [
607
+ 0,
608
+ 5
609
+ ],
610
+ "lexicon_hits": []
611
+ },
612
+ "ko-ai-06-chat-register": {
613
+ "path": "tests/fixtures/suspect-zones/ko/ai/ko-ai-06-chat-register.md",
614
+ "lang": "ko",
615
+ "class": "ai",
616
+ "expected_hot": true,
617
+ "predicted_hot": true,
618
+ "detectors": {
619
+ "burstiness": true,
620
+ "mattr": false,
621
+ "lexicon": true
622
+ },
623
+ "cv_band": "low",
624
+ "cv_range": [
625
+ 0.056,
626
+ 0.106
627
+ ],
628
+ "mattr_band": "high",
629
+ "mattr_range": [
630
+ 0.97,
631
+ 1.03
632
+ ],
633
+ "lexicon_density_range": [
634
+ 16.739,
635
+ 26.739
636
+ ],
637
+ "lexicon_hits": [
638
+ "흐름"
639
+ ]
640
+ },
641
+ "ko-nat-01": {
642
+ "path": "tests/fixtures/suspect-zones/ko/natural/ko-nat-01.md",
643
+ "lang": "ko",
644
+ "class": "natural",
645
+ "expected_hot": false,
646
+ "predicted_hot": false,
647
+ "detectors": {
648
+ "burstiness": false,
649
+ "mattr": false,
650
+ "lexicon": false
651
+ },
652
+ "cv_band": "high",
653
+ "cv_range": [
654
+ 0.692,
655
+ 0.742
656
+ ],
657
+ "mattr_band": "high",
658
+ "mattr_range": [
659
+ 0.97,
660
+ 1.03
661
+ ],
662
+ "lexicon_density_range": [
663
+ 0,
664
+ 5
665
+ ],
666
+ "lexicon_hits": []
667
+ },
668
+ "ko-nat-02": {
669
+ "path": "tests/fixtures/suspect-zones/ko/natural/ko-nat-02.md",
670
+ "lang": "ko",
671
+ "class": "natural",
672
+ "expected_hot": false,
673
+ "predicted_hot": false,
674
+ "detectors": {
675
+ "burstiness": false,
676
+ "mattr": false,
677
+ "lexicon": false
678
+ },
679
+ "cv_band": "high",
680
+ "cv_range": [
681
+ 0.527,
682
+ 0.577
683
+ ],
684
+ "mattr_band": "high",
685
+ "mattr_range": [
686
+ 0.97,
687
+ 1.03
688
+ ],
689
+ "lexicon_density_range": [
690
+ 0,
691
+ 5
692
+ ],
693
+ "lexicon_hits": []
694
+ },
695
+ "ko-nat-03": {
696
+ "path": "tests/fixtures/suspect-zones/ko/natural/ko-nat-03.md",
697
+ "lang": "ko",
698
+ "class": "natural",
699
+ "expected_hot": false,
700
+ "predicted_hot": false,
701
+ "detectors": {
702
+ "burstiness": false,
703
+ "mattr": false,
704
+ "lexicon": false
705
+ },
706
+ "cv_band": "high",
707
+ "cv_range": [
708
+ 0.655,
709
+ 0.705
710
+ ],
711
+ "mattr_band": "high",
712
+ "mattr_range": [
713
+ 0.97,
714
+ 1.03
715
+ ],
716
+ "lexicon_density_range": [
717
+ 0,
718
+ 5
719
+ ],
720
+ "lexicon_hits": []
721
+ },
722
+ "ko-nat-04": {
723
+ "path": "tests/fixtures/suspect-zones/ko/natural/ko-nat-04.md",
724
+ "lang": "ko",
725
+ "class": "natural",
726
+ "expected_hot": false,
727
+ "predicted_hot": false,
728
+ "detectors": {
729
+ "burstiness": false,
730
+ "mattr": false,
731
+ "lexicon": false
732
+ },
733
+ "cv_band": "high",
734
+ "cv_range": [
735
+ 0.746,
736
+ 0.796
737
+ ],
738
+ "mattr_band": "high",
739
+ "mattr_range": [
740
+ 0.945,
741
+ 1.005
742
+ ],
743
+ "lexicon_density_range": [
744
+ 0,
745
+ 5
746
+ ],
747
+ "lexicon_hits": []
748
+ },
749
+ "ko-nat-05": {
750
+ "path": "tests/fixtures/suspect-zones/ko/natural/ko-nat-05.md",
751
+ "lang": "ko",
752
+ "class": "natural",
753
+ "expected_hot": false,
754
+ "predicted_hot": false,
755
+ "detectors": {
756
+ "burstiness": false,
757
+ "mattr": false,
758
+ "lexicon": false
759
+ },
760
+ "cv_band": "high",
761
+ "cv_range": [
762
+ 0.971,
763
+ 1.021
764
+ ],
765
+ "mattr_band": "high",
766
+ "mattr_range": [
767
+ 0.968,
768
+ 1.028
769
+ ],
770
+ "lexicon_density_range": [
771
+ 0,
772
+ 5
773
+ ],
774
+ "lexicon_hits": []
775
+ },
776
+ "zh-ai-01": {
777
+ "path": "tests/fixtures/suspect-zones/zh/ai/zh-ai-01.md",
778
+ "lang": "zh",
779
+ "class": "ai",
780
+ "expected_hot": true,
781
+ "predicted_hot": true,
782
+ "detectors": {
783
+ "burstiness": true,
784
+ "mattr": false,
785
+ "lexicon": false
786
+ },
787
+ "cv_band": "low",
788
+ "cv_range": [
789
+ 0.037,
790
+ 0.087
791
+ ],
792
+ "mattr_band": "high",
793
+ "mattr_range": [
794
+ 0.872,
795
+ 0.932
796
+ ],
797
+ "lexicon_density_range": [
798
+ 0,
799
+ 5
800
+ ],
801
+ "lexicon_hits": []
802
+ },
803
+ "zh-ai-02": {
804
+ "path": "tests/fixtures/suspect-zones/zh/ai/zh-ai-02.md",
805
+ "lang": "zh",
806
+ "class": "ai",
807
+ "expected_hot": true,
808
+ "predicted_hot": true,
809
+ "detectors": {
810
+ "burstiness": true,
811
+ "mattr": false,
812
+ "lexicon": false
813
+ },
814
+ "cv_band": "low",
815
+ "cv_range": [
816
+ 0.255,
817
+ 0.305
818
+ ],
819
+ "mattr_band": "high",
820
+ "mattr_range": [
821
+ 0.704,
822
+ 0.764
823
+ ],
824
+ "lexicon_density_range": [
825
+ 0,
826
+ 5
827
+ ],
828
+ "lexicon_hits": []
829
+ },
830
+ "zh-ai-03": {
831
+ "path": "tests/fixtures/suspect-zones/zh/ai/zh-ai-03.md",
832
+ "lang": "zh",
833
+ "class": "ai",
834
+ "expected_hot": true,
835
+ "predicted_hot": true,
836
+ "detectors": {
837
+ "burstiness": true,
838
+ "mattr": false,
839
+ "lexicon": false
840
+ },
841
+ "cv_band": "low",
842
+ "cv_range": [
843
+ 0.058,
844
+ 0.108
845
+ ],
846
+ "mattr_band": "high",
847
+ "mattr_range": [
848
+ 0.903,
849
+ 0.963
850
+ ],
851
+ "lexicon_density_range": [
852
+ 0,
853
+ 5
854
+ ],
855
+ "lexicon_hits": []
856
+ },
857
+ "zh-nat-01": {
858
+ "path": "tests/fixtures/suspect-zones/zh/natural/zh-nat-01.md",
859
+ "lang": "zh",
860
+ "class": "natural",
861
+ "expected_hot": false,
862
+ "predicted_hot": false,
863
+ "detectors": {
864
+ "burstiness": false,
865
+ "mattr": false,
866
+ "lexicon": false
867
+ },
868
+ "cv_band": "high",
869
+ "cv_range": [
870
+ 0.481,
871
+ 0.531
872
+ ],
873
+ "mattr_band": "high",
874
+ "mattr_range": [
875
+ 0.845,
876
+ 0.905
877
+ ],
878
+ "lexicon_density_range": [
879
+ 0,
880
+ 5
881
+ ],
882
+ "lexicon_hits": []
883
+ },
884
+ "zh-nat-02": {
885
+ "path": "tests/fixtures/suspect-zones/zh/natural/zh-nat-02.md",
886
+ "lang": "zh",
887
+ "class": "natural",
888
+ "expected_hot": false,
889
+ "predicted_hot": false,
890
+ "detectors": {
891
+ "burstiness": false,
892
+ "mattr": false,
893
+ "lexicon": false
894
+ },
895
+ "cv_band": "high",
896
+ "cv_range": [
897
+ 0.503,
898
+ 0.553
899
+ ],
900
+ "mattr_band": "high",
901
+ "mattr_range": [
902
+ 0.906,
903
+ 0.966
904
+ ],
905
+ "lexicon_density_range": [
906
+ 0,
907
+ 5
908
+ ],
909
+ "lexicon_hits": []
910
+ },
911
+ "zh-nat-03": {
912
+ "path": "tests/fixtures/suspect-zones/zh/natural/zh-nat-03.md",
913
+ "lang": "zh",
914
+ "class": "natural",
915
+ "expected_hot": false,
916
+ "predicted_hot": false,
917
+ "detectors": {
918
+ "burstiness": false,
919
+ "mattr": false,
920
+ "lexicon": false
921
+ },
922
+ "cv_band": "high",
923
+ "cv_range": [
924
+ 0.555,
925
+ 0.605
926
+ ],
927
+ "mattr_band": "high",
928
+ "mattr_range": [
929
+ 0.877,
930
+ 0.937
931
+ ],
932
+ "lexicon_density_range": [
933
+ 0,
934
+ 5
935
+ ],
936
+ "lexicon_hits": []
937
+ }
938
+ }
939
+ }