optbrew 0.1.2 → 0.2.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 (119) hide show
  1. package/.claude-plugin/marketplace.json +4 -4
  2. package/.claude-plugin/plugin.json +2 -1
  3. package/.codex-plugin/plugin.json +2 -2
  4. package/AGENT_INSTALL.md +94 -0
  5. package/CHANGELOG.md +74 -1
  6. package/README.ko.md +129 -105
  7. package/README.md +129 -105
  8. package/THIRD_PARTY_NOTICES.md +88 -0
  9. package/docs/platforms.md +45 -8
  10. package/docs/release.md +37 -4
  11. package/lib/cli.mjs +5 -2
  12. package/lib/install.mjs +2 -1
  13. package/lib/records.mjs +2 -1
  14. package/lib/transaction.mjs +12 -5
  15. package/lib/update.mjs +3 -2
  16. package/package.json +29 -9
  17. package/plugin.json +2 -2
  18. package/skills/.claude-plugin/icon.png +0 -0
  19. package/skills/.claude-plugin/plugin.json +23 -0
  20. package/skills/README.md +27 -0
  21. package/skills/optbrew/SKILL.md +223 -8
  22. package/skills/optbrew/THIRD_PARTY_NOTICES.md +88 -0
  23. package/skills/optbrew/bundle-manifest.json +409 -49
  24. package/skills/optbrew/modules/naver-searchadvisor/scripts/audit.mjs +4 -4
  25. package/skills/optbrew/references/ai-crawlers.json +1 -1
  26. package/skills/optbrew/references/ai-crawlers.md +1 -1
  27. package/skills/optbrew/references/api.md +6 -4
  28. package/skills/optbrew/references/check-registry.json +16 -16
  29. package/skills/optbrew/references/chrome-paths.json +31 -0
  30. package/skills/optbrew/references/endpoints.json +10 -0
  31. package/skills/optbrew/references/harness-signals.json +5 -0
  32. package/skills/optbrew/references/intake.md +76 -5
  33. package/skills/optbrew/references/judging.md +233 -0
  34. package/skills/optbrew/references/limits.json +26 -0
  35. package/skills/optbrew/references/measurement.md +1 -1
  36. package/skills/optbrew/references/messages.ko.json +170 -0
  37. package/skills/optbrew/references/report.md +18 -6
  38. package/skills/optbrew/references/routing.md +2 -2
  39. package/skills/optbrew/references/runbooks/anthropic-api-key.md +34 -0
  40. package/skills/optbrew/references/runbooks/chrome-install.md +56 -0
  41. package/skills/optbrew/references/runbooks/cwv-site-collection.md +38 -0
  42. package/skills/optbrew/references/runbooks/google-api-key.md +51 -0
  43. package/skills/optbrew/references/runbooks/gsc-export.md +32 -0
  44. package/skills/optbrew/references/runbooks/index.json +18 -0
  45. package/skills/optbrew/references/runbooks/key-set-claude-cloud.md +32 -0
  46. package/skills/optbrew/references/runbooks/key-set-codex.md +33 -0
  47. package/skills/optbrew/references/runbooks/key-set-local.md +40 -0
  48. package/skills/optbrew/references/runbooks/naver-searchadvisor-export.md +32 -0
  49. package/skills/optbrew/references/runbooks/network-claude-cloud-custom.md +33 -0
  50. package/skills/optbrew/references/runbooks/network-codex-approval.md +26 -0
  51. package/skills/optbrew/references/runbooks/network-codex-config.md +36 -0
  52. package/skills/optbrew/references/runbooks/seranking.md +38 -0
  53. package/skills/optbrew/references/schemas/contract.schema.json +42 -15
  54. package/skills/optbrew/references/scoring.md +40 -5
  55. package/skills/optbrew/references/source-analysis.md +40 -0
  56. package/skills/optbrew/references/versions.json +9 -0
  57. package/skills/optbrew/scripts/adapters/anthropic.mjs +5 -5
  58. package/skills/optbrew/scripts/adapters/imports.mjs +138 -1
  59. package/skills/optbrew/scripts/audit.mjs +10 -96
  60. package/skills/optbrew/scripts/cli.mjs +5 -2
  61. package/skills/optbrew/scripts/core/bundle.mjs +30 -13
  62. package/skills/optbrew/scripts/core/capabilities.mjs +8 -4
  63. package/skills/optbrew/scripts/core/cdp.mjs +105 -0
  64. package/skills/optbrew/scripts/core/checks/canonical-consistency.mjs +56 -0
  65. package/skills/optbrew/scripts/core/checks/cwv-field.mjs +77 -0
  66. package/skills/optbrew/scripts/core/checks/discovery.mjs +43 -0
  67. package/skills/optbrew/scripts/core/checks/document-title.mjs +62 -0
  68. package/skills/optbrew/scripts/core/checks/entity-identity.mjs +31 -0
  69. package/skills/optbrew/scripts/core/checks/fact-consistency.mjs +31 -0
  70. package/skills/optbrew/scripts/core/checks/fetch-response.mjs +18 -0
  71. package/skills/optbrew/scripts/core/checks/index-policy.mjs +16 -0
  72. package/skills/optbrew/scripts/core/checks/index.mjs +18 -0
  73. package/skills/optbrew/scripts/core/checks/internal-navigation.mjs +67 -0
  74. package/skills/optbrew/scripts/core/checks/locale-links.mjs +55 -0
  75. package/skills/optbrew/scripts/core/checks/naver-markup.mjs +21 -0
  76. package/skills/optbrew/scripts/core/checks/observation.mjs +37 -0
  77. package/skills/optbrew/scripts/core/checks/prepare.mjs +103 -0
  78. package/skills/optbrew/scripts/core/checks/render-content.mjs +104 -0
  79. package/skills/optbrew/scripts/core/checks/search-crawl-policy.mjs +29 -0
  80. package/skills/optbrew/scripts/core/checks/structured-data-truth.mjs +46 -0
  81. package/skills/optbrew/scripts/core/chrome-temp.mjs +68 -0
  82. package/skills/optbrew/scripts/core/chrome.mjs +546 -0
  83. package/skills/optbrew/scripts/core/collector.mjs +65 -59
  84. package/skills/optbrew/scripts/core/compare.mjs +18 -1
  85. package/skills/optbrew/scripts/core/config.mjs +31 -0
  86. package/skills/optbrew/scripts/core/contracts.mjs +31 -2
  87. package/skills/optbrew/scripts/core/cwv.mjs +100 -0
  88. package/skills/optbrew/scripts/core/derive.mjs +10 -161
  89. package/skills/optbrew/scripts/core/evidence-store.mjs +112 -0
  90. package/skills/optbrew/scripts/core/facts.mjs +203 -19
  91. package/skills/optbrew/scripts/core/findings.mjs +19 -1
  92. package/skills/optbrew/scripts/core/html.mjs +41 -3
  93. package/skills/optbrew/scripts/core/index-targets.mjs +118 -0
  94. package/skills/optbrew/scripts/core/judgments.mjs +675 -0
  95. package/skills/optbrew/scripts/core/keys.mjs +86 -0
  96. package/skills/optbrew/scripts/core/link-graph.mjs +93 -0
  97. package/skills/optbrew/scripts/core/messages.mjs +23 -0
  98. package/skills/optbrew/scripts/core/metrics.mjs +4 -2
  99. package/skills/optbrew/scripts/core/migration.mjs +37 -0
  100. package/skills/optbrew/scripts/core/page-select.mjs +136 -0
  101. package/skills/optbrew/scripts/core/probe.mjs +83 -0
  102. package/skills/optbrew/scripts/core/protocol.mjs +38 -14
  103. package/skills/optbrew/scripts/core/render.mjs +160 -0
  104. package/skills/optbrew/scripts/core/report-compose.mjs +377 -0
  105. package/skills/optbrew/scripts/core/report-html.mjs +198 -0
  106. package/skills/optbrew/scripts/core/report-page.mjs +14 -0
  107. package/skills/optbrew/scripts/core/report.mjs +357 -131
  108. package/skills/optbrew/scripts/core/runbooks.mjs +63 -0
  109. package/skills/optbrew/scripts/core/scope.mjs +23 -5
  110. package/skills/optbrew/scripts/core/score.mjs +12 -4
  111. package/skills/optbrew/scripts/core/secrets.mjs +2 -0
  112. package/skills/optbrew/scripts/core/stages.mjs +694 -0
  113. package/skills/optbrew/scripts/core/transport.mjs +157 -0
  114. package/skills/optbrew/scripts/core/weights.mjs +2 -1
  115. package/skills/optbrew/scripts/key.mjs +90 -0
  116. package/skills/optbrew/scripts/preflight.mjs +176 -0
  117. package/skills/optbrew/scripts/run.mjs +81 -0
  118. package/skills/optbrew/source-lock.json +1 -1
  119. package/source-lock.json +1 -1
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "schema_version": "1.0.0",
3
- "release_version": "0.1.2",
4
- "evaluation_version": "0.2.0",
5
- "protocol_version": "0.1.0",
3
+ "release_version": "0.2.0",
4
+ "evaluation_version": "0.4.0",
5
+ "protocol_version": "0.2.0",
6
6
  "evaluation_sources": [
7
7
  {
8
8
  "path": "references/check-registry.json",
9
- "sha256": "c792c7fc291aaddf0774e55aebaed998364ce067df1ec9aaa4ad43ab86790fc4"
9
+ "sha256": "a4e28070f760da91114e9dbfad987a5ee93d35b19c5ca4e42235443da5084dca"
10
10
  },
11
11
  {
12
12
  "path": "references/profiles.json",
@@ -14,49 +14,153 @@
14
14
  },
15
15
  {
16
16
  "path": "references/scoring.md",
17
- "sha256": "ecb037962e76b21b1623ad8666975510f93d8ed55221e5b97986db378d19df65"
17
+ "sha256": "be3cf4769d61b4316470b5ece1249a47da256c339e27c4048dab2f693493f746"
18
18
  },
19
19
  {
20
20
  "path": "references/measurement.md",
21
- "sha256": "8879fc0e24bff3f9a691ce8e0c5c4c35733e78f854acc973d0b43bd9b076be1d"
21
+ "sha256": "5a44d32026516b19685c96a55b234a9c6fc981fbcd2ce6ef73504c748fb07e9d"
22
+ },
23
+ {
24
+ "path": "references/messages.ko.json",
25
+ "sha256": "d6b763bc8ce6e690bf85c49e1167184188ce62f7b98af9191aaad599fc0ff6a9"
22
26
  },
23
27
  {
24
28
  "path": "scripts/core/score.mjs",
25
- "sha256": "62e26a06e262a0be76082ca94569cc3b409cc161b2096b15a676267067009eb1"
29
+ "sha256": "7388e9d8762783896b3647d52b200c28c49ff449e4679bd29e8e6a055884384a"
26
30
  },
27
31
  {
28
32
  "path": "scripts/core/weights.mjs",
29
- "sha256": "a565192fdd9151f1b069f721eb5b6ee3be051c4a6c572b9b1bfa6e2a2fb5abee"
33
+ "sha256": "45bd145e586b105f328426db8b815ec18f5a7f9654918404876ae51e66039d80"
30
34
  },
31
35
  {
32
36
  "path": "scripts/core/contracts.mjs",
33
- "sha256": "a2c493b9c97915aa3b5ec08c477008123e1c3dd39f8b0a5ed0a400cae0651b6a"
37
+ "sha256": "75a7fd711d354e96ba8013326875db88ec8938351fc51923ca9e12e2f2d38748"
34
38
  },
35
39
  {
36
40
  "path": "scripts/core/compare.mjs",
37
- "sha256": "16d43532285072d6d4a3489d1e4392651a3013ce5d34b5dc5057fdcbd13e5356"
41
+ "sha256": "639f9ec5ce590f97cb78f13fbff51aed6269156933bfee64fed1a63be79199aa"
38
42
  },
39
43
  {
40
44
  "path": "scripts/core/metrics.mjs",
41
- "sha256": "b2579fe7a6b46f285334b341de3e289e805614b41728b625c65508cbc584dc0b"
45
+ "sha256": "431af37d1b9d3f85a7299df64575164cc22207ec4bc02670701882298f7b3c17"
42
46
  },
43
47
  {
44
48
  "path": "scripts/core/bootstrap.mjs",
45
49
  "sha256": "703d5c16878c526114afb540e4a6d54bd74831f35a824c03a839e2480097d279"
50
+ },
51
+ {
52
+ "path": "scripts/core/derive.mjs",
53
+ "sha256": "f819437f924a07a1f21719cc014bd720e33e39eb68bcb5e73e7670e226c55338"
54
+ },
55
+ {
56
+ "path": "scripts/core/index-targets.mjs",
57
+ "sha256": "dc7f87e48888dc1feb8cb8e7575ed912d71e34e1076c77b7f96d12c7d1e1ec69"
58
+ },
59
+ {
60
+ "path": "scripts/core/judgments.mjs",
61
+ "sha256": "0896c1cfad5a27f1b30bd5b00f0d1421449af71f5e65d08fbc75c004106586d5"
62
+ },
63
+ {
64
+ "path": "scripts/core/facts.mjs",
65
+ "sha256": "b33fab1b929b2ce7f089456c7bcbcc7fbc88e976482ed9064401a90b06abc384"
66
+ },
67
+ {
68
+ "path": "scripts/core/link-graph.mjs",
69
+ "sha256": "c4571e6b3d2d837a7634137f5574af1653d9c4c960d5819c35047be1e52aad06"
70
+ },
71
+ {
72
+ "path": "scripts/core/page-select.mjs",
73
+ "sha256": "79d16301b8f29b82986f8a30a62228e5730bc007ae37218f3e28a5e49ca5dc00"
74
+ },
75
+ {
76
+ "path": "modules/naver-searchadvisor/scripts/audit.mjs",
77
+ "sha256": "f19425a43be0d974756722d6069285317b4897720ede58a7bea8f211b6f73103"
78
+ },
79
+ {
80
+ "path": "scripts/core/checks/canonical-consistency.mjs",
81
+ "sha256": "a9229518f8739faa8a0d3db92b33c715e7c9a53bbfa3837192a888775b33e856"
82
+ },
83
+ {
84
+ "path": "scripts/core/checks/cwv-field.mjs",
85
+ "sha256": "9fbe8ab45b3f66bfe44edf0a6c509513eebd725c64f8bd72b1e345cf41c9d7ea"
86
+ },
87
+ {
88
+ "path": "scripts/core/checks/discovery.mjs",
89
+ "sha256": "f374bab19aeae0584fa409dd02f67e33fb8a850085c66c6b616ae27140a241f3"
90
+ },
91
+ {
92
+ "path": "scripts/core/checks/document-title.mjs",
93
+ "sha256": "3c47065f5f50caa1f75c8d11d739d18178601e792edbb07ee658424f062a2a87"
94
+ },
95
+ {
96
+ "path": "scripts/core/checks/entity-identity.mjs",
97
+ "sha256": "b710a562949231671cf537396f3d27823a0348a1ea87bf2a96e4efab05e14b2c"
98
+ },
99
+ {
100
+ "path": "scripts/core/checks/fact-consistency.mjs",
101
+ "sha256": "19b1376943cbd6b1293809b180ceb64e824a7398031728daa7c4d888c8ad88ab"
102
+ },
103
+ {
104
+ "path": "scripts/core/checks/fetch-response.mjs",
105
+ "sha256": "acd80d1da42a4ff9a057fc2dd250baae829d454176db71b58109bc943dc30ff3"
106
+ },
107
+ {
108
+ "path": "scripts/core/checks/index-policy.mjs",
109
+ "sha256": "d8a41a4b3da0725ccc04a9dd28f521032352223c03f27eba359c25152f0a8eb5"
110
+ },
111
+ {
112
+ "path": "scripts/core/checks/index.mjs",
113
+ "sha256": "c4725c91048f15fcd906c5ef0bae6de6c69706d2bb0fb35101b82b31fcaff9cd"
114
+ },
115
+ {
116
+ "path": "scripts/core/checks/internal-navigation.mjs",
117
+ "sha256": "c2cac389702d12dd55dbf76b04cfdc779695c36ad7b4f9d0fa4c22ade6f1dcde"
118
+ },
119
+ {
120
+ "path": "scripts/core/checks/locale-links.mjs",
121
+ "sha256": "c0e17643d167b777b99103d405f2c7a9f9d717cc338dc659b176f4757586496f"
122
+ },
123
+ {
124
+ "path": "scripts/core/checks/naver-markup.mjs",
125
+ "sha256": "9d766a70770cd8850696eb9b12da6859370b8ceb06068a7c37dbf1ddd63845aa"
126
+ },
127
+ {
128
+ "path": "scripts/core/checks/observation.mjs",
129
+ "sha256": "ee8727f5f3b7700dba3c93047badbfbac813675b05930020da22576e6bb9bf31"
130
+ },
131
+ {
132
+ "path": "scripts/core/checks/prepare.mjs",
133
+ "sha256": "b3a3726afd0983994d28c27373ccde6eaef7e4648e94b60418b03ea4db260d18"
134
+ },
135
+ {
136
+ "path": "scripts/core/checks/render-content.mjs",
137
+ "sha256": "5401e3aba180189ce83f26ed3678b009b8c96c3dd94260223623b4544060a54a"
138
+ },
139
+ {
140
+ "path": "scripts/core/checks/search-crawl-policy.mjs",
141
+ "sha256": "0e9590c3365033fcceb1102bf795aed8ad094837de66cb5bc2850260041ca68a"
142
+ },
143
+ {
144
+ "path": "scripts/core/checks/structured-data-truth.mjs",
145
+ "sha256": "7b41a2f2039735e35b1f015ac3f3e8cf7ab9383dbbc758c15fcaa9149874575d"
46
146
  }
47
147
  ],
48
- "evaluation_hash": "cfc25f7865dfccebdb20aeaf51344242b155e305abd5e5131413920df8e9e8f8",
148
+ "evaluation_hash": "35949a8cc23dbd6afb3212f20c095e9da55cbb217ead52f0c20ac8013cac16f3",
49
149
  "protocol_sources": [
50
150
  {
51
151
  "path": "references/schemas/contract.schema.json",
52
- "sha256": "d530eb89d7b6fcb1af83bf10c34ba4aeec188c260f91890128cdcd87b0df0aab"
152
+ "sha256": "c86fb683f9e4cee6c9d2b3d43519016f87265239c8252fb1e931b2983f2fe9e9"
153
+ },
154
+ {
155
+ "path": "references/limits.json",
156
+ "sha256": "0715169cd29a27238041c73dbe1693df7185e27e836b79f5c363e2db35bc6a30"
53
157
  },
54
158
  {
55
159
  "path": "scripts/core/protocol.mjs",
56
- "sha256": "f921e2b39192e719c5959023e09fe907771dd2326886d03d40b4424b537f9555"
160
+ "sha256": "2e1d04b0bc9c97001c5a09e54ae55ae9a2b081a2e2a73f7f25aa24578cee1ad2"
57
161
  }
58
162
  ],
59
- "protocol_hash": "b39c10f35660df3f97f97e14091b589f1463367ab80facd7905e76f70a3b2da4",
163
+ "protocol_hash": "110a5faea92508b169814f44e2f0cd245f95502ee410f90dd9b2dc64b7218f73",
60
164
  "files": [
61
165
  {
62
166
  "path": "LICENSE",
@@ -64,11 +168,11 @@
64
168
  },
65
169
  {
66
170
  "path": "SKILL.md",
67
- "sha256": "f0bc0284d9f1a540e65f24976141fd2c303c08acf3a2af2e843f3d741f6d2f6a"
171
+ "sha256": "03129bfab989c3486fb085d70cc37c3376a1af08a9c03aea6b072f6f26a5e42c"
68
172
  },
69
173
  {
70
174
  "path": "THIRD_PARTY_NOTICES.md",
71
- "sha256": "077c99f2f462d6f1cdfdf991a1c98034e0d29d7f53c0f4c6a8a41fdca98aa23c"
175
+ "sha256": "c55982babffc00d0c141e619a2fad5a40e58079903979c87e38ba194e7de62f2"
72
176
  },
73
177
  {
74
178
  "path": "agents/openai.yaml",
@@ -360,7 +464,7 @@
360
464
  },
361
465
  {
362
466
  "path": "modules/naver-searchadvisor/scripts/audit.mjs",
363
- "sha256": "fa70051e07b429ad9477b8d778232cc4b3ca0bae8d2a1352074dfd4cb6f5f884"
467
+ "sha256": "f19425a43be0d974756722d6069285317b4897720ede58a7bea8f211b6f73103"
364
468
  },
365
469
  {
366
470
  "path": "modules/naver-searchadvisor/scripts/robots.mjs",
@@ -536,31 +640,55 @@
536
640
  },
537
641
  {
538
642
  "path": "references/ai-crawlers.json",
539
- "sha256": "d1b8c2ee81a5cd32cc0e5ace229eb8c62266173c3a5585940ef2c253a3e3a3d4"
643
+ "sha256": "fbaf1a4215f43cb5e7f181606cf183d0359f2d323064e005a3d43808ac03ade4"
540
644
  },
541
645
  {
542
646
  "path": "references/ai-crawlers.md",
543
- "sha256": "77b3f5e80c81256c9d8fb7318a96976cf8374ee0594e2021658657a100ae6afa"
647
+ "sha256": "8e48173cf80622f0bd2ad79fc32987447aeea63bee7351a068c6af3a9d7c573d"
544
648
  },
545
649
  {
546
650
  "path": "references/api.md",
547
- "sha256": "37d91bf63058b4b972b6f20e84a76740f82330b60d16ea7754d30c01baa8473f"
651
+ "sha256": "6deb2345ce7fce0f8e25fc7327b45ab246134389766b4a541aa1ac668ff543ae"
548
652
  },
549
653
  {
550
654
  "path": "references/check-registry.json",
551
- "sha256": "c792c7fc291aaddf0774e55aebaed998364ce067df1ec9aaa4ad43ab86790fc4"
655
+ "sha256": "a4e28070f760da91114e9dbfad987a5ee93d35b19c5ca4e42235443da5084dca"
656
+ },
657
+ {
658
+ "path": "references/chrome-paths.json",
659
+ "sha256": "fb3c0ef60b1bcf8257b908ce30259e10373f94d13383fa656e91107166edeac5"
660
+ },
661
+ {
662
+ "path": "references/endpoints.json",
663
+ "sha256": "2cbdbf277e15bf23d10d76e15729f4a9587735c23ffda0e6452467bc92f5f60f"
552
664
  },
553
665
  {
554
666
  "path": "references/evidence.md",
555
667
  "sha256": "784cdfd5cdf8ad1cb096a4a321c81708c9ffce63a785c31839d42348c5f02879"
556
668
  },
669
+ {
670
+ "path": "references/harness-signals.json",
671
+ "sha256": "1e753fc85a418fc08331a2958c3e89145f6c3f0384fc6825ad282e1b340f3067"
672
+ },
557
673
  {
558
674
  "path": "references/intake.md",
559
- "sha256": "86b2d7d3fc900f32a6af805dc1f6997087272ebf125d424d352630ed5004779a"
675
+ "sha256": "cc5f3efda14166891aba87c2e956d4f265d169ebf16d7a9493f0a343eb836279"
676
+ },
677
+ {
678
+ "path": "references/judging.md",
679
+ "sha256": "aeee661bd9d94d7b2f08c2f9ffc25bada4e38d7283964eca485c46b4a455829c"
680
+ },
681
+ {
682
+ "path": "references/limits.json",
683
+ "sha256": "0715169cd29a27238041c73dbe1693df7185e27e836b79f5c363e2db35bc6a30"
560
684
  },
561
685
  {
562
686
  "path": "references/measurement.md",
563
- "sha256": "8879fc0e24bff3f9a691ce8e0c5c4c35733e78f854acc973d0b43bd9b076be1d"
687
+ "sha256": "5a44d32026516b19685c96a55b234a9c6fc981fbcd2ce6ef73504c748fb07e9d"
688
+ },
689
+ {
690
+ "path": "references/messages.ko.json",
691
+ "sha256": "d6b763bc8ce6e690bf85c49e1167184188ce62f7b98af9191aaad599fc0ff6a9"
564
692
  },
565
693
  {
566
694
  "path": "references/policies.md",
@@ -576,35 +704,99 @@
576
704
  },
577
705
  {
578
706
  "path": "references/report.md",
579
- "sha256": "c749eecaa8dc5a721400a263a8354e3c8f8157ba2fc762c87c325a764debaedc"
707
+ "sha256": "3fc012d49d1af77f2434b77e1d85b3b3ac9dd0fb64f83d05bd6655c4e1780dd9"
580
708
  },
581
709
  {
582
710
  "path": "references/routing.md",
583
- "sha256": "1fc3f475804dea6cac75832f9b76c0710f7c08b5080688a784243ef11756f528"
711
+ "sha256": "f7b08e5e89a033246f7ba336203110c48ecafea99f42a7685a6cd10592a802e3"
712
+ },
713
+ {
714
+ "path": "references/runbooks/anthropic-api-key.md",
715
+ "sha256": "1661c15103044e9c953bd85934ab7ac315e0351500da7185b63db5a242c18e7e"
716
+ },
717
+ {
718
+ "path": "references/runbooks/chrome-install.md",
719
+ "sha256": "3c3c5d96740a741a9a9964d783cd3cbfd987223724179c0a5c80d1cd0f6501cd"
720
+ },
721
+ {
722
+ "path": "references/runbooks/cwv-site-collection.md",
723
+ "sha256": "fc224bd56ed2716bd142e6e5ee5a31e12f7daf26f6c283bdc2264a7847d2554e"
724
+ },
725
+ {
726
+ "path": "references/runbooks/google-api-key.md",
727
+ "sha256": "8c752ee46300fdd57e3a87efa4d3addc38c7a69ee2f409ddfba188c79cdf3d7d"
728
+ },
729
+ {
730
+ "path": "references/runbooks/gsc-export.md",
731
+ "sha256": "5ec2d1fc05dc1b161d8d274e6309284e6972542f7e400801c4159673b0df5ea5"
732
+ },
733
+ {
734
+ "path": "references/runbooks/index.json",
735
+ "sha256": "cdc9b2cc9524a9f9a42e1b3aeb17d91fcca00c7c61a66f9f540d53123cb83bae"
736
+ },
737
+ {
738
+ "path": "references/runbooks/key-set-claude-cloud.md",
739
+ "sha256": "7d1c852dcd3f3ad382cc7792872ddd193d4fb906c8820b49281c6596b9423d75"
740
+ },
741
+ {
742
+ "path": "references/runbooks/key-set-codex.md",
743
+ "sha256": "7c06b95a10d237d69055c9f6dfc5b39c0c678951e1cf68bbb49d8a2c484bab2d"
744
+ },
745
+ {
746
+ "path": "references/runbooks/key-set-local.md",
747
+ "sha256": "9f2a59e4e5e45fe2f2dfcc3651364d9549b26296ed4191c577cf8f57bd328c00"
748
+ },
749
+ {
750
+ "path": "references/runbooks/naver-searchadvisor-export.md",
751
+ "sha256": "bc999f7dbc44008fdcc617974a19d571f34bce5640c38052e84431d07a0aa32d"
752
+ },
753
+ {
754
+ "path": "references/runbooks/network-claude-cloud-custom.md",
755
+ "sha256": "4fc99a0177afa09c00d2f57d9824a653a056c60a75e8d65724f96b95c6361789"
756
+ },
757
+ {
758
+ "path": "references/runbooks/network-codex-approval.md",
759
+ "sha256": "f40aa7ee87169a5bc22277d270572cbb0697939313c0aeda204938a2f67e4db5"
760
+ },
761
+ {
762
+ "path": "references/runbooks/network-codex-config.md",
763
+ "sha256": "785bc8d89aa9347f55c6e19e671c48387b26dc7b47c44b867bf1ccdee240e69a"
764
+ },
765
+ {
766
+ "path": "references/runbooks/seranking.md",
767
+ "sha256": "1dc9c0a969eecf8abd099c95437f943d1b32ccea53962933c6f245f3ed2f5868"
584
768
  },
585
769
  {
586
770
  "path": "references/schemas/contract.schema.json",
587
- "sha256": "d530eb89d7b6fcb1af83bf10c34ba4aeec188c260f91890128cdcd87b0df0aab"
771
+ "sha256": "c86fb683f9e4cee6c9d2b3d43519016f87265239c8252fb1e931b2983f2fe9e9"
588
772
  },
589
773
  {
590
774
  "path": "references/scoring.md",
591
- "sha256": "ecb037962e76b21b1623ad8666975510f93d8ed55221e5b97986db378d19df65"
775
+ "sha256": "be3cf4769d61b4316470b5ece1249a47da256c339e27c4048dab2f693493f746"
776
+ },
777
+ {
778
+ "path": "references/source-analysis.md",
779
+ "sha256": "7efcfa344d5115bd37e14ca51aac100b26eff43d17283749c54d42d2622acc37"
780
+ },
781
+ {
782
+ "path": "references/versions.json",
783
+ "sha256": "105378f9955712e900290078224d0f21895f6fb9274323ebce69e536576acbb0"
592
784
  },
593
785
  {
594
786
  "path": "scripts/adapters/anthropic.mjs",
595
- "sha256": "d066b4810e58a113fb96da898b5f36169447459d4f78260f2b2149252b5b36e4"
787
+ "sha256": "c115ddbcd4730dc397498aaf8b0b94a28888295bc676a0013da3427ff444f2b1"
596
788
  },
597
789
  {
598
790
  "path": "scripts/adapters/imports.mjs",
599
- "sha256": "f05c719f6c422675019b8ff5e4bd9863936f39367ba881ef9cb3bbb0b585e2c8"
791
+ "sha256": "80c69b8599e192990ed3708348774ca1539ddb4a9a1b3800157a2ad7a35cf994"
600
792
  },
601
793
  {
602
794
  "path": "scripts/audit.mjs",
603
- "sha256": "000c88a07f1c0f7a2fdcfacb0e5410be8ead59954f2aa28b5039e301fd31fd18"
795
+ "sha256": "46c6c2315aae8f58bbe965cabc8801ad33e1aa66179e85e662983b19c8b3ee4d"
604
796
  },
605
797
  {
606
798
  "path": "scripts/cli.mjs",
607
- "sha256": "01d60a5dedcd8b478570d7c523f72df735631cdf11e1a78a7e1d64db3f528a28"
799
+ "sha256": "aa9d6a4881e7281ee4c862309caae942c8312651841de00714a95a0a763168e9"
608
800
  },
609
801
  {
610
802
  "path": "scripts/core/bootstrap.mjs",
@@ -612,23 +804,107 @@
612
804
  },
613
805
  {
614
806
  "path": "scripts/core/bundle.mjs",
615
- "sha256": "3d75284cd5b788817e6bfbd472ebafe79ac3cb555f57f46469f63d915d78f602"
807
+ "sha256": "b39c0225fb1dff89fd42618b489ec7121d336d042e7603b0e8fef2a72b38bf89"
616
808
  },
617
809
  {
618
810
  "path": "scripts/core/capabilities.mjs",
619
- "sha256": "4c1d894f34556a2b72371b9534222ae4e4a0653d3c9a196dd4722fcb7fdba3d9"
811
+ "sha256": "b5b503672aad158d4ad9c3a689f41bfb1261941c37da59950c00135aec992b0f"
812
+ },
813
+ {
814
+ "path": "scripts/core/cdp.mjs",
815
+ "sha256": "e871bb4ea38bae719c3ec38566644f5c21bf8f9265951a0270de4a5656f7c336"
816
+ },
817
+ {
818
+ "path": "scripts/core/checks/canonical-consistency.mjs",
819
+ "sha256": "a9229518f8739faa8a0d3db92b33c715e7c9a53bbfa3837192a888775b33e856"
820
+ },
821
+ {
822
+ "path": "scripts/core/checks/cwv-field.mjs",
823
+ "sha256": "9fbe8ab45b3f66bfe44edf0a6c509513eebd725c64f8bd72b1e345cf41c9d7ea"
824
+ },
825
+ {
826
+ "path": "scripts/core/checks/discovery.mjs",
827
+ "sha256": "f374bab19aeae0584fa409dd02f67e33fb8a850085c66c6b616ae27140a241f3"
828
+ },
829
+ {
830
+ "path": "scripts/core/checks/document-title.mjs",
831
+ "sha256": "3c47065f5f50caa1f75c8d11d739d18178601e792edbb07ee658424f062a2a87"
832
+ },
833
+ {
834
+ "path": "scripts/core/checks/entity-identity.mjs",
835
+ "sha256": "b710a562949231671cf537396f3d27823a0348a1ea87bf2a96e4efab05e14b2c"
836
+ },
837
+ {
838
+ "path": "scripts/core/checks/fact-consistency.mjs",
839
+ "sha256": "19b1376943cbd6b1293809b180ceb64e824a7398031728daa7c4d888c8ad88ab"
840
+ },
841
+ {
842
+ "path": "scripts/core/checks/fetch-response.mjs",
843
+ "sha256": "acd80d1da42a4ff9a057fc2dd250baae829d454176db71b58109bc943dc30ff3"
844
+ },
845
+ {
846
+ "path": "scripts/core/checks/index-policy.mjs",
847
+ "sha256": "d8a41a4b3da0725ccc04a9dd28f521032352223c03f27eba359c25152f0a8eb5"
848
+ },
849
+ {
850
+ "path": "scripts/core/checks/index.mjs",
851
+ "sha256": "c4725c91048f15fcd906c5ef0bae6de6c69706d2bb0fb35101b82b31fcaff9cd"
852
+ },
853
+ {
854
+ "path": "scripts/core/checks/internal-navigation.mjs",
855
+ "sha256": "c2cac389702d12dd55dbf76b04cfdc779695c36ad7b4f9d0fa4c22ade6f1dcde"
856
+ },
857
+ {
858
+ "path": "scripts/core/checks/locale-links.mjs",
859
+ "sha256": "c0e17643d167b777b99103d405f2c7a9f9d717cc338dc659b176f4757586496f"
860
+ },
861
+ {
862
+ "path": "scripts/core/checks/naver-markup.mjs",
863
+ "sha256": "9d766a70770cd8850696eb9b12da6859370b8ceb06068a7c37dbf1ddd63845aa"
864
+ },
865
+ {
866
+ "path": "scripts/core/checks/observation.mjs",
867
+ "sha256": "ee8727f5f3b7700dba3c93047badbfbac813675b05930020da22576e6bb9bf31"
868
+ },
869
+ {
870
+ "path": "scripts/core/checks/prepare.mjs",
871
+ "sha256": "b3a3726afd0983994d28c27373ccde6eaef7e4648e94b60418b03ea4db260d18"
872
+ },
873
+ {
874
+ "path": "scripts/core/checks/render-content.mjs",
875
+ "sha256": "5401e3aba180189ce83f26ed3678b009b8c96c3dd94260223623b4544060a54a"
876
+ },
877
+ {
878
+ "path": "scripts/core/checks/search-crawl-policy.mjs",
879
+ "sha256": "0e9590c3365033fcceb1102bf795aed8ad094837de66cb5bc2850260041ca68a"
880
+ },
881
+ {
882
+ "path": "scripts/core/checks/structured-data-truth.mjs",
883
+ "sha256": "7b41a2f2039735e35b1f015ac3f3e8cf7ab9383dbbc758c15fcaa9149874575d"
884
+ },
885
+ {
886
+ "path": "scripts/core/chrome-temp.mjs",
887
+ "sha256": "d047eeec9611cc8de297e6768b5ebe658d0f4c503ad9cff51c26c208ab8ed94f"
888
+ },
889
+ {
890
+ "path": "scripts/core/chrome.mjs",
891
+ "sha256": "c356f1b01dfd30e321499828cdf2a36493a43dbd4499a736b9312d8aa4532270"
620
892
  },
621
893
  {
622
894
  "path": "scripts/core/collector.mjs",
623
- "sha256": "d9be675929cde529db11f31e336a47993ee01b9a17cd8e8b3deb976533c07d68"
895
+ "sha256": "132fc07715b7c39300412dd63d8e8ea24a4675aff8cf2f7d73d4844e0056b60a"
624
896
  },
625
897
  {
626
898
  "path": "scripts/core/compare.mjs",
627
- "sha256": "16d43532285072d6d4a3489d1e4392651a3013ce5d34b5dc5057fdcbd13e5356"
899
+ "sha256": "639f9ec5ce590f97cb78f13fbff51aed6269156933bfee64fed1a63be79199aa"
900
+ },
901
+ {
902
+ "path": "scripts/core/config.mjs",
903
+ "sha256": "0f3104b3e9eef1ca54eff8e62f3e0d0a34b07e8138d84cc9a1565d99aa97788c"
628
904
  },
629
905
  {
630
906
  "path": "scripts/core/contracts.mjs",
631
- "sha256": "a2c493b9c97915aa3b5ec08c477008123e1c3dd39f8b0a5ed0a400cae0651b6a"
907
+ "sha256": "75a7fd711d354e96ba8013326875db88ec8938351fc51923ca9e12e2f2d38748"
632
908
  },
633
909
  {
634
910
  "path": "scripts/core/cost-ledger.mjs",
@@ -638,50 +914,134 @@
638
914
  "path": "scripts/core/crawlers.mjs",
639
915
  "sha256": "8fe380831cbef96776e79b94bf80873b46bafbdf890164133806b8347461e8b3"
640
916
  },
917
+ {
918
+ "path": "scripts/core/cwv.mjs",
919
+ "sha256": "2e259d4d7287ae5e08b228893c5db17235b3c81bc98e20b5f787391c9b392e7f"
920
+ },
641
921
  {
642
922
  "path": "scripts/core/derive.mjs",
643
- "sha256": "5c4666e343d999d1e96455f28d479876246c5c6f41d1f5c2d4c33ac41834640e"
923
+ "sha256": "f819437f924a07a1f21719cc014bd720e33e39eb68bcb5e73e7670e226c55338"
924
+ },
925
+ {
926
+ "path": "scripts/core/evidence-store.mjs",
927
+ "sha256": "ecfaf801d28e9198fe4fc6ebfc347ec09eaf05f19ad8686647c6ba378dcb5a75"
644
928
  },
645
929
  {
646
930
  "path": "scripts/core/facts.mjs",
647
- "sha256": "00270c7dc871466acfd1ebaee5257b23a24b2452af19fdda74c2a2e7e100115c"
931
+ "sha256": "b33fab1b929b2ce7f089456c7bcbcc7fbc88e976482ed9064401a90b06abc384"
648
932
  },
649
933
  {
650
934
  "path": "scripts/core/findings.mjs",
651
- "sha256": "ec3b1758468add607219dc963e32d8305a341ef7a8a34632d7dd6a534dbf93ab"
935
+ "sha256": "7372e0afaabbfbdc5743bb8b1d9ef4d1f517c2a2681f7903dbd9f1c2b1714afb"
652
936
  },
653
937
  {
654
938
  "path": "scripts/core/html.mjs",
655
- "sha256": "b8a30e127a60b93e14b78ad70047193d6b6b576ee97430e5138eb5edecf119b9"
939
+ "sha256": "9bcf0437d092f1d73741edf880556893a0fc0e2d2cb471c21a6eede1737fa8bf"
940
+ },
941
+ {
942
+ "path": "scripts/core/index-targets.mjs",
943
+ "sha256": "dc7f87e48888dc1feb8cb8e7575ed912d71e34e1076c77b7f96d12c7d1e1ec69"
944
+ },
945
+ {
946
+ "path": "scripts/core/judgments.mjs",
947
+ "sha256": "0896c1cfad5a27f1b30bd5b00f0d1421449af71f5e65d08fbc75c004106586d5"
948
+ },
949
+ {
950
+ "path": "scripts/core/keys.mjs",
951
+ "sha256": "2796757270929679abe3fdb3b13f7f0a60a4f6cb6da395a9bb6af8e87c0b3a04"
952
+ },
953
+ {
954
+ "path": "scripts/core/link-graph.mjs",
955
+ "sha256": "c4571e6b3d2d837a7634137f5574af1653d9c4c960d5819c35047be1e52aad06"
956
+ },
957
+ {
958
+ "path": "scripts/core/messages.mjs",
959
+ "sha256": "df24fd35442b9dca43da46463e35f5bf82dedf04df8f8b8ddcacf91688d30d3c"
656
960
  },
657
961
  {
658
962
  "path": "scripts/core/metrics.mjs",
659
- "sha256": "b2579fe7a6b46f285334b341de3e289e805614b41728b625c65508cbc584dc0b"
963
+ "sha256": "431af37d1b9d3f85a7299df64575164cc22207ec4bc02670701882298f7b3c17"
964
+ },
965
+ {
966
+ "path": "scripts/core/migration.mjs",
967
+ "sha256": "9190e8a2bb2cc2cbce56179ed411b4432ad4c3e65cf6af5b46a130ec7aa98992"
968
+ },
969
+ {
970
+ "path": "scripts/core/page-select.mjs",
971
+ "sha256": "79d16301b8f29b82986f8a30a62228e5730bc007ae37218f3e28a5e49ca5dc00"
972
+ },
973
+ {
974
+ "path": "scripts/core/probe.mjs",
975
+ "sha256": "cc91a7e1ee8d844a51b38a4980687fdb7b371fed46cec9e67dd7ca5507e58fdd"
660
976
  },
661
977
  {
662
978
  "path": "scripts/core/protocol.mjs",
663
- "sha256": "f921e2b39192e719c5959023e09fe907771dd2326886d03d40b4424b537f9555"
979
+ "sha256": "2e1d04b0bc9c97001c5a09e54ae55ae9a2b081a2e2a73f7f25aa24578cee1ad2"
980
+ },
981
+ {
982
+ "path": "scripts/core/render.mjs",
983
+ "sha256": "afc803a7312caffa1d2d679d93519af1a4e44e8efa0aed903de7e290e9791e4b"
984
+ },
985
+ {
986
+ "path": "scripts/core/report-compose.mjs",
987
+ "sha256": "083df66141abd157aa429b1ae468a962f8b41fc266a94264a9fae6999055da02"
988
+ },
989
+ {
990
+ "path": "scripts/core/report-html.mjs",
991
+ "sha256": "2770f2f472e40b988f83f7bfed4f7202b8c98f70589aedaa28523027cf3a750e"
992
+ },
993
+ {
994
+ "path": "scripts/core/report-page.mjs",
995
+ "sha256": "dd4e53632daeb1bb5190a7ee527ba5dc1b2c77a8262c399c7390edf375c734bf"
664
996
  },
665
997
  {
666
998
  "path": "scripts/core/report.mjs",
667
- "sha256": "bc5a77424398a06ba9140383b19ddbe47d601c8f054a4527676b79fddd14f2ea"
999
+ "sha256": "e922996e96e64f7502aed21cea830170a8946728ef8b1d761d867597ffd475b0"
1000
+ },
1001
+ {
1002
+ "path": "scripts/core/runbooks.mjs",
1003
+ "sha256": "d833d3c820b1705521523353fa473ed354773455566e38d656b50548e6645185"
668
1004
  },
669
1005
  {
670
1006
  "path": "scripts/core/scope.mjs",
671
- "sha256": "fc824ed721cccb27f654b8a92f15e679487e42151752155a1fd52393b3541641"
1007
+ "sha256": "c302fe0fd0711faafc39f5741e735ebd9921723b56f071134afe8ef1fc073053"
672
1008
  },
673
1009
  {
674
1010
  "path": "scripts/core/score.mjs",
675
- "sha256": "62e26a06e262a0be76082ca94569cc3b409cc161b2096b15a676267067009eb1"
1011
+ "sha256": "7388e9d8762783896b3647d52b200c28c49ff449e4679bd29e8e6a055884384a"
1012
+ },
1013
+ {
1014
+ "path": "scripts/core/secrets.mjs",
1015
+ "sha256": "02f514f1694e3fcb054eec2b1f5ae1adaa69ecf502fe0ff165ba537c8639e454"
1016
+ },
1017
+ {
1018
+ "path": "scripts/core/stages.mjs",
1019
+ "sha256": "d84674b8c3b00d8b83a5419155cefac4987b69a202934c11883e8979c1db95d4"
1020
+ },
1021
+ {
1022
+ "path": "scripts/core/transport.mjs",
1023
+ "sha256": "f3214e68c48a2edc42d061e3bf33138d844eca7aa54d3a6e59d26c5c58d77001"
676
1024
  },
677
1025
  {
678
1026
  "path": "scripts/core/weights.mjs",
679
- "sha256": "a565192fdd9151f1b069f721eb5b6ee3be051c4a6c572b9b1bfa6e2a2fb5abee"
1027
+ "sha256": "45bd145e586b105f328426db8b815ec18f5a7f9654918404876ae51e66039d80"
1028
+ },
1029
+ {
1030
+ "path": "scripts/key.mjs",
1031
+ "sha256": "b800a478d601bddf461c6237295fd54279fcd1a14459261e938f0b5a342c6467"
1032
+ },
1033
+ {
1034
+ "path": "scripts/preflight.mjs",
1035
+ "sha256": "79e98931702a4c830bbba35d62351777eb2ef3588269ba86a852471fe98f4ea3"
1036
+ },
1037
+ {
1038
+ "path": "scripts/run.mjs",
1039
+ "sha256": "78e6c6da8598e9a93d393fe0915c1bfed64630805956cb0cdee7e3774a2286cb"
680
1040
  },
681
1041
  {
682
1042
  "path": "source-lock.json",
683
- "sha256": "a53223b7eefab2204c026a62b1da04cfdb8a07be8d3749613e8241a81b027d9b"
1043
+ "sha256": "dca0bbd03fbf591c4aca6a568be76615eb48d69f7df0c634886f652b54f3f46d"
684
1044
  }
685
1045
  ],
686
- "bundle_hash": "780e3eb5b675e74cb5732aa9cc5e7adf4490074a340e777d7153071c05ece116"
1046
+ "bundle_hash": "4f9cf4134069bf43e1243d9a1a925bf6712cc7fb858841161c26361d7b3a9e70"
687
1047
  }
@@ -665,15 +665,15 @@ export function auditCollected({ artifact, html, robotsArtifact = null, engines
665
665
  const openGraph = {};
666
666
  for (const t of markupMetas) if ((t.property || '').startsWith('og:')) openGraph[t.property.slice(3)] = t.content ?? '';
667
667
  for (const k of ['title', 'description', 'image', 'url', 'type'])
668
- if (!openGraph[k]) markupFindings.push({ code: `no-og-${k}`, message: `og:${k} is missing` });
668
+ if (!openGraph[k]) markupFindings.push({ code: `no-og-${k}`, message: `og:${k} is missing`, values: { name: k } });
669
669
  if (!metaBy(markupMetas, 'name', 'description')[0]) markupFindings.push({ code: 'no-description', message: 'meta description is missing' });
670
670
  const canonical = markupLinks.find((l) => (l.rel || '').toLowerCase() === 'canonical')?.href ?? null;
671
671
  if (!canonical) markupFindings.push({ code: 'no-canonical', message: 'canonical link is missing' });
672
- else if (!/^https?:\/\//i.test(canonical)) markupFindings.push({ code: 'canonical-relative', message: `canonical is relative: ${canonical}` });
672
+ else if (!/^https?:\/\//i.test(canonical)) markupFindings.push({ code: 'canonical-relative', message: `canonical is relative: ${canonical}`, values: { canonical } });
673
673
  // Three or more occurrences of one word in a title; two are common in legitimate "Page | Site" titles.
674
674
  const titleWords = (title || '').toLowerCase().match(/[가-힣a-z0-9]+/g) || [];
675
675
  const repeated = [...new Set(titleWords.filter((w) => w.length > 1 && titleWords.filter((x) => x === w).length >= 3))];
676
- if (repeated.length) markupFindings.push({ code: 'title-keyword-repeat', message: `title repeats: ${repeated.join(', ')}` });
676
+ if (repeated.length) markupFindings.push({ code: 'title-keyword-repeat', message: `title repeats: ${repeated.join(', ')}`, values: { words: repeated.join(', ') } });
677
677
  if (!metaBy(markupMetas, 'name', 'viewport')[0]) markupFindings.push({ code: 'no-viewport', message: 'meta viewport is missing' });
678
678
  let parsedRobots = null;
679
679
  let yetiVerdict = null;
@@ -700,7 +700,7 @@ export function auditCollected({ artifact, html, robotsArtifact = null, engines
700
700
  let target;
701
701
  try { target = new URL(resource, artifact.final_url); } catch { continue; }
702
702
  if (target.origin === url.origin && !robotsVerdict(parsedRobots, 'yeti', target.pathname + target.search).allowed)
703
- markupFindings.push({ code: 'resource-blocked', message: `Yeti cannot fetch ${target.pathname}${target.search}` });
703
+ markupFindings.push({ code: 'resource-blocked', message: `Yeti cannot fetch ${target.pathname}${target.search}`, values: { path: `${target.pathname}${target.search}` } });
704
704
  }
705
705
  }
706
706
  return {