@documentation-robotics/cli 0.1.13 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (351) hide show
  1. package/README.md +74 -2
  2. package/dist/analysis/relationship-classifier.js +2 -9
  3. package/dist/analysis/relationship-classifier.js.map +2 -2
  4. package/dist/analyzers/call-graph-utils.js +2 -2
  5. package/dist/analyzers/call-graph-utils.js.map +2 -2
  6. package/dist/analyzers/cards/build.js +171 -0
  7. package/dist/analyzers/cards/build.js.map +7 -0
  8. package/dist/analyzers/cards/classify.js +42 -0
  9. package/dist/analyzers/cards/classify.js.map +7 -0
  10. package/dist/analyzers/cards/edge-index.js +44 -0
  11. package/dist/analyzers/cards/edge-index.js.map +7 -0
  12. package/dist/analyzers/cards/facts.js +46 -0
  13. package/dist/analyzers/cards/facts.js.map +7 -0
  14. package/dist/analyzers/cards/graph.js +42 -0
  15. package/dist/analyzers/cards/graph.js.map +7 -0
  16. package/dist/analyzers/cards/index.js +8 -0
  17. package/dist/analyzers/cards/index.js.map +7 -0
  18. package/dist/analyzers/cards/tier0.js +18 -0
  19. package/dist/analyzers/cards/tier0.js.map +7 -0
  20. package/dist/analyzers/cards/types.js +1 -0
  21. package/dist/analyzers/cards/types.js.map +7 -0
  22. package/dist/analyzers/cbm-analyzer.js +195 -171
  23. package/dist/analyzers/cbm-analyzer.js.map +2 -2
  24. package/dist/analyzers/cbm-responses.js +336 -0
  25. package/dist/analyzers/cbm-responses.js.map +7 -0
  26. package/dist/analyzers/edge-relationships.js +45 -0
  27. package/dist/analyzers/edge-relationships.js.map +7 -0
  28. package/dist/analyzers/mapping-loader.js +9 -0
  29. package/dist/analyzers/mapping-loader.js.map +2 -2
  30. package/dist/analyzers/tier0-rules.js +153 -0
  31. package/dist/analyzers/tier0-rules.js.map +7 -0
  32. package/dist/analyzers/types.js.map +1 -1
  33. package/dist/analyzers/verify-engine.js +22 -19
  34. package/dist/analyzers/verify-engine.js.map +2 -2
  35. package/dist/audit/relationships/ai/prompts.js +10 -10
  36. package/dist/audit/relationships/ai/prompts.js.map +2 -2
  37. package/dist/audit/relationships/analysis/layer-templates.js +52 -52
  38. package/dist/audit/relationships/analysis/layer-templates.js.map +1 -1
  39. package/dist/cli.js +112 -28
  40. package/dist/cli.js.map +3 -3
  41. package/dist/coding-agents/agents/claude-code.js +3 -1
  42. package/dist/coding-agents/agents/claude-code.js.map +2 -2
  43. package/dist/coding-agents/claude-code-client.js +2 -1
  44. package/dist/coding-agents/claude-code-client.js.map +2 -2
  45. package/dist/coding-agents/copilot-client.js +17 -12
  46. package/dist/coding-agents/copilot-client.js.map +2 -2
  47. package/dist/coding-agents/default-permissions.js +152 -0
  48. package/dist/coding-agents/default-permissions.js.map +7 -0
  49. package/dist/coding-agents/drbot-mcp.js +167 -0
  50. package/dist/coding-agents/drbot-mcp.js.map +7 -0
  51. package/dist/commands/add.js +12 -7
  52. package/dist/commands/add.js.map +2 -2
  53. package/dist/commands/analyzer.js +134 -23
  54. package/dist/commands/analyzer.js.map +2 -2
  55. package/dist/commands/audit.js +6 -6
  56. package/dist/commands/audit.js.map +2 -2
  57. package/dist/commands/changeset-verify.js +55 -0
  58. package/dist/commands/changeset-verify.js.map +7 -0
  59. package/dist/commands/changeset.js +261 -147
  60. package/dist/commands/changeset.js.map +2 -2
  61. package/dist/commands/delete.js +52 -19
  62. package/dist/commands/delete.js.map +3 -3
  63. package/dist/commands/element.js +3 -2
  64. package/dist/commands/element.js.map +2 -2
  65. package/dist/commands/farm.js +773 -0
  66. package/dist/commands/farm.js.map +7 -0
  67. package/dist/commands/init.js +11 -1
  68. package/dist/commands/init.js.map +2 -2
  69. package/dist/commands/mcp.js +122 -0
  70. package/dist/commands/mcp.js.map +7 -0
  71. package/dist/commands/relationship.js +251 -47
  72. package/dist/commands/relationship.js.map +2 -2
  73. package/dist/commands/reports.js +1 -1
  74. package/dist/commands/reports.js.map +2 -2
  75. package/dist/commands/update.js +56 -24
  76. package/dist/commands/update.js.map +2 -2
  77. package/dist/commands/upgrade.js +99 -11
  78. package/dist/commands/upgrade.js.map +3 -3
  79. package/dist/commands/validate.js +41 -3
  80. package/dist/commands/validate.js.map +2 -2
  81. package/dist/commands/version.js +2 -2
  82. package/dist/commands/version.js.map +2 -2
  83. package/dist/commands/visualize.js +4 -3
  84. package/dist/commands/visualize.js.map +2 -2
  85. package/dist/config.js +83 -0
  86. package/dist/config.js.map +7 -0
  87. package/dist/core/annotation-store.js +138 -0
  88. package/dist/core/annotation-store.js.map +7 -0
  89. package/dist/core/catalog-migration.js +33 -0
  90. package/dist/core/catalog-migration.js.map +7 -0
  91. package/dist/core/changeset-analysis.js +421 -0
  92. package/dist/core/changeset-analysis.js.map +7 -0
  93. package/dist/core/changeset-base-index.js +153 -0
  94. package/dist/core/changeset-base-index.js.map +7 -0
  95. package/dist/core/changeset-brief-delta.js +102 -0
  96. package/dist/core/changeset-brief-delta.js.map +7 -0
  97. package/dist/core/changeset-graph.js +281 -0
  98. package/dist/core/changeset-graph.js.map +7 -0
  99. package/dist/core/changeset-only-guard.js +32 -0
  100. package/dist/core/changeset-only-guard.js.map +7 -0
  101. package/dist/core/changeset-summary.js +68 -0
  102. package/dist/core/changeset-summary.js.map +7 -0
  103. package/dist/core/changeset-validator.js +66 -20
  104. package/dist/core/changeset-validator.js.map +2 -2
  105. package/dist/core/changeset-verify.js +518 -0
  106. package/dist/core/changeset-verify.js.map +7 -0
  107. package/dist/core/changeset.js +56 -9
  108. package/dist/core/changeset.js.map +2 -2
  109. package/dist/core/element-type-migration.js +145 -0
  110. package/dist/core/element-type-migration.js.map +7 -0
  111. package/dist/core/farm-manifest.js +140 -0
  112. package/dist/core/farm-manifest.js.map +7 -0
  113. package/dist/core/farm-sync-engine.js +346 -0
  114. package/dist/core/farm-sync-engine.js.map +7 -0
  115. package/dist/core/farm-sync-state.js +167 -0
  116. package/dist/core/farm-sync-state.js.map +7 -0
  117. package/dist/core/manifest.js +6 -3
  118. package/dist/core/manifest.js.map +2 -2
  119. package/dist/core/migration-registry.js +84 -1
  120. package/dist/core/migration-registry.js.map +2 -2
  121. package/dist/core/model-upgrade.js +102 -0
  122. package/dist/core/model-upgrade.js.map +7 -0
  123. package/dist/core/model.js +257 -44
  124. package/dist/core/model.js.map +3 -3
  125. package/dist/core/mutation-handler.js +71 -6
  126. package/dist/core/mutation-handler.js.map +2 -2
  127. package/dist/core/relationship-migration-table.js +6639 -0
  128. package/dist/core/relationship-migration-table.js.map +7 -0
  129. package/dist/core/relationship-migration.js +272 -0
  130. package/dist/core/relationship-migration.js.map +7 -0
  131. package/dist/core/relationship-prune.js +49 -0
  132. package/dist/core/relationship-prune.js.map +7 -0
  133. package/dist/core/relationship-staging.js +68 -0
  134. package/dist/core/relationship-staging.js.map +7 -0
  135. package/dist/core/relationships.js +26 -4
  136. package/dist/core/relationships.js.map +2 -2
  137. package/dist/core/report-data-model.js +7 -13
  138. package/dist/core/report-data-model.js.map +2 -2
  139. package/dist/core/staged-changeset-storage.js +64 -17
  140. package/dist/core/staged-changeset-storage.js.map +2 -2
  141. package/dist/core/staged-source-reference.js +28 -0
  142. package/dist/core/staged-source-reference.js.map +7 -0
  143. package/dist/core/staging-area.js +83 -18
  144. package/dist/core/staging-area.js.map +2 -2
  145. package/dist/core/virtual-projection.js +14 -5
  146. package/dist/core/virtual-projection.js.map +2 -2
  147. package/dist/export/archimate-exporter.js +1 -0
  148. package/dist/export/archimate-exporter.js.map +2 -2
  149. package/dist/generated/compiled-validators.js +2 -2
  150. package/dist/generated/compiled-validators.js.map +2 -2
  151. package/dist/generated/layer-registry.js +16 -16
  152. package/dist/generated/layer-registry.js.map +2 -2
  153. package/dist/generated/node-types.js +186 -168
  154. package/dist/generated/node-types.js.map +2 -2
  155. package/dist/generated/relationship-index.js +2209 -7727
  156. package/dist/generated/relationship-index.js.map +2 -2
  157. package/dist/integrations/claude_code/agents/dr-architect.md +16 -3
  158. package/dist/integrations/claude_code/agents/dr-extractor.md +1 -1
  159. package/dist/integrations/claude_code/commands/dr-analyzer.md +565 -0
  160. package/dist/integrations/claude_code/commands/dr-map.md +13 -0
  161. package/dist/integrations/claude_code/commands/dr-plan.md +40 -0
  162. package/dist/integrations/claude_code/commands/dr-relate.md +106 -96
  163. package/dist/integrations/claude_code/commands/dr-verify.md +45 -2
  164. package/dist/integrations/claude_code/docs/END_TO_END_WALKTHROUGH.md +14 -0
  165. package/dist/integrations/claude_code/docs/MCP_SERVER.md +79 -0
  166. package/dist/integrations/claude_code/docs/QUICK_START.md +37 -8
  167. package/dist/integrations/claude_code/docs/README.md +52 -1
  168. package/dist/integrations/claude_code/skills/dr_01_motivation_layer/SKILL.md +93 -72
  169. package/dist/integrations/claude_code/skills/dr_02_business_layer/SKILL.md +163 -126
  170. package/dist/integrations/claude_code/skills/dr_03_product_layer/SKILL.md +161 -126
  171. package/dist/integrations/claude_code/skills/dr_04_security_layer/SKILL.md +153 -133
  172. package/dist/integrations/claude_code/skills/dr_05_application_layer/SKILL.md +129 -100
  173. package/dist/integrations/claude_code/skills/dr_06_technology_layer/SKILL.md +111 -94
  174. package/dist/integrations/claude_code/skills/dr_07_api_layer/SKILL.md +143 -157
  175. package/dist/integrations/claude_code/skills/dr_08_data_model_layer/SKILL.md +117 -33
  176. package/dist/integrations/claude_code/skills/dr_09_dataset_layer/SKILL.md +74 -25
  177. package/dist/integrations/claude_code/skills/dr_10_ux_layer/SKILL.md +88 -12
  178. package/dist/integrations/claude_code/skills/dr_11_navigation_layer/SKILL.md +83 -24
  179. package/dist/integrations/claude_code/skills/dr_12_apm_layer/SKILL.md +57 -12
  180. package/dist/integrations/claude_code/skills/dr_13_testing_layer/SKILL.md +92 -15
  181. package/dist/integrations/claude_code/skills/dr_change_planning/SKILL.md +119 -0
  182. package/dist/integrations/claude_code/skills/dr_changeset_reviewer/SKILL.md +3 -0
  183. package/dist/integrations/claude_code/skills/dr_engineering_guide/SKILL.md +1 -1
  184. package/dist/integrations/github_copilot/agents/dr-architect.md +1 -1
  185. package/dist/integrations/github_copilot/skills/dr_01_motivation_layer/SKILL.md +182 -102
  186. package/dist/integrations/github_copilot/skills/dr_02_business_layer/SKILL.md +266 -148
  187. package/dist/integrations/github_copilot/skills/dr_03_product_layer/SKILL.md +547 -86
  188. package/dist/integrations/github_copilot/skills/dr_04_security_layer/SKILL.md +164 -169
  189. package/dist/integrations/github_copilot/skills/dr_05_application_layer/SKILL.md +420 -150
  190. package/dist/integrations/github_copilot/skills/dr_06_technology_layer/SKILL.md +331 -138
  191. package/dist/integrations/github_copilot/skills/dr_07_api_layer/SKILL.md +265 -201
  192. package/dist/integrations/github_copilot/skills/dr_08_data_model_layer/SKILL.md +181 -58
  193. package/dist/integrations/github_copilot/skills/dr_09_dataset_layer/SKILL.md +209 -57
  194. package/dist/integrations/github_copilot/skills/dr_10_ux_layer/SKILL.md +277 -112
  195. package/dist/integrations/github_copilot/skills/dr_11_navigation_layer/SKILL.md +219 -70
  196. package/dist/integrations/github_copilot/skills/dr_12_apm_layer/SKILL.md +189 -105
  197. package/dist/integrations/github_copilot/skills/dr_13_testing_layer/SKILL.md +222 -102
  198. package/dist/integrations/github_copilot/skills/dr_change_planning/SKILL.md +119 -0
  199. package/dist/integrations/github_copilot/skills/dr_changeset_reviewer/SKILL.md +3 -0
  200. package/dist/integrations/hash-utils.js.map +2 -2
  201. package/dist/mcp/api-key-manager.js +111 -0
  202. package/dist/mcp/api-key-manager.js.map +7 -0
  203. package/dist/mcp/changeset-only.js +34 -0
  204. package/dist/mcp/changeset-only.js.map +7 -0
  205. package/dist/mcp/http-transport.js +176 -0
  206. package/dist/mcp/http-transport.js.map +7 -0
  207. package/dist/mcp/resource-registry.js +97 -0
  208. package/dist/mcp/resource-registry.js.map +7 -0
  209. package/dist/mcp/tool-registry.js +60 -0
  210. package/dist/mcp/tool-registry.js.map +7 -0
  211. package/dist/mcp/tools/annotation-create.js +39 -0
  212. package/dist/mcp/tools/annotation-create.js.map +7 -0
  213. package/dist/mcp/tools/annotation-delete.js +29 -0
  214. package/dist/mcp/tools/annotation-delete.js.map +7 -0
  215. package/dist/mcp/tools/annotation-get.js +29 -0
  216. package/dist/mcp/tools/annotation-get.js.map +7 -0
  217. package/dist/mcp/tools/annotation-list.js +24 -0
  218. package/dist/mcp/tools/annotation-list.js.map +7 -0
  219. package/dist/mcp/tools/annotation-reply.js +34 -0
  220. package/dist/mcp/tools/annotation-reply.js.map +7 -0
  221. package/dist/mcp/tools/annotation-shared.js +10 -0
  222. package/dist/mcp/tools/annotation-shared.js.map +7 -0
  223. package/dist/mcp/tools/annotation-update.js +39 -0
  224. package/dist/mcp/tools/annotation-update.js.map +7 -0
  225. package/dist/mcp/tools/changeset-analysis-tools.js +78 -0
  226. package/dist/mcp/tools/changeset-analysis-tools.js.map +7 -0
  227. package/dist/mcp/tools/changeset-editing.js +184 -0
  228. package/dist/mcp/tools/changeset-editing.js.map +7 -0
  229. package/dist/mcp/tools/changeset-lifecycle.js +83 -0
  230. package/dist/mcp/tools/changeset-lifecycle.js.map +7 -0
  231. package/dist/mcp/tools/changeset-list.js +33 -0
  232. package/dist/mcp/tools/changeset-list.js.map +7 -0
  233. package/dist/mcp/tools/changeset-shared.js +31 -0
  234. package/dist/mcp/tools/changeset-shared.js.map +7 -0
  235. package/dist/mcp/tools/changeset-show.js +55 -0
  236. package/dist/mcp/tools/changeset-show.js.map +7 -0
  237. package/dist/mcp/tools/changeset-verify.js +43 -0
  238. package/dist/mcp/tools/changeset-verify.js.map +7 -0
  239. package/dist/mcp/tools/chat-launch.js +50 -0
  240. package/dist/mcp/tools/chat-launch.js.map +7 -0
  241. package/dist/mcp/tools/chat-status.js +26 -0
  242. package/dist/mcp/tools/chat-status.js.map +7 -0
  243. package/dist/mcp/tools/index.js +65 -0
  244. package/dist/mcp/tools/index.js.map +7 -0
  245. package/dist/mcp/tools/model-add.js +107 -0
  246. package/dist/mcp/tools/model-add.js.map +7 -0
  247. package/dist/mcp/tools/model-delete.js +99 -0
  248. package/dist/mcp/tools/model-delete.js.map +7 -0
  249. package/dist/mcp/tools/model-export.js +72 -0
  250. package/dist/mcp/tools/model-export.js.map +7 -0
  251. package/dist/mcp/tools/model-info.js +51 -0
  252. package/dist/mcp/tools/model-info.js.map +7 -0
  253. package/dist/mcp/tools/model-list.js +53 -0
  254. package/dist/mcp/tools/model-list.js.map +7 -0
  255. package/dist/mcp/tools/model-reload.js +34 -0
  256. package/dist/mcp/tools/model-reload.js.map +7 -0
  257. package/dist/mcp/tools/model-search.js +102 -0
  258. package/dist/mcp/tools/model-search.js.map +7 -0
  259. package/dist/mcp/tools/model-show.js +68 -0
  260. package/dist/mcp/tools/model-show.js.map +7 -0
  261. package/dist/mcp/tools/model-stats.js +22 -0
  262. package/dist/mcp/tools/model-stats.js.map +7 -0
  263. package/dist/mcp/tools/model-trace.js +118 -0
  264. package/dist/mcp/tools/model-trace.js.map +7 -0
  265. package/dist/mcp/tools/model-update.js +121 -0
  266. package/dist/mcp/tools/model-update.js.map +7 -0
  267. package/dist/mcp/tools/model-validate.js +78 -0
  268. package/dist/mcp/tools/model-validate.js.map +7 -0
  269. package/dist/mcp/tools/relationship-tools.js +98 -0
  270. package/dist/mcp/tools/relationship-tools.js.map +7 -0
  271. package/dist/mcp/tools/shared.js +126 -0
  272. package/dist/mcp/tools/shared.js.map +7 -0
  273. package/dist/mcp/tools/spec-type.js +90 -0
  274. package/dist/mcp/tools/spec-type.js.map +7 -0
  275. package/dist/reports/model-layer-report-generator.js +5 -3
  276. package/dist/reports/model-layer-report-generator.js.map +2 -2
  277. package/dist/reports/model-readme-generator.js +116 -0
  278. package/dist/reports/model-readme-generator.js.map +7 -0
  279. package/dist/reports/model-report-data.js +37 -1
  280. package/dist/reports/model-report-data.js.map +2 -2
  281. package/dist/reports/model-report-orchestrator.js +29 -6
  282. package/dist/reports/model-report-orchestrator.js.map +2 -2
  283. package/dist/reports/model-report-utils.js +9 -0
  284. package/dist/reports/model-report-utils.js.map +7 -0
  285. package/dist/schemas/bundled/analyzers/cbm.json +1186 -68
  286. package/dist/schemas/bundled/analyzers/manifest.json +2 -2
  287. package/dist/schemas/bundled/api.json +1029 -1658
  288. package/dist/schemas/bundled/apm.json +499 -734
  289. package/dist/schemas/bundled/application.json +745 -370
  290. package/dist/schemas/bundled/base.json +3 -220
  291. package/dist/schemas/bundled/business.json +452 -366
  292. package/dist/schemas/bundled/data-model.json +403 -383
  293. package/dist/schemas/bundled/data-store.json +334 -558
  294. package/dist/schemas/bundled/manifest.json +18 -18
  295. package/dist/schemas/bundled/motivation.json +349 -368
  296. package/dist/schemas/bundled/navigation.json +415 -731
  297. package/dist/schemas/bundled/product.json +325 -159
  298. package/dist/schemas/bundled/security.json +864 -1232
  299. package/dist/schemas/bundled/technology.json +574 -703
  300. package/dist/schemas/bundled/testing.json +718 -1643
  301. package/dist/schemas/bundled/ux.json +739 -1352
  302. package/dist/server/schemas.js +8 -0
  303. package/dist/server/schemas.js.map +2 -2
  304. package/dist/server/server.js +234 -31
  305. package/dist/server/server.js.map +2 -2
  306. package/dist/server-entry.js +2 -1
  307. package/dist/server-entry.js.map +2 -2
  308. package/dist/telemetry/config.js +2 -40
  309. package/dist/telemetry/config.js.map +2 -2
  310. package/dist/telemetry/index.js +1 -1
  311. package/dist/types/index.js.map +2 -2
  312. package/dist/utils/ansi-suppressor.js +23 -0
  313. package/dist/utils/ansi-suppressor.js.map +7 -0
  314. package/dist/utils/attribute-patch.js +41 -0
  315. package/dist/utils/attribute-patch.js.map +7 -0
  316. package/dist/utils/color-utils.js +34 -0
  317. package/dist/utils/color-utils.js.map +7 -0
  318. package/dist/utils/element-reference-shape.js +15 -1
  319. package/dist/utils/element-reference-shape.js.map +3 -3
  320. package/dist/utils/error-hints.js +29 -0
  321. package/dist/utils/error-hints.js.map +7 -0
  322. package/dist/utils/errors.js +75 -10
  323. package/dist/utils/errors.js.map +2 -2
  324. package/dist/utils/globals.js +17 -1
  325. package/dist/utils/globals.js.map +2 -2
  326. package/dist/utils/project-paths.js +50 -3
  327. package/dist/utils/project-paths.js.map +2 -2
  328. package/dist/utils/reference-path-parser.js +49 -0
  329. package/dist/utils/reference-path-parser.js.map +7 -0
  330. package/dist/utils/source-reference.js +17 -10
  331. package/dist/utils/source-reference.js.map +2 -2
  332. package/dist/utils/spec-version.js +10 -2
  333. package/dist/utils/spec-version.js.map +2 -2
  334. package/dist/validators/composed-reference-validator.js +240 -0
  335. package/dist/validators/composed-reference-validator.js.map +7 -0
  336. package/dist/validators/reference-validator.js +57 -13
  337. package/dist/validators/reference-validator.js.map +3 -3
  338. package/dist/validators/relationship-schema-validator.js +33 -5
  339. package/dist/validators/relationship-schema-validator.js.map +3 -3
  340. package/dist/validators/schema-validator.js +27 -9
  341. package/dist/validators/schema-validator.js.map +2 -2
  342. package/dist/validators/types.js.map +1 -1
  343. package/dist/viewer/README.md +6 -6
  344. package/dist/viewer/assets/main-CxzcuU_o.js +84 -0
  345. package/dist/viewer/assets/main-j-7ULYpm.css +1 -0
  346. package/dist/viewer/index.html +2 -2
  347. package/dist/viewer/manifest.json +10 -10
  348. package/dist/viewer/version.json +1 -1
  349. package/package.json +7 -3
  350. package/dist/viewer/assets/main-B7AOQXXX.js +0 -81
  351. package/dist/viewer/assets/main-vdrFrG7q.css +0 -1
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: dr-architect
3
3
  description: Comprehensive Documentation Robotics architect and implementer. Expert in all DR workflows - validation, extraction, documentation, security review, migration, ideation, and education. Intelligent intent-based routing with adaptive autonomy. Single agent that handles everything related to DR models.
4
- tools: Bash, Read, Edit, Write, Glob, Grep, WebSearch, WebFetch
4
+ tools: Bash, Read, Edit, Write, Glob, Grep, WebSearch, WebFetch, mcp__dr__model_list, mcp__dr__model_show, mcp__dr__model_search, mcp__dr__model_stats, mcp__dr__model_info, mcp__dr__model_trace, mcp__dr__model_validate, mcp__dr__model_export, mcp__dr__model_reload, mcp__dr__changeset_list, mcp__dr__changeset_show, mcp__dr__changeset_create, mcp__dr__changeset_activate, mcp__dr__changeset_deactivate, mcp__dr__changeset_impact, mcp__dr__changeset_brief, mcp__dr__changeset_verify, mcp__dr__changeset_update, mcp__dr__changeset_unstage, mcp__dr__spec_type, mcp__dr__model_add, mcp__dr__model_update, mcp__dr__model_delete, mcp__dr__relationship_add, mcp__dr__relationship_delete, mcp__dr__annotation_list, mcp__dr__annotation_get, mcp__dr__chat_status
5
5
  color: orange
6
6
  ---
7
7
 
@@ -22,11 +22,24 @@ You are the **DR Architect** — a unified expert in Documentation Robotics. You
22
22
 
23
23
  ## Tools
24
24
 
25
- - **Bash**: DR CLI commands (`dr add`, `dr validate`, `dr changeset`, etc.)
25
+ - **dr MCP tools** (`mcp__dr__*`, when the `dr` MCP server is connected, as it is in the `dr visualize` chat): prefer these to running `dr` through Bash. See **Working through the dr MCP server** below.
26
+ - **Bash**: DR CLI commands (`dr add`, `dr validate`, `dr changeset`, etc.); the fallback when the MCP tools are not available
26
27
  - **Read/Glob/Grep**: Read source code and model files
27
28
  - **WebSearch/WebFetch**: Research technologies and patterns
28
29
  - **Edit/Write**: Model YAML files only (never use for model data — use CLI)
29
30
 
31
+ ## Working through the dr MCP server
32
+
33
+ When the `mcp__dr__*` tools are available, plan a change as a staged changeset with them instead of `dr` commands:
34
+
35
+ 1. **Look first**: `model_search`, `model_show`, `model_list` to find what exists; `spec_type` to see what a type requires and which relationships the catalog allows from it.
36
+ 2. **Open a changeset**: `changeset_create` with a short name for the change (it activates the new changeset). `changeset_list` / `changeset_activate` resume an existing one.
37
+ 3. **Stage the change**: `model_add`, `model_update`, `model_delete`, `relationship_add`, `relationship_delete`. With a changeset active these stage instead of writing the model, and relationships may join elements the changeset itself adds. `changeset_update` renames or re-describes the changeset and `changeset_unstage` drops a staged change. Discarding a changeset is the user's step.
38
+ 4. **Pressure-test it**: `changeset_impact` for what the change touches, `changeset_brief` for a review summary. Fix what they surface, then report the brief to the user. Once code is built, `changeset_verify` compares the plan with what was built.
39
+ 5. **Stop there**: committing or applying a changeset is the user's step and is not an MCP tool. Tell the user the changeset is ready for review.
40
+
41
+ Some sessions only allow changes through a changeset: a write with no active changeset is refused with a message saying to call `changeset_create` first. Do that and retry; don't fall back to Bash or to editing files.
42
+
30
43
  ## The 12-Layer Model
31
44
 
32
45
  ```
@@ -44,7 +57,7 @@ You are the **DR Architect** — a unified expert in Documentation Robotics. You
44
57
  12. Testing — VERIFY (ISP coverage model — 17 entity types)
45
58
  ```
46
59
 
47
- Cross-layer direction: higher layers reference lower layers (e.g., API references Application, Application references Data Model).
60
+ Cross-layer direction follows the predicate, not the layer order (`spec/DESIGN_CHARTER.md`): an API operation `realizes` an application function, an application function `accesses` a data object, an object schema `maps-to` a data-store collection. The relationship catalog is the authority on valid source/predicate/destination triples.
48
61
 
49
62
  ## Intent Routing
50
63
 
@@ -269,7 +269,7 @@ Recommendations:
269
269
  1. **Use kebab-case for all element IDs**: Element names should be lowercase with hyphens, not spaces or underscores
270
270
  2. **Create realistic, meaningful descriptions**: Each element should have a clear description of its purpose
271
271
  3. **Every `dr add` must include source metadata**: No exceptions. The test suite enforces `source_files_exist` assertions
272
- 4. **Establish cross-layer references**: Use `dr relationship add` to link API operations to application services, services to business capabilities, etc.
272
+ 4. **Establish cross-layer references**: Use `dr relationship add` to link API operations to application services, services to business capabilities, etc. Within reason, every connection the spec models for a type is expected, though not every one will exist. For each element you add, run `dr schema relationship <layer>.<type>` to see what its type can connect to, and add each connection the code shows (calls, imports, handlers, reads and writes). Leave out the ones the code gives no evidence for.
273
273
  5. **Run validation after each batch**: Extract ~5 elements, validate immediately, fix issues before continuing
274
274
  6. **Flag uncertain mappings**: If an element might be misclassified or its purpose unclear, flag it in the report for manual review
275
275
 
@@ -0,0 +1,565 @@
1
+ ---
2
+ description: Discover, install, index, and query code analyzers. Supports graph-based analysis of your codebase with dual-root awareness (metadata root may differ from source code root).
3
+ argument-hint: "[discover|status|index|endpoints|services|datastores|callers|callees|query|verify] [options]"
4
+ ---
5
+
6
+ # Code Analyzer Management
7
+
8
+ Discover, install, and manage code analyzers that scan your codebase and build a code graph for verification and querying. These commands respect the configured codebase root, allowing metadata (model) and source code to reside in separate directories.
9
+
10
+ ## Overview
11
+
12
+ Analyzers are optional but powerful: they enable verification of your architecture model against actual code, detection of missing or drifted elements, and deep code querying. The DR CLI currently supports **Codebase Memory** (CBM), a graph-based analyzer.
13
+
14
+ ## Key Concept: Dual-Root Architecture
15
+
16
+ Your Documentation Robotics project has two roots:
17
+
18
+ - **Model Root** (project root): The directory that **contains** your `documentation-robotics/` folder (manifest, changesets, layers live under `documentation-robotics/model/`)
19
+ - **Codebase Root**: Where your actual source code is located
20
+
21
+ These can be the **same directory** (typical case) or **different directories** (useful for monorepos, federated architectures, or farms).
22
+
23
+ ### Resolution Priority
24
+
25
+ When you run analyzer commands, the codebase root is resolved in this order:
26
+
27
+ 1. **`--codebase-path` CLI flag** — Global option that overrides all other resolution methods
28
+ 2. **`manifest.codebase_path`** — Path relative to the model root, i.e. the directory that contains `documentation-robotics/`, **not** the `documentation-robotics/model/` folder the manifest sits in (configured in `documentation-robotics/model/manifest.yaml`; an absolute path also works)
29
+ 3. **Farm auto-resolution** — If your model is inside a farm, resolved from farm configuration
30
+ 4. **Default** — Uses the model root itself
31
+
32
+ **Example Resolution:**
33
+
34
+ ```
35
+ Model root: /workspace/my-app-model/ (contains documentation-robotics/model/manifest.yaml)
36
+ Codebase root: /workspace/my-app/ (source code lives here)
37
+
38
+ Configure in /workspace/my-app-model/documentation-robotics/model/manifest.yaml:
39
+ codebase_path: ../my-app
40
+
41
+ Resolved as /workspace/my-app-model/../my-app = /workspace/my-app
42
+
43
+ Monorepo variant: model root /workspace/monorepo/, code in /workspace/monorepo/services/api/
44
+ codebase_path: services/api
45
+
46
+ Or configure via farm (auto-detected if model is in a farm)
47
+ ```
48
+
49
+ ### Important: Re-indexing After Update
50
+
51
+ If you have a pre-existing CBM project entry that was indexed under the old (incorrect) model root, you need to re-index after enabling the dual-root configuration:
52
+
53
+ ```bash
54
+ # After configuring codebase_path in manifest.yaml:
55
+ dr analyzer index --force
56
+ ```
57
+
58
+ This ensures the analyzer indexes the correct codebase root.
59
+
60
+ ---
61
+
62
+ ## Commands
63
+
64
+ ### discover — Discover and Select Analyzer
65
+
66
+ Scan for installed analyzers and select the one to use for your project.
67
+
68
+ ```bash
69
+ dr analyzer discover [--json] [--reselect]
70
+ ```
71
+
72
+ **Options:**
73
+
74
+ - `--json` — Output discovery results as JSON (includes installed count, available analyzers, selected analyzer)
75
+ - `--reselect` — Force re-selection even if an analyzer is already selected
76
+
77
+ **Output:**
78
+
79
+ - Interactive mode: Prompts to select from installed analyzers
80
+ - JSON mode: Returns list of discovered analyzers with installation status
81
+ - Result: Saves selection to `.dr/analyzers/session.json` (project root)
82
+
83
+ **Examples:**
84
+
85
+ ```bash
86
+ # Interactive discovery and selection
87
+ dr analyzer discover
88
+
89
+ # Non-interactive discovery (auto-selects first installed)
90
+ dr analyzer discover --json
91
+
92
+ # Force re-selection
93
+ dr analyzer discover --reselect
94
+ ```
95
+
96
+ ---
97
+
98
+ ### status — Check Analyzer Status
99
+
100
+ Report on analyzer detection and project index state.
101
+
102
+ ```bash
103
+ dr analyzer status [--name <analyzer>] [--json]
104
+ ```
105
+
106
+ **Options:**
107
+
108
+ - `--name <analyzer>` — Specific analyzer name (default: active analyzer from session)
109
+ - `--json` — Output status as JSON
110
+
111
+ **Status Fields:**
112
+
113
+ - `detected.installed` — Whether analyzer is installed
114
+ - `detected.binary_path` — Path to analyzer binary (if installed)
115
+ - `detected.version` — Analyzer version
116
+ - `detected.mcp_registered` — Whether analyzer is registered as an MCP server
117
+ - `detected.contract_ok` — Whether contract validation passed
118
+ - `indexed` — Whether project has been indexed
119
+ - `fresh` — Whether index is current (not stale)
120
+ - `last_indexed` — Timestamp of last indexing
121
+
122
+ **Important:** Status respects the dual-root configuration — it checks the codebase root for index status, not the model root.
123
+
124
+ **Examples:**
125
+
126
+ ```bash
127
+ # Check active analyzer
128
+ dr analyzer status
129
+
130
+ # Check specific analyzer
131
+ dr analyzer status --name cbm
132
+
133
+ # JSON output
134
+ dr analyzer status --json
135
+ ```
136
+
137
+ ---
138
+
139
+ ### index — Index Project with Analyzer
140
+
141
+ Build the code graph by scanning the codebase. Respects the configured codebase root.
142
+
143
+ ```bash
144
+ dr analyzer index [--name <analyzer>] [--force]
145
+ ```
146
+
147
+ **Options:**
148
+
149
+ - `--name <analyzer>` — Specific analyzer name (default: active analyzer from session)
150
+ - `--force` — Force re-indexing even if index is current
151
+
152
+ **Output:**
153
+
154
+ - Indexing progress
155
+ - Node count (code entities discovered)
156
+ - Edge count (relationships discovered)
157
+ - Git HEAD (commit hash of indexed code)
158
+
159
+ **Codebase Root Resolution:**
160
+
161
+ When indexing, the analyzer:
162
+
163
+ 1. Locates your model root
164
+ 2. Resolves the codebase root using the priority order (see "Dual-Root Architecture")
165
+ 3. Scans the codebase root for code
166
+ 4. Stores index metadata in `.dr/analyzers/` at the model root
167
+
168
+ **Important for Dual-Root Users:**
169
+
170
+ If you recently configured `manifest.codebase_path`, re-index with `--force`:
171
+
172
+ ```bash
173
+ # After updating manifest.codebase_path
174
+ dr analyzer index --force
175
+ ```
176
+
177
+ **Examples:**
178
+
179
+ ```bash
180
+ # Index with active analyzer
181
+ dr analyzer index
182
+
183
+ # Force re-index
184
+ dr analyzer index --force
185
+
186
+ # Index with specific analyzer
187
+ dr analyzer index --name cbm
188
+ ```
189
+
190
+ ---
191
+
192
+ ### endpoints — List Discovered API Endpoints
193
+
194
+ Query the indexed code graph for discovered API endpoints.
195
+
196
+ ```bash
197
+ dr analyzer endpoints [--name <analyzer>] [--json]
198
+ ```
199
+
200
+ **Options:**
201
+
202
+ - `--name <analyzer>` — Specific analyzer name (default: active)
203
+ - `--json` — Output as JSON
204
+
205
+ **Output Columns:**
206
+
207
+ - Method (HTTP verb)
208
+ - Path (URL route)
209
+ - Name (suggested element name)
210
+ - ID Fragment (suggested element ID suffix)
211
+ - Symbol (source code symbol)
212
+ - Confidence (high/medium/low)
213
+ - File (source file path)
214
+
215
+ **Examples:**
216
+
217
+ ```bash
218
+ # List endpoints
219
+ dr analyzer endpoints
220
+
221
+ # JSON output
222
+ dr analyzer endpoints --json
223
+
224
+ # Specific analyzer
225
+ dr analyzer endpoints --name cbm
226
+ ```
227
+
228
+ ---
229
+
230
+ ### services — Query for Services/Components
231
+
232
+ Discover application services and components from the indexed code.
233
+
234
+ ```bash
235
+ dr analyzer services [--name <analyzer>] [--layer <layer>] [--json]
236
+ ```
237
+
238
+ **Options:**
239
+
240
+ - `--name <analyzer>` — Specific analyzer name (default: active)
241
+ - `--layer <layer>` — Filter by suggested layer (e.g., application)
242
+ - `--json` — Output as JSON
243
+
244
+ **Output Columns:**
245
+
246
+ - Name
247
+ - Layer (suggested layer)
248
+ - Type (suggested element type)
249
+ - Symbol (source code symbol)
250
+ - Confidence (high/medium/low)
251
+ - File (source file)
252
+
253
+ **Examples:**
254
+
255
+ ```bash
256
+ # List all services
257
+ dr analyzer services
258
+
259
+ # Filter by layer
260
+ dr analyzer services --layer application
261
+
262
+ # JSON output
263
+ dr analyzer services --json
264
+ ```
265
+
266
+ ---
267
+
268
+ ### datastores — Query for Databases
269
+
270
+ Discover data stores and databases inferred from code (database libraries, ORMs, migrations).
271
+
272
+ ```bash
273
+ dr analyzer datastores [--name <analyzer>] [--json]
274
+ ```
275
+
276
+ **Options:**
277
+
278
+ - `--name <analyzer>` — Specific analyzer name (default: active)
279
+ - `--json` — Output as JSON
280
+
281
+ **Output:**
282
+
283
+ For each datastore:
284
+
285
+ - Name (inferred)
286
+ - Source evidence (files and patterns)
287
+ - Notes (if available)
288
+
289
+ **Examples:**
290
+
291
+ ```bash
292
+ # List datastores
293
+ dr analyzer datastores
294
+
295
+ # JSON output
296
+ dr analyzer datastores --json
297
+ ```
298
+
299
+ ---
300
+
301
+ ### callers — Trace Callers of a Symbol
302
+
303
+ Find all functions or methods that call a specific symbol.
304
+
305
+ ```bash
306
+ dr analyzer callers <qualified-name> [--name <analyzer>] [--depth <n>] [--json]
307
+ ```
308
+
309
+ **Arguments:**
310
+
311
+ - `<qualified-name>` — Fully-qualified name of the target symbol (e.g., `com.example.Service.handleRequest`)
312
+
313
+ **Options:**
314
+
315
+ - `--name <analyzer>` — Specific analyzer name (default: active)
316
+ - `--depth <n>` — Maximum traversal depth (default: 3, max: 10)
317
+ - `--json` — Output as JSON
318
+
319
+ **Output:**
320
+
321
+ For each caller:
322
+
323
+ - Qualified name
324
+ - Source file
325
+ - Source symbol
326
+ - Depth (distance in call graph)
327
+ - Edge type (direct call, inheritance, etc.)
328
+
329
+ **Examples:**
330
+
331
+ ```bash
332
+ # Find callers of a method
333
+ dr analyzer callers com.example.Service.handleRequest
334
+
335
+ # Deeper traversal
336
+ dr analyzer callers com.example.Service.handleRequest --depth 5
337
+
338
+ # JSON output
339
+ dr analyzer callers com.example.Service.handleRequest --json
340
+ ```
341
+
342
+ ---
343
+
344
+ ### callees — Trace Callees of a Symbol
345
+
346
+ Find all functions or methods called by a specific symbol.
347
+
348
+ ```bash
349
+ dr analyzer callees <qualified-name> [--name <analyzer>] [--depth <n>] [--json]
350
+ ```
351
+
352
+ **Arguments:**
353
+
354
+ - `<qualified-name>` — Fully-qualified name of the target symbol
355
+
356
+ **Options:**
357
+
358
+ - `--name <analyzer>` — Specific analyzer name (default: active)
359
+ - `--depth <n>` — Maximum traversal depth (default: 3, max: 10)
360
+ - `--json` — Output as JSON
361
+
362
+ **Output:**
363
+
364
+ For each callee:
365
+
366
+ - Qualified name
367
+ - Source file
368
+ - Source symbol
369
+ - Depth (distance in call graph)
370
+ - Edge type (direct call, inheritance, etc.)
371
+
372
+ **Examples:**
373
+
374
+ ```bash
375
+ # Find methods called by a handler
376
+ dr analyzer callees com.example.Service.handleRequest
377
+
378
+ # Deeper traversal
379
+ dr analyzer callees com.example.Service.handleRequest --depth 5
380
+ ```
381
+
382
+ ---
383
+
384
+ ### query — Execute Raw Graph Query
385
+
386
+ Advanced: Execute a raw query (Cypher) against the analyzer's graph. Use when standard commands don't meet your needs.
387
+
388
+ ```bash
389
+ dr analyzer query "<cypher>" [--name <analyzer>]
390
+ ```
391
+
392
+ **Arguments:**
393
+
394
+ - `<cypher>` — Cypher query string (note: backend-specific, currently supports Cypher for graph analyzers)
395
+
396
+ **Options:**
397
+
398
+ - `--name <analyzer>` — Specific analyzer name (default: active)
399
+
400
+ **Output:**
401
+
402
+ Always JSON format. Query results depend on the query itself.
403
+
404
+ **Warning:**
405
+
406
+ This is an advanced escape hatch. Query syntax and result format depend on the analyzer backend. Use standard commands when possible.
407
+
408
+ **Examples:**
409
+
410
+ ```bash
411
+ # Find all services
412
+ dr analyzer query "MATCH (n:Service) RETURN n.name"
413
+
414
+ # Count nodes
415
+ dr analyzer query "MATCH (n) RETURN count(n)"
416
+
417
+ # Find nodes with specific property
418
+ dr analyzer query "MATCH (n) WHERE n.name CONTAINS 'order' RETURN n"
419
+ ```
420
+
421
+ ---
422
+
423
+ ### verify — Verify Model Against Code Graph
424
+
425
+ Cross-reference your model against discovered code routes. Reports matched, graph-only (suspected gaps), and model-only (possible drift) entries.
426
+
427
+ ```bash
428
+ dr analyzer verify [--name <analyzer>] [--layer <layer>...] [--json | --format <format>] [--output <path>]
429
+ ```
430
+
431
+ **Options:**
432
+
433
+ - `--name <analyzer>` — Specific analyzer name (default: active)
434
+ - `--layer <layer>` — Layer(s) to verify (default: api; v1 only supports api)
435
+ - `--json` — Output as JSON (legacy shorthand equivalent to `--format json`)
436
+ - `--format <format>` — Output format: text (default), json, markdown
437
+ - `--output <path>` — Write report to file (format inferred from extension)
438
+
439
+ **Note on `--json` and `--format`**: If both flags are provided, `--json` takes precedence and a warning is issued. Use `--format` for consistency with other tools.
440
+
441
+ **Output Buckets:**
442
+
443
+ - **Matched**: Graph routes that exist in model ✓
444
+ - **Graph-Only**: Code routes not in model (suspected gaps) ⚠
445
+ - **Model-Only**: Model operations not in code (possible drift) ?
446
+
447
+ **Report Fields:**
448
+
449
+ - Summary counts (matched, gaps, drift, ignored)
450
+ - Changeset context (which version verified)
451
+ - Detailed buckets with source information
452
+
453
+ **Examples:**
454
+
455
+ ```bash
456
+ # Verify to console
457
+ dr analyzer verify
458
+
459
+ # JSON output
460
+ dr analyzer verify --json
461
+
462
+ # Save markdown report
463
+ dr analyzer verify --output verify.md
464
+
465
+ # Save JSON report
466
+ dr analyzer verify --output verify.json
467
+ ```
468
+
469
+ For detailed verification workflow and reconciliation options, see `/dr-verify` command reference.
470
+
471
+ ---
472
+
473
+ ## Configuration
474
+
475
+ ### Setting the Codebase Root
476
+
477
+ **Option 1: Via manifest.yaml** (recommended for persistent configuration)
478
+
479
+ ```yaml
480
+ # documentation-robotics/model/manifest.yaml
481
+ version: 0.1.0
482
+ schema: documentation-robotics-v1
483
+ ---
484
+ codebase_path: ../my-app # Relative to the directory that contains documentation-robotics/
485
+ ```
486
+
487
+ Then re-index:
488
+
489
+ ```bash
490
+ dr analyzer index --force
491
+ ```
492
+
493
+ **Option 2: Via Farm Configuration** (if model is in a farm)
494
+
495
+ Farm auto-resolves the codebase root. See your farm's configuration for details.
496
+
497
+ ---
498
+
499
+ ## Troubleshooting
500
+
501
+ ### Problem: "Project not indexed"
502
+
503
+ **Solution:**
504
+
505
+ ```bash
506
+ dr analyzer index
507
+ ```
508
+
509
+ ### Problem: "No analyzer selected"
510
+
511
+ **Solution:**
512
+
513
+ ```bash
514
+ dr analyzer discover
515
+ # Then select an analyzer
516
+ ```
517
+
518
+ ### Problem: "Analyzer not installed"
519
+
520
+ **Solution:**
521
+
522
+ 1. Run `dr analyzer discover` to see installation instructions
523
+ 2. Follow the links to install the analyzer for your platform
524
+ 3. Run `dr analyzer index` to index your codebase
525
+
526
+ ### Problem: Index is Stale
527
+
528
+ **Solution:**
529
+
530
+ ```bash
531
+ dr analyzer index --force
532
+ ```
533
+
534
+ ### Problem: Dual-Root Configuration Not Recognized
535
+
536
+ After updating `manifest.codebase_path`, analyzer commands may still read from the old root. Re-index:
537
+
538
+ ```bash
539
+ dr analyzer index --force
540
+ ```
541
+
542
+ The analyzer cache must be rebuilt at the correct codebase root.
543
+
544
+ ---
545
+
546
+ ## Related Commands
547
+
548
+ - `/dr-verify` — Interactive verification workflow against indexed code
549
+ - `/dr-map` — Extract architecture model from codebase (consumes analyzer pre-briefs)
550
+ - `/dr-validate` — Validate model integrity
551
+ - `dr show <element-id>` — Inspect element details
552
+ - `dr add <layer> <type> <name>` — Manually add elements
553
+
554
+ ---
555
+
556
+ ## Advanced: Integration with Claude Code
557
+
558
+ When running DR commands in Claude Code, the analyzer integration enables:
559
+
560
+ 1. **Pre-briefs**: `/dr-map` consumes analyzer results to accelerate extraction
561
+ 2. **Verification**: `/dr-verify` cross-references model against code
562
+ 3. **Querying**: Direct code graph access via `dr analyzer query`
563
+ 4. **Codebase Memory**: Shared cache of analyzer results across commands
564
+
565
+ Dual-root awareness ensures all these operations work correctly whether metadata and source are co-located or separate.
@@ -246,6 +246,19 @@ Proceed with extraction?
246
246
 
247
247
  The extraction workflow can consult the dr-analyzer if one is installed and active.
248
248
 
249
+ **Important: Dual-Root Configuration**
250
+
251
+ If your codebase root (source code location) differs from your model root (metadata location):
252
+
253
+ 1. Ensure `codebase_path` is configured in `documentation-robotics/model/manifest.yaml`
254
+ 2. If you recently changed `codebase_path`, re-index before extraction:
255
+
256
+ ```bash
257
+ dr analyzer index --force
258
+ ```
259
+
260
+ See [dr-analyzer.md](dr-analyzer.md) for complete dual-root setup instructions.
261
+
249
262
  **Check analyzer status:**
250
263
 
251
264
  Run the following command and save the result (it will guide the extraction agent):
@@ -0,0 +1,40 @@
1
+ ---
2
+ description: Plan a change as a staged DR changeset through the dr MCP server, pressure-test it, build from its brief, and verify the build. The human commits it in the PR.
3
+ argument-hint: "<the change to plan, in plain words>"
4
+ ---
5
+
6
+ # Plan a Change
7
+
8
+ Plan `$ARGUMENTS` as a staged DR changeset instead of a prose plan.
9
+
10
+ ## Instructions for Claude Code
11
+
12
+ Follow the `dr_change_planning` skill (`.claude/skills/dr_change_planning/SKILL.md`) for this change.
13
+ In short:
14
+
15
+ 1. **Frame**: `changeset_create` with a kebab-case name and the change's intent as the description
16
+ (or `changeset_activate` an existing one). Find or stage the goal, requirement or feature it
17
+ serves.
18
+ 2. **Orient**: `model_search`, `model_show`, `model_trace` for what exists; `spec_type` for each
19
+ type you will add. Within reason, every connection the spec models for a type is expected,
20
+ though not every one will exist.
21
+ 3. **Draft**: `model_add` / `model_update` / `model_delete` / `relationship_add` /
22
+ `relationship_delete` across every layer the change reaches. `model_update` with
23
+ `attributePatch` to change one attribute; `changeset_unstage` to back out (`source` or `target`
24
+ alone drops every staged connection at that end).
25
+ 4. **Pressure-test**: `changeset_brief` and `changeset_impact`. Answer each gap by staging what is
26
+ missing, or accept it and say why in an annotation or the description. Steps 3 and 4 repeat:
27
+ stage a little, then pass the brief's `revisionToken` back as `since` to see what changed, work
28
+ through `unwired`, and walk `changeset_impact` with `from` set to what you just added.
29
+ 5. **Review**: show the human the brief and ask them to review it in `dr visualize`. Read
30
+ `annotation_list`, reply, revise. Wait for agreement before building.
31
+ 6. **Build** from the brief. Commit only the plan's own changeset directory
32
+ (`documentation-robotics/changesets/<id>/`) on the branch with the code; keep `.active` and the
33
+ as-built changeset out of the commit.
34
+ 7. **Verify**: stage an `<name>-as-built` changeset from the diff, then `changeset_verify` the plan
35
+ against it. Fix what diverges, in the code or in the plan.
36
+ 8. **Land**: the human commits the changeset in the PR. Never commit, apply or discard the plan
37
+ yourself.
38
+
39
+ If the `dr` MCP tools are not available, say so and point the user to
40
+ `integrations/claude_code/docs/MCP_SERVER.md`.