@evolith/smart-cli 0.0.2-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.
- package/ARCHITECTURE.md +1 -1
- package/LICENSE +21 -0
- package/README.es.md +1024 -171
- package/README.md +1018 -166
- package/dist/.tsbuildinfo +1 -0
- package/dist/CoreApiClient.d.ts +5 -0
- package/dist/CoreApiClient.js +25 -0
- package/dist/CoreApiClient.js.map +1 -0
- package/dist/app.module.js +97 -12
- package/dist/app.module.js.map +1 -1
- package/dist/commands/adr/adr.command.d.ts +9 -3
- package/dist/commands/adr/adr.command.js +82 -88
- package/dist/commands/adr/adr.command.js.map +1 -1
- package/dist/commands/agents/agents.command.d.ts +27 -0
- package/dist/commands/agents/agents.command.js +373 -0
- package/dist/commands/agents/agents.command.js.map +1 -0
- package/dist/commands/agents/index.d.ts +1 -0
- package/dist/commands/agents/index.js +6 -0
- package/dist/commands/agents/index.js.map +1 -0
- package/dist/commands/alias/alias.command.d.ts +16 -0
- package/dist/commands/alias/alias.command.js +95 -0
- package/dist/commands/alias/alias.command.js.map +1 -0
- package/dist/commands/api/api.catalog.d.ts +38 -0
- package/dist/commands/api/api.catalog.js +167 -0
- package/dist/commands/api/api.catalog.js.map +1 -0
- package/dist/commands/api/api.command.d.ts +21 -0
- package/dist/commands/api/api.command.js +162 -0
- package/dist/commands/api/api.command.js.map +1 -0
- package/dist/commands/architecture/scaffold/index.d.ts +2 -0
- package/dist/commands/architecture/scaffold/index.js +6 -0
- package/dist/commands/architecture/scaffold/index.js.map +1 -0
- package/dist/commands/architecture/scaffold/scaffold-strategy.d.ts +15 -0
- package/dist/commands/architecture/scaffold/scaffold-strategy.js +20 -0
- package/dist/commands/architecture/scaffold/scaffold-strategy.js.map +1 -0
- package/dist/commands/architecture/scaffold.command.d.ts +12 -3
- package/dist/commands/architecture/scaffold.command.js +222 -56
- package/dist/commands/architecture/scaffold.command.js.map +1 -1
- package/dist/commands/chat/chat.command.d.ts +7 -0
- package/dist/commands/chat/chat.command.js +64 -0
- package/dist/commands/chat/chat.command.js.map +1 -0
- package/dist/commands/completion/completion.command.d.ts +12 -4
- package/dist/commands/completion/completion.command.js +159 -53
- package/dist/commands/completion/completion.command.js.map +1 -1
- package/dist/commands/docs/docs.command.d.ts +6 -3
- package/dist/commands/docs/docs.command.js +75 -16
- package/dist/commands/docs/docs.command.js.map +1 -1
- package/dist/commands/drift/drift.command.d.ts +7 -3
- package/dist/commands/drift/drift.command.js +94 -52
- package/dist/commands/drift/drift.command.js.map +1 -1
- package/dist/commands/evaluate/evaluate.command.d.ts +28 -0
- package/dist/commands/evaluate/evaluate.command.js +197 -0
- package/dist/commands/evaluate/evaluate.command.js.map +1 -0
- package/dist/commands/fixtures/fixtures.command.d.ts +21 -0
- package/dist/commands/fixtures/fixtures.command.js +310 -0
- package/dist/commands/fixtures/fixtures.command.js.map +1 -0
- package/dist/commands/gate/gate.command.d.ts +29 -0
- package/dist/commands/gate/gate.command.js +193 -0
- package/dist/commands/gate/gate.command.js.map +1 -0
- package/dist/commands/history/history.command.d.ts +3 -3
- package/dist/commands/history/history.command.js +24 -55
- package/dist/commands/history/history.command.js.map +1 -1
- package/dist/commands/init/init.command.d.ts +9 -3
- package/dist/commands/init/init.command.js +39 -198
- package/dist/commands/init/init.command.js.map +1 -1
- package/dist/commands/init/init.wizard.d.ts +19 -0
- package/dist/commands/init/init.wizard.js +181 -0
- package/dist/commands/init/init.wizard.js.map +1 -0
- package/dist/commands/phase/phase-advance.command.d.ts +30 -0
- package/dist/commands/phase/phase-advance.command.js +206 -0
- package/dist/commands/phase/phase-advance.command.js.map +1 -0
- package/dist/commands/plan/index.d.ts +1 -0
- package/dist/commands/plan/index.js +133 -0
- package/dist/commands/plan/index.js.map +1 -0
- package/dist/commands/profile/profile.command.d.ts +18 -0
- package/dist/commands/profile/profile.command.js +198 -0
- package/dist/commands/profile/profile.command.js.map +1 -0
- package/dist/commands/satellite/index.d.ts +2 -0
- package/dist/commands/satellite/index.js +8 -0
- package/dist/commands/satellite/index.js.map +1 -0
- package/dist/commands/satellite/satellite-adopt.command.d.ts +21 -0
- package/dist/commands/satellite/satellite-adopt.command.js +193 -0
- package/dist/commands/satellite/satellite-adopt.command.js.map +1 -0
- package/dist/commands/satellite/satellite-create.command.d.ts +26 -0
- package/dist/commands/satellite/satellite-create.command.js +192 -0
- package/dist/commands/satellite/satellite-create.command.js.map +1 -0
- package/dist/commands/sdlc/gate-status.command.d.ts +8 -3
- package/dist/commands/sdlc/gate-status.command.js +114 -66
- package/dist/commands/sdlc/gate-status.command.js.map +1 -1
- package/dist/commands/sdlc/generate-domain.command.d.ts +6 -3
- package/dist/commands/sdlc/generate-domain.command.js +126 -16
- package/dist/commands/sdlc/generate-domain.command.js.map +1 -1
- package/dist/commands/sdlc/handoff.command.d.ts +9 -4
- package/dist/commands/sdlc/handoff.command.js +106 -104
- package/dist/commands/sdlc/handoff.command.js.map +1 -1
- package/dist/commands/sdlc/sdlc.command.d.ts +4 -3
- package/dist/commands/sdlc/sdlc.command.js +17 -9
- package/dist/commands/sdlc/sdlc.command.js.map +1 -1
- package/dist/commands/standards/standards.command.d.ts +6 -3
- package/dist/commands/standards/standards.command.js +52 -77
- package/dist/commands/standards/standards.command.js.map +1 -1
- package/dist/commands/topology/phase-artifacts.command.d.ts +23 -0
- package/dist/commands/topology/phase-artifacts.command.js +167 -0
- package/dist/commands/topology/phase-artifacts.command.js.map +1 -0
- package/dist/commands/topology/recommend.command.d.ts +36 -0
- package/dist/commands/topology/recommend.command.js +236 -0
- package/dist/commands/topology/recommend.command.js.map +1 -0
- package/dist/commands/topology/topology.command.d.ts +5 -0
- package/dist/commands/topology/topology.command.js +41 -0
- package/dist/commands/topology/topology.command.js.map +1 -0
- package/dist/commands/update/update.command.d.ts +21 -0
- package/dist/commands/update/update.command.js +214 -0
- package/dist/commands/update/update.command.js.map +1 -0
- package/dist/commands/upgrade/upgrade.command.d.ts +22 -0
- package/dist/commands/{init → upgrade}/upgrade.command.js +34 -66
- package/dist/commands/upgrade/upgrade.command.js.map +1 -0
- package/dist/commands/validate/validate.command.d.ts +24 -6
- package/dist/commands/validate/validate.command.js +301 -63
- package/dist/commands/validate/validate.command.js.map +1 -1
- package/dist/config/alias.service.d.ts +14 -0
- package/dist/{core/sync/sync.service.js → config/alias.service.js} +54 -32
- package/dist/config/alias.service.js.map +1 -0
- package/dist/contributions/contribution-validator.d.ts +16 -0
- package/dist/contributions/contribution-validator.js +34 -0
- package/dist/contributions/contribution-validator.js.map +1 -0
- package/dist/contributions/index.d.ts +1 -0
- package/dist/contributions/index.js +6 -0
- package/dist/contributions/index.js.map +1 -0
- package/dist/{domain/services → infrastructure/adapters}/agent-registry.service.d.ts +6 -2
- package/dist/{domain/services → infrastructure/adapters}/agent-registry.service.js +33 -10
- package/dist/infrastructure/adapters/agent-registry.service.js.map +1 -0
- package/dist/infrastructure/agent/agent-runtime.factory.d.ts +9 -0
- package/dist/infrastructure/agent/agent-runtime.factory.js +47 -0
- package/dist/infrastructure/agent/agent-runtime.factory.js.map +1 -0
- package/dist/{core → infrastructure}/architecture/nx-workspace.strategy.d.ts +9 -1
- package/dist/infrastructure/architecture/nx-workspace.strategy.js +125 -0
- package/dist/infrastructure/architecture/nx-workspace.strategy.js.map +1 -0
- package/dist/infrastructure/architecture/topology-catalog.d.ts +15 -0
- package/dist/infrastructure/architecture/topology-catalog.js +50 -0
- package/dist/infrastructure/architecture/topology-catalog.js.map +1 -0
- package/dist/infrastructure/catalog/catalog-loader.d.ts +1 -2
- package/dist/infrastructure/catalog/catalog-loader.js +14 -5
- package/dist/infrastructure/catalog/catalog-loader.js.map +1 -1
- package/dist/infrastructure/cli/base-command.d.ts +14 -0
- package/dist/infrastructure/cli/base-command.js +41 -0
- package/dist/infrastructure/cli/base-command.js.map +1 -0
- package/dist/infrastructure/cli/command-executor.d.ts +2 -1
- package/dist/infrastructure/cli/command-executor.js +20 -3
- package/dist/infrastructure/cli/command-executor.js.map +1 -1
- package/dist/infrastructure/cli/providers/index.js +32 -29
- package/dist/infrastructure/cli/providers/index.js.map +1 -1
- package/dist/infrastructure/config/config.service.d.ts +34 -0
- package/dist/infrastructure/config/config.service.js +126 -0
- package/dist/infrastructure/config/config.service.js.map +1 -0
- package/dist/infrastructure/filesystem/file-manager.service.d.ts +12 -0
- package/dist/{core → infrastructure}/filesystem/file-manager.service.js +8 -25
- package/dist/infrastructure/filesystem/file-manager.service.js.map +1 -0
- package/dist/infrastructure/formatters/output-formatter.service.js +2 -1
- package/dist/infrastructure/formatters/output-formatter.service.js.map +1 -1
- package/dist/{core → infrastructure}/observability/command-watcher.js +31 -0
- package/dist/infrastructure/observability/command-watcher.js.map +1 -0
- package/dist/{core → infrastructure}/observability/error-reporter.js +5 -5
- package/dist/infrastructure/observability/error-reporter.js.map +1 -0
- package/dist/infrastructure/observability/index.d.ts +11 -0
- package/dist/{core → infrastructure}/observability/index.js +8 -1
- package/dist/infrastructure/observability/index.js.map +1 -0
- package/dist/infrastructure/observability/otel-tracing.d.ts +4 -0
- package/dist/infrastructure/observability/otel-tracing.js +34 -0
- package/dist/infrastructure/observability/otel-tracing.js.map +1 -0
- package/dist/infrastructure/observability/structured-logger.js.map +1 -0
- package/dist/infrastructure/observability/timing.js.map +1 -0
- package/dist/infrastructure/observability/tool-usage-telemetry.service.js.map +1 -0
- package/dist/infrastructure/plugins/plugin-loader.d.ts +10 -0
- package/dist/infrastructure/plugins/plugin-loader.js +145 -0
- package/dist/infrastructure/plugins/plugin-loader.js.map +1 -0
- package/dist/infrastructure/plugins/plugin.module.d.ts +4 -0
- package/dist/infrastructure/plugins/plugin.module.js +28 -0
- package/dist/infrastructure/plugins/plugin.module.js.map +1 -0
- package/dist/infrastructure/prompts/init-prompt-group.d.ts +3 -0
- package/dist/infrastructure/prompts/init-prompt-group.js +115 -0
- package/dist/infrastructure/prompts/init-prompt-group.js.map +1 -0
- package/dist/infrastructure/prompts/init-prompt-options.d.ts +10 -0
- package/dist/infrastructure/prompts/init-prompt-options.js +40 -0
- package/dist/infrastructure/prompts/init-prompt-options.js.map +1 -0
- package/dist/infrastructure/prompts/progress.service.d.ts +24 -0
- package/dist/infrastructure/prompts/progress.service.js +180 -0
- package/dist/infrastructure/prompts/progress.service.js.map +1 -0
- package/dist/infrastructure/prompts/prompt.service.d.ts +42 -0
- package/dist/infrastructure/prompts/prompt.service.js +142 -0
- package/dist/infrastructure/prompts/prompt.service.js.map +1 -0
- package/dist/infrastructure/prompts/wizard.service.d.ts +27 -0
- package/dist/infrastructure/prompts/wizard.service.js +163 -0
- package/dist/infrastructure/prompts/wizard.service.js.map +1 -0
- package/dist/{core/abstractions → infrastructure}/providers/config-parser.provider.d.ts +1 -1
- package/dist/infrastructure/providers/config-parser.provider.js.map +1 -0
- package/dist/{core/abstractions → infrastructure}/providers/logger.provider.d.ts +1 -1
- package/dist/infrastructure/providers/logger.provider.js.map +1 -0
- package/dist/{core/abstractions → infrastructure}/providers/mock-filesystem.provider.d.ts +6 -2
- package/dist/{core/abstractions → infrastructure}/providers/mock-filesystem.provider.js +8 -1
- package/dist/infrastructure/providers/mock-filesystem.provider.js.map +1 -0
- package/dist/{core/abstractions → infrastructure}/providers/node-filesystem.provider.d.ts +6 -2
- package/dist/{core/abstractions → infrastructure}/providers/node-filesystem.provider.js +13 -0
- package/dist/infrastructure/providers/node-filesystem.provider.js.map +1 -0
- package/dist/main.js +30 -2
- package/dist/main.js.map +1 -1
- package/dist/plugins/index.d.ts +1 -0
- package/dist/plugins/index.js +6 -0
- package/dist/plugins/index.js.map +1 -0
- package/dist/plugins/plugin-registry.d.ts +22 -0
- package/dist/plugins/plugin-registry.js +33 -0
- package/dist/plugins/plugin-registry.js.map +1 -0
- package/package.json +58 -27
- package/shell/hooks.bash +68 -0
- package/shell/hooks.fish +57 -0
- package/shell/hooks.zsh +68 -0
- package/dist/application/services/index.d.ts +0 -63
- package/dist/application/services/index.js +0 -345
- package/dist/application/services/index.js.map +0 -1
- package/dist/application/services/phase-transition.use-case.spec.d.ts +0 -1
- package/dist/application/services/phase-transition.use-case.spec.js +0 -297
- package/dist/application/services/phase-transition.use-case.spec.js.map +0 -1
- package/dist/application/services/services.test.d.ts +0 -1
- package/dist/application/services/services.test.js +0 -176
- package/dist/application/services/services.test.js.map +0 -1
- package/dist/application/use-cases/validate-satellite.use-case.d.ts +0 -18
- package/dist/application/use-cases/validate-satellite.use-case.js +0 -92
- package/dist/application/use-cases/validate-satellite.use-case.js.map +0 -1
- package/dist/application/use-cases/validate-satellite.use-case.spec.d.ts +0 -1
- package/dist/application/use-cases/validate-satellite.use-case.spec.js +0 -102
- package/dist/application/use-cases/validate-satellite.use-case.spec.js.map +0 -1
- package/dist/commands/commands.test.d.ts +0 -1
- package/dist/commands/commands.test.js +0 -131
- package/dist/commands/commands.test.js.map +0 -1
- package/dist/commands/init/agents.command.d.ts +0 -22
- package/dist/commands/init/agents.command.js +0 -502
- package/dist/commands/init/agents.command.js.map +0 -1
- package/dist/commands/init/agents.command.spec.d.ts +0 -1
- package/dist/commands/init/agents.command.spec.js +0 -152
- package/dist/commands/init/agents.command.spec.js.map +0 -1
- package/dist/commands/init/upgrade.command.d.ts +0 -19
- package/dist/commands/init/upgrade.command.js.map +0 -1
- package/dist/commands/mcp/mcp-serve.command.d.ts +0 -15
- package/dist/commands/mcp/mcp-serve.command.js +0 -106
- package/dist/commands/mcp/mcp-serve.command.js.map +0 -1
- package/dist/config/runtimes.json +0 -196
- package/dist/config/tool-catalog.json +0 -343
- package/dist/core/abstractions/index.d.ts +0 -6
- package/dist/core/abstractions/index.js +0 -23
- package/dist/core/abstractions/index.js.map +0 -1
- package/dist/core/abstractions/interfaces.d.ts +0 -60
- package/dist/core/abstractions/interfaces.js +0 -5
- package/dist/core/abstractions/interfaces.js.map +0 -1
- package/dist/core/abstractions/providers/config-parser.provider.js.map +0 -1
- package/dist/core/abstractions/providers/logger.provider.js.map +0 -1
- package/dist/core/abstractions/providers/mock-filesystem.provider.js.map +0 -1
- package/dist/core/abstractions/providers/node-filesystem.provider.js.map +0 -1
- package/dist/core/agents/agent-ruleset-builder.d.ts +0 -30
- package/dist/core/agents/agent-ruleset-builder.js +0 -75
- package/dist/core/agents/agent-ruleset-builder.js.map +0 -1
- package/dist/core/agents/agent-ruleset-builder.spec.d.ts +0 -1
- package/dist/core/agents/agent-ruleset-builder.spec.js +0 -135
- package/dist/core/agents/agent-ruleset-builder.spec.js.map +0 -1
- package/dist/core/architecture/nx-workspace.strategy.js +0 -107
- package/dist/core/architecture/nx-workspace.strategy.js.map +0 -1
- package/dist/core/architecture/workspace-manager.strategy.d.ts +0 -7
- package/dist/core/architecture/workspace-manager.strategy.js +0 -3
- package/dist/core/architecture/workspace-manager.strategy.js.map +0 -1
- package/dist/core/config/config.service.d.ts +0 -15
- package/dist/core/config/config.service.js +0 -55
- package/dist/core/config/config.service.js.map +0 -1
- package/dist/core/config/config.service.spec.d.ts +0 -1
- package/dist/core/config/config.service.spec.js +0 -43
- package/dist/core/config/config.service.spec.js.map +0 -1
- package/dist/core/di/container.d.ts +0 -25
- package/dist/core/di/container.js +0 -87
- package/dist/core/di/container.js.map +0 -1
- package/dist/core/di/container.spec.d.ts +0 -1
- package/dist/core/di/container.spec.js +0 -137
- package/dist/core/di/container.spec.js.map +0 -1
- package/dist/core/errors/index.d.ts +0 -26
- package/dist/core/errors/index.js +0 -67
- package/dist/core/errors/index.js.map +0 -1
- package/dist/core/filesystem/file-manager.service.d.ts +0 -4
- package/dist/core/filesystem/file-manager.service.js.map +0 -1
- package/dist/core/filesystem/file-manager.service.spec.d.ts +0 -1
- package/dist/core/filesystem/file-manager.service.spec.js +0 -103
- package/dist/core/filesystem/file-manager.service.spec.js.map +0 -1
- package/dist/core/mcp/mcp-server.service.d.ts +0 -7
- package/dist/core/mcp/mcp-server.service.js +0 -31
- package/dist/core/mcp/mcp-server.service.js.map +0 -1
- package/dist/core/mcp/metrics.service.d.ts +0 -37
- package/dist/core/mcp/metrics.service.js +0 -72
- package/dist/core/mcp/metrics.service.js.map +0 -1
- package/dist/core/mcp/prompts/index.d.ts +0 -22
- package/dist/core/mcp/prompts/index.js +0 -175
- package/dist/core/mcp/prompts/index.js.map +0 -1
- package/dist/core/mcp/resources/index.d.ts +0 -11
- package/dist/core/mcp/resources/index.js +0 -193
- package/dist/core/mcp/resources/index.js.map +0 -1
- package/dist/core/mcp/server.d.ts +0 -30
- package/dist/core/mcp/server.js +0 -468
- package/dist/core/mcp/server.js.map +0 -1
- package/dist/core/mcp/tools/agent.d.ts +0 -41
- package/dist/core/mcp/tools/agent.js +0 -195
- package/dist/core/mcp/tools/agent.js.map +0 -1
- package/dist/core/mcp/tools/architecture.d.ts +0 -27
- package/dist/core/mcp/tools/architecture.js +0 -166
- package/dist/core/mcp/tools/architecture.js.map +0 -1
- package/dist/core/mcp/tools/sdlc.d.ts +0 -32
- package/dist/core/mcp/tools/sdlc.js +0 -189
- package/dist/core/mcp/tools/sdlc.js.map +0 -1
- package/dist/core/mcp/tools/tool-utils.d.ts +0 -4
- package/dist/core/mcp/tools/tool-utils.js +0 -18
- package/dist/core/mcp/tools/tool-utils.js.map +0 -1
- package/dist/core/mcp/tools/validate.d.ts +0 -18
- package/dist/core/mcp/tools/validate.js +0 -56
- package/dist/core/mcp/tools/validate.js.map +0 -1
- package/dist/core/mcp/watcher.service.d.ts +0 -8
- package/dist/core/mcp/watcher.service.js +0 -82
- package/dist/core/mcp/watcher.service.js.map +0 -1
- package/dist/core/mcp/watcher.service.spec.d.ts +0 -1
- package/dist/core/mcp/watcher.service.spec.js +0 -70
- package/dist/core/mcp/watcher.service.spec.js.map +0 -1
- package/dist/core/observability/command-watcher.js.map +0 -1
- package/dist/core/observability/error-reporter.js.map +0 -1
- package/dist/core/observability/index.d.ts +0 -4
- package/dist/core/observability/index.js.map +0 -1
- package/dist/core/observability/observability.test.d.ts +0 -1
- package/dist/core/observability/observability.test.js +0 -224
- package/dist/core/observability/observability.test.js.map +0 -1
- package/dist/core/observability/structured-logger.js.map +0 -1
- package/dist/core/observability/timing.js.map +0 -1
- package/dist/core/services/command-executor.service.d.ts +0 -3
- package/dist/core/services/command-executor.service.js +0 -12
- package/dist/core/services/command-executor.service.js.map +0 -1
- package/dist/core/services/command-history.service.d.ts +0 -38
- package/dist/core/services/command-history.service.js +0 -146
- package/dist/core/services/command-history.service.js.map +0 -1
- package/dist/core/services/command-history.service.spec.d.ts +0 -1
- package/dist/core/services/command-history.service.spec.js +0 -166
- package/dist/core/services/command-history.service.spec.js.map +0 -1
- package/dist/core/services/command-providers.d.ts +0 -1
- package/dist/core/services/command-providers.js +0 -17
- package/dist/core/services/command-providers.js.map +0 -1
- package/dist/core/services/runtime-catalog.service.d.ts +0 -2
- package/dist/core/services/runtime-catalog.service.js +0 -7
- package/dist/core/services/runtime-catalog.service.js.map +0 -1
- package/dist/core/sync/sync.service.d.ts +0 -4
- package/dist/core/sync/sync.service.js.map +0 -1
- package/dist/core/sync/sync.service.spec.d.ts +0 -1
- package/dist/core/sync/sync.service.spec.js +0 -63
- package/dist/core/sync/sync.service.spec.js.map +0 -1
- package/dist/core/upgrade/satellite-upgrade.service.d.ts +0 -48
- package/dist/core/upgrade/satellite-upgrade.service.js +0 -358
- package/dist/core/upgrade/satellite-upgrade.service.js.map +0 -1
- package/dist/core/upgrade/satellite-upgrade.service.spec.d.ts +0 -1
- package/dist/core/upgrade/satellite-upgrade.service.spec.js +0 -143
- package/dist/core/upgrade/satellite-upgrade.service.spec.js.map +0 -1
- package/dist/core/validators/architecture-drift.service.d.ts +0 -68
- package/dist/core/validators/architecture-drift.service.js +0 -266
- package/dist/core/validators/architecture-drift.service.js.map +0 -1
- package/dist/core/validators/architecture-drift.service.spec.d.ts +0 -1
- package/dist/core/validators/architecture-drift.service.spec.js +0 -315
- package/dist/core/validators/architecture-drift.service.spec.js.map +0 -1
- package/dist/core/validators/phase-gate-validator.service.d.ts +0 -71
- package/dist/core/validators/phase-gate-validator.service.js +0 -271
- package/dist/core/validators/phase-gate-validator.service.js.map +0 -1
- package/dist/core/validators/phase-gate-validator.service.spec.d.ts +0 -1
- package/dist/core/validators/phase-gate-validator.service.spec.js +0 -326
- package/dist/core/validators/phase-gate-validator.service.spec.js.map +0 -1
- package/dist/core/validators/ruleset-validator-architecture.spec.d.ts +0 -1
- package/dist/core/validators/ruleset-validator-architecture.spec.js +0 -178
- package/dist/core/validators/ruleset-validator-architecture.spec.js.map +0 -1
- package/dist/core/validators/ruleset-validator.service.d.ts +0 -80
- package/dist/core/validators/ruleset-validator.service.js +0 -657
- package/dist/core/validators/ruleset-validator.service.js.map +0 -1
- package/dist/core/validators/ruleset-validator.service.spec.d.ts +0 -1
- package/dist/core/validators/ruleset-validator.service.spec.js +0 -122
- package/dist/core/validators/ruleset-validator.service.spec.js.map +0 -1
- package/dist/domain/entities/index.d.ts +0 -72
- package/dist/domain/entities/index.js +0 -119
- package/dist/domain/entities/index.js.map +0 -1
- package/dist/domain/interfaces.d.ts +0 -224
- package/dist/domain/interfaces.js +0 -3
- package/dist/domain/interfaces.js.map +0 -1
- package/dist/domain/services/adr.service.d.ts +0 -50
- package/dist/domain/services/adr.service.js +0 -125
- package/dist/domain/services/adr.service.js.map +0 -1
- package/dist/domain/services/adr.service.spec.d.ts +0 -1
- package/dist/domain/services/adr.service.spec.js +0 -141
- package/dist/domain/services/adr.service.spec.js.map +0 -1
- package/dist/domain/services/agent-registry.service.js.map +0 -1
- package/dist/domain/services/agent-registry.service.spec.d.ts +0 -1
- package/dist/domain/services/agent-registry.service.spec.js +0 -162
- package/dist/domain/services/agent-registry.service.spec.js.map +0 -1
- package/dist/domain/services/index.d.ts +0 -33
- package/dist/domain/services/index.js +0 -126
- package/dist/domain/services/index.js.map +0 -1
- package/dist/domain/services/services.test.d.ts +0 -1
- package/dist/domain/services/services.test.js +0 -236
- package/dist/domain/services/services.test.js.map +0 -1
- package/dist/domain/services/standards.service.d.ts +0 -47
- package/dist/domain/services/standards.service.js +0 -129
- package/dist/domain/services/standards.service.js.map +0 -1
- package/dist/domain/services/standards.service.spec.d.ts +0 -1
- package/dist/domain/services/standards.service.spec.js +0 -140
- package/dist/domain/services/standards.service.spec.js.map +0 -1
- package/dist/domain/services/tool-usage-telemetry.service.js.map +0 -1
- package/dist/domain/services/tool-usage-telemetry.service.spec.d.ts +0 -1
- package/dist/domain/services/tool-usage-telemetry.service.spec.js +0 -180
- package/dist/domain/services/tool-usage-telemetry.service.spec.js.map +0 -1
- package/dist/infrastructure/catalog/catalog-loader.test.d.ts +0 -1
- package/dist/infrastructure/catalog/catalog-loader.test.js +0 -184
- package/dist/infrastructure/catalog/catalog-loader.test.js.map +0 -1
- package/dist/infrastructure/cli/command-executor.test.d.ts +0 -1
- package/dist/infrastructure/cli/command-executor.test.js +0 -98
- package/dist/infrastructure/cli/command-executor.test.js.map +0 -1
- package/dist/infrastructure/formatters/output-formatter.service.spec.d.ts +0 -1
- package/dist/infrastructure/formatters/output-formatter.service.spec.js +0 -164
- package/dist/infrastructure/formatters/output-formatter.service.spec.js.map +0 -1
- package/dist/test/mocks/index.d.ts +0 -44
- package/dist/test/mocks/index.js +0 -135
- package/dist/test/mocks/index.js.map +0 -1
- /package/dist/{core → infrastructure}/observability/command-watcher.d.ts +0 -0
- /package/dist/{core → infrastructure}/observability/error-reporter.d.ts +0 -0
- /package/dist/{core → infrastructure}/observability/structured-logger.d.ts +0 -0
- /package/dist/{core → infrastructure}/observability/structured-logger.js +0 -0
- /package/dist/{core → infrastructure}/observability/timing.d.ts +0 -0
- /package/dist/{core → infrastructure}/observability/timing.js +0 -0
- /package/dist/{domain/services → infrastructure/observability}/tool-usage-telemetry.service.d.ts +0 -0
- /package/dist/{domain/services → infrastructure/observability}/tool-usage-telemetry.service.js +0 -0
- /package/dist/{core/abstractions → infrastructure}/providers/config-parser.provider.js +0 -0
- /package/dist/{core/abstractions → infrastructure}/providers/logger.provider.js +0 -0
package/README.es.md
CHANGED
|
@@ -1,258 +1,1051 @@
|
|
|
1
|
-
#
|
|
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
|
-
##
|
|
5
|
+
## Visión General
|
|
6
6
|
|
|
7
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
45
|
+
```bash
|
|
46
|
+
pnpm add -g @evolith/smart-cli
|
|
47
|
+
```
|
|
21
48
|
|
|
22
|
-
|
|
49
|
+
```bash
|
|
50
|
+
yarn global add @evolith/smart-cli
|
|
51
|
+
```
|
|
23
52
|
|
|
24
|
-
|
|
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
|
-
#
|
|
59
|
+
# 1.1.4
|
|
29
60
|
```
|
|
30
61
|
|
|
31
|
-
|
|
62
|
+
### Solución de Problemas
|
|
32
63
|
|
|
33
|
-
|
|
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
|
-
|
|
37
|
-
smart-cli init
|
|
71
|
+
export PATH=$(npm config get prefix)/bin:$PATH
|
|
38
72
|
```
|
|
39
73
|
|
|
40
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
51
|
-
|
|
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
|
-
|
|
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
|
|
58
|
-
|
|
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
|
-
|
|
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>
|
|
72
|
-
--core <ruta>
|
|
73
|
-
--format <formato>
|
|
74
|
-
--output <archivo>
|
|
75
|
-
--ruleset <id>
|
|
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
|
-
#
|
|
262
|
+
# Chequeo básico de cumplimiento
|
|
82
263
|
smart-cli validate
|
|
83
264
|
|
|
84
|
-
# Salida JSON para
|
|
85
|
-
smart-cli validate --format json
|
|
265
|
+
# Salida JSON para CI
|
|
266
|
+
smart-cli validate --format json --output report.json
|
|
86
267
|
|
|
87
|
-
#
|
|
88
|
-
smart-cli validate --
|
|
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
|
|
91
|
-
smart-cli validate --
|
|
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
|
-
|
|
294
|
+
Gestiona Architecture Decision Records.
|
|
97
295
|
|
|
98
296
|
```bash
|
|
99
|
-
smart-cli adr
|
|
297
|
+
smart-cli adr [opciones]
|
|
100
298
|
|
|
101
|
-
|
|
102
|
-
create
|
|
103
|
-
list
|
|
104
|
-
get
|
|
105
|
-
update
|
|
106
|
-
|
|
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
|
-
#
|
|
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
|
-
#
|
|
116
|
-
smart-cli adr
|
|
322
|
+
# Actualizar estado
|
|
323
|
+
smart-cli adr --update ADR-0005 --status Accepted --reason "Aprobado en revisión de diseño"
|
|
117
324
|
|
|
118
|
-
#
|
|
119
|
-
smart-cli adr
|
|
325
|
+
# Mostrar matriz
|
|
326
|
+
smart-cli adr --matrix
|
|
120
327
|
```
|
|
121
328
|
|
|
329
|
+
---
|
|
330
|
+
|
|
122
331
|
### standards
|
|
123
332
|
|
|
124
|
-
|
|
333
|
+
Gestiona los estándares de gobernanza de Evolith (arquitectura, gobernanza, operaciones).
|
|
125
334
|
|
|
126
335
|
```bash
|
|
127
|
-
smart-cli standards
|
|
336
|
+
smart-cli standards [opciones]
|
|
128
337
|
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
list
|
|
132
|
-
get
|
|
133
|
-
validate
|
|
134
|
-
export
|
|
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
|
|
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
|
-
#
|
|
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
|
-
|
|
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
|
|
371
|
+
smart-cli agents [opciones]
|
|
153
372
|
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
remove
|
|
158
|
-
|
|
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
|
-
#
|
|
169
|
-
smart-cli
|
|
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
|
-
|
|
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
|
|
181
|
-
--get <id>
|
|
182
|
-
--search <
|
|
183
|
-
|
|
184
|
-
|
|
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
|
-
#
|
|
197
|
-
smart-cli history --
|
|
900
|
+
# Limpiar histórico
|
|
901
|
+
smart-cli history --clear
|
|
198
902
|
```
|
|
199
903
|
|
|
904
|
+
---
|
|
905
|
+
|
|
200
906
|
### completion
|
|
201
907
|
|
|
202
|
-
|
|
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
|
|
911
|
+
smart-cli completion [opciones]
|
|
206
912
|
|
|
207
|
-
|
|
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
|
|
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
|
|
217
|
-
smart-cli completion --install
|
|
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
|
-
|
|
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
|
-
|
|
945
|
+
---
|
|
223
946
|
|
|
224
|
-
|
|
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
|
-
|
|
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
|
-
|
|
982
|
+
### Smoke Test
|
|
233
983
|
|
|
234
984
|
```bash
|
|
235
|
-
|
|
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-
|
|
243
|
-
| `evolith-
|
|
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
|
|
246
|
-
| `evolith-
|
|
247
|
-
| `evolith-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
292
|
-
path: '/user/project',
|
|
293
|
-
format: 'summary'
|
|
294
|
-
})
|
|
1089
|
+
---
|
|
295
1090
|
|
|
296
|
-
|
|
297
|
-
Reglas verificadas: 12
|
|
298
|
-
Todas las puertas pasaron
|
|
1091
|
+
## Integración CI/CD
|
|
299
1092
|
|
|
300
|
-
|
|
301
|
-
Agente: Déjame obtener la lista de ADR...
|
|
1093
|
+
### Validación de Fase SDLC (Pipeline GT-281)
|
|
302
1094
|
|
|
303
|
-
|
|
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
|
-
|
|
306
|
-
|
|
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
|
|
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: "
|
|
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: "
|
|
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
|
-
|
|
1168
|
+
La mayoría de comandos aceptan `--format`:
|
|
335
1169
|
|
|
336
1170
|
```bash
|
|
337
|
-
#
|
|
338
|
-
smart-cli validate
|
|
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
|
|
1177
|
+
# Tabla
|
|
341
1178
|
smart-cli validate --format table
|
|
342
1179
|
|
|
343
|
-
# YAML
|
|
1180
|
+
# YAML
|
|
344
1181
|
smart-cli validate --format yaml
|
|
345
1182
|
|
|
346
|
-
#
|
|
347
|
-
smart-cli validate --format
|
|
1183
|
+
# JSON (envelope ADR-0073 — para automatización y CI)
|
|
1184
|
+
smart-cli validate --format json
|
|
348
1185
|
```
|
|
349
1186
|
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
### Comando no encontrado
|
|
1187
|
+
---
|
|
353
1188
|
|
|
354
|
-
|
|
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
|
-
|
|
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
|
|
1198
|
+
smart-cli docs # generar evolith.yaml y docs base
|
|
1199
|
+
smart-cli validate
|
|
367
1200
|
```
|
|
368
1201
|
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
Verifica que tu `evolith.yaml` existe y es válido:
|
|
372
|
-
|
|
1202
|
+
**El servidor MCP no responde:**
|
|
373
1203
|
```bash
|
|
374
|
-
|
|
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
|
|
1220
|
+
npm link
|
|
387
1221
|
```
|
|
388
1222
|
|
|
389
|
-
###
|
|
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/
|
|
401
|
-
│ ├──
|
|
402
|
-
│ ├──
|
|
403
|
-
│ ├── infrastructure
|
|
404
|
-
│ └──
|
|
405
|
-
├── shell/
|
|
406
|
-
├── templates/
|
|
407
|
-
|
|
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
|
-
|
|
413
|
-
|
|
414
|
-
|
|
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
|
-
|
|
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)
|