@documentation-robotics/cli 0.1.0 → 0.1.7

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 +208 -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 +162 -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 +42 -16
  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,836 @@
1
+ ---
2
+ name: LAYER_05_TECH
3
+ description: Expert knowledge for Technology Layer modeling in Documentation Robotics
4
+ triggers:
5
+ [
6
+ "infrastructure",
7
+ "node",
8
+ "kubernetes",
9
+ "docker",
10
+ "server",
11
+ "database",
12
+ "technology service",
13
+ "network",
14
+ "cloud",
15
+ "terraform",
16
+ "archimate technology"
17
+ ]
18
+ version: 0.8.3
19
+ ---
20
+
21
+ # Technology Layer Skill
22
+
23
+ **Layer Number:** 05
24
+ **Specification:** Metadata Model Spec v0.8.3
25
+ **Purpose:** Describes the technology infrastructure including hardware, software, networks, and facilities that support applications.
26
+
27
+ ---
28
+
29
+ ## CRITICAL: Valid Element Types
30
+
31
+ > ⚠️ Only 13 spec-defined types may be used in the technology layer.
32
+
33
+ **VALID types** (use exactly these strings in `type:` fields and element IDs):
34
+
35
+ ```
36
+ artifact | communicationnetwork | device | node | path | systemsoftware |
37
+ technologycollaboration | technologyevent | technologyfunction |
38
+ technologyinteraction | technologyinterface | technologyprocess | technologyservice
39
+ ```
40
+
41
+ **INVALID types** — these do NOT exist in the spec:
42
+
43
+ ```
44
+ stack | framework | library | tool | runtime | cicd | deployment | protocol | worker
45
+ ```
46
+
47
+ Element IDs MUST follow: `technology.{valid-spec-type}.{kebab-name}`
48
+
49
+ ```
50
+ ✅ technology.systemsoftware.react
51
+ ✅ technology.artifact.react-flow
52
+ ✅ technology.technologyprocess.github-actions
53
+ ✅ technology.technologyservice.github-pages
54
+ ❌ technology.framework.react (invalid — 'framework' is not a spec type)
55
+ ❌ technology.library.react-flow (invalid — 'library' is not a spec type)
56
+ ❌ technology.cicd.github-actions (invalid)
57
+ ❌ technology.stack.react (invalid — 'stack' does not exist)
58
+ ```
59
+
60
+ ---
61
+
62
+ ## Layer Overview
63
+
64
+ The Technology Layer captures **infrastructure and platform**:
65
+
66
+ - **COMPUTE** - Nodes, devices, system software
67
+ - **NETWORK** - Communication networks, paths, interfaces
68
+ - **STORAGE** - Artifacts (databases, files, configurations)
69
+ - **SERVICES** - Technology services (IaaS, PaaS)
70
+ - **AUTOMATION** - Infrastructure as Code (Terraform, Ansible, K8s)
71
+
72
+ This layer uses **ArchiMate 3.2 Technology Layer** standard with optional properties for Infrastructure as Code references, cloud provider specifics, and operational characteristics.
73
+
74
+ ---
75
+
76
+ ## Entity Types
77
+
78
+ > **CLI Introspection:** Run `dr schema types technology` for the authoritative, always-current list of node types.
79
+ > Run `dr schema node <type-id>` for full attribute details on any type.
80
+
81
+ | Entity Type | Description | Key Attributes |
82
+ | --------------------------- | ------------------------------------------------------- | -------------------------------------------------------------------------------------------- |
83
+ | **Node** | Computational or physical resource that hosts artifacts | Types: server, container, vm, kubernetes-cluster, serverless-function, database-cluster |
84
+ | **Device** | Physical IT resource with processing capability | Types: server, workstation, mobile, iot-device, network-device, storage-appliance |
85
+ | **SystemSoftware** | Software that provides platform for applications | Types: operating-system, database, middleware, container-runtime, web-server, message-broker |
86
+ | **TechnologyCollaboration** | Aggregate of nodes working together | Examples: HA Cluster, CDN Network, Service Mesh |
87
+ | **TechnologyInterface** | Point of access where technology services are available | Protocols: HTTP, HTTPS, TCP, UDP, WebSocket, AMQP, MQTT, SQL, gRPC |
88
+ | **Path** | Link between nodes through which they exchange | Types: network, vpn, direct-connect, internet, peering |
89
+ | **CommunicationNetwork** | Set of structures that connects nodes | Types: lan, wan, vpn, internet, cdn, service-mesh, zero-trust-network |
90
+ | **TechnologyFunction** | Collection of technology behavior | Examples: Load Balancing, Data Replication, Auto-scaling, Monitoring |
91
+ | **TechnologyProcess** | Sequence of technology behaviors (CI/CD, provisioning) | Automation: ansible, terraform, kubernetes, cloudformation, pulumi |
92
+ | **TechnologyInteraction** | Unit of collective technology behavior | Examples: Database Replication, Cache Synchronization, Failover |
93
+ | **TechnologyEvent** | Technology state change | Types: startup, shutdown, failure, scaling, maintenance, alert |
94
+ | **TechnologyService** | Externally visible unit of technology functionality | Types: infrastructure, platform, storage, compute, network, database, messaging |
95
+ | **Artifact** | Physical piece of data used or produced | Types: database, file, configuration, binary, log, backup, docker-image, helm-chart |
96
+
97
+ ---
98
+
99
+ ## Technology Classification Guide
100
+
101
+ Given what you see in the codebase, which spec type does it become?
102
+
103
+ | What You See in the Codebase | Spec Type | Required Attribute | Example ID |
104
+ | ---------------------------------------------------- | ------------------------- | ------------------------------------ | --------------------------------------------------- |
105
+ | Framework-grade npm library (see heuristic below) | `systemsoftware` | `softwareType: middleware` | `technology.systemsoftware.zustand` |
106
+ | Utility npm library (see heuristic below) | `artifact` | `artifactType: library` | `technology.artifact.jszip` |
107
+ | JavaScript/CSS framework (`react`, `tailwindcss`) | `systemsoftware` | `softwareType: middleware` | `technology.systemsoftware.react` |
108
+ | Language runtime (`node.js`, `python`, `bun`) | `systemsoftware` | `softwareType: middleware` | `technology.systemsoftware.nodejs` |
109
+ | Container runtime (`docker`) | `systemsoftware` | `softwareType: container-runtime` | `technology.systemsoftware.docker` |
110
+ | Build tool / compiler (`vite`, `tsc`, `eslint`) | `technologyprocess` | — | `technology.technologyprocess.vite` |
111
+ | CI/CD pipeline or workflow | `technologyprocess` | — | `technology.technologyprocess.github-actions` |
112
+ | Hosted platform service (GitHub Pages, npm registry) | `technologyservice` | `serviceType: compute` or `storage` | `technology.technologyservice.github-pages` |
113
+ | Browser JavaScript runtime environment | `node` | `nodeType: container` | `technology.node.browser-runtime` |
114
+ | Development server | `node` | `nodeType: virtual-machine` | `technology.node.dev-server` |
115
+ | Backend server | `node` | `nodeType: virtual-machine` | `technology.node.dr-cli-server` |
116
+ | Build output / distributable / npm package | `artifact` | `artifactType: archive` or `library` | `technology.artifact.dist-embedded` |
117
+ | Network protocol / communication channel | `communicationnetwork` | `networkType: internet` or `lan` | `technology.communicationnetwork.websocket-channel` |
118
+ | HTTP/WebSocket port or endpoint (access point) | `technologyinterface` | `protocol: http/https/websocket` | `technology.technologyinterface.vite-dev-http` |
119
+ | Infrastructure function (HMR, caching, bundling) | `technologyfunction` | — | `technology.technologyfunction.hot-module-reload` |
120
+ | Off-thread Web Worker | `technologyfunction` | — | `technology.technologyfunction.off-thread-layout` |
121
+ | Group of nodes/services working together | `technologycollaboration` | — | `technology.technologycollaboration.ci-cd-suite` |
122
+
123
+ ### Framework-Grade Library vs. Utility Library
124
+
125
+ When a package is an npm library, ask: does it fundamentally define the application's runtime capabilities (rendering engine, state management, routing, layout)?
126
+
127
+ **YES — use `systemsoftware` (softwareType: middleware):**
128
+ `react`, `vue`, `angular`, `@xyflow/react`, `zustand`, `@tanstack/react-router`, `@tanstack/react-query`, `tailwindcss`, `elkjs`, `dagre`, `d3-force`, `@hpcc-js/wasm`, `libavoid-js`
129
+
130
+ **NO — use `artifact` (artifactType: library):**
131
+ Utility helpers (`lodash`, `date-fns`), export utilities (`jszip`, `html-to-image`), markdown renderers (`react-markdown`), polyfills, adapters
132
+
133
+ The distinction: `systemsoftware` = runtime platform the app is built **on**; `artifact` = code the app uses for a specific utility capability.
134
+
135
+ ---
136
+
137
+ ## Frontend / SPA Codebase Detection Patterns
138
+
139
+ These patterns cover the actual structure of browser-based React/TypeScript SPAs. Always map to valid spec types using the Classification Guide above.
140
+
141
+ ### Pattern: package.json dependencies
142
+
143
+ ```json
144
+ {
145
+ "dependencies": {
146
+ "@xyflow/react": "12.9.3",
147
+ "zustand": "5.0.8",
148
+ "react": "19.2.0",
149
+ "@tanstack/react-query": "5.51.0",
150
+ "libavoid-js": "0.5.0-beta.5",
151
+ "@hpcc-js/wasm": "2.30.0",
152
+ "jszip": "3.10.1",
153
+ "html-to-image": "1.11.13",
154
+ "react-markdown": "9.0.1",
155
+ "msw": "2.6.8"
156
+ },
157
+ "devDependencies": {
158
+ "vite": "7.2.4",
159
+ "typescript": "5.9.3",
160
+ "eslint": "9.x"
161
+ }
162
+ }
163
+ ```
164
+
165
+ → `react` → `technology.systemsoftware.react` (softwareType: middleware)
166
+ → `@xyflow/react` → `technology.systemsoftware.react-flow` (softwareType: middleware — graph rendering engine)
167
+ → `zustand` → `technology.systemsoftware.zustand` (softwareType: middleware — state management)
168
+ → `@tanstack/react-query` → `technology.systemsoftware.react-query` (softwareType: middleware — server state management)
169
+ → `libavoid-js` → `technology.systemsoftware.libavoid-js` (softwareType: middleware — WASM edge routing)
170
+ → `@hpcc-js/wasm` → `technology.systemsoftware.graphviz-wasm` (softwareType: middleware — graph layout WASM)
171
+ → `jszip` → `technology.artifact.jszip` (artifactType: library — ZIP export utility)
172
+ → `html-to-image` → `technology.artifact.html-to-image` (artifactType: library — PNG/SVG export utility)
173
+ → `react-markdown` → `technology.artifact.react-markdown` (artifactType: library — markdown rendering utility)
174
+ → `msw` → `technology.technologyprocess.msw` (Mock Service Worker — test tooling process)
175
+ → `vite` → `technology.technologyprocess.vite` (build tool)
176
+ → `typescript` → `technology.systemsoftware.typescript` (softwareType: middleware — compiler)
177
+ → `eslint` → `technology.technologyprocess.eslint` (linting process)
178
+
179
+ ### Pattern: GitHub Actions CI/CD workflow
180
+
181
+ ```yaml
182
+ name: CI
183
+ on: [push, pull_request]
184
+ jobs:
185
+ build: ...
186
+ test: ...
187
+ deploy: ...
188
+ ```
189
+
190
+ → `technology.technologyprocess.github-actions` (top-level workflow)
191
+ → Each job: `technology.technologyprocess.build-pipeline`, `technology.technologyprocess.deploy-pipeline`
192
+ → NOT `technology.cicd.github-actions` — use `technologyprocess`
193
+
194
+ ### Pattern: Static site hosting (GitHub Pages, Netlify, Vercel)
195
+
196
+ ```yaml
197
+ # .github/workflows/deploy.yml
198
+ - name: Deploy to GitHub Pages
199
+ uses: actions/deploy-pages@v2
200
+ ```
201
+
202
+ → `technology.technologyservice.github-pages` (serviceType: compute)
203
+ → NOT `technology.stack.github-pages` or `technology.deployment.github-pages`
204
+
205
+ ### Pattern: Vite dev server
206
+
207
+ ```typescript
208
+ // vite.config.ts
209
+ export default defineConfig({
210
+ server: { port: 3001 },
211
+ build: { outDir: "dist" }
212
+ });
213
+ ```
214
+
215
+ → `technology.node.dev-server` (nodeType: virtual-machine, port: 3001)
216
+ → `technology.technologyinterface.vite-dev-http` (protocol: http, port: 3001)
217
+ → `technology.artifact.dist-standalone` (artifactType: archive) — build output
218
+
219
+ ### Pattern: Web Worker
220
+
221
+ ```javascript
222
+ // public/workers/layoutWorker.js
223
+ self.onmessage = function (e) {
224
+ const result = runDagreLayout(e.data);
225
+ self.postMessage(result);
226
+ };
227
+ ```
228
+
229
+ → `technology.technologyfunction.off-thread-layout`
230
+ → NOT a separate `worker` type — use `technologyfunction`
231
+
232
+ ### Pattern: Browser runtime
233
+
234
+ The browser that runs a React SPA is the primary Node (host):
235
+
236
+ → `technology.node.browser-runtime` (nodeType: container)
237
+ → It "hosts" `application.applicationcomponent.viewer-app`
238
+
239
+ ---
240
+
241
+ ## Coverage Completeness Checklist
242
+
243
+ Before declaring technology layer extraction complete, verify each type was considered:
244
+
245
+ ```
246
+ □ systemsoftware — runtimes (Node.js), frameworks (React), compilers (TypeScript), Docker
247
+ □ artifact — ALL npm library dependencies, build outputs (dist/), docker images, npm package
248
+ □ node — browser runtime, dev server, backend server, CI runner
249
+ □ technologyprocess — every CI/CD pipeline, build step, automation tool (Vite, ESLint, GitHub Actions)
250
+ □ technologyservice — hosted services: GitHub Pages, npm registry, Docker Hub, CDN
251
+ □ technologyinterface — dev server port, WebSocket endpoint, REST API endpoint
252
+ □ technologyfunction — Web Workers, HMR, caching, bundling algorithms
253
+ □ communicationnetwork — internet connection, WebSocket channel, browser network context
254
+ □ technologycollaboration — groups: CI/CD suite, deployment pipeline (multiple nodes working together)
255
+ □ artifact (configs) — configuration files as artifacts (vite.config.ts, tsconfig.json)
256
+
257
+ Types less likely to apply to a frontend SPA (still worth considering):
258
+ - device: physical hardware (almost never for pure frontend)
259
+ - path: explicit network paths (rare)
260
+ - technologyevent: deployment events, build failures, alerts
261
+ - technologyinteraction: collective behavior across nodes (e.g., CDN + origin server)
262
+ ```
263
+
264
+ ---
265
+
266
+ ## Intra-Layer Relationships
267
+
268
+ ### Structural Relationships
269
+
270
+ | Source Type | Predicate | Target Type | Example |
271
+ | ----------------------- | --------------- | --------------------- | ------------------------------------------------- |
272
+ | Device | composes | Node | "Physical Server" composes "Virtual Machine" |
273
+ | Node | composes | TechnologyInterface | "API Server" composes "HTTPS Endpoint" |
274
+ | SystemSoftware | composes | TechnologyInterface | "PostgreSQL" composes "SQL Interface" |
275
+ | Node | aggregates | Device | Cluster aggregates multiple physical servers |
276
+ | TechnologyCollaboration | aggregates | Node | "K8s Cluster" aggregates "Worker Nodes" |
277
+ | Artifact | specializes | Artifact | "CustomerDatabase" specializes "Database" |
278
+ | Path | realizes | CommunicationNetwork | "VPN Tunnel" realizes "Secure Network" |
279
+ | TechnologyFunction | realizes | TechnologyService | "Load Balancing" realizes "Load Balancer Service" |
280
+ | TechnologyProcess | realizes | TechnologyService | "CI/CD Pipeline" realizes "Deployment Service" |
281
+ | SystemSoftware | realizes | TechnologyService | "PostgreSQL" realizes "Database Service" |
282
+ | Node | assigned-to | TechnologyFunction | "Edge Server" assigned to "CDN Caching" |
283
+ | TechnologyCollaboration | assigned-to | TechnologyInteraction | Cluster performs replication |
284
+ | Path | associated-with | Node | Network path connects nodes |
285
+ | Device | associated-with | CommunicationNetwork | Device connected to network |
286
+ | TechnologyInterface | serves | TechnologyService | Interface provides service access |
287
+
288
+ ### Behavioral Relationships
289
+
290
+ | Source Type | Predicate | Target Type | Example |
291
+ | --------------------- | --------- | ------------------ | --------------------------------------------------- |
292
+ | TechnologyEvent | triggers | TechnologyProcess | "Node Failure" triggers "Failover Process" |
293
+ | TechnologyEvent | triggers | TechnologyFunction | "CPU Threshold" triggers "Auto-scaling Function" |
294
+ | TechnologyProcess | triggers | TechnologyEvent | "Deployment Complete" triggers "Health Check Event" |
295
+ | TechnologyProcess | flows-to | TechnologyProcess | "Build" flows to "Deploy" |
296
+ | TechnologyService | flows-to | TechnologyService | Service dependency chain |
297
+ | SystemSoftware | accesses | Artifact | "Database" accesses "Data Files" |
298
+ | TechnologyFunction | accesses | Artifact | "Backup Function" accesses "Backup Files" |
299
+ | TechnologyProcess | accesses | Artifact | "Deployment" accesses "Docker Images" |
300
+ | TechnologyInteraction | accesses | Artifact | "Replication" accesses "Database Replica" |
301
+
302
+ ---
303
+
304
+ ## Cross-Layer References
305
+
306
+ ### Outgoing References (Technology → Other Layers)
307
+
308
+ | Target Layer | Reference Type | Example |
309
+ | ------------------------- | -------------------------------------------------- | -------------------------------------- |
310
+ | **Layer 1 (Motivation)** | TechnologyService supports **Goal** | Infrastructure supports business goals |
311
+ | **Layer 1 (Motivation)** | TechnologyService governed by **Principle** | Cloud-native principle |
312
+ | **Layer 1 (Motivation)** | Node governed by **Principle** | Infrastructure principles |
313
+ | **Layer 1 (Motivation)** | Node constrained by **Constraint** | Budget, region, compliance constraints |
314
+ | **Layer 1 (Motivation)** | Node fulfills **Requirement** | Performance, availability requirements |
315
+ | **Layer 1 (Motivation)** | SystemSoftware governed by **Principle** | Open-source principle |
316
+ | **Layer 1 (Motivation)** | SystemSoftware constrained by **Constraint** | Licensing, version constraints |
317
+ | **Layer 1 (Motivation)** | SystemSoftware fulfills **Requirement** | Technical requirements |
318
+ | **Layer 1 (Motivation)** | CommunicationNetwork governed by **Principle** | Zero-trust principle |
319
+ | **Layer 1 (Motivation)** | CommunicationNetwork constrained by **Constraint** | Network segmentation |
320
+ | **Layer 1 (Motivation)** | Artifact constrained by **Constraint** | Data residency, retention |
321
+ | **Layer 4 (Application)** | Node hosts **ApplicationComponent** | K8s pod hosts service |
322
+ | **Layer 4 (Application)** | TechnologyService serves **ApplicationService** | Database serves application |
323
+ | **Layer 4 (Application)** | Artifact stores **DataObject** | Database stores application data |
324
+ | **Layer 3 (Security)** | Artifact has **encryption** property | Data-at-rest encryption |
325
+ | **Layer 3 (Security)** | Artifact has **classification** property | Data classification level |
326
+ | **Layer 3 (Security)** | Artifact has **pii** property | Contains PII |
327
+ | **Layer 3 (Security)** | CommunicationNetwork has **security-policy** | Network security rules |
328
+ | **Layer 11 (APM)** | TechnologyService has **sla-target** | Availability, latency targets |
329
+ | **Layer 11 (APM)** | TechnologyService has **health-check** | Health monitoring endpoint |
330
+ | **Layer 11 (APM)** | Node has **monitoring-agent** | APM agent installation |
331
+
332
+ ### Incoming References (Lower Layers → Technology)
333
+
334
+ Lower layers reference Technology layer to show:
335
+
336
+ - Applications depend on infrastructure
337
+ - APIs run on technology platforms
338
+ - Data stored in technology artifacts
339
+
340
+ ---
341
+
342
+ ## Codebase Detection Patterns
343
+
344
+ ### Pattern 1: Kubernetes Deployment
345
+
346
+ ```yaml
347
+ # Kubernetes deployment manifest
348
+ apiVersion: apps/v1
349
+ kind: Deployment
350
+ metadata:
351
+ name: user-service
352
+ namespace: production
353
+ spec:
354
+ replicas: 3
355
+ selector:
356
+ matchLabels:
357
+ app: user-service
358
+ template:
359
+ metadata:
360
+ labels:
361
+ app: user-service
362
+ spec:
363
+ containers:
364
+ - name: user-service
365
+ image: myregistry/user-service:1.0.0
366
+ ports:
367
+ - containerPort: 8080
368
+ ```
369
+
370
+ **Maps to:**
371
+
372
+ - Node: "K8s Cluster Production" (type: kubernetes-cluster)
373
+ - Node: "User Service Pod" (type: container)
374
+ - Artifact: "myregistry/user-service:1.0.0" (type: docker-image)
375
+ - TechnologyInterface: "Port 8080" (protocol: HTTP)
376
+
377
+ ### Pattern 2: Terraform Infrastructure
378
+
379
+ ```hcl
380
+ # Terraform AWS infrastructure
381
+ resource "aws_instance" "web_server" {
382
+ ami = "ami-0c55b159cbfafe1f0"
383
+ instance_type = "t3.medium"
384
+ availability_zone = "us-east-1a"
385
+
386
+ tags = {
387
+ Name = "Web Server"
388
+ Environment = "production"
389
+ }
390
+ }
391
+
392
+ resource "aws_db_instance" "postgres" {
393
+ engine = "postgres"
394
+ engine_version = "14.7"
395
+ instance_class = "db.t3.medium"
396
+ storage_type = "gp3"
397
+ }
398
+ ```
399
+
400
+ **Maps to:**
401
+
402
+ - Node: "Web Server EC2" (type: server, provider: aws, instance-type: t3.medium, region: us-east-1, az: us-east-1a)
403
+ - Node: "PostgreSQL RDS" (type: database-cluster, provider: aws)
404
+ - SystemSoftware: "PostgreSQL 14.7" (type: database, version: 14.7)
405
+ - Properties: iac-tool=terraform, iac-file=main.tf
406
+
407
+ ### Pattern 3: Docker Compose
408
+
409
+ ```yaml
410
+ # docker-compose.yml
411
+ version: "3.8"
412
+ services:
413
+ api:
414
+ image: myapp/api:latest
415
+ ports:
416
+ - "8080:8080"
417
+ depends_on:
418
+ - postgres
419
+ - redis
420
+
421
+ postgres:
422
+ image: postgres:14
423
+ environment:
424
+ POSTGRES_DB: myapp
425
+ POSTGRES_USER: admin
426
+ volumes:
427
+ - postgres-data:/var/lib/postgresql/data
428
+
429
+ redis:
430
+ image: redis:7-alpine
431
+ ports:
432
+ - "6379:6379"
433
+
434
+ volumes:
435
+ postgres-data:
436
+ ```
437
+
438
+ **Maps to:**
439
+
440
+ - TechnologyCollaboration: "Docker Compose Stack"
441
+ - Node: "API Container" (type: container)
442
+ - SystemSoftware: "PostgreSQL 14" (type: database)
443
+ - SystemSoftware: "Redis 7" (type: middleware, subtype: cache)
444
+ - Artifact: "postgres-data" (type: volume)
445
+ - TechnologyInterface: "Redis Port 6379" (protocol: TCP)
446
+
447
+ ### Pattern 4: Database Configuration
448
+
449
+ ```python
450
+ # Database connection configuration
451
+ DATABASE_CONFIG = {
452
+ "host": "prod-db.example.com",
453
+ "port": 5432,
454
+ "database": "customer_db",
455
+ "user": "app_user",
456
+ "password": "${DB_PASSWORD}",
457
+ "pool_size": 20,
458
+ "max_overflow": 10,
459
+ "pool_timeout": 30
460
+ }
461
+ ```
462
+
463
+ **Maps to:**
464
+
465
+ - Node: "Production Database" (type: database-cluster, host: prod-db.example.com)
466
+ - SystemSoftware: "PostgreSQL" (type: database, port: 5432)
467
+ - Artifact: "customer_db" (type: database)
468
+ - TechnologyInterface: "PostgreSQL Interface" (protocol: SQL, port: 5432)
469
+ - Properties: pool-size=20, max-overflow=10
470
+
471
+ ### Pattern 5: CI/CD Pipeline
472
+
473
+ ```yaml
474
+ # GitHub Actions CI/CD
475
+ name: Deploy to Production
476
+ on:
477
+ push:
478
+ branches: [main]
479
+
480
+ jobs:
481
+ build:
482
+ runs-on: ubuntu-latest
483
+ steps:
484
+ - uses: actions/checkout@v3
485
+ - name: Build Docker image
486
+ run: docker build -t myapp:${{ github.sha }} .
487
+ - name: Push to registry
488
+ run: docker push myregistry/myapp:${{ github.sha }}
489
+
490
+ deploy:
491
+ needs: build
492
+ runs-on: ubuntu-latest
493
+ steps:
494
+ - name: Deploy to Kubernetes
495
+ run: kubectl apply -f k8s/deployment.yaml
496
+ ```
497
+
498
+ **Maps to:**
499
+
500
+ - TechnologyProcess: "CI/CD Pipeline" (pattern: ci-cd, automation: github-actions)
501
+ - Sub-processes: "Build", "Deploy"
502
+ - TechnologyFunction: "Docker Build", "Kubernetes Deploy"
503
+ - Artifact: "Docker Image" (type: docker-image)
504
+
505
+ ### Pattern 6: Load Balancer Configuration
506
+
507
+ ```nginx
508
+ # NGINX load balancer
509
+ upstream backend {
510
+ least_conn;
511
+ server app1.example.com:8080 weight=1;
512
+ server app2.example.com:8080 weight=1;
513
+ server app3.example.com:8080 weight=1;
514
+ }
515
+
516
+ server {
517
+ listen 443 ssl;
518
+ server_name api.example.com;
519
+
520
+ ssl_certificate /etc/nginx/ssl/cert.pem;
521
+ ssl_certificate_key /etc/nginx/ssl/key.pem;
522
+
523
+ location / {
524
+ proxy_pass http://backend;
525
+ }
526
+ }
527
+ ```
528
+
529
+ **Maps to:**
530
+
531
+ - Node: "NGINX Load Balancer" (type: server)
532
+ - SystemSoftware: "NGINX" (type: web-server, subtype: load-balancer)
533
+ - TechnologyFunction: "Load Balancing" (strategy: least-conn)
534
+ - TechnologyInterface: "HTTPS Endpoint" (protocol: HTTPS, port: 443)
535
+ - TechnologyCollaboration: "Backend Pool" (aggregates app1, app2, app3)
536
+
537
+ ---
538
+
539
+ ## Modeling Workflow
540
+
541
+ ### Step 1: Identify Infrastructure Nodes
542
+
543
+ ```bash
544
+ # Kubernetes cluster
545
+ dr add technology node "k8s-cluster-prod" \
546
+ --description "Production Kubernetes cluster"
547
+
548
+ # Virtual machines
549
+ dr add technology node "web-server-01" \
550
+ --description "Web application server VM"
551
+
552
+ # Serverless function
553
+ dr add technology node "order-processor-lambda" \
554
+ --description "Lambda function for order processing"
555
+
556
+ # Database cluster
557
+ dr add technology node "postgres-cluster" \
558
+ --description "PostgreSQL RDS cluster"
559
+ ```
560
+
561
+ ### Step 2: Define System Software
562
+
563
+ ```bash
564
+ # Database system
565
+ dr add technology system-software "postgresql-14" \
566
+ --description "PostgreSQL relational database"
567
+
568
+ # Container runtime
569
+ dr add technology system-software "docker" \
570
+ --description "Docker container runtime"
571
+
572
+ # Web server
573
+ dr add technology system-software "nginx" \
574
+ --description "NGINX web server and load balancer"
575
+
576
+ # Message broker
577
+ dr add technology system-software "rabbitmq" \
578
+ --description "RabbitMQ message broker"
579
+ ```
580
+
581
+ ### Step 3: Model Technology Services
582
+
583
+ ```bash
584
+ # Infrastructure service
585
+ dr add technology service "kubernetes-orchestration" \
586
+ --description "Container orchestration platform"
587
+
588
+ # Database service
589
+ dr add technology service "postgres-database" \
590
+ --description "PostgreSQL database service"
591
+
592
+ # Storage service
593
+ dr add technology service "s3-object-storage" \
594
+ --description "S3 object storage for files and backups"
595
+
596
+ # Link software to service
597
+ dr relationship add technology.systemsoftware.postgresql-14 \
598
+ technology.technologyservice.postgres-database --predicate realizes
599
+ ```
600
+
601
+ ### Step 4: Define Communication Networks
602
+
603
+ ```bash
604
+ # VPC network
605
+ dr add technology network "production-vpc" \
606
+ --description "Production VPC network"
607
+
608
+ # Subnet
609
+ dr add technology network "private-subnet-1a" \
610
+ --description "Private subnet in AZ 1a"
611
+
612
+ # VPN
613
+ dr add technology network "site-to-site-vpn" \
614
+ --description "Site-to-site VPN to on-premise datacenter"
615
+ ```
616
+
617
+ ### Step 5: Model Artifacts
618
+
619
+ ```bash
620
+ # Database artifact
621
+ dr add technology artifact "customer-database" \
622
+ --description "Customer data database"
623
+
624
+ # Docker image
625
+ dr add technology artifact "user-service-image" \
626
+ --description "User service Docker image"
627
+
628
+ # Configuration file
629
+ dr add technology artifact "app-config" \
630
+ --description "Application configuration file"
631
+
632
+ # Log files
633
+ dr add technology artifact "application-logs" \
634
+ --description "Application log files"
635
+
636
+ # Link artifact to node
637
+ dr relationship add technology.node.postgres-cluster \
638
+ technology.artifact.customer-database --predicate stores
639
+ ```
640
+
641
+ ### Step 6: Model Infrastructure as Code
642
+
643
+ ```bash
644
+ # Terraform process
645
+ dr add technology process "provision-infrastructure" \
646
+ --description "Terraform infrastructure provisioning"
647
+
648
+ # Ansible process
649
+ dr add technology process "configure-servers" \
650
+ --description "Ansible server configuration"
651
+
652
+ # Kubernetes deployment process
653
+ dr add technology process "deploy-to-k8s" \
654
+ --description "Deploy application to Kubernetes"
655
+ ```
656
+
657
+ ### Step 7: Define Technology Functions
658
+
659
+ ```bash
660
+ # Load balancing
661
+ dr add technology function "load-balancing" \
662
+ --description "Distribute traffic across backend servers"
663
+
664
+ # Auto-scaling
665
+ dr add technology function "auto-scaling" \
666
+ --description "Automatically scale based on CPU utilization"
667
+
668
+ # Backup
669
+ dr add technology function "database-backup" \
670
+ --description "Automated database backup"
671
+
672
+ # Assign function to node
673
+ dr relationship add technology.node.k8s-cluster-prod \
674
+ technology.technologyfunction.auto-scaling --predicate assigned-to
675
+ ```
676
+
677
+ ### Step 8: Cross-Layer Integration
678
+
679
+ ```bash
680
+ # Link to application layer
681
+ dr relationship add technology.node.k8s-cluster-prod \
682
+ application.applicationcomponent.user-service --predicate hosts
683
+
684
+ # Link to motivation layer
685
+ dr relationship add technology.technologyservice.kubernetes-orchestration \
686
+ motivation.goal.improve-deployment-frequency --predicate supports
687
+
688
+ dr relationship add technology.node.k8s-cluster-prod \
689
+ motivation.principle.cloud-native-architecture --predicate governed-by
690
+
691
+ # Link to APM layer
692
+ dr relationship add technology.technologyservice.postgres-database \
693
+ apm.metric.database-query-latency --predicate monitored-by
694
+ ```
695
+
696
+ ### Step 9: Validate
697
+
698
+ ```bash
699
+ dr validate --layers technology
700
+ dr validate --relationships
701
+ ```
702
+
703
+ ---
704
+
705
+ ## Cloud Provider Patterns
706
+
707
+ ### AWS Pattern
708
+
709
+ ```
710
+ TechnologyCollaboration: "AWS Production Environment"
711
+ ├── contains → Node: "EKS Cluster" (provider: aws, region: us-east-1)
712
+ │ ├── hosts → ApplicationComponent: "Microservices"
713
+ │ └── uses → TechnologyService: "EKS Orchestration"
714
+ ├── contains → Node: "RDS PostgreSQL" (provider: aws, multi-az: true)
715
+ │ └── realizes → TechnologyService: "Database Service"
716
+ ├── contains → Artifact: "S3 Bucket" (provider: aws, storage-class: standard)
717
+ └── contains → CommunicationNetwork: "VPC" (cidr: 10.0.0.0/16)
718
+ ├── contains → Subnet: "Public Subnet" (cidr: 10.0.1.0/24)
719
+ └── contains → Subnet: "Private Subnet" (cidr: 10.0.2.0/24)
720
+ ```
721
+
722
+ ### Kubernetes Pattern
723
+
724
+ ```
725
+ Node: "Kubernetes Cluster"
726
+ ├── type: kubernetes-cluster
727
+ ├── hosts → Node: "Namespace: production"
728
+ │ ├── hosts → Node: "Deployment: user-service"
729
+ │ │ ├── replicas: 3
730
+ │ │ └── hosts → Node: "Pod: user-service-xyz"
731
+ │ │ └── hosts → ApplicationComponent: "UserService"
732
+ │ └── uses → Artifact: "ConfigMap: app-config"
733
+ └── uses → TechnologyFunction: "Auto-scaling" (HPA)
734
+ ```
735
+
736
+ ### Hybrid Cloud Pattern
737
+
738
+ ```
739
+ TechnologyCollaboration: "Hybrid Cloud Architecture"
740
+ ├── contains → Node: "AWS EKS Cluster" (provider: aws)
741
+ ├── contains → Node: "On-Premise K8s" (provider: onprem)
742
+ ├── connected-by → Path: "Direct Connect" (type: direct-connect)
743
+ └── secured-by → CommunicationNetwork: "Zero-Trust Network"
744
+ ```
745
+
746
+ ---
747
+
748
+ ## Best Practices
749
+
750
+ 1. **Node Types Matter** - server vs container vs serverless have different operational characteristics
751
+ 2. **Track IaC References** - Link to Terraform, Ansible, Kubernetes manifests
752
+ 3. **Model HA Clusters** - Use TechnologyCollaboration for high-availability setups
753
+ 4. **Network Segmentation** - Model VPCs, subnets, security zones explicitly
754
+ 5. **Artifact Encryption** - Mark encryption status (at-rest, in-transit, both)
755
+ 6. **Version Everything** - Track software versions, image tags, schema versions
756
+ 7. **Link to Motivation** - Infrastructure choices trace to principles and constraints
757
+ 8. **Monitor SLAs** - Technology services have availability and latency targets
758
+ 9. **Document Automation** - Reference IaC tools and CI/CD pipelines
759
+ 10. **Cloud-Agnostic When Possible** - Use ArchiMate types rather than provider-specific terms
760
+
761
+ ---
762
+
763
+ ## Infrastructure as Code Integration
764
+
765
+ When infrastructure is managed as code:
766
+
767
+ ```yaml
768
+ technology-node:
769
+ id: "k8s-cluster-prod"
770
+ type: "kubernetes-cluster"
771
+ properties:
772
+ iac-tool: "terraform"
773
+ iac-file: "infrastructure/eks-cluster.tf"
774
+ iac-module: "eks-cluster"
775
+ iac-version: "4.0.0"
776
+ provider: "aws"
777
+ region: "us-east-1"
778
+ ```
779
+
780
+ **IaC Tools Supported:**
781
+
782
+ - **Terraform** - Declarative infrastructure
783
+ - **Ansible** - Configuration management
784
+ - **Kubernetes** - Container orchestration manifests
785
+ - **CloudFormation** - AWS-specific IaC
786
+ - **Pulumi** - Programming language IaC
787
+ - **Helm** - Kubernetes package manager
788
+
789
+ ---
790
+
791
+ ## Validation Tips
792
+
793
+ | Issue | Cause | Fix |
794
+ | ---------------------- | --------------------------------------------------- | -------------------------------------- |
795
+ | Orphaned Node | Node not hosting applications or realizing services | Link to application layer or remove |
796
+ | Unhosted Application | ApplicationComponent not deployed to any node | Add deployment link to technology node |
797
+ | Missing Networks | Nodes exist but no network connectivity | Model CommunicationNetwork and Paths |
798
+ | Untracked Artifacts | Databases, images, configs not modeled | Add Artifact entities |
799
+ | No IaC Reference | Infrastructure lacks automation reference | Add iac-tool and iac-file properties |
800
+ | Missing SLA Targets | Services lack availability/latency targets | Add SLA properties for monitoring |
801
+ | No Security Properties | Artifacts lack encryption/classification | Add security properties |
802
+
803
+ ---
804
+
805
+ ## Quick Reference
806
+
807
+ **Add Commands:**
808
+
809
+ ```bash
810
+ dr add technology node <name>
811
+ dr add technology system-software <name>
812
+ dr add technology service <name>
813
+ dr add technology network <name>
814
+ dr add technology artifact <name>
815
+ dr add technology function <name>
816
+ dr add technology process <name>
817
+ ```
818
+
819
+ **Relationship Commands:**
820
+
821
+ ```bash
822
+ dr relationship add <node> <application-component> --predicate hosts
823
+ dr relationship add <system-software> <service> --predicate realizes
824
+ dr relationship add <node> <function> --predicate assigned-to
825
+ dr relationship add <node> <artifact> --predicate stores
826
+ dr relationship add <network> <node> --predicate connects
827
+ ```
828
+
829
+ **Cross-Layer Commands:**
830
+
831
+ ```bash
832
+ dr relationship add <technology-node> <application-component> --predicate hosts
833
+ dr relationship add <technology-service> <motivation-goal> --predicate supports
834
+ dr relationship add <technology-node> <motivation-principle> --predicate governed-by
835
+ dr relationship add <technology-service> <apm-metric> --predicate monitored-by
836
+ ```