@evolith/core-domain 1.0.1 → 1.0.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/dist/domain/services/default-workflow-definition.js +4 -1
- package/dist/domain/services/default-workflow-definition.js.map +1 -1
- package/dist/gates/decision/gate-decision.js.map +1 -1
- package/package.json +1 -2
- package/rulesets/README.es.md +0 -170
- package/rulesets/README.md +0 -170
- package/rulesets/acl/README.es.md +0 -41
- package/rulesets/acl/README.md +0 -41
- package/rulesets/acl/anti-corruption-layer.rules.es.json +0 -99
- package/rulesets/acl/anti-corruption-layer.rules.json +0 -99
- package/rulesets/adr/ADR_COVERAGE.es.md +0 -133
- package/rulesets/adr/ADR_COVERAGE.md +0 -133
- package/rulesets/adr/README.es.md +0 -17
- package/rulesets/adr/README.md +0 -17
- package/rulesets/adr/adr-0002-hexagonal-architecture.rules.json +0 -103
- package/rulesets/adr/adr-0005-cicd-quality-gates.rules.json +0 -102
- package/rulesets/adr/adr-0010-multi-tenancy.rules.json +0 -129
- package/rulesets/adr/adr-0018-testing-pyramid.rules.json +0 -115
- package/rulesets/adr/adr-0032-protocol-selection.rules.json +0 -134
- package/rulesets/adr/adr-0040-multi-runtime.rules.json +0 -131
- package/rulesets/adr/adr-0050-gitflow-branching.rules.json +0 -176
- package/rulesets/adr/generated/adr-0001-monorepo-orchestration-principle.rules.json +0 -29
- package/rulesets/adr/generated/adr-0006-microservices-transition-via-sidecar-pattern.rules.json +0 -29
- package/rulesets/adr/generated/adr-0009-strict-dependency-pinning-and-automated-vulnerability-manage.rules.json +0 -29
- package/rulesets/adr/generated/adr-0011-fault-tolerance-and-resiliency-patterns.rules.json +0 -29
- package/rulesets/adr/generated/adr-0013-cloud-infrastructure-topology-and-disaster-recovery-dr.rules.json +0 -28
- package/rulesets/adr/generated/adr-0014-multi-layer-distributed-caching-strategy.rules.json +0 -29
- package/rulesets/adr/generated/adr-0015-event-driven-architecture-eda-for-intra-domain-communication.rules.json +0 -29
- package/rulesets/adr/generated/adr-0016-immutable-business-audit-trail-and-change-tracking.rules.json +0 -29
- package/rulesets/adr/generated/adr-0017-feature-flagging-strategy-for-progressive-delivery.rules.json +0 -28
- package/rulesets/adr/generated/adr-0019-tactical-design-patterns-for-future-proofing.rules.json +0 -29
- package/rulesets/adr/generated/adr-0020-identity-provider-abstraction-strategy.rules.json +0 -28
- package/rulesets/adr/generated/adr-0024-centralized-configuration-feature-platform.rules.json +0 -28
- package/rulesets/adr/generated/adr-0025-feature-flag-provider-abstraction-strategy.rules.json +0 -29
- package/rulesets/adr/generated/adr-0028-self-hosted-open-source-hybrid-infrastructure.rules.json +0 -29
- package/rulesets/adr/generated/adr-0030-two-tier-distributed-gateway-model.rules.json +0 -28
- package/rulesets/adr/generated/adr-0031-schema-per-bounded-context-and-domain-event-catalog.rules.json +0 -29
- package/rulesets/adr/generated/adr-0033-transactional-outbox-pattern-for-async-messaging.rules.json +0 -28
- package/rulesets/adr/generated/adr-0034-cqrs-pattern-application-matrix.rules.json +0 -29
- package/rulesets/adr/generated/adr-0035-distributed-saga-pattern-implementation-strategy.rules.json +0 -29
- package/rulesets/adr/generated/adr-0036-message-bus-delivery-flow-control-strategy.rules.json +0 -29
- package/rulesets/adr/generated/adr-0037-enterprise-performance-concurrency-chaos-verification-strate.rules.json +0 -28
- package/rulesets/adr/generated/adr-0039-deployment-topology-abstraction-environment-switcher.rules.json +0 -29
- package/rulesets/adr/generated/adr-0041-dual-engine-policy-evaluation-native-opa.rules.json +0 -28
- package/rulesets/adr/generated/adr-0044-configurable-security-persistence-strategy-agnosticism-vs-na.rules.json +0 -29
- package/rulesets/adr/generated/adr-0045-microservice-extraction-readiness-criteria.rules.json +0 -29
- package/rulesets/adr/generated/adr-0046-unified-traceability-via-w3c-tracecontext.rules.json +0 -29
- package/rulesets/adr/generated/adr-0047-progressive-architecture-evolution-framework-modular-monolit.rules.json +0 -29
- package/rulesets/adr/generated/adr-0048-enterprise-taxonomy-standardization-and-reference-layout.rules.json +0 -28
- package/rulesets/adr/generated/adr-0049-naming-semantics-clean-code-policy-e2e-and-global.rules.json +0 -29
- package/rulesets/adr/generated/adr-0051-enterprise-database-engine-selection-strategy.rules.json +0 -29
- package/rulesets/adr/generated/adr-0052-unit-testing-isolation-strategy-mocks-vs-stubs.rules.json +0 -29
- package/rulesets/adr/generated/adr-0053-integration-and-e2e-testing-strategy.rules.json +0 -29
- package/rulesets/adr/generated/adr-0054-database-design-and-normalization-standards.rules.json +0 -29
- package/rulesets/adr/generated/adr-0055-microfrontends-architecture-strategy.rules.json +0 -28
- package/rulesets/adr/generated/adr-0056-enterprise-naming-design-conventions-multi-language-multi-pl.rules.json +0 -29
- package/rulesets/adr/generated/adr-0057-architecture-intelligence-catalog.rules.json +0 -27
- package/rulesets/adr/generated/adr-0058-ai-consumable-architecture-knowledge.rules.json +0 -27
- package/rulesets/adr/generated/adr-0067-modular-monolith-persistence-boundaries.rules.json +0 -28
- package/rulesets/adr/generated/adr-0068-documentation-release-gitflow.rules.json +0 -29
- package/rulesets/adr/generated/adr-0069-ai-agent-context-protocol-integration.rules.json +0 -28
- package/rulesets/adr/generated/adr-0070-lean-root-repository-taxonomy.rules.json +0 -29
- package/rulesets/adr/generated/adr-0071-domain-layer-base-class-and-inheritance-strategy.rules.json +0 -29
- package/rulesets/adr/generated/adr-0072-utc-date-storage-browser-timezone-detection-and-language-res.rules.json +0 -29
- package/rulesets/adr/generated/adr-0073-unified-cli-mcp-output-contract-and-gate-evidence-schema.rules.json +0 -29
- package/rulesets/adr/generated/adr-0074-evolith-core-api-native-exposure-layer.rules.json +0 -29
- package/rulesets/adr/generated/adr-0075-core-api-authentication-strategy.rules.json +0 -28
- package/rulesets/adr/generated/adr-0076-domain-oriented-microservice-architecture-doma.rules.json +0 -28
- package/rulesets/adr/generated/adr-0077-masstransit-v9-commercial-pivot-stay-on-v8-monitor-opentrans.rules.json +0 -28
- package/rulesets/adr/generated/adr-0078-domain-financial-separation-governance.rules.json +0 -29
- package/rulesets/adr/generated/adr-0079-multi-topology-reference-corpus-and-topology-manifest-contra.rules.json +0 -29
- package/rulesets/adr/generated/adr-0080-remote-repository-reference-contract.rules.json +0 -29
- package/rulesets/adr/generated/adr-0081-agentic-ai-sandbox-isolation-boundary.rules.json +0 -29
- package/rulesets/adr/generated/adr-0082-agentic-ai-prompt-context-and-tool-trust-boundary.rules.json +0 -28
- package/rulesets/adr/generated/adr-0083-agentic-ai-action-authorization-and-audit.rules.json +0 -29
- package/rulesets/adr/generated/adr-0084-data-mesh-and-data-as-a-product.rules.json +0 -29
- package/rulesets/adr/generated/adr-0085-agnostic-opa-wasm-distribution-architecture.rules.json +0 -28
- package/rulesets/adr/generated/adr-0086-agentic-ai-telemetry-cost-control-standard.rules.json +0 -27
- package/rulesets/adr/generated/adr-0087-attribute-based-access-control-abac-for-agentic-tool-executi.rules.json +0 -29
- package/rulesets/adr/generated/adr-0088-sovereign-identity-for-agentic-ai.rules.json +0 -29
- package/rulesets/adr/generated/adr-0089-event-driven-agentic-workflow-pattern.rules.json +0 -28
- package/rulesets/adr/generated/adr-0090-rag-knowledge-governance-standard.rules.json +0 -29
- package/rulesets/adr/generated/adr-0091-workload-identity-token-rotation-standard.rules.json +0 -29
- package/rulesets/adr/generated/adr-0092-agent-infinite-loop-prevention-and-circuit-breaker-rules.rules.json +0 -29
- package/rulesets/adr/generated/adr-0093-concurrency-control-and-resource-locking-standard-for-mcp-to.rules.json +0 -29
- package/rulesets/adr/generated/adr-0094-multi-agent-handoff-and-task-delegation-standards.rules.json +0 -29
- package/rulesets/adr/generated/adr-0095-serverless-architecture-governance.rules.json +0 -29
- package/rulesets/adr/generated/adr-0096-edge-computing-architecture-governance.rules.json +0 -29
- package/rulesets/adr/generated/adr-0097-knowledge-lifecycle-governance-standard.rules.json +0 -29
- package/rulesets/adr/generated/adr-0098-rest-uri-versioning-and-deprecation-policy.rules.json +0 -29
- package/rulesets/adr/generated/adr-0099-opa-bundle-distribution-via-s3-minio.rules.json +0 -27
- package/rulesets/adr/generated/adr-ai-augmented-0001-harness-engineering-for-ai-augmented-development.rules.json +0 -29
- package/rulesets/adr/generated/adr-ai-augmented-0002-mcp-integration-protocol-for-agent-tool-invocation.rules.json +0 -29
- package/rulesets/adr/generated/adr-ai-augmented-0003-model-selection-governance-for-ai-augmented-workflows.rules.json +0 -29
- package/rulesets/adr/generated/adr-ai-augmented-0004-agents-md-as-mandatory-repository-artifact.rules.json +0 -29
- package/rulesets/adr/generated/adr-ai-augmented-0005-human-in-the-loop-policy-for-autonomous-agent-operations.rules.json +0 -29
- package/rulesets/adr/generated/adr-android-0042-canonical-android-native-mobile-architecture.rules.json +0 -29
- package/rulesets/adr/generated/adr-dotnet-0041-canonical-net-c-backend-architecture.rules.json +0 -29
- package/rulesets/adr/generated/adr-dotnet-0060-net-multi-tenancy-dual-layer-strategy-ef-core-sql-server.rules.json +0 -29
- package/rulesets/adr/generated/adr-dotnet-0061-transactional-event-lifecycle-in-ef-core.rules.json +0 -28
- package/rulesets/adr/generated/adr-dotnet-0062-net-immutable-audit-trail-via-ddl-triggers-delta-capture.rules.json +0 -29
- package/rulesets/adr/generated/adr-dotnet-0063-b2b-request-idempotency-middleware-in-asp-net-core.rules.json +0 -28
- package/rulesets/adr/generated/adr-dotnet-0064-net-request-scope-observability-context-propagation.rules.json +0 -29
- package/rulesets/adr/generated/adr-dotnet-0065-net-pii-safe-structured-logging-pipeline-serilog.rules.json +0 -29
- package/rulesets/adr/generated/adr-dotnet-0066-net-lightweight-http-idempotency-via-imemorycache-idistribut.rules.json +0 -28
- package/rulesets/adr/generated/adr-dotnet-0069-net-grpc-service-setup-protobuf-contracts.rules.json +0 -29
- package/rulesets/adr/generated/adr-dotnet-0070-net-api-endpoint-strategy.rules.json +0 -29
- package/rulesets/adr/generated/adr-dotnet-0071-net-data-access-strategy-ef-core-as-default-orm-dapper-for-o.rules.json +0 -27
- package/rulesets/adr/generated/adr-dotnet-0072-net-aop-cross-cutting-concern-strategy-dispatchproxy-over-pi.rules.json +0 -29
- package/rulesets/adr/generated/adr-nodejs-0003-strict-typescript-standards.rules.json +0 -29
- package/rulesets/adr/generated/adr-nodejs-0004-frontend-offline-resilience.rules.json +0 -28
- package/rulesets/adr/generated/adr-nodejs-0007-observability-with-opentelemetry-loki-and-jaeger.rules.json +0 -29
- package/rulesets/adr/generated/adr-nodejs-0008-progressive-multi-module-evolution-with-api-gateway-and-bff-.rules.json +0 -28
- package/rulesets/adr/generated/adr-nodejs-0012-advanced-authorization-rbac-abac-strategy.rules.json +0 -28
- package/rulesets/adr/generated/adr-nodejs-0021-high-performance-authentication-graph-compilation.rules.json +0 -28
- package/rulesets/adr/generated/adr-nodejs-0022-contextual-authentication-and-pluggable-output-projections.rules.json +0 -28
- package/rulesets/adr/generated/adr-nodejs-0023-centralized-authorization-core-strategy.rules.json +0 -28
- package/rulesets/adr/generated/adr-nodejs-0026-adaptive-mfa-and-passwordless-platform.rules.json +0 -28
- package/rulesets/adr/generated/adr-nodejs-0027-dual-protocol-api-strategy-rest-grpc.rules.json +0 -28
- package/rulesets/adr/generated/adr-nodejs-0029-adoption-of-tactical-ddd-primitives-library.rules.json +0 -29
- package/rulesets/adr/generated/adr-nodejs-0038-enterprise-error-handling-result-pattern-strategy.rules.json +0 -29
- package/rulesets/adr/generated/adr-nodejs-0043-data-access-and-orm-strategy-for-node-js.rules.json +0 -29
- package/rulesets/adr/generated/adr-nodejs-0044-frontend-clean-architecture-layer-boundaries-react.rules.json +0 -29
- package/rulesets/adr/generated/adr-nodejs-0045-frontend-state-management-zustand-tanstack-query-dual-strate.rules.json +0 -29
- package/rulesets/adr/generated/adr-nodejs-0046-prohibition-of-raw-technical-identifiers-in-user-interfaces.rules.json +0 -29
- package/rulesets/adr/generated/adr-nodejs-0047-actionable-user-error-contract-and-correlated-diagnostics.rules.json +0 -29
- package/rulesets/adr/generated/adr-nodejs-0048-feature-flag-system-scope-and-structured-criteria-model.rules.json +0 -29
- package/rulesets/adr/generated/adr-nodejs-0074-monorepo-orchestration-with-nx.rules.json +0 -29
- package/rulesets/adr/generated/adr-nodejs-0075-application-gateway-bff-with-nestjs.rules.json +0 -29
- package/rulesets/architecture/README.es.md +0 -21
- package/rulesets/architecture/README.md +0 -21
- package/rulesets/architecture/opa/progressive-axis.rego +0 -50
- package/rulesets/cli/README.es.md +0 -17
- package/rulesets/cli/README.md +0 -17
- package/rulesets/cli/core-parity.rules.json +0 -61
- package/rulesets/cli/release-readiness.rules.json +0 -77
- package/rulesets/compliance-baseline/README.es.md +0 -26
- package/rulesets/compliance-baseline/README.md +0 -26
- package/rulesets/compliance-baseline/compliance-baseline.rules.json +0 -81
- package/rulesets/contracts/README.es.md +0 -19
- package/rulesets/contracts/README.md +0 -19
- package/rulesets/contracts/evolith-machine-contracts.json +0 -29
- package/rulesets/contracts/fixtures/gate-evidence.success.json +0 -10
- package/rulesets/contracts/fixtures/output-envelope.success.json +0 -23
- package/rulesets/cross-cutting/README.es.md +0 -14
- package/rulesets/cross-cutting/README.md +0 -14
- package/rulesets/cross-cutting/compliance-baseline.rules.json +0 -81
- package/rulesets/cross-cutting/definition-of-done.rules.json +0 -135
- package/rulesets/cross-cutting/engineering-manifesto.rules.json +0 -145
- package/rulesets/cross-cutting/repository-taxonomy.rules.json +0 -172
- package/rulesets/definition-of-done/README.es.md +0 -26
- package/rulesets/definition-of-done/README.md +0 -26
- package/rulesets/definition-of-done/definition-of-done.rules.json +0 -135
- package/rulesets/engineering-manifesto/README.es.md +0 -26
- package/rulesets/engineering-manifesto/README.md +0 -26
- package/rulesets/engineering-manifesto/engineering-manifesto.rules.json +0 -145
- package/rulesets/evidence/README.es.md +0 -12
- package/rulesets/evidence/README.md +0 -12
- package/rulesets/evidence/evidence-manifest.rules.json +0 -48
- package/rulesets/executive-scorecards/executive-scorecards.rules.es.json +0 -213
- package/rulesets/executive-scorecards/executive-scorecards.rules.json +0 -213
- package/rulesets/governance/README.es.md +0 -13
- package/rulesets/governance/README.md +0 -13
- package/rulesets/governance/abac-mcp-access.rules.es.json +0 -41
- package/rulesets/governance/abac-mcp-access.rules.json +0 -41
- package/rulesets/governance/executive-scorecards.rules.es.json +0 -213
- package/rulesets/governance/executive-scorecards.rules.json +0 -213
- package/rulesets/governance/inheritance.rules.json +0 -115
- package/rulesets/governance/knowledge-intake.rules.json +0 -18
- package/rulesets/governance/open-core-boundary.rules.es.json +0 -148
- package/rulesets/governance/open-core-boundary.rules.json +0 -148
- package/rulesets/governance/satellite-contracts.rules.json +0 -183
- package/rulesets/infrastructure/helm-enforcement.rules.json +0 -21
- package/rulesets/infrastructure/opa/helm-enforcement.rego +0 -25
- package/rulesets/infrastructure/opa/helm-enforcement.test.rego +0 -31
- package/rulesets/infrastructure/opa/opa-sidecar-bundle.rego +0 -115
- package/rulesets/infrastructure/opa/opa-sidecar-bundle.test.rego +0 -66
- package/rulesets/infrastructure/opa-sidecar-bundle.rules.json +0 -18
- package/rulesets/mcp/README.es.md +0 -12
- package/rulesets/mcp/README.md +0 -12
- package/rulesets/mcp/protocol-compliance.rules.json +0 -57
- package/rulesets/observability/README.es.md +0 -12
- package/rulesets/observability/README.md +0 -12
- package/rulesets/observability/telemetry-evidence.rules.json +0 -48
- package/rulesets/opa/README.es.md +0 -22
- package/rulesets/opa/README.md +0 -22
- package/rulesets/opa/abac-mcp-tool-access.rego +0 -122
- package/rulesets/opa/abac-mcp-tool-access.test.rego +0 -33
- package/rulesets/opa/anti-corruption-layer.rego +0 -39
- package/rulesets/opa/anti-corruption-layer.test.rego +0 -118
- package/rulesets/opa/ci-cd.rego +0 -41
- package/rulesets/opa/ci-cd.test.rego +0 -23
- package/rulesets/opa/cicd-quality-gates.rego +0 -29
- package/rulesets/opa/cicd-quality-gates.test.rego +0 -54
- package/rulesets/opa/cli-core-parity.rego +0 -17
- package/rulesets/opa/cli-core-parity.test.rego +0 -39
- package/rulesets/opa/cli-readiness.rego +0 -32
- package/rulesets/opa/cli-readiness.test.rego +0 -23
- package/rulesets/opa/cli-release-readiness.rego +0 -21
- package/rulesets/opa/cli-release-readiness.test.rego +0 -46
- package/rulesets/opa/compliance-baseline.rego +0 -95
- package/rulesets/opa/compliance-baseline.test.rego +0 -89
- package/rulesets/opa/dod.rego +0 -42
- package/rulesets/opa/dod.test.rego +0 -250
- package/rulesets/opa/engineering-manifesto.rego +0 -78
- package/rulesets/opa/engineering-manifesto.test.rego +0 -133
- package/rulesets/opa/evidence.rego +0 -64
- package/rulesets/opa/evidence.test.rego +0 -23
- package/rulesets/opa/executive-scorecards.rego +0 -41
- package/rulesets/opa/executive-scorecards.test.rego +0 -60
- package/rulesets/opa/gitflow-branching.rego +0 -41
- package/rulesets/opa/gitflow-branching.test.rego +0 -60
- package/rulesets/opa/governance.rego +0 -39
- package/rulesets/opa/governance.test.rego +0 -23
- package/rulesets/opa/hexagonal-architecture.rego +0 -33
- package/rulesets/opa/hexagonal-architecture.test.rego +0 -57
- package/rulesets/opa/infrastructure/helm-enforcement.rego +0 -33
- package/rulesets/opa/infrastructure/opa-sidecar-bundle.rego +0 -42
- package/rulesets/opa/knowledge-intake.rego +0 -98
- package/rulesets/opa/knowledge-intake.test.rego +0 -50
- package/rulesets/opa/main.rego +0 -147
- package/rulesets/opa/main_test.rego +0 -149
- package/rulesets/opa/mcp.rego +0 -61
- package/rulesets/opa/mcp.test.rego +0 -27
- package/rulesets/opa/multi-runtime.rego +0 -33
- package/rulesets/opa/multi-runtime.test.rego +0 -53
- package/rulesets/opa/multi-tenancy.rego +0 -33
- package/rulesets/opa/multi-tenancy.test.rego +0 -53
- package/rulesets/opa/open-core-boundary.rego +0 -33
- package/rulesets/opa/open-core-boundary.test.rego +0 -60
- package/rulesets/opa/protocol-selection.rego +0 -29
- package/rulesets/opa/protocol-selection.test.rego +0 -46
- package/rulesets/opa/rbac/gate-role-enforcement.rego +0 -112
- package/rulesets/opa/repository-taxonomy.rego +0 -98
- package/rulesets/opa/repository-taxonomy.test.rego +0 -91
- package/rulesets/opa/satellite-contracts.rego +0 -42
- package/rulesets/opa/satellite-contracts.test.rego +0 -70
- package/rulesets/opa/schemas/abac-mcp-tool-access.input.schema.json +0 -21
- package/rulesets/opa/schemas/anti-corruption-layer.input.schema.json +0 -25
- package/rulesets/opa/schemas/ci-cd.input.schema.json +0 -27
- package/rulesets/opa/schemas/cicd-quality-gates.input.schema.json +0 -33
- package/rulesets/opa/schemas/cli-core-parity.input.schema.json +0 -30
- package/rulesets/opa/schemas/cli-readiness.input.schema.json +0 -28
- package/rulesets/opa/schemas/cli-release-readiness.input.schema.json +0 -26
- package/rulesets/opa/schemas/compliance-baseline.input.schema.json +0 -25
- package/rulesets/opa/schemas/dod.input.schema.json +0 -38
- package/rulesets/opa/schemas/engineering-manifesto.input.schema.json +0 -24
- package/rulesets/opa/schemas/evidence.input.schema.json +0 -35
- package/rulesets/opa/schemas/executive-scorecards.input.schema.json +0 -36
- package/rulesets/opa/schemas/gitflow-branching.input.schema.json +0 -36
- package/rulesets/opa/schemas/governance.input.schema.json +0 -19
- package/rulesets/opa/schemas/hexagonal-architecture.input.schema.json +0 -46
- package/rulesets/opa/schemas/knowledge-intake.input.schema.json +0 -57
- package/rulesets/opa/schemas/mcp.input.schema.json +0 -38
- package/rulesets/opa/schemas/multi-runtime.input.schema.json +0 -27
- package/rulesets/opa/schemas/multi-tenancy.input.schema.json +0 -27
- package/rulesets/opa/schemas/open-core-boundary.input.schema.json +0 -36
- package/rulesets/opa/schemas/protocol-selection.input.schema.json +0 -26
- package/rulesets/opa/schemas/repository-taxonomy.input.schema.json +0 -18
- package/rulesets/opa/schemas/satellite-contracts.input.schema.json +0 -38
- package/rulesets/opa/schemas/taxonomy.input.schema.json +0 -27
- package/rulesets/opa/schemas/testing-pyramid.input.schema.json +0 -42
- package/rulesets/opa/schemas/version-pinning.input.schema.json +0 -39
- package/rulesets/opa/sdlc/coverage.rego +0 -49
- package/rulesets/opa/sdlc/coverage.test.rego +0 -29
- package/rulesets/opa/sdlc/pyramid-distribution.rego +0 -31
- package/rulesets/opa/sdlc/pyramid-distribution.test.rego +0 -33
- package/rulesets/opa/taxonomy.rego +0 -51
- package/rulesets/opa/taxonomy.test.rego +0 -28
- package/rulesets/opa/telemetry-evidence.rego +0 -102
- package/rulesets/opa/testing-pyramid.rego +0 -49
- package/rulesets/opa/testing-pyramid.test.rego +0 -81
- package/rulesets/opa/version-pinning.rego +0 -99
- package/rulesets/opa/version-pinning.test.rego +0 -28
- package/rulesets/phase-gates/README.es.md +0 -28
- package/rulesets/phase-gates/README.md +0 -28
- package/rulesets/phase-gates/phase-gates.rules.json +0 -297
- package/rulesets/quality-thresholds/README.es.md +0 -28
- package/rulesets/quality-thresholds/README.md +0 -28
- package/rulesets/quality-thresholds/quality-thresholds.rules.json +0 -96
- package/rulesets/repository-taxonomy/README.es.md +0 -26
- package/rulesets/repository-taxonomy/README.md +0 -26
- package/rulesets/repository-taxonomy/repository-taxonomy.rules.json +0 -172
- package/rulesets/satellite-contracts/README.es.md +0 -27
- package/rulesets/satellite-contracts/README.md +0 -27
- package/rulesets/satellite-contracts/satellite-contracts.rules.json +0 -183
- package/rulesets/schema/README.es.md +0 -39
- package/rulesets/schema/README.md +0 -39
- package/rulesets/schema/adr.schema.json +0 -138
- package/rulesets/schema/agile-backlog.schema.json +0 -91
- package/rulesets/schema/ballpark-estimation.schema.json +0 -109
- package/rulesets/schema/build-vs-compose.schema.json +0 -98
- package/rulesets/schema/cli-impact-analysis.schema.json +0 -114
- package/rulesets/schema/discovery-canvas.schema.json +0 -92
- package/rulesets/schema/evolith-user-story.schema.json +0 -105
- package/rulesets/schema/evolith-yaml.schema.json +0 -191
- package/rulesets/schema/functional-story.schema.json +0 -111
- package/rulesets/schema/gate-evidence.schema.json +0 -85
- package/rulesets/schema/integration-evidence.schema.json +0 -47
- package/rulesets/schema/knowledge-intake.schema.json +0 -67
- package/rulesets/schema/knowledge-projection.schema.json +0 -24
- package/rulesets/schema/maturity-evidence.schema.json +0 -59
- package/rulesets/schema/observability-validation.schema.json +0 -85
- package/rulesets/schema/on-call-handoff.schema.json +0 -91
- package/rulesets/schema/output-envelope.schema.json +0 -102
- package/rulesets/schema/prd.schema.json +0 -117
- package/rulesets/schema/release-notes.schema.json +0 -138
- package/rulesets/schema/rollback-rehearsal.schema.json +0 -73
- package/rulesets/schema/ruleset-sdlc.schema.json +0 -59
- package/rulesets/schema/ruleset-standard.schema.json +0 -73
- package/rulesets/schema/security-scan-report.schema.json +0 -79
- package/rulesets/schema/source-registry.schema.json +0 -51
- package/rulesets/schema/technical-feasibility.schema.json +0 -66
- package/rulesets/schema/technical-story.schema.json +0 -112
- package/rulesets/schema/test-summary-report.schema.json +0 -158
- package/rulesets/schema/topology-composition.schema.json +0 -43
- package/rulesets/schema/topology-manifest.schema.json +0 -421
- package/rulesets/sdlc/README.es.md +0 -12
- package/rulesets/sdlc/README.md +0 -12
- package/rulesets/sdlc/default-workflow.yaml +0 -73
- package/rulesets/sdlc/dependency-pinning.rules.json +0 -183
- package/rulesets/sdlc/phase-gates.rules.json +0 -297
- package/rulesets/sdlc/quality-thresholds.rules.json +0 -96
- package/rulesets/topologies/README.es.md +0 -42
- package/rulesets/topologies/README.md +0 -42
- package/rulesets/topologies/agentic-ai/README.es.md +0 -142
- package/rulesets/topologies/agentic-ai/README.md +0 -142
- package/rulesets/topologies/agentic-ai/adoption.es.md +0 -37
- package/rulesets/topologies/agentic-ai/adoption.md +0 -37
- package/rulesets/topologies/agentic-ai/agent.config.schema.json +0 -100
- package/rulesets/topologies/agentic-ai/agentic-ai.rego +0 -46
- package/rulesets/topologies/agentic-ai/agentic-ai.rules.json +0 -109
- package/rulesets/topologies/agentic-ai/agentic-ai.test.rego +0 -68
- package/rulesets/topologies/agentic-ai/agentic-ai.wasm +0 -0
- package/rulesets/topologies/agentic-ai/cli/cli-flows.es.md +0 -35
- package/rulesets/topologies/agentic-ai/cli/cli-flows.md +0 -45
- package/rulesets/topologies/agentic-ai/evidence.es.md +0 -25
- package/rulesets/topologies/agentic-ai/evidence.md +0 -25
- package/rulesets/topologies/agentic-ai/evolution.es.md +0 -26
- package/rulesets/topologies/agentic-ai/evolution.md +0 -26
- package/rulesets/topologies/agentic-ai/fixtures/invalid-agent.config.json +0 -48
- package/rulesets/topologies/agentic-ai/fixtures/valid-agent.config.json +0 -48
- package/rulesets/topologies/agentic-ai/maturity.es.md +0 -33
- package/rulesets/topologies/agentic-ai/maturity.md +0 -33
- package/rulesets/topologies/agentic-ai/mcp/mcp-manifest.json +0 -100
- package/rulesets/topologies/agentic-ai/openapi/openapi.yaml +0 -187
- package/rulesets/topologies/agentic-ai/operations.es.md +0 -32
- package/rulesets/topologies/agentic-ai/operations.md +0 -32
- package/rulesets/topologies/agentic-ai/parity-fixtures/compliant.json +0 -18
- package/rulesets/topologies/agentic-ai/parity-fixtures/violation.json +0 -22
- package/rulesets/topologies/agentic-ai/patterns.es.md +0 -32
- package/rulesets/topologies/agentic-ai/patterns.md +0 -32
- package/rulesets/topologies/agentic-ai/resilience.es.md +0 -26
- package/rulesets/topologies/agentic-ai/resilience.md +0 -26
- package/rulesets/topologies/agentic-ai/runbooks.es.md +0 -48
- package/rulesets/topologies/agentic-ai/runbooks.md +0 -48
- package/rulesets/topologies/agentic-ai/security.es.md +0 -26
- package/rulesets/topologies/agentic-ai/security.md +0 -26
- package/rulesets/topologies/agentic-ai/topology.manifest.json +0 -127
- package/rulesets/topologies/data-mesh/README.es.md +0 -69
- package/rulesets/topologies/data-mesh/README.md +0 -69
- package/rulesets/topologies/data-mesh/adoption.es.md +0 -95
- package/rulesets/topologies/data-mesh/adoption.md +0 -95
- package/rulesets/topologies/data-mesh/cli/cli-flows.es.md +0 -41
- package/rulesets/topologies/data-mesh/cli/cli-flows.md +0 -53
- package/rulesets/topologies/data-mesh/data-mesh.rego +0 -11
- package/rulesets/topologies/data-mesh/data-mesh.rules.json +0 -100
- package/rulesets/topologies/data-mesh/data-mesh.test.rego +0 -107
- package/rulesets/topologies/data-mesh/data-mesh.wasm +0 -0
- package/rulesets/topologies/data-mesh/evidence.es.md +0 -111
- package/rulesets/topologies/data-mesh/evidence.md +0 -111
- package/rulesets/topologies/data-mesh/evolution.es.md +0 -67
- package/rulesets/topologies/data-mesh/evolution.md +0 -67
- package/rulesets/topologies/data-mesh/fixtures/invalid.topology.config.json +0 -12
- package/rulesets/topologies/data-mesh/fixtures/valid.topology.config.json +0 -12
- package/rulesets/topologies/data-mesh/maturity.es.md +0 -36
- package/rulesets/topologies/data-mesh/maturity.md +0 -36
- package/rulesets/topologies/data-mesh/mcp/mcp-manifest.json +0 -68
- package/rulesets/topologies/data-mesh/openapi/openapi.yaml +0 -186
- package/rulesets/topologies/data-mesh/operations.es.md +0 -63
- package/rulesets/topologies/data-mesh/operations.md +0 -63
- package/rulesets/topologies/data-mesh/parity-fixtures/compliant.json +0 -18
- package/rulesets/topologies/data-mesh/parity-fixtures/violation.json +0 -21
- package/rulesets/topologies/data-mesh/patterns.es.md +0 -67
- package/rulesets/topologies/data-mesh/patterns.md +0 -67
- package/rulesets/topologies/data-mesh/resilience.es.md +0 -64
- package/rulesets/topologies/data-mesh/resilience.md +0 -64
- package/rulesets/topologies/data-mesh/runbooks.es.md +0 -147
- package/rulesets/topologies/data-mesh/runbooks.md +0 -147
- package/rulesets/topologies/data-mesh/security.es.md +0 -66
- package/rulesets/topologies/data-mesh/security.md +0 -66
- package/rulesets/topologies/data-mesh/topology.config.schema.json +0 -30
- package/rulesets/topologies/data-mesh/topology.manifest.json +0 -107
- package/rulesets/topologies/edge-computing/README.es.md +0 -81
- package/rulesets/topologies/edge-computing/README.md +0 -81
- package/rulesets/topologies/edge-computing/adoption.es.md +0 -268
- package/rulesets/topologies/edge-computing/adoption.md +0 -268
- package/rulesets/topologies/edge-computing/cli/cli-flows.es.md +0 -41
- package/rulesets/topologies/edge-computing/cli/cli-flows.md +0 -53
- package/rulesets/topologies/edge-computing/edge-computing.rego +0 -41
- package/rulesets/topologies/edge-computing/edge-computing.rules.json +0 -50
- package/rulesets/topologies/edge-computing/edge-computing.test.rego +0 -33
- package/rulesets/topologies/edge-computing/edge-computing.wasm +0 -0
- package/rulesets/topologies/edge-computing/evidence.es.md +0 -263
- package/rulesets/topologies/edge-computing/evidence.md +0 -263
- package/rulesets/topologies/edge-computing/evolution.es.md +0 -257
- package/rulesets/topologies/edge-computing/evolution.md +0 -257
- package/rulesets/topologies/edge-computing/fixtures/invalid.topology.config.json +0 -6
- package/rulesets/topologies/edge-computing/fixtures/valid.topology.config.json +0 -6
- package/rulesets/topologies/edge-computing/maturity.es.md +0 -36
- package/rulesets/topologies/edge-computing/maturity.md +0 -36
- package/rulesets/topologies/edge-computing/mcp/mcp-manifest.json +0 -72
- package/rulesets/topologies/edge-computing/openapi/openapi.yaml +0 -187
- package/rulesets/topologies/edge-computing/operations.es.md +0 -148
- package/rulesets/topologies/edge-computing/operations.md +0 -148
- package/rulesets/topologies/edge-computing/parity-fixtures/compliant.json +0 -12
- package/rulesets/topologies/edge-computing/parity-fixtures/violation.json +0 -13
- package/rulesets/topologies/edge-computing/patterns.es.md +0 -291
- package/rulesets/topologies/edge-computing/patterns.md +0 -290
- package/rulesets/topologies/edge-computing/resilience.es.md +0 -232
- package/rulesets/topologies/edge-computing/resilience.md +0 -229
- package/rulesets/topologies/edge-computing/runbooks.es.md +0 -405
- package/rulesets/topologies/edge-computing/runbooks.md +0 -405
- package/rulesets/topologies/edge-computing/security.es.md +0 -218
- package/rulesets/topologies/edge-computing/security.md +0 -218
- package/rulesets/topologies/edge-computing/topology.config.schema.json +0 -13
- package/rulesets/topologies/edge-computing/topology.manifest.json +0 -113
- package/rulesets/topologies/event-driven/README.es.md +0 -71
- package/rulesets/topologies/event-driven/README.md +0 -71
- package/rulesets/topologies/event-driven/adoption.es.md +0 -67
- package/rulesets/topologies/event-driven/adoption.md +0 -67
- package/rulesets/topologies/event-driven/cli/cli-flows.es.md +0 -41
- package/rulesets/topologies/event-driven/cli/cli-flows.md +0 -53
- package/rulesets/topologies/event-driven/event-driven.rego +0 -11
- package/rulesets/topologies/event-driven/event-driven.rules.json +0 -100
- package/rulesets/topologies/event-driven/event-driven.test.rego +0 -107
- package/rulesets/topologies/event-driven/event-driven.wasm +0 -0
- package/rulesets/topologies/event-driven/evidence.es.md +0 -69
- package/rulesets/topologies/event-driven/evidence.md +0 -69
- package/rulesets/topologies/event-driven/evolution.es.md +0 -59
- package/rulesets/topologies/event-driven/evolution.md +0 -59
- package/rulesets/topologies/event-driven/fixtures/invalid.topology.config.json +0 -12
- package/rulesets/topologies/event-driven/fixtures/valid.topology.config.json +0 -12
- package/rulesets/topologies/event-driven/maturity.es.md +0 -36
- package/rulesets/topologies/event-driven/maturity.md +0 -36
- package/rulesets/topologies/event-driven/mcp/mcp-manifest.json +0 -68
- package/rulesets/topologies/event-driven/openapi/openapi.yaml +0 -186
- package/rulesets/topologies/event-driven/operations.es.md +0 -67
- package/rulesets/topologies/event-driven/operations.md +0 -67
- package/rulesets/topologies/event-driven/parity-fixtures/compliant.json +0 -18
- package/rulesets/topologies/event-driven/parity-fixtures/violation.json +0 -21
- package/rulesets/topologies/event-driven/patterns.es.md +0 -68
- package/rulesets/topologies/event-driven/patterns.md +0 -68
- package/rulesets/topologies/event-driven/resilience.es.md +0 -65
- package/rulesets/topologies/event-driven/resilience.md +0 -65
- package/rulesets/topologies/event-driven/runbooks.es.md +0 -79
- package/rulesets/topologies/event-driven/runbooks.md +0 -79
- package/rulesets/topologies/event-driven/security.es.md +0 -59
- package/rulesets/topologies/event-driven/security.md +0 -59
- package/rulesets/topologies/event-driven/topology.config.schema.json +0 -30
- package/rulesets/topologies/event-driven/topology.manifest.json +0 -109
- package/rulesets/topologies/progressive-axis/distributed-modules/distributed-modules.rules.es.json +0 -111
- package/rulesets/topologies/progressive-axis/distributed-modules/distributed-modules.rules.json +0 -111
- package/rulesets/topologies/progressive-axis/microservices/microservices.rules.es.json +0 -106
- package/rulesets/topologies/progressive-axis/microservices/microservices.rules.json +0 -106
- package/rulesets/topologies/progressive-axis/modular-monolith/modular-monolith.rules.es.json +0 -148
- package/rulesets/topologies/progressive-axis/modular-monolith/modular-monolith.rules.json +0 -148
- package/rulesets/topologies/serverless/README.es.md +0 -74
- package/rulesets/topologies/serverless/README.md +0 -74
- package/rulesets/topologies/serverless/adoption.es.md +0 -50
- package/rulesets/topologies/serverless/adoption.md +0 -50
- package/rulesets/topologies/serverless/cli/cli-flows.es.md +0 -41
- package/rulesets/topologies/serverless/cli/cli-flows.md +0 -53
- package/rulesets/topologies/serverless/evidence.es.md +0 -66
- package/rulesets/topologies/serverless/evidence.md +0 -66
- package/rulesets/topologies/serverless/evolution.es.md +0 -36
- package/rulesets/topologies/serverless/evolution.md +0 -36
- package/rulesets/topologies/serverless/fixtures/invalid.topology.config.json +0 -6
- package/rulesets/topologies/serverless/fixtures/valid.topology.config.json +0 -6
- package/rulesets/topologies/serverless/maturity.es.md +0 -36
- package/rulesets/topologies/serverless/maturity.md +0 -36
- package/rulesets/topologies/serverless/mcp/mcp-manifest.json +0 -72
- package/rulesets/topologies/serverless/openapi/openapi.yaml +0 -186
- package/rulesets/topologies/serverless/operations.es.md +0 -36
- package/rulesets/topologies/serverless/operations.md +0 -36
- package/rulesets/topologies/serverless/parity-fixtures/compliant.json +0 -13
- package/rulesets/topologies/serverless/parity-fixtures/violation.json +0 -15
- package/rulesets/topologies/serverless/patterns.es.md +0 -36
- package/rulesets/topologies/serverless/patterns.md +0 -36
- package/rulesets/topologies/serverless/resilience.es.md +0 -36
- package/rulesets/topologies/serverless/resilience.md +0 -36
- package/rulesets/topologies/serverless/runbooks.es.md +0 -68
- package/rulesets/topologies/serverless/runbooks.md +0 -68
- package/rulesets/topologies/serverless/security.es.md +0 -36
- package/rulesets/topologies/serverless/security.md +0 -36
- package/rulesets/topologies/serverless/serverless.rego +0 -32
- package/rulesets/topologies/serverless/serverless.rules.json +0 -33
- package/rulesets/topologies/serverless/serverless.test.rego +0 -28
- package/rulesets/topologies/serverless/serverless.wasm +0 -0
- package/rulesets/topologies/serverless/topology.config.schema.json +0 -28
- package/rulesets/topologies/serverless/topology.manifest.json +0 -114
|
@@ -1,213 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "../schema/ruleset-standard.schema.json",
|
|
3
|
-
"$id": "https://evolith.dev/rulesets/governance/executive-scorecards.rules.json",
|
|
4
|
-
"title": "Executive Scorecards Rules",
|
|
5
|
-
"description": "Rules encoding DORA and SPACE metrics for executive visibility. These rules ensure Predictability, Adherencia (Architecture Drift Index), and Eficiencia across satellite products.",
|
|
6
|
-
"version": "1.0.0",
|
|
7
|
-
"effectiveDate": "2026-06-06",
|
|
8
|
-
"scope": "satellite",
|
|
9
|
-
"category": "executive-metrics",
|
|
10
|
-
"principles": [
|
|
11
|
-
{
|
|
12
|
-
"id": "DORA-01",
|
|
13
|
-
"principle": "Deployment Frequency",
|
|
14
|
-
"statement": "Satellite products MUST measure and report deployment frequency. Target: at least once per week to production.",
|
|
15
|
-
"rationale": "Evololith Product Vision §6: Deployment Frequency is a core DORA metric. High deployment frequency indicates healthy CD pipeline.",
|
|
16
|
-
"severity": "MUST",
|
|
17
|
-
"validationQuery": "CI/CD pipeline exports deployment frequency metric. Report shows deployments/week to production.",
|
|
18
|
-
"blocking": false,
|
|
19
|
-
"metrics": {
|
|
20
|
-
"name": "Deployment Frequency",
|
|
21
|
-
"unit": "deployments per week",
|
|
22
|
-
"target": ">= 1",
|
|
23
|
-
"measurement": "Count of production deployments in trailing 4 weeks / 4",
|
|
24
|
-
"dashboardRequired": true
|
|
25
|
-
},
|
|
26
|
-
"references": [
|
|
27
|
-
"reference/governance/standards/vision/evolith-product-vision-master.md#6-executive-vision-scorecards"
|
|
28
|
-
]
|
|
29
|
-
},
|
|
30
|
-
{
|
|
31
|
-
"id": "DORA-02",
|
|
32
|
-
"principle": "Lead Time for Changes",
|
|
33
|
-
"statement": "Satellite products MUST measure and report lead time from commit to production. Target: less than 7 days for medium changes.",
|
|
34
|
-
"rationale": "Evololith Product Vision §6: Lead Time measures how quickly changes flow from commit to production. Short lead time indicates efficient pipeline.",
|
|
35
|
-
"severity": "MUST",
|
|
36
|
-
"validationQuery": "CI/CD pipeline exports lead time metric. Report shows median days from first commit to production deployment.",
|
|
37
|
-
"blocking": false,
|
|
38
|
-
"metrics": {
|
|
39
|
-
"name": "Lead Time for Changes",
|
|
40
|
-
"unit": "days",
|
|
41
|
-
"target": "<= 7",
|
|
42
|
-
"measurement": "Median time from first commit of a change to production deployment",
|
|
43
|
-
"dashboardRequired": true
|
|
44
|
-
},
|
|
45
|
-
"references": [
|
|
46
|
-
"reference/governance/standards/vision/evolith-product-vision-master.md#6-executive-vision-scorecards"
|
|
47
|
-
]
|
|
48
|
-
},
|
|
49
|
-
{
|
|
50
|
-
"id": "DORA-03",
|
|
51
|
-
"principle": "Change Failure Rate",
|
|
52
|
-
"statement": "Satellite products MUST measure and report change failure rate. Target: less than 15% of deployments cause failures.",
|
|
53
|
-
"rationale": "Evololith Product Vision §6: Change Failure Rate measures the percentage of deployments causing production failures.",
|
|
54
|
-
"severity": "MUST",
|
|
55
|
-
"validationQuery": "CI/CD pipeline exports change failure rate. Report shows % of deployments requiring rollback or hotfix.",
|
|
56
|
-
"blocking": false,
|
|
57
|
-
"metrics": {
|
|
58
|
-
"name": "Change Failure Rate",
|
|
59
|
-
"unit": "percentage",
|
|
60
|
-
"target": "<= 15%",
|
|
61
|
-
"measurement": "(Failed deployments / Total deployments) * 100 in trailing 4 weeks",
|
|
62
|
-
"dashboardRequired": true
|
|
63
|
-
},
|
|
64
|
-
"references": [
|
|
65
|
-
"reference/governance/standards/vision/evolith-product-vision-master.md#6-executive-vision-scorecards"
|
|
66
|
-
]
|
|
67
|
-
},
|
|
68
|
-
{
|
|
69
|
-
"id": "DORA-04",
|
|
70
|
-
"principle": "Time to Restore",
|
|
71
|
-
"statement": "Satellite products MUST measure and report MTTR (Mean Time To Restore). Target: less than 1 hour for critical failures.",
|
|
72
|
-
"rationale": "Evolith Product Vision §6: Time to Restore measures how quickly the team recovers from failures. Low MTTR indicates effective incident response.",
|
|
73
|
-
"severity": "MUST",
|
|
74
|
-
"validationQuery": "Incident management system exports MTTR. Report shows median hours from failure detection to service restoration.",
|
|
75
|
-
"blocking": false,
|
|
76
|
-
"metrics": {
|
|
77
|
-
"name": "Time to Restore",
|
|
78
|
-
"unit": "hours",
|
|
79
|
-
"target": "<= 1",
|
|
80
|
-
"measurement": "Median time from failure detection to restoration for P1/P2 incidents",
|
|
81
|
-
"dashboardRequired": true
|
|
82
|
-
},
|
|
83
|
-
"references": [
|
|
84
|
-
"reference/governance/standards/vision/evolith-product-vision-master.md#6-executive-vision-scorecards"
|
|
85
|
-
]
|
|
86
|
-
},
|
|
87
|
-
{
|
|
88
|
-
"id": "SPACE-01",
|
|
89
|
-
"principle": "Reliability (Observability)",
|
|
90
|
-
"statement": "Satellite products MUST have observability infrastructure (traces, logs, metrics) operational in production.",
|
|
91
|
-
"rationale": "Evololith Product Vision §6: Reliability ensures production systems are observable. Evolith ADR-0007 mandates OpenTelemetry.",
|
|
92
|
-
"severity": "MUST",
|
|
93
|
-
"validationQuery": "Production observability dashboard accessible. OpenTelemetry traces flowing. Error rate < 1%.",
|
|
94
|
-
"blocking": true,
|
|
95
|
-
"metrics": {
|
|
96
|
-
"name": "Error Rate",
|
|
97
|
-
"unit": "percentage",
|
|
98
|
-
"target": "<= 1%",
|
|
99
|
-
"measurement": "(Failed requests / Total requests) * 100 in trailing 24 hours",
|
|
100
|
-
"dashboardRequired": true
|
|
101
|
-
},
|
|
102
|
-
"references": [
|
|
103
|
-
"reference/governance/standards/vision/evolith-product-vision-master.md#6-executive-vision-scorecards",
|
|
104
|
-
"reference/architecture/adrs/nodejs/0007-observability-telemetry-loki-opentelemetry.md"
|
|
105
|
-
]
|
|
106
|
-
},
|
|
107
|
-
{
|
|
108
|
-
"id": "SPACE-02",
|
|
109
|
-
"principle": "Culture (Team Health)",
|
|
110
|
-
"statement": "Satellite products SHOULD measure team health quarterly. Target: > 70% positive sentiment.",
|
|
111
|
-
"rationale": "Evolith Product Vision §6: Culture measures team satisfaction and health. Teams that are healthy ship higher quality.",
|
|
112
|
-
"severity": "SHOULD",
|
|
113
|
-
"validationQuery": "Team health survey conducted quarterly. Results stored in product documentation. Trend tracked.",
|
|
114
|
-
"blocking": false,
|
|
115
|
-
"metrics": {
|
|
116
|
-
"name": "Team Health Score",
|
|
117
|
-
"unit": "percentage",
|
|
118
|
-
"target": ">= 70%",
|
|
119
|
-
"measurement": "% positive responses in quarterly team health survey",
|
|
120
|
-
"dashboardRequired": false
|
|
121
|
-
},
|
|
122
|
-
"references": [
|
|
123
|
-
"reference/governance/standards/vision/evolith-product-vision-master.md#6-executive-vision-scorecards"
|
|
124
|
-
]
|
|
125
|
-
},
|
|
126
|
-
{
|
|
127
|
-
"id": "SPACE-03",
|
|
128
|
-
"principle": "Execution (Throughput)",
|
|
129
|
-
"statement": "Satellite products MUST measure and report sprint throughput. Target: > 80% of committed work delivered.",
|
|
130
|
-
"rationale": "Evolith Product Vision §6: Execution measures delivery effectiveness. Consistent throughput indicates predictable pipeline.",
|
|
131
|
-
"severity": "SHOULD",
|
|
132
|
-
"validationQuery": "Sprint metrics exported. Report shows % of story points delivered vs committed in trailing 4 sprints.",
|
|
133
|
-
"blocking": false,
|
|
134
|
-
"metrics": {
|
|
135
|
-
"name": "Sprint Throughput",
|
|
136
|
-
"unit": "percentage",
|
|
137
|
-
"target": ">= 80%",
|
|
138
|
-
"measurement": "(Delivered story points / Committed story points) * 100 in trailing 4 sprints",
|
|
139
|
-
"dashboardRequired": true
|
|
140
|
-
},
|
|
141
|
-
"references": [
|
|
142
|
-
"reference/governance/standards/vision/evolith-product-vision-master.md#6-executive-vision-scorecards"
|
|
143
|
-
]
|
|
144
|
-
},
|
|
145
|
-
{
|
|
146
|
-
"id": "SPACE-04",
|
|
147
|
-
"principle": "Communication (Visibility)",
|
|
148
|
-
"statement": "Satellite products MUST have current SDLC state visible to all stakeholders. Target: phase gate status updated within 24h.",
|
|
149
|
-
"rationale": "Evolith Product Vision §6: Communication ensures stakeholders have real-time visibility into development state.",
|
|
150
|
-
"severity": "SHOULD",
|
|
151
|
-
"validationQuery": "Phase gate status board accessible. Updates made within 24h of state change. All stakeholders have access.",
|
|
152
|
-
"blocking": false,
|
|
153
|
-
"metrics": {
|
|
154
|
-
"name": "Gate Status Freshness",
|
|
155
|
-
"unit": "hours",
|
|
156
|
-
"target": "<= 24",
|
|
157
|
-
"measurement": "Max time between state change and status board update",
|
|
158
|
-
"dashboardRequired": true
|
|
159
|
-
},
|
|
160
|
-
"references": [
|
|
161
|
-
"reference/governance/standards/vision/evolith-product-vision-master.md#6-executive-vision-scorecards"
|
|
162
|
-
]
|
|
163
|
-
},
|
|
164
|
-
{
|
|
165
|
-
"id": "SPACE-05",
|
|
166
|
-
"principle": "Sponsorship (Leadership Alignment)",
|
|
167
|
-
"statement": "Satellite products MUST have executive sponsor assigned and actively engaged. Sponsor must review quarterly status.",
|
|
168
|
-
"rationale": "Evolith Product Vision §6: Sponsorship ensures leadership alignment. Active sponsorship prevents strategic drift.",
|
|
169
|
-
"severity": "MUST",
|
|
170
|
-
"validationQuery": "evolith.yaml includes governance.executiveSponsor field. Quarterly review meeting documented.",
|
|
171
|
-
"blocking": false,
|
|
172
|
-
"metrics": {
|
|
173
|
-
"name": "Executive Engagement",
|
|
174
|
-
"unit": "reviews per quarter",
|
|
175
|
-
"target": ">= 1",
|
|
176
|
-
"measurement": "Count of executive sponsor reviews in trailing quarter",
|
|
177
|
-
"dashboardRequired": false
|
|
178
|
-
},
|
|
179
|
-
"references": [
|
|
180
|
-
"reference/governance/standards/vision/evolith-product-vision-master.md#6-executive-vision-scorecards"
|
|
181
|
-
]
|
|
182
|
-
},
|
|
183
|
-
{
|
|
184
|
-
"id": "DRIFT-01",
|
|
185
|
-
"principle": "Architecture Drift Index",
|
|
186
|
-
"statement": "Satellite products MUST measure and report Architecture Drift Index. Target: < 10% drift from Evolith Core standards.",
|
|
187
|
-
"rationale": "Evolith Product Vision §6: Adherence measured via Architecture Drift Index. Drift > threshold indicates erosion of governance.",
|
|
188
|
-
"severity": "MUST",
|
|
189
|
-
"validationQuery": "Evolith CLI validate command run monthly. Report shows % of rules failed vs total applicable rules.",
|
|
190
|
-
"blocking": false,
|
|
191
|
-
"metrics": {
|
|
192
|
-
"name": "Architecture Drift Index",
|
|
193
|
-
"unit": "percentage",
|
|
194
|
-
"target": "<= 10%",
|
|
195
|
-
"measurement": "(Failed rules / Total applicable rules) * 100",
|
|
196
|
-
"dashboardRequired": true
|
|
197
|
-
},
|
|
198
|
-
"references": [
|
|
199
|
-
"reference/governance/standards/vision/evolith-product-vision-master.md#6-executive-vision-scorecards"
|
|
200
|
-
]
|
|
201
|
-
}
|
|
202
|
-
],
|
|
203
|
-
"governance": {
|
|
204
|
-
"complianceVerification": "DORA+SPACE metrics verified quarterly during governance review. Evolith CLI validate command provides drift index.",
|
|
205
|
-
"exceptionProcess": "Architecture Board review required when any metric exceeds target for 2+ consecutive quarters.",
|
|
206
|
-
"dashboardRequirements": "Metrics marked dashboardRequired: true MUST be visible in Evolith Tracker or equivalent executive dashboard.",
|
|
207
|
-
"reportingCadence": "DORA metrics reported monthly. SPACE metrics reported quarterly."
|
|
208
|
-
},
|
|
209
|
-
"bilingual": {
|
|
210
|
-
"en": "Executive Scorecards Rules",
|
|
211
|
-
"es": "Reglas de Scorecards Ejecutivos"
|
|
212
|
-
}
|
|
213
|
-
}
|
|
@@ -1,115 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "../schema/ruleset-standard.schema.json",
|
|
3
|
-
"$id": "https://evolith.dev/rulesets/governance/inheritance.rules.json",
|
|
4
|
-
"title": "Evolith Core Inheritance Rules",
|
|
5
|
-
"description": "Rules governing how satellite repositories inherit governance, architecture, and SDLC rules from Evolith Core. Satellites cannot modify Core rules.",
|
|
6
|
-
"version": "1.0.0",
|
|
7
|
-
"effectiveDate": "2026-01-01",
|
|
8
|
-
"principles": [
|
|
9
|
-
{
|
|
10
|
-
"id": "INH-01",
|
|
11
|
-
"principle": "Core Immutability",
|
|
12
|
-
"statement": "Evolith Core rulesets are immutable once published. Satellites inherit rules; they do not fork, modify, or override Core rules.",
|
|
13
|
-
"rationale": "If satellites could modify Core rules, the corporate governance baseline would fragment. Federated governance requires a single source of truth.",
|
|
14
|
-
"enforcement": "Evolith CLI validates satellite rulesets against Core version. Satellites cannot publish their own rulesets/ directory."
|
|
15
|
-
},
|
|
16
|
-
{
|
|
17
|
-
"id": "INH-02",
|
|
18
|
-
"principle": "Version Pinning",
|
|
19
|
-
"statement": "Satellites MUST pin to a specific Core version (coreRef.version) in their evolith.yaml. Unpinned or 'latest' references are prohibited.",
|
|
20
|
-
"rationale": "Version pinning ensures reproducible governance. 'Latest' creates drift where different satellites run different rule versions.",
|
|
21
|
-
"enforcement": "evolith-yaml.schema.json requires semver version in coreRef.version. CLI warns on missing pin."
|
|
22
|
-
},
|
|
23
|
-
{
|
|
24
|
-
"id": "INH-03",
|
|
25
|
-
"principle": "Upgrade Only, Never Downgrade",
|
|
26
|
-
"statement": "Satellite governance version can only increase. Downgrading to an older version requires Architecture Board exception.",
|
|
27
|
-
"rationale": "Governance downgrade creates compliance gaps. Exception process ensures downgrade is deliberate and documented.",
|
|
28
|
-
"enforcement": "CLI tracks governance version history. Downgrade triggers warning and requires --force flag with justification."
|
|
29
|
-
},
|
|
30
|
-
{
|
|
31
|
-
"id": "INH-04",
|
|
32
|
-
"principle": "Satellite Extension via Local ADRs",
|
|
33
|
-
"statement": "Satellites can define local ADRs for decisions not yet promoted to Core. These are tracked in evolith.yaml compliance.adrRegistry.",
|
|
34
|
-
"rationale": "Not every decision needs to be corporate. Satellites have local autonomy for product-specific choices, tracked separately from Core ADRs.",
|
|
35
|
-
"enforcement": "Local ADRs must haveEvolithSatellite tag in frontmatter. They are not subject to Core immutability rules."
|
|
36
|
-
},
|
|
37
|
-
{
|
|
38
|
-
"id": "INH-05",
|
|
39
|
-
"principle": "Promotion via Architecture Board",
|
|
40
|
-
"statement": "Local ADR promotion to Core requires Architecture Board review. Evidence from satellite implementation is required.",
|
|
41
|
-
"rationale": "Core ADRs must be validated across multiple contexts before being elevated. Single-satellite evidence is insufficient.",
|
|
42
|
-
"enforcement": "Promotion request includes: original satellite ADR, evidence of adoption, list of other satellites that could benefit."
|
|
43
|
-
},
|
|
44
|
-
{
|
|
45
|
-
"id": "INH-06",
|
|
46
|
-
"principle": "Mandatory Architecture Tracker",
|
|
47
|
-
"statement": "Satellite repositories MUST contain a DECISIONS.md file in their root directory to explicitly declare their architecture inheritance contract.",
|
|
48
|
-
"rationale": "Without DECISIONS.md, architectural divergences and adoption of Core rules remain invisible, creating hidden technical debt.",
|
|
49
|
-
"enforcement": "CLI validates the presence of DECISIONS.md in the root directory of all satellites."
|
|
50
|
-
}
|
|
51
|
-
],
|
|
52
|
-
"inheritanceChain": {
|
|
53
|
-
"description": "Satellites inherit from Core only. Multi-level inheritance (satellite → satellite) is prohibited unless explicitly approved by Architecture Board.",
|
|
54
|
-
"levels": [
|
|
55
|
-
{
|
|
56
|
-
"level": 0,
|
|
57
|
-
"name": "Evolith Core",
|
|
58
|
-
"type": "Authority",
|
|
59
|
-
"description": "Source of truth for all governance, architecture, and SDLC rules. Only place where rulesets/ and schema/ are authoritative."
|
|
60
|
-
},
|
|
61
|
-
{
|
|
62
|
-
"level": 1,
|
|
63
|
-
"name": "Satellite Repository",
|
|
64
|
-
"type": "Inheritor",
|
|
65
|
-
"description": "Inherits Core rules via evolith.yaml. Cannot modify Core. Can define local ADRs and extend within allowed boundaries."
|
|
66
|
-
}
|
|
67
|
-
],
|
|
68
|
-
"prohibited": [
|
|
69
|
-
"Satellite → Satellite inheritance (without Architecture Board exception)",
|
|
70
|
-
"Satellite modifying Core rulesets/ or schema/",
|
|
71
|
-
"Satellite creating parallel rulesets/ directory",
|
|
72
|
-
"Core referencing satellite rules as authoritative"
|
|
73
|
-
]
|
|
74
|
-
},
|
|
75
|
-
"upgradeProcess": {
|
|
76
|
-
"steps": [
|
|
77
|
-
{
|
|
78
|
-
"step": 1,
|
|
79
|
-
"action": "Evolith CLI notifies satellite of new Core version",
|
|
80
|
-
"owner": "CLI automation"
|
|
81
|
-
},
|
|
82
|
-
{
|
|
83
|
-
"step": 2,
|
|
84
|
-
"action": "Satellite owner reviews changelog between current and new version",
|
|
85
|
-
"owner": "Satellite Architect"
|
|
86
|
-
},
|
|
87
|
-
{
|
|
88
|
-
"step": 3,
|
|
89
|
-
"action": "Update evolith.yaml coreRef.version to new version",
|
|
90
|
-
"owner": "Satellite Architect"
|
|
91
|
-
},
|
|
92
|
-
{
|
|
93
|
-
"step": 4,
|
|
94
|
-
"action": "Run CI validation against new ruleset version",
|
|
95
|
-
"owner": "CI pipeline"
|
|
96
|
-
},
|
|
97
|
-
{
|
|
98
|
-
"step": 5,
|
|
99
|
-
"action": "Fix any rule violations introduced by upgrade",
|
|
100
|
-
"owner": "Satellite team"
|
|
101
|
-
},
|
|
102
|
-
{
|
|
103
|
-
"step": 6,
|
|
104
|
-
"action": "Architecture Board reviews if breaking changes affected bounded contexts",
|
|
105
|
-
"owner": "Architecture Board"
|
|
106
|
-
}
|
|
107
|
-
],
|
|
108
|
-
"breakGlass": "Emergency Core patches (security, legal) can be fast-tracked with Technology Director approval and immediate satellite notification."
|
|
109
|
-
},
|
|
110
|
-
"reference": {
|
|
111
|
-
"evolithYamlSchema": "../schema/evolith-yaml.schema.json",
|
|
112
|
-
"childRepoGuide": "reference/governance/standards/onboarding/child-repository-inheritance-guide.md",
|
|
113
|
-
"repositoryTaxonomy": "reference/governance/standards/repository-taxonomy.md"
|
|
114
|
-
}
|
|
115
|
-
}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "../schema/ruleset-standard.schema.json",
|
|
3
|
-
"$id": "https://evolith.dev/rulesets/governance/knowledge-intake.rules.json",
|
|
4
|
-
"title": "External Knowledge Intake Rules",
|
|
5
|
-
"version": "0.2.0",
|
|
6
|
-
"effectiveDate": "2026-06-20",
|
|
7
|
-
"scope": "evolith-core",
|
|
8
|
-
"category": "knowledge-intake",
|
|
9
|
-
"rules": [
|
|
10
|
-
{ "id": "KI-R01", "title": "Provenance and rights are mandatory", "description": "Every candidate declares source class, locator, retrieval date, and rights status.", "severity": "MUST", "blocking": true },
|
|
11
|
-
{ "id": "KI-R02", "title": "Winston owns review", "description": "Every candidate declares @winston as review owner, next review date, and review freshness.", "severity": "MUST", "blocking": true },
|
|
12
|
-
{ "id": "KI-R03", "title": "Promotion requires executable evidence", "description": "Executable promotion requires ADR, Native rule, OPA policy, and fixtures.", "severity": "MUST", "blocking": true },
|
|
13
|
-
{ "id": "KI-R04", "title": "Topology contract completeness", "description": "Every candidate declares maturity, preconditions, anti-patterns, alternatives, and related topologies.", "severity": "MUST", "blocking": true },
|
|
14
|
-
{ "id": "KI-R05", "title": "Source registry linkage", "description": "Every candidate links to a valid SRC-* source registry entry and every SRC-* entry links back to its KI-* candidates.", "severity": "MUST", "blocking": true },
|
|
15
|
-
{ "id": "KI-R06", "title": "Promotion state machine", "description": "Promotion transitions must follow candidate → evaluated → accepted → executable; any status may transition to retired. No skipping stages.", "severity": "MUST", "blocking": true },
|
|
16
|
-
{ "id": "KI-R07", "title": "Promotion evidence and disposition", "description": "Non-candidate statuses require promoted_at and promoted_by. Accepted/executable require a non-null ADR. Retired requires a non-null disposition reason.", "severity": "MUST", "blocking": true }
|
|
17
|
-
]
|
|
18
|
-
}
|
|
@@ -1,148 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
-
"$id": "https://evolith.dev/rulesets/governance/open-core-boundary.rules.json",
|
|
4
|
-
"title": "Reglas de Frontera Open-Core",
|
|
5
|
-
"description": "Reglas que definen la frontera entre Evolith Core (código abierto, libremente disponible) y Evolith Enterprise (SaaS, pago). Estas reglas previenen la contaminación entre capas y protegen la estrategia Open-Core.",
|
|
6
|
-
"version": "1.0.0",
|
|
7
|
-
"effectiveDate": "2026-06-06",
|
|
8
|
-
"scope": "all",
|
|
9
|
-
"category": "open-core",
|
|
10
|
-
"principles": [
|
|
11
|
-
{
|
|
12
|
-
"id": "OCB-01",
|
|
13
|
-
"principle": "Core Permanece Independiente de Licencia",
|
|
14
|
-
"statement": "Los rulesets, esquemas, ADRs y estándares de Evolith Core NO DEBEN referenciar ni depender de ninguna licencia comercial, feature flag de pago, o dependencia exclusiva de enterprise.",
|
|
15
|
-
"rationale": "Core es la fundación constitucional. Si requiere componentes comerciales, los productos satélite se vuelven dependientes de Evolith la empresa, no de Evolith el framework.",
|
|
16
|
-
"severity": "MUST",
|
|
17
|
-
"validationQuery": "Todos los rulesets, schemas y ADRs no tienen import/reference a paquetes enterprise-only, license keys, o feature flags. El análisis de código muestra cero dependencias de enterprise SDKs en artefactos Core.",
|
|
18
|
-
"blocking": true,
|
|
19
|
-
"references": [
|
|
20
|
-
"reference/governance/standards/vision/evolith-product-vision-master.es.md#5-business-strategy-open-core"
|
|
21
|
-
]
|
|
22
|
-
},
|
|
23
|
-
{
|
|
24
|
-
"id": "OCB-02",
|
|
25
|
-
"principle": "Features Enterprise Marcadas Explícitamente",
|
|
26
|
-
"statement": "Cualquier regla, schema o artefacto que sea solo Enterprise DEBE estar explícitamente marcado con 'availability: enterprise' en su metadata. Artefactos sin marcar por defecto son Core (abierto).",
|
|
27
|
-
"rationale": "Ambigüedad sobre qué es Core vs Enterprise crea confusión de compliance. Marcado explícito asegura fronteras claras.",
|
|
28
|
-
"severity": "MUST",
|
|
29
|
-
"validationQuery": "Artefactos Enterprise incluyen campo de metadata 'availability: enterprise'. Artefactos Core omiten el campo o setean 'availability: core'. Ningún artefacto sin este campo puede ser tratado como enterprise-only.",
|
|
30
|
-
"blocking": true,
|
|
31
|
-
"references": [
|
|
32
|
-
"reference/governance/standards/vision/evolith-product-vision-master.es.md#5-business-strategy-open-core"
|
|
33
|
-
]
|
|
34
|
-
},
|
|
35
|
-
{
|
|
36
|
-
"id": "OCB-03",
|
|
37
|
-
"principle": "ACLs Son Features Enterprise",
|
|
38
|
-
"statement": "Las implementaciones de Anti-Corruption Layer para Jira, Trello, Linear y sistemas externos similares son features Enterprise. Core provee las reglas ACL; las integraciones en sí pertenecen a Enterprise.",
|
|
39
|
-
"rationale": "Los ACLs son el vector de monetización para Evolith. Deben permanecer en la capa Enterprise para proteger el modelo de negocio mientras son gobernados por reglas Core.",
|
|
40
|
-
"severity": "MUST",
|
|
41
|
-
"validationQuery": "El código de implementación de ACL está etiquetado 'enterprise' en el repositorio. Los rulesets Core referencian requisitos ACL pero no incluyen código de implementación.",
|
|
42
|
-
"blocking": true,
|
|
43
|
-
"references": [
|
|
44
|
-
"reference/governance/standards/vision/evolith-product-vision-master.es.md#5-business-strategy-open-core"
|
|
45
|
-
]
|
|
46
|
-
},
|
|
47
|
-
{
|
|
48
|
-
"id": "OCB-04",
|
|
49
|
-
"principle": "CLI y MCP Permanecen Core",
|
|
50
|
-
"statement": "Las implementaciones de command-line interface y MCP server DEBEN permanecer completamente abiertas en Core. No pueden estar detrás de licencias pagadas o suscripciones enterprise.",
|
|
51
|
-
"rationale": "CLI y MCP son la capa de exposición primaria para Evolith Core. Hacerlos enterprise-only bloquearía la adopción y contradiría la misión de democratización.",
|
|
52
|
-
"severity": "MUST",
|
|
53
|
-
"validationQuery": "El código fuente de CLI tiene licencia MIT o Apache 2.0. La implementación del servidor MCP no tiene chequeo de licencia en runtime. Todos los comandos CLI funcionan sin credenciales enterprise.",
|
|
54
|
-
"blocking": true,
|
|
55
|
-
"references": [
|
|
56
|
-
"reference/governance/standards/vision/evolith-product-vision-master.es.md#5-business-strategy-open-core"
|
|
57
|
-
]
|
|
58
|
-
},
|
|
59
|
-
{
|
|
60
|
-
"id": "OCB-05",
|
|
61
|
-
"principle": "Features de Tracker No Pueden Penetrar Core",
|
|
62
|
-
"statement": "Features específicas de Evolith Tracker (SaaS dashboard, analítica avanzada, UI de gestión multi-tenancy, logs de auditoría UI) no pueden ser implementadas como reglas o estándares Core.",
|
|
63
|
-
"rationale": "Tracker es la capa comercial SaaS. Sus detalles de implementación no deben influir en las definiciones Core.",
|
|
64
|
-
"severity": "MUST",
|
|
65
|
-
"validationQuery": "Los rulesets Core no contain references a 'tracker', 'saas', 'dashboard', 'multi-tenant-ui', o conceptos similares específicos de Tracker. El namespace de reglas está limpio.",
|
|
66
|
-
"blocking": true,
|
|
67
|
-
"references": [
|
|
68
|
-
"reference/governance/standards/vision/evolith-product-vision-master.es.md#5-business-strategy-open-core"
|
|
69
|
-
]
|
|
70
|
-
},
|
|
71
|
-
{
|
|
72
|
-
"id": "OCB-06",
|
|
73
|
-
"principle": "Reference Corpus Es Core",
|
|
74
|
-
"statement": "El Reference Corpus (ADRs, estándares, blueprints, taxonomías, rulesets, schemas) es Core y libremente disponible. No hay nivel de acceso dentro de Core (ej., 'basic' vs 'premium' standards).",
|
|
75
|
-
"rationale": "Todos los estándares son iguales en Core. Poner algunos estándares detrás de paywall fragmentaría la baseline constitucional.",
|
|
76
|
-
"severity": "MUST",
|
|
77
|
-
"validationQuery": "Todos los documentos de reference/ son públicamente accesibles. Ningún documento referencia un nivel 'premium' o 'enterprise' dentro de Core.",
|
|
78
|
-
"blocking": true,
|
|
79
|
-
"references": [
|
|
80
|
-
"reference/governance/standards/vision/evolith-product-vision-master.es.md#5-business-strategy-open-core"
|
|
81
|
-
]
|
|
82
|
-
},
|
|
83
|
-
{
|
|
84
|
-
"id": "OCB-07",
|
|
85
|
-
"principle": "Innovaciones Enterprise Pueden Promocionar a Core",
|
|
86
|
-
"statement": "Features inicialmente desarrolladas en Evolith Enterprise (Tracker) pueden ser promocionadas a Core via el proceso estándar de ADR, siempre que beneficien al ecosistema más amplio.",
|
|
87
|
-
"rationale": "La capa enterprise es un motor de innovación. Features exitosas deben ascender a Core para beneficio universal, siguiendo el proceso de promoción de gobernanza federada.",
|
|
88
|
-
"severity": "SHOULD",
|
|
89
|
-
"validationQuery": "Features enterprise que abordan concerns arquitectónicos generales son rastreadas para promoción via revisión del Architecture Board. La promoción sigue el ciclo de vida estándar de ADR.",
|
|
90
|
-
"blocking": false,
|
|
91
|
-
"references": [
|
|
92
|
-
"reference/governance/standards/vision/evolith-product-vision-master.es.md#5-business-strategy-open-core",
|
|
93
|
-
"rulesets/governance/inheritance.rules.json"
|
|
94
|
-
]
|
|
95
|
-
},
|
|
96
|
-
{
|
|
97
|
-
"id": "OCB-08",
|
|
98
|
-
"principle": "Core No Puede Requerir Enterprise para Funcionar",
|
|
99
|
-
"statement": "Los productos satélite deben poder implementar las reglas Core sin comprar o suscribirse a Evolith Enterprise. Las features Enterprise son aditivas, nunca bloqueantes.",
|
|
100
|
-
"rationale": "El Core debe permanecer independientemente viable. Si implementar Core requiere licencia enterprise, el modelo Open-Core colapsa.",
|
|
101
|
-
"severity": "MUST",
|
|
102
|
-
"validationQuery": "Test end-to-end ejecuta el ruleset Core contra un satélite sin credenciales enterprise. Todas las reglas Core se validan exitosamente sin integración enterprise.",
|
|
103
|
-
"blocking": true,
|
|
104
|
-
"references": [
|
|
105
|
-
"reference/governance/standards/vision/evolith-product-vision-master.es.md#5-business-strategy-open-core"
|
|
106
|
-
]
|
|
107
|
-
}
|
|
108
|
-
],
|
|
109
|
-
"openCoreMatrix": {
|
|
110
|
-
"description": "Separación definitiva entre features Core (abierto) y Enterprise (pagado)",
|
|
111
|
-
"core": [
|
|
112
|
-
"Constitución Core (rulesets/, reference/)",
|
|
113
|
-
"ADRs y Estándares",
|
|
114
|
-
"Interfaces CLI y MCP",
|
|
115
|
-
"JSON Schemas para todos los tipos de artefacto",
|
|
116
|
-
"Reglas de Phase Gates",
|
|
117
|
-
"Reglas de fase de arquitectura (F1/F2/F3)",
|
|
118
|
-
"Reglas de herencia de gobernanza",
|
|
119
|
-
"Engineering manifesto",
|
|
120
|
-
"Definition of Done",
|
|
121
|
-
"Repository taxonomy",
|
|
122
|
-
"Agente de Análisis de Impacto"
|
|
123
|
-
],
|
|
124
|
-
"enterprise": [
|
|
125
|
-
"Plataforma SaaS Evolith Tracker",
|
|
126
|
-
"Dashboards y scorecards avanzados",
|
|
127
|
-
"Implementaciones ACL (Jira, Trello, Linear)",
|
|
128
|
-
"Reports ejecutivos de auditoría",
|
|
129
|
-
"Gestión UI multi-tenant",
|
|
130
|
-
"Integración de soporte prioritario",
|
|
131
|
-
"Analítica y reportería enterprise",
|
|
132
|
-
"Automación de compliance más allá de reglas Core",
|
|
133
|
-
"Gestión de permisos más allá de ACL basado en archivos"
|
|
134
|
-
]
|
|
135
|
-
},
|
|
136
|
-
"governance": {
|
|
137
|
-
"complianceVerification": "Las reglas de frontera Open-Core son verificadas durante pre-commit via impact-analysis-synchronizer.mjs cuando cualquier ruleset es modificado.",
|
|
138
|
-
"exceptionProcess": "Revisión del Architecture Board requerida para cualquier regla que difumine la frontera Core/Enterprise. La excepción debe incluir justificación de negocio y análisis de impacto de adopción.",
|
|
139
|
-
"metrics": [
|
|
140
|
-
"opencore.enterprise-leaks.count — features enterprise encontradas en artefactos Core",
|
|
141
|
-
"opencore.core-dependencies.count — reglas Core requiriendo features enterprise"
|
|
142
|
-
]
|
|
143
|
-
},
|
|
144
|
-
"bilingual": {
|
|
145
|
-
"en": "Open-Core Boundary Rules",
|
|
146
|
-
"es": "Reglas de Frontera Open-Core"
|
|
147
|
-
}
|
|
148
|
-
}
|
|
@@ -1,148 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "../schema/ruleset-standard.schema.json",
|
|
3
|
-
"$id": "https://evolith.dev/rulesets/governance/open-core-boundary.rules.json",
|
|
4
|
-
"title": "Open-Core Boundary Rules",
|
|
5
|
-
"description": "Rules defining the boundary between Evolith Core (open source, freely available) and Evolith Enterprise (SaaS, paid). These rules prevent contamination between layers and protect the Open-Core strategy.",
|
|
6
|
-
"version": "1.0.0",
|
|
7
|
-
"effectiveDate": "2026-06-06",
|
|
8
|
-
"scope": "all",
|
|
9
|
-
"category": "open-core",
|
|
10
|
-
"principles": [
|
|
11
|
-
{
|
|
12
|
-
"id": "OCB-01",
|
|
13
|
-
"principle": "Core Remains License-Agnostic",
|
|
14
|
-
"statement": "Evolith Core rulesets, schemas, ADRs, and standards MUST NOT reference or depend on any commercial license, paid feature flag, or enterprise-only dependency.",
|
|
15
|
-
"rationale": "Core is the constitutional foundation. If it requires commercial components, satellite products become dependent on Evolith the company, not Evolith the framework.",
|
|
16
|
-
"severity": "MUST",
|
|
17
|
-
"validationQuery": "All rulesets, schemas, and ADRs have no import/reference to enterprise-only packages, license keys, or feature flags. Code analysis shows zero enterprise SDK dependencies in Core artifacts.",
|
|
18
|
-
"blocking": true,
|
|
19
|
-
"references": [
|
|
20
|
-
"reference/governance/standards/vision/evolith-product-vision-master.md#5-business-strategy-open-core"
|
|
21
|
-
]
|
|
22
|
-
},
|
|
23
|
-
{
|
|
24
|
-
"id": "OCB-02",
|
|
25
|
-
"principle": "Enterprise Features Explicitly Marked",
|
|
26
|
-
"statement": "Any rule, schema, or artifact that is Enterprise-only MUST be explicitly marked with 'availability: enterprise' in its metadata. Unmarked artifacts default to Core (open).",
|
|
27
|
-
"rationale": "Ambiguity about what is Core vs Enterprise creates compliance confusion. Explicit marking ensures clear boundaries.",
|
|
28
|
-
"severity": "MUST",
|
|
29
|
-
"validationQuery": "Enterprise artifacts include metadata field 'availability: enterprise'. Core artifacts either omit the field or set 'availability: core'. No artifact without this field can be treated as enterprise-only.",
|
|
30
|
-
"blocking": true,
|
|
31
|
-
"references": [
|
|
32
|
-
"reference/governance/standards/vision/evolith-product-vision-master.md#5-business-strategy-open-core"
|
|
33
|
-
]
|
|
34
|
-
},
|
|
35
|
-
{
|
|
36
|
-
"id": "OCB-03",
|
|
37
|
-
"principle": "ACLs Are Enterprise Features",
|
|
38
|
-
"statement": "Anti-Corruption Layer implementations for Jira, Trello, Linear, and similar external systems are Enterprise features. Core provides the ACL rules; the integrations themselves belong to Enterprise.",
|
|
39
|
-
"rationale": "ACLs are the monetization vector for Evolith. They must remain in the Enterprise layer to protect the business model while being governed by Core rules.",
|
|
40
|
-
"severity": "MUST",
|
|
41
|
-
"validationQuery": "ACL implementation code is tagged 'enterprise' in repository. Core rulesets reference ACL requirements but do not include implementation code.",
|
|
42
|
-
"blocking": true,
|
|
43
|
-
"references": [
|
|
44
|
-
"reference/governance/standards/vision/evolith-product-vision-master.md#5-business-strategy-open-core"
|
|
45
|
-
]
|
|
46
|
-
},
|
|
47
|
-
{
|
|
48
|
-
"id": "OCB-04",
|
|
49
|
-
"principle": "CLI and MCP Remain Core",
|
|
50
|
-
"statement": "Command-line interface and MCP server implementations MUST remain fully open in Core. They cannot be gated behind paid licenses or enterprise subscriptions.",
|
|
51
|
-
"rationale": "CLI and MCP are the primary exposure layer for Evolith Core. Making them enterprise-only would block adoption and contradict the democratization mission.",
|
|
52
|
-
"severity": "MUST",
|
|
53
|
-
"validationQuery": "CLI source code is MIT or Apache 2.0 licensed. MCP server implementation has no license check at runtime. All CLI commands work without enterprise credentials.",
|
|
54
|
-
"blocking": true,
|
|
55
|
-
"references": [
|
|
56
|
-
"reference/governance/standards/vision/evolith-product-vision-master.md#5-business-strategy-open-core"
|
|
57
|
-
]
|
|
58
|
-
},
|
|
59
|
-
{
|
|
60
|
-
"id": "OCB-05",
|
|
61
|
-
"principle": "Tracker Features Cannot Penetrate Core",
|
|
62
|
-
"statement": "Features specific to Evolith Tracker (SaaS dashboard, advanced analytics, multi-tenancy management UI, audit logs UI) cannot be implemented as Core rules or standards.",
|
|
63
|
-
"rationale": "Tracker is the commercial SaaS layer. Its implementation details must not influence Core definitions.",
|
|
64
|
-
"severity": "MUST",
|
|
65
|
-
"validationQuery": "Core rulesets contain no references to 'tracker', 'saas', 'dashboard', 'multi-tenant-ui', or similar Tracker-specific concepts. Rules namespace is clean.",
|
|
66
|
-
"blocking": true,
|
|
67
|
-
"references": [
|
|
68
|
-
"reference/governance/standards/vision/evolith-product-vision-master.md#5-business-strategy-open-core"
|
|
69
|
-
]
|
|
70
|
-
},
|
|
71
|
-
{
|
|
72
|
-
"id": "OCB-06",
|
|
73
|
-
"principle": "Reference Corpus Is Core",
|
|
74
|
-
"statement": "The Reference Corpus (ADRs, standards, blueprints, taxonomies, rulesets, schemas) is Core and freely available. No tier of access within Core (e.g., 'basic' vs 'premium' standards).",
|
|
75
|
-
"rationale": "All standards are equal in Core. Paywalling some standards would fragment the constitutional baseline.",
|
|
76
|
-
"severity": "MUST",
|
|
77
|
-
"validationQuery": "All reference/ documents are publicly accessible. No document references a 'premium' or 'enterprise' tier within Core.",
|
|
78
|
-
"blocking": true,
|
|
79
|
-
"references": [
|
|
80
|
-
"reference/governance/standards/vision/evolith-product-vision-master.md#5-business-strategy-open-core"
|
|
81
|
-
]
|
|
82
|
-
},
|
|
83
|
-
{
|
|
84
|
-
"id": "OCB-07",
|
|
85
|
-
"principle": "Enterprise Innovations Can Promote to Core",
|
|
86
|
-
"statement": "Features initially developed in Evolith Enterprise (Tracker) can be promoted to Core via the standard ADR process, provided they benefit the broader ecosystem.",
|
|
87
|
-
"rationale": "The enterprise layer is an innovation engine. Successful features should ascend to Core for universal benefit, following the federated governance promotion process.",
|
|
88
|
-
"severity": "SHOULD",
|
|
89
|
-
"validationQuery": "Enterprise features that address通用 architectural concerns are tracked for promotion via Architecture Board review. Promotion follows standard ADR lifecycle.",
|
|
90
|
-
"blocking": false,
|
|
91
|
-
"references": [
|
|
92
|
-
"reference/governance/standards/vision/evolith-product-vision-master.md#5-business-strategy-open-core",
|
|
93
|
-
"rulesets/governance/inheritance.rules.json"
|
|
94
|
-
]
|
|
95
|
-
},
|
|
96
|
-
{
|
|
97
|
-
"id": "OCB-08",
|
|
98
|
-
"principle": "Core Cannot Require Enterprise to Function",
|
|
99
|
-
"statement": "Satellite products must be able to implement Core rules without purchasing or subscribing to Evolith Enterprise. Enterprise features are additive, never blocking.",
|
|
100
|
-
"rationale": "The Core must remain independently viable. If implementing Core requires enterprise license, the Open-Core model collapses.",
|
|
101
|
-
"severity": "MUST",
|
|
102
|
-
"validationQuery": "End-to-end test runs Core ruleset against a satellite without enterprise credentials. All Core rules validate successfully without enterprise integration.",
|
|
103
|
-
"blocking": true,
|
|
104
|
-
"references": [
|
|
105
|
-
"reference/governance/standards/vision/evolith-product-vision-master.md#5-business-strategy-open-core"
|
|
106
|
-
]
|
|
107
|
-
}
|
|
108
|
-
],
|
|
109
|
-
"openCoreMatrix": {
|
|
110
|
-
"description": "Definitive separation between Core (open) and Enterprise (paid) features",
|
|
111
|
-
"core": [
|
|
112
|
-
"Core Constitution (rulesets/, reference/)",
|
|
113
|
-
"ADRs and Standards",
|
|
114
|
-
"CLI and MCP interfaces",
|
|
115
|
-
"JSON Schemas for all artifact types",
|
|
116
|
-
"Phase Gate rules",
|
|
117
|
-
"Architecture phase rules (F1/F2/F3)",
|
|
118
|
-
"Governance inheritance rules",
|
|
119
|
-
"Engineering manifesto",
|
|
120
|
-
"Definition of Done",
|
|
121
|
-
"Repository taxonomy",
|
|
122
|
-
"Impact Analysis Agent"
|
|
123
|
-
],
|
|
124
|
-
"enterprise": [
|
|
125
|
-
"Evolith Tracker SaaS platform",
|
|
126
|
-
"Advanced dashboards and scorecards",
|
|
127
|
-
"ACL implementations (Jira, Trello, Linear)",
|
|
128
|
-
"Executive audit reports",
|
|
129
|
-
"Multi-tenant UI management",
|
|
130
|
-
"Priority support integration",
|
|
131
|
-
"Enterprise analytics and reporting",
|
|
132
|
-
"Compliance automation beyond Core rules",
|
|
133
|
-
"Permission management beyond file-based ACL"
|
|
134
|
-
]
|
|
135
|
-
},
|
|
136
|
-
"governance": {
|
|
137
|
-
"complianceVerification": "Open-Core boundary rules checked during pre-commit via impact-analysis-synchronizer.mjs when any ruleset is modified.",
|
|
138
|
-
"exceptionProcess": "Architecture Board review required for any rule that blurs Core/Enterprise boundary. Exception must include business justification and adoption impact analysis.",
|
|
139
|
-
"metrics": [
|
|
140
|
-
"opencore.enterprise-leaks.count — Enterprise features found in Core artifacts",
|
|
141
|
-
"opencore.core-dependencies.count — Core rules requiring enterprise features"
|
|
142
|
-
]
|
|
143
|
-
},
|
|
144
|
-
"bilingual": {
|
|
145
|
-
"en": "Open-Core Boundary Rules",
|
|
146
|
-
"es": "Reglas de Frontera Open-Core"
|
|
147
|
-
}
|
|
148
|
-
}
|