patina-cli 3.11.0 → 4.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.patina.default.yaml +29 -29
- package/CHANGELOG.md +53 -0
- package/NOTICE +21 -0
- package/README.md +117 -224
- package/README_JA.md +134 -77
- package/README_KR.md +132 -74
- package/README_ZH.md +137 -80
- package/SKILL.md +11 -20
- package/artifacts/rebaseline-2025/README.md +147 -0
- package/artifacts/rebaseline-2025/human-controls.public.jsonl +250 -0
- package/artifacts/rebaseline-2025/intake.example.jsonl +2 -0
- package/artifacts/rebaseline-2025/intake.local.example.jsonl +25 -0
- package/artifacts/rebaseline-2025/prompts.template.jsonl +7 -0
- package/artifacts/rebaseline-2025/sources.ko-public.jsonl +39 -0
- package/assets/brand/patina-badge.svg +18 -0
- package/assets/brand/patina-mark.svg +8 -0
- package/assets/demo/README.md +79 -0
- package/core/scoring.md +12 -12
- package/core/standalone-prompt.md +3 -1
- package/core/stylometry.md +93 -22
- package/docs/API.md +1554 -0
- package/docs/AUTHENTICATION.md +50 -26
- package/docs/AUTHENTICATION_KR.md +54 -29
- package/docs/BRANDING.md +9 -8
- package/docs/CLI.md +55 -14
- package/docs/COOKBOOK.md +8 -21
- package/docs/DEMO.md +32 -5
- package/docs/EXIT-CODES.md +2 -3
- package/docs/FALSE-POSITIVES.md +63 -0
- package/docs/FAQ.md +9 -1
- package/docs/FAQ_KR.md +3 -1
- package/docs/FLAG-PARITY.md +33 -47
- package/docs/ISSUE-WAVES.md +57 -0
- package/docs/PATTERNS-EN.md +67 -3
- package/docs/PATTERNS-JA.md +68 -2
- package/docs/PATTERNS-KO.md +70 -7
- package/docs/PATTERNS-ZH.md +67 -3
- package/docs/PATTERNS.md +5 -5
- package/docs/RESEARCH-DOCS-PLATFORM.md +54 -0
- package/docs/ROADMAP.md +46 -66
- package/docs/TRANSLATIONESE-KO.md +51 -0
- package/docs/audits/2026-05-deep-research.md +3 -1
- package/docs/benchmarks/README.md +51 -0
- package/docs/benchmarks/detector-comparison.json +69 -9
- package/docs/benchmarks/detector-comparison.md +10 -5
- package/docs/benchmarks/katfish-ko-latest.json +657 -0
- package/docs/benchmarks/katfish-ko-latest.md +77 -0
- package/docs/benchmarks/latest.json +1183 -108
- package/docs/benchmarks/latest.md +84 -60
- package/docs/benchmarks/lexicon-freshness-en-2026-05-22.json +1121 -0
- package/docs/benchmarks/lexicon-freshness-en-2026-05-22.md +136 -0
- package/docs/benchmarks/rebaseline-latest.json +381 -0
- package/docs/benchmarks/rebaseline-latest.md +121 -0
- package/docs/benchmarks/register-stratified-latest.json +164 -0
- package/docs/benchmarks/register-stratified-latest.md +99 -0
- package/docs/benchmarks/register-stratified.md +43 -0
- package/docs/integrations/github-action.md +44 -11
- package/docs/integrations/playground.md +58 -0
- package/docs/integrations/pre-commit.md +5 -5
- package/docs/integrations/release.md +5 -3
- package/docs/integrations/static-sites.md +83 -0
- package/docs/research/2025-rebaseline-plan.md +71 -2
- package/docs/research/2026-rebaseline.md +102 -0
- package/docs/research/adversarial-mps.md +41 -0
- package/docs/research/ai-human-metrics.md +35 -23
- package/docs/research/human-eval-panel.md +42 -0
- package/docs/research/judge-agreement.md +24 -0
- package/docs/research/ko-2025-corpus-sources.md +135 -0
- package/docs/research/lexicon-freshness-audit.md +64 -0
- package/docs/research/zh-ja-lexicon-calibration.md +60 -0
- package/docs/social/patina-launch-copy.md +173 -100
- package/docs/social/patina-launch-execution.md +94 -0
- package/docs/social/patina-launch-korean-first.md +83 -0
- package/docs/social/signs-of-ai-writing.md +26 -0
- package/docs/social/signs-of-ai-writing_KR.md +26 -0
- package/lexicon/ai-en.md +21 -24
- package/lexicon/ai-ja.md +158 -0
- package/lexicon/ai-ko.md +9 -9
- package/lexicon/ai-zh.md +158 -0
- package/lexicon/provenance/ai-en.json +970 -0
- package/lexicon/provenance/ai-ja.json +542 -0
- package/lexicon/provenance/ai-ko.json +866 -0
- package/lexicon/provenance/ai-zh.json +542 -0
- package/package.json +49 -8
- package/patterns/en-communication.md +5 -0
- package/patterns/en-content.md +5 -0
- package/patterns/en-filler.md +5 -0
- package/patterns/en-language.md +29 -1
- package/patterns/en-structure.md +5 -0
- package/patterns/en-style.md +5 -0
- package/patterns/en-viral-hook.md +42 -2
- package/patterns/ja-communication.md +5 -0
- package/patterns/ja-content.md +5 -0
- package/patterns/ja-filler.md +5 -0
- package/patterns/ja-language.md +33 -1
- package/patterns/ja-structure.md +12 -0
- package/patterns/ja-style.md +5 -0
- package/patterns/ja-viral-hook.md +41 -2
- package/patterns/ko-communication.md +5 -0
- package/patterns/ko-content.md +5 -0
- package/patterns/ko-filler.md +5 -0
- package/patterns/ko-language.md +33 -1
- package/patterns/ko-structure.md +25 -6
- package/patterns/ko-style.md +5 -0
- package/patterns/ko-viral-hook.md +38 -2
- package/patterns/zh-communication.md +5 -0
- package/patterns/zh-content.md +5 -0
- package/patterns/zh-filler.md +5 -0
- package/patterns/zh-language.md +37 -1
- package/patterns/zh-structure.md +12 -0
- package/patterns/zh-style.md +5 -0
- package/patterns/zh-viral-hook.md +38 -2
- package/playground/README.md +55 -0
- package/playground/analytics.js +4 -0
- package/playground/analyzer.js +883 -0
- package/playground/app.js +157 -0
- package/playground/data/lexicons.js +343 -0
- package/playground/index.html +138 -0
- package/playground/styles.css +267 -0
- package/profiles/namuwiki.md +111 -0
- package/scripts/adversarial-mps-report.mjs +201 -0
- package/scripts/badge-json.mjs +79 -0
- package/scripts/benchmark-report.mjs +56 -9
- package/scripts/check-release-metadata.mjs +0 -2
- package/scripts/detector-comparison.mjs +7 -7
- package/scripts/generate-playground-data.mjs +77 -0
- package/scripts/katfish-calibration.mjs +464 -0
- package/scripts/lexicon-freshness.mjs +485 -0
- package/scripts/lint.mjs +1 -1
- package/scripts/precommit-score.mjs +4 -3
- package/scripts/prose-score.mjs +81 -5
- package/scripts/rebaseline-intake.mjs +242 -0
- package/scripts/rebaseline-score.mjs +268 -0
- package/scripts/rebaseline-summary.mjs +773 -0
- package/scripts/rebaseline-web-collect.mjs +410 -0
- package/scripts/update-benchmark-ranges.mjs +1 -0
- package/src/api.js +69 -105
- package/src/auth.js +50 -2
- package/src/backends/claude-cli.js +19 -4
- package/src/backends/codex-cli.js +19 -3
- package/src/backends/contract.js +230 -1
- package/src/backends/gemini-cli.js +18 -5
- package/src/backends/index.js +87 -12
- package/src/backends/kimi-cli.js +161 -0
- package/src/cli.js +577 -567
- package/src/commands/doctor.js +2 -2
- package/src/config.js +29 -0
- package/src/errors.js +53 -1
- package/src/features/discourse-tells.js +68 -0
- package/src/features/index.js +82 -8
- package/src/features/lexicon.js +40 -6
- package/src/features/markup-leakage.js +69 -0
- package/src/features/segment.js +41 -0
- package/src/features/signal-strength.js +81 -0
- package/src/features/stylometry.js +231 -1
- package/src/features/translationese.js +127 -0
- package/src/loader.js +76 -0
- package/src/logger.js +22 -23
- package/src/model-defaults.js +55 -0
- package/src/ouroboros.js +31 -0
- package/src/output.js +102 -90
- package/src/prompt-builder.js +103 -68
- package/src/providers.js +51 -4
- package/src/scoring.js +210 -2
- package/src/security.js +75 -0
- package/tests/fixtures/live-quality/en/public-docs-01.md +26 -0
- package/tests/fixtures/live-quality/ko/public-docs-01.md +26 -0
- package/tests/fixtures/suspect-zones/expected-ranges.json +207 -16
- package/tests/fixtures/suspect-zones/ja/ai/ja-ai-04-lexicon.md +11 -0
- package/tests/fixtures/suspect-zones/ja/natural/ja-nat-04-lexicon-cold.md +11 -0
- package/tests/fixtures/suspect-zones/ko/ai/ko-ai-02.md +4 -5
- package/tests/fixtures/suspect-zones/ko/ai/ko-ai-07-ko-diagnostic.md +11 -0
- package/tests/fixtures/suspect-zones/zh/ai/zh-ai-04-lexicon.md +11 -0
- package/tests/fixtures/suspect-zones/zh/natural/zh-nat-04-lexicon-cold.md +11 -0
- package/tests/quality/README.md +188 -11
- package/tests/quality/adversarial-mps/fixtures.jsonl +10 -0
- package/tests/quality/benchmark.mjs +39 -1
- package/tests/quality/dogfood.mjs +5 -3
- package/tests/quality/live-fixtures.jsonl +2 -0
- package/tests/quality/live-quality.mjs +596 -0
- package/tests/quality/ranking-metrics.mjs +136 -0
- package/tests/quality/rebaseline-manifest.example.jsonl +5 -0
- package/vercel.json +53 -0
- package/SKILL-MAX.md +0 -455
- package/docs/internal/HARNESS.md +0 -14
- package/docs/internal/README.md +0 -14
- package/docs/internal/WARP.md +0 -23
- package/patina-max/SKILL.md +0 -523
- package/patina-max/composite.py +0 -457
- package/src/cache.js +0 -106
- package/src/commands/init.js +0 -208
- package/src/manifest.js +0 -162
- package/src/max-mode.js +0 -207
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": 1,
|
|
3
3
|
"generatedBy": "node scripts/update-benchmark-ranges.mjs",
|
|
4
|
-
"generatedAt": "2026-05-
|
|
5
|
-
"fixtureCount":
|
|
4
|
+
"generatedAt": "2026-05-21T16:23:44.811Z",
|
|
5
|
+
"fixtureCount": 39,
|
|
6
6
|
"tolerances": {
|
|
7
7
|
"cv": 0.025,
|
|
8
8
|
"mattr": 0.03,
|
|
@@ -17,6 +17,7 @@
|
|
|
17
17
|
"predicted_hot": true,
|
|
18
18
|
"detectors": {
|
|
19
19
|
"burstiness": true,
|
|
20
|
+
"koDiagnostics": false,
|
|
20
21
|
"mattr": false,
|
|
21
22
|
"lexicon": false
|
|
22
23
|
},
|
|
@@ -44,6 +45,7 @@
|
|
|
44
45
|
"predicted_hot": true,
|
|
45
46
|
"detectors": {
|
|
46
47
|
"burstiness": true,
|
|
48
|
+
"koDiagnostics": false,
|
|
47
49
|
"mattr": false,
|
|
48
50
|
"lexicon": false
|
|
49
51
|
},
|
|
@@ -71,6 +73,7 @@
|
|
|
71
73
|
"predicted_hot": true,
|
|
72
74
|
"detectors": {
|
|
73
75
|
"burstiness": true,
|
|
76
|
+
"koDiagnostics": false,
|
|
74
77
|
"mattr": false,
|
|
75
78
|
"lexicon": false
|
|
76
79
|
},
|
|
@@ -98,6 +101,7 @@
|
|
|
98
101
|
"predicted_hot": true,
|
|
99
102
|
"detectors": {
|
|
100
103
|
"burstiness": true,
|
|
104
|
+
"koDiagnostics": false,
|
|
101
105
|
"mattr": false,
|
|
102
106
|
"lexicon": false
|
|
103
107
|
},
|
|
@@ -125,6 +129,7 @@
|
|
|
125
129
|
"predicted_hot": true,
|
|
126
130
|
"detectors": {
|
|
127
131
|
"burstiness": true,
|
|
132
|
+
"koDiagnostics": false,
|
|
128
133
|
"mattr": false,
|
|
129
134
|
"lexicon": false
|
|
130
135
|
},
|
|
@@ -152,6 +157,7 @@
|
|
|
152
157
|
"predicted_hot": true,
|
|
153
158
|
"detectors": {
|
|
154
159
|
"burstiness": true,
|
|
160
|
+
"koDiagnostics": false,
|
|
155
161
|
"mattr": false,
|
|
156
162
|
"lexicon": false
|
|
157
163
|
},
|
|
@@ -179,6 +185,7 @@
|
|
|
179
185
|
"predicted_hot": false,
|
|
180
186
|
"detectors": {
|
|
181
187
|
"burstiness": false,
|
|
188
|
+
"koDiagnostics": false,
|
|
182
189
|
"mattr": false,
|
|
183
190
|
"lexicon": false
|
|
184
191
|
},
|
|
@@ -206,6 +213,7 @@
|
|
|
206
213
|
"predicted_hot": false,
|
|
207
214
|
"detectors": {
|
|
208
215
|
"burstiness": false,
|
|
216
|
+
"koDiagnostics": false,
|
|
209
217
|
"mattr": false,
|
|
210
218
|
"lexicon": false
|
|
211
219
|
},
|
|
@@ -233,6 +241,7 @@
|
|
|
233
241
|
"predicted_hot": false,
|
|
234
242
|
"detectors": {
|
|
235
243
|
"burstiness": false,
|
|
244
|
+
"koDiagnostics": false,
|
|
236
245
|
"mattr": false,
|
|
237
246
|
"lexicon": false
|
|
238
247
|
},
|
|
@@ -260,6 +269,7 @@
|
|
|
260
269
|
"predicted_hot": false,
|
|
261
270
|
"detectors": {
|
|
262
271
|
"burstiness": false,
|
|
272
|
+
"koDiagnostics": false,
|
|
263
273
|
"mattr": false,
|
|
264
274
|
"lexicon": false
|
|
265
275
|
},
|
|
@@ -287,6 +297,7 @@
|
|
|
287
297
|
"predicted_hot": false,
|
|
288
298
|
"detectors": {
|
|
289
299
|
"burstiness": false,
|
|
300
|
+
"koDiagnostics": false,
|
|
290
301
|
"mattr": false,
|
|
291
302
|
"lexicon": false
|
|
292
303
|
},
|
|
@@ -314,6 +325,7 @@
|
|
|
314
325
|
"predicted_hot": true,
|
|
315
326
|
"detectors": {
|
|
316
327
|
"burstiness": true,
|
|
328
|
+
"koDiagnostics": false,
|
|
317
329
|
"mattr": false,
|
|
318
330
|
"lexicon": false
|
|
319
331
|
},
|
|
@@ -341,6 +353,7 @@
|
|
|
341
353
|
"predicted_hot": true,
|
|
342
354
|
"detectors": {
|
|
343
355
|
"burstiness": true,
|
|
356
|
+
"koDiagnostics": false,
|
|
344
357
|
"mattr": false,
|
|
345
358
|
"lexicon": false
|
|
346
359
|
},
|
|
@@ -368,6 +381,7 @@
|
|
|
368
381
|
"predicted_hot": true,
|
|
369
382
|
"detectors": {
|
|
370
383
|
"burstiness": true,
|
|
384
|
+
"koDiagnostics": false,
|
|
371
385
|
"mattr": false,
|
|
372
386
|
"lexicon": false
|
|
373
387
|
},
|
|
@@ -387,6 +401,44 @@
|
|
|
387
401
|
],
|
|
388
402
|
"lexicon_hits": []
|
|
389
403
|
},
|
|
404
|
+
"ja-ai-04-lexicon": {
|
|
405
|
+
"path": "tests/fixtures/suspect-zones/ja/ai/ja-ai-04-lexicon.md",
|
|
406
|
+
"lang": "ja",
|
|
407
|
+
"class": "ai",
|
|
408
|
+
"expected_hot": true,
|
|
409
|
+
"predicted_hot": true,
|
|
410
|
+
"detectors": {
|
|
411
|
+
"burstiness": false,
|
|
412
|
+
"koDiagnostics": false,
|
|
413
|
+
"mattr": false,
|
|
414
|
+
"lexicon": true
|
|
415
|
+
},
|
|
416
|
+
"cv_band": "high",
|
|
417
|
+
"cv_range": [
|
|
418
|
+
0.535,
|
|
419
|
+
0.585
|
|
420
|
+
],
|
|
421
|
+
"mattr_band": "high",
|
|
422
|
+
"mattr_range": [
|
|
423
|
+
0.773,
|
|
424
|
+
0.833
|
|
425
|
+
],
|
|
426
|
+
"lexicon_density_range": [
|
|
427
|
+
58.83,
|
|
428
|
+
68.83
|
|
429
|
+
],
|
|
430
|
+
"lexicon_hits": [
|
|
431
|
+
"まとめると",
|
|
432
|
+
"結論として",
|
|
433
|
+
"重要なのは",
|
|
434
|
+
"デジタル時代において",
|
|
435
|
+
"~が求められます",
|
|
436
|
+
"新たな可能性を切り開く",
|
|
437
|
+
"今後ますます重要になる",
|
|
438
|
+
"多様なニーズに応える",
|
|
439
|
+
"理解を深める"
|
|
440
|
+
]
|
|
441
|
+
},
|
|
390
442
|
"ja-nat-01": {
|
|
391
443
|
"path": "tests/fixtures/suspect-zones/ja/natural/ja-nat-01.md",
|
|
392
444
|
"lang": "ja",
|
|
@@ -395,6 +447,7 @@
|
|
|
395
447
|
"predicted_hot": false,
|
|
396
448
|
"detectors": {
|
|
397
449
|
"burstiness": false,
|
|
450
|
+
"koDiagnostics": false,
|
|
398
451
|
"mattr": false,
|
|
399
452
|
"lexicon": false
|
|
400
453
|
},
|
|
@@ -422,6 +475,7 @@
|
|
|
422
475
|
"predicted_hot": false,
|
|
423
476
|
"detectors": {
|
|
424
477
|
"burstiness": false,
|
|
478
|
+
"koDiagnostics": false,
|
|
425
479
|
"mattr": false,
|
|
426
480
|
"lexicon": false
|
|
427
481
|
},
|
|
@@ -449,6 +503,7 @@
|
|
|
449
503
|
"predicted_hot": false,
|
|
450
504
|
"detectors": {
|
|
451
505
|
"burstiness": false,
|
|
506
|
+
"koDiagnostics": false,
|
|
452
507
|
"mattr": false,
|
|
453
508
|
"lexicon": false
|
|
454
509
|
},
|
|
@@ -468,6 +523,34 @@
|
|
|
468
523
|
],
|
|
469
524
|
"lexicon_hits": []
|
|
470
525
|
},
|
|
526
|
+
"ja-nat-04-lexicon-cold": {
|
|
527
|
+
"path": "tests/fixtures/suspect-zones/ja/natural/ja-nat-04-lexicon-cold.md",
|
|
528
|
+
"lang": "ja",
|
|
529
|
+
"class": "natural",
|
|
530
|
+
"expected_hot": false,
|
|
531
|
+
"predicted_hot": false,
|
|
532
|
+
"detectors": {
|
|
533
|
+
"burstiness": false,
|
|
534
|
+
"koDiagnostics": false,
|
|
535
|
+
"mattr": false,
|
|
536
|
+
"lexicon": false
|
|
537
|
+
},
|
|
538
|
+
"cv_band": "mid",
|
|
539
|
+
"cv_range": [
|
|
540
|
+
0.371,
|
|
541
|
+
0.421
|
|
542
|
+
],
|
|
543
|
+
"mattr_band": "high",
|
|
544
|
+
"mattr_range": [
|
|
545
|
+
0.722,
|
|
546
|
+
0.782
|
|
547
|
+
],
|
|
548
|
+
"lexicon_density_range": [
|
|
549
|
+
0,
|
|
550
|
+
5
|
|
551
|
+
],
|
|
552
|
+
"lexicon_hits": []
|
|
553
|
+
},
|
|
471
554
|
"ko-ai-01": {
|
|
472
555
|
"path": "tests/fixtures/suspect-zones/ko/ai/ko-ai-01.md",
|
|
473
556
|
"lang": "ko",
|
|
@@ -476,8 +559,9 @@
|
|
|
476
559
|
"predicted_hot": true,
|
|
477
560
|
"detectors": {
|
|
478
561
|
"burstiness": true,
|
|
562
|
+
"koDiagnostics": false,
|
|
479
563
|
"mattr": false,
|
|
480
|
-
"lexicon":
|
|
564
|
+
"lexicon": false
|
|
481
565
|
},
|
|
482
566
|
"cv_band": "low",
|
|
483
567
|
"cv_range": [
|
|
@@ -505,8 +589,9 @@
|
|
|
505
589
|
"predicted_hot": true,
|
|
506
590
|
"detectors": {
|
|
507
591
|
"burstiness": true,
|
|
592
|
+
"koDiagnostics": false,
|
|
508
593
|
"mattr": false,
|
|
509
|
-
"lexicon":
|
|
594
|
+
"lexicon": false
|
|
510
595
|
},
|
|
511
596
|
"cv_band": "low",
|
|
512
597
|
"cv_range": [
|
|
@@ -519,12 +604,10 @@
|
|
|
519
604
|
0.85
|
|
520
605
|
],
|
|
521
606
|
"lexicon_density_range": [
|
|
522
|
-
|
|
523
|
-
|
|
607
|
+
0,
|
|
608
|
+
5
|
|
524
609
|
],
|
|
525
|
-
"lexicon_hits": [
|
|
526
|
-
"환경"
|
|
527
|
-
]
|
|
610
|
+
"lexicon_hits": []
|
|
528
611
|
},
|
|
529
612
|
"ko-ai-03": {
|
|
530
613
|
"path": "tests/fixtures/suspect-zones/ko/ai/ko-ai-03.md",
|
|
@@ -534,8 +617,9 @@
|
|
|
534
617
|
"predicted_hot": true,
|
|
535
618
|
"detectors": {
|
|
536
619
|
"burstiness": true,
|
|
620
|
+
"koDiagnostics": false,
|
|
537
621
|
"mattr": false,
|
|
538
|
-
"lexicon":
|
|
622
|
+
"lexicon": false
|
|
539
623
|
},
|
|
540
624
|
"cv_band": "low",
|
|
541
625
|
"cv_range": [
|
|
@@ -563,6 +647,7 @@
|
|
|
563
647
|
"predicted_hot": true,
|
|
564
648
|
"detectors": {
|
|
565
649
|
"burstiness": true,
|
|
650
|
+
"koDiagnostics": false,
|
|
566
651
|
"mattr": false,
|
|
567
652
|
"lexicon": false
|
|
568
653
|
},
|
|
@@ -590,6 +675,7 @@
|
|
|
590
675
|
"predicted_hot": true,
|
|
591
676
|
"detectors": {
|
|
592
677
|
"burstiness": true,
|
|
678
|
+
"koDiagnostics": true,
|
|
593
679
|
"mattr": false,
|
|
594
680
|
"lexicon": false
|
|
595
681
|
},
|
|
@@ -617,8 +703,9 @@
|
|
|
617
703
|
"predicted_hot": true,
|
|
618
704
|
"detectors": {
|
|
619
705
|
"burstiness": true,
|
|
706
|
+
"koDiagnostics": false,
|
|
620
707
|
"mattr": false,
|
|
621
|
-
"lexicon":
|
|
708
|
+
"lexicon": false
|
|
622
709
|
},
|
|
623
710
|
"cv_band": "low",
|
|
624
711
|
"cv_range": [
|
|
@@ -631,12 +718,38 @@
|
|
|
631
718
|
1.03
|
|
632
719
|
],
|
|
633
720
|
"lexicon_density_range": [
|
|
634
|
-
|
|
635
|
-
|
|
721
|
+
0,
|
|
722
|
+
5
|
|
636
723
|
],
|
|
637
|
-
"lexicon_hits": [
|
|
638
|
-
|
|
639
|
-
|
|
724
|
+
"lexicon_hits": []
|
|
725
|
+
},
|
|
726
|
+
"ko-ai-07-ko-diagnostic": {
|
|
727
|
+
"path": "tests/fixtures/suspect-zones/ko/ai/ko-ai-07-ko-diagnostic.md",
|
|
728
|
+
"lang": "ko",
|
|
729
|
+
"class": "ai",
|
|
730
|
+
"expected_hot": true,
|
|
731
|
+
"predicted_hot": true,
|
|
732
|
+
"detectors": {
|
|
733
|
+
"burstiness": false,
|
|
734
|
+
"koDiagnostics": true,
|
|
735
|
+
"mattr": false,
|
|
736
|
+
"lexicon": false
|
|
737
|
+
},
|
|
738
|
+
"cv_band": "mid",
|
|
739
|
+
"cv_range": [
|
|
740
|
+
0.392,
|
|
741
|
+
0.442
|
|
742
|
+
],
|
|
743
|
+
"mattr_band": "high",
|
|
744
|
+
"mattr_range": [
|
|
745
|
+
0.925,
|
|
746
|
+
0.985
|
|
747
|
+
],
|
|
748
|
+
"lexicon_density_range": [
|
|
749
|
+
0,
|
|
750
|
+
5
|
|
751
|
+
],
|
|
752
|
+
"lexicon_hits": []
|
|
640
753
|
},
|
|
641
754
|
"ko-nat-01": {
|
|
642
755
|
"path": "tests/fixtures/suspect-zones/ko/natural/ko-nat-01.md",
|
|
@@ -646,6 +759,7 @@
|
|
|
646
759
|
"predicted_hot": false,
|
|
647
760
|
"detectors": {
|
|
648
761
|
"burstiness": false,
|
|
762
|
+
"koDiagnostics": false,
|
|
649
763
|
"mattr": false,
|
|
650
764
|
"lexicon": false
|
|
651
765
|
},
|
|
@@ -673,6 +787,7 @@
|
|
|
673
787
|
"predicted_hot": false,
|
|
674
788
|
"detectors": {
|
|
675
789
|
"burstiness": false,
|
|
790
|
+
"koDiagnostics": false,
|
|
676
791
|
"mattr": false,
|
|
677
792
|
"lexicon": false
|
|
678
793
|
},
|
|
@@ -700,6 +815,7 @@
|
|
|
700
815
|
"predicted_hot": false,
|
|
701
816
|
"detectors": {
|
|
702
817
|
"burstiness": false,
|
|
818
|
+
"koDiagnostics": false,
|
|
703
819
|
"mattr": false,
|
|
704
820
|
"lexicon": false
|
|
705
821
|
},
|
|
@@ -727,6 +843,7 @@
|
|
|
727
843
|
"predicted_hot": false,
|
|
728
844
|
"detectors": {
|
|
729
845
|
"burstiness": false,
|
|
846
|
+
"koDiagnostics": false,
|
|
730
847
|
"mattr": false,
|
|
731
848
|
"lexicon": false
|
|
732
849
|
},
|
|
@@ -754,6 +871,7 @@
|
|
|
754
871
|
"predicted_hot": false,
|
|
755
872
|
"detectors": {
|
|
756
873
|
"burstiness": false,
|
|
874
|
+
"koDiagnostics": false,
|
|
757
875
|
"mattr": false,
|
|
758
876
|
"lexicon": false
|
|
759
877
|
},
|
|
@@ -781,6 +899,7 @@
|
|
|
781
899
|
"predicted_hot": true,
|
|
782
900
|
"detectors": {
|
|
783
901
|
"burstiness": true,
|
|
902
|
+
"koDiagnostics": false,
|
|
784
903
|
"mattr": false,
|
|
785
904
|
"lexicon": false
|
|
786
905
|
},
|
|
@@ -808,6 +927,7 @@
|
|
|
808
927
|
"predicted_hot": true,
|
|
809
928
|
"detectors": {
|
|
810
929
|
"burstiness": true,
|
|
930
|
+
"koDiagnostics": false,
|
|
811
931
|
"mattr": false,
|
|
812
932
|
"lexicon": false
|
|
813
933
|
},
|
|
@@ -835,6 +955,7 @@
|
|
|
835
955
|
"predicted_hot": true,
|
|
836
956
|
"detectors": {
|
|
837
957
|
"burstiness": true,
|
|
958
|
+
"koDiagnostics": false,
|
|
838
959
|
"mattr": false,
|
|
839
960
|
"lexicon": false
|
|
840
961
|
},
|
|
@@ -854,6 +975,45 @@
|
|
|
854
975
|
],
|
|
855
976
|
"lexicon_hits": []
|
|
856
977
|
},
|
|
978
|
+
"zh-ai-04-lexicon": {
|
|
979
|
+
"path": "tests/fixtures/suspect-zones/zh/ai/zh-ai-04-lexicon.md",
|
|
980
|
+
"lang": "zh",
|
|
981
|
+
"class": "ai",
|
|
982
|
+
"expected_hot": true,
|
|
983
|
+
"predicted_hot": true,
|
|
984
|
+
"detectors": {
|
|
985
|
+
"burstiness": false,
|
|
986
|
+
"koDiagnostics": false,
|
|
987
|
+
"mattr": false,
|
|
988
|
+
"lexicon": true
|
|
989
|
+
},
|
|
990
|
+
"cv_band": "high",
|
|
991
|
+
"cv_range": [
|
|
992
|
+
0.723,
|
|
993
|
+
0.773
|
|
994
|
+
],
|
|
995
|
+
"mattr_band": "high",
|
|
996
|
+
"mattr_range": [
|
|
997
|
+
0.864,
|
|
998
|
+
0.924
|
|
999
|
+
],
|
|
1000
|
+
"lexicon_density_range": [
|
|
1001
|
+
87.593,
|
|
1002
|
+
97.593
|
|
1003
|
+
],
|
|
1004
|
+
"lexicon_hits": [
|
|
1005
|
+
"总而言之",
|
|
1006
|
+
"总的来说",
|
|
1007
|
+
"值得注意的是",
|
|
1008
|
+
"在数字时代",
|
|
1009
|
+
"从长远来看",
|
|
1010
|
+
"不仅~而且",
|
|
1011
|
+
"为~提供了新的可能",
|
|
1012
|
+
"优化整体流程",
|
|
1013
|
+
"形成良性循环",
|
|
1014
|
+
"为未来奠定基础"
|
|
1015
|
+
]
|
|
1016
|
+
},
|
|
857
1017
|
"zh-nat-01": {
|
|
858
1018
|
"path": "tests/fixtures/suspect-zones/zh/natural/zh-nat-01.md",
|
|
859
1019
|
"lang": "zh",
|
|
@@ -862,6 +1022,7 @@
|
|
|
862
1022
|
"predicted_hot": false,
|
|
863
1023
|
"detectors": {
|
|
864
1024
|
"burstiness": false,
|
|
1025
|
+
"koDiagnostics": false,
|
|
865
1026
|
"mattr": false,
|
|
866
1027
|
"lexicon": false
|
|
867
1028
|
},
|
|
@@ -889,6 +1050,7 @@
|
|
|
889
1050
|
"predicted_hot": false,
|
|
890
1051
|
"detectors": {
|
|
891
1052
|
"burstiness": false,
|
|
1053
|
+
"koDiagnostics": false,
|
|
892
1054
|
"mattr": false,
|
|
893
1055
|
"lexicon": false
|
|
894
1056
|
},
|
|
@@ -916,6 +1078,7 @@
|
|
|
916
1078
|
"predicted_hot": false,
|
|
917
1079
|
"detectors": {
|
|
918
1080
|
"burstiness": false,
|
|
1081
|
+
"koDiagnostics": false,
|
|
919
1082
|
"mattr": false,
|
|
920
1083
|
"lexicon": false
|
|
921
1084
|
},
|
|
@@ -934,6 +1097,34 @@
|
|
|
934
1097
|
5
|
|
935
1098
|
],
|
|
936
1099
|
"lexicon_hits": []
|
|
1100
|
+
},
|
|
1101
|
+
"zh-nat-04-lexicon-cold": {
|
|
1102
|
+
"path": "tests/fixtures/suspect-zones/zh/natural/zh-nat-04-lexicon-cold.md",
|
|
1103
|
+
"lang": "zh",
|
|
1104
|
+
"class": "natural",
|
|
1105
|
+
"expected_hot": false,
|
|
1106
|
+
"predicted_hot": false,
|
|
1107
|
+
"detectors": {
|
|
1108
|
+
"burstiness": false,
|
|
1109
|
+
"koDiagnostics": false,
|
|
1110
|
+
"mattr": false,
|
|
1111
|
+
"lexicon": false
|
|
1112
|
+
},
|
|
1113
|
+
"cv_band": "mid",
|
|
1114
|
+
"cv_range": [
|
|
1115
|
+
0.362,
|
|
1116
|
+
0.412
|
|
1117
|
+
],
|
|
1118
|
+
"mattr_band": "high",
|
|
1119
|
+
"mattr_range": [
|
|
1120
|
+
0.901,
|
|
1121
|
+
0.961
|
|
1122
|
+
],
|
|
1123
|
+
"lexicon_density_range": [
|
|
1124
|
+
0,
|
|
1125
|
+
5
|
|
1126
|
+
],
|
|
1127
|
+
"lexicon_hits": []
|
|
937
1128
|
}
|
|
938
1129
|
}
|
|
939
1130
|
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
---
|
|
2
|
+
fixture_id: ja-ai-04-lexicon
|
|
3
|
+
language: ja
|
|
4
|
+
class: ai
|
|
5
|
+
expected_hot: true
|
|
6
|
+
why_designed_this_way: |
|
|
7
|
+
Lexicon-only Japanese fixture. It clusters high-precision AI guidance phrases while varying rhythm so lexicon, not burstiness, is the intended hot signal.
|
|
8
|
+
topic: 学習アプリ
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
結論として、使い方は変わりました。デジタル時代において、学習アプリは新たな可能性を切り開く存在であり、ユーザー体験を向上させながら多様なニーズに応える設計が求められます。重要なのは、便利さだけで判断しないことです。まとめると、こうした仕組みは理解を深めるきっかけになり、今後ますます重要になるでしょう。
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
---
|
|
2
|
+
fixture_id: ja-nat-04-lexicon-cold
|
|
3
|
+
language: ja
|
|
4
|
+
class: natural
|
|
5
|
+
expected_hot: false
|
|
6
|
+
why_designed_this_way: |
|
|
7
|
+
Japanese natural counterexample for the new lexicon. It keeps concrete sensory detail and avoids the guidance-summary phrases in ai-ja.md.
|
|
8
|
+
topic: 朝の駅
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
朝の駅はまだ眠そうだった。改札の横で駅員が落とし物の傘を三本並べ、濡れた床に黄色い札を置いた。ホームに上がると、隣の高校生が片方だけ手袋をしていて、もう片方の手で缶コーヒーを包んでいた。電車が来るまでの二分、誰も急に話し出さないのがよかった。
|
|
@@ -4,12 +4,11 @@ language: ko
|
|
|
4
4
|
class: ai
|
|
5
5
|
expected_hot: true
|
|
6
6
|
why_designed_this_way: |
|
|
7
|
-
|
|
7
|
+
Burstiness only. The paragraph cycles the same narrow vocabulary cluster throughout:
|
|
8
8
|
원격근무/재택근무, 직원/구성원, 업무/일, 생산성/효율 — four content-word pairs reused
|
|
9
|
-
in every sentence with minor grammatical variation.
|
|
10
|
-
~0.
|
|
11
|
-
|
|
12
|
-
No catalogued patterns: no chatbot phrases, no ~적 stacking, no 다양한/혁신적 hype terms.
|
|
9
|
+
in every sentence with minor grammatical variation. Sentence lengths are still tightly packed
|
|
10
|
+
(10, 9, 11, 11, 10 어절) so CV stays ~0.07 (low band), while MATTR is healthy enough not to fire.
|
|
11
|
+
The removed common KO lexicon entries should no longer be needed for this fixture to stay hot.
|
|
13
12
|
topic: 원격근무
|
|
14
13
|
---
|
|
15
14
|
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
---
|
|
2
|
+
fixture_id: ko-ai-07-ko-diagnostic
|
|
3
|
+
language: ko
|
|
4
|
+
class: ai
|
|
5
|
+
expected_hot: true
|
|
6
|
+
register: workplace-summary
|
|
7
|
+
source_type: synthetic
|
|
8
|
+
model_family: local-fixture
|
|
9
|
+
notes: "Korean diagnostic composite: no comma rhythm, regular eojeol lengths, low suffix-class diversity; legacy burstiness/MATTR/lexicon stay cold."
|
|
10
|
+
---
|
|
11
|
+
아침 회의는 기록을 확인합니다. 담당자는 오늘 진행할 항목을 차례대로 검토합니다. 화면은 변경된 값을 보여주고 팀은 같은 절차를 다시 확인합니다. 마지막으로 결과는 공유합니다.
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
---
|
|
2
|
+
fixture_id: zh-ai-04-lexicon
|
|
3
|
+
language: zh
|
|
4
|
+
class: ai
|
|
5
|
+
expected_hot: true
|
|
6
|
+
why_designed_this_way: |
|
|
7
|
+
Lexicon-only Chinese fixture. The paragraph uses multiple high-precision AI scaffold phrases while varying sentence lengths so lexicon, not burstiness, is the intended hot signal.
|
|
8
|
+
topic: 写作工具
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
总而言之,工具已经变了。在数字时代,写作工具不仅提升效率而且改善体验;从长远来看,它为远程协作提供了新的可能,也在优化整体流程、形成良性循环,并为未来奠定基础。值得注意的是,团队仍要看具体工作,而不是只相信口号。总的来说,这种变化值得继续观察。
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
---
|
|
2
|
+
fixture_id: zh-nat-04-lexicon-cold
|
|
3
|
+
language: zh
|
|
4
|
+
class: natural
|
|
5
|
+
expected_hot: false
|
|
6
|
+
why_designed_this_way: |
|
|
7
|
+
Chinese natural counterexample for the new lexicon. It uses concrete timing, sensory detail, and uneven sentence length without AI scaffold phrases.
|
|
8
|
+
topic: 夜市
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
雨停以后,巷口的摊灯一盏盏亮起来。卖豆花的人把塑料凳往屋檐下挪,手上还沾着水;旁边小孩等不及,先捏了一块炸糕,烫得直甩手。我本来只想买葱油饼,后来站了十分钟,听见锅边的油声和老板娘催丈夫找零钱,才想起伞还落在公交车上。
|