speccore 8.3.349 → 8.3.363

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 (248) hide show
  1. package/.agents/skills/spec-verify/SKILL.md +22 -1
  2. package/dist/cli.js +15 -0
  3. package/dist/cli.js.map +1 -1
  4. package/dist/commands/about.d.ts.map +1 -1
  5. package/dist/commands/about.js +36 -1
  6. package/dist/commands/about.js.map +1 -1
  7. package/dist/commands/analyze/add-platform.d.ts +3 -0
  8. package/dist/commands/analyze/add-platform.d.ts.map +1 -0
  9. package/dist/commands/analyze/add-platform.js +82 -0
  10. package/dist/commands/analyze/add-platform.js.map +1 -0
  11. package/dist/commands/analyze/audit-fix.d.ts +3 -0
  12. package/dist/commands/analyze/audit-fix.d.ts.map +1 -0
  13. package/dist/commands/analyze/audit-fix.js +73 -0
  14. package/dist/commands/analyze/audit-fix.js.map +1 -0
  15. package/dist/commands/analyze/context-guard.d.ts +3 -0
  16. package/dist/commands/analyze/context-guard.d.ts.map +1 -0
  17. package/dist/commands/analyze/context-guard.js +75 -0
  18. package/dist/commands/analyze/context-guard.js.map +1 -0
  19. package/dist/commands/analyze/doc.d.ts +3 -0
  20. package/dist/commands/analyze/doc.d.ts.map +1 -0
  21. package/dist/commands/analyze/doc.js +77 -0
  22. package/dist/commands/analyze/doc.js.map +1 -0
  23. package/dist/commands/analyze/feature.d.ts +3 -0
  24. package/dist/commands/analyze/feature.d.ts.map +1 -0
  25. package/dist/commands/analyze/feature.js +75 -0
  26. package/dist/commands/analyze/feature.js.map +1 -0
  27. package/dist/commands/analyze/from-code.d.ts +3 -0
  28. package/dist/commands/analyze/from-code.d.ts.map +1 -0
  29. package/dist/commands/analyze/from-code.js +94 -0
  30. package/dist/commands/analyze/from-code.js.map +1 -0
  31. package/dist/commands/analyze/incremental.d.ts +3 -0
  32. package/dist/commands/analyze/incremental.d.ts.map +1 -0
  33. package/dist/commands/analyze/incremental.js +90 -0
  34. package/dist/commands/analyze/incremental.js.map +1 -0
  35. package/dist/commands/analyze/modes.d.ts +13 -0
  36. package/dist/commands/analyze/modes.d.ts.map +1 -0
  37. package/dist/commands/analyze/modes.js +147 -0
  38. package/dist/commands/analyze/modes.js.map +1 -0
  39. package/dist/commands/analyze/module.d.ts +3 -0
  40. package/dist/commands/analyze/module.d.ts.map +1 -0
  41. package/dist/commands/analyze/module.js +95 -0
  42. package/dist/commands/analyze/module.js.map +1 -0
  43. package/dist/commands/analyze/overview.d.ts +3 -0
  44. package/dist/commands/analyze/overview.d.ts.map +1 -0
  45. package/dist/commands/analyze/overview.js +125 -0
  46. package/dist/commands/analyze/overview.js.map +1 -0
  47. package/dist/commands/analyze/shared.d.ts +53 -0
  48. package/dist/commands/analyze/shared.d.ts.map +1 -0
  49. package/dist/commands/analyze/shared.js +34 -0
  50. package/dist/commands/analyze/shared.js.map +1 -0
  51. package/dist/commands/analyze/units.d.ts +46 -0
  52. package/dist/commands/analyze/units.d.ts.map +1 -0
  53. package/dist/commands/analyze/units.js +950 -0
  54. package/dist/commands/analyze/units.js.map +1 -0
  55. package/dist/commands/analyze.d.ts +6 -88
  56. package/dist/commands/analyze.d.ts.map +1 -1
  57. package/dist/commands/analyze.js +97 -1417
  58. package/dist/commands/analyze.js.map +1 -1
  59. package/dist/commands/ask.d.ts.map +1 -1
  60. package/dist/commands/ask.js +4 -2
  61. package/dist/commands/ask.js.map +1 -1
  62. package/dist/commands/dashboard.d.ts.map +1 -1
  63. package/dist/commands/dashboard.js +36 -1
  64. package/dist/commands/dashboard.js.map +1 -1
  65. package/dist/commands/deploy.d.ts +6 -0
  66. package/dist/commands/deploy.d.ts.map +1 -1
  67. package/dist/commands/deploy.js +153 -0
  68. package/dist/commands/deploy.js.map +1 -1
  69. package/dist/commands/doc2spec.d.ts +1 -1
  70. package/dist/commands/doc2spec.d.ts.map +1 -1
  71. package/dist/commands/doc2spec.js +33 -23
  72. package/dist/commands/doc2spec.js.map +1 -1
  73. package/dist/commands/doctor.js +60 -13
  74. package/dist/commands/doctor.js.map +1 -1
  75. package/dist/commands/execute.d.ts.map +1 -1
  76. package/dist/commands/execute.js +22 -0
  77. package/dist/commands/execute.js.map +1 -1
  78. package/dist/commands/help.js +36 -1
  79. package/dist/commands/help.js.map +1 -1
  80. package/dist/commands/init.js +1 -1
  81. package/dist/commands/init.js.map +1 -1
  82. package/dist/commands/pipeline.d.ts.map +1 -1
  83. package/dist/commands/pipeline.js +15 -0
  84. package/dist/commands/pipeline.js.map +1 -1
  85. package/dist/commands/plan.js +2 -0
  86. package/dist/commands/plan.js.map +1 -1
  87. package/dist/commands/pr.d.ts.map +1 -1
  88. package/dist/commands/pr.js +14 -3
  89. package/dist/commands/pr.js.map +1 -1
  90. package/dist/commands/prompts.d.ts +11 -1
  91. package/dist/commands/prompts.d.ts.map +1 -1
  92. package/dist/commands/prompts.js +197 -15
  93. package/dist/commands/prompts.js.map +1 -1
  94. package/dist/commands/reindex.d.ts.map +1 -1
  95. package/dist/commands/reindex.js +23 -0
  96. package/dist/commands/reindex.js.map +1 -1
  97. package/dist/commands/retro.d.ts.map +1 -1
  98. package/dist/commands/retro.js +3 -1
  99. package/dist/commands/retro.js.map +1 -1
  100. package/dist/commands/status-panel.d.ts.map +1 -1
  101. package/dist/commands/status-panel.js +9 -1
  102. package/dist/commands/status-panel.js.map +1 -1
  103. package/dist/commands/unitize.d.ts +2 -0
  104. package/dist/commands/unitize.d.ts.map +1 -1
  105. package/dist/commands/unitize.js +168 -6
  106. package/dist/commands/unitize.js.map +1 -1
  107. package/dist/commands/update-env-configs.d.ts.map +1 -1
  108. package/dist/commands/update-env-configs.js +10 -0
  109. package/dist/commands/update-env-configs.js.map +1 -1
  110. package/dist/commands/verify.d.ts +8 -0
  111. package/dist/commands/verify.d.ts.map +1 -1
  112. package/dist/commands/verify.js +383 -16
  113. package/dist/commands/verify.js.map +1 -1
  114. package/dist/commands/welcome.d.ts.map +1 -1
  115. package/dist/commands/welcome.js +3 -1
  116. package/dist/commands/welcome.js.map +1 -1
  117. package/dist/core/ai-verify/plan-generator.d.ts +94 -0
  118. package/dist/core/ai-verify/plan-generator.d.ts.map +1 -0
  119. package/dist/core/ai-verify/plan-generator.js +598 -0
  120. package/dist/core/ai-verify/plan-generator.js.map +1 -0
  121. package/dist/core/ai-verify/result-parser.d.ts +27 -0
  122. package/dist/core/ai-verify/result-parser.d.ts.map +1 -0
  123. package/dist/core/ai-verify/result-parser.js +212 -0
  124. package/dist/core/ai-verify/result-parser.js.map +1 -0
  125. package/dist/core/ai-verify/scope-resolver.d.ts +34 -0
  126. package/dist/core/ai-verify/scope-resolver.d.ts.map +1 -0
  127. package/dist/core/ai-verify/scope-resolver.js +183 -0
  128. package/dist/core/ai-verify/scope-resolver.js.map +1 -0
  129. package/dist/core/ai-verify/types.d.ts +171 -0
  130. package/dist/core/ai-verify/types.d.ts.map +1 -0
  131. package/dist/core/ai-verify/types.js +9 -0
  132. package/dist/core/ai-verify/types.js.map +1 -0
  133. package/dist/core/ai-verify/visual-judge.d.ts +33 -0
  134. package/dist/core/ai-verify/visual-judge.d.ts.map +1 -0
  135. package/dist/core/ai-verify/visual-judge.js +123 -0
  136. package/dist/core/ai-verify/visual-judge.js.map +1 -0
  137. package/dist/core/ask-engine.d.ts +6 -0
  138. package/dist/core/ask-engine.d.ts.map +1 -1
  139. package/dist/core/ask-engine.js +83 -3
  140. package/dist/core/ask-engine.js.map +1 -1
  141. package/dist/core/code-graph/builder.d.ts.map +1 -1
  142. package/dist/core/code-graph/builder.js +93 -75
  143. package/dist/core/code-graph/builder.js.map +1 -1
  144. package/dist/core/code-graph/incremental-build.d.ts.map +1 -1
  145. package/dist/core/code-graph/incremental-build.js +13 -19
  146. package/dist/core/code-graph/incremental-build.js.map +1 -1
  147. package/dist/core/code-graph/index.d.ts +1 -1
  148. package/dist/core/code-graph/index.d.ts.map +1 -1
  149. package/dist/core/code-graph/index.js +15 -12
  150. package/dist/core/code-graph/index.js.map +1 -1
  151. package/dist/core/code-graph/multimodal.js +1 -1
  152. package/dist/core/code-graph/parser.js +1 -1
  153. package/dist/core/code-graph/query.d.ts +1 -1
  154. package/dist/core/code-graph/reporter.d.ts +1 -1
  155. package/dist/core/code-graph/reporter.d.ts.map +1 -1
  156. package/dist/core/code-graph/reporter.js +18 -10
  157. package/dist/core/code-graph/reporter.js.map +1 -1
  158. package/dist/core/code-graph/requirement-linker.d.ts.map +1 -1
  159. package/dist/core/code-graph/requirement-linker.js +24 -14
  160. package/dist/core/code-graph/requirement-linker.js.map +1 -1
  161. package/dist/core/code-graph/types.d.ts +1 -1
  162. package/dist/core/code-graph/types.js +1 -1
  163. package/dist/core/code-graph/visualizer.d.ts +1 -7
  164. package/dist/core/code-graph/visualizer.d.ts.map +1 -1
  165. package/dist/core/code-graph/visualizer.js +476 -49
  166. package/dist/core/code-graph/visualizer.js.map +1 -1
  167. package/dist/core/deploy/engine.d.ts +21 -0
  168. package/dist/core/deploy/engine.d.ts.map +1 -1
  169. package/dist/core/deploy/engine.js +276 -0
  170. package/dist/core/deploy/engine.js.map +1 -1
  171. package/dist/core/deploy-ledger.d.ts +12 -0
  172. package/dist/core/deploy-ledger.d.ts.map +1 -0
  173. package/dist/core/deploy-ledger.js +35 -0
  174. package/dist/core/deploy-ledger.js.map +1 -0
  175. package/dist/core/environment-config.d.ts +11 -0
  176. package/dist/core/environment-config.d.ts.map +1 -1
  177. package/dist/core/environment-config.js +4 -0
  178. package/dist/core/environment-config.js.map +1 -1
  179. package/dist/core/intent-cache.d.ts.map +1 -1
  180. package/dist/core/intent-cache.js +6 -0
  181. package/dist/core/intent-cache.js.map +1 -1
  182. package/dist/core/knowledge-visualizer.js +1 -1
  183. package/dist/core/page-bundle.d.ts +2 -0
  184. package/dist/core/page-bundle.d.ts.map +1 -1
  185. package/dist/core/page-bundle.js +18 -1
  186. package/dist/core/page-bundle.js.map +1 -1
  187. package/dist/core/plan-html.js +1 -1
  188. package/dist/core/platform-inference.d.ts +35 -0
  189. package/dist/core/platform-inference.d.ts.map +1 -1
  190. package/dist/core/platform-inference.js +92 -0
  191. package/dist/core/platform-inference.js.map +1 -1
  192. package/dist/core/prompt-plugins/analyze-graph-plugin.d.ts.map +1 -1
  193. package/dist/core/prompt-plugins/analyze-graph-plugin.js +16 -1
  194. package/dist/core/prompt-plugins/analyze-graph-plugin.js.map +1 -1
  195. package/dist/core/prompt-plugins/execute-graph-plugin.d.ts +2 -0
  196. package/dist/core/prompt-plugins/execute-graph-plugin.d.ts.map +1 -1
  197. package/dist/core/prompt-plugins/execute-graph-plugin.js +127 -27
  198. package/dist/core/prompt-plugins/execute-graph-plugin.js.map +1 -1
  199. package/dist/core/quality-audit.d.ts.map +1 -1
  200. package/dist/core/quality-audit.js +18 -0
  201. package/dist/core/quality-audit.js.map +1 -1
  202. package/dist/core/reindex-engine.d.ts +20 -0
  203. package/dist/core/reindex-engine.d.ts.map +1 -1
  204. package/dist/core/reindex-engine.js +142 -0
  205. package/dist/core/reindex-engine.js.map +1 -1
  206. package/dist/core/requirement-clarifier.d.ts.map +1 -1
  207. package/dist/core/requirement-clarifier.js +22 -6
  208. package/dist/core/requirement-clarifier.js.map +1 -1
  209. package/dist/core/spec-paths.d.ts +5 -0
  210. package/dist/core/spec-paths.d.ts.map +1 -1
  211. package/dist/core/spec-paths.js +1 -0
  212. package/dist/core/spec-paths.js.map +1 -1
  213. package/dist/core/test-config.d.ts +7 -1
  214. package/dist/core/test-config.d.ts.map +1 -1
  215. package/dist/core/test-config.js +59 -11
  216. package/dist/core/test-config.js.map +1 -1
  217. package/dist/core/ui-verify/index.d.ts +1 -1
  218. package/dist/core/ui-verify/index.d.ts.map +1 -1
  219. package/dist/core/ui-verify/index.js +2 -1
  220. package/dist/core/ui-verify/index.js.map +1 -1
  221. package/dist/core/ui-verify/smoke-engine.js +71 -15
  222. package/dist/core/ui-verify/smoke-engine.js.map +1 -1
  223. package/dist/core/ui-verify/spec-generator.d.ts +5 -9
  224. package/dist/core/ui-verify/spec-generator.d.ts.map +1 -1
  225. package/dist/core/ui-verify/spec-generator.js +66 -3
  226. package/dist/core/ui-verify/spec-generator.js.map +1 -1
  227. package/dist/core/ui-verify/types.d.ts +25 -0
  228. package/dist/core/ui-verify/types.d.ts.map +1 -1
  229. package/dist/core/ui-verify/visual-model-client.d.ts +2 -0
  230. package/dist/core/ui-verify/visual-model-client.d.ts.map +1 -1
  231. package/dist/core/ui-verify/visual-model-client.js +4 -4
  232. package/dist/core/ui-verify/visual-model-client.js.map +1 -1
  233. package/dist/core/unified-config.d.ts +27 -0
  234. package/dist/core/unified-config.d.ts.map +1 -1
  235. package/dist/core/unified-config.js +37 -0
  236. package/dist/core/unified-config.js.map +1 -1
  237. package/package.json +1 -1
  238. package/templates/accounts-example.yaml +49 -0
  239. package/templates/html/fonts/JetBrainsMono.woff2 +0 -0
  240. package/templates/html/fonts/Orbitron.woff2 +0 -0
  241. package/templates/html/speccore-ask-explain.html +1 -1
  242. package/templates/html/speccore-ask-guide.html +2 -2
  243. package/templates/html/speccore-ask-match.html +1 -1
  244. package/templates/html/speccore-ask-pipeline.html +1 -1
  245. package/templates/html/speccore-ask-result.html +2 -2
  246. package/templates/html/speccore-help.html +2 -2
  247. package/templates/html/speccore-setup-guide.html +16 -1
  248. package/templates/speccore-yml-example.yml +12 -0
@@ -1,6 +1,6 @@
1
1
  <!DOCTYPE html><html lang="zh-CN" data-theme="ocean"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width,initial-scale=1.0"><title>SpecCore — 项目配置引导</title>
2
2
  <style>
3
- @import url('https://fonts.googleapis.com/css2?family=Orbitron:wght@500;700;900&family=JetBrains+Mono:wght@400;600;700&display=swap');
3
+ @font-face{font-family:"Orbitron";font-style:normal;font-weight:500 900;font-display:swap;src:url("fonts/Orbitron.woff2") format("woff2")}@font-face{font-family:"JetBrains Mono";font-style:normal;font-weight:400 700;font-display:swap;src:url("fonts/JetBrainsMono.woff2") format("woff2")}
4
4
  [data-theme="ocean"]{--cyan:#0ea5e9;--bg:#0b1929;--card:rgba(13,31,56,.95);--border:rgba(14,165,233,.15);--text:#bae6fd;--muted:#5b7fa5;--green:#14b8a6;--orange:#f97316;--purple:#6366f1;--red:#ef4444}
5
5
  *{margin:0;padding:0;box-sizing:border-box}
6
6
  body{font-family:'JetBrains Mono',monospace;background:var(--bg);color:var(--text);min-height:100vh;padding:24px 20px;position:relative}
@@ -231,6 +231,21 @@ Iteration-xxx/<br>
231
231
  <div class="step-desc" style="margin-top:8px;font-size:10px">💡 <code>speccore run</code> 是流水线入口:无参即智能续跑(检测断点从第一个未完成阶段继续),也可按预设流水线或起止点自动执行。快捷语法糖(v8.3.290+):<code>speccore run develop</code>(preset 直呼)、<code>speccore run smoke</code>(单阶段快捷)、<code>speccore run split-units to execute</code>(阶段范围)——高频操作不必依赖 ask 引擎。</div>
232
232
  </div>
233
233
 
234
+ <div style="margin:16px 0 8px;font-size:13px;font-weight:700;color:var(--cyan)">🧪 测试验证(v8.3.350+)</div>
235
+ <div style="padding:12px;border-radius:8px;border:1px solid rgba(20,184,166,.2);background:rgba(20,184,166,.04)">
236
+ <div class="step-desc">开发完成后用两条线保障质量——传统冒烟 + AI 视觉验证,按需选择:</div>
237
+ <div class="method-card m1" style="margin-top:8px"><div class="method-title">🤖 AI 浏览器验证(无需写选择器)</div><div class="step-desc">CLI 从 UI_SPEC/TEST 切片生成自然语言剧本,宿主 AI 用 Browser 子代理真实打开页面逐项验证,截图+判定回写结果:</div><div class="method-cmd" style="margin-top:4px">/spec-verify --ai</div><div class="method-cmd">speccore verify --ai --scope deployed</div></div>
238
+ <div class="method-card m2" style="margin-top:8px"><div class="method-title">👁️ 视觉判定兜底(只截图也能断言)</div><div class="step-desc">AI 仅截图未判定(judged=false)时,CLI 用视觉模型对「截图+预期结果原文」做业务断言,三级通道自动回退(Browser 子代理 → Playwright MCP → 视觉判定):</div><div class="method-cmd" style="margin-top:4px">speccore verify --ai-judge &lt;results.json&gt;</div></div>
239
+ <div class="method-card m3" style="margin-top:8px"><div class="method-title">🔢 账号密码走环境变量</div><div class="step-desc">账号权威源:环境文件 <code>tests.accounts</code>(就近声明),accounts.yaml 为全局兑底;username/password 支持 <code>${VAR}</code> 引用,密码不落盘不泄密:</div><div class="method-cmd" style="margin-top:4px">password: ${STAGING_USER_PASSWORD}</div></div>
240
+ <div class="step-desc" style="color:var(--cyan);margin-top:8px">💡 传统冒烟 依旧可用:<code>speccore verify --config ./tests/smoke.yaml --stage dev</code>,与 AI 验证互不干扰。</div>
241
+ <div style="margin-top:10px;padding:10px;border-radius:6px;border:1px solid rgba(14,165,233,.2);background:rgba(14,165,233,.04)">
242
+ <div style="font-size:10px;font-weight:700;color:var(--cyan);margin-bottom:4px">🎛️ 双线开关与剧本分层(settings.tests)</div>
243
+ <div class="step-desc" style="font-size:9px">.speccore.yml 的 <code>settings.tests</code> 三段开关,缺省全开,按需关闭:</div>
244
+ <div style="font-size:9px;color:var(--muted);margin:4px 0;line-height:1.7"><code>smoke.enabled: false</code> — 关冒烟线(质量门禁自动触发的 UI 验证跳过)<br><code>ai_verify.enabled: false</code> — 关 AI 验证线<br><code>layered.common / layered.modules: false</code> — 关剧本某层(公共能力层/模块层,关闭不生成场景)</div>
245
+ <div class="step-desc" style="font-size:9px">三条触发路径,显式优先于配置:<b>CLI 显式参数</b>(--ai / --ui,始终执行)> <b>配置开关</b>(settings.tests,兜底)> <b>质量门禁自动触发</b>(受开关拦截,可被显式参数覆盖)</div>
246
+ </div>
247
+ </div>
248
+
234
249
  <div style="margin:16px 0 8px;font-size:13px;font-weight:700;color:var(--cyan)">📚 提示词库(快速上手)</div>
235
250
  <div style="padding:12px;border-radius:8px;border:1px solid rgba(99,102,241,.2);background:rgba(99,102,241,.04)">
236
251
  <div class="step-desc">内置常用操作模板,按场景分类(核心流程/迭代管理/分析文档/开发执行),复制即用:</div>
@@ -143,6 +143,18 @@ settings:
143
143
  review:
144
144
  # check_assignee: 审查时是否检查指派人与执行人一致(不一致则警告)
145
145
  check_assignee: false
146
+ # ── 测试验证(Tests,v8.3.351+)──
147
+ tests:
148
+ # smoke: 配置式冒烟线(质量门禁自动启用的 UI 验证)
149
+ smoke:
150
+ enabled: true
151
+ # ai_verify: AI 宿主验证线(verify --ai,自然语言剧本 + 视觉执行)
152
+ ai_verify:
153
+ enabled: true
154
+ # layered: AI 剧本分层(common=公共能力层 | modules=模块层)
155
+ layered:
156
+ common: true
157
+ modules: true
146
158
  # ── 视觉模型(Vision,v8.3.94+)──
147
159
  # specs 文档图片理解(PNG/JPG/GIF/WebP 位图自动转文本注入 AI prompt)。默认关闭。
148
160
  vision: