@evolith/smart-cli 0.0.3-beta → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (531) hide show
  1. package/ARCHITECTURE.md +1 -1
  2. package/LICENSE +21 -0
  3. package/README.es.md +1024 -171
  4. package/README.md +1018 -166
  5. package/dist/.tsbuildinfo +1 -0
  6. package/dist/CoreApiClient.d.ts +5 -0
  7. package/dist/CoreApiClient.js +25 -0
  8. package/dist/CoreApiClient.js.map +1 -0
  9. package/dist/app.module.js +97 -10
  10. package/dist/app.module.js.map +1 -1
  11. package/dist/commands/adr/adr.command.d.ts +9 -3
  12. package/dist/commands/adr/adr.command.js +82 -88
  13. package/dist/commands/adr/adr.command.js.map +1 -1
  14. package/dist/commands/agents/agents.command.d.ts +27 -0
  15. package/dist/commands/agents/agents.command.js +373 -0
  16. package/dist/commands/agents/agents.command.js.map +1 -0
  17. package/dist/commands/agents/index.d.ts +1 -0
  18. package/dist/commands/agents/index.js +6 -0
  19. package/dist/commands/agents/index.js.map +1 -0
  20. package/dist/commands/alias/alias.command.d.ts +16 -0
  21. package/dist/commands/alias/alias.command.js +95 -0
  22. package/dist/commands/alias/alias.command.js.map +1 -0
  23. package/dist/commands/api/api.catalog.d.ts +38 -0
  24. package/dist/commands/api/api.catalog.js +167 -0
  25. package/dist/commands/api/api.catalog.js.map +1 -0
  26. package/dist/commands/api/api.command.d.ts +21 -0
  27. package/dist/commands/api/api.command.js +162 -0
  28. package/dist/commands/api/api.command.js.map +1 -0
  29. package/dist/commands/architecture/scaffold/index.d.ts +2 -0
  30. package/dist/commands/architecture/scaffold/index.js +6 -0
  31. package/dist/commands/architecture/scaffold/index.js.map +1 -0
  32. package/dist/commands/architecture/scaffold/scaffold-strategy.d.ts +15 -0
  33. package/dist/commands/architecture/scaffold/scaffold-strategy.js +20 -0
  34. package/dist/commands/architecture/scaffold/scaffold-strategy.js.map +1 -0
  35. package/dist/commands/architecture/scaffold.command.d.ts +12 -3
  36. package/dist/commands/architecture/scaffold.command.js +222 -56
  37. package/dist/commands/architecture/scaffold.command.js.map +1 -1
  38. package/dist/commands/chat/chat.command.d.ts +7 -0
  39. package/dist/commands/chat/chat.command.js +64 -0
  40. package/dist/commands/chat/chat.command.js.map +1 -0
  41. package/dist/commands/completion/completion.command.d.ts +12 -4
  42. package/dist/commands/completion/completion.command.js +159 -53
  43. package/dist/commands/completion/completion.command.js.map +1 -1
  44. package/dist/commands/docs/docs.command.d.ts +6 -3
  45. package/dist/commands/docs/docs.command.js +75 -16
  46. package/dist/commands/docs/docs.command.js.map +1 -1
  47. package/dist/commands/drift/drift.command.d.ts +7 -3
  48. package/dist/commands/drift/drift.command.js +94 -52
  49. package/dist/commands/drift/drift.command.js.map +1 -1
  50. package/dist/commands/evaluate/evaluate.command.d.ts +28 -0
  51. package/dist/commands/evaluate/evaluate.command.js +197 -0
  52. package/dist/commands/evaluate/evaluate.command.js.map +1 -0
  53. package/dist/commands/fixtures/fixtures.command.d.ts +21 -0
  54. package/dist/commands/fixtures/fixtures.command.js +310 -0
  55. package/dist/commands/fixtures/fixtures.command.js.map +1 -0
  56. package/dist/commands/gate/gate.command.d.ts +29 -0
  57. package/dist/commands/gate/gate.command.js +193 -0
  58. package/dist/commands/gate/gate.command.js.map +1 -0
  59. package/dist/commands/history/history.command.d.ts +3 -3
  60. package/dist/commands/history/history.command.js +24 -55
  61. package/dist/commands/history/history.command.js.map +1 -1
  62. package/dist/commands/init/init.command.d.ts +9 -3
  63. package/dist/commands/init/init.command.js +39 -198
  64. package/dist/commands/init/init.command.js.map +1 -1
  65. package/dist/commands/init/init.wizard.d.ts +19 -0
  66. package/dist/commands/init/init.wizard.js +181 -0
  67. package/dist/commands/init/init.wizard.js.map +1 -0
  68. package/dist/commands/phase/phase-advance.command.d.ts +30 -0
  69. package/dist/commands/phase/phase-advance.command.js +206 -0
  70. package/dist/commands/phase/phase-advance.command.js.map +1 -0
  71. package/dist/commands/plan/index.d.ts +1 -0
  72. package/dist/commands/plan/index.js +133 -0
  73. package/dist/commands/plan/index.js.map +1 -0
  74. package/dist/commands/profile/profile.command.d.ts +18 -0
  75. package/dist/commands/profile/profile.command.js +198 -0
  76. package/dist/commands/profile/profile.command.js.map +1 -0
  77. package/dist/commands/satellite/index.d.ts +2 -0
  78. package/dist/commands/satellite/index.js +8 -0
  79. package/dist/commands/satellite/index.js.map +1 -0
  80. package/dist/commands/satellite/satellite-adopt.command.d.ts +21 -0
  81. package/dist/commands/satellite/satellite-adopt.command.js +193 -0
  82. package/dist/commands/satellite/satellite-adopt.command.js.map +1 -0
  83. package/dist/commands/satellite/satellite-create.command.d.ts +26 -0
  84. package/dist/commands/satellite/satellite-create.command.js +192 -0
  85. package/dist/commands/satellite/satellite-create.command.js.map +1 -0
  86. package/dist/commands/sdlc/gate-status.command.d.ts +8 -3
  87. package/dist/commands/sdlc/gate-status.command.js +114 -66
  88. package/dist/commands/sdlc/gate-status.command.js.map +1 -1
  89. package/dist/commands/sdlc/generate-domain.command.d.ts +6 -3
  90. package/dist/commands/sdlc/generate-domain.command.js +126 -16
  91. package/dist/commands/sdlc/generate-domain.command.js.map +1 -1
  92. package/dist/commands/sdlc/handoff.command.d.ts +9 -4
  93. package/dist/commands/sdlc/handoff.command.js +106 -104
  94. package/dist/commands/sdlc/handoff.command.js.map +1 -1
  95. package/dist/commands/sdlc/sdlc.command.d.ts +4 -3
  96. package/dist/commands/sdlc/sdlc.command.js +17 -9
  97. package/dist/commands/sdlc/sdlc.command.js.map +1 -1
  98. package/dist/commands/standards/standards.command.d.ts +6 -3
  99. package/dist/commands/standards/standards.command.js +52 -77
  100. package/dist/commands/standards/standards.command.js.map +1 -1
  101. package/dist/commands/topology/phase-artifacts.command.d.ts +23 -0
  102. package/dist/commands/topology/phase-artifacts.command.js +167 -0
  103. package/dist/commands/topology/phase-artifacts.command.js.map +1 -0
  104. package/dist/commands/topology/recommend.command.d.ts +36 -0
  105. package/dist/commands/topology/recommend.command.js +236 -0
  106. package/dist/commands/topology/recommend.command.js.map +1 -0
  107. package/dist/commands/topology/topology.command.d.ts +5 -0
  108. package/dist/commands/topology/topology.command.js +41 -0
  109. package/dist/commands/topology/topology.command.js.map +1 -0
  110. package/dist/commands/update/update.command.d.ts +21 -0
  111. package/dist/commands/update/update.command.js +214 -0
  112. package/dist/commands/update/update.command.js.map +1 -0
  113. package/dist/commands/upgrade/upgrade.command.d.ts +22 -0
  114. package/dist/commands/{init → upgrade}/upgrade.command.js +34 -66
  115. package/dist/commands/upgrade/upgrade.command.js.map +1 -0
  116. package/dist/commands/validate/validate.command.d.ts +24 -6
  117. package/dist/commands/validate/validate.command.js +301 -63
  118. package/dist/commands/validate/validate.command.js.map +1 -1
  119. package/dist/config/alias.service.d.ts +14 -0
  120. package/dist/{core/sync/sync.service.js → config/alias.service.js} +54 -32
  121. package/dist/config/alias.service.js.map +1 -0
  122. package/dist/contributions/contribution-validator.d.ts +16 -0
  123. package/dist/contributions/contribution-validator.js +34 -0
  124. package/dist/contributions/contribution-validator.js.map +1 -0
  125. package/dist/contributions/index.d.ts +1 -0
  126. package/dist/contributions/index.js +6 -0
  127. package/dist/contributions/index.js.map +1 -0
  128. package/dist/{domain/services → infrastructure/adapters}/agent-registry.service.d.ts +6 -2
  129. package/dist/{domain/services → infrastructure/adapters}/agent-registry.service.js +33 -10
  130. package/dist/infrastructure/adapters/agent-registry.service.js.map +1 -0
  131. package/dist/infrastructure/agent/agent-runtime.factory.d.ts +9 -0
  132. package/dist/infrastructure/agent/agent-runtime.factory.js +47 -0
  133. package/dist/infrastructure/agent/agent-runtime.factory.js.map +1 -0
  134. package/dist/{core → infrastructure}/architecture/nx-workspace.strategy.d.ts +9 -1
  135. package/dist/infrastructure/architecture/nx-workspace.strategy.js +125 -0
  136. package/dist/infrastructure/architecture/nx-workspace.strategy.js.map +1 -0
  137. package/dist/infrastructure/architecture/topology-catalog.d.ts +15 -0
  138. package/dist/infrastructure/architecture/topology-catalog.js +50 -0
  139. package/dist/infrastructure/architecture/topology-catalog.js.map +1 -0
  140. package/dist/infrastructure/catalog/catalog-loader.d.ts +1 -2
  141. package/dist/infrastructure/catalog/catalog-loader.js +14 -5
  142. package/dist/infrastructure/catalog/catalog-loader.js.map +1 -1
  143. package/dist/infrastructure/cli/base-command.d.ts +14 -0
  144. package/dist/infrastructure/cli/base-command.js +41 -0
  145. package/dist/infrastructure/cli/base-command.js.map +1 -0
  146. package/dist/infrastructure/cli/command-executor.d.ts +2 -1
  147. package/dist/infrastructure/cli/command-executor.js +20 -3
  148. package/dist/infrastructure/cli/command-executor.js.map +1 -1
  149. package/dist/infrastructure/cli/providers/index.js +32 -29
  150. package/dist/infrastructure/cli/providers/index.js.map +1 -1
  151. package/dist/infrastructure/config/config.service.d.ts +34 -0
  152. package/dist/infrastructure/config/config.service.js +126 -0
  153. package/dist/infrastructure/config/config.service.js.map +1 -0
  154. package/dist/infrastructure/filesystem/file-manager.service.d.ts +12 -0
  155. package/dist/{core → infrastructure}/filesystem/file-manager.service.js +8 -25
  156. package/dist/infrastructure/filesystem/file-manager.service.js.map +1 -0
  157. package/dist/infrastructure/formatters/output-formatter.service.js +2 -1
  158. package/dist/infrastructure/formatters/output-formatter.service.js.map +1 -1
  159. package/dist/{core → infrastructure}/observability/command-watcher.js +31 -0
  160. package/dist/infrastructure/observability/command-watcher.js.map +1 -0
  161. package/dist/{core → infrastructure}/observability/error-reporter.js +5 -5
  162. package/dist/infrastructure/observability/error-reporter.js.map +1 -0
  163. package/dist/infrastructure/observability/index.d.ts +11 -0
  164. package/dist/{core → infrastructure}/observability/index.js +8 -1
  165. package/dist/infrastructure/observability/index.js.map +1 -0
  166. package/dist/infrastructure/observability/otel-tracing.d.ts +4 -0
  167. package/dist/infrastructure/observability/otel-tracing.js +34 -0
  168. package/dist/infrastructure/observability/otel-tracing.js.map +1 -0
  169. package/dist/infrastructure/observability/structured-logger.js.map +1 -0
  170. package/dist/infrastructure/observability/timing.js.map +1 -0
  171. package/dist/infrastructure/observability/tool-usage-telemetry.service.js.map +1 -0
  172. package/dist/infrastructure/plugins/plugin-loader.d.ts +10 -0
  173. package/dist/infrastructure/plugins/plugin-loader.js +145 -0
  174. package/dist/infrastructure/plugins/plugin-loader.js.map +1 -0
  175. package/dist/infrastructure/plugins/plugin.module.d.ts +4 -0
  176. package/dist/infrastructure/plugins/plugin.module.js +28 -0
  177. package/dist/infrastructure/plugins/plugin.module.js.map +1 -0
  178. package/dist/infrastructure/prompts/init-prompt-group.d.ts +3 -0
  179. package/dist/infrastructure/prompts/init-prompt-group.js +115 -0
  180. package/dist/infrastructure/prompts/init-prompt-group.js.map +1 -0
  181. package/dist/infrastructure/prompts/init-prompt-options.d.ts +10 -0
  182. package/dist/infrastructure/prompts/init-prompt-options.js +40 -0
  183. package/dist/infrastructure/prompts/init-prompt-options.js.map +1 -0
  184. package/dist/infrastructure/prompts/progress.service.d.ts +24 -0
  185. package/dist/infrastructure/prompts/progress.service.js +180 -0
  186. package/dist/infrastructure/prompts/progress.service.js.map +1 -0
  187. package/dist/infrastructure/prompts/prompt.service.d.ts +42 -0
  188. package/dist/infrastructure/prompts/prompt.service.js +142 -0
  189. package/dist/infrastructure/prompts/prompt.service.js.map +1 -0
  190. package/dist/infrastructure/prompts/wizard.service.d.ts +27 -0
  191. package/dist/infrastructure/prompts/wizard.service.js +163 -0
  192. package/dist/infrastructure/prompts/wizard.service.js.map +1 -0
  193. package/dist/{core/abstractions → infrastructure}/providers/config-parser.provider.d.ts +1 -1
  194. package/dist/infrastructure/providers/config-parser.provider.js.map +1 -0
  195. package/dist/{core/abstractions → infrastructure}/providers/logger.provider.d.ts +1 -1
  196. package/dist/infrastructure/providers/logger.provider.js.map +1 -0
  197. package/dist/{core/abstractions → infrastructure}/providers/mock-filesystem.provider.d.ts +6 -2
  198. package/dist/{core/abstractions → infrastructure}/providers/mock-filesystem.provider.js +8 -1
  199. package/dist/infrastructure/providers/mock-filesystem.provider.js.map +1 -0
  200. package/dist/{core/abstractions → infrastructure}/providers/node-filesystem.provider.d.ts +6 -2
  201. package/dist/{core/abstractions → infrastructure}/providers/node-filesystem.provider.js +13 -0
  202. package/dist/infrastructure/providers/node-filesystem.provider.js.map +1 -0
  203. package/dist/main.js +30 -2
  204. package/dist/main.js.map +1 -1
  205. package/dist/plugins/index.d.ts +1 -0
  206. package/dist/plugins/index.js +6 -0
  207. package/dist/plugins/index.js.map +1 -0
  208. package/dist/plugins/plugin-registry.d.ts +22 -0
  209. package/dist/plugins/plugin-registry.js +33 -0
  210. package/dist/plugins/plugin-registry.js.map +1 -0
  211. package/package.json +58 -27
  212. package/shell/hooks.bash +68 -0
  213. package/shell/hooks.fish +57 -0
  214. package/shell/hooks.zsh +68 -0
  215. package/dist/app.module.spec.d.ts +0 -1
  216. package/dist/app.module.spec.js +0 -305
  217. package/dist/app.module.spec.js.map +0 -1
  218. package/dist/application/services/index.d.ts +0 -63
  219. package/dist/application/services/index.js +0 -345
  220. package/dist/application/services/index.js.map +0 -1
  221. package/dist/application/services/phase-transition.use-case.spec.d.ts +0 -1
  222. package/dist/application/services/phase-transition.use-case.spec.js +0 -297
  223. package/dist/application/services/phase-transition.use-case.spec.js.map +0 -1
  224. package/dist/application/services/services.test.d.ts +0 -1
  225. package/dist/application/services/services.test.js +0 -176
  226. package/dist/application/services/services.test.js.map +0 -1
  227. package/dist/application/use-cases/validate-satellite.use-case.d.ts +0 -18
  228. package/dist/application/use-cases/validate-satellite.use-case.js +0 -92
  229. package/dist/application/use-cases/validate-satellite.use-case.js.map +0 -1
  230. package/dist/application/use-cases/validate-satellite.use-case.spec.d.ts +0 -1
  231. package/dist/application/use-cases/validate-satellite.use-case.spec.js +0 -102
  232. package/dist/application/use-cases/validate-satellite.use-case.spec.js.map +0 -1
  233. package/dist/commands/adr/adr.command.spec.d.ts +0 -1
  234. package/dist/commands/adr/adr.command.spec.js +0 -409
  235. package/dist/commands/adr/adr.command.spec.js.map +0 -1
  236. package/dist/commands/architecture/scaffold.command.spec.d.ts +0 -1
  237. package/dist/commands/architecture/scaffold.command.spec.js +0 -207
  238. package/dist/commands/architecture/scaffold.command.spec.js.map +0 -1
  239. package/dist/commands/commands.test.d.ts +0 -1
  240. package/dist/commands/commands.test.js +0 -131
  241. package/dist/commands/commands.test.js.map +0 -1
  242. package/dist/commands/completion/completion.command.spec.d.ts +0 -1
  243. package/dist/commands/completion/completion.command.spec.js +0 -240
  244. package/dist/commands/completion/completion.command.spec.js.map +0 -1
  245. package/dist/commands/docs/docs.command.spec.d.ts +0 -1
  246. package/dist/commands/docs/docs.command.spec.js +0 -87
  247. package/dist/commands/docs/docs.command.spec.js.map +0 -1
  248. package/dist/commands/drift/drift.command.spec.d.ts +0 -1
  249. package/dist/commands/drift/drift.command.spec.js +0 -327
  250. package/dist/commands/drift/drift.command.spec.js.map +0 -1
  251. package/dist/commands/history/history.command.spec.d.ts +0 -1
  252. package/dist/commands/history/history.command.spec.js +0 -392
  253. package/dist/commands/history/history.command.spec.js.map +0 -1
  254. package/dist/commands/init/agents.command.d.ts +0 -22
  255. package/dist/commands/init/agents.command.js +0 -502
  256. package/dist/commands/init/agents.command.js.map +0 -1
  257. package/dist/commands/init/agents.command.spec.d.ts +0 -1
  258. package/dist/commands/init/agents.command.spec.js +0 -550
  259. package/dist/commands/init/agents.command.spec.js.map +0 -1
  260. package/dist/commands/init/init.command.spec.d.ts +0 -1
  261. package/dist/commands/init/init.command.spec.js +0 -272
  262. package/dist/commands/init/init.command.spec.js.map +0 -1
  263. package/dist/commands/init/upgrade.command.d.ts +0 -19
  264. package/dist/commands/init/upgrade.command.js.map +0 -1
  265. package/dist/commands/init/upgrade.command.spec.d.ts +0 -1
  266. package/dist/commands/init/upgrade.command.spec.js +0 -378
  267. package/dist/commands/init/upgrade.command.spec.js.map +0 -1
  268. package/dist/commands/mcp/mcp-serve.command.d.ts +0 -15
  269. package/dist/commands/mcp/mcp-serve.command.js +0 -106
  270. package/dist/commands/mcp/mcp-serve.command.js.map +0 -1
  271. package/dist/commands/mcp/mcp-serve.command.spec.d.ts +0 -1
  272. package/dist/commands/mcp/mcp-serve.command.spec.js +0 -58
  273. package/dist/commands/mcp/mcp-serve.command.spec.js.map +0 -1
  274. package/dist/commands/sdlc/generate-domain.command.spec.d.ts +0 -1
  275. package/dist/commands/sdlc/generate-domain.command.spec.js +0 -47
  276. package/dist/commands/sdlc/generate-domain.command.spec.js.map +0 -1
  277. package/dist/commands/sdlc/handoff.command.spec.d.ts +0 -1
  278. package/dist/commands/sdlc/handoff.command.spec.js +0 -395
  279. package/dist/commands/sdlc/handoff.command.spec.js.map +0 -1
  280. package/dist/commands/sdlc/sdlc.command.spec.d.ts +0 -1
  281. package/dist/commands/sdlc/sdlc.command.spec.js +0 -45
  282. package/dist/commands/sdlc/sdlc.command.spec.js.map +0 -1
  283. package/dist/commands/standards/standards.command.spec.d.ts +0 -1
  284. package/dist/commands/standards/standards.command.spec.js +0 -311
  285. package/dist/commands/standards/standards.command.spec.js.map +0 -1
  286. package/dist/commands/validate/validate.command.spec.d.ts +0 -1
  287. package/dist/commands/validate/validate.command.spec.js +0 -368
  288. package/dist/commands/validate/validate.command.spec.js.map +0 -1
  289. package/dist/config/runtimes.json +0 -196
  290. package/dist/config/tool-catalog.json +0 -343
  291. package/dist/core/abstractions/index.d.ts +0 -6
  292. package/dist/core/abstractions/index.js +0 -23
  293. package/dist/core/abstractions/index.js.map +0 -1
  294. package/dist/core/abstractions/interfaces.d.ts +0 -60
  295. package/dist/core/abstractions/interfaces.js +0 -5
  296. package/dist/core/abstractions/interfaces.js.map +0 -1
  297. package/dist/core/abstractions/providers/config-parser.provider.js.map +0 -1
  298. package/dist/core/abstractions/providers/logger.provider.js.map +0 -1
  299. package/dist/core/abstractions/providers/logger.provider.spec.d.ts +0 -1
  300. package/dist/core/abstractions/providers/logger.provider.spec.js +0 -212
  301. package/dist/core/abstractions/providers/logger.provider.spec.js.map +0 -1
  302. package/dist/core/abstractions/providers/mock-filesystem.provider.js.map +0 -1
  303. package/dist/core/abstractions/providers/node-filesystem.provider.js.map +0 -1
  304. package/dist/core/agents/agent-ruleset-builder.d.ts +0 -30
  305. package/dist/core/agents/agent-ruleset-builder.js +0 -75
  306. package/dist/core/agents/agent-ruleset-builder.js.map +0 -1
  307. package/dist/core/agents/agent-ruleset-builder.spec.d.ts +0 -1
  308. package/dist/core/agents/agent-ruleset-builder.spec.js +0 -135
  309. package/dist/core/agents/agent-ruleset-builder.spec.js.map +0 -1
  310. package/dist/core/architecture/nx-workspace.strategy.js +0 -107
  311. package/dist/core/architecture/nx-workspace.strategy.js.map +0 -1
  312. package/dist/core/architecture/workspace-manager.strategy.d.ts +0 -7
  313. package/dist/core/architecture/workspace-manager.strategy.js +0 -3
  314. package/dist/core/architecture/workspace-manager.strategy.js.map +0 -1
  315. package/dist/core/config/config.service.d.ts +0 -15
  316. package/dist/core/config/config.service.js +0 -55
  317. package/dist/core/config/config.service.js.map +0 -1
  318. package/dist/core/config/config.service.spec.d.ts +0 -1
  319. package/dist/core/config/config.service.spec.js +0 -43
  320. package/dist/core/config/config.service.spec.js.map +0 -1
  321. package/dist/core/di/container.d.ts +0 -25
  322. package/dist/core/di/container.js +0 -87
  323. package/dist/core/di/container.js.map +0 -1
  324. package/dist/core/di/container.spec.d.ts +0 -1
  325. package/dist/core/di/container.spec.js +0 -301
  326. package/dist/core/di/container.spec.js.map +0 -1
  327. package/dist/core/errors/index.d.ts +0 -26
  328. package/dist/core/errors/index.js +0 -67
  329. package/dist/core/errors/index.js.map +0 -1
  330. package/dist/core/filesystem/file-manager.service.d.ts +0 -4
  331. package/dist/core/filesystem/file-manager.service.js.map +0 -1
  332. package/dist/core/filesystem/file-manager.service.spec.d.ts +0 -1
  333. package/dist/core/filesystem/file-manager.service.spec.js +0 -103
  334. package/dist/core/filesystem/file-manager.service.spec.js.map +0 -1
  335. package/dist/core/mcp/mcp-server.service.d.ts +0 -7
  336. package/dist/core/mcp/mcp-server.service.js +0 -31
  337. package/dist/core/mcp/mcp-server.service.js.map +0 -1
  338. package/dist/core/mcp/metrics.service.d.ts +0 -37
  339. package/dist/core/mcp/metrics.service.js +0 -72
  340. package/dist/core/mcp/metrics.service.js.map +0 -1
  341. package/dist/core/mcp/metrics.service.spec.d.ts +0 -1
  342. package/dist/core/mcp/metrics.service.spec.js +0 -159
  343. package/dist/core/mcp/metrics.service.spec.js.map +0 -1
  344. package/dist/core/mcp/prompts/index.d.ts +0 -22
  345. package/dist/core/mcp/prompts/index.js +0 -211
  346. package/dist/core/mcp/prompts/index.js.map +0 -1
  347. package/dist/core/mcp/prompts/index.spec.d.ts +0 -1
  348. package/dist/core/mcp/prompts/index.spec.js +0 -150
  349. package/dist/core/mcp/prompts/index.spec.js.map +0 -1
  350. package/dist/core/mcp/resources/index.d.ts +0 -11
  351. package/dist/core/mcp/resources/index.js +0 -209
  352. package/dist/core/mcp/resources/index.js.map +0 -1
  353. package/dist/core/mcp/resources/index.spec.d.ts +0 -1
  354. package/dist/core/mcp/resources/index.spec.js +0 -212
  355. package/dist/core/mcp/resources/index.spec.js.map +0 -1
  356. package/dist/core/mcp/server.d.ts +0 -31
  357. package/dist/core/mcp/server.js +0 -719
  358. package/dist/core/mcp/server.js.map +0 -1
  359. package/dist/core/mcp/server.spec.d.ts +0 -1
  360. package/dist/core/mcp/server.spec.js +0 -563
  361. package/dist/core/mcp/server.spec.js.map +0 -1
  362. package/dist/core/mcp/tools/agent.d.ts +0 -41
  363. package/dist/core/mcp/tools/agent.js +0 -195
  364. package/dist/core/mcp/tools/agent.js.map +0 -1
  365. package/dist/core/mcp/tools/agent.spec.d.ts +0 -1
  366. package/dist/core/mcp/tools/agent.spec.js +0 -171
  367. package/dist/core/mcp/tools/agent.spec.js.map +0 -1
  368. package/dist/core/mcp/tools/architecture.d.ts +0 -29
  369. package/dist/core/mcp/tools/architecture.js +0 -234
  370. package/dist/core/mcp/tools/architecture.js.map +0 -1
  371. package/dist/core/mcp/tools/architecture.spec.d.ts +0 -1
  372. package/dist/core/mcp/tools/architecture.spec.js +0 -145
  373. package/dist/core/mcp/tools/architecture.spec.js.map +0 -1
  374. package/dist/core/mcp/tools/moscow.d.ts +0 -30
  375. package/dist/core/mcp/tools/moscow.js +0 -113
  376. package/dist/core/mcp/tools/moscow.js.map +0 -1
  377. package/dist/core/mcp/tools/moscow.spec.d.ts +0 -1
  378. package/dist/core/mcp/tools/moscow.spec.js +0 -209
  379. package/dist/core/mcp/tools/moscow.spec.js.map +0 -1
  380. package/dist/core/mcp/tools/sdlc.d.ts +0 -32
  381. package/dist/core/mcp/tools/sdlc.js +0 -190
  382. package/dist/core/mcp/tools/sdlc.js.map +0 -1
  383. package/dist/core/mcp/tools/sdlc.spec.d.ts +0 -1
  384. package/dist/core/mcp/tools/sdlc.spec.js +0 -170
  385. package/dist/core/mcp/tools/sdlc.spec.js.map +0 -1
  386. package/dist/core/mcp/tools/tool-utils.d.ts +0 -4
  387. package/dist/core/mcp/tools/tool-utils.js +0 -18
  388. package/dist/core/mcp/tools/tool-utils.js.map +0 -1
  389. package/dist/core/mcp/tools/validate.d.ts +0 -18
  390. package/dist/core/mcp/tools/validate.js +0 -56
  391. package/dist/core/mcp/tools/validate.js.map +0 -1
  392. package/dist/core/mcp/tools/validate.spec.d.ts +0 -1
  393. package/dist/core/mcp/tools/validate.spec.js +0 -130
  394. package/dist/core/mcp/tools/validate.spec.js.map +0 -1
  395. package/dist/core/mcp/watcher.service.d.ts +0 -8
  396. package/dist/core/mcp/watcher.service.js +0 -82
  397. package/dist/core/mcp/watcher.service.js.map +0 -1
  398. package/dist/core/mcp/watcher.service.spec.d.ts +0 -1
  399. package/dist/core/mcp/watcher.service.spec.js +0 -171
  400. package/dist/core/mcp/watcher.service.spec.js.map +0 -1
  401. package/dist/core/observability/command-watcher.js.map +0 -1
  402. package/dist/core/observability/error-reporter.js.map +0 -1
  403. package/dist/core/observability/error-reporter.spec.d.ts +0 -1
  404. package/dist/core/observability/error-reporter.spec.js +0 -291
  405. package/dist/core/observability/error-reporter.spec.js.map +0 -1
  406. package/dist/core/observability/index.d.ts +0 -4
  407. package/dist/core/observability/index.js.map +0 -1
  408. package/dist/core/observability/observability.test.d.ts +0 -1
  409. package/dist/core/observability/observability.test.js +0 -224
  410. package/dist/core/observability/observability.test.js.map +0 -1
  411. package/dist/core/observability/structured-logger.js.map +0 -1
  412. package/dist/core/observability/structured-logger.spec.d.ts +0 -1
  413. package/dist/core/observability/structured-logger.spec.js +0 -197
  414. package/dist/core/observability/structured-logger.spec.js.map +0 -1
  415. package/dist/core/observability/timing.js.map +0 -1
  416. package/dist/core/observability/timing.spec.d.ts +0 -1
  417. package/dist/core/observability/timing.spec.js +0 -216
  418. package/dist/core/observability/timing.spec.js.map +0 -1
  419. package/dist/core/services/command-executor.service.d.ts +0 -3
  420. package/dist/core/services/command-executor.service.js +0 -12
  421. package/dist/core/services/command-executor.service.js.map +0 -1
  422. package/dist/core/services/command-history.service.d.ts +0 -38
  423. package/dist/core/services/command-history.service.js +0 -146
  424. package/dist/core/services/command-history.service.js.map +0 -1
  425. package/dist/core/services/command-history.service.spec.d.ts +0 -1
  426. package/dist/core/services/command-history.service.spec.js +0 -166
  427. package/dist/core/services/command-history.service.spec.js.map +0 -1
  428. package/dist/core/services/command-providers.d.ts +0 -1
  429. package/dist/core/services/command-providers.js +0 -17
  430. package/dist/core/services/command-providers.js.map +0 -1
  431. package/dist/core/services/runtime-catalog.service.d.ts +0 -2
  432. package/dist/core/services/runtime-catalog.service.js +0 -7
  433. package/dist/core/services/runtime-catalog.service.js.map +0 -1
  434. package/dist/core/sync/sync.service.d.ts +0 -4
  435. package/dist/core/sync/sync.service.js.map +0 -1
  436. package/dist/core/sync/sync.service.spec.d.ts +0 -1
  437. package/dist/core/sync/sync.service.spec.js +0 -63
  438. package/dist/core/sync/sync.service.spec.js.map +0 -1
  439. package/dist/core/upgrade/satellite-upgrade.service.d.ts +0 -48
  440. package/dist/core/upgrade/satellite-upgrade.service.js +0 -358
  441. package/dist/core/upgrade/satellite-upgrade.service.js.map +0 -1
  442. package/dist/core/upgrade/satellite-upgrade.service.spec.d.ts +0 -1
  443. package/dist/core/upgrade/satellite-upgrade.service.spec.js +0 -163
  444. package/dist/core/upgrade/satellite-upgrade.service.spec.js.map +0 -1
  445. package/dist/core/validators/architecture-drift.service.d.ts +0 -68
  446. package/dist/core/validators/architecture-drift.service.js +0 -266
  447. package/dist/core/validators/architecture-drift.service.js.map +0 -1
  448. package/dist/core/validators/architecture-drift.service.spec.d.ts +0 -1
  449. package/dist/core/validators/architecture-drift.service.spec.js +0 -315
  450. package/dist/core/validators/architecture-drift.service.spec.js.map +0 -1
  451. package/dist/core/validators/deep-architecture-analyzer.d.ts +0 -58
  452. package/dist/core/validators/deep-architecture-analyzer.js +0 -333
  453. package/dist/core/validators/deep-architecture-analyzer.js.map +0 -1
  454. package/dist/core/validators/deep-architecture-analyzer.spec.d.ts +0 -1
  455. package/dist/core/validators/deep-architecture-analyzer.spec.js +0 -216
  456. package/dist/core/validators/deep-architecture-analyzer.spec.js.map +0 -1
  457. package/dist/core/validators/phase-gate-validator.service.d.ts +0 -71
  458. package/dist/core/validators/phase-gate-validator.service.js +0 -273
  459. package/dist/core/validators/phase-gate-validator.service.js.map +0 -1
  460. package/dist/core/validators/phase-gate-validator.service.spec.d.ts +0 -1
  461. package/dist/core/validators/phase-gate-validator.service.spec.js +0 -326
  462. package/dist/core/validators/phase-gate-validator.service.spec.js.map +0 -1
  463. package/dist/core/validators/ruleset-validator-architecture.spec.d.ts +0 -1
  464. package/dist/core/validators/ruleset-validator-architecture.spec.js +0 -178
  465. package/dist/core/validators/ruleset-validator-architecture.spec.js.map +0 -1
  466. package/dist/core/validators/ruleset-validator.service.d.ts +0 -80
  467. package/dist/core/validators/ruleset-validator.service.js +0 -657
  468. package/dist/core/validators/ruleset-validator.service.js.map +0 -1
  469. package/dist/core/validators/ruleset-validator.service.spec.d.ts +0 -1
  470. package/dist/core/validators/ruleset-validator.service.spec.js +0 -469
  471. package/dist/core/validators/ruleset-validator.service.spec.js.map +0 -1
  472. package/dist/domain/entities/index.d.ts +0 -72
  473. package/dist/domain/entities/index.js +0 -119
  474. package/dist/domain/entities/index.js.map +0 -1
  475. package/dist/domain/interfaces.d.ts +0 -224
  476. package/dist/domain/interfaces.js +0 -3
  477. package/dist/domain/interfaces.js.map +0 -1
  478. package/dist/domain/services/adr.service.d.ts +0 -50
  479. package/dist/domain/services/adr.service.js +0 -125
  480. package/dist/domain/services/adr.service.js.map +0 -1
  481. package/dist/domain/services/adr.service.spec.d.ts +0 -1
  482. package/dist/domain/services/adr.service.spec.js +0 -141
  483. package/dist/domain/services/adr.service.spec.js.map +0 -1
  484. package/dist/domain/services/agent-registry.service.js.map +0 -1
  485. package/dist/domain/services/agent-registry.service.spec.d.ts +0 -1
  486. package/dist/domain/services/agent-registry.service.spec.js +0 -162
  487. package/dist/domain/services/agent-registry.service.spec.js.map +0 -1
  488. package/dist/domain/services/index.d.ts +0 -34
  489. package/dist/domain/services/index.js +0 -128
  490. package/dist/domain/services/index.js.map +0 -1
  491. package/dist/domain/services/moscow-prioritization.service.d.ts +0 -44
  492. package/dist/domain/services/moscow-prioritization.service.js +0 -213
  493. package/dist/domain/services/moscow-prioritization.service.js.map +0 -1
  494. package/dist/domain/services/moscow-prioritization.service.spec.d.ts +0 -1
  495. package/dist/domain/services/moscow-prioritization.service.spec.js +0 -285
  496. package/dist/domain/services/moscow-prioritization.service.spec.js.map +0 -1
  497. package/dist/domain/services/services.test.d.ts +0 -1
  498. package/dist/domain/services/services.test.js +0 -236
  499. package/dist/domain/services/services.test.js.map +0 -1
  500. package/dist/domain/services/standards.service.d.ts +0 -47
  501. package/dist/domain/services/standards.service.js +0 -129
  502. package/dist/domain/services/standards.service.js.map +0 -1
  503. package/dist/domain/services/standards.service.spec.d.ts +0 -1
  504. package/dist/domain/services/standards.service.spec.js +0 -600
  505. package/dist/domain/services/standards.service.spec.js.map +0 -1
  506. package/dist/domain/services/tool-usage-telemetry.service.js.map +0 -1
  507. package/dist/domain/services/tool-usage-telemetry.service.spec.d.ts +0 -1
  508. package/dist/domain/services/tool-usage-telemetry.service.spec.js +0 -180
  509. package/dist/domain/services/tool-usage-telemetry.service.spec.js.map +0 -1
  510. package/dist/infrastructure/catalog/catalog-loader.test.d.ts +0 -1
  511. package/dist/infrastructure/catalog/catalog-loader.test.js +0 -184
  512. package/dist/infrastructure/catalog/catalog-loader.test.js.map +0 -1
  513. package/dist/infrastructure/cli/command-executor.test.d.ts +0 -1
  514. package/dist/infrastructure/cli/command-executor.test.js +0 -98
  515. package/dist/infrastructure/cli/command-executor.test.js.map +0 -1
  516. package/dist/infrastructure/formatters/output-formatter.service.spec.d.ts +0 -1
  517. package/dist/infrastructure/formatters/output-formatter.service.spec.js +0 -164
  518. package/dist/infrastructure/formatters/output-formatter.service.spec.js.map +0 -1
  519. package/dist/test/mocks/index.d.ts +0 -44
  520. package/dist/test/mocks/index.js +0 -135
  521. package/dist/test/mocks/index.js.map +0 -1
  522. /package/dist/{core → infrastructure}/observability/command-watcher.d.ts +0 -0
  523. /package/dist/{core → infrastructure}/observability/error-reporter.d.ts +0 -0
  524. /package/dist/{core → infrastructure}/observability/structured-logger.d.ts +0 -0
  525. /package/dist/{core → infrastructure}/observability/structured-logger.js +0 -0
  526. /package/dist/{core → infrastructure}/observability/timing.d.ts +0 -0
  527. /package/dist/{core → infrastructure}/observability/timing.js +0 -0
  528. /package/dist/{domain/services → infrastructure/observability}/tool-usage-telemetry.service.d.ts +0 -0
  529. /package/dist/{domain/services → infrastructure/observability}/tool-usage-telemetry.service.js +0 -0
  530. /package/dist/{core/abstractions → infrastructure}/providers/config-parser.provider.js +0 -0
  531. /package/dist/{core/abstractions → infrastructure}/providers/logger.provider.js +0 -0
package/README.es.md CHANGED
@@ -1,258 +1,1051 @@
1
- # Evolith CLI
1
+ # @evolith/smart-cli
2
2
 
3
- Interfaz de línea de comandos para gobernanza, validación de estándares e integración con agentes IA.
3
+ Interfaz de línea de comandos para Evolith — gobernanza, validación de estándares, scaffolding de arquitectura, gestión del ciclo de vida SDLC e integración con agentes IA.
4
4
 
5
- ## Características
5
+ ## Visión General
6
6
 
7
- - **Gobernanza**: Gestión de ADR, seguimiento de estándares, instalación de agentes
8
- - **Validación**: Cumplimiento del repositorio contra los estándares de Evolith
9
- - **Integración IA**: Servidor MCP para llamadas de herramientas de agentes IA
10
- - **Observabilidad**: Logging estructurado, métricas, reporte de errores
7
+ SmartCLI es el punto de entrada principal al ecosistema Evolith. Conecta tres capas:
11
8
 
12
- ## Instalación
9
+ ```
10
+ repositorio satélite
11
+
12
+
13
+ smart-cli ──────── evolith.yaml (configuración)
14
+
15
+ ├── Evolith Core (rulesets, ADRs, estándares, evidencia de gates)
16
+
17
+ └── Servidor MCP ──── Agentes IA (Cursor, Claude Desktop, propios)
18
+ ```
19
+
20
+ ## Arquitecturas Soportadas
21
+
22
+ Evolith Core define **8 topologías de arquitectura** a través de dimensiones complementarias. Cualquier comando que acepte `--topology` las referencia por su id canónico:
23
+
24
+ | Topología (id) | Nombre | Dimensión |
25
+ |---------------|------|-----------|
26
+ | `modular-monolith` | Monolito Modular | eje progresivo |
27
+ | `distributed-modules` | Módulos Distribuidos | eje progresivo |
28
+ | `microservices` | Microservicios | eje progresivo |
29
+ | `serverless` | Serverless | ejecución |
30
+ | `edge-computing` | Edge Computing | ejecución |
31
+ | `event-driven` | Orientada a Eventos | integración |
32
+ | `data-mesh` | Data Mesh | datos |
33
+ | `agentic-ai` | Agentic AI | ia |
34
+
35
+ El **eje progresivo** (`modular-monolith → distributed-modules → microservices`) es una progresión lineal de madurez gestionada por el comando `upgrade`. Las demás dimensiones (ejecución, integración, datos, ia) son complementarias y se eligen según las necesidades del proyecto.
13
36
 
14
- ### npm (Recomendado)
37
+ > **Legado `F1/F2/F3`:** versiones anteriores usaban `--arch F1|F2|F3` mapeando al eje progresivo (`F1 = modular-monolith`, `F2 = distributed-modules`, `F3 = microservices`). Estos flags están **deprecados** — usa `--topology <id>` con los ids canónicos anteriores. (Las antiguas etiquetas "Microfrontend / Microfrontend Distribuido" son obsoletas y ya no reflejan el corpus.)
38
+
39
+ ## Instalación
15
40
 
16
41
  ```bash
17
42
  npm install -g @evolith/smart-cli
18
43
  ```
19
44
 
20
- ### Manual
45
+ ```bash
46
+ pnpm add -g @evolith/smart-cli
47
+ ```
21
48
 
22
- Descarga el binario más reciente desde [GitHub Releases](https://github.com/beyondnetcode/evolith_arch32/releases) y agrégalo a tu PATH.
49
+ ```bash
50
+ yarn global add @evolith/smart-cli
51
+ ```
23
52
 
24
- ### Verificar Instalación
53
+ O descarga el binario desde [GitHub Releases](https://github.com/beyondnetcode/evolith_arch32/releases) y agrégalo a tu PATH.
54
+
55
+ ### Verificar
25
56
 
26
57
  ```bash
27
58
  smart-cli --version
28
- # smart-cli version 0.0.1-beta
59
+ # 1.1.4
29
60
  ```
30
61
 
31
- ## Inicio Rápido
62
+ ### Solución de Problemas
32
63
 
33
- ### 1. Inicializar un Repositorio
64
+ **EACCES en macOS/Linux:**
65
+ ```bash
66
+ sudo npm install -g @evolith/smart-cli --unsafe-perm
67
+ ```
34
68
 
69
+ **nvm — binario no encontrado tras instalar:**
35
70
  ```bash
36
- cd tu-proyecto
37
- smart-cli init
71
+ export PATH=$(npm config get prefix)/bin:$PATH
38
72
  ```
39
73
 
40
- Esto crea un archivo `evolith.yaml` con la configuración por defecto.
74
+ **`WORKSPACE_ROOT` (opcional):** la CLI incluye un workflow SDLC por defecto, así que funciona sin configurar nada. Define `WORKSPACE_ROOT` apuntando a la raíz de un checkout solo si quieres sobreescribir el workflow/rulesets desde disco (`$WORKSPACE_ROOT/rulesets/sdlc/default-workflow.yaml`).
75
+
76
+ ### Variables de entorno
41
77
 
42
- ### 2. Ejecutar la Primera Validación
78
+ La CLI funciona sin configuración. Las siguientes variables son overrides opcionales. Las marcadas *(MCP)* las lee únicamente el paquete incluido `@evolith/mcp-server` mientras `smart-cli mcp serve` está en ejecución.
79
+
80
+ | Variable | Leída por | Propósito |
81
+ |---|---|---|
82
+ | `EVOLITH_PROFILE` | CLI | Selecciona el perfil con nombre activo (valores por defecto por entorno) en lugar de `default`. |
83
+ | `EVOLITH_API_KEY` | CLI / MCP | API key para el transporte HTTP del MCP (equivalente a `--api-key`); requerida en modo HTTP de producción. |
84
+ | `PORT` | CLI / MCP | Puerto HTTP por defecto para `mcp serve --transport http` cuando se omite `--port` (por defecto `3000`). |
85
+ | `OTEL_ENABLED` | CLI | Cuando es `true`, habilita la exportación de trazas OpenTelemetry desde la CLI. |
86
+ | `WORKSPACE_ROOT` | Core | Raíz del checkout para sobreescribir el workflow/rulesets incluidos desde disco (ver arriba). |
87
+ | `MCP_HTTP_HOST` *(MCP)* | MCP | Host de enlace para el transporte HTTP (por defecto `0.0.0.0`; usa `127.0.0.1` para acceso local). |
88
+ | `JWT_SECRET` *(MCP)* | MCP | Secreto HS256 que habilita la autenticación JWT bearer opcional en el transporte HTTP. |
89
+ | `LOG_LEVEL` *(MCP)* | MCP | Nivel de detalle de logs del servidor MCP (por defecto `info`). |
90
+ | `NODE_ENV` *(MCP)* | MCP | `production` fuerza el comportamiento fail-closed de auth/policy en el servidor MCP. |
91
+
92
+ ## Inicio Rápido
43
93
 
44
94
  ```bash
95
+ # 1. Sembrar un proyecto demo para explorar la CLI
96
+ smart-cli fixtures --type demo
97
+
98
+ # 2. Inicializar un repositorio real
99
+ smart-cli init
100
+
101
+ # 3. Generar la documentación base
102
+ smart-cli docs
103
+
104
+ # 4. Validar cumplimiento
45
105
  smart-cli validate
106
+
107
+ # 5. Scaffolding de arquitectura (fase 1)
108
+ smart-cli scaffold --phase 1
109
+
110
+ # 6. Conectar un agente IA
111
+ smart-cli mcp serve
46
112
  ```
47
113
 
48
- Salida:
114
+ ---
115
+
116
+ ## Comandos
117
+
118
+ ### init
119
+
120
+ Inicializa un repositorio satélite con selección interactiva de herramientas. Crea `evolith.yaml` y la estructura del proyecto.
121
+
122
+ ```bash
123
+ smart-cli init [opciones]
124
+
125
+ Opciones:
126
+ -d, --dry-run Ejecuta sin escribir archivos
127
+ -c, --config <ruta> Ruta a evolith.setup.json para modo batch
128
+ -r, --runtime <id> Runtime: nodejs, dotnet, python
129
+ -m, --monorepo <id> Estrategia monorepo: none, nx, npm-workspaces, rush
130
+ -a, --arch <id> Patrón de arquitectura: clean, hexagonal, ddd
131
+ --db <id> Base de datos: postgresql, mongodb, sqlserver
49
132
  ```
50
- ✓ Validando repositorio...
51
- ✓ El repositorio cumple con los estándares de Evolith
133
+
134
+ **Ejemplos:**
135
+
136
+ ```bash
137
+ # Wizard interactivo
138
+ smart-cli init
139
+
140
+ # Modo batch (no interactivo)
141
+ smart-cli init --config evolith.setup.json
142
+
143
+ # Previsualizar sin escribir
144
+ smart-cli init --dry-run
52
145
  ```
53
146
 
54
- ### 3. Instalar un Agente
147
+ Tras completar `init`, la CLI imprime los siguientes pasos sugeridos, incluyendo `validate`, `agents --install` y `sdlc handoff`.
148
+
149
+ ---
150
+
151
+ ### init-wizard
152
+
153
+ Una alternativa totalmente guiada, paso a paso, a `init` que recorre nombre del proyecto, runtime, estrategia de monorepo y patrón de arquitectura con prompts interactivos. Úsalo para una configuración inicial asistida; usa `init` (con flags o `--config`) para ejecuciones automatizadas o no interactivas.
55
154
 
56
155
  ```bash
57
- smart-cli agents install
58
- # Seleccionar la plantilla "standard" cuando se solicite
156
+ smart-cli init-wizard [opciones]
157
+
158
+ Opciones:
159
+ --no-wizard Usa el flujo estándar de init en lugar del asistente
160
+ --no-interactive Ejecuta en modo no interactivo (CI/automatización)
59
161
  ```
60
162
 
61
- ## Comandos
163
+ ---
164
+
165
+ ### docs
166
+
167
+ Genera los archivos de documentación base que Evolith requiere en el directorio actual.
168
+
169
+ Archivos creados por defecto:
170
+ - `README.md` — plantilla de visión general del proyecto
171
+ - `AGENTS.md` — configuración y reglas de agentes IA
172
+ - `MASTER_INDEX.md` — índice de documentación
173
+ - `.evolith/evolith.yaml` — configuración de Evolith
174
+
175
+ ```bash
176
+ smart-cli docs [opciones]
177
+
178
+ Opciones:
179
+ -d, --dry-run Previsualiza archivos sin escribir
180
+ -f, --force Sobreescribe archivos existentes
181
+ -t, --template <tipo> Tipo de plantilla: default (los 4 archivos), minimal (solo README + AGENTS)
182
+ --format <formato> Formato de salida: json (envelope ADR-0073) o human (por defecto)
183
+ ```
184
+
185
+ **Ejemplos:**
186
+
187
+ ```bash
188
+ # Generar toda la documentación
189
+ smart-cli docs
190
+
191
+ # Previsualizar lo que se crearía
192
+ smart-cli docs --dry-run
193
+
194
+ # Scaffold mínimo
195
+ smart-cli docs --template minimal
196
+
197
+ # Forzar sobreescritura y emitir envelope JSON
198
+ smart-cli docs --force --format json
199
+ ```
200
+
201
+ ---
62
202
 
63
203
  ### validate
64
204
 
65
- Valida el cumplimiento del repositorio contra los estándares de Evolith.
205
+ Valida el cumplimiento del repositorio contra los estándares de Evolith. Soporta múltiples motores, rulesets, topologías y fases SDLC.
66
206
 
67
207
  ```bash
68
208
  smart-cli validate [opciones]
69
209
 
70
210
  Opciones:
71
- --satellite <ruta> Ruta al repositorio satélite (por defecto: cwd)
72
- --core <ruta> Ruta a Evolith Core
73
- --format <formato> Formato de salida: json, table, yaml, markdown
74
- --output <archivo> Escribir salida a archivo
75
- --ruleset <id> Validar ruleset específico (acl, open-core, inheritance)
211
+ -s, --satellite <ruta> Ruta al repositorio satélite (por defecto: cwd)
212
+ -c, --core <ruta> Ruta a Evolith Core (por defecto: auto-detect)
213
+ -f, --format <formato> Formato de salida: json, table, yaml, markdown (por defecto: markdown)
214
+ -o, --output <archivo> Escribe la salida a un archivo
215
+ -r, --ruleset <id> Valida un ruleset específico (ver tabla abajo)
216
+ -e, --engine <motor> Motor de validación: native (por defecto) u opa
217
+ -t, --topology <id> Topología a validar por id canónico, p. ej. modular-monolith,
218
+ microservices, serverless, event-driven, agentic-ai (repetible).
219
+ Los alias legacy F1/F2/F3 siguen mapeando al eje progresivo.
220
+ -m, --manifest <ruta> SatelliteManifest JSON para evaluación end-to-end (pipeline GT-281)
221
+ -p, --phase <fase> Fase SDLC a evaluar: discovery, design, construction, qa, release (legacy f1..f5 deprecado; activa pipeline GT-281)
222
+ --adr <id> Validar contra un conjunto de reglas ADR específico
223
+ --file <ruta> Validar un solo archivo (modo ad-hoc)
224
+ --composable Usar el motor composable GT-312 con resolución inteligente de modos
76
225
  ```
77
226
 
227
+ **Rulesets disponibles (`--ruleset`):**
228
+
229
+ | ID | Valida |
230
+ |----|-----------|
231
+ | `acl` | Reglas de la capa de control de acceso |
232
+ | `open-core` | Límites de módulos open-core |
233
+ | `inheritance` | Contratos de herencia y extensión |
234
+ | `cli-release` | Preparación de release de la CLI |
235
+ | `cli-parity` | Paridad de comandos CLI entre versiones |
236
+ | `evidence` | Completitud de artefactos de evidencia de gates |
237
+ | `mcp` | Cumplimiento del contrato del servidor MCP |
238
+ | `observability` | Cobertura de logging, métricas y trazas |
239
+ | `adr-0002` | Reglas específicas de ADR-0002 |
240
+
241
+ El enum `rulesets` de `reference/config/evolith.config.schema.json` reconoce además: `satellite-contracts`, `executive-scorecards`, `compliance-baseline`, `definition-of-done`, `engineering-manifesto`, `repository-taxonomy`, `phase-gates`, `quality-thresholds` y `dependency-pinning`. Son valores de configuración válidos aunque los atajos `--ruleset` de arriba cubran el conjunto del día a día.
242
+
243
+ **Reglas ADR disponibles (`--adr`):** `adr-0002`, `adr-0005`, `adr-0010`, `adr-0018`, `adr-0032`, `adr-0040`, `adr-0050`
244
+
245
+ **Motores de validación:**
246
+ - `native` — motor TypeScript integrado (por defecto, sin dependencias externas)
247
+ - `opa` — módulos WebAssembly de Open Policy Agent
248
+
249
+ **Motor composable (GT-312):**
250
+ Cuando se activa `--composable`, la CLI resuelve automáticamente qué modos de validación activar según el contexto proporcionado:
251
+ - `SdlcValidationMode` — se activa cuando hay `--phase`
252
+ - `ArchitectureValidationMode` — se activa cuando hay `--topology`
253
+ - `RulesetValidationMode` — se activa cuando hay `--ruleset`
254
+ - `AdrValidationMode` — se activa cuando hay `--adr`
255
+ - `AdhocValidationMode` — se activa cuando hay `--file`
256
+
257
+ **Códigos de salida:** `validate` sale con `0` cuando el repositorio pasa (incluido el estado `warning`) y con `1` cuando el estado del resultado es `failed`. Los comandos `gate`, `phase advance` y `scaffold` también salen con `1` ante un fallo, y cualquier error no controlado durante el arranque de la CLI sale con `1`. Esto hace que la CLI sea segura para condicionar pipelines de CI. En `--format json`, el detalle del fallo viaja en el sobre ADR-0073 en lugar de imprimirse como texto.
258
+
78
259
  **Ejemplos:**
79
260
 
80
261
  ```bash
81
- # Validación básica
262
+ # Chequeo básico de cumplimiento
82
263
  smart-cli validate
83
264
 
84
- # Salida JSON para automatización
85
- smart-cli validate --format json
265
+ # Salida JSON para CI
266
+ smart-cli validate --format json --output report.json
86
267
 
87
- # Salida en tabla para humanos
88
- smart-cli validate --format table
268
+ # Validar una sola topología
269
+ smart-cli validate --topology microservices
270
+
271
+ # Validar múltiples topologías
272
+ smart-cli validate --topology modular-monolith --topology event-driven
273
+
274
+ # Validar un ruleset específico
275
+ smart-cli validate --ruleset evidence
276
+
277
+ # Evaluación completa de fase SDLC (pipeline GT-281)
278
+ smart-cli validate --phase discovery
89
279
 
90
- # Validar ruleset específico
91
- smart-cli validate --ruleset acl
280
+ # Validar con un SatelliteManifest
281
+ smart-cli validate --manifest ./satellite-manifest.json --phase design
282
+
283
+ # Validación ad-hoc de un archivo
284
+ smart-cli validate --file src/domain/user.entity.ts --composable
285
+
286
+ # Motor OPA
287
+ smart-cli validate --engine opa --ruleset acl
92
288
  ```
93
289
 
290
+ ---
291
+
94
292
  ### adr
95
293
 
96
- Gestionar Registros de Decisiones de Arquitectura.
294
+ Gestiona Architecture Decision Records.
97
295
 
98
296
  ```bash
99
- smart-cli adr <comando>
297
+ smart-cli adr [opciones]
100
298
 
101
- Comandos:
102
- create Crear nuevo ADR
103
- list Listar todos los ADR
104
- get Mostrar detalles del ADR
105
- update Actualizar ADR existente
106
- matrix Mostrar matriz de ADR
299
+ Opciones:
300
+ -c, --create Crear un nuevo ADR (interactivo)
301
+ -l, --list Listar todos los ADRs
302
+ -g, --get <id> Mostrar un ADR específico
303
+ -u, --update <id> Actualizar el estado de un ADR
304
+ -s, --status <estado> Nuevo estado: Accepted, Deprecated, Superseded, Amended
305
+ -r, --reason <texto> Razón del cambio de estado
306
+ -m, --matrix Mostrar el resumen de la matriz de ADRs
307
+ -d, --dry-run Previsualizar sin escribir archivos
107
308
  ```
108
309
 
109
310
  **Ejemplos:**
110
311
 
111
312
  ```bash
112
- # Crear nuevo ADR
113
- smart-cli adr create
313
+ # Creación interactiva
314
+ smart-cli adr --create
315
+
316
+ # Listar todos
317
+ smart-cli adr --list
318
+
319
+ # Mostrar un ADR específico
320
+ smart-cli adr --get ADR-0002
114
321
 
115
- # Listar todos los ADR
116
- smart-cli adr list
322
+ # Actualizar estado
323
+ smart-cli adr --update ADR-0005 --status Accepted --reason "Aprobado en revisión de diseño"
117
324
 
118
- # Obtener ADR específico
119
- smart-cli adr get ADR-0002
325
+ # Mostrar matriz
326
+ smart-cli adr --matrix
120
327
  ```
121
328
 
329
+ ---
330
+
122
331
  ### standards
123
332
 
124
- Gestionar estándares de gobernanza.
333
+ Gestiona los estándares de gobernanza de Evolith (arquitectura, gobernanza, operaciones).
125
334
 
126
335
  ```bash
127
- smart-cli standards <comando>
336
+ smart-cli standards [opciones]
128
337
 
129
- Comandos:
130
- init Inicializar directorio de estándares
131
- list Listar todos los estándares
132
- get Mostrar detalles del estándar
133
- validate Validar contra estándares
134
- export Exportar estándar a markdown/json
338
+ Opciones:
339
+ --init Inicializar la estructura de directorios de standards
340
+ -l, --list Listar todos los standards
341
+ -g, --get <id> Mostrar un standard específico
342
+ -v, --validate <code> Validar código contra los standards
343
+ -e, --export <id> Exportar un standard
344
+ -f, --format <formato> Formato de exportación: markdown, json
345
+ -c, --category <id> Filtrar por categoría
135
346
  ```
136
347
 
137
348
  **Ejemplos:**
138
349
 
139
350
  ```bash
140
- # Inicializar estándares
141
- smart-cli standards init
351
+ # Inicializar
352
+ smart-cli standards --init
353
+
354
+ # Listar todos los standards
355
+ smart-cli standards --list
142
356
 
143
- # Listar estándares
144
- smart-cli standards list
357
+ # Filtrar por categoría
358
+ smart-cli standards --list --category governance
359
+
360
+ # Exportar como markdown
361
+ smart-cli standards --export STD-001 --format markdown
145
362
  ```
146
363
 
364
+ ---
365
+
147
366
  ### agents
148
367
 
149
- Instalar y gestionar agentes de Evolith.
368
+ Gestiona los agentes BMAD de Evolith — instala, lista y elimina agentes de gobernanza en el repositorio satélite.
150
369
 
151
370
  ```bash
152
- smart-cli agents <comando>
371
+ smart-cli agents [opciones]
153
372
 
154
- Comandos:
155
- install Instalar nuevo agente
156
- list Listar agentes instalados
157
- remove Eliminar agente
158
- validate Validar ruleset del agente
159
- upgrade Actualizar agente
373
+ Opciones:
374
+ -l, --list Listar agentes instalados
375
+ -i, --install [name] Instalar un agente nombrado (interactivo si se omite el nombre)
376
+ -r, --remove [name] Eliminar un agente instalado
377
+ -d, --dry-run Previsualizar sin hacer cambios
160
378
  ```
161
379
 
380
+ **Plantillas de agente disponibles:**
381
+
382
+ | Plantilla | Descripción |
383
+ |---|---|
384
+ | `standard` | Agente por defecto con reglas básicas de gobernanza (ACL-01 a ACL-06) |
385
+ | `minimal` | Agente ligero solo con reglas esenciales |
386
+ | `full-compliance` | Agente de cumplimiento completo con audit trail y cadenas de aprobación |
387
+
162
388
  **Ejemplos:**
163
389
 
164
390
  ```bash
391
+ # Listar agentes instalados
392
+ smart-cli agents --list
393
+
165
394
  # Instalación interactiva
166
- smart-cli agents install
395
+ smart-cli agents --install
396
+
397
+ # Instalar una plantilla específica
398
+ smart-cli agents --install standard
399
+ smart-cli agents --install full-compliance
400
+
401
+ # Previsualizar instalación sin escribir
402
+ smart-cli agents --install standard --dry-run
403
+
404
+ # Eliminar un agente
405
+ smart-cli agents --remove minimal
406
+ ```
407
+
408
+ ---
409
+
410
+ ### scaffold
411
+
412
+ Genera la arquitectura de Evolith en el workspace actual **a lo largo del eje progresivo** — fase 1 (`modular-monolith`), fase 2 (`distributed-modules`) y fase 3 (`microservices`). Las fases 2–3 se generan como un host + remotes de Module Federation (microfrontends), con frameworks de frontend, ORMs y nombres de dominio configurables. (`F1/F2/F3` siguen aceptándose como alias legacy de las fases 1/2/3.)
413
+
414
+ ```bash
415
+ smart-cli scaffold [opciones]
416
+
417
+ Opciones:
418
+ --frontend <framework> Framework frontend: react, angular
419
+ --orm <orm> ORM: prisma, typeorm
420
+ -d, --dry-run Previsualizar sin escribir archivos
421
+ -f, --format <formato> Formato de salida: json (envelope ADR-0073) o human (por defecto)
422
+ --phase <fase> Fase de arquitectura: 1 (F1), 2 (F2), 3 (F3) — requerida con --format json
423
+ --api-name <name> Nombre de la app backend (por defecto: tracker-api)
424
+ --web-app-name <name> Nombre de la web app para fase 1 (por defecto: tracker-web)
425
+ --host-name <name> Nombre de la app host para fase 2/3 (por defecto: tracker-host)
426
+ --remotes <names> Nombres de remotes separados por comas para fase 2/3
427
+ --domains <names> Nombres de dominio separados por comas a generar
428
+ ```
429
+
430
+ **Ejemplos:**
431
+
432
+ ```bash
433
+ # Scaffold de fase 1 (Monolito Modular) interactivo
434
+ smart-cli scaffold
435
+
436
+ # Scaffold de fase 1 con React + Prisma, dry run
437
+ smart-cli scaffold --phase 1 --frontend react --orm prisma --dry-run
438
+
439
+ # Scaffold de fase 2 (Microfrontend) con nombres personalizados
440
+ smart-cli scaffold --phase 2 --host-name shell-app --remotes catalog,checkout
441
+
442
+ # Scaffold de fase 3 con dominios personalizados y salida JSON
443
+ smart-cli scaffold --phase 3 --domains orders,payments,users --format json
444
+
445
+ # Generar solo dominios específicos
446
+ smart-cli scaffold --domains auth,notifications
447
+ ```
448
+
449
+ ---
450
+
451
+ ### drift
452
+
453
+ Detecta drift de arquitectura entre el nivel de topología declarado y la estructura real del código. Guarda histórico para análisis de tendencias.
454
+
455
+ ```bash
456
+ smart-cli drift [opciones]
457
+
458
+ Opciones:
459
+ -p, --path <ruta> Ruta del proyecto a analizar (por defecto: cwd)
460
+ -l, --level <nivel> Nivel de arquitectura declarado: F1, F2, F3
461
+ --json Salida como JSON crudo
462
+ --history Mostrar el histórico de escaneos de drift
463
+ --trend Mostrar el análisis de tendencia de drift (mejorando / estable / degradando)
464
+ -f, --format <fmt> Formato de salida: json (envelope ADR-0073) o human (por defecto)
465
+ ```
466
+
467
+ El reporte de drift incluye:
468
+ - **Nivel declarado** vs **nivel detectado**
469
+ - **Score general** (0–100%)
470
+ - **Severidad del drift**: critical, high, medium, low, none
471
+ - **Violaciones nuevas** — introducidas desde el último escaneo
472
+ - **Violaciones persistentes** — no resueltas a través de varios escaneos
473
+ - **Violaciones resueltas** — corregidas desde el último escaneo
474
+
475
+ **Ejemplos:**
476
+
477
+ ```bash
478
+ # Detectar drift (auto-detecta el nivel declarado desde evolith.yaml)
479
+ smart-cli drift
480
+
481
+ # Especificar el nivel declarado explícitamente
482
+ smart-cli drift --level F2
483
+
484
+ # Analizar una ruta de proyecto diferente
485
+ smart-cli drift --path ../my-satellite
486
+
487
+ # Mostrar escaneos históricos
488
+ smart-cli drift --history
489
+
490
+ # Mostrar tendencia (requiere al menos 2 escaneos previos)
491
+ smart-cli drift --trend
492
+
493
+ # Salida JSON para CI
494
+ smart-cli drift --format json
495
+ ```
496
+
497
+ ---
498
+
499
+ ### gate
500
+
501
+ Evalúa los phase gates SDLC y emite artefactos `GateEvidence` ADR-0073. Soporta entrega por webhook y contextos multi-actor.
502
+
503
+ ```bash
504
+ smart-cli gate <acción> [opciones]
505
+
506
+ Acciones:
507
+ evaluate Evaluar gates para la fase indicada
508
+
509
+ Opciones:
510
+ -p, --phase <fase> Fase SDLC: discovery, design, construction, qa, release
511
+ --project <ruta> Ruta del proyecto satélite (por defecto: cwd)
512
+ -c, --core <ruta> Ruta a Evolith Core (por defecto: auto-detect)
513
+ -f, --format <formato> Formato de salida: json (envelope ADR-0073) o human (por defecto)
514
+ --evaluated-by <actor> Clase de actor: human (por defecto), agent, ci
515
+ --initiative <id> Contexto de iniciativa — reflejado en meta.context
516
+ --tenant <id> Contexto de tenant — reflejado en meta.context
517
+ --webhook-url <url> POST de la evidencia del gate a esta URL al completar
518
+ ```
519
+
520
+ **Ejemplos:**
521
+
522
+ ```bash
523
+ # Evaluar gates de la fase design
524
+ smart-cli gate evaluate --phase design
525
+
526
+ # Evaluación CI con salida JSON
527
+ smart-cli gate evaluate --phase construction --evaluated-by ci --format json
528
+
529
+ # Evaluación dirigida por agente con entrega por webhook
530
+ smart-cli gate evaluate --phase qa --evaluated-by agent --webhook-url https://ci.example.com/hooks/evolith
531
+
532
+ # Contexto multi-tenant
533
+ smart-cli gate evaluate --phase release --tenant acme --initiative Q3-launch
534
+ ```
535
+
536
+ ---
537
+
538
+ ### phase
539
+
540
+ Propone una transición entre fases SDLC. Emite un artefacto de propuesta de transición.
541
+
542
+ ```bash
543
+ smart-cli phase advance [opciones]
544
+
545
+ Opciones:
546
+ --from <fase> Fase SDLC actual
547
+ --to <fase> Fase SDLC objetivo
548
+ --project <ruta> Ruta del proyecto satélite (por defecto: cwd)
549
+ -c, --core <ruta> Ruta a Evolith Core (por defecto: auto-detect)
550
+ -f, --format <formato> Formato de salida: json (envelope ADR-0073) o human (por defecto)
551
+ --evaluated-by <actor> Clase de actor: human, agent (por defecto), ci
552
+ --initiative <id> Contexto de iniciativa — reflejado en meta.context
553
+ --tenant <id> Contexto de tenant — reflejado en meta.context
554
+ --webhook-url <url> POST de la propuesta de transición a esta URL
555
+ ```
556
+
557
+ **Ejemplos:**
558
+
559
+ ```bash
560
+ # Proponer avanzar de design a construction
561
+ smart-cli phase advance --from design --to construction
562
+
563
+ # Dirigido por agente con salida JSON
564
+ smart-cli phase advance --from construction --to qa --evaluated-by agent --format json
565
+
566
+ # Con webhook y contexto de tenant
567
+ smart-cli phase advance --from qa --to release --webhook-url https://ci.example.com/hooks/evolith --tenant acme
568
+ ```
569
+
570
+ ---
571
+
572
+ ### sdlc
573
+
574
+ Comando padre que orquesta los artefactos SDLC y las transiciones del ciclo de vida. Ejecútalo sin subcomando para ver los subcomandos disponibles.
575
+
576
+ ```bash
577
+ smart-cli sdlc <subcomando>
578
+
579
+ Subcomandos:
580
+ handoff Transferir artefactos entre fases con flujo guiado interactivo
581
+ generate Generar scaffold de Arquitectura Hexagonal desde un archivo de modelo DDD
582
+ gate-status Mostrar el estado de validación de phase gates y métricas DORA
583
+ ```
584
+
585
+ #### sdlc handoff
586
+
587
+ Guía una transición de fase interactiva, valida gates y genera artefactos de evidencia.
588
+
589
+ ```bash
590
+ smart-cli sdlc handoff [opciones]
591
+
592
+ Opciones:
593
+ -f, --from <fase> Fase origen (phase-0, phase-1, etc.)
594
+ -t, --to <fase> Fase destino (phase-0, phase-1, etc.)
595
+ -a, --artifacts Generar artefactos de evidencia
596
+ --validate Validar los phase gates antes del handoff
597
+ --force Forzar el handoff aunque los gates fallen
598
+ ```
599
+
600
+ **Ejemplos:**
601
+
602
+ ```bash
603
+ # Wizard de handoff interactivo
604
+ smart-cli sdlc handoff
605
+
606
+ # Handoff de phase-0 a phase-1 con validación de gates
607
+ smart-cli sdlc handoff --from phase-0 --to phase-1 --validate
608
+
609
+ # Generar artefactos y forzar aunque los gates fallen
610
+ smart-cli sdlc handoff --from phase-1 --to phase-2 --artifacts --force
611
+ ```
612
+
613
+ #### sdlc generate
614
+
615
+ Genera un scaffold completo de Arquitectura Hexagonal leyendo un `classDiagram` de Mermaid desde un archivo de modelo DDD en Markdown.
616
+
617
+ ```bash
618
+ smart-cli sdlc generate [opciones]
619
+
620
+ Opciones:
621
+ -f, --from <ruta> Ruta al archivo Markdown que contiene el classDiagram de Mermaid
622
+ -o, --output <dir> Directorio destino para los archivos generados (por defecto: cwd)
623
+ --dry-run Imprimir lo que se generaría sin escribir archivos
624
+ ```
625
+
626
+ **Ejemplos:**
627
+
628
+ ```bash
629
+ # Generar desde un archivo de modelo DDD
630
+ smart-cli sdlc generate --from docs/domain-model.md
631
+
632
+ # Previsualizar sin escribir
633
+ smart-cli sdlc generate --from docs/domain-model.md --dry-run
167
634
 
168
- # Listar agentes
169
- smart-cli agents list
635
+ # Salida a un directorio específico
636
+ smart-cli sdlc generate --from docs/domain-model.md --output src/domain
170
637
  ```
171
638
 
639
+ El archivo de entrada debe contener un bloque Mermaid con cercado (fenced) que incluya un `classDiagram`. El generador crea entidades, value objects, repositorios, casos de uso y puertos siguiendo las convenciones de la arquitectura hexagonal.
640
+
641
+ #### sdlc gate-status
642
+
643
+ Muestra el estado actual de validación de phase gates SDLC junto con métricas DORA calculadas a partir del histórico de git.
644
+
645
+ ```bash
646
+ smart-cli sdlc gate-status [opciones]
647
+
648
+ Opciones:
649
+ --since <días> Días de histórico de git a analizar para las métricas DORA (por defecto: 90)
650
+ ```
651
+
652
+ Métricas DORA reportadas:
653
+ - **Deployment Frequency** — con qué frecuencia despliega el equipo a producción
654
+ - **Lead Time for Changes** — tiempo desde el commit hasta producción
655
+ - **Change Failure Rate** — porcentaje de despliegues que causan fallos
656
+ - **Time to Restore** — tiempo para recuperarse de un fallo en producción
657
+
658
+ **Ejemplos:**
659
+
660
+ ```bash
661
+ # Estado de gates con ventana DORA de 90 días
662
+ smart-cli sdlc gate-status
663
+
664
+ # Analizar solo los últimos 30 días
665
+ smart-cli sdlc gate-status --since 30
666
+ ```
667
+
668
+ ---
669
+
670
+ ### profile
671
+
672
+ Gestiona perfiles de CLI nombrados. Cada perfil guarda un conjunto de valores por defecto (ruta del satélite, ruta de core, tenant, iniciativa) que se aplican automáticamente a los comandos posteriores.
673
+
674
+ ```bash
675
+ smart-cli profile <acción> [opciones]
676
+
677
+ Acciones:
678
+ current Mostrar el perfil activo
679
+ list Listar todos los perfiles
680
+ create Crear un nuevo perfil
681
+ switch Cambiar a un perfil nombrado
682
+ delete Eliminar un perfil
683
+
684
+ Opciones:
685
+ -n, --name <name> Nombre del perfil (usado con create y switch)
686
+ ```
687
+
688
+ **Ejemplos:**
689
+
690
+ ```bash
691
+ # Mostrar el perfil actual
692
+ smart-cli profile current
693
+
694
+ # Listar todos los perfiles
695
+ smart-cli profile list
696
+
697
+ # Crear un perfil interactivamente
698
+ smart-cli profile create
699
+
700
+ # Crear con nombre
701
+ smart-cli profile create --name staging
702
+
703
+ # Cambiar de perfil
704
+ smart-cli profile switch --name staging
705
+
706
+ # Eliminar un perfil
707
+ smart-cli profile delete --name staging
708
+ ```
709
+
710
+ ---
711
+
712
+ ### fixtures
713
+
714
+ Siembra archivos de fixtures reproducibles para demos, tests y onboarding. El primer paso recomendado en cualquier entorno nuevo.
715
+
716
+ ```bash
717
+ smart-cli fixtures [tipo] [opciones]
718
+
719
+ Argumentos:
720
+ tipo Tipo de fixture (por defecto: demo)
721
+
722
+ Opciones:
723
+ -d, --dir <directorio> Directorio destino (por defecto: cwd)
724
+ -n, --dry-run Previsualizar archivos sin escribir
725
+ -t, --type <tipo> Tipo de fixture: demo, adr, ruleset, evolith, full
726
+ ```
727
+
728
+ **Tipos de fixture:**
729
+
730
+ | Tipo | Contenido |
731
+ |------|----------|
732
+ | `demo` | Proyecto de ejemplo con evolith.yaml y estructura demo |
733
+ | `adr` | Entradas ADR pre-pobladas |
734
+ | `ruleset` | Rulesets de ejemplo (dominio, naming, convenciones de archivos) |
735
+ | `evolith` | Archivos de configuración completos de Evolith |
736
+ | `full` | Todo lo anterior combinado |
737
+
738
+ **Ejemplos:**
739
+
740
+ ```bash
741
+ # Sembrar un proyecto demo (la forma más rápida de explorar la CLI)
742
+ smart-cli fixtures --type demo
743
+
744
+ # Previsualizar lo que se crearía
745
+ smart-cli fixtures --type full --dry-run
746
+
747
+ # Sembrar fixtures ADR en un directorio específico
748
+ smart-cli fixtures --type adr --dir ./reference/core/architecture/adrs
749
+ ```
750
+
751
+ ---
752
+
753
+ ### api
754
+
755
+ Navega e inspecciona la superficie de API de Evolith: herramientas MCP, recursos, schemas y comandos CLI.
756
+
757
+ ```bash
758
+ smart-cli api [opciones]
759
+
760
+ Opciones:
761
+ -l, --list Listar todas las operaciones de API disponibles
762
+ -i, --inspect <name> Inspeccionar una operación, recurso o comando específico
763
+ -c, --category <category> Filtrar por categoría: tools, resources, schemas, commands
764
+ ```
765
+
766
+ **Ejemplos:**
767
+
768
+ ```bash
769
+ # Listar todo
770
+ smart-cli api --list
771
+
772
+ # Filtrar solo herramientas MCP
773
+ smart-cli api --list --category tools
774
+
775
+ # Inspeccionar una herramienta específica
776
+ smart-cli api --inspect evolith-validate
777
+
778
+ # Inspeccionar el schema de un comando CLI
779
+ smart-cli api --inspect validate --category commands
780
+ ```
781
+
782
+ ---
783
+
784
+ ### update
785
+
786
+ Comprueba y aplica actualizaciones de la CLI.
787
+
788
+ ```bash
789
+ smart-cli update [opciones]
790
+
791
+ Opciones:
792
+ -c, --current Mostrar la versión instalada actual de la CLI
793
+ --check Comprobar actualizaciones disponibles sin instalar
794
+ -i, --install Instalar la última versión disponible
795
+ ```
796
+
797
+ **Ejemplos:**
798
+
799
+ ```bash
800
+ # Mostrar la versión actual
801
+ smart-cli update --current
802
+
803
+ # Comprobar actualizaciones
804
+ smart-cli update --check
805
+
806
+ # Instalar la última
807
+ smart-cli update --install
808
+ ```
809
+
810
+ ---
811
+
812
+ ### upgrade
813
+
814
+ Actualiza un repositorio satélite a la siguiente topología del eje progresivo o versión de gobernanza.
815
+
816
+ ```bash
817
+ smart-cli upgrade [opciones]
818
+
819
+ Opciones:
820
+ --dry-run Simular el upgrade sin hacer cambios
821
+ --target <target> Versión de gobernanza o topología objetivo (p. ej., F2, 1.1.0)
822
+ --force Saltar las comprobaciones de elegibilidad
823
+ ```
824
+
825
+ **Ejemplos:**
826
+
827
+ ```bash
828
+ # Previsualizar upgrade a la siguiente topología
829
+ smart-cli upgrade --dry-run
830
+
831
+ # Upgrade a F2
832
+ smart-cli upgrade --target F2
833
+
834
+ # Forzar upgrade ignorando las comprobaciones de elegibilidad
835
+ smart-cli upgrade --target F3 --force
836
+ ```
837
+
838
+ ---
839
+
840
+ ### alias
841
+
842
+ Gestiona alias abreviados para comandos de la CLI.
843
+
844
+ ```bash
845
+ smart-cli alias [opciones]
846
+
847
+ Opciones:
848
+ --add <alias=comando> Agregar un nuevo alias (formato: nombre=comando)
849
+ --remove <alias> Eliminar un alias
850
+ --list Listar todos los alias
851
+ ```
852
+
853
+ **Ejemplos:**
854
+
855
+ ```bash
856
+ # Agregar un alias
857
+ smart-cli alias --add "v=validate --format table"
858
+
859
+ # Listar alias
860
+ smart-cli alias --list
861
+
862
+ # Eliminar un alias
863
+ smart-cli alias --remove v
864
+ ```
865
+
866
+ ---
867
+
172
868
  ### history
173
869
 
174
- Ver y gestionar historial de comandos.
870
+ Visualiza y gestiona el histórico de ejecución de comandos de la CLI.
175
871
 
176
872
  ```bash
177
873
  smart-cli history [opciones]
178
874
 
179
875
  Opciones:
180
- --list Listar comandos recientes
181
- --get <id> Mostrar detalles del comando
182
- --search <consulta> Buscar comandos
183
- --stats Mostrar estadísticas
184
- --clear Limpiar historial
876
+ -l, --list Listar comandos recientes
877
+ -g, --get <id> Mostrar detalles del comando por ID
878
+ -s, --search <query> Buscar en el histórico
879
+ --stats Mostrar estadísticas del histórico
880
+ --clear Limpiar todo el histórico
881
+ -n, --limit <número> Número de entradas a mostrar (por defecto: 20)
882
+ --replay <id> Mostrar la cadena del comando de una entrada del histórico
185
883
  ```
186
884
 
187
885
  **Ejemplos:**
188
886
 
189
887
  ```bash
190
- # Mostrar últimos 20 comandos
888
+ # Mostrar los últimos 20 comandos
191
889
  smart-cli history
192
890
 
891
+ # Mostrar los últimos 50
892
+ smart-cli history --limit 50
893
+
894
+ # Buscar ejecuciones de validate
895
+ smart-cli history --search validate
896
+
193
897
  # Mostrar estadísticas
194
898
  smart-cli history --stats
195
899
 
196
- # Buscar comandos
197
- smart-cli history --search validate
900
+ # Limpiar histórico
901
+ smart-cli history --clear
198
902
  ```
199
903
 
904
+ ---
905
+
200
906
  ### completion
201
907
 
202
- Generar scripts de completado de shell.
908
+ Genera e instala scripts de autocompletado de shell. También provee funciones hook de shell para mostrar contexto y estado.
203
909
 
204
910
  ```bash
205
- smart-cli completion --install <shell>
911
+ smart-cli completion [opciones]
206
912
 
207
- Shells soportados: bash, zsh, fish
913
+ Opciones:
914
+ --install <shell> Instalar autocompletado para el shell indicado: bash, zsh, fish
915
+ --shell <shell> Generar script de autocompletado para el shell indicado (imprime a stdout)
916
+ --hooks Generar funciones hook de shell para contexto/estado
208
917
  ```
209
918
 
210
919
  **Ejemplos:**
211
920
 
212
921
  ```bash
213
- # Instalar completado bash
922
+ # Instalar autocompletado zsh
923
+ smart-cli completion --install zsh
924
+
925
+ # Instalar autocompletado bash
214
926
  smart-cli completion --install bash
215
927
 
216
- # Instalar completado zsh
217
- smart-cli completion --install zsh
928
+ # Instalar autocompletado fish
929
+ smart-cli completion --install fish
930
+
931
+ # Imprimir el script de autocompletado a stdout (para configuración manual)
932
+ smart-cli completion --shell zsh
933
+
934
+ # Generar funciones hook
935
+ smart-cli completion --hooks
218
936
  ```
219
937
 
220
- ## Servidor MCP (Integración con Agentes IA)
938
+ Los scripts pre-construidos también vienen incluidos en el paquete bajo `shell/`:
939
+ - `shell/completion.bash`
940
+ - `shell/completion.zsh`
941
+ - `shell/completion.fish`
942
+ - `shell/hooks.bash`
943
+ - `shell/hooks.zsh`
221
944
 
222
- La CLI de Evolith incluye un servidor MCP para integración con agentes IA.
945
+ ---
223
946
 
224
- ### Iniciar el Servidor MCP
947
+ ## Servidor MCP
948
+
949
+ La CLI de Evolith incluye un servidor MCP listo para producción para la integración con agentes IA.
950
+
951
+ > **Aviso de deprecación:** `smart-cli mcp` imprime una advertencia de deprecación al arrancar y será removido en una futura versión mayor. El servidor MCP ahora se distribuye como paquete independiente — migra a `@evolith/mcp-server` (`npx @evolith/mcp-server serve` o el binario `evolith-mcp serve`). El comando CLI sigue funcionando mientras tanto delegando de forma perezosa (lazy) en ese paquete.
952
+
953
+ ### Iniciar el Servidor
954
+
955
+ `mcp` acepta una acción posicional opcional que por defecto es `serve`, por lo que `smart-cli mcp` y `smart-cli mcp serve` son equivalentes.
225
956
 
226
957
  ```bash
958
+ # Transporte stdio (por defecto — para Cursor, Claude Desktop)
227
959
  smart-cli mcp serve
960
+
961
+ # Transporte HTTP (para despliegues remotos o en contenedor)
962
+ smart-cli mcp serve --transport http --port 3000
963
+
964
+ # HTTP con autenticación por API key
965
+ smart-cli mcp serve --transport http --port 3000 --api-key <secret>
228
966
  ```
229
967
 
230
- El servidor se comunica vía stdio JSON-RPC.
968
+ ```bash
969
+ smart-cli mcp [acción] [opciones]
970
+
971
+ Acciones:
972
+ serve Iniciar el servidor MCP (por defecto)
973
+ version Imprime un banner de versión estático del servidor MCP (no lee la versión del paquete @evolith/mcp-server)
974
+
975
+ Opciones:
976
+ -t, --transport <stdio|http> Transporte: stdio (por defecto) o http
977
+ -p, --port <número> Puerto del servidor HTTP (por defecto: 3000, o $PORT)
978
+ --api-key <key> API key para autenticación del transporte HTTP (o $EVOLITH_API_KEY)
979
+ --no-confirm Saltar los prompts de confirmación
980
+ ```
231
981
 
232
- También puedes iniciar en modo HTTP:
982
+ ### Smoke Test
233
983
 
234
984
  ```bash
235
- smart-cli mcp serve --transport http --port 3000
985
+ npm run mcp:smoke
236
986
  ```
237
987
 
988
+ Verifica `initialize`, `tools/list`, `resources/list`, `prompts/list` y un `tools/call` real de extremo a extremo a través de la CLI construida.
989
+
238
990
  ### Herramientas MCP Disponibles
239
991
 
992
+ El servidor incluido registra **27 herramientas**. El conjunto vigente y autoritativo siempre se puede explorar con `smart-cli api --list --category tools`; la tabla siguiente refleja el registro actual de `@evolith/mcp-server`.
993
+
994
+ **Validación y arquitectura**
995
+
996
+ | Herramienta | Descripción |
997
+ |------|-------------|
998
+ | `evolith-validate` | Validar un repositorio satélite contra las reglas de Evolith (pipeline end-to-end vía manifest) |
999
+ | `evolith-composable-validate` | Validar con el motor composable (GT-312): modos SDLC, Architecture, Ruleset, ADR, Ad-hoc (combinables) |
1000
+ | `evolith-architecture-validate` | Validar la arquitectura contra la topología declarada con análisis profundo opcional |
1001
+ | `evolith-drift-detect` | Detectar drift de arquitectura en un repositorio |
1002
+ | `evolith-auto-fix` | Aplicar correcciones automáticas a violaciones arquitectónicas reportadas por los evaluadores de reglas de Core |
1003
+ | `evolith-topology-list` | Listar todas las topologías de arquitectura disponibles en Evolith Core |
1004
+ | `evolith-topology-get` | Obtener una topología de arquitectura específica por id |
1005
+
1006
+ **SDLC, gates y métricas**
1007
+
240
1008
  | Herramienta | Descripción |
241
- |-------------|-------------|
242
- | `evolith-validate` | Validar cumplimiento del repositorio |
243
- | `evolith-agent-install` | Instalar nuevo agente |
1009
+ |------|-------------|
1010
+ | `evolith-gate-evaluate` | Evaluar un phase gate SDLC específico |
1011
+ | `evolith-phase-advance` | Proponer una transición de fase SDLC evaluando los criterios de salida |
1012
+ | `evolith-sdlc-handoff` | Realizar un handoff de phase gate (p. ej. phase-0 → phase-1) |
1013
+ | `evolith-sdlc-status` | Obtener el estado actual de la fase SDLC |
1014
+ | `evolith-dora-metrics` | Calcular aproximaciones de métricas DORA desde el histórico de git |
1015
+ | `evolith-metrics` | Obtener métricas del servidor MCP (conteos de llamadas por herramienta, latencia, fallos) |
1016
+
1017
+ **Agentes**
1018
+
1019
+ | Herramienta | Descripción |
1020
+ |------|-------------|
1021
+ | `evolith-agent-install` | Instalar un nuevo agente BMAD |
244
1022
  | `evolith-agent-list` | Listar agentes instalados |
245
- | `evolith-agent-validate` | Validar ruleset del agente |
246
- | `evolith-architecture-validate` | Validar arquitectura |
247
- | `evolith-sdlc-handoff` | Generar transición de fase |
248
- | `evolith-sdlc-status` | Mostrar estado de fase SDLC |
249
- | `evolith-config-get` | Obtener valor de configuración |
250
- | `evolith-config-set` | Establecer valor de configuración |
251
- | `evolith-metrics` | Obtener métricas del servidor MCP |
1023
+ | `evolith-agent-validate` | Validar un ruleset de agente |
1024
+ | `evolith-agent-upgrade` | Actualizar un agente existente |
1025
+ | `evolith-agent-remove` | Eliminar un agente |
1026
+
1027
+ **Configuración**
1028
+
1029
+ | Herramienta | Descripción |
1030
+ |------|-------------|
1031
+ | `evolith-config-get` | Obtener un valor de configuración de Evolith |
1032
+ | `evolith-config-set` | Establecer un valor de configuración de Evolith |
1033
+
1034
+ **Priorización MoSCoW**
1035
+
1036
+ | Herramienta | Descripción |
1037
+ |------|-------------|
1038
+ | `evolith-moscow-create` | Crear un nuevo análisis de priorización MoSCoW |
1039
+ | `evolith-moscow-load` | Cargar un análisis MoSCoW existente |
1040
+ | `evolith-moscow-update` | Actualizar un ítem en un análisis MoSCoW |
1041
+ | `evolith-moscow-remove` | Eliminar un ítem de un análisis MoSCoW |
1042
+ | `evolith-moscow-list` | Listar todos los análisis MoSCoW de un repositorio |
1043
+ | `evolith-moscow-validate` | Validar la corrección de un análisis MoSCoW |
1044
+ | `evolith-moscow-report` | Generar un reporte markdown desde un análisis MoSCoW |
252
1045
 
253
1046
  ### Configuración para Cursor AI
254
1047
 
255
- Agregar a `~/.cursor/mcp.json`:
1048
+ Añade a `~/.cursor/mcp.json`:
256
1049
 
257
1050
  ```json
258
1051
  {
@@ -267,7 +1060,7 @@ Agregar a `~/.cursor/mcp.json`:
267
1060
 
268
1061
  ### Configuración para Claude Desktop
269
1062
 
270
- Agregar a `~/Library/Application Support/Claude/claude_desktop_config.json`:
1063
+ Añade a `~/Library/Application Support/Claude/claude_desktop_config.json`:
271
1064
 
272
1065
  ```json
273
1066
  {
@@ -280,42 +1073,68 @@ Agregar a `~/Library/Application Support/Claude/claude_desktop_config.json`:
280
1073
  }
281
1074
  ```
282
1075
 
283
- ## Ejemplo de Flujo de Trabajo con Agente IA
284
-
285
- Cuando está integrado con un agente IA, puedes tener conversaciones como:
1076
+ ### Transporte HTTP (despliegue remoto)
286
1077
 
1078
+ ```json
1079
+ {
1080
+ "mcpServers": {
1081
+ "evolith": {
1082
+ "url": "http://localhost:3000",
1083
+ "headers": { "x-api-key": "<secret>" }
1084
+ }
1085
+ }
1086
+ }
287
1087
  ```
288
- Tú: Valida mi repositorio
289
- Agente: Déjame ejecutar la validación...
290
1088
 
291
- await mcp.callTool('evolith-validate', {
292
- path: '/user/project',
293
- format: 'summary'
294
- })
1089
+ ---
295
1090
 
296
- Resultado: El repositorio cumple con los estándares de Evolith
297
- Reglas verificadas: 12
298
- Todas las puertas pasaron
1091
+ ## Integración CI/CD
299
1092
 
300
- Tú: Muéstrame los ADR
301
- Agente: Déjame obtener la lista de ADR...
1093
+ ### Validación de Fase SDLC (Pipeline GT-281)
302
1094
 
303
- await mcp.callTool('evolith-adr-list', {})
1095
+ ```bash
1096
+ # Validar una fase SDLC específica con evaluación completa de gates
1097
+ smart-cli validate --phase design --format json --output gate-evidence.json
304
1098
 
305
- Resultado: Se encontraron 5 ADR:
306
- - ADR-0001: Plantilla de Registro de Decisión de Arquitectura
307
- - ADR-0002: Arquitectura Hexagonal (aceptado)
308
- - ADR-0003: Pirámide de Pruebas (aceptado)
1099
+ # Con SatelliteManifest explícito
1100
+ smart-cli validate --manifest ./satellite-manifest.json --phase construction --format json
309
1101
  ```
310
1102
 
1103
+ ### Evaluación de Gates en CI
1104
+
1105
+ ```bash
1106
+ # Evaluar gates de construction desde CI
1107
+ smart-cli gate evaluate \
1108
+ --phase construction \
1109
+ --evaluated-by ci \
1110
+ --format json \
1111
+ --webhook-url $WEBHOOK_URL
1112
+ ```
1113
+
1114
+ ### Ejemplo de GitHub Actions
1115
+
1116
+ ```yaml
1117
+ - name: Evolith Gate Evaluation
1118
+ run: |
1119
+ smart-cli gate evaluate \
1120
+ --phase ${{ env.SDLC_PHASE }} \
1121
+ --evaluated-by ci \
1122
+ --format json \
1123
+ --output gate-evidence.json
1124
+ env:
1125
+ SDLC_PHASE: construction
1126
+ ```
1127
+
1128
+ ---
1129
+
311
1130
  ## Configuración
312
1131
 
313
- Evolith usa un archivo `evolith.yaml` en la raíz del repositorio:
1132
+ Evolith usa `evolith.yaml` en `.evolith/` o en la raíz del repositorio:
314
1133
 
315
1134
  ```yaml
316
1135
  coreRef:
317
1136
  version: "1.0.0"
318
- path: "../evolith"
1137
+ path: "../../evolith"
319
1138
 
320
1139
  governance:
321
1140
  version: "1.0"
@@ -324,57 +1143,72 @@ governance:
324
1143
  status: "accepted"
325
1144
 
326
1145
  product:
327
- name: "mi-proyecto"
1146
+ name: "my-project"
328
1147
  type: "library"
329
1148
  runtime: "typescript"
330
1149
  ```
331
1150
 
1151
+ ### Perfiles Multi-Entorno
1152
+
1153
+ ```bash
1154
+ # Crear un perfil por entorno
1155
+ smart-cli profile create --name local
1156
+ smart-cli profile create --name staging
1157
+ smart-cli profile create --name ci
1158
+
1159
+ # Cambiar antes de ejecutar comandos
1160
+ smart-cli profile switch --name staging
1161
+ smart-cli validate
1162
+ ```
1163
+
1164
+ ---
1165
+
332
1166
  ## Formatos de Salida
333
1167
 
334
- Todos los comandos soportan múltiples formatos de salida:
1168
+ La mayoría de comandos aceptan `--format`:
335
1169
 
336
1170
  ```bash
337
- # JSON (por defecto para automatización)
338
- smart-cli validate --format json
1171
+ # Legible para humanos (por defecto en la mayoría de comandos)
1172
+ smart-cli validate
1173
+
1174
+ # Markdown
1175
+ smart-cli validate --format markdown
339
1176
 
340
- # Tabla (legible para humanos)
1177
+ # Tabla
341
1178
  smart-cli validate --format table
342
1179
 
343
- # YAML (integración en pipelines)
1180
+ # YAML
344
1181
  smart-cli validate --format yaml
345
1182
 
346
- # Markdown (documentación)
347
- smart-cli validate --format markdown
1183
+ # JSON (envelope ADR-0073 — para automatización y CI)
1184
+ smart-cli validate --format json
348
1185
  ```
349
1186
 
350
- ## Solución de Problemas
351
-
352
- ### Comando no encontrado
1187
+ ---
353
1188
 
354
- Si `evolith` no se encuentra después de la instalación, asegúrate de que el binario global de npm está en tu PATH:
1189
+ ## Solución de Problemas
355
1190
 
1191
+ **Comando no encontrado tras instalar:**
356
1192
  ```bash
357
- # Agregar a ~/.bashrc o ~/.zshrc
358
1193
  export PATH="$(npm config get prefix)/bin:$PATH"
359
1194
  ```
360
1195
 
361
- ### Servidor MCP no responde
362
-
363
- Asegúrate de que el servidor MCP está corriendo:
364
-
1196
+ **La validación falla sin evolith.yaml:**
365
1197
  ```bash
366
- smart-cli mcp serve &
1198
+ smart-cli docs # generar evolith.yaml y docs base
1199
+ smart-cli validate
367
1200
  ```
368
1201
 
369
- ### La validación falla
370
-
371
- Verifica que tu `evolith.yaml` existe y es válido:
372
-
1202
+ **El servidor MCP no responde:**
373
1203
  ```bash
374
- cat evolith.yaml
375
- smart-cli validate --verbose
1204
+ smart-cli mcp serve --no-confirm
376
1205
  ```
377
1206
 
1207
+ **Topología desconocida en scaffold o drift:**
1208
+ Asegúrate de que tu `evolith.yaml` tenga un campo `product.topology` válido usando un id de topología canónico — `modular-monolith`, `distributed-modules`, `microservices`, `serverless`, `edge-computing`, `event-driven`, `data-mesh` o `agentic-ai` (según `reference/config/evolith.config.schema.json`). `F1/F2/F3` legacy se aceptan solo como flags CLI deprecados, no como valores de manifest.
1209
+
1210
+ ---
1211
+
378
1212
  ## Desarrollo
379
1213
 
380
1214
  ### Construir desde el Código Fuente
@@ -383,13 +1217,17 @@ smart-cli validate --verbose
383
1217
  cd sdk/cli
384
1218
  npm install
385
1219
  npm run build
386
- npm link # Enlazar globalmente para pruebas
1220
+ npm link
387
1221
  ```
388
1222
 
389
- ### Ejecutar Pruebas
1223
+ ### Tests
390
1224
 
391
1225
  ```bash
392
- npm test
1226
+ npm test # unit + e2e
1227
+ npm run test:unit # solo unit
1228
+ npm run test:e2e # solo e2e
1229
+ npm run test:cov # reporte de cobertura
1230
+ npm run mcp:smoke # smoke test del protocolo MCP
393
1231
  ```
394
1232
 
395
1233
  ### Estructura del Proyecto
@@ -397,29 +1235,44 @@ npm test
397
1235
  ```
398
1236
  sdk/cli/
399
1237
  ├── src/
400
- │ ├── commands/ # Comandos CLI (adr, validate, agents, etc.)
401
- │ ├── application/ # Casos de uso
402
- │ ├── domain/ # Lógica de negocio (servicios, entidades)
403
- │ ├── infrastructure/# Integraciones externas (catálogo, CLI)
404
- │ └── core/ # Compartido (DI, observabilidad, errores, MCP)
405
- ├── shell/ # Scripts de completado de shell
406
- ├── templates/ # Plantillas de configuración
407
- └── docs/ # Documentación
1238
+ │ ├── commands/ # Comandos CLI (un directorio por comando)
1239
+ │ ├── config/ # Catálogo de runtimes, matriz de comandos CLI, alias
1240
+ │ ├── contributions/ # Validación de contribuciones
1241
+ │ ├── infrastructure/ # Config, filesystem, formatters, prompts, plugins
1242
+ │ └── plugins/ # Registro y módulo de plugins
1243
+ ├── shell/ # Autocompletado y hooks Bash, Zsh, Fish
1244
+ ├── templates/ # Plantillas de configuración
1245
+ ├── test/ # Suite de tests E2E
1246
+ └── docs/ # Documentación extendida
408
1247
  ```
409
1248
 
1249
+ ### Documentación Extendida
1250
+
1251
+ - [Guía Demo](docs/SMART-CLI-DEMO.es.md) — recorrido end-to-end de todos los comandos y flujos SDLC
1252
+ - [Visión](docs/VISION.es.md) — visión y roadmap de la CLI
1253
+ - [Modelos de Datos](docs/data-models.es.md) — referencia del modelo de datos del dominio
1254
+ - [Integración MCP](docs/MCP-INTEGRATION.md) — detalles del protocolo del servidor MCP
1255
+ - [Protocolo de Handoff](docs/HANDOFF-PROTOCOL.md) — especificación del artefacto de handoff SDLC
1256
+
1257
+ ---
1258
+
410
1259
  ## Contribuir
411
1260
 
412
- 1. Haz fork del repositorio
413
- 2. Crea una rama de característica
414
- 3. Haz cambios con pruebas
1261
+ Consulta el [CONTRIBUTING.md](../../CONTRIBUTING.md) en la raíz del repositorio para el flujo completo, las convenciones de ramas/commits y los estándares de autoría.
1262
+
1263
+ 1. Haz un fork del repositorio
1264
+ 2. Crea una rama de feature
1265
+ 3. Realiza cambios con tests
415
1266
  4. Envía un pull request
416
1267
 
1268
+ ---
1269
+
417
1270
  ## Licencia
418
1271
 
419
- ISC
1272
+ MIT
420
1273
 
421
1274
  ## Soporte
422
1275
 
1276
+ - [Issue Tracker](https://github.com/beyondnetcode/evolith_arch32/issues)
1277
+ - [Discussions](https://github.com/beyondnetcode/evolith_arch32/discussions)
423
1278
  - [Documentación](https://github.com/beyondnetcode/evolith_arch32#readme)
424
- - [Rastreador de Incidencias](https://github.com/beyondnetcode/evolith_arch32/issues)
425
- - [Discusiones](https://github.com/beyondnetcode/evolith_arch32/discussions)