@documentation-robotics/cli 0.1.0 → 0.1.5

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 (510) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +466 -693
  3. package/dist/analysis/data-model-analyzer.js +189 -0
  4. package/dist/analysis/data-model-analyzer.js.map +7 -0
  5. package/dist/analysis/index.js +3 -0
  6. package/dist/analysis/index.js.map +7 -0
  7. package/dist/analysis/relationship-classifier.js +181 -0
  8. package/dist/analysis/relationship-classifier.js.map +7 -0
  9. package/dist/analyzers/base-analyzer.js +1 -0
  10. package/dist/analyzers/base-analyzer.js.map +7 -0
  11. package/dist/analyzers/call-graph-utils.js +39 -0
  12. package/dist/analyzers/call-graph-utils.js.map +7 -0
  13. package/dist/analyzers/cbm-analyzer.js +1205 -0
  14. package/dist/analyzers/cbm-analyzer.js.map +7 -0
  15. package/dist/analyzers/heuristic-utils.js +55 -0
  16. package/dist/analyzers/heuristic-utils.js.map +7 -0
  17. package/dist/analyzers/mapping-loader.js +146 -0
  18. package/dist/analyzers/mapping-loader.js.map +7 -0
  19. package/dist/analyzers/registry.js +124 -0
  20. package/dist/analyzers/registry.js.map +7 -0
  21. package/dist/analyzers/session-state.js +176 -0
  22. package/dist/analyzers/session-state.js.map +7 -0
  23. package/dist/analyzers/stdio-client.js +206 -0
  24. package/dist/analyzers/stdio-client.js.map +7 -0
  25. package/dist/analyzers/types.js +15 -0
  26. package/dist/analyzers/types.js.map +7 -0
  27. package/dist/analyzers/verify-engine.js +209 -0
  28. package/dist/analyzers/verify-engine.js.map +7 -0
  29. package/dist/analyzers/verify-ignore.js +130 -0
  30. package/dist/analyzers/verify-ignore.js.map +7 -0
  31. package/dist/analyzers/version.js +8 -0
  32. package/dist/analyzers/version.js.map +7 -0
  33. package/dist/audit/ai/runner.js +41 -0
  34. package/dist/audit/ai/runner.js.map +7 -0
  35. package/dist/audit/differential-analyzer.js +183 -0
  36. package/dist/audit/differential-analyzer.js.map +7 -0
  37. package/dist/audit/index.js +32 -0
  38. package/dist/audit/index.js.map +7 -0
  39. package/dist/audit/nodes/ai/evaluator.js +49 -0
  40. package/dist/audit/nodes/ai/evaluator.js.map +7 -0
  41. package/dist/audit/nodes/ai/parser.js +55 -0
  42. package/dist/audit/nodes/ai/parser.js.map +7 -0
  43. package/dist/audit/nodes/ai/prompts.js +103 -0
  44. package/dist/audit/nodes/ai/prompts.js.map +7 -0
  45. package/dist/audit/nodes/analysis/node-completeness-checker.js +32 -0
  46. package/dist/audit/nodes/analysis/node-completeness-checker.js.map +7 -0
  47. package/dist/audit/nodes/analysis/node-definition-analyzer.js +47 -0
  48. package/dist/audit/nodes/analysis/node-definition-analyzer.js.map +7 -0
  49. package/dist/audit/nodes/analysis/node-overlap-detector.js +79 -0
  50. package/dist/audit/nodes/analysis/node-overlap-detector.js.map +7 -0
  51. package/dist/audit/nodes/model/orchestrator.js +82 -0
  52. package/dist/audit/nodes/model/orchestrator.js.map +7 -0
  53. package/dist/audit/nodes/spec/loader.js +116 -0
  54. package/dist/audit/nodes/spec/loader.js.map +7 -0
  55. package/dist/audit/nodes/spec/orchestrator.js +68 -0
  56. package/dist/audit/nodes/spec/orchestrator.js.map +7 -0
  57. package/dist/audit/nodes/types.js +1 -0
  58. package/dist/audit/nodes/types.js.map +7 -0
  59. package/dist/audit/pipeline/index.js +5 -0
  60. package/dist/audit/pipeline/index.js.map +7 -0
  61. package/dist/audit/pipeline/pipeline-orchestrator.js +218 -0
  62. package/dist/audit/pipeline/pipeline-orchestrator.js.map +7 -0
  63. package/dist/audit/relationships/ai/evaluator.js +235 -0
  64. package/dist/audit/relationships/ai/evaluator.js.map +7 -0
  65. package/dist/audit/relationships/ai/parser.js +197 -0
  66. package/dist/audit/relationships/ai/parser.js.map +7 -0
  67. package/dist/audit/relationships/ai/prompts.js +274 -0
  68. package/dist/audit/relationships/ai/prompts.js.map +7 -0
  69. package/dist/audit/relationships/analysis/balance-assessor.js +115 -0
  70. package/dist/audit/relationships/analysis/balance-assessor.js.map +7 -0
  71. package/dist/audit/relationships/analysis/coverage-analyzer.js +99 -0
  72. package/dist/audit/relationships/analysis/coverage-analyzer.js.map +7 -0
  73. package/dist/audit/relationships/analysis/duplicate-detector.js +95 -0
  74. package/dist/audit/relationships/analysis/duplicate-detector.js.map +7 -0
  75. package/dist/audit/relationships/analysis/gap-analyzer.js +99 -0
  76. package/dist/audit/relationships/analysis/gap-analyzer.js.map +7 -0
  77. package/dist/audit/relationships/analysis/layer-templates.js +294 -0
  78. package/dist/audit/relationships/analysis/layer-templates.js.map +7 -0
  79. package/dist/audit/relationships/graph/connectivity.js +129 -0
  80. package/dist/audit/relationships/graph/connectivity.js.map +7 -0
  81. package/dist/audit/relationships/graph/relationship-graph.js +179 -0
  82. package/dist/audit/relationships/graph/relationship-graph.js.map +7 -0
  83. package/dist/audit/relationships/model/balance-assessor.js +49 -0
  84. package/dist/audit/relationships/model/balance-assessor.js.map +7 -0
  85. package/dist/audit/relationships/model/coverage-analyzer.js +34 -0
  86. package/dist/audit/relationships/model/coverage-analyzer.js.map +7 -0
  87. package/dist/audit/relationships/model/duplicate-detector.js +68 -0
  88. package/dist/audit/relationships/model/duplicate-detector.js.map +7 -0
  89. package/dist/audit/relationships/model/gap-analyzer.js +41 -0
  90. package/dist/audit/relationships/model/gap-analyzer.js.map +7 -0
  91. package/dist/audit/relationships/model/orchestrator.js +126 -0
  92. package/dist/audit/relationships/model/orchestrator.js.map +7 -0
  93. package/dist/audit/relationships/spec/orchestrator.js +157 -0
  94. package/dist/audit/relationships/spec/orchestrator.js.map +7 -0
  95. package/dist/audit/reports/index.js +5 -0
  96. package/dist/audit/reports/index.js.map +7 -0
  97. package/dist/audit/reports/report-generator.js +118 -0
  98. package/dist/audit/reports/report-generator.js.map +7 -0
  99. package/dist/audit/snapshot-storage.js +163 -0
  100. package/dist/audit/snapshot-storage.js.map +7 -0
  101. package/dist/audit/types.js +21 -0
  102. package/dist/audit/types.js.map +7 -0
  103. package/dist/cli.js +223 -92
  104. package/dist/cli.js.map +3 -3
  105. package/dist/coding-agents/agents/claude-code.js +147 -0
  106. package/dist/coding-agents/agents/claude-code.js.map +7 -0
  107. package/dist/coding-agents/agents/index.js +5 -0
  108. package/dist/coding-agents/agents/index.js.map +7 -0
  109. package/dist/coding-agents/agents/types.js +1 -0
  110. package/dist/coding-agents/agents/types.js.map +7 -0
  111. package/dist/coding-agents/base-chat-client.js +45 -0
  112. package/dist/coding-agents/base-chat-client.js.map +7 -0
  113. package/dist/coding-agents/chat-utils.js +23 -0
  114. package/dist/coding-agents/chat-utils.js.map +7 -0
  115. package/dist/coding-agents/claude-code-client.js +246 -0
  116. package/dist/coding-agents/claude-code-client.js.map +7 -0
  117. package/dist/coding-agents/copilot-client.js +209 -0
  118. package/dist/coding-agents/copilot-client.js.map +7 -0
  119. package/dist/commands/add.js +95 -33
  120. package/dist/commands/add.js.map +2 -2
  121. package/dist/commands/analyzer.js +511 -0
  122. package/dist/commands/analyzer.js.map +7 -0
  123. package/dist/commands/audit-diff.js +49 -0
  124. package/dist/commands/audit-diff.js.map +7 -0
  125. package/dist/commands/audit-snapshots.js +62 -0
  126. package/dist/commands/audit-snapshots.js.map +7 -0
  127. package/dist/commands/audit.js +81 -0
  128. package/dist/commands/audit.js.map +7 -0
  129. package/dist/commands/catalog.js +248 -0
  130. package/dist/commands/catalog.js.map +7 -0
  131. package/dist/commands/changeset.js +577 -66
  132. package/dist/commands/changeset.js.map +2 -2
  133. package/dist/commands/chat.js +106 -83
  134. package/dist/commands/chat.js.map +2 -2
  135. package/dist/commands/claude.js +74 -0
  136. package/dist/commands/claude.js.map +7 -0
  137. package/dist/commands/conformance.js +71 -68
  138. package/dist/commands/conformance.js.map +2 -2
  139. package/dist/commands/copilot.js +75 -0
  140. package/dist/commands/copilot.js.map +7 -0
  141. package/dist/commands/delete.js +125 -11
  142. package/dist/commands/delete.js.map +3 -3
  143. package/dist/commands/discover-logic.js +44 -0
  144. package/dist/commands/discover-logic.js.map +7 -0
  145. package/dist/commands/docs.js +87 -0
  146. package/dist/commands/docs.js.map +7 -0
  147. package/dist/commands/element.js +14 -20
  148. package/dist/commands/element.js.map +2 -2
  149. package/dist/commands/export.js +13 -3
  150. package/dist/commands/export.js.map +2 -2
  151. package/dist/commands/import.js +51 -0
  152. package/dist/commands/import.js.map +7 -0
  153. package/dist/commands/info.js +30 -24
  154. package/dist/commands/info.js.map +2 -2
  155. package/dist/commands/init.js +27 -11
  156. package/dist/commands/init.js.map +2 -2
  157. package/dist/commands/list.js +63 -13
  158. package/dist/commands/list.js.map +3 -3
  159. package/dist/commands/relationship.js +225 -37
  160. package/dist/commands/relationship.js.map +2 -2
  161. package/dist/commands/report.js +54 -0
  162. package/dist/commands/report.js.map +7 -0
  163. package/dist/commands/reports.js +45 -0
  164. package/dist/commands/reports.js.map +7 -0
  165. package/dist/commands/schema.js +135 -0
  166. package/dist/commands/schema.js.map +7 -0
  167. package/dist/commands/search.js +40 -12
  168. package/dist/commands/search.js.map +2 -2
  169. package/dist/commands/show.js +58 -27
  170. package/dist/commands/show.js.map +2 -2
  171. package/dist/commands/stats.js +35 -0
  172. package/dist/commands/stats.js.map +7 -0
  173. package/dist/commands/trace.js +39 -16
  174. package/dist/commands/trace.js.map +2 -2
  175. package/dist/commands/update.js +141 -14
  176. package/dist/commands/update.js.map +2 -2
  177. package/dist/commands/upgrade.js +210 -46
  178. package/dist/commands/upgrade.js.map +3 -3
  179. package/dist/commands/validate.js +142 -23
  180. package/dist/commands/validate.js.map +3 -3
  181. package/dist/commands/version.js +8 -12
  182. package/dist/commands/version.js.map +2 -2
  183. package/dist/commands/visualize.js +155 -25
  184. package/dist/commands/visualize.js.map +2 -2
  185. package/dist/core/base-snapshot-manager.js +84 -0
  186. package/dist/core/base-snapshot-manager.js.map +7 -0
  187. package/dist/core/changeset-exporter.js +305 -0
  188. package/dist/core/changeset-exporter.js.map +7 -0
  189. package/dist/core/changeset-validator.js +41 -0
  190. package/dist/core/changeset-validator.js.map +7 -0
  191. package/dist/core/changeset.js +88 -173
  192. package/dist/core/changeset.js.map +2 -2
  193. package/dist/core/dependency-tracker.js +4 -2
  194. package/dist/core/dependency-tracker.js.map +2 -2
  195. package/dist/core/element.js +98 -27
  196. package/dist/core/element.js.map +2 -2
  197. package/dist/core/golden-copy-cache.js +290 -0
  198. package/dist/core/golden-copy-cache.js.map +7 -0
  199. package/dist/core/graph-model.js +266 -0
  200. package/dist/core/graph-model.js.map +7 -0
  201. package/dist/core/layer.js +159 -16
  202. package/dist/core/layer.js.map +2 -2
  203. package/dist/core/layers.js +32 -0
  204. package/dist/core/layers.js.map +7 -0
  205. package/dist/core/manifest.js +32 -11
  206. package/dist/core/manifest.js.map +2 -2
  207. package/dist/core/migration-registry.js +56 -1
  208. package/dist/core/migration-registry.js.map +2 -2
  209. package/dist/core/model.js +424 -217
  210. package/dist/core/model.js.map +3 -3
  211. package/dist/core/mutation-handler.js +179 -0
  212. package/dist/core/mutation-handler.js.map +7 -0
  213. package/dist/core/reference-registry.js +29 -21
  214. package/dist/core/reference-registry.js.map +2 -2
  215. package/dist/core/relationship-catalog.js +189 -0
  216. package/dist/core/relationship-catalog.js.map +7 -0
  217. package/dist/core/relationship-registry.js.map +2 -2
  218. package/dist/core/relationships.js.map +1 -1
  219. package/dist/core/report-data-model.js +285 -0
  220. package/dist/core/report-data-model.js.map +7 -0
  221. package/dist/core/spec-data-service.js +185 -0
  222. package/dist/core/spec-data-service.js.map +7 -0
  223. package/dist/core/spec-loader-types.js +1 -0
  224. package/dist/core/spec-loader-types.js.map +7 -0
  225. package/dist/core/spec-loader.js +234 -0
  226. package/dist/core/spec-loader.js.map +7 -0
  227. package/dist/core/staged-changeset-storage.js +282 -0
  228. package/dist/core/staged-changeset-storage.js.map +7 -0
  229. package/dist/core/staging-area.js +1002 -0
  230. package/dist/core/staging-area.js.map +7 -0
  231. package/dist/core/stats-collector.js +169 -0
  232. package/dist/core/stats-collector.js.map +7 -0
  233. package/dist/core/virtual-projection.js +443 -0
  234. package/dist/core/virtual-projection.js.map +7 -0
  235. package/dist/export/archimate-exporter.js +99 -60
  236. package/dist/export/archimate-exporter.js.map +2 -2
  237. package/dist/export/audit-formatters.js +479 -0
  238. package/dist/export/audit-formatters.js.map +7 -0
  239. package/dist/export/diff-formatters.js +99 -0
  240. package/dist/export/diff-formatters.js.map +7 -0
  241. package/dist/export/export-manager.js.map +2 -2
  242. package/dist/export/graphml-exporter.js +44 -27
  243. package/dist/export/graphml-exporter.js.map +2 -2
  244. package/dist/export/index.js +4 -0
  245. package/dist/export/index.js.map +2 -2
  246. package/dist/export/json-schema-exporter.js +55 -42
  247. package/dist/export/json-schema-exporter.js.map +2 -2
  248. package/dist/export/markdown-exporter.js +92 -70
  249. package/dist/export/markdown-exporter.js.map +2 -2
  250. package/dist/export/markdown-generator.js +248 -0
  251. package/dist/export/markdown-generator.js.map +7 -0
  252. package/dist/export/markdown-utils.js +30 -0
  253. package/dist/export/markdown-utils.js.map +7 -0
  254. package/dist/export/mermaid-markdown-exporter.js +37 -0
  255. package/dist/export/mermaid-markdown-exporter.js.map +7 -0
  256. package/dist/export/openapi-exporter.js +119 -71
  257. package/dist/export/openapi-exporter.js.map +2 -2
  258. package/dist/export/plantuml-exporter.js +104 -39
  259. package/dist/export/plantuml-exporter.js.map +2 -2
  260. package/dist/export/report-formatters.js +111 -0
  261. package/dist/export/report-formatters.js.map +7 -0
  262. package/dist/export/stats-formatters.js +98 -0
  263. package/dist/export/stats-formatters.js.map +7 -0
  264. package/dist/export/types.js +2 -14
  265. package/dist/export/types.js.map +2 -2
  266. package/dist/export/verify-formatters.js +153 -0
  267. package/dist/export/verify-formatters.js.map +7 -0
  268. package/dist/generated/compiled-validators.js +17 -0
  269. package/dist/generated/compiled-validators.js.map +7 -0
  270. package/dist/generated/index.js +31 -0
  271. package/dist/generated/index.js.map +7 -0
  272. package/dist/generated/layer-registry.js +190 -0
  273. package/dist/generated/layer-registry.js.map +7 -0
  274. package/dist/generated/layer-types.js +7 -0
  275. package/dist/generated/layer-types.js.map +7 -0
  276. package/dist/generated/node-types.js +1719 -0
  277. package/dist/generated/node-types.js.map +7 -0
  278. package/dist/generated/relationship-index.js +14552 -0
  279. package/dist/generated/relationship-index.js.map +7 -0
  280. package/dist/import/archimate-importer.js +166 -0
  281. package/dist/import/archimate-importer.js.map +7 -0
  282. package/dist/import/index.js +47 -0
  283. package/dist/import/index.js.map +7 -0
  284. package/dist/import/openapi-importer.js +143 -0
  285. package/dist/import/openapi-importer.js.map +7 -0
  286. package/dist/import/types.js +1 -0
  287. package/dist/import/types.js.map +7 -0
  288. package/dist/integrations/base-manager.js +311 -0
  289. package/dist/integrations/base-manager.js.map +7 -0
  290. package/dist/integrations/claude-manager.js +360 -0
  291. package/dist/integrations/claude-manager.js.map +7 -0
  292. package/dist/integrations/claude_code/agents/dr-advisor.md +253 -0
  293. package/dist/integrations/claude_code/agents/dr-architect.md +278 -0
  294. package/dist/integrations/claude_code/agents/dr-extractor.md +286 -0
  295. package/dist/integrations/claude_code/commands/dr-changeset.md +657 -0
  296. package/dist/integrations/claude_code/commands/dr-design.md +373 -0
  297. package/dist/integrations/claude_code/commands/dr-info.md +132 -0
  298. package/dist/integrations/claude_code/commands/dr-init.md +251 -0
  299. package/dist/integrations/claude_code/commands/dr-map.md +936 -0
  300. package/dist/integrations/claude_code/commands/dr-model.md +493 -0
  301. package/dist/integrations/claude_code/commands/dr-relate.md +814 -0
  302. package/dist/integrations/claude_code/commands/dr-sync.md +279 -0
  303. package/dist/integrations/claude_code/commands/dr-validate.md +654 -0
  304. package/dist/integrations/claude_code/commands/dr-verify.md +559 -0
  305. package/dist/integrations/claude_code/docs/END_TO_END_WALKTHROUGH.md +903 -0
  306. package/dist/integrations/claude_code/docs/QUICK_START.md +271 -0
  307. package/dist/integrations/claude_code/docs/README.md +347 -0
  308. package/dist/integrations/claude_code/skills/dr_01_motivation_layer/SKILL.md +550 -0
  309. package/dist/integrations/claude_code/skills/dr_02_business_layer/SKILL.md +620 -0
  310. package/dist/integrations/claude_code/skills/dr_03_security_layer/SKILL.md +642 -0
  311. package/dist/integrations/claude_code/skills/dr_04_application_layer/SKILL.md +911 -0
  312. package/dist/integrations/claude_code/skills/dr_05_technology_layer/SKILL.md +836 -0
  313. package/dist/integrations/claude_code/skills/dr_06_api_layer/SKILL.md +933 -0
  314. package/dist/integrations/claude_code/skills/dr_07_data_model_layer/SKILL.md +210 -0
  315. package/dist/integrations/claude_code/skills/dr_08_dataset_layer/SKILL.md +319 -0
  316. package/dist/integrations/claude_code/skills/dr_09_ux_layer/SKILL.md +319 -0
  317. package/dist/integrations/claude_code/skills/dr_10_navigation_layer/SKILL.md +318 -0
  318. package/dist/integrations/claude_code/skills/dr_11_apm_layer/SKILL.md +273 -0
  319. package/dist/integrations/claude_code/skills/dr_12_testing_layer/SKILL.md +273 -0
  320. package/dist/integrations/claude_code/skills/dr_changeset_reviewer/SKILL.md +187 -0
  321. package/dist/integrations/claude_code/skills/dr_codebase_memory/SKILL.md +590 -0
  322. package/dist/integrations/claude_code/skills/dr_engineering_guide/SKILL.md +295 -0
  323. package/dist/integrations/copilot-manager.js +328 -0
  324. package/dist/integrations/copilot-manager.js.map +7 -0
  325. package/dist/integrations/github_copilot/agents/dr-advisor.md +243 -0
  326. package/dist/integrations/github_copilot/agents/dr-architect.md +1567 -0
  327. package/dist/integrations/github_copilot/skills/dr_01_motivation_layer/SKILL.md +491 -0
  328. package/dist/integrations/github_copilot/skills/dr_02_business_layer/SKILL.md +539 -0
  329. package/dist/integrations/github_copilot/skills/dr_03_security_layer/SKILL.md +667 -0
  330. package/dist/integrations/github_copilot/skills/dr_04_application_layer/SKILL.md +670 -0
  331. package/dist/integrations/github_copilot/skills/dr_05_technology_layer/SKILL.md +660 -0
  332. package/dist/integrations/github_copilot/skills/dr_06_api_layer/SKILL.md +855 -0
  333. package/dist/integrations/github_copilot/skills/dr_07_data_model_layer/SKILL.md +171 -0
  334. package/dist/integrations/github_copilot/skills/dr_08_dataset_layer/SKILL.md +216 -0
  335. package/dist/integrations/github_copilot/skills/dr_09_ux_layer/SKILL.md +230 -0
  336. package/dist/integrations/github_copilot/skills/dr_10_navigation_layer/SKILL.md +228 -0
  337. package/dist/integrations/github_copilot/skills/dr_11_apm_layer/SKILL.md +234 -0
  338. package/dist/integrations/github_copilot/skills/dr_12_testing_layer/SKILL.md +230 -0
  339. package/dist/integrations/github_copilot/skills/dr_changeset_reviewer/SKILL.md +187 -0
  340. package/dist/integrations/hash-utils.js +51 -0
  341. package/dist/integrations/hash-utils.js.map +7 -0
  342. package/dist/integrations/types.js +16 -0
  343. package/dist/integrations/types.js.map +7 -0
  344. package/dist/reports/model-layer-report-generator.js +278 -0
  345. package/dist/reports/model-layer-report-generator.js.map +7 -0
  346. package/dist/reports/model-report-data.js +57 -0
  347. package/dist/reports/model-report-data.js.map +7 -0
  348. package/dist/reports/model-report-orchestrator.js +103 -0
  349. package/dist/reports/model-report-orchestrator.js.map +7 -0
  350. package/dist/schemas/bundled/analyzers/cbm.json +595 -0
  351. package/dist/schemas/bundled/analyzers/manifest.json +9 -0
  352. package/dist/schemas/bundled/api.json +3411 -0
  353. package/dist/schemas/bundled/apm.json +2371 -0
  354. package/dist/schemas/bundled/application.json +1253 -0
  355. package/dist/schemas/bundled/base.json +1622 -0
  356. package/dist/schemas/bundled/business.json +1279 -0
  357. package/dist/schemas/bundled/data-model.json +1298 -0
  358. package/dist/schemas/bundled/data-store.json +2025 -0
  359. package/dist/schemas/bundled/manifest.json +93 -0
  360. package/dist/schemas/bundled/motivation.json +1360 -0
  361. package/dist/schemas/bundled/navigation.json +1874 -0
  362. package/dist/schemas/bundled/security.json +3488 -0
  363. package/dist/schemas/bundled/technology.json +2067 -0
  364. package/dist/schemas/bundled/testing.json +3120 -0
  365. package/dist/schemas/bundled/ux.json +3592 -0
  366. package/dist/server/schemas.js +202 -0
  367. package/dist/server/schemas.js.map +7 -0
  368. package/dist/server/server.js +1336 -252
  369. package/dist/server/server.js.map +3 -3
  370. package/dist/server/telemetry-middleware.js +22 -15
  371. package/dist/server/telemetry-middleware.js.map +2 -2
  372. package/dist/server-entry.js +65 -0
  373. package/dist/server-entry.js.map +7 -0
  374. package/dist/telemetry/config.js +89 -0
  375. package/dist/telemetry/config.js.map +7 -0
  376. package/dist/telemetry/console-interceptor.js.map +1 -1
  377. package/dist/telemetry/detect.js +24 -0
  378. package/dist/telemetry/detect.js.map +7 -0
  379. package/dist/telemetry/fetch-otlp-exporter.js +112 -0
  380. package/dist/telemetry/fetch-otlp-exporter.js.map +7 -0
  381. package/dist/telemetry/index.js +153 -3
  382. package/dist/telemetry/index.js.map +2 -2
  383. package/dist/telemetry/resilient-exporter.js +22 -8
  384. package/dist/telemetry/resilient-exporter.js.map +2 -2
  385. package/dist/telemetry/resilient-log-exporter.js +17 -8
  386. package/dist/telemetry/resilient-log-exporter.js.map +2 -2
  387. package/dist/telemetry/test-instrumentation.js.map +2 -2
  388. package/dist/types/index.js +84 -0
  389. package/dist/types/index.js.map +3 -3
  390. package/dist/types/source-reference.js +1 -0
  391. package/dist/types/source-reference.js.map +7 -0
  392. package/dist/utils/chat-logger.js +292 -0
  393. package/dist/utils/chat-logger.js.map +7 -0
  394. package/dist/utils/claude-stream.js +8 -0
  395. package/dist/utils/claude-stream.js.map +7 -0
  396. package/dist/utils/date-utils.js +7 -0
  397. package/dist/utils/date-utils.js.map +7 -0
  398. package/dist/utils/element-utils.js.map +1 -1
  399. package/dist/utils/errors.js +88 -15
  400. package/dist/utils/errors.js.map +3 -3
  401. package/dist/utils/export-python-annotations.js +82 -0
  402. package/dist/utils/export-python-annotations.js.map +7 -0
  403. package/dist/utils/file-io.js +7 -2
  404. package/dist/utils/file-io.js.map +2 -2
  405. package/dist/utils/file-lock.js +156 -0
  406. package/dist/utils/file-lock.js.map +7 -0
  407. package/dist/utils/id-generator.js +18 -0
  408. package/dist/utils/id-generator.js.map +7 -0
  409. package/dist/utils/layer-name-formatter.js +16 -0
  410. package/dist/utils/layer-name-formatter.js.map +7 -0
  411. package/dist/utils/markdown-anchor.js +7 -0
  412. package/dist/utils/markdown-anchor.js.map +7 -0
  413. package/dist/utils/markdown-link.js +12 -0
  414. package/dist/utils/markdown-link.js.map +7 -0
  415. package/dist/utils/markdown-table.js +17 -0
  416. package/dist/utils/markdown-table.js.map +7 -0
  417. package/dist/utils/mermaid-utils.js +11 -0
  418. package/dist/utils/mermaid-utils.js.map +7 -0
  419. package/dist/utils/project-paths.js.map +2 -2
  420. package/dist/utils/source-reference.js +52 -0
  421. package/dist/utils/source-reference.js.map +7 -0
  422. package/dist/utils/spec-installer.js +40 -53
  423. package/dist/utils/spec-installer.js.map +2 -2
  424. package/dist/utils/spec-version.js +5 -1
  425. package/dist/utils/spec-version.js.map +2 -2
  426. package/dist/utils/string-utils.js +12 -0
  427. package/dist/utils/string-utils.js.map +7 -0
  428. package/dist/utils/table-formatting.js +19 -0
  429. package/dist/utils/table-formatting.js.map +7 -0
  430. package/dist/validators/index.js +4 -0
  431. package/dist/validators/index.js.map +2 -2
  432. package/dist/validators/naming-validator.js +20 -23
  433. package/dist/validators/naming-validator.js.map +2 -2
  434. package/dist/validators/reference-validator.js +23 -38
  435. package/dist/validators/reference-validator.js.map +2 -2
  436. package/dist/validators/relationship-schema-validator.js +243 -0
  437. package/dist/validators/relationship-schema-validator.js.map +7 -0
  438. package/dist/validators/schema-validator.js +168 -68
  439. package/dist/validators/schema-validator.js.map +2 -2
  440. package/dist/validators/semantic-validator.js +36 -60
  441. package/dist/validators/semantic-validator.js.map +2 -2
  442. package/dist/validators/types.js.map +2 -2
  443. package/dist/validators/validation-formatter.js +159 -0
  444. package/dist/validators/validation-formatter.js.map +7 -0
  445. package/dist/validators/validator.js +24 -38
  446. package/dist/validators/validator.js.map +2 -2
  447. package/dist/viewer/README.md +139 -0
  448. package/dist/viewer/assets/main-CY0Xufuj.css +1 -0
  449. package/dist/viewer/assets/main-DtgErnwF.js +81 -0
  450. package/dist/viewer/assets/vendor-CxKvDp2x.js +17 -0
  451. package/dist/viewer/favicon.svg +11 -0
  452. package/dist/viewer/fonts/inter/Inter-Black.woff2 +0 -0
  453. package/dist/viewer/fonts/inter/Inter-Bold.woff2 +0 -0
  454. package/dist/viewer/fonts/inter/Inter-ExtraBold.woff2 +0 -0
  455. package/dist/viewer/fonts/inter/Inter-Light.woff2 +0 -0
  456. package/dist/viewer/fonts/inter/Inter-Medium.woff2 +0 -0
  457. package/dist/viewer/fonts/inter/Inter-Regular.woff2 +0 -0
  458. package/dist/viewer/fonts/inter/Inter-SemiBold.woff2 +0 -0
  459. package/dist/viewer/fonts/jetbrains-mono/JetBrainsMono-Medium.woff2 +0 -0
  460. package/dist/viewer/fonts/jetbrains-mono/JetBrainsMono-Regular.woff2 +0 -0
  461. package/dist/viewer/fonts/jetbrains-mono/JetBrainsMono-SemiBold.woff2 +0 -0
  462. package/dist/viewer/index.html +15 -0
  463. package/dist/viewer/manifest.json +99 -0
  464. package/dist/viewer/version.json +1 -0
  465. package/package.json +37 -13
  466. package/PYTHON_CLI_PARITY.md +0 -265
  467. package/PYTHON_CLI_STRUCTURE_UPDATE.md +0 -246
  468. package/biome.json +0 -42
  469. package/bunfig.toml +0 -3
  470. package/dist/ai/claude-client.js +0 -71
  471. package/dist/ai/claude-client.js.map +0 -7
  472. package/dist/ai/context-provider.js +0 -129
  473. package/dist/ai/context-provider.js.map +0 -7
  474. package/dist/ai/tools.js +0 -231
  475. package/dist/ai/tools.js.map +0 -7
  476. package/dist/commands/migrate.js +0 -36
  477. package/dist/commands/migrate.js.map +0 -7
  478. package/dist/commands/project.js +0 -74
  479. package/dist/commands/project.js.map +0 -7
  480. package/dist/core/active-changeset.js +0 -52
  481. package/dist/core/active-changeset.js.map +0 -7
  482. package/dist/core/projection-engine.js +0 -288
  483. package/dist/core/projection-engine.js.map +0 -7
  484. package/dist/schemas/bundled/01-motivation-layer.schema.json +0 -942
  485. package/dist/schemas/bundled/02-business-layer.schema.json +0 -1293
  486. package/dist/schemas/bundled/03-security-layer.schema.json +0 -2177
  487. package/dist/schemas/bundled/04-application-layer.schema.json +0 -1328
  488. package/dist/schemas/bundled/05-technology-layer.schema.json +0 -1465
  489. package/dist/schemas/bundled/06-api-layer.schema.json +0 -1743
  490. package/dist/schemas/bundled/07-data-model-layer.schema.json +0 -1253
  491. package/dist/schemas/bundled/08-datastore-layer.schema.json +0 -892
  492. package/dist/schemas/bundled/09-ux-layer.schema.json +0 -1506
  493. package/dist/schemas/bundled/10-navigation-layer.schema.json +0 -843
  494. package/dist/schemas/bundled/11-apm-observability-layer.schema.json +0 -1430
  495. package/dist/schemas/bundled/12-testing-layer.schema.json +0 -1091
  496. package/dist/schemas/bundled/common/layer-extensions.schema.json +0 -266
  497. package/dist/schemas/bundled/common/predicates.schema.json +0 -493
  498. package/dist/schemas/bundled/common/relationships.schema.json +0 -791
  499. package/dist/schemas/bundled/common/source-references.schema.json +0 -71
  500. package/dist/schemas/bundled/link-registry.json +0 -1839
  501. package/dist/schemas/bundled/link-registry.schema.json +0 -339
  502. package/dist/schemas/bundled/relationship-catalog.json +0 -1302
  503. package/dist/schemas/bundled/relationship-type.schema.json +0 -221
  504. package/dist/utils/model-path.js +0 -22
  505. package/dist/utils/model-path.js.map +0 -7
  506. package/docs/TEST-INSTRUMENTATION.md +0 -405
  507. package/docs/telemetry.md +0 -427
  508. package/test-debug.js +0 -33
  509. package/test-special.mjs +0 -46
  510. package/test_runner.ts +0 -7
@@ -0,0 +1,278 @@
1
+ ---
2
+ name: dr-architect
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
5
+ color: orange
6
+ ---
7
+
8
+ # Documentation Robotics Architect Agent
9
+
10
+ ## Identity
11
+
12
+ You are the **DR Architect** — a unified expert in Documentation Robotics. You handle all DR tasks through intelligent routing.
13
+
14
+ **CRITICAL**: Modify model elements using the CLI only. Never create YAML/JSON manually. Leave no trace outside `documentation-robotics/`.
15
+
16
+ **When the CLI fails:**
17
+
18
+ - **Parameter/syntax error** (bad flag, wrong type, missing field): fix the command and retry
19
+ - **CLI bug** (crash, unexpected error unrelated to your input): STOP. Do not fall back to writing YAML files. Report the bug to the user with the exact command and error, then ask how to proceed.
20
+
21
+ **Approach**: Intent-driven → detect what the user wants → execute with appropriate autonomy → validate → suggest next steps.
22
+
23
+ ## Tools
24
+
25
+ - **Bash**: DR CLI commands (`dr add`, `dr validate`, `dr changeset`, etc.)
26
+ - **Read/Glob/Grep**: Read source code and model files
27
+ - **WebSearch/WebFetch**: Research technologies and patterns
28
+ - **Edit/Write**: Model YAML files only (never use for model data — use CLI)
29
+
30
+ ## The 12-Layer Model
31
+
32
+ ```
33
+ 01. Motivation — WHY (goals, principles, requirements, constraints)
34
+ 02. Business — WHAT (capabilities, processes, services, actors)
35
+ 03. Security — WHO/PROTECTION (actors, roles, policies, threats)
36
+ 04. Application — HOW (components, services, interfaces, events)
37
+ 05. Technology — WITH (platforms, frameworks, infrastructure)
38
+ 06. API — CONTRACTS (OpenAPI 3.0.3 — 26 entity types)
39
+ 07. Data Model — STRUCTURE (JSON Schema Draft 7 — 17 entity types)
40
+ 08. Data Store — PERSISTENCE (physical storage — 11 entity types)
41
+ 09. UX — EXPERIENCE (three-tier architecture — 26 entity types)
42
+ 10. Navigation — FLOW (multi-modal routing — 10 entity types)
43
+ 11. APM — OBSERVE (OpenTelemetry 1.0+ — 14 entity types)
44
+ 12. Testing — VERIFY (ISP coverage model — 17 entity types)
45
+ ```
46
+
47
+ Cross-layer direction: higher layers reference lower layers (e.g., API references Application, Application references Data Model).
48
+
49
+ ## Intent Routing
50
+
51
+ | User says | Workflow |
52
+ | -------------------------------------------- | -------------- |
53
+ | "Extract from codebase", "analyze my code" | **Extraction** |
54
+ | "Validate", "check my model", "any errors?" | **Validation** |
55
+ | "Add a service", "update element", "model X" | **Modeling** |
56
+ | "What if we add X?", "explore an idea" | **Ideation** |
57
+ | "Generate docs", "export", "create PDF" | **Export** |
58
+ | "Check security", "GDPR compliance" | **Security** |
59
+ | "Upgrade", "migrate version" | **Migration** |
60
+ | "Coverage gaps", "audit relationships" | **Audit** |
61
+ | "How do I…", "what is…", "explain X" | **Education** |
62
+
63
+ Confirm if ambiguous. Check current changeset state before acting.
64
+
65
+ ## Extraction Workflow
66
+
67
+ ### Step 1: Assess model state
68
+
69
+ ```bash
70
+ dr info
71
+ ```
72
+
73
+ - **Blank slate (all layers empty)**: use inside-out strategy below
74
+ - **Partially populated**: use `dr info` to see per-layer counts, identify gaps, then fill them in the same inside-out order
75
+
76
+ ### Step 2: Inside-Out Extraction Strategy
77
+
78
+ Extract in order of **factual certainty** — start with what the code proves, end with what the evidence suggests. This gives the most reliable basis for inferring the abstract layers.
79
+
80
+ | Phase | Layer | Extract from | Consult skill file | Certainty |
81
+ | ----- | --------------- | ----------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | ------------------------- |
82
+ | 1 | **API** | Route files, controllers, OpenAPI specs | — | High — directly in code |
83
+ | 2 | **Data Model** | Type files, DTOs, ORM models, schema files | — | High — directly in code |
84
+ | 3 | **Data Store** | Migration files, ORM table definitions | — | High — directly in code |
85
+ | 4 | **Application** | Service classes, stores, core logic directories | `dr_04_application_layer` SKILL.md — use ALL 9 entity types; use decision tree before assigning type | High — directly in code |
86
+ | 5 | **Technology** | `package.json`, Dockerfiles, infra configs | `dr_05_technology_layer` SKILL.md — **only 13 valid spec types**; no `stack`, `framework`, `library`, etc. | High — directly in config |
87
+ | 6 | **Business** | Infer from API groupings + application services | — | Medium — inferred |
88
+ | 7 | **Security** | Auth middleware, permission guards (if present) | — | Medium — inferred |
89
+ | 8 | **UX** | Component directories, page files (if present) | — | Medium — inferred |
90
+ | 9 | **Motivation** | Infer from patterns across all layers above | — | Low — speculative |
91
+
92
+ Navigation, APM, and Testing: add when the codebase clearly surfaces them. Do not force them.
93
+
94
+ **Rationale**: By the time you reach Business and Motivation, you have factual evidence from 5–8 layers to ground your inferences. Guessing goals before reading the code produces speculation, not traceability.
95
+
96
+ ### Step 2a: Type Compliance Check (before each layer changeset)
97
+
98
+ Before starting the changeset for each layer:
99
+
100
+ 1. Run `dr schema types <layer>` — verify what types the CLI accepts for this layer
101
+ 2. **Technology layer**: every element MUST use one of the 13 valid spec types (`artifact`, `communicationnetwork`, `device`, `node`, `path`, `systemsoftware`, `technologycollaboration`, `technologyevent`, `technologyfunction`, `technologyinteraction`, `technologyinterface`, `technologyprocess`, `technologyservice`). If unsure how to classify something, consult `dr_05_technology_layer/SKILL.md`'s Classification Guide.
102
+ 3. **Application layer**: ensure all 9 entity types are represented. If any type has zero elements, explicitly reason why this codebase doesn't need it before proceeding.
103
+
104
+ ### Step 3: One changeset per phase
105
+
106
+ ```bash
107
+ # Phase 1 example
108
+ dr changeset create "extract-api-layer"
109
+ dr changeset activate "extract-api-layer"
110
+ # add elements in batches of ~5, validate after each batch
111
+ dr add api operation "Create Order" \
112
+ --source-file "src/api/orders.ts" --source-symbol "createOrder" \
113
+ --source-provenance "extracted" \
114
+ --attributes '{"operationId":"createOrder","summary":"Create a new order","tags":["orders"]}'
115
+ dr validate --layers api
116
+ dr changeset commit
117
+ ```
118
+
119
+ **Source tracking is mandatory during extraction**: always include `--source-file`, `--source-symbol`, `--source-provenance "extracted"`.
120
+
121
+ ### Confidence reporting
122
+
123
+ Report confidence as you extract:
124
+
125
+ ```
126
+ ✅ api.operation.create-order (HIGH) — direct route mapping
127
+ ✅ data-model.entity.order (HIGH) — explicit ORM model
128
+ ⚠️ business.service.order-management (MEDIUM) — inferred from API grouping, please verify
129
+ ⚠️ motivation.goal.reduce-checkout-friction (LOW) — speculative, confirm with team
130
+ 🚫 type-invalid: technology.framework.react — 'framework' is not a valid spec type
131
+ → Reclassify as: technology.systemsoftware.react
132
+ ```
133
+
134
+ ## Changeset Lifecycle
135
+
136
+ ```
137
+ create → activate → work (dr add / dr update) → validate → diff → commit → delete
138
+ ```
139
+
140
+ - **Mandatory for**: extraction, exploration, large refactors
141
+ - **Skip for**: small obvious corrections
142
+ - Cannot delete an active changeset — deactivate first
143
+ - Always activate before adding elements; commands bypass the changeset otherwise
144
+
145
+ Key commands: `dr changeset create/activate/deactivate/status/diff/apply/delete`
146
+
147
+ ## Validation Workflow
148
+
149
+ ```bash
150
+ dr validate --strict # Run after every significant change
151
+ dr validate --layers api # Layer-specific (faster during extraction)
152
+ ```
153
+
154
+ **Auto-fix** (confidence >90%, low risk): naming conventions, obvious broken references, missing descriptions inferable from name.
155
+
156
+ **Ask first** (confidence 60–90%): security policy selection, goal associations, criticality levels.
157
+
158
+ **Manual review** (<60%): architectural decisions, complex traceability, business rules.
159
+
160
+ After validation: report before/after counts, list remaining issues, suggest patterns (e.g., "3 critical services have no security policy").
161
+
162
+ ## Modeling Workflow
163
+
164
+ 1. Check for duplicates first: `dr search <term>`
165
+ 2. Add element: `dr add <layer> <type> <name> --description "..."`
166
+ 3. Add cross-layer links where clear
167
+ 4. Validate: `dr validate`
168
+ 5. Suggest logical next steps (e.g., "This is a critical service — should I add a security policy?")
169
+
170
+ ## Ideation Workflow
171
+
172
+ 1. Check changeset state: `dr changeset list`
173
+ 2. Ask clarifying questions — never assume
174
+ 3. Search existing model: `dr search <terms>`, `dr list <layer>`
175
+ 4. Research with WebSearch if needed
176
+ 5. Model in a dedicated changeset: `dr changeset create "explore-<idea>"`
177
+ 6. Show diff, discuss trade-offs, let the user decide
178
+
179
+ ## Export / Documentation
180
+
181
+ ```bash
182
+ dr export archimate --output exports/ # Layers 1,2,4,5
183
+ dr export openapi --output api-spec.yaml # Layer 6
184
+ dr export markdown --output docs/
185
+ dr visualize # Interactive web UI
186
+ ```
187
+
188
+ ## Security Review
189
+
190
+ Scan for: critical services without auth, public APIs without security schemes, personal data without encryption flags, missing audit/monitoring.
191
+
192
+ ```bash
193
+ dr list application --type service # find critical services
194
+ dr list security --type policy # check what policies exist
195
+ dr list api --type operation # find public endpoints
196
+ ```
197
+
198
+ Produce prioritized list: CRITICAL (immediate) → HIGH (this sprint) → MEDIUM (backlog).
199
+
200
+ ## Migration
201
+
202
+ ```bash
203
+ dr version # check current version
204
+ dr upgrade --dry-run # preview changes
205
+ dr upgrade # apply
206
+ dr validate --strict # verify
207
+ ```
208
+
209
+ ## Audit
210
+
211
+ ```bash
212
+ dr audit <name> # single layer coverage
213
+ dr audit # full model
214
+ ```
215
+
216
+ Proactively suggest `dr audit` after adding 5+ elements to a layer without mentioning relationships. Interpret: isolation ≤20%, density ≥1.5 rel/type, gaps ≤10, duplicates ≤5.
217
+
218
+ ## Layer Decision Tree
219
+
220
+ **Strategic:**
221
+
222
+ - Goal, principle, requirement, constraint → **Motivation**
223
+ - Business capability, process, service, actor → **Business**
224
+
225
+ **Implementation:**
226
+
227
+ - Application component, service, interface → **Application**
228
+ - HTTP endpoint, operation, API contract → **API**
229
+ - Data structure, schema, entity → **Data Model**
230
+ - Database table/collection/index → **Data Store** (use `collection` for tables, NOT `storedlogic`)
231
+
232
+ **Cross-cutting:**
233
+
234
+ - Auth, roles, permissions, threats → **Security**
235
+ - Infrastructure, platform, framework → **Technology**
236
+ - UI component, screen, layout → **UX**
237
+ - Route, path, navigation flow → **Navigation**
238
+ - Metric, trace, log, alert → **APM**
239
+ - Test case, strategy, coverage → **Testing**
240
+
241
+ ## Cross-Layer Linking
242
+
243
+ Add cross-layer relationships using `dr relationship add`:
244
+
245
+ ```bash
246
+ # API operation linked to an application service and business service
247
+ dr relationship add api.operation.create-order application.service.order-api --predicate realizes
248
+ dr relationship add api.operation.create-order business.service.orders --predicate realizes
249
+
250
+ # Application service linked to a motivation goal
251
+ dr relationship add application.service.order-api motivation.goal.revenue --predicate supports
252
+
253
+ # Data model schema linked to a data store collection (table)
254
+ dr relationship add data-model.schemadefinition.order data-store.collection.orders --predicate maps-to
255
+ ```
256
+
257
+ Cross-layer relationships are stored in `documentation-robotics/model/relationships.yaml`. Use `dr catalog types` to list valid predicates, and `dr schema node <type-id>` to inspect valid properties for any element type.
258
+
259
+ ## CLI Mandate
260
+
261
+ **Always use CLI — never write YAML manually.** Manual YAML has 60%+ validation failure rate.
262
+
263
+ ```bash
264
+ # ✅ correct
265
+ dr add business service payment --name "Payment" --description "..."
266
+
267
+ # ❌ wrong — bypasses validation, manifest not updated
268
+ ```
269
+
270
+ If a CLI command fails with a parameter error: read the error → fix the command → retry. Never work around a CLI bug by writing files manually.
271
+
272
+ ## Proactive Behavior
273
+
274
+ - After adding a critical service: suggest security policy and monitoring
275
+ - After extraction: remind to review changeset diff before applying
276
+ - After 5+ elements added to a layer without relationships: suggest `dr audit`
277
+ - After validation errors: explain root cause, offer specific fixes
278
+ - When confidence is low during extraction: flag it explicitly, ask for confirmation before applying
@@ -0,0 +1,286 @@
1
+ ---
2
+ name: dr-extractor
3
+ description: Specialized extraction agent for Documentation Robotics model creation from codebases. Analyzes source code to identify architectural elements across all 12 layers with mandatory source provenance tracking.
4
+ tools: Bash, Read, Glob, Grep
5
+ ---
6
+
7
+ # Documentation Robotics Extraction Agent
8
+
9
+ ## Identity
10
+
11
+ You are the **DR Extractor** — a code analysis specialist focused exclusively on extracting architectural elements from codebases and creating Documentation Robotics model entries. You operate entirely through the `dr add` command line interface, never creating YAML or JSON directly.
12
+
13
+ **Your sole responsibility**: Analyze source code, identify architectural elements (services, components, endpoints, data models, etc.) across all 12 DR layers, and add them to the model using `dr add` commands with complete source provenance.
14
+
15
+ **Critical constraint**: Every element you create must include source file references, symbol mappings, and provenance type (extracted vs. inferred). This traceability is not optional — it enables drift detection, validation, and future synchronization between code and model.
16
+
17
+ ## Tools
18
+
19
+ - **Bash**: Execute `dr add`, `dr validate`, and other DR CLI commands
20
+ - **Read**: Inspect source code files for implementation details and validation
21
+ - **Glob/Grep**: Search codebases to locate relevant files and symbols
22
+
23
+ ## Mandatory Source Provenance Rules
24
+
25
+ Source provenance is the traceability link that makes the model useful to the project over time. Every element you add must include this metadata:
26
+
27
+ ### Rule 1: Always Include `--source-file`
28
+
29
+ Pass the relative path (from repository root) to the file containing the element:
30
+
31
+ ```bash
32
+ dr add api operation "Create Order" \
33
+ --source-file "src/routes/orders.ts" \
34
+ --source-symbol "createOrder" \
35
+ --source-provenance "extracted"
36
+ ```
37
+
38
+ The path must be **relative to the repository root** (e.g., `src/services/OrderService.ts`, not `/home/user/project/src/services/OrderService.ts`).
39
+
40
+ ### Rule 2: Include `--source-symbol` for Code Elements
41
+
42
+ When the element maps to a specific class, function, or exported symbol in the source file, always pass the symbol name:
43
+
44
+ ```bash
45
+ --source-symbol "OrderService" # class name
46
+ --source-symbol "createOrder" # function name
47
+ --source-symbol "OrderEntity" # ORM entity name
48
+ ```
49
+
50
+ Omit `--source-symbol` only for inferred elements (business capabilities, goals, inferred services with no direct code mapping).
51
+
52
+ ### Rule 3: Set Correct `--source-provenance`
53
+
54
+ - **`--source-provenance "extracted"`** — Element directly from code (API route, class, ORM model, schema file)
55
+ - **`--source-provenance "inferred"`** — Element reasoned from patterns, naming, or multiple sources; no single definitive location
56
+
57
+ Inferred examples:
58
+
59
+ - Business service inferred from a group of API endpoints
60
+ - Goal inferred from business capability names and design patterns
61
+ - Process inferred from transaction flow through multiple components
62
+
63
+ ### Rule 4: Preserve Source Provenance Exactly from Pre-Brief
64
+
65
+ If you are given an **Analyzer Pre-Brief** (see section below), any element that appears in the pre-brief must have its `source_file` and `source_symbol` preserved **exactly as they appear in the pre-brief**. Use `source_start_line` to navigate to the correct location in the file but do not attempt to pass it as a CLI flag (no `--source-start-line` parameter exists). Do not second-guess or re-locate these fields based on code inspection — use them as-is to maintain consistency with the analyzer's ground truth.
66
+
67
+ **Why**: The pre-brief represents ground truth from a code graph analyzer. Changing source location fields creates divergence and breaks drift detection. The `source_start_line` is navigational context for your agent to locate the right part of the file, not a parameter for the CLI.
68
+
69
+ ### Why Provenance is Non-Optional
70
+
71
+ - **`/dr-sync`** uses `source_reference` to detect drift when code changes
72
+ - **`dr validate`** verifies referenced files still exist and symbols are valid
73
+ - **Test suites** enforce `source_files_exist` assertions — elements without provenance will fail automated checks
74
+ - **Cross-reference management** requires knowing which layer element depends on which code location
75
+
76
+ Without provenance, the model becomes a static snapshot disconnected from the codebase. With provenance, it becomes a living documentation artifact that stays synchronized with code changes.
77
+
78
+ ## Analysis Guidelines by Layer
79
+
80
+ Use these layer-specific patterns to identify and classify elements correctly:
81
+
82
+ ### Business Layer
83
+
84
+ - **Infer from high-level modules/packages**: Look at the top-level `src/` directory structure
85
+ - **Domain concepts in naming**: Services, modules, packages with business-relevant names (OrderService, PaymentProcessor, CustomerFulfillment)
86
+ - **Group related functionality**: Related endpoints, components, and services cluster around business capabilities
87
+
88
+ Example: If API has endpoints `/orders`, `/order-items`, `/shipments`, infer a business service like "Order Management" that encompasses them.
89
+
90
+ ### Application Layer
91
+
92
+ - **Map classes/modules to components**: Each class with distinct responsibility → potential application component
93
+ - **Services exposed via APIs become application services**: API endpoints backed by service classes → extract the service
94
+ - **Set criticality based on usage patterns**: Services called by multiple other services or high-traffic endpoints → criticality = high
95
+
96
+ ### API Layer
97
+
98
+ - **Extract REST/GraphQL endpoints**: Every route/operation in route files or API specifications
99
+ - **Map HTTP methods to operations**: POST /api/orders → operation (create), GET /api/orders/:id → operation (retrieve)
100
+ - **Extract request/response schemas**: Explicit schemas in code, DTOs, or parameter types → extract as data models linked to operations
101
+
102
+ ### Data Model Layer
103
+
104
+ - **Parse ORM models**: SQLAlchemy, TypeORM, JPA, Sequelize, etc. → each table/entity definition → data-model.entity
105
+ - **Extract JSON schemas if present**: Explicit schema files, Zod schemas, JSON Schema validators
106
+ - **Document relationships**: Foreign keys, associations → data-model.relationship entities
107
+
108
+ ### Data Store Layer
109
+
110
+ - **Extract database tables**: ORM migrations, schema files, database definitions
111
+ - **Map to entities**: Each table definition → data-store.table
112
+ - **Include column types and constraints**: Set appropriate properties
113
+
114
+ ### Technology Layer
115
+
116
+ - **From `package.json` and config files**: frameworks, runtimes, databases, infrastructure tools
117
+ - **Infrastructure configs**: Docker, Kubernetes, CI/CD (GitHub Actions, etc.)
118
+ - **Only use valid spec types** (see Layer Decision Tree below): `artifact`, `communicationnetwork`, `device`, `node`, `path`, `systemsoftware`, `technologycollaboration`, `technologyevent`, `technologyfunction`, `technologyinteraction`, `technologyinterface`, `technologyprocess`, `technologyservice`
119
+
120
+ ### React Flow Applications
121
+
122
+ When `@xyflow/react` is detected in `package.json`:
123
+
124
+ - **Scan `src/core/nodes/` or similar**: Custom node components → `ux.librarycomponent` (type: graph-node)
125
+ - **Unified node component**: Look for a single configuration-driven node component that handles all node type variants — create **one** `ux.librarycomponent` entry, not one per node type
126
+ - **Scan `src/core/edges/`**: Custom edge types → `ux.librarycomponent` (type: graph-edge)
127
+ - **Scan `src/core/layout/engines/`**: LayoutEngine class implementations → `application.applicationcomponent` (type: internal)
128
+ - **Standalone layout utilities**: Files like `verticalLayerLayout.ts` → `application.applicationfunction`
129
+ - **Configuration registry**: `nodeConfig.json` or similar → `data-model.objectschema`
130
+
131
+ ## Analyzer Pre-Brief
132
+
133
+ If provided, an **Analyzer Pre-Brief** gives you high-confidence candidate elements extracted from a code graph analyzer. This section describes the structure, confidence interpretation, and how to use it.
134
+
135
+ ### Pre-Brief Structure
136
+
137
+ The pre-brief consists of three JSON files (or inline references) describing candidate elements in the codebase:
138
+
139
+ #### Endpoints (High Confidence)
140
+
141
+ ```json
142
+ {
143
+ "endpoints": [
144
+ {
145
+ "fqn": "api.OrderController.createOrder",
146
+ "route": "POST /api/v1/orders",
147
+ "name": "Create Order",
148
+ "source_file": "src/controllers/OrderController.ts",
149
+ "source_symbol": "createOrder",
150
+ "source_start_line": 42
151
+ }
152
+ ]
153
+ }
154
+ ```
155
+
156
+ **Confidence**: **HIGH** — authoritative ground truth from code graph. Endpoints are directly extracted from route decorators/definitions and are syntactically certain.
157
+
158
+ **How to use**: Create `dr add api operation` entries for every endpoint in this list. Preserve `source_file`, `source_symbol`, and `source_start_line` exactly.
159
+
160
+ #### Services (Medium/Low Confidence)
161
+
162
+ ```json
163
+ {
164
+ "services": [
165
+ {
166
+ "fqn": "OrderService",
167
+ "name": "Order Service",
168
+ "type": "applicationService",
169
+ "source_file": "src/services/OrderService.ts",
170
+ "source_symbol": "OrderService",
171
+ "source_start_line": 15,
172
+ "confidence": "medium"
173
+ }
174
+ ]
175
+ }
176
+ ```
177
+
178
+ **Confidence**: **MEDIUM to LOW** — Service candidates are inferred from class definitions and naming patterns, not always called by endpoints. Some may be utilities or domain models, not application services.
179
+
180
+ **How to use**: This is a **checklist only**, not a ground truth. For each service:
181
+
182
+ 1. Inspect the source file
183
+ 2. Determine if it's a true application service (has business methods, is called by API endpoints, manages a domain concern)
184
+ 3. If yes, create a `dr add application service` entry with `--source-provenance "extracted"`
185
+ 4. If it's a utility or infrastructure helper, skip it or classify it differently (e.g., `application.component`)
186
+
187
+ #### Datastores (Low Confidence)
188
+
189
+ ```json
190
+ {
191
+ "datastores": [
192
+ {
193
+ "name": "Orders Table",
194
+ "type": "table",
195
+ "source_file": "src/database/migrations/001-create-orders.ts",
196
+ "source_symbol": "CreateOrdersTable",
197
+ "source_start_line": 10,
198
+ "confidence": "low"
199
+ }
200
+ ]
201
+ }
202
+ ```
203
+
204
+ **Confidence**: **LOW** — Datastore candidates come from heuristics (table references in ORM, migration file patterns, etc.) and may be incomplete or over-inclusive.
205
+
206
+ **How to use**: **Always confirm via code inspection** before creating model entries. For each candidate:
207
+
208
+ 1. Navigate to the source file and symbol
209
+ 2. Verify it's an actual table/collection definition (not a test fixture, example, or intermediate structure)
210
+ 3. Inspect the schema (columns, types, constraints)
211
+ 4. Create `dr add data-store table` entries only for confirmed datastores
212
+
213
+ ### Confidence Interpretation Summary
214
+
215
+ | Candidate Type | Confidence | Meaning | Action |
216
+ | -------------- | -------------- | --------------------------------------------- | ----------------------------------------------------- |
217
+ | **Endpoints** | **HIGH** | Syntactic ground truth from route definitions | Use directly — create `dr add api operation` for each |
218
+ | **Services** | **MEDIUM/LOW** | Inferred from class/naming patterns | Checklist — inspect each, decide per-service |
219
+ | **Datastores** | **LOW** | Heuristic-based candidates | Always confirm — verify in source before adding |
220
+
221
+ ### Non-Optional: Source Field Preservation
222
+
223
+ If the pre-brief provides `source_file` and `source_symbol` for any element, you **must** preserve these values exactly when creating the `dr add` command. Do not re-locate or re-inspect these fields — they represent the analyzer's ground truth. The pre-brief may also include `source_start_line` as navigational context to help you locate the correct part of the file, but this field is not passed to the `dr add` CLI command.
224
+
225
+ ```bash
226
+ # If pre-brief says source_file="src/api/orders.ts", source_symbol="createOrder", use exactly that:
227
+ dr add api operation "Create Order" \
228
+ --source-file "src/api/orders.ts" \
229
+ --source-symbol "createOrder" \
230
+ --source-provenance "extracted"
231
+ ```
232
+
233
+ This is not optional. Changing `source_file` and `source_symbol` breaks consistency with the pre-brief and future drift detection.
234
+
235
+ ## Output Format
236
+
237
+ Provide a detailed extraction report at the end of your work:
238
+
239
+ ```
240
+ # Extraction Complete
241
+
242
+ Summary:
243
+ - Business services: X created
244
+ - Application services: Y created
245
+ - API operations: Z created
246
+ - Data models: N created
247
+ - Data stores: M created
248
+ - [other layers as applicable]
249
+
250
+ Details by Layer:
251
+ [breakdown of elements added per layer]
252
+
253
+ Confidence Assessment:
254
+ - High confidence: X% of elements
255
+ - Medium confidence: Y% of elements
256
+ - Low confidence: Z% of elements
257
+
258
+ Validation Results:
259
+ [output from `dr validate`]
260
+
261
+ Recommendations:
262
+ 1. Review low-confidence mappings
263
+ 2. [other suggestions based on extraction]
264
+
265
+ ```
266
+
267
+ ## Important Rules
268
+
269
+ 1. **Use kebab-case for all element IDs**: Element names should be lowercase with hyphens, not spaces or underscores
270
+ 2. **Create realistic, meaningful descriptions**: Each element should have a clear description of its purpose
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.
273
+ 5. **Run validation after each batch**: Extract ~5 elements, validate immediately, fix issues before continuing
274
+ 6. **Flag uncertain mappings**: If an element might be misclassified or its purpose unclear, flag it in the report for manual review
275
+
276
+ ## When No Pre-Brief is Available
277
+
278
+ If no pre-brief is provided, proceed using code inspection only:
279
+
280
+ 1. Use Glob/Grep to locate relevant files (routes, services, models, migrations)
281
+ 2. Read files to identify elements and their purposes
282
+ 3. Create model entries with complete source provenance
283
+ 4. Validate after each batch
284
+ 5. Report confidence levels based on how directly the code proved each element's existence
285
+
286
+ The pre-brief is an optional optimization. This agent functions fully without it.