ai-spector 0.9.20 → 0.9.24

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 (650) hide show
  1. package/contracts/bootstrap/config/prototype-screen-map.json +25 -0
  2. package/contracts/bootstrap/config/prototype.config.json +17 -0
  3. package/contracts/bootstrap/config/review-queue-pending.json +4 -0
  4. package/contracts/bootstrap/config/review-queue-registry.json +4 -0
  5. package/contracts/bootstrap/config/review.config.json +5 -0
  6. package/contracts/bootstrap/docs/ENTITY_REGISTRY_MIGRATION.md +192 -0
  7. package/contracts/bootstrap/docs/MIGRATION.md +463 -0
  8. package/contracts/bootstrap/docs/README.md +48 -0
  9. package/contracts/bootstrap/docs/adapters/README.md +32 -0
  10. package/contracts/bootstrap/docs/guides/COMMENTS_ENTITY_MIGRATION.md +195 -0
  11. package/contracts/bootstrap/docs/guides/DOCOPS_MANUAL_FALLBACK.md +177 -0
  12. package/contracts/bootstrap/docs/guides/PROJECT_LAYOUT.md +84 -0
  13. package/contracts/bootstrap/docs/modules/comments.md +77 -0
  14. package/contracts/bootstrap/docs/modules/generate.md +25 -0
  15. package/contracts/bootstrap/docs/modules/graph.md +31 -0
  16. package/contracts/bootstrap/docs/modules/prototype.md +26 -0
  17. package/contracts/bootstrap/docs/modules/review.md +25 -0
  18. package/contracts/bootstrap/docs/modules/translate.md +26 -0
  19. package/contracts/bootstrap/scripts/migrate-entity-registry.sh +55 -0
  20. package/contracts/bootstrap/templates/basic-design/db-design-template.md +177 -0
  21. package/contracts/bootstrap/templates/basic-design/detail-api-template.md +278 -0
  22. package/contracts/bootstrap/templates/basic-design/detail-screen-template.md +281 -0
  23. package/contracts/bootstrap/templates/basic-design/list-api-template.md +130 -0
  24. package/contracts/bootstrap/templates/basic-design/list-screen-template.md +242 -0
  25. package/contracts/bootstrap/templates/detail-design/common/architecture-overview-template.md +302 -0
  26. package/contracts/bootstrap/templates/detail-design/common/deployment-infrastructure-template.md +461 -0
  27. package/contracts/bootstrap/templates/detail-design/common/error-handling-patterns-template.md +460 -0
  28. package/contracts/bootstrap/templates/detail-design/common/integration-patterns-template.md +410 -0
  29. package/contracts/bootstrap/templates/detail-design/common/performance-standards-template.md +406 -0
  30. package/contracts/bootstrap/templates/detail-design/common/security-patterns-template.md +395 -0
  31. package/contracts/bootstrap/templates/detail-design/feature-detail-design-template.md +773 -0
  32. package/contracts/bootstrap/templates/detail-design/feature-list-template.md +39 -0
  33. package/contracts/bootstrap/templates/srs/1-introduction.md +58 -0
  34. package/contracts/bootstrap/templates/srs/2-overall-description.md +91 -0
  35. package/contracts/bootstrap/templates/srs/3-use-case-detail-template.md +142 -0
  36. package/contracts/bootstrap/templates/srs/3-use-cases.md +53 -0
  37. package/contracts/bootstrap/templates/srs/4-system-feature-detail-template.md +131 -0
  38. package/contracts/bootstrap/templates/srs/4-system-features-list-template.md +39 -0
  39. package/contracts/bootstrap/templates/srs/5-data-requirements.md +59 -0
  40. package/contracts/bootstrap/templates/srs/6-external-interfaces.md +56 -0
  41. package/contracts/bootstrap/templates/srs/7-quality-attributes.md +74 -0
  42. package/contracts/bootstrap/templates/srs/8-internationalization.md +36 -0
  43. package/contracts/bootstrap/templates/srs/9-other-requirements.md +46 -0
  44. package/contracts/examples/full-docops.config.json +54 -0
  45. package/contracts/examples/migrate-lifecycle.json +18 -0
  46. package/contracts/examples/minimal-comment-thread/comment-root.json +10 -0
  47. package/contracts/examples/minimal-comment-thread/meta_data.json +22 -0
  48. package/contracts/examples/minimal-docops.config.json +33 -0
  49. package/contracts/examples/minimal-lifecycle.json +17 -0
  50. package/contracts/examples/minimal-prototype.config.json +18 -0
  51. package/contracts/examples/minimal-screen-map.json +25 -0
  52. package/contracts/examples/registry/minimal-document.entity.json +15 -0
  53. package/contracts/examples/registry/minimal-manifest.json +7 -0
  54. package/contracts/examples/registry/minimal-screen.entity.json +11 -0
  55. package/contracts/examples/review/minimal-pending.json +14 -0
  56. package/contracts/examples/review/minimal-registry.json +31 -0
  57. package/contracts/examples/review/minimal-review.config.json +7 -0
  58. package/contracts/schemas/comments/comment_body.schema.json +19 -0
  59. package/contracts/schemas/comments/meta_data.schema.json +59 -0
  60. package/contracts/schemas/docops.config.schema.json +97 -0
  61. package/contracts/schemas/lifecycle.schema.json +43 -0
  62. package/contracts/schemas/prototype/config.schema.json +56 -0
  63. package/contracts/schemas/prototype/screen-map.schema.json +51 -0
  64. package/contracts/schemas/registry/document.entity.schema.json +38 -0
  65. package/contracts/schemas/registry/manifest.schema.json +18 -0
  66. package/contracts/schemas/registry/screen.entity.schema.json +28 -0
  67. package/contracts/schemas/review/registry.schema.json +72 -0
  68. package/contracts/schemas/review/review.config.schema.json +42 -0
  69. package/dist/cli.js +52 -3
  70. package/dist/cli.js.map +1 -1
  71. package/dist/core/docops/assess.d.ts.map +1 -1
  72. package/dist/core/docops/assess.js +28 -1
  73. package/dist/core/docops/assess.js.map +1 -1
  74. package/dist/core/docops/bootstrap.d.ts +4 -1
  75. package/dist/core/docops/bootstrap.d.ts.map +1 -1
  76. package/dist/core/docops/bootstrap.js +16 -9
  77. package/dist/core/docops/bootstrap.js.map +1 -1
  78. package/dist/core/docops/capabilities.d.ts +1 -1
  79. package/dist/core/docops/capabilities.d.ts.map +1 -1
  80. package/dist/core/docops/capabilities.js +0 -1
  81. package/dist/core/docops/capabilities.js.map +1 -1
  82. package/dist/core/docops/check.d.ts +26 -0
  83. package/dist/core/docops/check.d.ts.map +1 -0
  84. package/dist/core/docops/check.js +280 -0
  85. package/dist/core/docops/check.js.map +1 -0
  86. package/dist/core/docops/guide.d.ts +78 -0
  87. package/dist/core/docops/guide.d.ts.map +1 -0
  88. package/dist/core/docops/guide.js +554 -0
  89. package/dist/core/docops/guide.js.map +1 -0
  90. package/dist/core/docops/layer-defaults.d.ts +2 -0
  91. package/dist/core/docops/layer-defaults.d.ts.map +1 -1
  92. package/dist/core/docops/layer-defaults.js +7 -0
  93. package/dist/core/docops/layer-defaults.js.map +1 -1
  94. package/dist/core/docops/layout-classify.d.ts +24 -0
  95. package/dist/core/docops/layout-classify.d.ts.map +1 -0
  96. package/dist/core/{adopt/classify.js → docops/layout-classify.js} +2 -4
  97. package/dist/core/docops/layout-classify.js.map +1 -0
  98. package/dist/core/docops/layout.d.ts +27 -0
  99. package/dist/core/docops/layout.d.ts.map +1 -0
  100. package/dist/core/docops/layout.js +181 -0
  101. package/dist/core/docops/layout.js.map +1 -0
  102. package/dist/core/docops/migrate.d.ts +2 -0
  103. package/dist/core/docops/migrate.d.ts.map +1 -1
  104. package/dist/core/docops/migrate.js +64 -8
  105. package/dist/core/docops/migrate.js.map +1 -1
  106. package/dist/core/graph/doc-extract.d.ts.map +1 -1
  107. package/dist/core/graph/doc-extract.js +12 -0
  108. package/dist/core/graph/doc-extract.js.map +1 -1
  109. package/dist/core/graph/impact.d.ts.map +1 -1
  110. package/dist/core/graph/impact.js +2 -1
  111. package/dist/core/graph/impact.js.map +1 -1
  112. package/dist/core/graph/link-testcases.d.ts +14 -0
  113. package/dist/core/graph/link-testcases.d.ts.map +1 -0
  114. package/dist/core/graph/link-testcases.js +46 -0
  115. package/dist/core/graph/link-testcases.js.map +1 -0
  116. package/dist/core/operations/check.d.ts.map +1 -1
  117. package/dist/core/operations/check.js +11 -19
  118. package/dist/core/operations/check.js.map +1 -1
  119. package/dist/core/operations/docops.d.ts +18 -0
  120. package/dist/core/operations/docops.d.ts.map +1 -1
  121. package/dist/core/operations/docops.js +116 -0
  122. package/dist/core/operations/docops.js.map +1 -1
  123. package/dist/core/operations/index.d.ts.map +1 -1
  124. package/dist/core/operations/index.js +25 -0
  125. package/dist/core/operations/index.js.map +1 -1
  126. package/dist/core/operations/task-gates.d.ts +8 -1
  127. package/dist/core/operations/task-gates.d.ts.map +1 -1
  128. package/dist/core/operations/task-gates.js +14 -15
  129. package/dist/core/operations/task-gates.js.map +1 -1
  130. package/dist/core/operations/task-templates.d.ts +2 -2
  131. package/dist/core/operations/task-templates.d.ts.map +1 -1
  132. package/dist/core/operations/task-templates.js +0 -20
  133. package/dist/core/operations/task-templates.js.map +1 -1
  134. package/dist/core/operations/task.d.ts +2 -14
  135. package/dist/core/operations/task.d.ts.map +1 -1
  136. package/dist/core/operations/task.js +40 -60
  137. package/dist/core/operations/task.js.map +1 -1
  138. package/dist/core/operations/work.d.ts +1 -2
  139. package/dist/core/operations/work.d.ts.map +1 -1
  140. package/dist/core/operations/work.js +1 -21
  141. package/dist/core/operations/work.js.map +1 -1
  142. package/dist/core/sync/audit.d.ts.map +1 -1
  143. package/dist/core/sync/audit.js +14 -6
  144. package/dist/core/sync/audit.js.map +1 -1
  145. package/dist/core/sync/baseline.d.ts.map +1 -1
  146. package/dist/core/sync/baseline.js +5 -2
  147. package/dist/core/sync/baseline.js.map +1 -1
  148. package/dist/core/sync/constants.d.ts.map +1 -1
  149. package/dist/core/sync/constants.js +2 -1
  150. package/dist/core/sync/constants.js.map +1 -1
  151. package/dist/core/sync/gaps.d.ts.map +1 -1
  152. package/dist/core/sync/gaps.js +23 -2
  153. package/dist/core/sync/gaps.js.map +1 -1
  154. package/dist/core/sync/git-diff.d.ts +1 -0
  155. package/dist/core/sync/git-diff.d.ts.map +1 -1
  156. package/dist/core/sync/git-diff.js +14 -0
  157. package/dist/core/sync/git-diff.js.map +1 -1
  158. package/dist/core/sync/repo-context.d.ts +23 -0
  159. package/dist/core/sync/repo-context.d.ts.map +1 -0
  160. package/dist/core/sync/repo-context.js +28 -0
  161. package/dist/core/sync/repo-context.js.map +1 -0
  162. package/dist/core/sync/snapshot.d.ts.map +1 -1
  163. package/dist/core/sync/snapshot.js +24 -18
  164. package/dist/core/sync/snapshot.js.map +1 -1
  165. package/dist/core/sync/types.d.ts +7 -2
  166. package/dist/core/sync/types.d.ts.map +1 -1
  167. package/dist/core/upgrade/apply.d.ts.map +1 -1
  168. package/dist/core/upgrade/apply.js +11 -0
  169. package/dist/core/upgrade/apply.js.map +1 -1
  170. package/dist/core/upgrade/checklist.json +11 -1
  171. package/dist/core/upgrade/detect.d.ts.map +1 -1
  172. package/dist/core/upgrade/detect.js +20 -0
  173. package/dist/core/upgrade/detect.js.map +1 -1
  174. package/dist/core/upgrade/types.d.ts +1 -1
  175. package/dist/core/upgrade/types.d.ts.map +1 -1
  176. package/dist/core/workflow/active-worker.js +1 -1
  177. package/dist/core/workflow/active-worker.js.map +1 -1
  178. package/dist/core/workflow/route-intent-examples.d.ts.map +1 -1
  179. package/dist/core/workflow/route-intent-examples.js +2 -3
  180. package/dist/core/workflow/route-intent-examples.js.map +1 -1
  181. package/dist/core/workflow/route-intent.d.ts +1 -1
  182. package/dist/core/workflow/route-intent.d.ts.map +1 -1
  183. package/dist/core/workflow/route-intent.js +8 -8
  184. package/dist/core/workflow/route-intent.js.map +1 -1
  185. package/dist/interfaces/mcp/schemas.d.ts +2 -344
  186. package/dist/interfaces/mcp/schemas.d.ts.map +1 -1
  187. package/dist/interfaces/mcp/schemas.js +7 -68
  188. package/dist/interfaces/mcp/schemas.js.map +1 -1
  189. package/dist/interfaces/mcp/server.js +3 -61
  190. package/dist/interfaces/mcp/server.js.map +1 -1
  191. package/dist/interfaces/mcp/tool-descriptions.d.ts +0 -10
  192. package/dist/interfaces/mcp/tool-descriptions.d.ts.map +1 -1
  193. package/dist/interfaces/mcp/tool-descriptions.js +3 -52
  194. package/dist/interfaces/mcp/tool-descriptions.js.map +1 -1
  195. package/dist/interfaces/mcp/tool-names.d.ts +1 -1
  196. package/dist/interfaces/mcp/tool-names.d.ts.map +1 -1
  197. package/dist/interfaces/mcp/tool-names.js +0 -8
  198. package/dist/interfaces/mcp/tool-names.js.map +1 -1
  199. package/dist/interfaces/mcp/tools/task.d.ts +1 -2
  200. package/dist/interfaces/mcp/tools/task.d.ts.map +1 -1
  201. package/dist/interfaces/mcp/tools/task.js +1 -10
  202. package/dist/interfaces/mcp/tools/task.js.map +1 -1
  203. package/dist/interfaces/sdk/index.d.ts +2 -2
  204. package/dist/interfaces/sdk/index.d.ts.map +1 -1
  205. package/dist/interfaces/sdk/index.js +2 -2
  206. package/dist/interfaces/sdk/index.js.map +1 -1
  207. package/dist/types.d.ts +2 -2
  208. package/dist/types.d.ts.map +1 -1
  209. package/package.json +2 -1
  210. package/scaffold/.ai-spector/.docflow/config/workspace/rules.json +1 -1
  211. package/scaffold/claude/.claude/skills/_skill-router.md +11 -8
  212. package/scaffold/claude/.claude/skills/ai-spector/references/cli-failures.md +3 -3
  213. package/scaffold/claude/.claude/skills/ai-spector/references/docops-migrate.md +112 -0
  214. package/scaffold/claude/.claude/skills/ai-spector/references/help.md +1 -1
  215. package/scaffold/claude/.claude/skills/ai-spector/references/runbook.md +44 -57
  216. package/scaffold/claude/.claude/skills/ai-spector/skill.md +3 -2
  217. package/scaffold/cursor/skills/_skill-router.md +11 -8
  218. package/scaffold/cursor/skills/ai-spector/SKILL.md +3 -2
  219. package/scaffold/cursor/skills/ai-spector/references/cli-failures.md +3 -3
  220. package/scaffold/cursor/skills/ai-spector/references/docops-migrate.md +112 -0
  221. package/scaffold/cursor/skills/ai-spector/references/help.md +1 -1
  222. package/scaffold/cursor/skills/ai-spector/references/runbook.md +44 -57
  223. package/schemas/rules.impact.json +3 -2
  224. package/schemas/schema.graph.json +4 -2
  225. package/dist/commands/analyze.d.ts +0 -12
  226. package/dist/commands/analyze.d.ts.map +0 -1
  227. package/dist/commands/analyze.js +0 -53
  228. package/dist/commands/analyze.js.map +0 -1
  229. package/dist/commands/bootstrap.d.ts +0 -4
  230. package/dist/commands/bootstrap.d.ts.map +0 -1
  231. package/dist/commands/bootstrap.js +0 -58
  232. package/dist/commands/bootstrap.js.map +0 -1
  233. package/dist/commands/comments.d.ts +0 -44
  234. package/dist/commands/comments.d.ts.map +0 -1
  235. package/dist/commands/comments.js +0 -79
  236. package/dist/commands/comments.js.map +0 -1
  237. package/dist/commands/graph-impact.d.ts +0 -28
  238. package/dist/commands/graph-impact.d.ts.map +0 -1
  239. package/dist/commands/graph-impact.js +0 -174
  240. package/dist/commands/graph-impact.js.map +0 -1
  241. package/dist/commands/graph-merge.d.ts +0 -32
  242. package/dist/commands/graph-merge.d.ts.map +0 -1
  243. package/dist/commands/graph-merge.js +0 -101
  244. package/dist/commands/graph-merge.js.map +0 -1
  245. package/dist/commands/graph-query.d.ts +0 -10
  246. package/dist/commands/graph-query.d.ts.map +0 -1
  247. package/dist/commands/graph-query.js +0 -24
  248. package/dist/commands/graph-query.js.map +0 -1
  249. package/dist/commands/graph-report.d.ts +0 -9
  250. package/dist/commands/graph-report.d.ts.map +0 -1
  251. package/dist/commands/graph-report.js +0 -10
  252. package/dist/commands/graph-report.js.map +0 -1
  253. package/dist/commands/graph-visualize.d.ts +0 -17
  254. package/dist/commands/graph-visualize.d.ts.map +0 -1
  255. package/dist/commands/graph-visualize.js +0 -44
  256. package/dist/commands/graph-visualize.js.map +0 -1
  257. package/dist/commands/hooks-constants.d.ts +0 -2
  258. package/dist/commands/hooks-constants.d.ts.map +0 -1
  259. package/dist/commands/hooks-constants.js +0 -2
  260. package/dist/commands/hooks-constants.js.map +0 -1
  261. package/dist/commands/hooks.d.ts +0 -28
  262. package/dist/commands/hooks.d.ts.map +0 -1
  263. package/dist/commands/hooks.js +0 -187
  264. package/dist/commands/hooks.js.map +0 -1
  265. package/dist/commands/index.d.ts +0 -22
  266. package/dist/commands/index.d.ts.map +0 -1
  267. package/dist/commands/index.js +0 -472
  268. package/dist/commands/index.js.map +0 -1
  269. package/dist/commands/init.d.ts +0 -19
  270. package/dist/commands/init.d.ts.map +0 -1
  271. package/dist/commands/init.js +0 -210
  272. package/dist/commands/init.js.map +0 -1
  273. package/dist/commands/lang-queue.d.ts +0 -28
  274. package/dist/commands/lang-queue.d.ts.map +0 -1
  275. package/dist/commands/lang-queue.js +0 -49
  276. package/dist/commands/lang-queue.js.map +0 -1
  277. package/dist/commands/lang.d.ts +0 -16
  278. package/dist/commands/lang.d.ts.map +0 -1
  279. package/dist/commands/lang.js +0 -69
  280. package/dist/commands/lang.js.map +0 -1
  281. package/dist/commands/prototype.d.ts +0 -66
  282. package/dist/commands/prototype.d.ts.map +0 -1
  283. package/dist/commands/prototype.js +0 -370
  284. package/dist/commands/prototype.js.map +0 -1
  285. package/dist/commands/setup.d.ts +0 -26
  286. package/dist/commands/setup.d.ts.map +0 -1
  287. package/dist/commands/setup.js +0 -259
  288. package/dist/commands/setup.js.map +0 -1
  289. package/dist/commands/sync-cursor.d.ts +0 -10
  290. package/dist/commands/sync-cursor.d.ts.map +0 -1
  291. package/dist/commands/sync-cursor.js +0 -18
  292. package/dist/commands/sync-cursor.js.map +0 -1
  293. package/dist/commands/template-regen.d.ts +0 -24
  294. package/dist/commands/template-regen.d.ts.map +0 -1
  295. package/dist/commands/template-regen.js +0 -240
  296. package/dist/commands/template-regen.js.map +0 -1
  297. package/dist/commands/template.d.ts +0 -3
  298. package/dist/commands/template.d.ts.map +0 -1
  299. package/dist/commands/template.js +0 -1285
  300. package/dist/commands/template.js.map +0 -1
  301. package/dist/commands/validate.d.ts +0 -10
  302. package/dist/commands/validate.d.ts.map +0 -1
  303. package/dist/commands/validate.js +0 -89
  304. package/dist/commands/validate.js.map +0 -1
  305. package/dist/comments/anchor.d.ts +0 -16
  306. package/dist/comments/anchor.d.ts.map +0 -1
  307. package/dist/comments/anchor.js +0 -59
  308. package/dist/comments/anchor.js.map +0 -1
  309. package/dist/comments/inbox.d.ts +0 -82
  310. package/dist/comments/inbox.d.ts.map +0 -1
  311. package/dist/comments/inbox.js +0 -179
  312. package/dist/comments/inbox.js.map +0 -1
  313. package/dist/comments/paths.d.ts +0 -12
  314. package/dist/comments/paths.d.ts.map +0 -1
  315. package/dist/comments/paths.js +0 -54
  316. package/dist/comments/paths.js.map +0 -1
  317. package/dist/comments/plan.d.ts +0 -20
  318. package/dist/comments/plan.d.ts.map +0 -1
  319. package/dist/comments/plan.js +0 -62
  320. package/dist/comments/plan.js.map +0 -1
  321. package/dist/comments/storage.d.ts +0 -30
  322. package/dist/comments/storage.d.ts.map +0 -1
  323. package/dist/comments/storage.js +0 -272
  324. package/dist/comments/storage.js.map +0 -1
  325. package/dist/comments/types.d.ts +0 -54
  326. package/dist/comments/types.d.ts.map +0 -1
  327. package/dist/comments/types.js +0 -2
  328. package/dist/comments/types.js.map +0 -1
  329. package/dist/config/load.d.ts +0 -47
  330. package/dist/config/load.d.ts.map +0 -1
  331. package/dist/config/load.js +0 -148
  332. package/dist/config/load.js.map +0 -1
  333. package/dist/config/types.d.ts +0 -56
  334. package/dist/config/types.d.ts.map +0 -1
  335. package/dist/config/types.js +0 -2
  336. package/dist/config/types.js.map +0 -1
  337. package/dist/core/adopt/apply.d.ts +0 -15
  338. package/dist/core/adopt/apply.d.ts.map +0 -1
  339. package/dist/core/adopt/apply.js +0 -127
  340. package/dist/core/adopt/apply.js.map +0 -1
  341. package/dist/core/adopt/bootstrap.d.ts +0 -16
  342. package/dist/core/adopt/bootstrap.d.ts.map +0 -1
  343. package/dist/core/adopt/bootstrap.js +0 -164
  344. package/dist/core/adopt/bootstrap.js.map +0 -1
  345. package/dist/core/adopt/classify.d.ts +0 -22
  346. package/dist/core/adopt/classify.d.ts.map +0 -1
  347. package/dist/core/adopt/classify.js.map +0 -1
  348. package/dist/core/adopt/paths.d.ts +0 -10
  349. package/dist/core/adopt/paths.d.ts.map +0 -1
  350. package/dist/core/adopt/paths.js +0 -16
  351. package/dist/core/adopt/paths.js.map +0 -1
  352. package/dist/core/adopt/plan.d.ts +0 -10
  353. package/dist/core/adopt/plan.d.ts.map +0 -1
  354. package/dist/core/adopt/plan.js +0 -269
  355. package/dist/core/adopt/plan.js.map +0 -1
  356. package/dist/core/adopt/scan.d.ts +0 -5
  357. package/dist/core/adopt/scan.d.ts.map +0 -1
  358. package/dist/core/adopt/scan.js +0 -169
  359. package/dist/core/adopt/scan.js.map +0 -1
  360. package/dist/core/adopt/setup.d.ts +0 -7
  361. package/dist/core/adopt/setup.d.ts.map +0 -1
  362. package/dist/core/adopt/setup.js +0 -64
  363. package/dist/core/adopt/setup.js.map +0 -1
  364. package/dist/core/adopt/tasks.d.ts +0 -9
  365. package/dist/core/adopt/tasks.d.ts.map +0 -1
  366. package/dist/core/adopt/tasks.js +0 -153
  367. package/dist/core/adopt/tasks.js.map +0 -1
  368. package/dist/core/adopt/types.d.ts +0 -75
  369. package/dist/core/adopt/types.d.ts.map +0 -1
  370. package/dist/core/adopt/types.js +0 -2
  371. package/dist/core/adopt/types.js.map +0 -1
  372. package/dist/core/adopt/validate.d.ts +0 -20
  373. package/dist/core/adopt/validate.d.ts.map +0 -1
  374. package/dist/core/adopt/validate.js +0 -129
  375. package/dist/core/adopt/validate.js.map +0 -1
  376. package/dist/core/docops/dual-write.d.ts +0 -12
  377. package/dist/core/docops/dual-write.d.ts.map +0 -1
  378. package/dist/core/docops/dual-write.js +0 -44
  379. package/dist/core/docops/dual-write.js.map +0 -1
  380. package/dist/core/engine/local-adapter.d.ts +0 -3
  381. package/dist/core/engine/local-adapter.d.ts.map +0 -1
  382. package/dist/core/engine/local-adapter.js +0 -18
  383. package/dist/core/engine/local-adapter.js.map +0 -1
  384. package/dist/core/graph/rules/default-impact.json +0 -24
  385. package/dist/core/operations/adopt-gates.d.ts +0 -19
  386. package/dist/core/operations/adopt-gates.d.ts.map +0 -1
  387. package/dist/core/operations/adopt-gates.js +0 -71
  388. package/dist/core/operations/adopt-gates.js.map +0 -1
  389. package/dist/core/operations/adopt-plan.d.ts +0 -15
  390. package/dist/core/operations/adopt-plan.d.ts.map +0 -1
  391. package/dist/core/operations/adopt-plan.js +0 -24
  392. package/dist/core/operations/adopt-plan.js.map +0 -1
  393. package/dist/core/operations/adopt.d.ts +0 -11
  394. package/dist/core/operations/adopt.d.ts.map +0 -1
  395. package/dist/core/operations/adopt.js +0 -150
  396. package/dist/core/operations/adopt.js.map +0 -1
  397. package/dist/core/operations/analyze.d.ts +0 -12
  398. package/dist/core/operations/analyze.d.ts.map +0 -1
  399. package/dist/core/operations/analyze.js +0 -53
  400. package/dist/core/operations/analyze.js.map +0 -1
  401. package/dist/core/prototype/spa-route-fallbacks.d.ts +0 -21
  402. package/dist/core/prototype/spa-route-fallbacks.d.ts.map +0 -1
  403. package/dist/core/prototype/spa-route-fallbacks.js +0 -93
  404. package/dist/core/prototype/spa-route-fallbacks.js.map +0 -1
  405. package/dist/graph/InMemoryGraph.d.ts +0 -2
  406. package/dist/graph/InMemoryGraph.d.ts.map +0 -1
  407. package/dist/graph/InMemoryGraph.js +0 -2
  408. package/dist/graph/InMemoryGraph.js.map +0 -1
  409. package/dist/graph/bundles.d.ts +0 -32
  410. package/dist/graph/bundles.d.ts.map +0 -1
  411. package/dist/graph/bundles.js +0 -109
  412. package/dist/graph/bundles.js.map +0 -1
  413. package/dist/graph/defaults.d.ts +0 -23
  414. package/dist/graph/defaults.d.ts.map +0 -1
  415. package/dist/graph/defaults.js +0 -25
  416. package/dist/graph/defaults.js.map +0 -1
  417. package/dist/graph/detail-sections.d.ts +0 -28
  418. package/dist/graph/detail-sections.d.ts.map +0 -1
  419. package/dist/graph/detail-sections.js +0 -220
  420. package/dist/graph/detail-sections.js.map +0 -1
  421. package/dist/graph/doc-extract.d.ts +0 -84
  422. package/dist/graph/doc-extract.d.ts.map +0 -1
  423. package/dist/graph/doc-extract.js +0 -821
  424. package/dist/graph/doc-extract.js.map +0 -1
  425. package/dist/graph/impact.d.ts +0 -5
  426. package/dist/graph/impact.d.ts.map +0 -1
  427. package/dist/graph/impact.js +0 -7
  428. package/dist/graph/impact.js.map +0 -1
  429. package/dist/graph/knowledge.d.ts +0 -11
  430. package/dist/graph/knowledge.d.ts.map +0 -1
  431. package/dist/graph/knowledge.js +0 -62
  432. package/dist/graph/knowledge.js.map +0 -1
  433. package/dist/graph/layer-audit.d.ts +0 -5
  434. package/dist/graph/layer-audit.d.ts.map +0 -1
  435. package/dist/graph/layer-audit.js +0 -29
  436. package/dist/graph/layer-audit.js.map +0 -1
  437. package/dist/graph/load.d.ts +0 -4
  438. package/dist/graph/load.d.ts.map +0 -1
  439. package/dist/graph/load.js +0 -12
  440. package/dist/graph/load.js.map +0 -1
  441. package/dist/graph/loadGraph.d.ts +0 -3
  442. package/dist/graph/loadGraph.d.ts.map +0 -1
  443. package/dist/graph/loadGraph.js +0 -7
  444. package/dist/graph/loadGraph.js.map +0 -1
  445. package/dist/graph/merge.d.ts +0 -27
  446. package/dist/graph/merge.d.ts.map +0 -1
  447. package/dist/graph/merge.js +0 -239
  448. package/dist/graph/merge.js.map +0 -1
  449. package/dist/graph/path-target-edges.d.ts +0 -2
  450. package/dist/graph/path-target-edges.d.ts.map +0 -1
  451. package/dist/graph/path-target-edges.js +0 -2
  452. package/dist/graph/path-target-edges.js.map +0 -1
  453. package/dist/graph/provenance.d.ts +0 -19
  454. package/dist/graph/provenance.d.ts.map +0 -1
  455. package/dist/graph/provenance.js +0 -199
  456. package/dist/graph/provenance.js.map +0 -1
  457. package/dist/graph/query.d.ts +0 -3
  458. package/dist/graph/query.d.ts.map +0 -1
  459. package/dist/graph/query.js +0 -2
  460. package/dist/graph/query.js.map +0 -1
  461. package/dist/graph/resolve.d.ts +0 -15
  462. package/dist/graph/resolve.d.ts.map +0 -1
  463. package/dist/graph/resolve.js +0 -117
  464. package/dist/graph/resolve.js.map +0 -1
  465. package/dist/graph/source-refs.d.ts +0 -2
  466. package/dist/graph/source-refs.d.ts.map +0 -1
  467. package/dist/graph/source-refs.js +0 -30
  468. package/dist/graph/source-refs.js.map +0 -1
  469. package/dist/graph/translation.d.ts +0 -14
  470. package/dist/graph/translation.d.ts.map +0 -1
  471. package/dist/graph/translation.js +0 -65
  472. package/dist/graph/translation.js.map +0 -1
  473. package/dist/index/doc-semantics.d.ts +0 -14
  474. package/dist/index/doc-semantics.d.ts.map +0 -1
  475. package/dist/index/doc-semantics.js +0 -101
  476. package/dist/index/doc-semantics.js.map +0 -1
  477. package/dist/index/docs-build.d.ts +0 -40
  478. package/dist/index/docs-build.d.ts.map +0 -1
  479. package/dist/index/docs-build.js +0 -136
  480. package/dist/index/docs-build.js.map +0 -1
  481. package/dist/index/docs-config.d.ts +0 -19
  482. package/dist/index/docs-config.d.ts.map +0 -1
  483. package/dist/index/docs-config.js +0 -5
  484. package/dist/index/docs-config.js.map +0 -1
  485. package/dist/interfaces/cli/format/adopt.d.ts +0 -23
  486. package/dist/interfaces/cli/format/adopt.d.ts.map +0 -1
  487. package/dist/interfaces/cli/format/adopt.js +0 -89
  488. package/dist/interfaces/cli/format/adopt.js.map +0 -1
  489. package/dist/interfaces/mcp/tools/adopt.d.ts +0 -22
  490. package/dist/interfaces/mcp/tools/adopt.d.ts.map +0 -1
  491. package/dist/interfaces/mcp/tools/adopt.js +0 -55
  492. package/dist/interfaces/mcp/tools/adopt.js.map +0 -1
  493. package/dist/lang/diff.d.ts +0 -12
  494. package/dist/lang/diff.d.ts.map +0 -1
  495. package/dist/lang/diff.js +0 -71
  496. package/dist/lang/diff.js.map +0 -1
  497. package/dist/lang/paths.d.ts +0 -16
  498. package/dist/lang/paths.d.ts.map +0 -1
  499. package/dist/lang/paths.js +0 -32
  500. package/dist/lang/paths.js.map +0 -1
  501. package/dist/lang/queue-layout.d.ts +0 -11
  502. package/dist/lang/queue-layout.d.ts.map +0 -1
  503. package/dist/lang/queue-layout.js +0 -56
  504. package/dist/lang/queue-layout.js.map +0 -1
  505. package/dist/lang/queue-store.d.ts +0 -23
  506. package/dist/lang/queue-store.d.ts.map +0 -1
  507. package/dist/lang/queue-store.js +0 -285
  508. package/dist/lang/queue-store.js.map +0 -1
  509. package/dist/lang/queue-types.d.ts +0 -122
  510. package/dist/lang/queue-types.d.ts.map +0 -1
  511. package/dist/lang/queue-types.js +0 -2
  512. package/dist/lang/queue-types.js.map +0 -1
  513. package/dist/lang/queue.d.ts +0 -17
  514. package/dist/lang/queue.d.ts.map +0 -1
  515. package/dist/lang/queue.js +0 -362
  516. package/dist/lang/queue.js.map +0 -1
  517. package/dist/lang/sections.d.ts +0 -26
  518. package/dist/lang/sections.d.ts.map +0 -1
  519. package/dist/lang/sections.js +0 -85
  520. package/dist/lang/sections.js.map +0 -1
  521. package/dist/markdown/parse.d.ts +0 -25
  522. package/dist/markdown/parse.d.ts.map +0 -1
  523. package/dist/markdown/parse.js +0 -100
  524. package/dist/markdown/parse.js.map +0 -1
  525. package/dist/prototype/build-base-path.d.ts +0 -11
  526. package/dist/prototype/build-base-path.d.ts.map +0 -1
  527. package/dist/prototype/build-base-path.js +0 -84
  528. package/dist/prototype/build-base-path.js.map +0 -1
  529. package/dist/prototype/build-manifest.d.ts +0 -21
  530. package/dist/prototype/build-manifest.d.ts.map +0 -1
  531. package/dist/prototype/build-manifest.js +0 -171
  532. package/dist/prototype/build-manifest.js.map +0 -1
  533. package/dist/prototype/config.d.ts +0 -21
  534. package/dist/prototype/config.d.ts.map +0 -1
  535. package/dist/prototype/config.js +0 -131
  536. package/dist/prototype/config.js.map +0 -1
  537. package/dist/prototype/deploy-path.d.ts +0 -9
  538. package/dist/prototype/deploy-path.d.ts.map +0 -1
  539. package/dist/prototype/deploy-path.js +0 -21
  540. package/dist/prototype/deploy-path.js.map +0 -1
  541. package/dist/prototype/htpasswd.d.ts +0 -8
  542. package/dist/prototype/htpasswd.d.ts.map +0 -1
  543. package/dist/prototype/htpasswd.js +0 -36
  544. package/dist/prototype/htpasswd.js.map +0 -1
  545. package/dist/prototype/nginx-config.d.ts +0 -16
  546. package/dist/prototype/nginx-config.d.ts.map +0 -1
  547. package/dist/prototype/nginx-config.js +0 -39
  548. package/dist/prototype/nginx-config.js.map +0 -1
  549. package/dist/prototype/parse-screen-index.d.ts +0 -10
  550. package/dist/prototype/parse-screen-index.d.ts.map +0 -1
  551. package/dist/prototype/parse-screen-index.js +0 -109
  552. package/dist/prototype/parse-screen-index.js.map +0 -1
  553. package/dist/prototype/preview-uri.d.ts +0 -8
  554. package/dist/prototype/preview-uri.d.ts.map +0 -1
  555. package/dist/prototype/preview-uri.js +0 -35
  556. package/dist/prototype/preview-uri.js.map +0 -1
  557. package/dist/prototype/relative-assets.d.ts +0 -9
  558. package/dist/prototype/relative-assets.d.ts.map +0 -1
  559. package/dist/prototype/relative-assets.js +0 -23
  560. package/dist/prototype/relative-assets.js.map +0 -1
  561. package/dist/prototype/resolve-default-screen.d.ts +0 -17
  562. package/dist/prototype/resolve-default-screen.d.ts.map +0 -1
  563. package/dist/prototype/resolve-default-screen.js +0 -31
  564. package/dist/prototype/resolve-default-screen.js.map +0 -1
  565. package/dist/prototype/rewrite-build-assets.d.ts +0 -8
  566. package/dist/prototype/rewrite-build-assets.d.ts.map +0 -1
  567. package/dist/prototype/rewrite-build-assets.js +0 -40
  568. package/dist/prototype/rewrite-build-assets.js.map +0 -1
  569. package/dist/prototype/route-defaults.d.ts +0 -43
  570. package/dist/prototype/route-defaults.d.ts.map +0 -1
  571. package/dist/prototype/route-defaults.js +0 -50
  572. package/dist/prototype/route-defaults.js.map +0 -1
  573. package/dist/prototype/screen-doc-paths.d.ts +0 -15
  574. package/dist/prototype/screen-doc-paths.d.ts.map +0 -1
  575. package/dist/prototype/screen-doc-paths.js +0 -38
  576. package/dist/prototype/screen-doc-paths.js.map +0 -1
  577. package/dist/prototype/spa-route-fallbacks.d.ts +0 -21
  578. package/dist/prototype/spa-route-fallbacks.d.ts.map +0 -1
  579. package/dist/prototype/spa-route-fallbacks.js +0 -93
  580. package/dist/prototype/spa-route-fallbacks.js.map +0 -1
  581. package/dist/prototype/theme-preview.d.ts +0 -17
  582. package/dist/prototype/theme-preview.d.ts.map +0 -1
  583. package/dist/prototype/theme-preview.js +0 -73
  584. package/dist/prototype/theme-preview.js.map +0 -1
  585. package/dist/prototype/themes.d.ts +0 -6
  586. package/dist/prototype/themes.d.ts.map +0 -1
  587. package/dist/prototype/themes.js +0 -55
  588. package/dist/prototype/themes.js.map +0 -1
  589. package/dist/prototype/types.d.ts +0 -160
  590. package/dist/prototype/types.d.ts.map +0 -1
  591. package/dist/prototype/types.js +0 -2
  592. package/dist/prototype/types.js.map +0 -1
  593. package/dist/prototype/validate.d.ts +0 -16
  594. package/dist/prototype/validate.d.ts.map +0 -1
  595. package/dist/prototype/validate.js +0 -149
  596. package/dist/prototype/validate.js.map +0 -1
  597. package/dist/registry/build.d.ts +0 -5
  598. package/dist/registry/build.d.ts.map +0 -1
  599. package/dist/registry/build.js +0 -71
  600. package/dist/registry/build.js.map +0 -1
  601. package/dist/registry/slug.d.ts +0 -4
  602. package/dist/registry/slug.d.ts.map +0 -1
  603. package/dist/registry/slug.js +0 -16
  604. package/dist/registry/slug.js.map +0 -1
  605. package/dist/registry/structure-patch.d.ts +0 -6
  606. package/dist/registry/structure-patch.d.ts.map +0 -1
  607. package/dist/registry/structure-patch.js +0 -49
  608. package/dist/registry/structure-patch.js.map +0 -1
  609. package/dist/template/scan.d.ts +0 -21
  610. package/dist/template/scan.d.ts.map +0 -1
  611. package/dist/template/scan.js +0 -84
  612. package/dist/template/scan.js.map +0 -1
  613. package/dist/template/validate.d.ts +0 -10
  614. package/dist/template/validate.d.ts.map +0 -1
  615. package/dist/template/validate.js +0 -64
  616. package/dist/template/validate.js.map +0 -1
  617. package/dist/util/fs.d.ts +0 -6
  618. package/dist/util/fs.d.ts.map +0 -1
  619. package/dist/util/fs.js +0 -24
  620. package/dist/util/fs.js.map +0 -1
  621. package/dist/util/git-diff.d.ts +0 -16
  622. package/dist/util/git-diff.d.ts.map +0 -1
  623. package/dist/util/git-diff.js +0 -93
  624. package/dist/util/git-diff.js.map +0 -1
  625. package/dist/util/gitignore.d.ts +0 -9
  626. package/dist/util/gitignore.d.ts.map +0 -1
  627. package/dist/util/gitignore.js +0 -44
  628. package/dist/util/gitignore.js.map +0 -1
  629. package/dist/util/open-browser.d.ts +0 -3
  630. package/dist/util/open-browser.d.ts.map +0 -1
  631. package/dist/util/open-browser.js +0 -24
  632. package/dist/util/open-browser.js.map +0 -1
  633. package/dist/util/paths.d.ts +0 -16
  634. package/dist/util/paths.d.ts.map +0 -1
  635. package/dist/util/paths.js +0 -19
  636. package/dist/util/paths.js.map +0 -1
  637. package/dist/util/prompt.d.ts +0 -14
  638. package/dist/util/prompt.d.ts.map +0 -1
  639. package/dist/util/prompt.js +0 -65
  640. package/dist/util/prompt.js.map +0 -1
  641. package/dist/visualize/html.d.ts +0 -13
  642. package/dist/visualize/html.d.ts.map +0 -1
  643. package/dist/visualize/html.js +0 -766
  644. package/dist/visualize/html.js.map +0 -1
  645. package/dist/visualize/stats.d.ts +0 -8
  646. package/dist/visualize/stats.d.ts.map +0 -1
  647. package/dist/visualize/stats.js +0 -9
  648. package/dist/visualize/stats.js.map +0 -1
  649. package/scaffold/claude/.claude/workflows/adopt.md +0 -14
  650. package/scaffold/cursor/commands/adopt.md +0 -14
@@ -0,0 +1,25 @@
1
+ {
2
+ "schemaVersion": 1,
3
+ "buildMode": "static",
4
+ "defaultScreenId": "SCR-001",
5
+ "defaultScreen": {
6
+ "screenId": "SCR-001",
7
+ "displayName": "Login",
8
+ "screenDocPath": "basic-design/screens/login.md",
9
+ "prototypePath": "",
10
+ "route_exists": false
11
+ },
12
+ "screens": [
13
+ {
14
+ "screenId": "SCR-001",
15
+ "displayName": "Login",
16
+ "screenDocPath": "basic-design/screens/login.md",
17
+ "screenDocs": {
18
+ "en": "docs/basic-design/en/screens/login.md"
19
+ },
20
+ "prototypePath": "",
21
+ "route_exists": false,
22
+ "reviewUrl": null
23
+ }
24
+ ]
25
+ }
@@ -0,0 +1,17 @@
1
+ {
2
+ "schemaVersion": 1,
3
+ "version": 1,
4
+ "buildMode": "static",
5
+ "listScreenDoc": "docs/basic-design/en/list-screens.md",
6
+ "screenIndexSection": "## 4. Screen Index",
7
+ "screenDetailDir": "docs/basic-design/screens/",
8
+ "prototypeDir": "prototype",
9
+ "srcDir": "prototype/src",
10
+ "slugFrom": "screenName",
11
+ "defaultTheme": "vercel",
12
+ "htpasswdFile": "prototype/.htpasswd",
13
+ "prototypeBypassAuth": true,
14
+ "reviewHost": "",
15
+ "projectId": "",
16
+ "deployVersion": ""
17
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "version": 2,
3
+ "jobs": []
4
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "version": 4,
3
+ "documents": {}
4
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "schemaVersion": "1.0",
3
+ "extends": "kaopiz-default",
4
+ "meta": { "source": "docops-init" }
5
+ }
@@ -0,0 +1,192 @@
1
+ # Entity registry migration guide
2
+
3
+ > **Greenfield projects:** `docops init` and `docops migrate --repair` scaffold **entityId** keying by default (`.docops/registry/`, review registry v4). Path-keyed layouts are **legacy only** and will be removed in a future release.
4
+ >
5
+ > **Note:** `.docops/registry/documents/` is created by `docops registry sync` (also run automatically on init/repair/index when design docs exist). An empty project has no entity files until the first sync.
6
+
7
+ > **Audience:** Teams on legacy path-keyed docops (comments, prototype screen-map, review queue v3) migrating to stable **entity IDs** in `.docops/registry/`.
8
+ > **Prerequisite:** [MIGRATION.md](MIGRATION.md) — contract layout (`legacy` → `docops`) should be done first (or in parallel on the same branch).
9
+
10
+ **Related:** [README.md](README.md) · [modules/comments.md](modules/comments.md) · [modules/prototype.md](modules/prototype.md) · [examples/full-docops.config.json](../examples/full-docops.config.json)
11
+
12
+ ---
13
+
14
+ ## What changes
15
+
16
+ | Before (legacy) | After (entity registry) |
17
+ |-----------------|---------------------------|
18
+ | Comments at `comments/{logical_path}/` | `comments/documents/{entityId}/` or `comments/screens/{screenId}/` |
19
+ | `prototype/screen-map.json` | `registry/screens/{screenId}.json` + `registry/manifest.json` |
20
+ | Review queue keyed by `logicalPath` (v3) | Keys = `entityId` (v4) |
21
+ | APIs filter by `filePath` | Prefer `entityId` / `screenId` (`filePath` deprecated one release) |
22
+
23
+ **Source of truth:** git files under `.docops/registry/` — **not** a Postgres mirror. Kari Writer caches registry reads in **Redis** (invalidated on git push via repo generation bump). The existing `git_document_registry` table still lists design docs from `docs/` scans; it is separate from entity JSON files.
24
+
25
+ ---
26
+
27
+ ## 1. Detect readiness
28
+
29
+ On the branch you will migrate, confirm:
30
+
31
+ | Check | Path | Required |
32
+ |-------|------|----------|
33
+ | Docops contract | `.docops/docops.config.json` | Yes |
34
+ | Registry path configured | `"paths": { "registry": ".docops/registry", ... }` | Yes |
35
+ | Markdown in place | `docs/` per `docTypes.*.path` | Yes |
36
+ | Writer storage layout | Project Settings → `docops` when `.docops/` paths are live | Yes before Writer reads |
37
+
38
+ Legacy screen-map may still exist until step 2 runs — `registry sync` imports then removes it.
39
+
40
+ ---
41
+
42
+ ## 2. Migration commands (ordered)
43
+
44
+ Run **on each git branch** that should use ID-keyed artifacts (e.g. `main`, release branches). Install [ai-spector](https://www.npmjs.com/package/ai-spector) locally or use `npx`.
45
+
46
+ ```bash
47
+ # Preview (no writes)
48
+ npx ai-spector docops registry sync --dry-run
49
+ npx ai-spector docops comments migrate --dry-run
50
+ npx ai-spector docops review-registry migrate --dry-run
51
+
52
+ # Apply
53
+ npx ai-spector docops registry sync
54
+ npx ai-spector docops comments migrate
55
+ npx ai-spector docops review-registry migrate
56
+ ```
57
+
58
+ Or use the bundled script (from repo root):
59
+
60
+ ```bash
61
+ bash .docops/guide/scripts/migrate-entity-registry.sh --dry-run
62
+ bash .docops/guide/scripts/migrate-entity-registry.sh
63
+ ```
64
+
65
+ ### Step 2a — `registry sync`
66
+
67
+ - Scans `docs/` and creates/updates `registry/documents/{entityId}.json`
68
+ - Reuses existing `git_document_registry.registry_id` UUIDs when Writer DB is linked (optional; IDs are assigned in git if unknown)
69
+ - Imports `screen-map.json` → `registry/screens/*.json` + `registry/manifest.json`, then **deletes** legacy screen-map files
70
+ - Safe to re-run; does not overwrite unrelated files
71
+
72
+ ### Step 2b — `comments migrate`
73
+
74
+ - Moves `comments/{path}/` → `comments/documents/{entityId}/` or `comments/screens/{screenId}/`
75
+ - Backfills `meta_data.json`: `targetId`, `commentType`; drops redundant `filePath` from storage shape
76
+ - **Requires** registry from step 2a so paths resolve to entity IDs
77
+ - **Detail:** [guides/COMMENTS_ENTITY_MIGRATION.md](guides/COMMENTS_ENTITY_MIGRATION.md)
78
+
79
+ ### Step 2c — `review-registry migrate`
80
+
81
+ - Rekeys `.docops/review-queue/registry.json` from v3 (path keys) to v4 (`entityId` keys)
82
+ - Strips path fields from entries; resolve paths from registry at read time
83
+
84
+ ---
85
+
86
+ ## 3. Writer configuration
87
+
88
+ 1. **Storage layout:** Project Settings → Docops → set `storage_layout` to **`docops`** once `.docops/` contract paths exist on the working branch.
89
+ 2. **Comments API:** List/create with `entityId` (documents) or `screenId` (prototype). `filePath` still works but returns `Deprecation` / `Sunset` headers until 2026-12-31.
90
+ 3. **Cache:** After git push, Writer bumps Redis generation — registry JSON is re-read from git; no manual DB sync for entity files.
91
+
92
+ ---
93
+
94
+ ## 4. Legacy layout (`storage_layout: legacy`)
95
+
96
+ If the project still uses repo-root `comments/` or `prototype/screen-map.json` (not under `.docops/`):
97
+
98
+ 1. Complete [MIGRATION.md §2](MIGRATION.md#2-path-reference-legacy--contract) path copy first
99
+ 2. Set Writer `storage_layout: docops`
100
+ 3. Run §2 commands above — comment folders follow the configured `paths.comments` root
101
+
102
+ ---
103
+
104
+ ## 5. Verify
105
+
106
+ ### Git tree
107
+
108
+ ```bash
109
+ ls .docops/registry/documents/ # one JSON per design doc
110
+ ls .docops/registry/screens/ # one JSON per prototype screen
111
+ test -f .docops/registry/manifest.json
112
+ # screen-map should be gone after sync (unless --skip-screen-map)
113
+ test ! -f .docops/prototype/screen-map.json || echo "WARN: legacy screen-map still present"
114
+ ```
115
+
116
+ ### Comments
117
+
118
+ ```bash
119
+ npx ai-spector comments list --entity <uuid> --json
120
+ npx ai-spector comments list --screen-id <screenId> --type prototype --json
121
+ ```
122
+
123
+ ### Writer UI
124
+
125
+ - [ ] Documents tree loads
126
+ - [ ] Document comments visible after renaming a doc path (re-run `registry sync` on branch)
127
+ - [ ] Prototype gallery / per-screen comments work
128
+ - [ ] Review queue shows correct docs
129
+
130
+ ### API deprecation
131
+
132
+ Requests using only `filePath` receive:
133
+
134
+ ```http
135
+ Deprecation: true
136
+ Sunset: Sat, 31 Dec 2026 23:59:59 GMT
137
+ Link: </contracts/bootstrap/docs/MIGRATION.md#61-comment-storage-keys>; rel="deprecation"
138
+ ```
139
+
140
+ Update clients to send `entityId` or `screenId`.
141
+
142
+ ---
143
+
144
+ ## 6. Rollback (emergency)
145
+
146
+ Entity migration touches git only. To roll back **before push**:
147
+
148
+ ```bash
149
+ git checkout -- .docops/registry .docops/comments .docops/review-queue .docops/prototype
150
+ ```
151
+
152
+ If already pushed, restore from a pre-migration tag/branch. Dual-read of legacy comment paths is **not** guaranteed after the migration window — keep a backup branch.
153
+
154
+ ---
155
+
156
+ ## 7. For AI agents
157
+
158
+ | Rule | Detail |
159
+ |------|--------|
160
+ | Order | `registry sync` → `comments migrate` → `review-registry migrate` |
161
+ | Branch scope | Run on every branch that needs ID-keyed artifacts |
162
+ | No DB entity mirror | Do not insert into Postgres from `registry/documents/*.json`; git + Redis cache only |
163
+ | screen-map | Do not recreate `screen-map.json` after sync; use `registry/screens/` |
164
+ | UUID stability | Never change `entityId` / `screenId` when paths move — only update path fields inside entity JSON |
165
+
166
+ ---
167
+
168
+ ## 8. Schema references
169
+
170
+ | File | Schema |
171
+ |------|--------|
172
+ | `registry/documents/{id}.json` | [schemas/registry/document.entity.schema.json](../schemas/registry/document.entity.schema.json) |
173
+ | `registry/screens/{id}.json` | [schemas/registry/screen.entity.schema.json](../schemas/registry/screen.entity.schema.json) |
174
+ | `registry/manifest.json` | [schemas/registry/manifest.schema.json](../schemas/registry/manifest.schema.json) |
175
+
176
+ Examples: [examples/registry/](../examples/registry/)
177
+
178
+ ---
179
+
180
+ ## 9. Troubleshooting
181
+
182
+ | Symptom | Fix |
183
+ |---------|-----|
184
+ | Comments missing after migrate | Re-run `registry sync`; confirm `entityId` in document JSON matches thread `targetId` |
185
+ | `comments migrate` skips threads | Path not in registry — fix `repoDocs` / `logicalPath`, sync again |
186
+ | Prototype screens empty | Run `registry sync` to import screen-map; or `npx ai-spector prototype manifest` |
187
+ | Writer still reads screen-map | Confirm `storage_layout: docops` and registry has `screens/` |
188
+ | Stale prototype list in UI | Wait ~30s for Redis cache or push a noop commit to bump generation |
189
+
190
+ ---
191
+
192
+ *After migration, see [MIGRATION.md §8](MIGRATION.md#8-after-migration) for ongoing contract maintenance.*