spectra-cli 4.2.0 → 4.3.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 (365) hide show
  1. package/README.md +12 -5
  2. package/dist/.spectra-build-meta.json +9 -0
  3. package/dist/adapters/language-adapter.d.ts +7 -12
  4. package/dist/adapters/language-adapter.d.ts.map +1 -1
  5. package/dist/adapters/python-adapter.d.ts.map +1 -1
  6. package/dist/adapters/python-adapter.js +11 -2
  7. package/dist/adapters/python-adapter.js.map +1 -1
  8. package/dist/batch/batch-orchestrator.d.ts +44 -1
  9. package/dist/batch/batch-orchestrator.d.ts.map +1 -1
  10. package/dist/batch/batch-orchestrator.js +312 -76
  11. package/dist/batch/batch-orchestrator.js.map +1 -1
  12. package/dist/batch/delta-regenerator.d.ts.map +1 -1
  13. package/dist/batch/delta-regenerator.js +21 -28
  14. package/dist/batch/delta-regenerator.js.map +1 -1
  15. package/dist/batch/module-grouper.d.ts +7 -0
  16. package/dist/batch/module-grouper.d.ts.map +1 -1
  17. package/dist/batch/module-grouper.js +2 -0
  18. package/dist/batch/module-grouper.js.map +1 -1
  19. package/dist/batch/regen-plan.d.ts +78 -0
  20. package/dist/batch/regen-plan.d.ts.map +1 -0
  21. package/dist/batch/regen-plan.js +93 -0
  22. package/dist/batch/regen-plan.js.map +1 -0
  23. package/dist/cli/commands/batch.d.ts.map +1 -1
  24. package/dist/cli/commands/batch.js +36 -8
  25. package/dist/cli/commands/batch.js.map +1 -1
  26. package/dist/cli/commands/scaffold-kb.d.ts +9 -0
  27. package/dist/cli/commands/scaffold-kb.d.ts.map +1 -0
  28. package/dist/cli/commands/scaffold-kb.js +179 -0
  29. package/dist/cli/commands/scaffold-kb.js.map +1 -0
  30. package/dist/cli/index.js +24 -5
  31. package/dist/cli/index.js.map +1 -1
  32. package/dist/cli/utils/error-handler.d.ts +0 -6
  33. package/dist/cli/utils/error-handler.d.ts.map +1 -1
  34. package/dist/cli/utils/error-handler.js +0 -13
  35. package/dist/cli/utils/error-handler.js.map +1 -1
  36. package/dist/cli/utils/parse-args.d.ts +43 -3
  37. package/dist/cli/utils/parse-args.d.ts.map +1 -1
  38. package/dist/cli/utils/parse-args.js +98 -12
  39. package/dist/cli/utils/parse-args.js.map +1 -1
  40. package/dist/cli/version-meta.d.ts +16 -0
  41. package/dist/cli/version-meta.d.ts.map +1 -0
  42. package/dist/cli/version-meta.js +28 -0
  43. package/dist/cli/version-meta.js.map +1 -0
  44. package/dist/core/ast-analyzer.d.ts.map +1 -1
  45. package/dist/core/ast-analyzer.js +7 -11
  46. package/dist/core/ast-analyzer.js.map +1 -1
  47. package/dist/core/import-resolver.d.ts +70 -67
  48. package/dist/core/import-resolver.d.ts.map +1 -1
  49. package/dist/core/import-resolver.js +341 -200
  50. package/dist/core/import-resolver.js.map +1 -1
  51. package/dist/core/single-spec-orchestrator.d.ts +21 -0
  52. package/dist/core/single-spec-orchestrator.d.ts.map +1 -1
  53. package/dist/core/single-spec-orchestrator.js +41 -14
  54. package/dist/core/single-spec-orchestrator.js.map +1 -1
  55. package/dist/core/skeleton-hash.d.ts +33 -0
  56. package/dist/core/skeleton-hash.d.ts.map +1 -0
  57. package/dist/core/skeleton-hash.js +76 -0
  58. package/dist/core/skeleton-hash.js.map +1 -0
  59. package/dist/core/tree-sitter-analyzer.d.ts +3 -2
  60. package/dist/core/tree-sitter-analyzer.d.ts.map +1 -1
  61. package/dist/core/tree-sitter-analyzer.js +5 -6
  62. package/dist/core/tree-sitter-analyzer.js.map +1 -1
  63. package/dist/core/tree-sitter-fallback.d.ts +7 -2
  64. package/dist/core/tree-sitter-fallback.d.ts.map +1 -1
  65. package/dist/core/tree-sitter-fallback.js +18 -15
  66. package/dist/core/tree-sitter-fallback.js.map +1 -1
  67. package/dist/extraction/image-extractor.d.ts.map +1 -1
  68. package/dist/extraction/image-extractor.js +3 -1
  69. package/dist/extraction/image-extractor.js.map +1 -1
  70. package/dist/extraction/markdown-extractor.d.ts.map +1 -1
  71. package/dist/extraction/markdown-extractor.js +3 -1
  72. package/dist/extraction/markdown-extractor.js.map +1 -1
  73. package/dist/generator/frontmatter.d.ts +5 -0
  74. package/dist/generator/frontmatter.d.ts.map +1 -1
  75. package/dist/generator/frontmatter.js +4 -0
  76. package/dist/generator/frontmatter.js.map +1 -1
  77. package/dist/kb-mcp/index.d.ts +14 -0
  78. package/dist/kb-mcp/index.d.ts.map +1 -0
  79. package/dist/kb-mcp/index.js +24 -0
  80. package/dist/kb-mcp/index.js.map +1 -0
  81. package/dist/kb-mcp/lib/kb-error.d.ts +21 -0
  82. package/dist/kb-mcp/lib/kb-error.d.ts.map +1 -0
  83. package/dist/kb-mcp/lib/kb-error.js +28 -0
  84. package/dist/kb-mcp/lib/kb-error.js.map +1 -0
  85. package/dist/kb-mcp/lib/kb-locator.d.ts +58 -0
  86. package/dist/kb-mcp/lib/kb-locator.d.ts.map +1 -0
  87. package/dist/kb-mcp/lib/kb-locator.js +85 -0
  88. package/dist/kb-mcp/lib/kb-locator.js.map +1 -0
  89. package/dist/kb-mcp/lib/result-merger.d.ts +35 -0
  90. package/dist/kb-mcp/lib/result-merger.d.ts.map +1 -0
  91. package/dist/kb-mcp/lib/result-merger.js +64 -0
  92. package/dist/kb-mcp/lib/result-merger.js.map +1 -0
  93. package/dist/kb-mcp/server.d.ts +12 -0
  94. package/dist/kb-mcp/server.d.ts.map +1 -0
  95. package/dist/kb-mcp/server.js +29 -0
  96. package/dist/kb-mcp/server.js.map +1 -0
  97. package/dist/kb-mcp/tools/kb-api-lookup.d.ts +28 -0
  98. package/dist/kb-mcp/tools/kb-api-lookup.d.ts.map +1 -0
  99. package/dist/kb-mcp/tools/kb-api-lookup.js +237 -0
  100. package/dist/kb-mcp/tools/kb-api-lookup.js.map +1 -0
  101. package/dist/kb-mcp/tools/kb-doc-lookup.d.ts +20 -0
  102. package/dist/kb-mcp/tools/kb-doc-lookup.d.ts.map +1 -0
  103. package/dist/kb-mcp/tools/kb-doc-lookup.js +92 -0
  104. package/dist/kb-mcp/tools/kb-doc-lookup.js.map +1 -0
  105. package/dist/kb-mcp/tools/kb-search.d.ts +23 -0
  106. package/dist/kb-mcp/tools/kb-search.d.ts.map +1 -0
  107. package/dist/kb-mcp/tools/kb-search.js +126 -0
  108. package/dist/kb-mcp/tools/kb-search.js.map +1 -0
  109. package/dist/knowledge-graph/import-resolver.d.ts +11 -86
  110. package/dist/knowledge-graph/import-resolver.d.ts.map +1 -1
  111. package/dist/knowledge-graph/import-resolver.js +10 -333
  112. package/dist/knowledge-graph/import-resolver.js.map +1 -1
  113. package/dist/knowledge-graph/incremental.d.ts +25 -4
  114. package/dist/knowledge-graph/incremental.d.ts.map +1 -1
  115. package/dist/knowledge-graph/incremental.js +37 -15
  116. package/dist/knowledge-graph/incremental.js.map +1 -1
  117. package/dist/knowledge-graph/index.d.ts +11 -0
  118. package/dist/knowledge-graph/index.d.ts.map +1 -1
  119. package/dist/knowledge-graph/index.js +43 -1
  120. package/dist/knowledge-graph/index.js.map +1 -1
  121. package/dist/knowledge-graph/module-derivation.d.ts +14 -0
  122. package/dist/knowledge-graph/module-derivation.d.ts.map +1 -1
  123. package/dist/knowledge-graph/module-derivation.js +44 -44
  124. package/dist/knowledge-graph/module-derivation.js.map +1 -1
  125. package/dist/knowledge-graph/persistence.d.ts +56 -16
  126. package/dist/knowledge-graph/persistence.d.ts.map +1 -1
  127. package/dist/knowledge-graph/persistence.js +86 -32
  128. package/dist/knowledge-graph/persistence.js.map +1 -1
  129. package/dist/knowledge-graph/query-helpers.d.ts +39 -12
  130. package/dist/knowledge-graph/query-helpers.d.ts.map +1 -1
  131. package/dist/knowledge-graph/query-helpers.js +199 -34
  132. package/dist/knowledge-graph/query-helpers.js.map +1 -1
  133. package/dist/knowledge-graph/relativize.d.ts +51 -0
  134. package/dist/knowledge-graph/relativize.d.ts.map +1 -0
  135. package/dist/knowledge-graph/relativize.js +104 -0
  136. package/dist/knowledge-graph/relativize.js.map +1 -0
  137. package/dist/mcp/agent-context-tools.d.ts +3 -54
  138. package/dist/mcp/agent-context-tools.d.ts.map +1 -1
  139. package/dist/mcp/agent-context-tools.js +141 -189
  140. package/dist/mcp/agent-context-tools.js.map +1 -1
  141. package/dist/mcp/file-nav-tools.d.ts +42 -0
  142. package/dist/mcp/file-nav-tools.d.ts.map +1 -0
  143. package/dist/mcp/file-nav-tools.js +318 -0
  144. package/dist/mcp/file-nav-tools.js.map +1 -0
  145. package/dist/mcp/graph-tools.d.ts +2 -0
  146. package/dist/mcp/graph-tools.d.ts.map +1 -1
  147. package/dist/mcp/graph-tools.js +134 -123
  148. package/dist/mcp/graph-tools.js.map +1 -1
  149. package/dist/mcp/lib/file-nav-helpers.d.ts +128 -0
  150. package/dist/mcp/lib/file-nav-helpers.d.ts.map +1 -0
  151. package/dist/mcp/lib/file-nav-helpers.js +305 -0
  152. package/dist/mcp/lib/file-nav-helpers.js.map +1 -0
  153. package/dist/mcp/lib/telemetry.d.ts +69 -0
  154. package/dist/mcp/lib/telemetry.d.ts.map +1 -0
  155. package/dist/mcp/lib/telemetry.js +113 -0
  156. package/dist/mcp/lib/telemetry.js.map +1 -0
  157. package/dist/mcp/lib/tool-response.d.ts +46 -0
  158. package/dist/mcp/lib/tool-response.d.ts.map +1 -0
  159. package/dist/mcp/lib/tool-response.js +83 -0
  160. package/dist/mcp/lib/tool-response.js.map +1 -0
  161. package/dist/mcp/server.d.ts +13 -2
  162. package/dist/mcp/server.d.ts.map +1 -1
  163. package/dist/mcp/server.js +209 -150
  164. package/dist/mcp/server.js.map +1 -1
  165. package/dist/models/code-skeleton.d.ts +4 -2
  166. package/dist/models/code-skeleton.d.ts.map +1 -1
  167. package/dist/models/code-skeleton.js +2 -1
  168. package/dist/models/code-skeleton.js.map +1 -1
  169. package/dist/models/module-spec.d.ts +18 -0
  170. package/dist/models/module-spec.d.ts.map +1 -1
  171. package/dist/models/module-spec.js +6 -0
  172. package/dist/models/module-spec.js.map +1 -1
  173. package/dist/panoramic/builders/doc-graph-builder.d.ts +13 -0
  174. package/dist/panoramic/builders/doc-graph-builder.d.ts.map +1 -1
  175. package/dist/panoramic/builders/doc-graph-builder.js +20 -0
  176. package/dist/panoramic/builders/doc-graph-builder.js.map +1 -1
  177. package/dist/panoramic/graph/graph-builder.d.ts +72 -2
  178. package/dist/panoramic/graph/graph-builder.d.ts.map +1 -1
  179. package/dist/panoramic/graph/graph-builder.js +257 -51
  180. package/dist/panoramic/graph/graph-builder.js.map +1 -1
  181. package/dist/panoramic/graph/graph-query.d.ts +16 -0
  182. package/dist/panoramic/graph/graph-query.d.ts.map +1 -1
  183. package/dist/panoramic/graph/graph-query.js +49 -1
  184. package/dist/panoramic/graph/graph-query.js.map +1 -1
  185. package/dist/panoramic/graph/index.d.ts +2 -1
  186. package/dist/panoramic/graph/index.d.ts.map +1 -1
  187. package/dist/panoramic/graph/index.js +1 -1
  188. package/dist/panoramic/graph/index.js.map +1 -1
  189. package/dist/panoramic/pipelines/adr-evidence-verifier.d.ts.map +1 -1
  190. package/dist/panoramic/pipelines/adr-evidence-verifier.js +1 -29
  191. package/dist/panoramic/pipelines/adr-evidence-verifier.js.map +1 -1
  192. package/dist/panoramic/query.d.ts +1 -0
  193. package/dist/panoramic/query.d.ts.map +1 -1
  194. package/dist/panoramic/query.js +5 -0
  195. package/dist/panoramic/query.js.map +1 -1
  196. package/dist/scaffold-kb/api-entities-serializer.d.ts +12 -0
  197. package/dist/scaffold-kb/api-entities-serializer.d.ts.map +1 -0
  198. package/dist/scaffold-kb/api-entities-serializer.js +144 -0
  199. package/dist/scaffold-kb/api-entities-serializer.js.map +1 -0
  200. package/dist/scaffold-kb/arbitration.d.ts +44 -0
  201. package/dist/scaffold-kb/arbitration.d.ts.map +1 -0
  202. package/dist/scaffold-kb/arbitration.js +144 -0
  203. package/dist/scaffold-kb/arbitration.js.map +1 -0
  204. package/dist/scaffold-kb/chunk-splitter.d.ts +20 -0
  205. package/dist/scaffold-kb/chunk-splitter.d.ts.map +1 -0
  206. package/dist/scaffold-kb/chunk-splitter.js +309 -0
  207. package/dist/scaffold-kb/chunk-splitter.js.map +1 -0
  208. package/dist/scaffold-kb/doc-graph-builder.d.ts +26 -0
  209. package/dist/scaffold-kb/doc-graph-builder.d.ts.map +1 -0
  210. package/dist/scaffold-kb/doc-graph-builder.js +72 -0
  211. package/dist/scaffold-kb/doc-graph-builder.js.map +1 -0
  212. package/dist/scaffold-kb/entity-extractor.d.ts +40 -0
  213. package/dist/scaffold-kb/entity-extractor.d.ts.map +1 -0
  214. package/dist/scaffold-kb/entity-extractor.js +0 -0
  215. package/dist/scaffold-kb/entity-extractor.js.map +1 -0
  216. package/dist/scaffold-kb/entity-heuristic.d.ts +14 -0
  217. package/dist/scaffold-kb/entity-heuristic.d.ts.map +1 -0
  218. package/dist/scaffold-kb/entity-heuristic.js +107 -0
  219. package/dist/scaffold-kb/entity-heuristic.js.map +1 -0
  220. package/dist/scaffold-kb/entity-matcher.d.ts +20 -0
  221. package/dist/scaffold-kb/entity-matcher.d.ts.map +1 -0
  222. package/dist/scaffold-kb/entity-matcher.js +53 -0
  223. package/dist/scaffold-kb/entity-matcher.js.map +1 -0
  224. package/dist/scaffold-kb/entity-util.d.ts +11 -0
  225. package/dist/scaffold-kb/entity-util.d.ts.map +1 -0
  226. package/dist/scaffold-kb/entity-util.js +23 -0
  227. package/dist/scaffold-kb/entity-util.js.map +1 -0
  228. package/dist/scaffold-kb/evidence-envelope.d.ts +17 -0
  229. package/dist/scaffold-kb/evidence-envelope.d.ts.map +1 -0
  230. package/dist/scaffold-kb/evidence-envelope.js +32 -0
  231. package/dist/scaffold-kb/evidence-envelope.js.map +1 -0
  232. package/dist/scaffold-kb/index.d.ts +20 -0
  233. package/dist/scaffold-kb/index.d.ts.map +1 -0
  234. package/dist/scaffold-kb/index.js +102 -0
  235. package/dist/scaffold-kb/index.js.map +1 -0
  236. package/dist/scaffold-kb/ingest/ingest-core.d.ts +47 -0
  237. package/dist/scaffold-kb/ingest/ingest-core.d.ts.map +1 -0
  238. package/dist/scaffold-kb/ingest/ingest-core.js +231 -0
  239. package/dist/scaffold-kb/ingest/ingest-core.js.map +1 -0
  240. package/dist/scaffold-kb/ingest/office-parser.d.ts +33 -0
  241. package/dist/scaffold-kb/ingest/office-parser.d.ts.map +1 -0
  242. package/dist/scaffold-kb/ingest/office-parser.js +187 -0
  243. package/dist/scaffold-kb/ingest/office-parser.js.map +1 -0
  244. package/dist/scaffold-kb/ingest/url-fetcher.d.ts +43 -0
  245. package/dist/scaffold-kb/ingest/url-fetcher.d.ts.map +1 -0
  246. package/dist/scaffold-kb/ingest/url-fetcher.js +245 -0
  247. package/dist/scaffold-kb/ingest/url-fetcher.js.map +1 -0
  248. package/dist/scaffold-kb/ingester.d.ts +38 -0
  249. package/dist/scaffold-kb/ingester.d.ts.map +1 -0
  250. package/dist/scaffold-kb/ingester.js +261 -0
  251. package/dist/scaffold-kb/ingester.js.map +1 -0
  252. package/dist/scaffold-kb/injection-format.d.ts +25 -0
  253. package/dist/scaffold-kb/injection-format.d.ts.map +1 -0
  254. package/dist/scaffold-kb/injection-format.js +55 -0
  255. package/dist/scaffold-kb/injection-format.js.map +1 -0
  256. package/dist/scaffold-kb/kb-writer.d.ts +13 -0
  257. package/dist/scaffold-kb/kb-writer.d.ts.map +1 -0
  258. package/dist/scaffold-kb/kb-writer.js +69 -0
  259. package/dist/scaffold-kb/kb-writer.js.map +1 -0
  260. package/dist/scaffold-kb/keyword-extract.d.ts +16 -0
  261. package/dist/scaffold-kb/keyword-extract.d.ts.map +1 -0
  262. package/dist/scaffold-kb/keyword-extract.js +49 -0
  263. package/dist/scaffold-kb/keyword-extract.js.map +1 -0
  264. package/dist/scaffold-kb/query-sanitizer.d.ts +28 -0
  265. package/dist/scaffold-kb/query-sanitizer.d.ts.map +1 -0
  266. package/dist/scaffold-kb/query-sanitizer.js +38 -0
  267. package/dist/scaffold-kb/query-sanitizer.js.map +1 -0
  268. package/dist/scaffold-kb/recall-eval.d.ts +48 -0
  269. package/dist/scaffold-kb/recall-eval.d.ts.map +1 -0
  270. package/dist/scaffold-kb/recall-eval.js +55 -0
  271. package/dist/scaffold-kb/recall-eval.js.map +1 -0
  272. package/dist/scaffold-kb/schema-compat.d.ts +22 -0
  273. package/dist/scaffold-kb/schema-compat.d.ts.map +1 -0
  274. package/dist/scaffold-kb/schema-compat.js +32 -0
  275. package/dist/scaffold-kb/schema-compat.js.map +1 -0
  276. package/dist/scaffold-kb/search-core.d.ts +42 -0
  277. package/dist/scaffold-kb/search-core.d.ts.map +1 -0
  278. package/dist/scaffold-kb/search-core.js +89 -0
  279. package/dist/scaffold-kb/search-core.js.map +1 -0
  280. package/dist/scaffold-kb/sqlite-engine.d.ts +58 -0
  281. package/dist/scaffold-kb/sqlite-engine.d.ts.map +1 -0
  282. package/dist/scaffold-kb/sqlite-engine.js +61 -0
  283. package/dist/scaffold-kb/sqlite-engine.js.map +1 -0
  284. package/dist/scaffold-kb/sqlite-writer.d.ts +18 -0
  285. package/dist/scaffold-kb/sqlite-writer.d.ts.map +1 -0
  286. package/dist/scaffold-kb/sqlite-writer.js +76 -0
  287. package/dist/scaffold-kb/sqlite-writer.js.map +1 -0
  288. package/dist/scaffold-kb/tokenizer.d.ts +26 -0
  289. package/dist/scaffold-kb/tokenizer.d.ts.map +1 -0
  290. package/dist/scaffold-kb/tokenizer.js +97 -0
  291. package/dist/scaffold-kb/tokenizer.js.map +1 -0
  292. package/dist/scaffold-kb/types.d.ts +157 -0
  293. package/dist/scaffold-kb/types.d.ts.map +1 -0
  294. package/dist/scaffold-kb/types.js +5 -0
  295. package/dist/scaffold-kb/types.js.map +1 -0
  296. package/dist/utils/file-scanner.d.ts +15 -0
  297. package/dist/utils/file-scanner.d.ts.map +1 -1
  298. package/dist/utils/file-scanner.js +17 -0
  299. package/dist/utils/file-scanner.js.map +1 -1
  300. package/dist/utils/string-distance.d.ts +20 -0
  301. package/dist/utils/string-distance.d.ts.map +1 -0
  302. package/dist/utils/string-distance.js +38 -0
  303. package/dist/utils/string-distance.js.map +1 -0
  304. package/package.json +11 -2
  305. package/plugins/demo-kb-en/.claude-plugin/plugin.json +11 -0
  306. package/plugins/demo-kb-en/.mcp.json +8 -0
  307. package/plugins/demo-kb-en/FIXTURE.json +23 -0
  308. package/plugins/demo-kb-en/FIXTURE.md +53 -0
  309. package/plugins/demo-kb-en/ingest-samples/meeting-notes.md +13 -0
  310. package/plugins/demo-kb-en/kb/api-entities.json +3445 -0
  311. package/plugins/demo-kb-en/kb/chunks.sqlite +0 -0
  312. package/plugins/demo-kb-en/kb/doc-graph.json +113 -0
  313. package/plugins/demo-kb-zh/.claude-plugin/plugin.json +11 -0
  314. package/plugins/demo-kb-zh/.mcp.json +8 -0
  315. package/plugins/demo-kb-zh/FIXTURE.json +23 -0
  316. package/plugins/demo-kb-zh/FIXTURE.md +63 -0
  317. package/plugins/demo-kb-zh/ingest-samples/meeting-notes.md +13 -0
  318. package/plugins/demo-kb-zh/kb/api-entities.json +990 -0
  319. package/plugins/demo-kb-zh/kb/chunks.sqlite +0 -0
  320. package/plugins/demo-kb-zh/kb/doc-graph.json +113 -0
  321. package/plugins/spec-driver/.claude-plugin/plugin.json +1 -1
  322. package/plugins/spec-driver/README.md +33 -1
  323. package/plugins/spec-driver/agents/verify.md +88 -0
  324. package/plugins/spec-driver/config/orchestration.yaml +39 -31
  325. package/plugins/spec-driver/contracts/orchestration-overrides-contract.yaml +27 -0
  326. package/plugins/spec-driver/contracts/orchestration-schema.mjs +272 -227
  327. package/plugins/spec-driver/contracts/wrapper-source-of-truth.yaml +3 -0
  328. package/plugins/spec-driver/hooks/hooks.json +9 -0
  329. package/plugins/spec-driver/hooks/stop-fix-compliance-check.sh +36 -0
  330. package/plugins/spec-driver/lib/delegation-contract.mjs +84 -0
  331. package/plugins/spec-driver/lib/orchestration-resolver.mjs +49 -0
  332. package/plugins/spec-driver/lib/orchestrator.mjs +29 -1
  333. package/plugins/spec-driver/scripts/codex-skills.sh +28 -28
  334. package/plugins/spec-driver/scripts/dev/spike-fix-compliance-e2e.mjs +130 -0
  335. package/plugins/spec-driver/scripts/fix-compliance-judge.mjs +415 -0
  336. package/plugins/spec-driver/scripts/generate-adoption-insights.mjs +48 -1
  337. package/plugins/spec-driver/scripts/goal-loop-cli.mjs +307 -0
  338. package/plugins/spec-driver/scripts/init-project.sh +56 -0
  339. package/plugins/spec-driver/scripts/kb-prequery.mjs +125 -0
  340. package/plugins/spec-driver/scripts/lib/config-schema.mjs +200 -94
  341. package/plugins/spec-driver/scripts/lib/ensure-gitignore.sh +277 -0
  342. package/plugins/spec-driver/scripts/lib/extract-wrapper-body.mjs +136 -0
  343. package/plugins/spec-driver/scripts/lib/fix-compliance-core.mjs +434 -0
  344. package/plugins/spec-driver/scripts/lib/fix-compliance-io.mjs +335 -0
  345. package/plugins/spec-driver/scripts/lib/goal-loop-core.mjs +783 -0
  346. package/plugins/spec-driver/scripts/lib/init-project-output.sh +28 -0
  347. package/plugins/spec-driver/scripts/lib/load-zod.mjs +62 -0
  348. package/plugins/spec-driver/scripts/lib/project-profile-resolver.mjs +141 -49
  349. package/plugins/spec-driver/scripts/lib/project-profile-schema.mjs +88 -54
  350. package/plugins/spec-driver/scripts/postinstall.sh +13 -1
  351. package/plugins/spec-driver/scripts/record-workflow-run.mjs +75 -0
  352. package/plugins/spec-driver/scripts/sync-delegation-contract.mjs +187 -0
  353. package/plugins/spec-driver/scripts/validate-orchestrator-models.mjs +156 -0
  354. package/plugins/spec-driver/scripts/validate-wrapper-sources.mjs +46 -1
  355. package/plugins/spec-driver/skills/spec-driver-feature/SKILL.md +292 -0
  356. package/plugins/spec-driver/skills/spec-driver-fix/SKILL.md +87 -8
  357. package/plugins/spec-driver/skills/spec-driver-implement/SKILL.md +8 -0
  358. package/plugins/spec-driver/skills/spec-driver-resume/SKILL.md +12 -1
  359. package/plugins/spec-driver/skills/spec-driver-story/SKILL.md +20 -0
  360. package/plugins/spec-driver/templates/delegation-contract.md +27 -0
  361. package/plugins/spec-driver/templates/goal-loop-override-template.yaml +284 -0
  362. package/plugins/spec-driver/templates/specify-base/project-context-template.yaml +10 -0
  363. package/plugins/spectra/.claude-plugin/plugin.json +1 -1
  364. package/plugins/spectra/README.md +1 -1
  365. package/templates/module-spec.hbs +1 -0
@@ -0,0 +1,113 @@
1
+ {
2
+ "schema_version": "1.0",
3
+ "source": "directory",
4
+ "built_at": "2026-06-16T06:31:36.714Z",
5
+ "sdk_version": "4.6.0",
6
+ "nodes": [
7
+ {
8
+ "id": "app-hono-object.md",
9
+ "title": "App - Hono",
10
+ "summary": null,
11
+ "tags": [],
12
+ "lang": "en",
13
+ "source_url": "/Users/connorlu/Desktop/.workspace2.nosync/cc-plugin-market/.claude/worktrees/frosty-jepsen-b346c5/plugins/demo-kb-en/source-docs/app-hono-object.md"
14
+ },
15
+ {
16
+ "id": "bearer-auth-middleware.md",
17
+ "title": "Bearer Auth Middleware",
18
+ "summary": null,
19
+ "tags": [],
20
+ "lang": "en",
21
+ "source_url": "/Users/connorlu/Desktop/.workspace2.nosync/cc-plugin-market/.claude/worktrees/frosty-jepsen-b346c5/plugins/demo-kb-en/source-docs/bearer-auth-middleware.md"
22
+ },
23
+ {
24
+ "id": "best-practices.md",
25
+ "title": "Best Practices",
26
+ "summary": null,
27
+ "tags": [],
28
+ "lang": "en",
29
+ "source_url": "/Users/connorlu/Desktop/.workspace2.nosync/cc-plugin-market/.claude/worktrees/frosty-jepsen-b346c5/plugins/demo-kb-en/source-docs/best-practices.md"
30
+ },
31
+ {
32
+ "id": "context.md",
33
+ "title": "Context",
34
+ "summary": null,
35
+ "tags": [],
36
+ "lang": "en",
37
+ "source_url": "/Users/connorlu/Desktop/.workspace2.nosync/cc-plugin-market/.claude/worktrees/frosty-jepsen-b346c5/plugins/demo-kb-en/source-docs/context.md"
38
+ },
39
+ {
40
+ "id": "cors-middleware.md",
41
+ "title": "CORS Middleware",
42
+ "summary": null,
43
+ "tags": [],
44
+ "lang": "en",
45
+ "source_url": "/Users/connorlu/Desktop/.workspace2.nosync/cc-plugin-market/.claude/worktrees/frosty-jepsen-b346c5/plugins/demo-kb-en/source-docs/cors-middleware.md"
46
+ },
47
+ {
48
+ "id": "exception-error-handling.md",
49
+ "title": "HTTPException",
50
+ "summary": null,
51
+ "tags": [],
52
+ "lang": "en",
53
+ "source_url": "/Users/connorlu/Desktop/.workspace2.nosync/cc-plugin-market/.claude/worktrees/frosty-jepsen-b346c5/plugins/demo-kb-en/source-docs/exception-error-handling.md"
54
+ },
55
+ {
56
+ "id": "getting-started.md",
57
+ "title": "Getting Started",
58
+ "summary": null,
59
+ "tags": [],
60
+ "lang": "en",
61
+ "source_url": "/Users/connorlu/Desktop/.workspace2.nosync/cc-plugin-market/.claude/worktrees/frosty-jepsen-b346c5/plugins/demo-kb-en/source-docs/getting-started.md"
62
+ },
63
+ {
64
+ "id": "jwt-helper.md",
65
+ "title": "JWT Authentication Helper",
66
+ "summary": null,
67
+ "tags": [],
68
+ "lang": "en",
69
+ "source_url": "/Users/connorlu/Desktop/.workspace2.nosync/cc-plugin-market/.claude/worktrees/frosty-jepsen-b346c5/plugins/demo-kb-en/source-docs/jwt-helper.md"
70
+ },
71
+ {
72
+ "id": "middleware-concept.md",
73
+ "title": "Middleware",
74
+ "summary": null,
75
+ "tags": [],
76
+ "lang": "en",
77
+ "source_url": "/Users/connorlu/Desktop/.workspace2.nosync/cc-plugin-market/.claude/worktrees/frosty-jepsen-b346c5/plugins/demo-kb-en/source-docs/middleware-concept.md"
78
+ },
79
+ {
80
+ "id": "request.md",
81
+ "title": "HonoRequest",
82
+ "summary": null,
83
+ "tags": [],
84
+ "lang": "en",
85
+ "source_url": "/Users/connorlu/Desktop/.workspace2.nosync/cc-plugin-market/.claude/worktrees/frosty-jepsen-b346c5/plugins/demo-kb-en/source-docs/request.md"
86
+ },
87
+ {
88
+ "id": "routing.md",
89
+ "title": "Routing",
90
+ "summary": null,
91
+ "tags": [],
92
+ "lang": "en",
93
+ "source_url": "/Users/connorlu/Desktop/.workspace2.nosync/cc-plugin-market/.claude/worktrees/frosty-jepsen-b346c5/plugins/demo-kb-en/source-docs/routing.md"
94
+ },
95
+ {
96
+ "id": "testing.md",
97
+ "title": "Testing",
98
+ "summary": null,
99
+ "tags": [],
100
+ "lang": "en",
101
+ "source_url": "/Users/connorlu/Desktop/.workspace2.nosync/cc-plugin-market/.claude/worktrees/frosty-jepsen-b346c5/plugins/demo-kb-en/source-docs/testing.md"
102
+ },
103
+ {
104
+ "id": "validation.md",
105
+ "title": "Validation",
106
+ "summary": null,
107
+ "tags": [],
108
+ "lang": "en",
109
+ "source_url": "/Users/connorlu/Desktop/.workspace2.nosync/cc-plugin-market/.claude/worktrees/frosty-jepsen-b346c5/plugins/demo-kb-en/source-docs/validation.md"
110
+ }
111
+ ],
112
+ "edges": []
113
+ }
@@ -0,0 +1,11 @@
1
+ {
2
+ "name": "demo-kb-zh",
3
+ "version": "0.1.0",
4
+ "description": "中文 SDK 知识库 demo fixture(测试用途,验证 scaffold-kb 构建与 KB MCP 分发路径)。基于某公开开源 SDK 的公开中文文档构建。",
5
+ "author": {
6
+ "name": "scaffold-kb-mvp-test"
7
+ },
8
+ "license": "Apache-2.0",
9
+ "keywords": ["kb", "demo", "scaffold-kb", "test-fixture"],
10
+ "_testOnly": true
11
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "mcpServers": {
3
+ "kb-zh": {
4
+ "command": "spectra",
5
+ "args": ["scaffold-kb", "serve", "--vendor-kb", "${CLAUDE_PLUGIN_ROOT}/kb"]
6
+ }
7
+ }
8
+ }
@@ -0,0 +1,23 @@
1
+ {
2
+ "manifest_version": "1.0",
3
+ "plugin": "demo-kb-zh",
4
+ "note": "F192 demo fixture 来源清单(机械可检,W-6)。每条 source MUST 有 license 或 synthetic:true;'无真实客户内容'以此承载,非空声称。",
5
+ "sources": [
6
+ {
7
+ "id": "vendor-docs",
8
+ "kind": "vendor-doc",
9
+ "origin": "https://echarts.apache.org/zh + apache/echarts-doc",
10
+ "license": "Apache-2.0",
11
+ "synthetic": false,
12
+ "note": "公开开源 SDK 文档(13 页)→ kb/ (doc-graph + chunks.sqlite FTS5 + api-entities.json)"
13
+ },
14
+ {
15
+ "id": "ingest-sample-minutes",
16
+ "kind": "minutes",
17
+ "origin": "ingest-samples/meeting-notes.md",
18
+ "license": null,
19
+ "synthetic": true,
20
+ "note": "F192 三方导入(scaffold-kb ingest --minutes)演示用合成纪要,纯虚构、无真实客户/公司/项目信息"
21
+ }
22
+ ]
23
+ }
@@ -0,0 +1,63 @@
1
+ # demo-kb-zh — 中文 demo fixture(Apache ECharts 文档)
2
+
3
+ 本目录是 Feature 190 `scaffold-kb` 的**中文 demo fixture**,用作一个**公开开源 SDK 文档**的代表性样例,用于演示 / 验证 `scaffold-kb build` 把中文 Markdown 文档目录构建为 `kb/`(`doc-graph.json` + `chunks.sqlite` FTS5 全文检索),重点验证中文分词与含点号配置项符号(如 `xAxis.axisLabel.formatter`)的检索能力。
4
+
5
+ > 本 fixture 仅作通用「开源 SDK 文档」演示用途,不绑定任何客户、行业或专属场景。Apache ECharts 是一个公开的 Apache-2.0 开源项目,在此作为「某个公开 SDK」的一个实例呈现。
6
+
7
+ > **F192 更新**:`kb/` 现额外含 **`api-entities.json`**(API 实体层,heuristic 抽取,供 `kb_api_lookup` 据文档查签名/参数/废弃,证据级非代码级);`ingest-samples/meeting-notes.md` 是**三方导入演示用合成纪要**(`scaffold-kb ingest --minutes`,纯虚构无客户内容);来源清单见机械可检的 `FIXTURE.json`。
8
+
9
+ ## 来源
10
+
11
+ - 上游项目:Apache ECharts(开源可视化图表库)
12
+ - 文档站(中文):https://echarts.apache.org/zh/index.html
13
+ - 教程页源码仓库:https://github.com/apache/echarts-doc (`zh/tutorial/` 目录,原始 Markdown)
14
+ - 配置项数据:https://echarts.apache.org/zh/documents/option-parts/option.*.json (官方文档站发布的配置项手册结构化数据)
15
+ - License:**Apache License 2.0**(https://github.com/apache/echarts/blob/master/LICENSE ;文档仓库 apache/echarts-doc 同为 Apache-2.0)
16
+
17
+ ## 页数与规模
18
+
19
+ - 页数:**13 页**(`source-docs/*.md`)
20
+ - 8 篇教程页:快速上手、基础概念、初始化 `echarts.init` / `setOption`、样式、数据集 `dataset`、视觉映射、事件、异步更新、Canvas/SVG 渲染选择
21
+ - 5 篇配置项页:`option.xAxis` / `option.yAxis` / `option.series`(折线)/ `option.tooltip` / `option.legend`,含大量点号配置项符号(如 `xAxis.axisLabel.formatter`、`tooltip.formatter`、`series.label.formatter`)
22
+ - 规模:远小于 50 页上限;构建出的 `chunks.sqlite` 远小于 10MB 上限
23
+
24
+ ## 来源页清单(slug ← 上游来源)
25
+
26
+ 教程页(apache/echarts-doc 仓库 `zh/tutorial/`,对应 echarts.apache.org/zh 渲染页):
27
+
28
+ | 本地文件 | 上游来源 |
29
+ |---------|---------|
30
+ | `getting-started.md` | https://echarts.apache.org/handbook/zh/get-started/ (源:`zh/tutorial/getting-started.md`) |
31
+ | `basic-concepts.md` | 源:`zh/tutorial/basic-concepts-overview.md` |
32
+ | `styling.md` | 源:`zh/tutorial/styling.md` |
33
+ | `dataset.md` | 源:`zh/tutorial/dataset.md` |
34
+ | `visual-map.md` | 源:`zh/tutorial/visual-map.md` |
35
+ | `event.md` | 源:`zh/tutorial/event.md` |
36
+ | `dynamic-data.md` | 源:`zh/tutorial/dynamic-data.md` |
37
+ | `renderer.md` | 源:`zh/tutorial/renderer.md` |
38
+
39
+ 配置项页(数据源:官方文档站 option-parts JSON):
40
+
41
+ | 本地文件 | 上游来源 |
42
+ |---------|---------|
43
+ | `option-xaxis.md` | https://echarts.apache.org/zh/option.html#xAxis (数据:`option-parts/option.xAxis.json`) |
44
+ | `option-yaxis.md` | https://echarts.apache.org/zh/option.html#yAxis (数据:`option-parts/option.yAxis.json`) |
45
+ | `option-series-line.md` | https://echarts.apache.org/zh/option.html#series-line (数据:`option-parts/option.series-line.json`) |
46
+ | `option-tooltip.md` | https://echarts.apache.org/zh/option.html#tooltip (数据:`option-parts/option.tooltip.json`) |
47
+ | `option-legend.md` | https://echarts.apache.org/zh/option.html#legend (数据:`option-parts/option.legend.json`) |
48
+
49
+ ## 处理说明
50
+
51
+ - 教程页正文取自上游原始中文 Markdown,保留真实中文术语、代码示例与符号(`echarts.init`、`setOption`、`option.series`、`dataset.transform` 等)。仅清理了文档构建模板语法:`{{ target/use }}` 指令、`${...}` 站点变量、站内 `.html#` 链接折叠为可读锚文本(点号符号原样保留),代码块内 HTML/JS 示例完全未改动。
52
+ - 配置项页由官方 option-parts JSON 的真实中文描述(`desc` 字段)转换为 Markdown:每个配置项以完整点号路径(如 `option.xAxis.axisLabel.formatter`)作为小节标题,描述中的 HTML(`<code>` / `<pre>` 代码块 / `<table>` 表格 / 列表 / 引用)转为对应 Markdown。内容为官方原文,未编造任何 API。
53
+ - 每个文件首行为 `# <中文标题>`,供 `scaffold-kb` 提取 doc title。
54
+
55
+ ## 构建命令
56
+
57
+ ```bash
58
+ npx tsx src/cli/index.ts scaffold-kb build \
59
+ --dir plugins/demo-kb-zh/source-docs \
60
+ --output plugins/demo-kb-zh/kb
61
+ ```
62
+
63
+ 产物:`kb/doc-graph.json` + `kb/chunks.sqlite`。
@@ -0,0 +1,13 @@
1
+ # 集成评审会议纪要(演示用合成内容)
2
+
3
+ > 本文件为 **F192 三方导入(`scaffold-kb ingest --minutes`)演示用合成样例**,内容纯属虚构、不含任何真实客户/公司/项目信息,仅展示「把会议纪要纳入项目库」的能力与 provenance 标注。
4
+
5
+ ## 约定事项
6
+
7
+ - `setOption` 在本项目里约定每次全量传入,不依赖增量 merge(与上游默认行为不同,属本项目现场约束)。
8
+ - 初始化统一走 `createChart(dom, options)`,dom 必须已设置显式高度,否则渲染为 0 高。
9
+ - 错误码 `E1001` 在本项目环境下通常是容器未挂载导致,优先排查 DOM 生命周期。
10
+
11
+ ## 待办
12
+
13
+ - 评估 `dispose()` 后重建实例的开销,确认是否需要实例池。