@specship/specship-darwin-arm64 0.28.0 → 0.30.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 (324) hide show
  1. package/bin/specship +1 -1
  2. package/lib/dist/.claude-plugin/plugin.json +15 -3
  3. package/lib/dist/activation/cheatsheet.d.ts +10 -7
  4. package/lib/dist/activation/cheatsheet.d.ts.map +1 -1
  5. package/lib/dist/activation/cheatsheet.js +21 -5
  6. package/lib/dist/activation/cheatsheet.js.map +1 -1
  7. package/lib/dist/activation/hook-output.d.ts +75 -2
  8. package/lib/dist/activation/hook-output.d.ts.map +1 -1
  9. package/lib/dist/activation/hook-output.js +114 -3
  10. package/lib/dist/activation/hook-output.js.map +1 -1
  11. package/lib/dist/activation/search-intercept.d.ts +20 -7
  12. package/lib/dist/activation/search-intercept.d.ts.map +1 -1
  13. package/lib/dist/activation/search-intercept.js +27 -5
  14. package/lib/dist/activation/search-intercept.js.map +1 -1
  15. package/lib/dist/activation/steering.d.ts +7 -4
  16. package/lib/dist/activation/steering.d.ts.map +1 -1
  17. package/lib/dist/activation/steering.js +10 -8
  18. package/lib/dist/activation/steering.js.map +1 -1
  19. package/lib/dist/agents/detect.d.ts +32 -0
  20. package/lib/dist/agents/detect.d.ts.map +1 -0
  21. package/lib/dist/agents/detect.js +54 -0
  22. package/lib/dist/agents/detect.js.map +1 -0
  23. package/lib/dist/agents/recent-project.d.ts +18 -0
  24. package/lib/dist/agents/recent-project.d.ts.map +1 -0
  25. package/lib/dist/agents/recent-project.js +92 -0
  26. package/lib/dist/agents/recent-project.js.map +1 -0
  27. package/lib/dist/analytics/canonical-tools.d.ts +23 -0
  28. package/lib/dist/analytics/canonical-tools.d.ts.map +1 -0
  29. package/lib/dist/analytics/canonical-tools.js +36 -0
  30. package/lib/dist/analytics/canonical-tools.js.map +1 -0
  31. package/lib/dist/analytics/canonical-tools.json +16 -0
  32. package/lib/dist/analytics/specship-impact.d.ts +3 -2
  33. package/lib/dist/analytics/specship-impact.d.ts.map +1 -1
  34. package/lib/dist/analytics/specship-impact.js +6 -4
  35. package/lib/dist/analytics/specship-impact.js.map +1 -1
  36. package/lib/dist/bin/specship.js +252 -170
  37. package/lib/dist/bin/specship.js.map +1 -1
  38. package/lib/dist/bin/uninstall.js +2 -2
  39. package/lib/dist/bin/uninstall.js.map +1 -1
  40. package/lib/dist/claudemd/audit.d.ts +12 -3
  41. package/lib/dist/claudemd/audit.d.ts.map +1 -1
  42. package/lib/dist/claudemd/audit.js +65 -22
  43. package/lib/dist/claudemd/audit.js.map +1 -1
  44. package/lib/dist/commands/specship/spec.md +16 -1
  45. package/lib/dist/db/migrations.d.ts +1 -1
  46. package/lib/dist/db/migrations.d.ts.map +1 -1
  47. package/lib/dist/db/migrations.js +18 -4
  48. package/lib/dist/db/migrations.js.map +1 -1
  49. package/lib/dist/db/schema.sql +8 -0
  50. package/lib/dist/db/spec-queries.d.ts +13 -1
  51. package/lib/dist/db/spec-queries.d.ts.map +1 -1
  52. package/lib/dist/db/spec-queries.js +21 -0
  53. package/lib/dist/db/spec-queries.js.map +1 -1
  54. package/lib/dist/design-md/check.d.ts +51 -0
  55. package/lib/dist/design-md/check.d.ts.map +1 -0
  56. package/lib/dist/design-md/check.js +335 -0
  57. package/lib/dist/design-md/check.js.map +1 -0
  58. package/lib/dist/design-md/css.d.ts +40 -0
  59. package/lib/dist/design-md/css.d.ts.map +1 -0
  60. package/lib/dist/design-md/css.js +224 -0
  61. package/lib/dist/design-md/css.js.map +1 -0
  62. package/lib/dist/design-md/extract.d.ts +84 -0
  63. package/lib/dist/design-md/extract.d.ts.map +1 -0
  64. package/lib/dist/design-md/extract.js +595 -0
  65. package/lib/dist/design-md/extract.js.map +1 -0
  66. package/lib/dist/design-md/maintain.d.ts +45 -0
  67. package/lib/dist/design-md/maintain.d.ts.map +1 -0
  68. package/lib/dist/design-md/maintain.js +127 -0
  69. package/lib/dist/design-md/maintain.js.map +1 -0
  70. package/lib/dist/design-md/render.d.ts +28 -0
  71. package/lib/dist/design-md/render.d.ts.map +1 -0
  72. package/lib/dist/design-md/render.js +178 -0
  73. package/lib/dist/design-md/render.js.map +1 -0
  74. package/lib/dist/design-md/upkeep.d.ts +48 -0
  75. package/lib/dist/design-md/upkeep.d.ts.map +1 -0
  76. package/lib/dist/design-md/upkeep.js +169 -0
  77. package/lib/dist/design-md/upkeep.js.map +1 -0
  78. package/lib/dist/design-md/verify.d.ts +65 -0
  79. package/lib/dist/design-md/verify.d.ts.map +1 -0
  80. package/lib/dist/design-md/verify.js +311 -0
  81. package/lib/dist/design-md/verify.js.map +1 -0
  82. package/lib/dist/enforce/changed-files.d.ts +7 -0
  83. package/lib/dist/enforce/changed-files.d.ts.map +1 -1
  84. package/lib/dist/enforce/changed-files.js +17 -0
  85. package/lib/dist/enforce/changed-files.js.map +1 -1
  86. package/lib/dist/enforce/enforce.d.ts +35 -1
  87. package/lib/dist/enforce/enforce.d.ts.map +1 -1
  88. package/lib/dist/enforce/enforce.js +66 -2
  89. package/lib/dist/enforce/enforce.js.map +1 -1
  90. package/lib/dist/extraction/index.d.ts +50 -4
  91. package/lib/dist/extraction/index.d.ts.map +1 -1
  92. package/lib/dist/extraction/index.js +105 -13
  93. package/lib/dist/extraction/index.js.map +1 -1
  94. package/lib/dist/extraction/parse-warnings.d.ts +16 -0
  95. package/lib/dist/extraction/parse-warnings.d.ts.map +1 -0
  96. package/lib/dist/extraction/parse-warnings.js +30 -0
  97. package/lib/dist/extraction/parse-warnings.js.map +1 -0
  98. package/lib/dist/extraction/tree-sitter.d.ts +27 -0
  99. package/lib/dist/extraction/tree-sitter.d.ts.map +1 -1
  100. package/lib/dist/extraction/tree-sitter.js +168 -1
  101. package/lib/dist/extraction/tree-sitter.js.map +1 -1
  102. package/lib/dist/health/smoke-check.js +1 -1
  103. package/lib/dist/health/smoke-check.js.map +1 -1
  104. package/lib/dist/hooks/hooks.json +16 -1
  105. package/lib/dist/index.d.ts +63 -3
  106. package/lib/dist/index.d.ts.map +1 -1
  107. package/lib/dist/index.js +235 -9
  108. package/lib/dist/index.js.map +1 -1
  109. package/lib/dist/installer/agent-record.d.ts +80 -0
  110. package/lib/dist/installer/agent-record.d.ts.map +1 -0
  111. package/lib/dist/installer/agent-record.js +351 -0
  112. package/lib/dist/installer/agent-record.js.map +1 -0
  113. package/lib/dist/installer/auto-migrate.d.ts +56 -0
  114. package/lib/dist/installer/auto-migrate.d.ts.map +1 -0
  115. package/lib/dist/installer/auto-migrate.js +328 -0
  116. package/lib/dist/installer/auto-migrate.js.map +1 -0
  117. package/lib/dist/installer/index.d.ts +37 -8
  118. package/lib/dist/installer/index.d.ts.map +1 -1
  119. package/lib/dist/installer/index.js +156 -46
  120. package/lib/dist/installer/index.js.map +1 -1
  121. package/lib/dist/installer/install-defaults.d.ts +4 -3
  122. package/lib/dist/installer/install-defaults.d.ts.map +1 -1
  123. package/lib/dist/installer/install-defaults.js +6 -5
  124. package/lib/dist/installer/install-defaults.js.map +1 -1
  125. package/lib/dist/installer/{config-writer.d.ts → targets/claude-config-writer.d.ts} +1 -1
  126. package/lib/dist/installer/targets/claude-config-writer.d.ts.map +1 -0
  127. package/lib/dist/installer/{config-writer.js → targets/claude-config-writer.js} +7 -6
  128. package/lib/dist/installer/targets/claude-config-writer.js.map +1 -0
  129. package/lib/dist/installer/targets/claude-projects.d.ts +9 -0
  130. package/lib/dist/installer/targets/claude-projects.d.ts.map +1 -0
  131. package/lib/dist/installer/targets/claude-projects.js +151 -0
  132. package/lib/dist/installer/targets/claude-projects.js.map +1 -0
  133. package/lib/dist/installer/targets/claude.d.ts +29 -2
  134. package/lib/dist/installer/targets/claude.d.ts.map +1 -1
  135. package/lib/dist/installer/targets/claude.js +44 -20
  136. package/lib/dist/installer/targets/claude.js.map +1 -1
  137. package/lib/dist/installer/targets/feature-parity.d.ts +28 -0
  138. package/lib/dist/installer/targets/feature-parity.d.ts.map +1 -0
  139. package/lib/dist/installer/targets/feature-parity.js +32 -0
  140. package/lib/dist/installer/targets/feature-parity.js.map +1 -0
  141. package/lib/dist/installer/{gemini-commands.d.ts → targets/gemini-commands.d.ts} +7 -3
  142. package/lib/dist/installer/targets/gemini-commands.d.ts.map +1 -0
  143. package/lib/dist/installer/{gemini-commands.js → targets/gemini-commands.js} +37 -9
  144. package/lib/dist/installer/targets/gemini-commands.js.map +1 -0
  145. package/lib/dist/installer/targets/gemini-projects.d.ts +11 -0
  146. package/lib/dist/installer/targets/gemini-projects.d.ts.map +1 -0
  147. package/lib/dist/installer/targets/gemini-projects.js +84 -0
  148. package/lib/dist/installer/targets/gemini-projects.js.map +1 -0
  149. package/lib/dist/installer/targets/gemini.d.ts +94 -8
  150. package/lib/dist/installer/targets/gemini.d.ts.map +1 -1
  151. package/lib/dist/installer/targets/gemini.js +392 -33
  152. package/lib/dist/installer/targets/gemini.js.map +1 -1
  153. package/lib/dist/installer/targets/registry.d.ts +8 -1
  154. package/lib/dist/installer/targets/registry.d.ts.map +1 -1
  155. package/lib/dist/installer/targets/registry.js +14 -5
  156. package/lib/dist/installer/targets/registry.js.map +1 -1
  157. package/lib/dist/installer/targets/shared.d.ts +44 -1
  158. package/lib/dist/installer/targets/shared.d.ts.map +1 -1
  159. package/lib/dist/installer/targets/shared.js +130 -3
  160. package/lib/dist/installer/targets/shared.js.map +1 -1
  161. package/lib/dist/installer/targets/types.d.ts +23 -1
  162. package/lib/dist/installer/targets/types.d.ts.map +1 -1
  163. package/lib/dist/jira/auto-publish.d.ts +22 -2
  164. package/lib/dist/jira/auto-publish.d.ts.map +1 -1
  165. package/lib/dist/jira/auto-publish.js +54 -9
  166. package/lib/dist/jira/auto-publish.js.map +1 -1
  167. package/lib/dist/jira/board-first.d.ts +15 -2
  168. package/lib/dist/jira/board-first.d.ts.map +1 -1
  169. package/lib/dist/jira/board-first.js +16 -0
  170. package/lib/dist/jira/board-first.js.map +1 -1
  171. package/lib/dist/jira/ci-publish.d.ts +72 -0
  172. package/lib/dist/jira/ci-publish.d.ts.map +1 -0
  173. package/lib/dist/jira/ci-publish.js +162 -0
  174. package/lib/dist/jira/ci-publish.js.map +1 -0
  175. package/lib/dist/jira/publish.d.ts +23 -0
  176. package/lib/dist/jira/publish.d.ts.map +1 -1
  177. package/lib/dist/jira/publish.js +0 -0
  178. package/lib/dist/jira/publish.js.map +1 -1
  179. package/lib/dist/jira/regression-pack.d.ts.map +1 -1
  180. package/lib/dist/jira/regression-pack.js +7 -1
  181. package/lib/dist/jira/regression-pack.js.map +1 -1
  182. package/lib/dist/jira/repo-config.d.ts.map +1 -1
  183. package/lib/dist/jira/repo-config.js +8 -0
  184. package/lib/dist/jira/repo-config.js.map +1 -1
  185. package/lib/dist/jira/types.d.ts +8 -0
  186. package/lib/dist/jira/types.d.ts.map +1 -1
  187. package/lib/dist/jira/types.js.map +1 -1
  188. package/lib/dist/knowledge/enforce.d.ts.map +1 -1
  189. package/lib/dist/knowledge/enforce.js +6 -1
  190. package/lib/dist/knowledge/enforce.js.map +1 -1
  191. package/lib/dist/mcp/jira-tools.d.ts +5 -0
  192. package/lib/dist/mcp/jira-tools.d.ts.map +1 -1
  193. package/lib/dist/mcp/jira-tools.js +59 -4
  194. package/lib/dist/mcp/jira-tools.js.map +1 -1
  195. package/lib/dist/mcp/proxy.d.ts.map +1 -1
  196. package/lib/dist/mcp/proxy.js +2 -1
  197. package/lib/dist/mcp/proxy.js.map +1 -1
  198. package/lib/dist/mcp/server-instructions.d.ts +16 -10
  199. package/lib/dist/mcp/server-instructions.d.ts.map +1 -1
  200. package/lib/dist/mcp/server-instructions.js +69 -20
  201. package/lib/dist/mcp/server-instructions.js.map +1 -1
  202. package/lib/dist/mcp/session.d.ts +11 -0
  203. package/lib/dist/mcp/session.d.ts.map +1 -1
  204. package/lib/dist/mcp/session.js +43 -1
  205. package/lib/dist/mcp/session.js.map +1 -1
  206. package/lib/dist/mcp/tools.d.ts.map +1 -1
  207. package/lib/dist/mcp/tools.js +8 -0
  208. package/lib/dist/mcp/tools.js.map +1 -1
  209. package/lib/dist/reflect/apply.d.ts +2 -2
  210. package/lib/dist/reflect/apply.d.ts.map +1 -1
  211. package/lib/dist/reflect/apply.js +6 -5
  212. package/lib/dist/reflect/apply.js.map +1 -1
  213. package/lib/dist/reflect/miner.d.ts.map +1 -1
  214. package/lib/dist/reflect/miner.js +28 -15
  215. package/lib/dist/reflect/miner.js.map +1 -1
  216. package/lib/dist/reflect/session-outcomes.d.ts.map +1 -1
  217. package/lib/dist/reflect/session-outcomes.js +8 -3
  218. package/lib/dist/reflect/session-outcomes.js.map +1 -1
  219. package/lib/dist/reflect/targets.d.ts.map +1 -1
  220. package/lib/dist/reflect/targets.js +25 -5
  221. package/lib/dist/reflect/targets.js.map +1 -1
  222. package/lib/dist/reflect/types.d.ts +7 -0
  223. package/lib/dist/reflect/types.d.ts.map +1 -1
  224. package/lib/dist/resolution/spec-link-resolver.d.ts +14 -2
  225. package/lib/dist/resolution/spec-link-resolver.d.ts.map +1 -1
  226. package/lib/dist/resolution/spec-link-resolver.js +13 -3
  227. package/lib/dist/resolution/spec-link-resolver.js.map +1 -1
  228. package/lib/dist/server/canonical-tools.js +50 -0
  229. package/lib/dist/server/cli.js +2 -2
  230. package/lib/dist/server/host-profiles.js +39 -0
  231. package/lib/dist/server/ingest/index.js +2 -1
  232. package/lib/dist/server/ingest/ingestor.js +195 -76
  233. package/lib/dist/server/ingest/project-paths.js +8 -2
  234. package/lib/dist/server/ingest/recorded-projects.js +43 -0
  235. package/lib/dist/server/ingest/specship-classify.js +7 -2
  236. package/lib/dist/server/ingest/transcripts/claude-jsonl.js +54 -0
  237. package/lib/dist/server/ingest/transcripts/claude.js +64 -0
  238. package/lib/dist/server/ingest/transcripts/gemini.js +469 -0
  239. package/lib/dist/server/ingest/transcripts/index.js +14 -0
  240. package/lib/dist/server/ingest/{parser.js → transcripts/shared.js} +3 -49
  241. package/lib/dist/server/ingest/transcripts/types.js +4 -0
  242. package/lib/dist/server/ingest/watcher.js +31 -30
  243. package/lib/dist/server/routes/claude.js +27 -10
  244. package/lib/dist/server/routes/graph.js +64 -3
  245. package/lib/dist/server/routes/mcp.js +57 -15
  246. package/lib/dist/server/routes/memory.js +54 -35
  247. package/lib/dist/server/routes/projects.js +78 -7
  248. package/lib/dist/server/routes/spec.js +125 -0
  249. package/lib/dist/server/server.js +8 -2
  250. package/lib/dist/skills/design-md/SKILL.md +172 -0
  251. package/lib/dist/skills/design-md/references/authored-sections.md +90 -0
  252. package/lib/dist/skills/design-md/references/sources.md +71 -0
  253. package/lib/dist/skills/spec-author/SKILL.md +1 -1
  254. package/lib/dist/skills/spec-author/references/gap-questions.md +1 -1
  255. package/lib/dist/spec-lint/lint.d.ts +26 -1
  256. package/lib/dist/spec-lint/lint.d.ts.map +1 -1
  257. package/lib/dist/spec-lint/lint.js +96 -7
  258. package/lib/dist/spec-lint/lint.js.map +1 -1
  259. package/lib/dist/spec-quality/postcheck.d.ts +7 -1
  260. package/lib/dist/spec-quality/postcheck.d.ts.map +1 -1
  261. package/lib/dist/spec-quality/postcheck.js +31 -0
  262. package/lib/dist/spec-quality/postcheck.js.map +1 -1
  263. package/lib/dist/sync/worktree.d.ts +48 -0
  264. package/lib/dist/sync/worktree.d.ts.map +1 -1
  265. package/lib/dist/sync/worktree.js +109 -0
  266. package/lib/dist/sync/worktree.js.map +1 -1
  267. package/lib/dist/ui/assets/bricolage-latin-C23fTOVi.woff2 +0 -0
  268. package/lib/dist/ui/assets/bricolage-latin-ext-B82pxkPf.woff2 +0 -0
  269. package/lib/dist/ui/assets/index-54vorjyq.css +1 -0
  270. package/lib/dist/ui/assets/index-BZQonCVb.js +52 -0
  271. package/lib/dist/ui/assets/space-grotesk-latin-DPT1xrvW.woff2 +0 -0
  272. package/lib/dist/ui/assets/space-grotesk-latin-ext-wJGaI8U0.woff2 +0 -0
  273. package/lib/dist/ui/index.html +2 -2
  274. package/lib/dist/update/updater.d.ts +6 -0
  275. package/lib/dist/update/updater.d.ts.map +1 -1
  276. package/lib/dist/update/updater.js +13 -1
  277. package/lib/dist/update/updater.js.map +1 -1
  278. package/lib/dist/workflows/agents/claude.d.ts +9 -0
  279. package/lib/dist/workflows/agents/claude.d.ts.map +1 -1
  280. package/lib/dist/workflows/agents/claude.js +22 -3
  281. package/lib/dist/workflows/agents/claude.js.map +1 -1
  282. package/lib/dist/workflows/agents/gemini-version.d.ts +18 -0
  283. package/lib/dist/workflows/agents/gemini-version.d.ts.map +1 -0
  284. package/lib/dist/workflows/agents/gemini-version.js +81 -0
  285. package/lib/dist/workflows/agents/gemini-version.js.map +1 -0
  286. package/lib/dist/workflows/agents/gemini.d.ts +1 -1
  287. package/lib/dist/workflows/agents/gemini.d.ts.map +1 -1
  288. package/lib/dist/workflows/agents/gemini.js +12 -2
  289. package/lib/dist/workflows/agents/gemini.js.map +1 -1
  290. package/lib/dist/workflows/agents/index.d.ts +2 -0
  291. package/lib/dist/workflows/agents/index.d.ts.map +1 -1
  292. package/lib/dist/workflows/agents/index.js +5 -0
  293. package/lib/dist/workflows/agents/index.js.map +1 -1
  294. package/lib/dist/workflows/agents/types.d.ts +13 -0
  295. package/lib/dist/workflows/agents/types.d.ts.map +1 -1
  296. package/lib/dist/workflows/agents/types.js.map +1 -1
  297. package/lib/dist/workflows/condition-evaluator.d.ts +8 -0
  298. package/lib/dist/workflows/condition-evaluator.d.ts.map +1 -1
  299. package/lib/dist/workflows/condition-evaluator.js +7 -0
  300. package/lib/dist/workflows/condition-evaluator.js.map +1 -1
  301. package/lib/dist/workflows/defaults/claude-design-implement.yaml +44 -15
  302. package/lib/dist/workflows/defaults/spec-author.yaml +9 -9
  303. package/lib/dist/workflows/defaults/spec-fix.yaml +8 -8
  304. package/lib/dist/workflows/defaults/spec-implement.yaml +54 -23
  305. package/lib/dist/workflows/defaults/spec-relink.yaml +5 -5
  306. package/lib/dist/workflows/defaults/spec-verify.yaml +3 -3
  307. package/lib/dist/workflows/executor.d.ts +7 -0
  308. package/lib/dist/workflows/executor.d.ts.map +1 -1
  309. package/lib/dist/workflows/executor.js +22 -5
  310. package/lib/dist/workflows/executor.js.map +1 -1
  311. package/lib/node_modules/.package-lock.json +1 -1
  312. package/lib/package.json +3 -2
  313. package/package.json +1 -1
  314. package/lib/dist/installer/config-writer.d.ts.map +0 -1
  315. package/lib/dist/installer/config-writer.js.map +0 -1
  316. package/lib/dist/installer/gemini-commands.d.ts.map +0 -1
  317. package/lib/dist/installer/gemini-commands.js.map +0 -1
  318. package/lib/dist/ui/assets/geist-cyrillic-ext-wght-normal-DjL33-gN.woff2 +0 -0
  319. package/lib/dist/ui/assets/geist-cyrillic-wght-normal-BEAKL7Jp.woff2 +0 -0
  320. package/lib/dist/ui/assets/geist-latin-ext-wght-normal-DC-KSUi6.woff2 +0 -0
  321. package/lib/dist/ui/assets/geist-latin-wght-normal-BgDaEnEv.woff2 +0 -0
  322. package/lib/dist/ui/assets/geist-vietnamese-wght-normal-6IgcOCM7.woff2 +0 -0
  323. package/lib/dist/ui/assets/index-BzuUWUAE.js +0 -50
  324. package/lib/dist/ui/assets/index-ezwX2EfG.css +0 -1
@@ -16,8 +16,8 @@ try {
16
16
  // Lazy require so any module-level error in the registry can't
17
17
  // bubble out and abort the npm uninstall.
18
18
  // eslint-disable-next-line @typescript-eslint/no-require-imports
19
- const { ALL_TARGETS } = require('../installer/targets/registry');
20
- for (const target of ALL_TARGETS) {
19
+ const { allTargets } = require('../installer/targets/registry');
20
+ for (const target of allTargets()) {
21
21
  if (!target.supportsLocation('global'))
22
22
  continue;
23
23
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"uninstall.js","sourceRoot":"","sources":["../../src/bin/uninstall.ts"],"names":[],"mappings":";;AACA;;;;;;;;;;;GAWG;AAEH,IAAI,CAAC;IACH,+DAA+D;IAC/D,0CAA0C;IAC1C,iEAAiE;IACjE,MAAM,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,+BAA+B,CACf,CAAC;IAEjD,KAAK,MAAM,MAAM,IAAI,WAAW,EAAE,CAAC;QACjC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAC;YAAE,SAAS;QACjD,IAAI,CAAC;YACH,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAC7B,CAAC;QAAC,MAAM,CAAC;YACP,gEAAgE;YAChE,0BAA0B;QAC5B,CAAC;IACH,CAAC;AACH,CAAC;AAAC,MAAM,CAAC;IACP,iEAAiE;IACjE,uDAAuD;AACzD,CAAC"}
1
+ {"version":3,"file":"uninstall.js","sourceRoot":"","sources":["../../src/bin/uninstall.ts"],"names":[],"mappings":";;AACA;;;;;;;;;;;GAWG;AAEH,IAAI,CAAC;IACH,+DAA+D;IAC/D,0CAA0C;IAC1C,iEAAiE;IACjE,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,+BAA+B,CACd,CAAC;IAEjD,KAAK,MAAM,MAAM,IAAI,UAAU,EAAE,EAAE,CAAC;QAClC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAC;YAAE,SAAS;QACjD,IAAI,CAAC;YACH,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAC7B,CAAC;QAAC,MAAM,CAAC;YACP,gEAAgE;YAChE,0BAA0B;QAC5B,CAAC;IACH,CAAC;AACH,CAAC;AAAC,MAAM,CAAC;IACP,iEAAiE;IACjE,uDAAuD;AACzD,CAAC"}
@@ -1,8 +1,9 @@
1
1
  /**
2
2
  * CLAUDE.md governance audit (CLAUDEMD-DOC).
3
3
  *
4
- * Deterministic structure/reference checks over a project's CLAUDE.md
5
- * hierarchy — root router + nested module files. Detection only: rewrites
4
+ * Deterministic structure/reference checks over a project's agent memory-file
5
+ * hierarchies — root router + nested module files — one per agent the project
6
+ * is set up for (REQ-AGENTSWITCH-003: CLAUDE.md, GEMINI.md). Detection only: rewrites
6
7
  * are drafted in-session through the check door and human-gated
7
8
  * (REQ-CLAUDEMD-004); nothing in this module writes to a CLAUDE.md.
8
9
  *
@@ -22,7 +23,7 @@ export interface ClaudeMdAudit {
22
23
  at: number;
23
24
  /** Fingerprint of the inputs that produced this audit (REQ-CLAUDEMD-001.A2). */
24
25
  hash: string;
25
- /** Project-relative paths of every CLAUDE.md discovered. */
26
+ /** Project-relative paths of every agent memory file discovered. */
26
27
  files: string[];
27
28
  findings: ClaudeMdFinding[];
28
29
  }
@@ -36,6 +37,14 @@ export declare function auditClaudeMd(projectRoot: string): ClaudeMdAudit;
36
37
  * Returns the current audit (fresh or cached) or null on any failure.
37
38
  */
38
39
  export declare function runClaudeMdAudit(projectRoot: string): ClaudeMdAudit | null;
40
+ /**
41
+ * The memory file a finding is about (REQ-AGENTSWITCH-003): the finding's own
42
+ * file when it is one, else the memory file its detail names (a
43
+ * module-candidate finding points at a directory).
44
+ */
45
+ export declare function findingMemoryFile(f: ClaudeMdFinding): string;
46
+ /** The distinct memory files an audit's findings are about, in registry order. */
47
+ export declare function auditMemoryFiles(audit: ClaudeMdAudit): string[];
39
48
  /** Reader for surfacing (sync --drift-summary, check door, status). */
40
49
  export declare function readClaudeMdAudit(projectRoot: string): ClaudeMdAudit | null;
41
50
  //# sourceMappingURL=audit.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"audit.d.ts","sourceRoot":"","sources":["../../src/claudemd/audit.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAOH,MAAM,MAAM,mBAAmB,GAC3B,cAAc,GACd,eAAe,GACf,iBAAiB,GACjB,aAAa,GACb,YAAY,GACZ,kBAAkB,CAAC;AAEvB,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,mBAAmB,CAAC;IAC1B,6EAA6E;IAC7E,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,CAAC,EAAE,CAAC,CAAC;IACL,EAAE,EAAE,MAAM,CAAC;IACX,gFAAgF;IAChF,IAAI,EAAE,MAAM,CAAC;IACb,4DAA4D;IAC5D,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,EAAE,eAAe,EAAE,CAAC;CAC7B;AAkHD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,aAAa,CAiGhE;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAY1E;AAED,uEAAuE;AACvE,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAG3E"}
1
+ {"version":3,"file":"audit.d.ts","sourceRoot":"","sources":["../../src/claudemd/audit.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAQH,MAAM,MAAM,mBAAmB,GAC3B,cAAc,GACd,eAAe,GACf,iBAAiB,GACjB,aAAa,GACb,YAAY,GACZ,kBAAkB,CAAC;AAEvB,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,mBAAmB,CAAC;IAC1B,6EAA6E;IAC7E,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,CAAC,EAAE,CAAC,CAAC;IACL,EAAE,EAAE,MAAM,CAAC;IACX,gFAAgF;IAChF,IAAI,EAAE,MAAM,CAAC;IACb,oEAAoE;IACpE,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,EAAE,eAAe,EAAE,CAAC;CAC7B;AAgID;;;GAGG;AACH,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,aAAa,CAwBhE;AA8FD;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAa1E;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,eAAe,GAAG,MAAM,CAK5D;AAED,kFAAkF;AAClF,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM,EAAE,CAG/D;AAED,uEAAuE;AACvE,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAG3E"}
@@ -2,8 +2,9 @@
2
2
  /**
3
3
  * CLAUDE.md governance audit (CLAUDEMD-DOC).
4
4
  *
5
- * Deterministic structure/reference checks over a project's CLAUDE.md
6
- * hierarchy — root router + nested module files. Detection only: rewrites
5
+ * Deterministic structure/reference checks over a project's agent memory-file
6
+ * hierarchies — root router + nested module files — one per agent the project
7
+ * is set up for (REQ-AGENTSWITCH-003: CLAUDE.md, GEMINI.md). Detection only: rewrites
7
8
  * are drafted in-session through the check door and human-gated
8
9
  * (REQ-CLAUDEMD-004); nothing in this module writes to a CLAUDE.md.
9
10
  *
@@ -47,11 +48,14 @@ var __importStar = (this && this.__importStar) || (function () {
47
48
  Object.defineProperty(exports, "__esModule", { value: true });
48
49
  exports.auditClaudeMd = auditClaudeMd;
49
50
  exports.runClaudeMdAudit = runClaudeMdAudit;
51
+ exports.findingMemoryFile = findingMemoryFile;
52
+ exports.auditMemoryFiles = auditMemoryFiles;
50
53
  exports.readClaudeMdAudit = readClaudeMdAudit;
51
54
  const fs = __importStar(require("fs"));
52
55
  const path = __importStar(require("path"));
53
56
  const paths_1 = require("../statusline/paths");
54
57
  const directory_1 = require("../directory");
58
+ const hook_output_1 = require("../activation/hook-output");
55
59
  /** Router bar for the root file; matches the claude-md-architect template. */
56
60
  const ROOT_MAX_LINES = 200;
57
61
  /** Cap for nested module files. */
@@ -60,7 +64,9 @@ const NESTED_MAX_LINES = 100;
60
64
  const DUP_MIN_CHARS = 30;
61
65
  const SKIP_DIRS = new Set([
62
66
  'node_modules', '.git', 'dist', 'build', 'out', 'coverage',
63
- '.specship', '.claude', 'vendor', 'target', '__pycache__',
67
+ '.specship', 'vendor', 'target', '__pycache__',
68
+ // Every agent's config dir is tool state, not project docs.
69
+ ...hook_output_1.ALL_HOST_TRAITS.map((t) => t.configDir),
64
70
  ]);
65
71
  /** Directory depth cap for discovery — CLAUDE.md nests are shallow by design. */
66
72
  const MAX_DEPTH = 4;
@@ -72,7 +78,8 @@ function auditPath(projectRoot) {
72
78
  * files and per-directory package-manifest presence for the
73
79
  * module-candidate check. Never throws — unreadable dirs are skipped.
74
80
  */
75
- function discover(projectRoot) {
81
+ function discover(projectRoot, hosts) {
82
+ const memoryFiles = new Set(hosts.map((h) => h.memoryFile));
76
83
  const claudeMds = [];
77
84
  const manifestDirs = [];
78
85
  const walk = (dir, depth) => {
@@ -93,7 +100,7 @@ function discover(projectRoot) {
93
100
  continue;
94
101
  walk(abs, depth + 1);
95
102
  }
96
- else if (e.name === 'CLAUDE.md') {
103
+ else if (memoryFiles.has(e.name)) {
97
104
  claudeMds.push(rel);
98
105
  }
99
106
  else if (depth > 0 && (e.name === 'package.json' || e.name === 'pyproject.toml' || e.name === 'Cargo.toml' || e.name === 'go.mod')) {
@@ -105,7 +112,7 @@ function discover(projectRoot) {
105
112
  return { claudeMds: claudeMds.sort(), manifestDirs: [...new Set(manifestDirs)].sort() };
106
113
  }
107
114
  /** Cheap non-crypto fingerprint over discovery + file stats (FNV-1a). */
108
- function fingerprint(projectRoot, claudeMds, manifestDirs) {
115
+ function fingerprint(projectRoot, claudeMds, manifestDirs, hosts) {
109
116
  let h = 0x811c9dc5;
110
117
  const mix = (s) => {
111
118
  for (let i = 0; i < s.length; i++) {
@@ -113,6 +120,13 @@ function fingerprint(projectRoot, claudeMds, manifestDirs) {
113
120
  h = Math.imul(h, 0x01000193);
114
121
  }
115
122
  };
123
+ // Which agents are audited changes the findings (a newly installed agent's
124
+ // missing root file), so it is part of the input. The default-host-only
125
+ // case mixes nothing, keeping pre-adapter fingerprints unchanged.
126
+ if (!(hosts.length === 1 && hosts[0] === hook_output_1.DEFAULT_HOST_TRAITS)) {
127
+ for (const host of hosts)
128
+ mix(`h:${host.id}`);
129
+ }
116
130
  for (const rel of claudeMds) {
117
131
  mix(rel);
118
132
  try {
@@ -170,9 +184,10 @@ function dupCandidates(body) {
170
184
  * Pure given the filesystem; never throws.
171
185
  */
172
186
  function auditClaudeMd(projectRoot) {
173
- const { claudeMds, manifestDirs } = discover(projectRoot);
187
+ const hosts = (0, hook_output_1.agentsInProject)(projectRoot);
188
+ const { claudeMds, manifestDirs } = discover(projectRoot, hosts);
174
189
  const findings = [];
175
- const hash = fingerprint(projectRoot, claudeMds, manifestDirs);
190
+ const hash = fingerprint(projectRoot, claudeMds, manifestDirs, hosts);
176
191
  const bodies = new Map();
177
192
  for (const rel of claudeMds) {
178
193
  try {
@@ -182,16 +197,27 @@ function auditClaudeMd(projectRoot) {
182
197
  /* unreadable — skip its content checks (REQ-CLAUDEMD-001.A3) */
183
198
  }
184
199
  }
185
- const rootRel = claudeMds.find((p) => p === 'CLAUDE.md') ?? null;
200
+ // Each agent's memory files form their own hierarchy (REQ-AGENTSWITCH-003):
201
+ // the root/nested, duplication and coverage checks never mix agents.
202
+ for (const host of hosts) {
203
+ const name = host.memoryFile;
204
+ const files = claudeMds.filter((p) => path.posix.basename(p) === name);
205
+ auditHierarchy(projectRoot, name, files, bodies, manifestDirs, findings);
206
+ }
207
+ return { v: 1, at: Date.now(), hash, files: claudeMds, findings };
208
+ }
209
+ /** The deterministic checks over one agent's memory-file hierarchy. */
210
+ function auditHierarchy(projectRoot, name, files, bodies, manifestDirs, findings) {
211
+ const rootRel = files.find((p) => p === name) ?? null;
186
212
  if (!rootRel) {
187
213
  findings.push({
188
214
  kind: 'missing-root',
189
- file: 'CLAUDE.md',
190
- detail: 'no root CLAUDE.md — sessions start without project grounding',
215
+ file: name,
216
+ detail: `no root ${name} — sessions start without project grounding`,
191
217
  });
192
218
  }
193
219
  // Size caps (root router bar / nested cap).
194
- for (const rel of claudeMds) {
220
+ for (const rel of files) {
195
221
  const body = bodies.get(rel);
196
222
  if (body === undefined)
197
223
  continue;
@@ -200,7 +226,7 @@ function auditClaudeMd(projectRoot) {
200
226
  findings.push({
201
227
  kind: 'root-too-long',
202
228
  file: rel,
203
- detail: `${lines} lines (router bar is ${ROOT_MAX_LINES}) — split module content into nested CLAUDE.md files`,
229
+ detail: `${lines} lines (router bar is ${ROOT_MAX_LINES}) — split module content into nested ${name} files`,
204
230
  });
205
231
  }
206
232
  else if (rel !== rootRel && lines > NESTED_MAX_LINES) {
@@ -214,7 +240,7 @@ function auditClaudeMd(projectRoot) {
214
240
  // Verbatim duplication root ↔ nested.
215
241
  if (rootRel) {
216
242
  const rootLines = dupCandidates(bodies.get(rootRel) ?? '');
217
- for (const rel of claudeMds) {
243
+ for (const rel of files) {
218
244
  if (rel === rootRel)
219
245
  continue;
220
246
  const body = bodies.get(rel);
@@ -231,10 +257,10 @@ function auditClaudeMd(projectRoot) {
231
257
  }
232
258
  }
233
259
  }
234
- // Stale path references. A mention resolves relative to the CLAUDE.md's
260
+ // Stale path references. A mention resolves relative to the memory file's
235
261
  // own directory first (nested files naturally use module-relative paths),
236
262
  // then the project root.
237
- for (const rel of claudeMds) {
263
+ for (const rel of files) {
238
264
  const body = bodies.get(rel);
239
265
  if (body === undefined)
240
266
  continue;
@@ -249,20 +275,19 @@ function auditClaudeMd(projectRoot) {
249
275
  }
250
276
  }
251
277
  }
252
- // Module candidates: own manifest, no own CLAUDE.md (and none in a parent
278
+ // Module candidates: own manifest, no own memory file (and none in a parent
253
279
  // BELOW root — root coverage alone is what makes it a candidate).
254
- const nestedDirs = new Set(claudeMds.filter((p) => p !== 'CLAUDE.md').map((p) => path.dirname(p).split(path.sep).join('/')));
280
+ const nestedDirs = new Set(files.filter((p) => p !== name).map((p) => path.dirname(p).split(path.sep).join('/')));
255
281
  for (const dir of manifestDirs) {
256
282
  const covered = [...nestedDirs].some((n) => dir === n || dir.startsWith(`${n}/`));
257
283
  if (!covered) {
258
284
  findings.push({
259
285
  kind: 'module-candidate',
260
286
  file: dir,
261
- detail: 'has its own package manifest but no CLAUDE.md — consider a nested file if it carries distinct invariants or verification',
287
+ detail: `has its own package manifest but no ${name} — consider a nested file if it carries distinct invariants or verification`,
262
288
  });
263
289
  }
264
290
  }
265
- return { v: 1, at: Date.now(), hash, files: claudeMds, findings };
266
291
  }
267
292
  /**
268
293
  * Sync-pass entry (REQ-CLAUDEMD-001): fingerprint-guarded, best-effort.
@@ -271,8 +296,9 @@ function auditClaudeMd(projectRoot) {
271
296
  function runClaudeMdAudit(projectRoot) {
272
297
  try {
273
298
  const stored = (0, paths_1.readJsonSafe)(auditPath(projectRoot));
274
- const { claudeMds, manifestDirs } = discover(projectRoot);
275
- const hash = fingerprint(projectRoot, claudeMds, manifestDirs);
299
+ const hosts = (0, hook_output_1.agentsInProject)(projectRoot);
300
+ const { claudeMds, manifestDirs } = discover(projectRoot, hosts);
301
+ const hash = fingerprint(projectRoot, claudeMds, manifestDirs, hosts);
276
302
  if (stored?.v === 1 && stored.hash === hash)
277
303
  return stored;
278
304
  const audit = auditClaudeMd(projectRoot);
@@ -283,6 +309,23 @@ function runClaudeMdAudit(projectRoot) {
283
309
  return null; // a governance pass must never affect the sync
284
310
  }
285
311
  }
312
+ /**
313
+ * The memory file a finding is about (REQ-AGENTSWITCH-003): the finding's own
314
+ * file when it is one, else the memory file its detail names (a
315
+ * module-candidate finding points at a directory).
316
+ */
317
+ function findingMemoryFile(f) {
318
+ const names = hook_output_1.ALL_HOST_TRAITS.map((h) => h.memoryFile);
319
+ const base = path.posix.basename(f.file);
320
+ if (names.includes(base))
321
+ return base;
322
+ return names.find((n) => f.detail.includes(n)) ?? hook_output_1.DEFAULT_HOST_TRAITS.memoryFile;
323
+ }
324
+ /** The distinct memory files an audit's findings are about, in registry order. */
325
+ function auditMemoryFiles(audit) {
326
+ const hit = new Set(audit.findings.map(findingMemoryFile));
327
+ return hook_output_1.ALL_HOST_TRAITS.map((h) => h.memoryFile).filter((n) => hit.has(n));
328
+ }
286
329
  /** Reader for surfacing (sync --drift-summary, check door, status). */
287
330
  function readClaudeMdAudit(projectRoot) {
288
331
  const a = (0, paths_1.readJsonSafe)(auditPath(projectRoot));
@@ -1 +1 @@
1
- {"version":3,"file":"audit.js","sourceRoot":"","sources":["../../src/claudemd/audit.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"audit.js","sourceRoot":"","sources":["../../src/claudemd/audit.ts"],"names":[],"mappings":"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"}
@@ -397,8 +397,14 @@ workflow and the `designer-loop` skill rather than re-explaining either.
397
397
  --input SLUG="<slug>"
398
398
  ```
399
399
 
400
+ Every path also writes `specs/<slug>/design.md` — the pixel-exact design
401
+ reference (every value verbatim, extracted by `specship design extract`, checked
402
+ by `specship design check`; follow the **`design-md` skill**). To capture or
403
+ refresh a design reference without authoring a spec, use that skill directly.
404
+
400
405
  When the workflow finishes it hands off with `/specship:spec implement <first REQ ID>`;
401
- the implementer reads `specs/<slug>/snapshot.html` for visual fidelity. After the
406
+ the implementer builds the UI from `specs/<slug>/design.md` (the spec's `design:`
407
+ frontmatter), with `snapshot.html` as the raw source. After the
402
408
  spec is written and synced, the shared **Post-write review** (above) runs like any
403
409
  other authoring path.
404
410
 
@@ -478,6 +484,15 @@ Steps for the gate:
478
484
  `specship workflow run`. The fix is named (either `jira.epicKey` in
479
485
  `specship.config.json` or a `specship_jira_pick <KEY>`).
480
486
 
487
+ **CI-publish repos (REQ-MULTIDEV-005).** When `specship.config.json` sets
488
+ `jira.publishFrom: "ci"`, JIRA issues are created only by CI on the publish
489
+ branch (`jira.publishBranch`, default `main`) after merge. Pass the spec's
490
+ frontmatter `epicKey` as `epic_key` to `specship_jira_anchor`: an epic-only
491
+ anchor (spec `epicKey` or the binding's `jira.epicKey`) then returns
492
+ `anchored` with source `epic-pending-ci` and no issue key — proceed with the
493
+ workflow, do not write a `jira:` key, and tell the user the spec stays
494
+ pending CI publication. With no epic anchor at all it is still refused.
495
+
481
496
  Note: `explore`, `search`, `callers`, `callees`, `impact`, `status`,
482
497
  `coverage`, and `track` are read-only retrieval and are NOT gated.
483
498
 
@@ -7,7 +7,7 @@ import { SqliteDatabase } from './sqlite-adapter';
7
7
  /**
8
8
  * Current schema version
9
9
  */
10
- export declare const CURRENT_SCHEMA_VERSION = 11;
10
+ export declare const CURRENT_SCHEMA_VERSION = 12;
11
11
  /**
12
12
  * Migration definition
13
13
  */
@@ -1 +1 @@
1
- {"version":3,"file":"migrations.d.ts","sourceRoot":"","sources":["../../src/db/migrations.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD;;GAEG;AACH,eAAO,MAAM,sBAAsB,KAAK,CAAC;AAEzC;;GAEG;AACH,UAAU,SAAS;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,EAAE,EAAE,CAAC,EAAE,EAAE,cAAc,KAAK,IAAI,CAAC;CAClC;AA4bD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,cAAc,GAAG,MAAM,CAU5D;AAWD;;GAEG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAiB3E;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,cAAc,GAAG,OAAO,CAG1D;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,cAAc,GAAG,SAAS,EAAE,CAKpE;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,EAAE,EAAE,cAAc,GACjB,KAAK,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC,CAU3E"}
1
+ {"version":3,"file":"migrations.d.ts","sourceRoot":"","sources":["../../src/db/migrations.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAGlD;;GAEG;AACH,eAAO,MAAM,sBAAsB,KAAK,CAAC;AAEzC;;GAEG;AACH,UAAU,SAAS;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,EAAE,EAAE,CAAC,EAAE,EAAE,cAAc,KAAK,IAAI,CAAC;CAClC;AA0cD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,cAAc,GAAG,MAAM,CAU5D;AAWD;;GAEG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAiB3E;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,cAAc,GAAG,OAAO,CAG1D;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,cAAc,GAAG,SAAS,EAAE,CAKpE;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,EAAE,EAAE,cAAc,GACjB,KAAK,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC,CAU3E"}
@@ -11,10 +11,11 @@ exports.runMigrations = runMigrations;
11
11
  exports.needsMigration = needsMigration;
12
12
  exports.getPendingMigrations = getPendingMigrations;
13
13
  exports.getMigrationHistory = getMigrationHistory;
14
+ const canonical_tools_1 = require("../analytics/canonical-tools");
14
15
  /**
15
16
  * Current schema version
16
17
  */
17
- exports.CURRENT_SCHEMA_VERSION = 11;
18
+ exports.CURRENT_SCHEMA_VERSION = 12;
18
19
  /**
19
20
  * All migrations in order
20
21
  *
@@ -247,7 +248,7 @@ const migrations = [
247
248
  },
248
249
  {
249
250
  version: 6,
250
- description: 'Add Claude Code transcript ingest tables (claude_projects/sessions/prompts/tool_calls/ingest_state/pricing) for analytics over ~/.claude/projects/*.jsonl',
251
+ description: 'Add transcript ingest tables (claude_projects/sessions/prompts/tool_calls/ingest_state/pricing) for analytics over the coding agent\'s local session transcripts',
251
252
  up: (db) => {
252
253
  db.exec(`
253
254
  CREATE TABLE IF NOT EXISTS claude_projects (
@@ -378,7 +379,7 @@ const migrations = [
378
379
  },
379
380
  {
380
381
  version: 8,
381
- description: 'Backfill claude_sessions.prompt_count from actual claude_prompts rows. The ingestor was bumping prompt_count once per user-type JSONL entry, but Claude Code emits one user entry per tool_result follow-up — all sharing the original promptId. A typical 50-prompt session landed with 800+ in prompt_count, making the Sessions list show inflated numbers vs. the actual rows visible in Session Detail. Re-run-safe.',
382
+ description: 'Backfill claude_sessions.prompt_count from actual claude_prompts rows. The ingestor was bumping prompt_count once per user-type JSONL entry, but the Claude transcript format emits one user entry per tool_result follow-up — all sharing the original promptId. A typical 50-prompt session landed with 800+ in prompt_count, making the Sessions list show inflated numbers vs. the actual rows visible in Session Detail. Re-run-safe.',
382
383
  up: (db) => {
383
384
  // No schema change — purely a data correction. Idempotent because
384
385
  // the source-of-truth is COUNT(*) over claude_prompts, so running
@@ -401,7 +402,8 @@ const migrations = [
401
402
  db.exec(`ALTER TABLE claude_tool_calls ADD COLUMN displaced_files TEXT;`); // JSON [[path,size],…] | NULL
402
403
  if (!hasColumn(db, 'claude_tool_calls', 'resolution'))
403
404
  db.exec(`ALTER TABLE claude_tool_calls ADD COLUMN resolution TEXT;`);
404
- db.exec(`UPDATE claude_tool_calls SET is_specship = 1 WHERE tool_name LIKE 'mcp__specship__%';`);
405
+ // tool_name holds the SHARED tool name (REQ-AGENTSWITCH-004), whose SpecShip prefix is canonical.
406
+ db.prepare(`UPDATE claude_tool_calls SET is_specship = 1 WHERE tool_name LIKE ?;`).run(`${canonical_tools_1.specshipToolPrefix}%`);
405
407
  db.exec(`CREATE INDEX IF NOT EXISTS idx_claude_tool_calls_specship ON claude_tool_calls(is_specship);`);
406
408
  },
407
409
  },
@@ -447,6 +449,18 @@ const migrations = [
447
449
  `);
448
450
  },
449
451
  },
452
+ {
453
+ version: 12,
454
+ description: 'Per-agent transcript adapters (REQ-AGENTSWITCH-004): host column on claude_sessions and claude_tool_calls, raw_tool_name on claude_tool_calls. Existing rows are sessions ingested before this change, whose tool names are already the shared names, so they keep host = claude and need no data change.',
455
+ up: (db) => {
456
+ if (!hasColumn(db, 'claude_sessions', 'host'))
457
+ db.exec(`ALTER TABLE claude_sessions ADD COLUMN host TEXT NOT NULL DEFAULT 'claude';`);
458
+ if (!hasColumn(db, 'claude_tool_calls', 'host'))
459
+ db.exec(`ALTER TABLE claude_tool_calls ADD COLUMN host TEXT NOT NULL DEFAULT 'claude';`);
460
+ if (!hasColumn(db, 'claude_tool_calls', 'raw_tool_name'))
461
+ db.exec(`ALTER TABLE claude_tool_calls ADD COLUMN raw_tool_name TEXT;`);
462
+ },
463
+ },
450
464
  ];
451
465
  /**
452
466
  * Get the current schema version from the database
@@ -1 +1 @@
1
- {"version":3,"file":"migrations.js","sourceRoot":"","sources":["../../src/db/migrations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"migrations.js","sourceRoot":"","sources":["../../src/db/migrations.ts"],"names":[],"mappings":"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"}
@@ -347,6 +347,9 @@ CREATE TABLE IF NOT EXISTS claude_sessions (
347
347
  total_cache_read_tokens INTEGER DEFAULT 0,
348
348
  total_cost_usd REAL DEFAULT 0,
349
349
  last_model TEXT,
350
+ -- Added in schema v12 (REQ-AGENTSWITCH-004): the agent whose transcript
351
+ -- the session came from ('claude' | 'gemini'). Tables keep their names.
352
+ host TEXT NOT NULL DEFAULT 'claude',
350
353
  FOREIGN KEY (project_path) REFERENCES claude_projects(path) ON DELETE CASCADE
351
354
  );
352
355
 
@@ -399,6 +402,11 @@ CREATE TABLE IF NOT EXISTS claude_tool_calls (
399
402
  is_specship INTEGER NOT NULL DEFAULT 0,
400
403
  displaced_files TEXT,
401
404
  resolution TEXT,
405
+ -- Added in schema v12 (REQ-AGENTSWITCH-004): tool_name holds the SHARED
406
+ -- tool name every transcript adapter normalises to; raw_tool_name keeps
407
+ -- the agent's own name, and host names the agent.
408
+ host TEXT NOT NULL DEFAULT 'claude',
409
+ raw_tool_name TEXT,
402
410
  FOREIGN KEY (prompt_id) REFERENCES claude_prompts(id) ON DELETE CASCADE,
403
411
  FOREIGN KEY (session_id) REFERENCES claude_sessions(id) ON DELETE CASCADE
404
412
  );
@@ -9,7 +9,7 @@
9
9
  * it's already ~1900 lines.
10
10
  */
11
11
  import { SqliteDatabase } from './sqlite-adapter';
12
- import { Spec, SpecFile, SpecLink, SpecLinkState, SpecLinkKind, SpecLinkDriftAxis, WorkflowRun, WorkflowRunStatus, WorkflowEvent, IsolationEnvironment } from '../types';
12
+ import { Spec, SpecFile, SpecLink, SpecLinkState, SpecLinkKind, SpecLinkProvenance, SpecLinkDriftAxis, WorkflowRun, WorkflowRunStatus, WorkflowEvent, IsolationEnvironment } from '../types';
13
13
  /**
14
14
  * One ranked hit from {@link SpecQueries.searchSpecs}. Carries enough to act on
15
15
  * without a follow-up fetch (REQ-TRIAGE-001.A1): the spec, a relevance score,
@@ -176,6 +176,18 @@ export declare class SpecQueries {
176
176
  getLinkById(id: number): SpecLink | null;
177
177
  /** All links for a spec (e.g., for specship_spec response). */
178
178
  getLinksBySpec(specId: string): SpecLink[];
179
+ /**
180
+ * Every link with the given provenance — used to reconcile code-derived
181
+ * (`code-comment`) links against the markers that still exist
182
+ * (REQ-MULTIDEV-006).
183
+ */
184
+ getLinksByProvenance(provenance: SpecLinkProvenance): SpecLink[];
185
+ /**
186
+ * Re-label a link's provenance and confidence without touching its state or
187
+ * evidence — a code-comment link whose marker is gone but whose spec still
188
+ * declares it becomes a declared link again (REQ-MULTIDEV-006.A4).
189
+ */
190
+ setSpecLinkProvenance(id: number, provenance: SpecLinkProvenance, confidence: number, updatedAt?: number): void;
179
191
  /** All links pointing at a given resolved node (e.g., for specship_node response). */
180
192
  getLinksByNode(nodeId: string): SpecLink[];
181
193
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"spec-queries.d.ts","sourceRoot":"","sources":["../../src/db/spec-queries.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"spec-queries.d.ts","sourceRoot":"","sources":["../../src/db/spec-queries.ts"],"names":[],"mappings":"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"}
@@ -659,6 +659,27 @@ class SpecQueries {
659
659
  const rows = this.stmts.getLinksBySpec.all(specId);
660
660
  return rows.map(rowToSpecLink);
661
661
  }
662
+ /**
663
+ * Every link with the given provenance — used to reconcile code-derived
664
+ * (`code-comment`) links against the markers that still exist
665
+ * (REQ-MULTIDEV-006).
666
+ */
667
+ getLinksByProvenance(provenance) {
668
+ const rows = this.db
669
+ .prepare(`SELECT * FROM spec_links WHERE provenance = ?`)
670
+ .all(provenance);
671
+ return rows.map(rowToSpecLink);
672
+ }
673
+ /**
674
+ * Re-label a link's provenance and confidence without touching its state or
675
+ * evidence — a code-comment link whose marker is gone but whose spec still
676
+ * declares it becomes a declared link again (REQ-MULTIDEV-006.A4).
677
+ */
678
+ setSpecLinkProvenance(id, provenance, confidence, updatedAt = Date.now()) {
679
+ this.db
680
+ .prepare(`UPDATE spec_links SET provenance = ?, confidence = ?, updated_at = ? WHERE id = ?`)
681
+ .run(provenance, confidence, updatedAt, id);
682
+ }
662
683
  /** All links pointing at a given resolved node (e.g., for specship_node response). */
663
684
  getLinksByNode(nodeId) {
664
685
  if (!this.stmts.getLinksByNode) {