@evolith/smart-cli 1.1.0 → 1.1.2
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 +31 -3
- package/README.md +915 -170
- package/package.json +50 -41
- package/shell/hooks.bash +68 -0
- package/shell/hooks.fish +57 -0
- package/shell/hooks.zsh +68 -0
- package/dist/app.module.d.ts +0 -2
- package/dist/app.module.js +0 -61
- package/dist/app.module.js.map +0 -1
- package/dist/app.module.spec.d.ts +0 -1
- package/dist/app.module.spec.js +0 -305
- package/dist/app.module.spec.js.map +0 -1
- package/dist/application/ports/webhook-notifier.port.d.ts +0 -4
- package/dist/application/ports/webhook-notifier.port.js +0 -3
- package/dist/application/ports/webhook-notifier.port.js.map +0 -1
- package/dist/application/services/index.d.ts +0 -64
- package/dist/application/services/index.js +0 -371
- package/dist/application/services/index.js.map +0 -1
- package/dist/application/services/initialize-project.spec.d.ts +0 -1
- package/dist/application/services/initialize-project.spec.js +0 -211
- package/dist/application/services/initialize-project.spec.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/evaluate-gate.use-case.d.ts +0 -20
- package/dist/application/use-cases/evaluate-gate.use-case.js +0 -72
- package/dist/application/use-cases/evaluate-gate.use-case.js.map +0 -1
- package/dist/application/use-cases/validate-satellite.use-case.d.ts +0 -19
- package/dist/application/use-cases/validate-satellite.use-case.js +0 -96
- 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/adr/adr.command.d.ts +0 -30
- package/dist/commands/adr/adr.command.js +0 -379
- package/dist/commands/adr/adr.command.js.map +0 -1
- package/dist/commands/adr/adr.command.spec.d.ts +0 -1
- package/dist/commands/adr/adr.command.spec.js +0 -409
- package/dist/commands/adr/adr.command.spec.js.map +0 -1
- package/dist/commands/architecture/scaffold.command.d.ts +0 -8
- package/dist/commands/architecture/scaffold.command.js +0 -184
- package/dist/commands/architecture/scaffold.command.js.map +0 -1
- package/dist/commands/architecture/scaffold.command.spec.d.ts +0 -1
- package/dist/commands/architecture/scaffold.command.spec.js +0 -207
- package/dist/commands/architecture/scaffold.command.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/completion/completion.command.d.ts +0 -20
- package/dist/commands/completion/completion.command.js +0 -215
- package/dist/commands/completion/completion.command.js.map +0 -1
- package/dist/commands/completion/completion.command.spec.d.ts +0 -1
- package/dist/commands/completion/completion.command.spec.js +0 -240
- package/dist/commands/completion/completion.command.spec.js.map +0 -1
- package/dist/commands/docs/docs.command.d.ts +0 -14
- package/dist/commands/docs/docs.command.js +0 -233
- package/dist/commands/docs/docs.command.js.map +0 -1
- package/dist/commands/docs/docs.command.spec.d.ts +0 -1
- package/dist/commands/docs/docs.command.spec.js +0 -87
- package/dist/commands/docs/docs.command.spec.js.map +0 -1
- package/dist/commands/drift/drift.command.d.ts +0 -24
- package/dist/commands/drift/drift.command.js +0 -250
- package/dist/commands/drift/drift.command.js.map +0 -1
- package/dist/commands/drift/drift.command.spec.d.ts +0 -1
- package/dist/commands/drift/drift.command.spec.js +0 -327
- package/dist/commands/drift/drift.command.spec.js.map +0 -1
- package/dist/commands/gate/gate.command.d.ts +0 -23
- package/dist/commands/gate/gate.command.js +0 -210
- package/dist/commands/gate/gate.command.js.map +0 -1
- package/dist/commands/history/history.command.d.ts +0 -29
- package/dist/commands/history/history.command.js +0 -268
- package/dist/commands/history/history.command.js.map +0 -1
- package/dist/commands/history/history.command.spec.d.ts +0 -1
- package/dist/commands/history/history.command.spec.js +0 -392
- package/dist/commands/history/history.command.spec.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 -550
- package/dist/commands/init/agents.command.spec.js.map +0 -1
- package/dist/commands/init/init.command.d.ts +0 -20
- package/dist/commands/init/init.command.js +0 -329
- package/dist/commands/init/init.command.js.map +0 -1
- package/dist/commands/init/init.command.spec.d.ts +0 -1
- package/dist/commands/init/init.command.spec.js +0 -272
- package/dist/commands/init/init.command.spec.js.map +0 -1
- package/dist/commands/init/upgrade.command.d.ts +0 -19
- package/dist/commands/init/upgrade.command.js +0 -210
- package/dist/commands/init/upgrade.command.js.map +0 -1
- package/dist/commands/init/upgrade.command.spec.d.ts +0 -1
- package/dist/commands/init/upgrade.command.spec.js +0 -378
- package/dist/commands/init/upgrade.command.spec.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/commands/mcp/mcp-serve.command.spec.d.ts +0 -1
- package/dist/commands/mcp/mcp-serve.command.spec.js +0 -58
- package/dist/commands/mcp/mcp-serve.command.spec.js.map +0 -1
- package/dist/commands/sdlc/gate-status.command.d.ts +0 -7
- package/dist/commands/sdlc/gate-status.command.js +0 -189
- package/dist/commands/sdlc/gate-status.command.js.map +0 -1
- package/dist/commands/sdlc/gate-status.command.spec.d.ts +0 -1
- package/dist/commands/sdlc/gate-status.command.spec.js +0 -302
- package/dist/commands/sdlc/gate-status.command.spec.js.map +0 -1
- package/dist/commands/sdlc/generate-domain.command.d.ts +0 -7
- package/dist/commands/sdlc/generate-domain.command.js +0 -166
- package/dist/commands/sdlc/generate-domain.command.js.map +0 -1
- package/dist/commands/sdlc/generate-domain.command.spec.d.ts +0 -1
- package/dist/commands/sdlc/generate-domain.command.spec.js +0 -121
- package/dist/commands/sdlc/generate-domain.command.spec.js.map +0 -1
- package/dist/commands/sdlc/handoff.command.d.ts +0 -22
- package/dist/commands/sdlc/handoff.command.js +0 -273
- package/dist/commands/sdlc/handoff.command.js.map +0 -1
- package/dist/commands/sdlc/handoff.command.spec.d.ts +0 -1
- package/dist/commands/sdlc/handoff.command.spec.js +0 -395
- package/dist/commands/sdlc/handoff.command.spec.js.map +0 -1
- package/dist/commands/sdlc/sdlc.command.d.ts +0 -4
- package/dist/commands/sdlc/sdlc.command.js +0 -70
- package/dist/commands/sdlc/sdlc.command.js.map +0 -1
- package/dist/commands/sdlc/sdlc.command.spec.d.ts +0 -1
- package/dist/commands/sdlc/sdlc.command.spec.js +0 -79
- package/dist/commands/sdlc/sdlc.command.spec.js.map +0 -1
- package/dist/commands/standards/standards.command.d.ts +0 -27
- package/dist/commands/standards/standards.command.js +0 -308
- package/dist/commands/standards/standards.command.js.map +0 -1
- package/dist/commands/standards/standards.command.spec.d.ts +0 -1
- package/dist/commands/standards/standards.command.spec.js +0 -311
- package/dist/commands/standards/standards.command.spec.js.map +0 -1
- package/dist/commands/validate/validate.command.d.ts +0 -25
- package/dist/commands/validate/validate.command.js +0 -284
- package/dist/commands/validate/validate.command.js.map +0 -1
- package/dist/commands/validate/validate.command.spec.d.ts +0 -1
- package/dist/commands/validate/validate.command.spec.js +0 -368
- package/dist/commands/validate/validate.command.spec.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 -61
- 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.d.ts +0 -15
- package/dist/core/abstractions/providers/config-parser.provider.js +0 -68
- package/dist/core/abstractions/providers/config-parser.provider.js.map +0 -1
- package/dist/core/abstractions/providers/config-parser.provider.spec.d.ts +0 -1
- package/dist/core/abstractions/providers/config-parser.provider.spec.js +0 -18
- package/dist/core/abstractions/providers/config-parser.provider.spec.js.map +0 -1
- package/dist/core/abstractions/providers/logger.provider.d.ts +0 -10
- package/dist/core/abstractions/providers/logger.provider.js +0 -84
- package/dist/core/abstractions/providers/logger.provider.js.map +0 -1
- package/dist/core/abstractions/providers/logger.provider.spec.d.ts +0 -1
- package/dist/core/abstractions/providers/logger.provider.spec.js +0 -212
- package/dist/core/abstractions/providers/logger.provider.spec.js.map +0 -1
- package/dist/core/abstractions/providers/mock-filesystem.provider.d.ts +0 -31
- package/dist/core/abstractions/providers/mock-filesystem.provider.js +0 -126
- package/dist/core/abstractions/providers/mock-filesystem.provider.js.map +0 -1
- package/dist/core/abstractions/providers/mock-filesystem.provider.spec.d.ts +0 -1
- package/dist/core/abstractions/providers/mock-filesystem.provider.spec.js +0 -56
- package/dist/core/abstractions/providers/mock-filesystem.provider.spec.js.map +0 -1
- package/dist/core/abstractions/providers/node-filesystem.provider.d.ts +0 -20
- package/dist/core/abstractions/providers/node-filesystem.provider.js +0 -108
- 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.d.ts +0 -14
- package/dist/core/architecture/nx-workspace.strategy.js +0 -136
- package/dist/core/architecture/nx-workspace.strategy.js.map +0 -1
- package/dist/core/architecture/nx-workspace.strategy.spec.d.ts +0 -1
- package/dist/core/architecture/nx-workspace.strategy.spec.js +0 -187
- package/dist/core/architecture/nx-workspace.strategy.spec.js.map +0 -1
- package/dist/core/architecture/workspace-manager.strategy.d.ts +0 -8
- 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 -301
- 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 +0 -96
- 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/generators/hexagonal-scaffolder.d.ts +0 -6
- package/dist/core/generators/hexagonal-scaffolder.js +0 -260
- package/dist/core/generators/hexagonal-scaffolder.js.map +0 -1
- package/dist/core/generators/hexagonal-scaffolder.spec.d.ts +0 -1
- package/dist/core/generators/hexagonal-scaffolder.spec.js +0 -164
- package/dist/core/generators/hexagonal-scaffolder.spec.js.map +0 -1
- package/dist/core/generators/mermaid-class-parser.d.ts +0 -38
- package/dist/core/generators/mermaid-class-parser.js +0 -183
- package/dist/core/generators/mermaid-class-parser.js.map +0 -1
- package/dist/core/generators/mermaid-class-parser.spec.d.ts +0 -1
- package/dist/core/generators/mermaid-class-parser.spec.js +0 -148
- package/dist/core/generators/mermaid-class-parser.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/metrics.service.spec.d.ts +0 -1
- package/dist/core/mcp/metrics.service.spec.js +0 -159
- package/dist/core/mcp/metrics.service.spec.js.map +0 -1
- package/dist/core/mcp/prompts/index.d.ts +0 -22
- package/dist/core/mcp/prompts/index.js +0 -211
- package/dist/core/mcp/prompts/index.js.map +0 -1
- package/dist/core/mcp/prompts/index.spec.d.ts +0 -1
- package/dist/core/mcp/prompts/index.spec.js +0 -150
- package/dist/core/mcp/prompts/index.spec.js.map +0 -1
- package/dist/core/mcp/resources/index.d.ts +0 -11
- package/dist/core/mcp/resources/index.js +0 -209
- package/dist/core/mcp/resources/index.js.map +0 -1
- package/dist/core/mcp/resources/index.spec.d.ts +0 -1
- package/dist/core/mcp/resources/index.spec.js +0 -212
- package/dist/core/mcp/resources/index.spec.js.map +0 -1
- package/dist/core/mcp/server.d.ts +0 -33
- package/dist/core/mcp/server.js +0 -693
- package/dist/core/mcp/server.js.map +0 -1
- package/dist/core/mcp/server.spec.d.ts +0 -1
- package/dist/core/mcp/server.spec.js +0 -579
- package/dist/core/mcp/server.spec.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/agent.spec.d.ts +0 -1
- package/dist/core/mcp/tools/agent.spec.js +0 -171
- package/dist/core/mcp/tools/agent.spec.js.map +0 -1
- package/dist/core/mcp/tools/architecture.d.ts +0 -29
- package/dist/core/mcp/tools/architecture.js +0 -234
- package/dist/core/mcp/tools/architecture.js.map +0 -1
- package/dist/core/mcp/tools/architecture.spec.d.ts +0 -1
- package/dist/core/mcp/tools/architecture.spec.js +0 -145
- package/dist/core/mcp/tools/architecture.spec.js.map +0 -1
- package/dist/core/mcp/tools/gate.d.ts +0 -1
- package/dist/core/mcp/tools/gate.js +0 -68
- package/dist/core/mcp/tools/gate.js.map +0 -1
- package/dist/core/mcp/tools/moscow.d.ts +0 -30
- package/dist/core/mcp/tools/moscow.js +0 -113
- package/dist/core/mcp/tools/moscow.js.map +0 -1
- package/dist/core/mcp/tools/moscow.spec.d.ts +0 -1
- package/dist/core/mcp/tools/moscow.spec.js +0 -209
- package/dist/core/mcp/tools/moscow.spec.js.map +0 -1
- package/dist/core/mcp/tools/sdlc.d.ts +0 -32
- package/dist/core/mcp/tools/sdlc.js +0 -190
- package/dist/core/mcp/tools/sdlc.js.map +0 -1
- package/dist/core/mcp/tools/sdlc.spec.d.ts +0 -1
- package/dist/core/mcp/tools/sdlc.spec.js +0 -170
- package/dist/core/mcp/tools/sdlc.spec.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/tools/validate.spec.d.ts +0 -1
- package/dist/core/mcp/tools/validate.spec.js +0 -130
- package/dist/core/mcp/tools/validate.spec.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 -171
- package/dist/core/mcp/watcher.service.spec.js.map +0 -1
- package/dist/core/metrics/dora-calculator.d.ts +0 -18
- package/dist/core/metrics/dora-calculator.js +0 -146
- package/dist/core/metrics/dora-calculator.js.map +0 -1
- package/dist/core/metrics/dora-calculator.spec.d.ts +0 -1
- package/dist/core/metrics/dora-calculator.spec.js +0 -164
- package/dist/core/metrics/dora-calculator.spec.js.map +0 -1
- package/dist/core/metrics/git-log-reader.d.ts +0 -14
- package/dist/core/metrics/git-log-reader.js +0 -39
- package/dist/core/metrics/git-log-reader.js.map +0 -1
- package/dist/core/metrics/git-log-reader.spec.d.ts +0 -1
- package/dist/core/metrics/git-log-reader.spec.js +0 -108
- package/dist/core/metrics/git-log-reader.spec.js.map +0 -1
- package/dist/core/observability/command-watcher.d.ts +0 -45
- package/dist/core/observability/command-watcher.js +0 -168
- package/dist/core/observability/command-watcher.js.map +0 -1
- package/dist/core/observability/command-watcher.spec.d.ts +0 -1
- package/dist/core/observability/command-watcher.spec.js +0 -123
- package/dist/core/observability/command-watcher.spec.js.map +0 -1
- package/dist/core/observability/error-reporter.d.ts +0 -47
- package/dist/core/observability/error-reporter.js +0 -163
- package/dist/core/observability/error-reporter.js.map +0 -1
- package/dist/core/observability/error-reporter.spec.d.ts +0 -1
- package/dist/core/observability/error-reporter.spec.js +0 -291
- package/dist/core/observability/error-reporter.spec.js.map +0 -1
- package/dist/core/observability/index.d.ts +0 -5
- package/dist/core/observability/index.js +0 -26
- 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.d.ts +0 -53
- package/dist/core/observability/structured-logger.js +0 -123
- package/dist/core/observability/structured-logger.js.map +0 -1
- package/dist/core/observability/structured-logger.spec.d.ts +0 -1
- package/dist/core/observability/structured-logger.spec.js +0 -197
- package/dist/core/observability/structured-logger.spec.js.map +0 -1
- package/dist/core/observability/timing.d.ts +0 -23
- package/dist/core/observability/timing.js +0 -140
- package/dist/core/observability/timing.js.map +0 -1
- package/dist/core/observability/timing.spec.d.ts +0 -1
- package/dist/core/observability/timing.spec.js +0 -216
- package/dist/core/observability/timing.spec.js.map +0 -1
- package/dist/core/observability/tool-usage-telemetry.service.d.ts +0 -46
- package/dist/core/observability/tool-usage-telemetry.service.js +0 -181
- package/dist/core/observability/tool-usage-telemetry.service.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 -39
- package/dist/core/services/command-history.service.js +0 -150
- 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 -257
- 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 +0 -81
- 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 -223
- 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/deep-architecture-analyzer.d.ts +0 -58
- package/dist/core/validators/deep-architecture-analyzer.js +0 -333
- package/dist/core/validators/deep-architecture-analyzer.js.map +0 -1
- package/dist/core/validators/deep-architecture-analyzer.spec.d.ts +0 -1
- package/dist/core/validators/deep-architecture-analyzer.spec.js +0 -186
- package/dist/core/validators/deep-architecture-analyzer.spec.js.map +0 -1
- package/dist/core/validators/evaluators/evaluator.interface.d.ts +0 -14
- package/dist/core/validators/evaluators/evaluator.interface.js +0 -3
- package/dist/core/validators/evaluators/evaluator.interface.js.map +0 -1
- package/dist/core/validators/evaluators/native-evaluator.d.ts +0 -31
- package/dist/core/validators/evaluators/native-evaluator.js +0 -461
- package/dist/core/validators/evaluators/native-evaluator.js.map +0 -1
- package/dist/core/validators/evaluators/opa-evaluator.d.ts +0 -20
- package/dist/core/validators/evaluators/opa-evaluator.js +0 -249
- package/dist/core/validators/evaluators/opa-evaluator.js.map +0 -1
- package/dist/core/validators/phase-gate-validator.service.d.ts +0 -75
- package/dist/core/validators/phase-gate-validator.service.js +0 -338
- 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/rule-evaluation-engine.d.ts +0 -34
- package/dist/core/validators/rule-evaluation-engine.js +0 -187
- package/dist/core/validators/rule-evaluation-engine.js.map +0 -1
- package/dist/core/validators/rule-evaluation-engine.spec.d.ts +0 -1
- package/dist/core/validators/rule-evaluation-engine.spec.js +0 -243
- package/dist/core/validators/rule-evaluation-engine.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 -82
- package/dist/core/validators/ruleset-validator.service.js +0 -682
- 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 -469
- 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/gate-evidence.d.ts +0 -59
- package/dist/domain/gate-evidence.js +0 -38
- package/dist/domain/gate-evidence.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 -129
- 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.d.ts +0 -26
- package/dist/domain/services/agent-registry.service.js +0 -152
- 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 -34
- package/dist/domain/services/index.js +0 -128
- package/dist/domain/services/index.js.map +0 -1
- package/dist/domain/services/moscow-prioritization.service.d.ts +0 -44
- package/dist/domain/services/moscow-prioritization.service.js +0 -213
- package/dist/domain/services/moscow-prioritization.service.js.map +0 -1
- package/dist/domain/services/moscow-prioritization.service.spec.d.ts +0 -1
- package/dist/domain/services/moscow-prioritization.service.spec.js +0 -285
- package/dist/domain/services/moscow-prioritization.service.spec.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 -600
- package/dist/domain/services/standards.service.spec.js.map +0 -1
- package/dist/domain/services/tool-usage-telemetry.service.d.ts +0 -46
- package/dist/domain/services/tool-usage-telemetry.service.js +0 -181
- 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/adapters/webhook.adapter.d.ts +0 -5
- package/dist/infrastructure/adapters/webhook.adapter.js +0 -19
- package/dist/infrastructure/adapters/webhook.adapter.js.map +0 -1
- package/dist/infrastructure/catalog/catalog-loader.d.ts +0 -22
- package/dist/infrastructure/catalog/catalog-loader.js +0 -135
- package/dist/infrastructure/catalog/catalog-loader.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.d.ts +0 -20
- package/dist/infrastructure/cli/command-executor.js +0 -109
- package/dist/infrastructure/cli/command-executor.js.map +0 -1
- package/dist/infrastructure/cli/command-executor.spec.d.ts +0 -1
- package/dist/infrastructure/cli/command-executor.spec.js +0 -149
- package/dist/infrastructure/cli/command-executor.spec.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/cli/providers/index.d.ts +0 -52
- package/dist/infrastructure/cli/providers/index.js +0 -175
- package/dist/infrastructure/cli/providers/index.js.map +0 -1
- package/dist/infrastructure/cli/providers/providers.spec.d.ts +0 -1
- package/dist/infrastructure/cli/providers/providers.spec.js +0 -251
- package/dist/infrastructure/cli/providers/providers.spec.js.map +0 -1
- package/dist/infrastructure/formatters/output-formatter.service.d.ts +0 -28
- package/dist/infrastructure/formatters/output-formatter.service.js +0 -198
- package/dist/infrastructure/formatters/output-formatter.service.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/main.d.ts +0 -2
- package/dist/main.js +0 -10
- package/dist/main.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/README.md
CHANGED
|
@@ -1,191 +1,849 @@
|
|
|
1
|
-
#
|
|
1
|
+
# @evolith/smart-cli
|
|
2
2
|
|
|
3
|
-
Command-line interface for Evolith governance, standards validation, and AI agent integration.
|
|
3
|
+
Command-line interface for Evolith — governance, standards validation, architecture scaffolding, SDLC lifecycle management, and AI agent integration.
|
|
4
4
|
|
|
5
|
-
##
|
|
5
|
+
## Overview
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
- **Validation**: Repository compliance against Evolith standards
|
|
9
|
-
- **AI Integration**: MCP server for AI agent tool calling
|
|
10
|
-
- **Observability**: Structured logging, metrics, error reporting
|
|
7
|
+
SmartCLI is the primary entry point to the Evolith ecosystem. It connects three layers:
|
|
11
8
|
|
|
12
|
-
|
|
9
|
+
```
|
|
10
|
+
satellite repository
|
|
11
|
+
│
|
|
12
|
+
▼
|
|
13
|
+
smart-cli ──────── evolith.yaml (configuration)
|
|
14
|
+
│
|
|
15
|
+
├── Evolith Core (rulesets, ADRs, standards, gate evidence)
|
|
16
|
+
│
|
|
17
|
+
└── MCP Server ──── AI Agents (Cursor, Claude Desktop, custom)
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## Supported Architectures
|
|
21
|
+
|
|
22
|
+
Evolith Core defines **8 architecture topologies** across complementary dimensions. Any command that accepts `--topology` references them by their canonical id:
|
|
23
|
+
|
|
24
|
+
| Topology (id) | Name | Dimension |
|
|
25
|
+
|---------------|------|-----------|
|
|
26
|
+
| `modular-monolith` | Modular Monolith | progressive-axis |
|
|
27
|
+
| `distributed-modules` | Distributed Modules | progressive-axis |
|
|
28
|
+
| `microservices` | Microservices | progressive-axis |
|
|
29
|
+
| `serverless` | Serverless | execution |
|
|
30
|
+
| `edge-computing` | Edge Computing | execution |
|
|
31
|
+
| `event-driven` | Event-Driven | integration |
|
|
32
|
+
| `data-mesh` | Data Mesh | data |
|
|
33
|
+
| `agentic-ai` | Agentic AI | ai |
|
|
13
34
|
|
|
14
|
-
|
|
35
|
+
The **progressive axis** (`modular-monolith → distributed-modules → microservices`) is a linear maturity progression managed by the `upgrade` command. The other dimensions (execution, integration, data, ai) are complementary and chosen per project needs.
|
|
36
|
+
|
|
37
|
+
> **Legacy `F1/F2/F3`:** earlier versions used `--arch F1|F2|F3` mapping to the progressive axis (`F1 = modular-monolith`, `F2 = distributed-modules`, `F3 = microservices`). These flags are **deprecated** — use `--topology <id>` with the canonical ids above. (The old "Microfrontend / Distributed Microfrontend" labels are obsolete and no longer reflect the corpus.)
|
|
38
|
+
|
|
39
|
+
## Installation
|
|
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
|
+
```
|
|
52
|
+
|
|
53
|
+
Or download the binary from [GitHub Releases](https://github.com/beyondnetcode/evolith_arch32/releases) and add it to your PATH.
|
|
23
54
|
|
|
24
|
-
### Verify
|
|
55
|
+
### Verify
|
|
25
56
|
|
|
26
57
|
```bash
|
|
27
58
|
smart-cli --version
|
|
28
|
-
# smart-cli version
|
|
59
|
+
# smart-cli version 1.1.0
|
|
29
60
|
```
|
|
30
61
|
|
|
31
|
-
|
|
62
|
+
### Troubleshooting
|
|
32
63
|
|
|
33
|
-
|
|
64
|
+
**EACCES on macOS/Linux:**
|
|
65
|
+
```bash
|
|
66
|
+
sudo npm install -g @evolith/smart-cli --unsafe-perm
|
|
67
|
+
```
|
|
34
68
|
|
|
69
|
+
**nvm — binary not found after install:**
|
|
35
70
|
```bash
|
|
36
|
-
|
|
71
|
+
export PATH=$(npm config get prefix)/bin:$PATH
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
## Quickstart
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
# 1. Seed a demo project to explore the CLI
|
|
78
|
+
smart-cli fixtures --type demo
|
|
79
|
+
|
|
80
|
+
# 2. Initialize a real repository
|
|
37
81
|
smart-cli init
|
|
82
|
+
|
|
83
|
+
# 3. Scaffold base documentation
|
|
84
|
+
smart-cli docs
|
|
85
|
+
|
|
86
|
+
# 4. Validate compliance
|
|
87
|
+
smart-cli validate
|
|
88
|
+
|
|
89
|
+
# 5. Scaffold architecture (F1)
|
|
90
|
+
smart-cli scaffold --phase 1
|
|
91
|
+
|
|
92
|
+
# 6. Connect an AI agent
|
|
93
|
+
smart-cli mcp serve
|
|
38
94
|
```
|
|
39
95
|
|
|
40
|
-
|
|
96
|
+
---
|
|
41
97
|
|
|
42
|
-
|
|
98
|
+
## Commands
|
|
99
|
+
|
|
100
|
+
### init
|
|
101
|
+
|
|
102
|
+
Initializes a satellite repository with interactive tool selection. Creates `evolith.yaml` and the project structure.
|
|
43
103
|
|
|
44
104
|
```bash
|
|
45
|
-
smart-cli
|
|
105
|
+
smart-cli init [options]
|
|
106
|
+
|
|
107
|
+
Options:
|
|
108
|
+
-d, --dry-run Run without writing files
|
|
109
|
+
-c, --config <path> Path to evolith.setup.json for batch mode
|
|
110
|
+
-r, --runtime <id> Runtime: nodejs, dotnet, python
|
|
111
|
+
-m, --monorepo <id> Monorepo strategy: none, nx, npm-workspaces, rush
|
|
112
|
+
-a, --arch <id> Architecture pattern: clean, hexagonal, ddd
|
|
113
|
+
--db <id> Database: postgresql, mongodb, sqlserver
|
|
46
114
|
```
|
|
47
115
|
|
|
48
|
-
|
|
116
|
+
**Examples:**
|
|
117
|
+
|
|
118
|
+
```bash
|
|
119
|
+
# Interactive wizard
|
|
120
|
+
smart-cli init
|
|
121
|
+
|
|
122
|
+
# Batch mode (non-interactive)
|
|
123
|
+
smart-cli init --config evolith.setup.json
|
|
124
|
+
|
|
125
|
+
# Preview without writing
|
|
126
|
+
smart-cli init --dry-run
|
|
49
127
|
```
|
|
50
|
-
|
|
51
|
-
|
|
128
|
+
|
|
129
|
+
After `init` completes, the CLI prints suggested next steps including `validate`, `agents --install`, and `sdlc handoff`.
|
|
130
|
+
|
|
131
|
+
---
|
|
132
|
+
|
|
133
|
+
### docs
|
|
134
|
+
|
|
135
|
+
Scaffolds the base documentation files required by Evolith in the current directory.
|
|
136
|
+
|
|
137
|
+
Files created by default:
|
|
138
|
+
- `README.md` — project overview template
|
|
139
|
+
- `AGENTS.md` — AI agent configuration and rules
|
|
140
|
+
- `MASTER_INDEX.md` — documentation index
|
|
141
|
+
- `.evolith/evolith.yaml` — Evolith configuration
|
|
142
|
+
|
|
143
|
+
```bash
|
|
144
|
+
smart-cli docs [options]
|
|
145
|
+
|
|
146
|
+
Options:
|
|
147
|
+
-d, --dry-run Preview files without writing
|
|
148
|
+
-f, --force Overwrite existing files
|
|
149
|
+
-t, --template <type> Template type: default (all 4 files), minimal (README + AGENTS only)
|
|
150
|
+
--format <format> Output format: json (ADR-0073 envelope) or human (default)
|
|
52
151
|
```
|
|
53
152
|
|
|
54
|
-
|
|
153
|
+
**Examples:**
|
|
55
154
|
|
|
56
155
|
```bash
|
|
57
|
-
|
|
58
|
-
|
|
156
|
+
# Scaffold all documentation
|
|
157
|
+
smart-cli docs
|
|
158
|
+
|
|
159
|
+
# Preview what would be created
|
|
160
|
+
smart-cli docs --dry-run
|
|
161
|
+
|
|
162
|
+
# Minimal scaffold
|
|
163
|
+
smart-cli docs --template minimal
|
|
164
|
+
|
|
165
|
+
# Force overwrite and emit JSON envelope
|
|
166
|
+
smart-cli docs --force --format json
|
|
59
167
|
```
|
|
60
168
|
|
|
61
|
-
|
|
169
|
+
---
|
|
62
170
|
|
|
63
171
|
### validate
|
|
64
172
|
|
|
65
|
-
|
|
173
|
+
Validates repository compliance against Evolith standards. Supports multiple engines, rulesets, topologies, and SDLC phases.
|
|
66
174
|
|
|
67
175
|
```bash
|
|
68
176
|
smart-cli validate [options]
|
|
69
177
|
|
|
70
178
|
Options:
|
|
71
|
-
--satellite <path>
|
|
72
|
-
--core <path>
|
|
73
|
-
--format <format>
|
|
74
|
-
--output <file>
|
|
75
|
-
--ruleset <id>
|
|
76
|
-
--engine <engine>
|
|
179
|
+
-s, --satellite <path> Satellite repository path (default: cwd)
|
|
180
|
+
-c, --core <path> Evolith Core path (default: auto-detect)
|
|
181
|
+
-f, --format <format> Output format: json, table, yaml, markdown (default: markdown)
|
|
182
|
+
-o, --output <file> Write output to file
|
|
183
|
+
-r, --ruleset <id> Validate a specific ruleset (see table below)
|
|
184
|
+
-e, --engine <engine> Validation engine: native (default) or opa
|
|
185
|
+
-t, --topology <id> Topology to validate by canonical id, e.g. modular-monolith,
|
|
186
|
+
microservices, serverless, event-driven, agentic-ai (repeatable).
|
|
187
|
+
Legacy F1/F2/F3 aliases still map to the progressive axis.
|
|
188
|
+
-m, --manifest <path> SatelliteManifest JSON for end-to-end evaluation (GT-281 pipeline)
|
|
189
|
+
-p, --phase <phase> SDLC phase to evaluate: f1, f2, f3, f4, f5 (activates GT-281 pipeline)
|
|
190
|
+
--adr <id> Validate against a specific ADR rule set
|
|
191
|
+
--file <path> Validate a single file (ad-hoc mode)
|
|
192
|
+
--composable Use the composable GT-312 engine with intelligent mode resolution
|
|
77
193
|
```
|
|
78
194
|
|
|
79
|
-
**
|
|
80
|
-
|
|
195
|
+
**Available rulesets (`--ruleset`):**
|
|
196
|
+
|
|
197
|
+
| ID | Validates |
|
|
198
|
+
|----|-----------|
|
|
199
|
+
| `acl` | Access control layer rules |
|
|
200
|
+
| `open-core` | Open-core module boundaries |
|
|
201
|
+
| `inheritance` | Inheritance and extension contracts |
|
|
202
|
+
| `cli-release` | CLI release readiness |
|
|
203
|
+
| `cli-parity` | CLI command parity between versions |
|
|
204
|
+
| `evidence` | Gate evidence artifact completeness |
|
|
205
|
+
| `mcp` | MCP server contract compliance |
|
|
206
|
+
| `observability` | Logging, metrics, and tracing coverage |
|
|
207
|
+
| `adr-0002` | ADR-0002 specific rules |
|
|
208
|
+
|
|
209
|
+
**Available ADR rules (`--adr`):** `adr-0002`, `adr-0005`, `adr-0010`, `adr-0018`, `adr-0032`, `adr-0040`, `adr-0050`
|
|
210
|
+
|
|
211
|
+
**Validation engines:**
|
|
212
|
+
- `native` — built-in TypeScript engine (default, no external dependencies)
|
|
213
|
+
- `opa` — Open Policy Agent WebAssembly modules
|
|
214
|
+
|
|
215
|
+
**Composable engine (GT-312):**
|
|
216
|
+
When `--composable` is set, the CLI auto-resolves which validation modes to activate based on the provided context:
|
|
217
|
+
- `SdlcValidationMode` — activated when `--phase` is present
|
|
218
|
+
- `ArchitectureValidationMode` — activated when `--topology` is present
|
|
219
|
+
- `RulesetValidationMode` — activated when `--ruleset` is present
|
|
220
|
+
- `AdrValidationMode` — activated when `--adr` is present
|
|
221
|
+
- `AdhocValidationMode` — activated when `--file` is present
|
|
81
222
|
|
|
82
223
|
**Examples:**
|
|
83
224
|
|
|
84
225
|
```bash
|
|
85
|
-
# Basic
|
|
226
|
+
# Basic compliance check
|
|
86
227
|
smart-cli validate
|
|
87
228
|
|
|
88
|
-
# JSON output for
|
|
89
|
-
smart-cli validate --format json
|
|
229
|
+
# JSON output for CI
|
|
230
|
+
smart-cli validate --format json --output report.json
|
|
90
231
|
|
|
91
|
-
#
|
|
92
|
-
smart-cli validate --
|
|
232
|
+
# Validate a single topology
|
|
233
|
+
smart-cli validate --topology microservices
|
|
234
|
+
|
|
235
|
+
# Validate multiple topologies
|
|
236
|
+
smart-cli validate --topology modular-monolith --topology event-driven
|
|
93
237
|
|
|
94
|
-
# Validate specific ruleset
|
|
95
|
-
smart-cli validate --ruleset
|
|
238
|
+
# Validate a specific ruleset
|
|
239
|
+
smart-cli validate --ruleset evidence
|
|
240
|
+
|
|
241
|
+
# Full SDLC phase evaluation (GT-281 pipeline)
|
|
242
|
+
smart-cli validate --phase f1
|
|
243
|
+
|
|
244
|
+
# Validate with a SatelliteManifest
|
|
245
|
+
smart-cli validate --manifest ./satellite-manifest.json --phase f2
|
|
246
|
+
|
|
247
|
+
# Ad-hoc file validation
|
|
248
|
+
smart-cli validate --file src/domain/user.entity.ts --composable
|
|
249
|
+
|
|
250
|
+
# OPA engine
|
|
251
|
+
smart-cli validate --engine opa --ruleset acl
|
|
96
252
|
```
|
|
97
253
|
|
|
254
|
+
---
|
|
255
|
+
|
|
98
256
|
### adr
|
|
99
257
|
|
|
100
|
-
|
|
258
|
+
Manages Architecture Decision Records.
|
|
101
259
|
|
|
102
260
|
```bash
|
|
103
|
-
smart-cli adr
|
|
261
|
+
smart-cli adr [options]
|
|
104
262
|
|
|
105
|
-
|
|
106
|
-
create
|
|
107
|
-
list
|
|
108
|
-
get
|
|
109
|
-
update
|
|
110
|
-
|
|
263
|
+
Options:
|
|
264
|
+
-c, --create Create a new ADR (interactive)
|
|
265
|
+
-l, --list List all ADRs
|
|
266
|
+
-g, --get <id> Show a specific ADR
|
|
267
|
+
-u, --update <id> Update ADR status
|
|
268
|
+
-s, --status <status> New status: Accepted, Deprecated, Superseded, Amended
|
|
269
|
+
-r, --reason <text> Reason for status change
|
|
270
|
+
-m, --matrix Show ADR matrix summary
|
|
271
|
+
-d, --dry-run Preview without writing files
|
|
111
272
|
```
|
|
112
273
|
|
|
113
274
|
**Examples:**
|
|
114
275
|
|
|
115
276
|
```bash
|
|
116
|
-
#
|
|
117
|
-
smart-cli adr create
|
|
277
|
+
# Interactive creation
|
|
278
|
+
smart-cli adr --create
|
|
118
279
|
|
|
119
|
-
# List all
|
|
120
|
-
smart-cli adr list
|
|
280
|
+
# List all
|
|
281
|
+
smart-cli adr --list
|
|
121
282
|
|
|
122
|
-
#
|
|
123
|
-
smart-cli adr get ADR-0002
|
|
283
|
+
# Show specific ADR
|
|
284
|
+
smart-cli adr --get ADR-0002
|
|
285
|
+
|
|
286
|
+
# Update status
|
|
287
|
+
smart-cli adr --update ADR-0005 --status Accepted --reason "Approved in design review"
|
|
288
|
+
|
|
289
|
+
# Show matrix
|
|
290
|
+
smart-cli adr --matrix
|
|
124
291
|
```
|
|
125
292
|
|
|
293
|
+
---
|
|
294
|
+
|
|
126
295
|
### standards
|
|
127
296
|
|
|
128
|
-
|
|
297
|
+
Manages Evolith governance standards (architecture, governance, operations).
|
|
129
298
|
|
|
130
299
|
```bash
|
|
131
|
-
smart-cli standards
|
|
300
|
+
smart-cli standards [options]
|
|
132
301
|
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
list
|
|
136
|
-
get
|
|
137
|
-
validate
|
|
138
|
-
export
|
|
302
|
+
Options:
|
|
303
|
+
--init Initialize standards directory structure
|
|
304
|
+
-l, --list List all standards
|
|
305
|
+
-g, --get <id> Show a specific standard
|
|
306
|
+
-v, --validate <code> Validate code against standards
|
|
307
|
+
-e, --export <id> Export a standard
|
|
308
|
+
-f, --format <format> Export format: markdown, json
|
|
309
|
+
-c, --category <id> Filter by category
|
|
139
310
|
```
|
|
140
311
|
|
|
141
312
|
**Examples:**
|
|
142
313
|
|
|
143
314
|
```bash
|
|
144
|
-
# Initialize
|
|
145
|
-
smart-cli standards init
|
|
315
|
+
# Initialize
|
|
316
|
+
smart-cli standards --init
|
|
317
|
+
|
|
318
|
+
# List all standards
|
|
319
|
+
smart-cli standards --list
|
|
146
320
|
|
|
147
|
-
#
|
|
148
|
-
smart-cli standards list
|
|
321
|
+
# Filter by category
|
|
322
|
+
smart-cli standards --list --category governance
|
|
323
|
+
|
|
324
|
+
# Export as markdown
|
|
325
|
+
smart-cli standards --export STD-001 --format markdown
|
|
149
326
|
```
|
|
150
327
|
|
|
328
|
+
---
|
|
329
|
+
|
|
151
330
|
### agents
|
|
152
331
|
|
|
153
|
-
|
|
332
|
+
Manages Evolith BMAD agents — installs, lists, and removes governance agents in the satellite repository.
|
|
154
333
|
|
|
155
334
|
```bash
|
|
156
|
-
smart-cli agents
|
|
335
|
+
smart-cli agents [options]
|
|
157
336
|
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
remove
|
|
162
|
-
|
|
163
|
-
upgrade Upgrade agent
|
|
337
|
+
Options:
|
|
338
|
+
-l, --list List installed agents
|
|
339
|
+
-i, --install [name] Install a named agent (interactive if name omitted)
|
|
340
|
+
-r, --remove [name] Remove an installed agent
|
|
341
|
+
-d, --dry-run Preview without making changes
|
|
164
342
|
```
|
|
165
343
|
|
|
344
|
+
**Available agent templates:**
|
|
345
|
+
|
|
346
|
+
| Template | Description |
|
|
347
|
+
|---|---|
|
|
348
|
+
| `standard` | Default agent with basic governance rules (ACL-01 through ACL-06) |
|
|
349
|
+
| `minimal` | Lightweight agent with essential rules only |
|
|
350
|
+
| `full-compliance` | Full compliance agent with audit trail and approval chains |
|
|
351
|
+
|
|
166
352
|
**Examples:**
|
|
167
353
|
|
|
168
354
|
```bash
|
|
355
|
+
# List installed agents
|
|
356
|
+
smart-cli agents --list
|
|
357
|
+
|
|
169
358
|
# Interactive install
|
|
170
|
-
smart-cli agents install
|
|
359
|
+
smart-cli agents --install
|
|
360
|
+
|
|
361
|
+
# Install a specific template
|
|
362
|
+
smart-cli agents --install standard
|
|
363
|
+
smart-cli agents --install full-compliance
|
|
364
|
+
|
|
365
|
+
# Preview install without writing
|
|
366
|
+
smart-cli agents --install standard --dry-run
|
|
367
|
+
|
|
368
|
+
# Remove an agent
|
|
369
|
+
smart-cli agents --remove minimal
|
|
370
|
+
```
|
|
371
|
+
|
|
372
|
+
---
|
|
171
373
|
|
|
172
|
-
|
|
173
|
-
|
|
374
|
+
### scaffold
|
|
375
|
+
|
|
376
|
+
Scaffolds the Evolith architecture in the current workspace **along the progressive axis** — phase 1 (`modular-monolith`), phase 2 (`distributed-modules`) and phase 3 (`microservices`). Phases 2–3 are generated as a Module Federation host + remotes (microfrontends), with configurable frontend frameworks, ORMs, and domain names. (`F1/F2/F3` remain accepted as legacy aliases for phases 1/2/3.)
|
|
377
|
+
|
|
378
|
+
```bash
|
|
379
|
+
smart-cli scaffold [options]
|
|
380
|
+
|
|
381
|
+
Options:
|
|
382
|
+
--frontend <framework> Frontend framework: react, angular
|
|
383
|
+
--orm <orm> ORM: prisma, typeorm
|
|
384
|
+
-d, --dry-run Preview without writing files
|
|
385
|
+
-f, --format <format> Output format: json (ADR-0073 envelope) or human (default)
|
|
386
|
+
--phase <phase> Architecture phase: 1 (F1), 2 (F2), 3 (F3) — required with --format json
|
|
387
|
+
--api-name <name> Backend API app name (default: tracker-api)
|
|
388
|
+
--web-app-name <name> Web app name for phase 1 (default: tracker-web)
|
|
389
|
+
--host-name <name> Host app name for phase 2/3 (default: tracker-host)
|
|
390
|
+
--remotes <names> Comma-separated remote names for phase 2/3
|
|
391
|
+
--domains <names> Comma-separated domain names to generate
|
|
174
392
|
```
|
|
175
393
|
|
|
394
|
+
**Examples:**
|
|
395
|
+
|
|
396
|
+
```bash
|
|
397
|
+
# Scaffold F1 (Monolithic Modular) interactively
|
|
398
|
+
smart-cli scaffold
|
|
399
|
+
|
|
400
|
+
# Scaffold F1 with React + Prisma, dry run
|
|
401
|
+
smart-cli scaffold --phase 1 --frontend react --orm prisma --dry-run
|
|
402
|
+
|
|
403
|
+
# Scaffold F2 (Microfrontend) with custom names
|
|
404
|
+
smart-cli scaffold --phase 2 --host-name shell-app --remotes catalog,checkout
|
|
405
|
+
|
|
406
|
+
# Scaffold F3 with custom domains and JSON output
|
|
407
|
+
smart-cli scaffold --phase 3 --domains orders,payments,users --format json
|
|
408
|
+
|
|
409
|
+
# Generate specific domains only
|
|
410
|
+
smart-cli scaffold --domains auth,notifications
|
|
411
|
+
```
|
|
412
|
+
|
|
413
|
+
---
|
|
414
|
+
|
|
415
|
+
### drift
|
|
416
|
+
|
|
417
|
+
Detects architecture drift between the declared topology level and the actual codebase structure. Stores history for trend analysis.
|
|
418
|
+
|
|
419
|
+
```bash
|
|
420
|
+
smart-cli drift [options]
|
|
421
|
+
|
|
422
|
+
Options:
|
|
423
|
+
-p, --path <path> Project path to analyze (default: cwd)
|
|
424
|
+
-l, --level <level> Declared architecture level: F1, F2, F3
|
|
425
|
+
--json Output as raw JSON
|
|
426
|
+
--history Show drift scan history (last 10 scans)
|
|
427
|
+
--trend Show drift trend analysis (improving / stable / degrading)
|
|
428
|
+
-f, --format <fmt> Output format: json (ADR-0073 envelope) or human (default)
|
|
429
|
+
```
|
|
430
|
+
|
|
431
|
+
The drift report includes:
|
|
432
|
+
- **Declared level** vs **detected level**
|
|
433
|
+
- **Overall score** (0–100%)
|
|
434
|
+
- **Drift severity**: critical, high, medium, low, none
|
|
435
|
+
- **New violations** — introduced since last scan
|
|
436
|
+
- **Persistent violations** — unresolved across multiple scans
|
|
437
|
+
- **Resolved violations** — fixed since last scan
|
|
438
|
+
|
|
439
|
+
**Examples:**
|
|
440
|
+
|
|
441
|
+
```bash
|
|
442
|
+
# Detect drift (auto-detects declared level from evolith.yaml)
|
|
443
|
+
smart-cli drift
|
|
444
|
+
|
|
445
|
+
# Specify declared level explicitly
|
|
446
|
+
smart-cli drift --level F2
|
|
447
|
+
|
|
448
|
+
# Analyze a different project path
|
|
449
|
+
smart-cli drift --path ../my-satellite
|
|
450
|
+
|
|
451
|
+
# Show historical scans
|
|
452
|
+
smart-cli drift --history
|
|
453
|
+
|
|
454
|
+
# Show trend (requires at least 2 prior scans)
|
|
455
|
+
smart-cli drift --trend
|
|
456
|
+
|
|
457
|
+
# JSON output for CI
|
|
458
|
+
smart-cli drift --format json
|
|
459
|
+
```
|
|
460
|
+
|
|
461
|
+
---
|
|
462
|
+
|
|
463
|
+
### gate
|
|
464
|
+
|
|
465
|
+
Evaluates SDLC phase gates and emits ADR-0073 `GateEvidence` artifacts. Supports webhook delivery and multi-actor contexts.
|
|
466
|
+
|
|
467
|
+
```bash
|
|
468
|
+
smart-cli gate <action> [options]
|
|
469
|
+
|
|
470
|
+
Actions:
|
|
471
|
+
evaluate Evaluate gates for the specified phase
|
|
472
|
+
|
|
473
|
+
Options:
|
|
474
|
+
-p, --phase <phase> SDLC phase: discovery, design, construction, qa, release
|
|
475
|
+
--project <path> Satellite project path (default: cwd)
|
|
476
|
+
-c, --core <path> Evolith Core path (default: auto-detect)
|
|
477
|
+
-f, --format <format> Output format: json (ADR-0073 envelope) or human (default)
|
|
478
|
+
--evaluated-by <actor> Actor class: human (default), agent, ci
|
|
479
|
+
--initiative <id> Initiative context — echoed in meta.context
|
|
480
|
+
--tenant <id> Tenant context — echoed in meta.context
|
|
481
|
+
--webhook-url <url> POST gate evidence to this URL upon completion
|
|
482
|
+
```
|
|
483
|
+
|
|
484
|
+
**Examples:**
|
|
485
|
+
|
|
486
|
+
```bash
|
|
487
|
+
# Evaluate design phase gates
|
|
488
|
+
smart-cli gate evaluate --phase design
|
|
489
|
+
|
|
490
|
+
# CI evaluation with JSON output
|
|
491
|
+
smart-cli gate evaluate --phase construction --evaluated-by ci --format json
|
|
492
|
+
|
|
493
|
+
# Agent-driven evaluation with webhook delivery
|
|
494
|
+
smart-cli gate evaluate --phase qa --evaluated-by agent --webhook-url https://ci.example.com/hooks/evolith
|
|
495
|
+
|
|
496
|
+
# Multi-tenant context
|
|
497
|
+
smart-cli gate evaluate --phase release --tenant acme --initiative Q3-launch
|
|
498
|
+
```
|
|
499
|
+
|
|
500
|
+
---
|
|
501
|
+
|
|
502
|
+
### phase
|
|
503
|
+
|
|
504
|
+
Proposes a phase transition between SDLC phases. Emits a transition proposal artifact.
|
|
505
|
+
|
|
506
|
+
```bash
|
|
507
|
+
smart-cli phase advance [options]
|
|
508
|
+
|
|
509
|
+
Options:
|
|
510
|
+
--from <phase> Current SDLC phase
|
|
511
|
+
--to <phase> Target SDLC phase
|
|
512
|
+
--project <path> Satellite project path (default: cwd)
|
|
513
|
+
-c, --core <path> Evolith Core path (default: auto-detect)
|
|
514
|
+
-f, --format <format> Output format: json (ADR-0073 envelope) or human (default)
|
|
515
|
+
--evaluated-by <actor> Actor class: human, agent (default), ci
|
|
516
|
+
--initiative <id> Initiative context — echoed in meta.context
|
|
517
|
+
--tenant <id> Tenant context — echoed in meta.context
|
|
518
|
+
--webhook-url <url> POST the transition proposal to this URL
|
|
519
|
+
```
|
|
520
|
+
|
|
521
|
+
**Examples:**
|
|
522
|
+
|
|
523
|
+
```bash
|
|
524
|
+
# Propose advancing from design to construction
|
|
525
|
+
smart-cli phase advance --from design --to construction
|
|
526
|
+
|
|
527
|
+
# Agent-driven with JSON output
|
|
528
|
+
smart-cli phase advance --from construction --to qa --evaluated-by agent --format json
|
|
529
|
+
|
|
530
|
+
# With webhook and tenant context
|
|
531
|
+
smart-cli phase advance --from qa --to release --webhook-url https://ci.example.com/hooks/evolith --tenant acme
|
|
532
|
+
```
|
|
533
|
+
|
|
534
|
+
---
|
|
535
|
+
|
|
536
|
+
### sdlc
|
|
537
|
+
|
|
538
|
+
Parent command that orchestrates SDLC artifacts and lifecycle transitions. Run without a subcommand to see available subcommands.
|
|
539
|
+
|
|
540
|
+
```bash
|
|
541
|
+
smart-cli sdlc <subcommand>
|
|
542
|
+
|
|
543
|
+
Subcommands:
|
|
544
|
+
handoff Transition artifacts between phases with interactive guided flow
|
|
545
|
+
generate Generate Hexagonal Architecture scaffold from a DDD model file
|
|
546
|
+
gate-status Display phase gate validation status and DORA metrics
|
|
547
|
+
```
|
|
548
|
+
|
|
549
|
+
#### sdlc handoff
|
|
550
|
+
|
|
551
|
+
Guides an interactive phase transition, validates gates, and generates evidence artifacts.
|
|
552
|
+
|
|
553
|
+
```bash
|
|
554
|
+
smart-cli sdlc handoff [options]
|
|
555
|
+
|
|
556
|
+
Options:
|
|
557
|
+
-f, --from <phase> Source phase (phase-0, phase-1, etc.)
|
|
558
|
+
-t, --to <phase> Target phase (phase-0, phase-1, etc.)
|
|
559
|
+
-a, --artifacts Generate evidence artifacts
|
|
560
|
+
--validate Validate phase gates before handoff
|
|
561
|
+
--force Force handoff even if gates fail
|
|
562
|
+
```
|
|
563
|
+
|
|
564
|
+
**Examples:**
|
|
565
|
+
|
|
566
|
+
```bash
|
|
567
|
+
# Interactive handoff wizard
|
|
568
|
+
smart-cli sdlc handoff
|
|
569
|
+
|
|
570
|
+
# Handoff from phase-0 to phase-1 with gate validation
|
|
571
|
+
smart-cli sdlc handoff --from phase-0 --to phase-1 --validate
|
|
572
|
+
|
|
573
|
+
# Generate artifacts and force even if gates fail
|
|
574
|
+
smart-cli sdlc handoff --from phase-1 --to phase-2 --artifacts --force
|
|
575
|
+
```
|
|
576
|
+
|
|
577
|
+
#### sdlc generate
|
|
578
|
+
|
|
579
|
+
Generates a complete Hexagonal Architecture scaffold by reading a Mermaid `classDiagram` from a Markdown DDD model file.
|
|
580
|
+
|
|
581
|
+
```bash
|
|
582
|
+
smart-cli sdlc generate [options]
|
|
583
|
+
|
|
584
|
+
Options:
|
|
585
|
+
-f, --from <path> Path to the Markdown file containing the Mermaid classDiagram
|
|
586
|
+
-o, --output <dir> Target directory for generated files (default: cwd)
|
|
587
|
+
--dry-run Print what would be generated without writing files
|
|
588
|
+
```
|
|
589
|
+
|
|
590
|
+
**Examples:**
|
|
591
|
+
|
|
592
|
+
```bash
|
|
593
|
+
# Generate from a DDD model file
|
|
594
|
+
smart-cli sdlc generate --from docs/domain-model.md
|
|
595
|
+
|
|
596
|
+
# Preview without writing
|
|
597
|
+
smart-cli sdlc generate --from docs/domain-model.md --dry-run
|
|
598
|
+
|
|
599
|
+
# Output to a specific directory
|
|
600
|
+
smart-cli sdlc generate --from docs/domain-model.md --output src/domain
|
|
601
|
+
```
|
|
602
|
+
|
|
603
|
+
The input file must contain a fenced Mermaid block with a `classDiagram`. The generator creates entities, value objects, repositories, use cases, and ports following hexagonal architecture conventions.
|
|
604
|
+
|
|
605
|
+
#### sdlc gate-status
|
|
606
|
+
|
|
607
|
+
Displays the current SDLC phase gate validation status along with DORA metrics calculated from git history.
|
|
608
|
+
|
|
609
|
+
```bash
|
|
610
|
+
smart-cli sdlc gate-status [options]
|
|
611
|
+
|
|
612
|
+
Options:
|
|
613
|
+
--since <days> Days of git history to analyze for DORA metrics (default: 90)
|
|
614
|
+
```
|
|
615
|
+
|
|
616
|
+
DORA metrics reported:
|
|
617
|
+
- **Deployment Frequency** — how often the team deploys to production
|
|
618
|
+
- **Lead Time for Changes** — time from commit to production
|
|
619
|
+
- **Change Failure Rate** — percentage of deployments causing failures
|
|
620
|
+
- **Time to Restore** — time to recover from a production failure
|
|
621
|
+
|
|
622
|
+
**Examples:**
|
|
623
|
+
|
|
624
|
+
```bash
|
|
625
|
+
# Current gate status with 90-day DORA window
|
|
626
|
+
smart-cli sdlc gate-status
|
|
627
|
+
|
|
628
|
+
# Analyze last 30 days only
|
|
629
|
+
smart-cli sdlc gate-status --since 30
|
|
630
|
+
```
|
|
631
|
+
|
|
632
|
+
---
|
|
633
|
+
|
|
634
|
+
### profile
|
|
635
|
+
|
|
636
|
+
Manages named CLI profiles. Each profile stores a set of defaults (satellite path, core path, tenant, initiative) that are applied automatically to subsequent commands.
|
|
637
|
+
|
|
638
|
+
```bash
|
|
639
|
+
smart-cli profile <action> [options]
|
|
640
|
+
|
|
641
|
+
Actions:
|
|
642
|
+
current Show the active profile
|
|
643
|
+
list List all profiles
|
|
644
|
+
create Create a new profile
|
|
645
|
+
switch Switch to a named profile
|
|
646
|
+
delete Delete a profile
|
|
647
|
+
|
|
648
|
+
Options:
|
|
649
|
+
-n, --name <name> Profile name (used with create and switch)
|
|
650
|
+
```
|
|
651
|
+
|
|
652
|
+
**Examples:**
|
|
653
|
+
|
|
654
|
+
```bash
|
|
655
|
+
# Show current profile
|
|
656
|
+
smart-cli profile current
|
|
657
|
+
|
|
658
|
+
# List all profiles
|
|
659
|
+
smart-cli profile list
|
|
660
|
+
|
|
661
|
+
# Create a profile interactively
|
|
662
|
+
smart-cli profile create
|
|
663
|
+
|
|
664
|
+
# Create with a name
|
|
665
|
+
smart-cli profile create --name staging
|
|
666
|
+
|
|
667
|
+
# Switch profile
|
|
668
|
+
smart-cli profile switch --name staging
|
|
669
|
+
|
|
670
|
+
# Delete a profile
|
|
671
|
+
smart-cli profile delete --name staging
|
|
672
|
+
```
|
|
673
|
+
|
|
674
|
+
---
|
|
675
|
+
|
|
676
|
+
### fixtures
|
|
677
|
+
|
|
678
|
+
Seeds reproducible fixture files for demos, tests, and onboarding. The first step recommended in any new environment.
|
|
679
|
+
|
|
680
|
+
```bash
|
|
681
|
+
smart-cli fixtures [type] [options]
|
|
682
|
+
|
|
683
|
+
Arguments:
|
|
684
|
+
type Fixture type (default: demo)
|
|
685
|
+
|
|
686
|
+
Options:
|
|
687
|
+
-d, --dir <directory> Target directory (default: cwd)
|
|
688
|
+
-n, --dry-run Preview files without writing
|
|
689
|
+
-t, --type <type> Fixture type: demo, adr, ruleset, evolith, full
|
|
690
|
+
```
|
|
691
|
+
|
|
692
|
+
**Fixture types:**
|
|
693
|
+
|
|
694
|
+
| Type | Contents |
|
|
695
|
+
|------|----------|
|
|
696
|
+
| `demo` | Sample project with evolith.yaml and demo structure |
|
|
697
|
+
| `adr` | Pre-populated ADR entries |
|
|
698
|
+
| `ruleset` | Example rulesets (domain, naming, file conventions) |
|
|
699
|
+
| `evolith` | Full Evolith configuration files |
|
|
700
|
+
| `full` | All of the above combined |
|
|
701
|
+
|
|
702
|
+
**Examples:**
|
|
703
|
+
|
|
704
|
+
```bash
|
|
705
|
+
# Seed a demo project (fastest way to explore the CLI)
|
|
706
|
+
smart-cli fixtures --type demo
|
|
707
|
+
|
|
708
|
+
# Preview what would be created
|
|
709
|
+
smart-cli fixtures --type full --dry-run
|
|
710
|
+
|
|
711
|
+
# Seed ADR fixtures into a specific directory
|
|
712
|
+
smart-cli fixtures --type adr --dir ./reference/architecture/adrs
|
|
713
|
+
```
|
|
714
|
+
|
|
715
|
+
---
|
|
716
|
+
|
|
717
|
+
### api
|
|
718
|
+
|
|
719
|
+
Browses and inspects the Evolith API surface: MCP tools, resources, schemas, and CLI commands.
|
|
720
|
+
|
|
721
|
+
```bash
|
|
722
|
+
smart-cli api [options]
|
|
723
|
+
|
|
724
|
+
Options:
|
|
725
|
+
-l, --list List all available API operations
|
|
726
|
+
-i, --inspect <name> Inspect a specific operation, resource, or command
|
|
727
|
+
-c, --category <category> Filter by category: tools, resources, schemas, commands
|
|
728
|
+
```
|
|
729
|
+
|
|
730
|
+
**Examples:**
|
|
731
|
+
|
|
732
|
+
```bash
|
|
733
|
+
# List everything
|
|
734
|
+
smart-cli api --list
|
|
735
|
+
|
|
736
|
+
# Filter MCP tools only
|
|
737
|
+
smart-cli api --list --category tools
|
|
738
|
+
|
|
739
|
+
# Inspect a specific tool
|
|
740
|
+
smart-cli api --inspect evolith-validate
|
|
741
|
+
|
|
742
|
+
# Inspect a CLI command schema
|
|
743
|
+
smart-cli api --inspect validate --category commands
|
|
744
|
+
```
|
|
745
|
+
|
|
746
|
+
---
|
|
747
|
+
|
|
748
|
+
### update
|
|
749
|
+
|
|
750
|
+
Checks for and applies CLI updates.
|
|
751
|
+
|
|
752
|
+
```bash
|
|
753
|
+
smart-cli update [options]
|
|
754
|
+
|
|
755
|
+
Options:
|
|
756
|
+
-c, --current Show the current installed CLI version
|
|
757
|
+
--check Check for available updates without installing
|
|
758
|
+
-i, --install Install the latest available version
|
|
759
|
+
```
|
|
760
|
+
|
|
761
|
+
**Examples:**
|
|
762
|
+
|
|
763
|
+
```bash
|
|
764
|
+
# Show current version
|
|
765
|
+
smart-cli update --current
|
|
766
|
+
|
|
767
|
+
# Check for updates
|
|
768
|
+
smart-cli update --check
|
|
769
|
+
|
|
770
|
+
# Install latest
|
|
771
|
+
smart-cli update --install
|
|
772
|
+
```
|
|
773
|
+
|
|
774
|
+
---
|
|
775
|
+
|
|
776
|
+
### upgrade
|
|
777
|
+
|
|
778
|
+
Upgrades a satellite repository to the next progressive-axis topology or governance version.
|
|
779
|
+
|
|
780
|
+
```bash
|
|
781
|
+
smart-cli upgrade [options]
|
|
782
|
+
|
|
783
|
+
Options:
|
|
784
|
+
--dry-run Simulate the upgrade without making changes
|
|
785
|
+
--target <target> Target governance version or topology (e.g., F2, 1.1.0)
|
|
786
|
+
--force Skip eligibility checks
|
|
787
|
+
```
|
|
788
|
+
|
|
789
|
+
**Examples:**
|
|
790
|
+
|
|
791
|
+
```bash
|
|
792
|
+
# Preview upgrade to the next topology
|
|
793
|
+
smart-cli upgrade --dry-run
|
|
794
|
+
|
|
795
|
+
# Upgrade to F2
|
|
796
|
+
smart-cli upgrade --target F2
|
|
797
|
+
|
|
798
|
+
# Force upgrade ignoring eligibility checks
|
|
799
|
+
smart-cli upgrade --target F3 --force
|
|
800
|
+
```
|
|
801
|
+
|
|
802
|
+
---
|
|
803
|
+
|
|
804
|
+
### alias
|
|
805
|
+
|
|
806
|
+
Manages shorthand aliases for CLI commands.
|
|
807
|
+
|
|
808
|
+
```bash
|
|
809
|
+
smart-cli alias [options]
|
|
810
|
+
|
|
811
|
+
Options:
|
|
812
|
+
--add <alias=command> Add a new alias (format: name=command)
|
|
813
|
+
--remove <alias> Remove an alias
|
|
814
|
+
--list List all aliases
|
|
815
|
+
```
|
|
816
|
+
|
|
817
|
+
**Examples:**
|
|
818
|
+
|
|
819
|
+
```bash
|
|
820
|
+
# Add an alias
|
|
821
|
+
smart-cli alias --add "v=validate --format table"
|
|
822
|
+
|
|
823
|
+
# List aliases
|
|
824
|
+
smart-cli alias --list
|
|
825
|
+
|
|
826
|
+
# Remove an alias
|
|
827
|
+
smart-cli alias --remove v
|
|
828
|
+
```
|
|
829
|
+
|
|
830
|
+
---
|
|
831
|
+
|
|
176
832
|
### history
|
|
177
833
|
|
|
178
|
-
|
|
834
|
+
Views and manages CLI command execution history.
|
|
179
835
|
|
|
180
836
|
```bash
|
|
181
837
|
smart-cli history [options]
|
|
182
838
|
|
|
183
839
|
Options:
|
|
184
|
-
--list
|
|
185
|
-
--get <id>
|
|
186
|
-
--search <query>
|
|
187
|
-
|
|
188
|
-
|
|
840
|
+
-l, --list List recent commands
|
|
841
|
+
-g, --get <id> Show command details by ID
|
|
842
|
+
-s, --search <query> Search history
|
|
843
|
+
--stats Show history statistics
|
|
844
|
+
--clear Clear all history
|
|
845
|
+
-n, --limit <number> Number of entries to show (default: 20)
|
|
846
|
+
--replay <id> Show the command string for a given history entry
|
|
189
847
|
```
|
|
190
848
|
|
|
191
849
|
**Examples:**
|
|
@@ -194,61 +852,103 @@ Options:
|
|
|
194
852
|
# Show last 20 commands
|
|
195
853
|
smart-cli history
|
|
196
854
|
|
|
855
|
+
# Show last 50
|
|
856
|
+
smart-cli history --limit 50
|
|
857
|
+
|
|
858
|
+
# Search for validate runs
|
|
859
|
+
smart-cli history --search validate
|
|
860
|
+
|
|
197
861
|
# Show statistics
|
|
198
862
|
smart-cli history --stats
|
|
199
863
|
|
|
200
|
-
#
|
|
201
|
-
smart-cli history --
|
|
864
|
+
# Clear history
|
|
865
|
+
smart-cli history --clear
|
|
202
866
|
```
|
|
203
867
|
|
|
868
|
+
---
|
|
869
|
+
|
|
204
870
|
### completion
|
|
205
871
|
|
|
206
|
-
|
|
872
|
+
Generates and installs shell completion scripts. Also provides shell hook functions for context and status display.
|
|
207
873
|
|
|
208
874
|
```bash
|
|
209
|
-
smart-cli completion
|
|
875
|
+
smart-cli completion [options]
|
|
210
876
|
|
|
211
|
-
|
|
877
|
+
Options:
|
|
878
|
+
--install <shell> Install completion for specified shell: bash, zsh, fish
|
|
879
|
+
--shell <shell> Generate completion script for specified shell (prints to stdout)
|
|
880
|
+
--hooks Generate shell hook functions for context/status display
|
|
212
881
|
```
|
|
213
882
|
|
|
214
883
|
**Examples:**
|
|
215
884
|
|
|
216
885
|
```bash
|
|
886
|
+
# Install zsh completion
|
|
887
|
+
smart-cli completion --install zsh
|
|
888
|
+
|
|
217
889
|
# Install bash completion
|
|
218
890
|
smart-cli completion --install bash
|
|
219
891
|
|
|
220
|
-
# Install
|
|
221
|
-
smart-cli completion --install
|
|
892
|
+
# Install fish completion
|
|
893
|
+
smart-cli completion --install fish
|
|
894
|
+
|
|
895
|
+
# Print completion script to stdout (for manual setup)
|
|
896
|
+
smart-cli completion --shell zsh
|
|
897
|
+
|
|
898
|
+
# Generate hook functions
|
|
899
|
+
smart-cli completion --hooks
|
|
222
900
|
```
|
|
223
901
|
|
|
224
|
-
|
|
902
|
+
Pre-built scripts are also included in the package under `shell/`:
|
|
903
|
+
- `shell/completion.bash`
|
|
904
|
+
- `shell/completion.zsh`
|
|
905
|
+
- `shell/completion.fish`
|
|
906
|
+
- `shell/hooks.bash`
|
|
907
|
+
- `shell/hooks.zsh`
|
|
908
|
+
|
|
909
|
+
---
|
|
225
910
|
|
|
226
|
-
|
|
911
|
+
## MCP Server
|
|
227
912
|
|
|
228
|
-
|
|
913
|
+
The Evolith CLI includes a production-ready MCP server for AI agent integration.
|
|
914
|
+
|
|
915
|
+
### Starting the Server
|
|
229
916
|
|
|
230
917
|
```bash
|
|
918
|
+
# stdio transport (default — for Cursor, Claude Desktop)
|
|
231
919
|
smart-cli mcp serve
|
|
920
|
+
|
|
921
|
+
# HTTP transport (for remote or containerized deployments)
|
|
922
|
+
smart-cli mcp serve --transport http --port 3000
|
|
923
|
+
|
|
924
|
+
# HTTP with API key authentication
|
|
925
|
+
smart-cli mcp serve --transport http --port 3000 --api-key <secret>
|
|
232
926
|
```
|
|
233
927
|
|
|
234
|
-
|
|
928
|
+
```bash
|
|
929
|
+
smart-cli mcp serve [options]
|
|
235
930
|
|
|
236
|
-
|
|
931
|
+
Options:
|
|
932
|
+
-t, --transport <type> Transport: stdio (default) or http
|
|
933
|
+
-p, --port <number> HTTP server port (default: 3000)
|
|
934
|
+
--api-key <key> API key for HTTP transport authentication
|
|
935
|
+
--no-confirm Skip confirmation prompts
|
|
936
|
+
```
|
|
237
937
|
|
|
238
|
-
|
|
938
|
+
### Smoke Test
|
|
239
939
|
|
|
240
940
|
```bash
|
|
241
941
|
npm run mcp:smoke
|
|
242
942
|
```
|
|
243
943
|
|
|
244
|
-
|
|
944
|
+
Verifies `initialize`, `tools/list`, `resources/list`, `prompts/list`, and a real `tools/call` end-to-end through the built CLI.
|
|
245
945
|
|
|
246
946
|
### Available MCP Tools
|
|
247
947
|
|
|
248
948
|
| Tool | Description |
|
|
249
949
|
|------|-------------|
|
|
250
950
|
| `evolith-validate` | Validate repository compliance |
|
|
251
|
-
| `evolith-agent-install` | Install new agent |
|
|
951
|
+
| `evolith-agent-install` | Install a new BMAD agent |
|
|
252
952
|
| `evolith-agent-list` | List installed agents |
|
|
253
953
|
| `evolith-agent-validate` | Validate agent ruleset |
|
|
254
954
|
| `evolith-agent-upgrade` | Upgrade an existing agent |
|
|
@@ -256,8 +956,8 @@ The smoke verifies `initialize`, `tools/list`, `resources/list`, `prompts/list`,
|
|
|
256
956
|
| `evolith-architecture-validate` | Validate architecture (F1/F2/F3) with optional deep analysis |
|
|
257
957
|
| `evolith-sdlc-handoff` | Generate phase handoff artifact manifest |
|
|
258
958
|
| `evolith-sdlc-status` | Show SDLC phase gate status |
|
|
259
|
-
| `evolith-config-get` | Get configuration value from `evolith.yaml` |
|
|
260
|
-
| `evolith-config-set` | Set configuration value in `evolith.yaml` |
|
|
959
|
+
| `evolith-config-get` | Get a configuration value from `evolith.yaml` |
|
|
960
|
+
| `evolith-config-set` | Set a configuration value in `evolith.yaml` |
|
|
261
961
|
| `evolith-metrics` | Get MCP server metrics |
|
|
262
962
|
| `evolith-moscow-create` | Create a new MoSCoW prioritization analysis |
|
|
263
963
|
| `evolith-moscow-load` | Load an existing MoSCoW analysis |
|
|
@@ -297,37 +997,63 @@ Add to `~/Library/Application Support/Claude/claude_desktop_config.json`:
|
|
|
297
997
|
}
|
|
298
998
|
```
|
|
299
999
|
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
When integrated with an AI agent, you can have conversations like:
|
|
1000
|
+
### HTTP Transport (remote deployment)
|
|
303
1001
|
|
|
1002
|
+
```json
|
|
1003
|
+
{
|
|
1004
|
+
"mcpServers": {
|
|
1005
|
+
"evolith": {
|
|
1006
|
+
"url": "http://localhost:3000",
|
|
1007
|
+
"headers": { "x-api-key": "<secret>" }
|
|
1008
|
+
}
|
|
1009
|
+
}
|
|
1010
|
+
}
|
|
304
1011
|
```
|
|
305
|
-
You: Validate my repository
|
|
306
|
-
Agent: Let me run the validation...
|
|
307
1012
|
|
|
308
|
-
|
|
309
|
-
path: '/user/project',
|
|
310
|
-
format: 'summary'
|
|
311
|
-
})
|
|
1013
|
+
---
|
|
312
1014
|
|
|
313
|
-
|
|
314
|
-
Rules checked: 12
|
|
315
|
-
All gates passed
|
|
1015
|
+
## CI/CD Integration
|
|
316
1016
|
|
|
317
|
-
|
|
318
|
-
Agent: Let me check the phase gate status...
|
|
1017
|
+
### SDLC Phase Validation (GT-281 Pipeline)
|
|
319
1018
|
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
1019
|
+
```bash
|
|
1020
|
+
# Validate a specific SDLC phase with full gate evaluation
|
|
1021
|
+
smart-cli validate --phase f2 --format json --output gate-evidence.json
|
|
1022
|
+
|
|
1023
|
+
# With explicit SatelliteManifest
|
|
1024
|
+
smart-cli validate --manifest ./satellite-manifest.json --phase f3 --format json
|
|
1025
|
+
```
|
|
323
1026
|
|
|
324
|
-
|
|
325
|
-
|
|
1027
|
+
### Gate Evaluation in CI
|
|
1028
|
+
|
|
1029
|
+
```bash
|
|
1030
|
+
# Evaluate construction gates from CI
|
|
1031
|
+
smart-cli gate evaluate \
|
|
1032
|
+
--phase construction \
|
|
1033
|
+
--evaluated-by ci \
|
|
1034
|
+
--format json \
|
|
1035
|
+
--webhook-url $WEBHOOK_URL
|
|
326
1036
|
```
|
|
327
1037
|
|
|
1038
|
+
### GitHub Actions Example
|
|
1039
|
+
|
|
1040
|
+
```yaml
|
|
1041
|
+
- name: Evolith Gate Evaluation
|
|
1042
|
+
run: |
|
|
1043
|
+
smart-cli gate evaluate \
|
|
1044
|
+
--phase ${{ env.SDLC_PHASE }} \
|
|
1045
|
+
--evaluated-by ci \
|
|
1046
|
+
--format json \
|
|
1047
|
+
--output gate-evidence.json
|
|
1048
|
+
env:
|
|
1049
|
+
SDLC_PHASE: construction
|
|
1050
|
+
```
|
|
1051
|
+
|
|
1052
|
+
---
|
|
1053
|
+
|
|
328
1054
|
## Configuration
|
|
329
1055
|
|
|
330
|
-
Evolith uses
|
|
1056
|
+
Evolith uses `evolith.yaml` in `.evolith/` or the repository root:
|
|
331
1057
|
|
|
332
1058
|
```yaml
|
|
333
1059
|
coreRef:
|
|
@@ -346,96 +1072,113 @@ product:
|
|
|
346
1072
|
runtime: "typescript"
|
|
347
1073
|
```
|
|
348
1074
|
|
|
1075
|
+
### Multi-Environment Profiles
|
|
1076
|
+
|
|
1077
|
+
```bash
|
|
1078
|
+
# Create a profile per environment
|
|
1079
|
+
smart-cli profile create --name local
|
|
1080
|
+
smart-cli profile create --name staging
|
|
1081
|
+
smart-cli profile create --name ci
|
|
1082
|
+
|
|
1083
|
+
# Switch before running commands
|
|
1084
|
+
smart-cli profile switch --name staging
|
|
1085
|
+
smart-cli validate
|
|
1086
|
+
```
|
|
1087
|
+
|
|
1088
|
+
---
|
|
1089
|
+
|
|
349
1090
|
## Output Formats
|
|
350
1091
|
|
|
351
|
-
|
|
1092
|
+
Most commands accept `--format`:
|
|
352
1093
|
|
|
353
1094
|
```bash
|
|
354
|
-
#
|
|
355
|
-
smart-cli validate
|
|
1095
|
+
# Human-readable (default for most commands)
|
|
1096
|
+
smart-cli validate
|
|
1097
|
+
|
|
1098
|
+
# Markdown
|
|
1099
|
+
smart-cli validate --format markdown
|
|
356
1100
|
|
|
357
|
-
# Table
|
|
1101
|
+
# Table
|
|
358
1102
|
smart-cli validate --format table
|
|
359
1103
|
|
|
360
|
-
# YAML
|
|
1104
|
+
# YAML
|
|
361
1105
|
smart-cli validate --format yaml
|
|
362
1106
|
|
|
363
|
-
#
|
|
364
|
-
smart-cli validate --format
|
|
1107
|
+
# JSON (ADR-0073 envelope — for automation and CI)
|
|
1108
|
+
smart-cli validate --format json
|
|
365
1109
|
```
|
|
366
1110
|
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
### Command not found
|
|
1111
|
+
---
|
|
370
1112
|
|
|
371
|
-
|
|
1113
|
+
## Troubleshooting
|
|
372
1114
|
|
|
1115
|
+
**Command not found after install:**
|
|
373
1116
|
```bash
|
|
374
|
-
# Add to ~/.bashrc or ~/.zshrc
|
|
375
1117
|
export PATH="$(npm config get prefix)/bin:$PATH"
|
|
376
1118
|
```
|
|
377
1119
|
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
Ensure the MCP server is running:
|
|
381
|
-
|
|
1120
|
+
**Validation fails with no evolith.yaml:**
|
|
382
1121
|
```bash
|
|
383
|
-
smart-cli
|
|
1122
|
+
smart-cli docs # scaffold evolith.yaml and base docs
|
|
1123
|
+
smart-cli validate
|
|
384
1124
|
```
|
|
385
1125
|
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
Check your `evolith.yaml` exists and is valid:
|
|
389
|
-
|
|
1126
|
+
**MCP server not responding:**
|
|
390
1127
|
```bash
|
|
391
|
-
|
|
392
|
-
smart-cli validate --verbose
|
|
1128
|
+
smart-cli mcp serve --no-confirm
|
|
393
1129
|
```
|
|
394
1130
|
|
|
1131
|
+
**Unknown topology in scaffold or drift:**
|
|
1132
|
+
Ensure your `evolith.yaml` has a valid `product.topology` field using a canonical topology id — `modular-monolith`, `distributed-modules`, `microservices`, `serverless`, `edge-computing`, `event-driven`, `data-mesh` or `agentic-ai` (per `reference/config/evolith.config.schema.json`). Legacy `F1/F2/F3` are accepted only as deprecated CLI flags, not as manifest values.
|
|
1133
|
+
|
|
1134
|
+
---
|
|
1135
|
+
|
|
395
1136
|
## Development
|
|
396
1137
|
|
|
397
|
-
###
|
|
1138
|
+
### Build from Source
|
|
398
1139
|
|
|
399
1140
|
```bash
|
|
400
1141
|
cd sdk/cli
|
|
401
1142
|
npm install
|
|
402
1143
|
npm run build
|
|
403
|
-
npm link
|
|
1144
|
+
npm link
|
|
404
1145
|
```
|
|
405
1146
|
|
|
406
|
-
###
|
|
1147
|
+
### Tests
|
|
407
1148
|
|
|
408
1149
|
```bash
|
|
409
|
-
#
|
|
410
|
-
npm test
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
npm run test
|
|
1150
|
+
npm test # unit + e2e
|
|
1151
|
+
npm run test:unit # unit only
|
|
1152
|
+
npm run test:e2e # e2e only
|
|
1153
|
+
npm run test:cov # coverage report
|
|
1154
|
+
npm run mcp:smoke # MCP protocol smoke test
|
|
414
1155
|
```
|
|
415
1156
|
|
|
416
|
-
**Coverage (as of v0.0.3-beta):** 88.7% statements · 89.8% lines · 77.0% branches · 83.6% functions · 1 369 tests
|
|
417
|
-
|
|
418
1157
|
### Project Structure
|
|
419
1158
|
|
|
420
1159
|
```
|
|
421
1160
|
sdk/cli/
|
|
422
1161
|
├── src/
|
|
423
|
-
│ ├── commands/
|
|
424
|
-
│ ├──
|
|
425
|
-
│ ├──
|
|
426
|
-
│ ├── infrastructure
|
|
427
|
-
│ └──
|
|
428
|
-
├── shell/
|
|
429
|
-
├── templates/
|
|
430
|
-
|
|
1162
|
+
│ ├── commands/ # CLI commands (one directory per command)
|
|
1163
|
+
│ ├── config/ # Runtimes catalog, CLI commands matrix, aliases
|
|
1164
|
+
│ ├── contributions/ # Contribution validation
|
|
1165
|
+
│ ├── infrastructure/ # Config, filesystem, formatters, prompts, plugins
|
|
1166
|
+
│ └── plugins/ # Plugin registry and module
|
|
1167
|
+
├── shell/ # Bash, Zsh, Fish completion and hooks
|
|
1168
|
+
├── templates/ # Configuration templates
|
|
1169
|
+
├── test/ # E2E test suite
|
|
1170
|
+
└── docs/ # Extended documentation
|
|
431
1171
|
```
|
|
432
1172
|
|
|
433
|
-
|
|
1173
|
+
### Extended Documentation
|
|
1174
|
+
|
|
1175
|
+
- [Demo Guide](docs/SMART-CLI-DEMO.md) — end-to-end walkthrough of all commands and SDLC flows
|
|
1176
|
+
- [Vision](docs/VISION.md) — CLI vision and roadmap
|
|
1177
|
+
- [Data Models](docs/data-models.md) — domain data model reference
|
|
1178
|
+
- [MCP Integration](docs/MCP-INTEGRATION.md) — MCP server protocol details
|
|
1179
|
+
- [Handoff Protocol](docs/HANDOFF-PROTOCOL.md) — SDLC handoff artifact specification
|
|
434
1180
|
|
|
435
|
-
|
|
436
|
-
- [Vision](docs/VISION.md) - CLI vision and roadmap
|
|
437
|
-
- [Data Models](docs/data-models.md) - Domain data models
|
|
438
|
-
- [MCP Integration](docs/MCP-INTEGRATION.md) - MCP server integration details
|
|
1181
|
+
---
|
|
439
1182
|
|
|
440
1183
|
## Contributing
|
|
441
1184
|
|
|
@@ -444,12 +1187,14 @@ sdk/cli/
|
|
|
444
1187
|
3. Make changes with tests
|
|
445
1188
|
4. Submit a pull request
|
|
446
1189
|
|
|
1190
|
+
---
|
|
1191
|
+
|
|
447
1192
|
## License
|
|
448
1193
|
|
|
449
|
-
|
|
1194
|
+
MIT
|
|
450
1195
|
|
|
451
1196
|
## Support
|
|
452
1197
|
|
|
453
|
-
- [Documentation](https://github.com/beyondnetcode/evolith_arch32#readme)
|
|
454
1198
|
- [Issue Tracker](https://github.com/beyondnetcode/evolith_arch32/issues)
|
|
455
1199
|
- [Discussions](https://github.com/beyondnetcode/evolith_arch32/discussions)
|
|
1200
|
+
- [Documentation](https://github.com/beyondnetcode/evolith_arch32#readme)
|