@evolith/core-domain 1.0.1 → 1.0.3
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/README.md +102 -0
- 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,131 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "../schema/ruleset-standard.schema.json",
|
|
3
|
-
"$id": "https://evolith.dev/rulesets/adr/adr-0040-multi-runtime.rules.json",
|
|
4
|
-
"title": "ADR-0040 — Multi-Runtime Selection Matrix Rules",
|
|
5
|
-
"description": "Machine-readable rules encoding ADR-0040 Multi-Runtime Selection. Defines runtime selection by workload profile and inter-runtime communication rules.",
|
|
6
|
-
"version": "1.0.0",
|
|
7
|
-
"adrId": "ADR-0040",
|
|
8
|
-
"adrTitle": "Multi-Runtime Selection Matrix & Inter-Runtime Contracts",
|
|
9
|
-
"status": "Approved",
|
|
10
|
-
"date": "2026-05-11",
|
|
11
|
-
"effectiveDate": "2026-05-11",
|
|
12
|
-
"rules": [
|
|
13
|
-
{
|
|
14
|
-
"id": "RUNT-01",
|
|
15
|
-
"severity": "MUST",
|
|
16
|
-
"category": "runtime-selection",
|
|
17
|
-
"title": "Runtime selected by workload profile only",
|
|
18
|
-
"description": "Teams MUST select the target runtime based exclusively on the specific workload profile. Language selection must not be based on subjective preference.",
|
|
19
|
-
"rationale": "ADR-0040 §Decision: Optimized cost/performance. Each workload runs on the engine most efficient for its memory/CPU profile.",
|
|
20
|
-
"validationQuery": "Runtime selection documented in evolith.yaml and justified by workload profile analysis.",
|
|
21
|
-
"blocking": true
|
|
22
|
-
},
|
|
23
|
-
{
|
|
24
|
-
"id": "RUNT-02",
|
|
25
|
-
"severity": "MUST",
|
|
26
|
-
"category": "web-apis",
|
|
27
|
-
"title": "Web APIs and BFF use Node.js/TypeScript",
|
|
28
|
-
"description": "MANDATE: Node.js/TypeScript for Web APIs, BFF, and I/O-bound workloads. Rationale: High I/O concurrency, rapid delivery, extensive community ecosystem.",
|
|
29
|
-
"rationale": "ADR-0040 §Runtime Selection Matrix: Web APIs, BFF, I/O Bound → Node.js/TypeScript.",
|
|
30
|
-
"validationQuery": "Web API and BFF services run on Node.js. No .NET or other runtimes for these workloads without explicit ADR exception.",
|
|
31
|
-
"blocking": true,
|
|
32
|
-
"workload": "Web APIs, BFF, I/O Bound",
|
|
33
|
-
"runtime": "Node.js/TypeScript"
|
|
34
|
-
},
|
|
35
|
-
{
|
|
36
|
-
"id": "RUNT-03",
|
|
37
|
-
"severity": "MUST",
|
|
38
|
-
"category": "compute-workloads",
|
|
39
|
-
"title": "High compute and batch use .NET (C#)",
|
|
40
|
-
"description": "MANDATE: .NET (C#) for High Compute, ETL, and Batch workloads. Rationale: Superior multi-threading performance, typed raw compute, heavy math.",
|
|
41
|
-
"rationale": "ADR-0040 §Runtime Selection Matrix: High Compute, ETL, Batch → .NET (C#).",
|
|
42
|
-
"validationQuery": "High compute services (ETL, batch processing, mathematical computation) run on .NET. Documented workload classification in evolith.yaml.",
|
|
43
|
-
"blocking": true,
|
|
44
|
-
"workload": "High Compute, ETL, Batch",
|
|
45
|
-
"runtime": ".NET (C#)"
|
|
46
|
-
},
|
|
47
|
-
{
|
|
48
|
-
"id": "RUNT-04",
|
|
49
|
-
"severity": "MUST",
|
|
50
|
-
"category": "mobile-workloads",
|
|
51
|
-
"title": "Mobile with hardware access uses Android/Kotlin",
|
|
52
|
-
"description": "MANDATE: Android (Kotlin) for Operative Mobility workloads with direct hardware peripheral access (Scanners, GPS, Cameras) and strict offline mode requirements.",
|
|
53
|
-
"rationale": "ADR-0040 §Runtime Selection Matrix: Operative Mobility → Android (Kotlin).",
|
|
54
|
-
"validationQuery": "Mobile apps requiring hardware access run on Android/Kotlin. iOS considered only with Architecture Board exception.",
|
|
55
|
-
"blocking": true,
|
|
56
|
-
"workload": "Operative Mobility",
|
|
57
|
-
"runtime": "Android (Kotlin)"
|
|
58
|
-
},
|
|
59
|
-
{
|
|
60
|
-
"id": "RUNT-05",
|
|
61
|
-
"severity": "MUST NOT",
|
|
62
|
-
"category": "runtime-coupling",
|
|
63
|
-
"title": "Direct runtime dependency forbidden",
|
|
64
|
-
"description": "Direct runtime dependency is forbidden. Communication between disparate runtimes MUST traverse explicitly defined boundaries. No Node.js code directly importing .NET assemblies or vice versa.",
|
|
65
|
-
"rationale": "ADR-0040 §Decision: Runtime isolation prevents tight coupling that prevents independent evolution.",
|
|
66
|
-
"validationQuery": "No direct cross-runtime imports. All inter-runtime calls go through protocol boundaries (gRPC/REST).",
|
|
67
|
-
"blocking": true
|
|
68
|
-
},
|
|
69
|
-
{
|
|
70
|
-
"id": "RUNT-06",
|
|
71
|
-
"severity": "MUST",
|
|
72
|
-
"category": "sync-interop",
|
|
73
|
-
"title": "Synchronous inter-op uses gRPC",
|
|
74
|
-
"description": "Synchronous Inter-Op between runtimes (Node.js ↔ .NET) MUST mandatorily utilize gRPC (Protocol Buffers) for low-latency type-safe transmission.",
|
|
75
|
-
"rationale": "ADR-0040 §Inter-Runtime Communications Rule: gRPC for synchronous inter-op.",
|
|
76
|
-
"validationQuery": "Node.js ↔ .NET synchronous calls use gRPC. Contract tests validate proto compatibility.",
|
|
77
|
-
"blocking": true,
|
|
78
|
-
"scenario": "Synchronous Inter-Op"
|
|
79
|
-
},
|
|
80
|
-
{
|
|
81
|
-
"id": "RUNT-07",
|
|
82
|
-
"severity": "MUST",
|
|
83
|
-
"category": "async-interop",
|
|
84
|
-
"title": "Asynchronous inter-op uses message broker",
|
|
85
|
-
"description": "Asynchronous Inter-Op utilizes RabbitMQ/Kafka with contract validation via JSON-Schema or Protobuf. Contracts must be centrally stored and versioned.",
|
|
86
|
-
"rationale": "ADR-0040 §Inter-Runtime Communications Rule: RabbitMQ/Kafka for async inter-op with schema validation.",
|
|
87
|
-
"validationQuery": "Async events validated against schema. Message broker contracts centralized in shared library.",
|
|
88
|
-
"blocking": false,
|
|
89
|
-
"scenario": "Asynchronous Inter-Op"
|
|
90
|
-
},
|
|
91
|
-
{
|
|
92
|
-
"id": "RUNT-08",
|
|
93
|
-
"severity": "MUST",
|
|
94
|
-
"category": "contract-registry",
|
|
95
|
-
"title": "Contracts centrally stored and versioned",
|
|
96
|
-
"description": "All inter-runtime contracts must be centrally stored and versioned using semantic versioning. Changes require Pact JS/Net backward compatibility verification.",
|
|
97
|
-
"rationale": "ADR-0040 §Contract Registry: Centralized versioning prevents contract drift.",
|
|
98
|
-
"validationQuery": "Contract registry exists and is referenced by all inter-runtime communicating services.",
|
|
99
|
-
"blocking": true
|
|
100
|
-
}
|
|
101
|
-
],
|
|
102
|
-
"runtimeMatrix": [
|
|
103
|
-
{
|
|
104
|
-
"workload": "Web APIs, BFF, I/O Bound",
|
|
105
|
-
"runtime": "Node.js/TypeScript",
|
|
106
|
-
"rationale": "High I/O concurrency, rapid delivery"
|
|
107
|
-
},
|
|
108
|
-
{
|
|
109
|
-
"workload": "High Compute, ETL, Batch",
|
|
110
|
-
"runtime": ".NET (C#)",
|
|
111
|
-
"rationale": "Superior multi-threading, typed compute"
|
|
112
|
-
},
|
|
113
|
-
{
|
|
114
|
-
"workload": "Operative Mobility",
|
|
115
|
-
"runtime": "Android (Kotlin)",
|
|
116
|
-
"rationale": "Direct hardware access, strict offline mode"
|
|
117
|
-
}
|
|
118
|
-
],
|
|
119
|
-
"references": [
|
|
120
|
-
"reference/architecture/adrs/core/0040-multi-runtime-selection-contracts.md",
|
|
121
|
-
"reference/architecture/adrs/dotnet/0041-canonical-dotnet-backend-architecture.md"
|
|
122
|
-
],
|
|
123
|
-
"exitCriteria": {
|
|
124
|
-
"description": "Runtime selection documented per service. Inter-runtime communication uses gRPC/RabbitMQ. Contracts versioned centrally.",
|
|
125
|
-
"validationTools": [
|
|
126
|
-
"evolits.yaml validation",
|
|
127
|
-
"gRPC",
|
|
128
|
-
"Pact"
|
|
129
|
-
]
|
|
130
|
-
}
|
|
131
|
-
}
|
|
@@ -1,176 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "../schema/ruleset-standard.schema.json",
|
|
3
|
-
"$id": "https://evolith.dev/rulesets/adr/adr-0050-gitflow-branching.rules.json",
|
|
4
|
-
"title": "ADR-0050 — GitFlow Branching Strategy Rules",
|
|
5
|
-
"description": "Machine-readable rules encoding ADR-0050 GitFlow Branching Strategy. Contractual branch naming, promotion policies, merge policies, and release tagging.",
|
|
6
|
-
"version": "1.1.0",
|
|
7
|
-
"adrId": "ADR-0050",
|
|
8
|
-
"adrTitle": "GitFlow Branching Strategy",
|
|
9
|
-
"status": "Approved",
|
|
10
|
-
"effectiveDate": "2026-05-08",
|
|
11
|
-
"rules": [
|
|
12
|
-
{
|
|
13
|
-
"id": "GIT-01",
|
|
14
|
-
"severity": "MUST",
|
|
15
|
-
"category": "branch-naming",
|
|
16
|
-
"title": "Branch names follow pattern: type/ticket-id-description",
|
|
17
|
-
"description": "All branches MUST follow naming pattern: {type}/{ticket-id}-{short-description}. Types: feature/, bugfix/, hotfix/, release/, chore/.",
|
|
18
|
-
"rationale": "ADR-0050 §Decision: Consistent naming enables automation and team coordination.",
|
|
19
|
-
"validationQuery": "Branch names match pattern ^[a-z]+/[A-Z]+-[0-9]+-[a-z-]+$",
|
|
20
|
-
"blocking": true,
|
|
21
|
-
"examples": [
|
|
22
|
-
"feature/UMS-123-user-onboarding",
|
|
23
|
-
"bugfix/ADR-456-fix-grpc-timeout",
|
|
24
|
-
"hotfix/PROD-789-security-patch"
|
|
25
|
-
]
|
|
26
|
-
},
|
|
27
|
-
{
|
|
28
|
-
"id": "GIT-02",
|
|
29
|
-
"severity": "MUST",
|
|
30
|
-
"category": "branch-naming",
|
|
31
|
-
"title": "Protected branches enforce direct push prohibition",
|
|
32
|
-
"description": "Direct push to protected branches (main, develop, qa, uat, release/*) is prohibited. All changes MUST come through pull requests with code review.",
|
|
33
|
-
"rationale": "ADR-0050 §Decision: Protected branches require PR workflow for audit trail and review.",
|
|
34
|
-
"validationQuery": "GitHub/GitLab branch protection rules block direct push to main, develop, qa, uat, release/*.",
|
|
35
|
-
"blocking": true,
|
|
36
|
-
"protectedBranches": [
|
|
37
|
-
"main",
|
|
38
|
-
"develop",
|
|
39
|
-
"qa",
|
|
40
|
-
"uat",
|
|
41
|
-
"release/*"
|
|
42
|
-
]
|
|
43
|
-
},
|
|
44
|
-
{
|
|
45
|
-
"id": "GIT-03",
|
|
46
|
-
"severity": "MUST",
|
|
47
|
-
"category": "code-review",
|
|
48
|
-
"title": "PR requires minimum 1 approved review",
|
|
49
|
-
"description": "Every pull request MUST have at least one approved code review before merge. Reviews must verify code quality, test coverage, and compliance with architectural standards.",
|
|
50
|
-
"rationale": "ADR-0050 §Decision: Code review is mandatory for architectural compliance and knowledge sharing.",
|
|
51
|
-
"validationQuery": "PR merge blocked without minimum 1 approval. Reviewer cannot be the PR author.",
|
|
52
|
-
"blocking": true
|
|
53
|
-
},
|
|
54
|
-
{
|
|
55
|
-
"id": "GIT-04",
|
|
56
|
-
"severity": "MUST",
|
|
57
|
-
"category": "release-tagging",
|
|
58
|
-
"title": "Release tags follow semver format",
|
|
59
|
-
"description": "Release tags MUST follow semantic versioning format: v{major}.{minor}.{patch} (e.g., v1.0.0, v2.3.1). Tags are created at release point from main branch.",
|
|
60
|
-
"rationale": "ADR-0050 §Decision: Semver tags provide clear, auditable release history.",
|
|
61
|
-
"validationQuery": "Release tags match pattern ^v[0-9]+\\.[0-9]+\\.[0-9]+$",
|
|
62
|
-
"blocking": true
|
|
63
|
-
},
|
|
64
|
-
{
|
|
65
|
-
"id": "GIT-05",
|
|
66
|
-
"severity": "MUST",
|
|
67
|
-
"category": "merge-policy",
|
|
68
|
-
"title": "Feature branches merge via squash or rebase",
|
|
69
|
-
"description": "Feature branches merge into develop using squash or rebase strategy to maintain clean history. Fast-forward merge when possible.",
|
|
70
|
-
"rationale": "ADR-0050 §Decision: Squash/rebase keeps feature history clean while preserving commit granularity in PR.",
|
|
71
|
-
"validationQuery": "Feature → develop merges use squash or rebase. No merge commits on feature branches.",
|
|
72
|
-
"blocking": false
|
|
73
|
-
},
|
|
74
|
-
{
|
|
75
|
-
"id": "GIT-06",
|
|
76
|
-
"severity": "MUST",
|
|
77
|
-
"category": "hotfix-flow",
|
|
78
|
-
"title": "Hotfixes follow expedited merge path",
|
|
79
|
-
"description": "Hotfixes branch from main (tagged release), apply fix, merge back to main AND develop simultaneously. Hotfixes skip code freeze restrictions but still require review.",
|
|
80
|
-
"rationale": "ADR-0050 §Decision: Hotfixes need expedited path but cannot bypass review entirely.",
|
|
81
|
-
"validationQuery": "Hotfix branch merges to both main and develop. Both merges include same fix commit.",
|
|
82
|
-
"blocking": true
|
|
83
|
-
},
|
|
84
|
-
{
|
|
85
|
-
"id": "GIT-07",
|
|
86
|
-
"severity": "MUST NOT",
|
|
87
|
-
"category": "branch-lifetime",
|
|
88
|
-
"title": "Stale branches must be deleted after merge",
|
|
89
|
-
"description": "Branches MUST be deleted after successful merge. Feature/bugfix branches older than 30 days without activity are flagged as stale and subject to archive or removal.",
|
|
90
|
-
"rationale": "ADR-0050 §Decision: Branch proliferation creates confusion about current state of development.",
|
|
91
|
-
"validationQuery": "Merged branches auto-deleted. Stale branch detection runs weekly.",
|
|
92
|
-
"blocking": false
|
|
93
|
-
},
|
|
94
|
-
{
|
|
95
|
-
"id": "GIT-08",
|
|
96
|
-
"severity": "MUST",
|
|
97
|
-
"category": "commit-messages",
|
|
98
|
-
"title": "Commit messages follow Conventional Commits",
|
|
99
|
-
"description": "Commit messages MUST follow Conventional Commits format: type(scope): description. Types: feat, fix, docs, style, refactor, test, chore.",
|
|
100
|
-
"rationale": "ADR-0050 §Decision: Conventional Commits enables automated changelog generation and semantic release.",
|
|
101
|
-
"validationQuery": "Commit messages validated via commitlint or equivalent. Non-conforming commits blocked in CI.",
|
|
102
|
-
"blocking": true,
|
|
103
|
-
"pattern": "^(feat|fix|docs|style|refactor|test|chore)(\\([a-z-]+\\))?: .+"
|
|
104
|
-
},
|
|
105
|
-
{
|
|
106
|
-
"id": "GIT-09",
|
|
107
|
-
"severity": "MUST",
|
|
108
|
-
"category": "promotion-policy",
|
|
109
|
-
"title": "Environment promotion follows develop to qa to uat to main",
|
|
110
|
-
"description": "Promotions MUST follow the sequence develop -> qa -> uat -> main, with release/* inserted between uat and main when release hardening needs isolation.",
|
|
111
|
-
"rationale": "ADR-0050 §Promotion Criteria: Environment branches represent deployable states and require evidence-based promotion.",
|
|
112
|
-
"validationQuery": "Promotion PR source and target follow develop->qa, qa->uat, uat->release/* or uat->main, release/*->main.",
|
|
113
|
-
"blocking": true
|
|
114
|
-
},
|
|
115
|
-
{
|
|
116
|
-
"id": "GIT-10",
|
|
117
|
-
"severity": "MUST",
|
|
118
|
-
"category": "code-review",
|
|
119
|
-
"title": "Higher environments require stronger approval",
|
|
120
|
-
"description": "Pull requests into qa, uat, main, release/*, and hotfix/* MUST require at least two approvals unless an explicit incident exception applies.",
|
|
121
|
-
"rationale": "ADR-0050 §Pull Requests, Reviews, and Merge: Promotion branches need stronger review because they represent deployable environment states.",
|
|
122
|
-
"validationQuery": "Branch protection or repository rules require minimum two approvals for qa, uat, main, release/*, and hotfix/*.",
|
|
123
|
-
"blocking": true
|
|
124
|
-
}
|
|
125
|
-
],
|
|
126
|
-
"branchTypes": [
|
|
127
|
-
{
|
|
128
|
-
"type": "feature/",
|
|
129
|
-
"lifetime": "until merged",
|
|
130
|
-
"target": "develop"
|
|
131
|
-
},
|
|
132
|
-
{
|
|
133
|
-
"type": "bugfix/",
|
|
134
|
-
"lifetime": "until merged",
|
|
135
|
-
"target": "develop"
|
|
136
|
-
},
|
|
137
|
-
{
|
|
138
|
-
"type": "hotfix/",
|
|
139
|
-
"lifetime": "hours to days",
|
|
140
|
-
"target": "main + develop"
|
|
141
|
-
},
|
|
142
|
-
{
|
|
143
|
-
"type": "release/",
|
|
144
|
-
"lifetime": "1-4 weeks",
|
|
145
|
-
"target": "main"
|
|
146
|
-
},
|
|
147
|
-
{
|
|
148
|
-
"type": "chore/",
|
|
149
|
-
"lifetime": "until merged",
|
|
150
|
-
"target": "develop"
|
|
151
|
-
},
|
|
152
|
-
{
|
|
153
|
-
"type": "qa",
|
|
154
|
-
"lifetime": "permanent",
|
|
155
|
-
"target": "uat"
|
|
156
|
-
},
|
|
157
|
-
{
|
|
158
|
-
"type": "uat",
|
|
159
|
-
"lifetime": "permanent",
|
|
160
|
-
"target": "main or release/*"
|
|
161
|
-
}
|
|
162
|
-
],
|
|
163
|
-
"references": [
|
|
164
|
-
"reference/architecture/adrs/core/0050-gitflow-branching-strategy.md"
|
|
165
|
-
],
|
|
166
|
-
"exitCriteria": {
|
|
167
|
-
"description": "Branch naming validated in CI. Protected branches enforce PR workflow and promotion sequence. Release tags follow semver.",
|
|
168
|
-
"validationTools": [
|
|
169
|
-
"commitlint",
|
|
170
|
-
"branch protection rules",
|
|
171
|
-
"GitHub Actions",
|
|
172
|
-
"CODEOWNERS",
|
|
173
|
-
"CodeQL"
|
|
174
|
-
]
|
|
175
|
-
}
|
|
176
|
-
}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "../../schema/ruleset-standard.schema.json",
|
|
3
|
-
"$id": "https://evolith.dev/rulesets/adr/generated/adr-0001-monorepo-orchestration-principle.rules.json",
|
|
4
|
-
"title": "ADR-0001 — Monorepo Orchestration Principle Rules (generated)",
|
|
5
|
-
"description": "Auto-generated ruleset encoding ADR-0001 (core track). Classification: executable. Generated by .harness/scripts/generate-adr-rulesets.mjs — do not edit by hand.",
|
|
6
|
-
"version": "1.0.0",
|
|
7
|
-
"adrId": "ADR-0001",
|
|
8
|
-
"adrTitle": "Monorepo Orchestration Principle",
|
|
9
|
-
"status": "Approved",
|
|
10
|
-
"date": "2026-05-08",
|
|
11
|
-
"rules": [
|
|
12
|
-
{
|
|
13
|
-
"id": "CORE-0001-01",
|
|
14
|
-
"severity": "MUST",
|
|
15
|
-
"category": "adr-conformance",
|
|
16
|
-
"title": "Conform to ADR-0001: Monorepo Orchestration Principle",
|
|
17
|
-
"description": "Implementations MUST conform to the decision recorded in ADR-0001 (core track). ADR decision: Adopt a Monorepo Orchestration Principle . All applications and shared libraries within a tightly coupled bounded context or product suite must reside in a single repository. The repository must be managed by an intelligent build orchestration tool capable of performing: Dependency graph analysis. This ADR contains enforceable language (must, dependency); conformance is expected to be verifiable via static analysis, linting, CI gates, or structural checks.",
|
|
18
|
-
"statement": "ADR decision: Adopt a Monorepo Orchestration Principle . All applications and shared libraries within a tightly coupled bounded context or product suite must reside in a single repository. The repository must be managed by an intelligent build orchestration tool capable of performing: Dependency graph analysis.",
|
|
19
|
-
"rationale": "Derived from ADR-0001 \"Decision\" section. Enforcement signals detected: must, dependency.",
|
|
20
|
-
"validationQuery": "Verify codebase/CI compliance with ADR-0001 via static analysis, lint rules, or pipeline gates covering: must, dependency. Concrete checks to be wired into the harness.",
|
|
21
|
-
"blocking": true,
|
|
22
|
-
"enforcement": "executable"
|
|
23
|
-
}
|
|
24
|
-
],
|
|
25
|
-
"references": [
|
|
26
|
-
"reference/architecture/adrs/core/0001-monorepo-orchestration-principle.md"
|
|
27
|
-
],
|
|
28
|
-
"effectiveDate": "2026-05-08"
|
|
29
|
-
}
|
package/rulesets/adr/generated/adr-0006-microservices-transition-via-sidecar-pattern.rules.json
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "../../schema/ruleset-standard.schema.json",
|
|
3
|
-
"$id": "https://evolith.dev/rulesets/adr/generated/adr-0006-microservices-transition-via-sidecar-pattern.rules.json",
|
|
4
|
-
"title": "ADR-0006 — Microservices Transition via Sidecar Pattern Rules (generated)",
|
|
5
|
-
"description": "Auto-generated ruleset encoding ADR-0006 (core track). Classification: executable. Generated by .harness/scripts/generate-adr-rulesets.mjs — do not edit by hand.",
|
|
6
|
-
"version": "1.0.0",
|
|
7
|
-
"adrId": "ADR-0006",
|
|
8
|
-
"adrTitle": "Microservices Transition via Sidecar Pattern",
|
|
9
|
-
"status": "Approved - Backlog (Phase 3 Milestone)",
|
|
10
|
-
"date": "2026-05-08",
|
|
11
|
-
"rules": [
|
|
12
|
-
{
|
|
13
|
-
"id": "CORE-0006-01",
|
|
14
|
-
"severity": "MUST",
|
|
15
|
-
"category": "adr-conformance",
|
|
16
|
-
"title": "Conform to ADR-0006: Microservices Transition via Sidecar Pattern",
|
|
17
|
-
"description": "Implementations MUST conform to the decision recorded in ADR-0006 (core track). ADR decision: Adopt the Sidecar Pattern as the standard distributed application runtime when splitting the monolith into independent services. Migration milestones: To prevent premature over engineering, Sidecars are NOT active by default in Milestone 2. This ADR contains enforceable language (must, layer, structure); conformance is expected to be verifiable via static analysis, linting, CI gates, or structural checks.",
|
|
18
|
-
"statement": "ADR decision: Adopt the Sidecar Pattern as the standard distributed application runtime when splitting the monolith into independent services. Migration milestones: To prevent premature over engineering, Sidecars are NOT active by default in Milestone 2.",
|
|
19
|
-
"rationale": "Derived from ADR-0006 \"Decision\" section. Enforcement signals detected: must, layer, structure.",
|
|
20
|
-
"validationQuery": "Verify codebase/CI compliance with ADR-0006 via static analysis, lint rules, or pipeline gates covering: must, layer, structure. Concrete checks to be wired into the harness.",
|
|
21
|
-
"blocking": true,
|
|
22
|
-
"enforcement": "executable"
|
|
23
|
-
}
|
|
24
|
-
],
|
|
25
|
-
"references": [
|
|
26
|
-
"reference/architecture/adrs/core/0006-microservices-transition-sidecar-pattern.md"
|
|
27
|
-
],
|
|
28
|
-
"effectiveDate": "2026-05-08"
|
|
29
|
-
}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "../../schema/ruleset-standard.schema.json",
|
|
3
|
-
"$id": "https://evolith.dev/rulesets/adr/generated/adr-0009-strict-dependency-pinning-and-automated-vulnerability-manage.rules.json",
|
|
4
|
-
"title": "ADR-0009 — Strict Dependency Pinning and Automated Vulnerability Management Rules (generated)",
|
|
5
|
-
"description": "Auto-generated ruleset encoding ADR-0009 (core track). Classification: executable. Generated by .harness/scripts/generate-adr-rulesets.mjs — do not edit by hand.",
|
|
6
|
-
"version": "1.0.0",
|
|
7
|
-
"adrId": "ADR-0009",
|
|
8
|
-
"adrTitle": "Strict Dependency Pinning and Automated Vulnerability Management",
|
|
9
|
-
"status": "Approved",
|
|
10
|
-
"date": "2026-05-08",
|
|
11
|
-
"rules": [
|
|
12
|
-
{
|
|
13
|
-
"id": "CORE-0009-01",
|
|
14
|
-
"severity": "MUST",
|
|
15
|
-
"category": "adr-conformance",
|
|
16
|
-
"title": "Conform to ADR-0009: Strict Dependency Pinning and Automated Vulnerability Management",
|
|
17
|
-
"description": "Implementations MUST conform to the decision recorded in ADR-0009 (core track). ADR decision: Adopt a Zero Tolerance, Automated Dependency Governance Strategy : 1. Exact Version Pinning : Enforce static versioning across all package.json files by removing all ^ and ~ prefixes. This ADR contains enforceable language (must, dependency, pinning, enforce); conformance is expected to be verifiable via static analysis, linting, CI gates, or structural checks.",
|
|
18
|
-
"statement": "ADR decision: Adopt a Zero Tolerance, Automated Dependency Governance Strategy : 1. Exact Version Pinning : Enforce static versioning across all package.json files by removing all ^ and ~ prefixes.",
|
|
19
|
-
"rationale": "Derived from ADR-0009 \"Decision\" section. Enforcement signals detected: must, dependency, pinning, enforce.",
|
|
20
|
-
"validationQuery": "Verify codebase/CI compliance with ADR-0009 via static analysis, lint rules, or pipeline gates covering: must, dependency, pinning, enforce. Concrete checks to be wired into the harness.",
|
|
21
|
-
"blocking": true,
|
|
22
|
-
"enforcement": "executable"
|
|
23
|
-
}
|
|
24
|
-
],
|
|
25
|
-
"references": [
|
|
26
|
-
"reference/architecture/adrs/core/0009-strict-dependency-pinning-vulnerability-management.md"
|
|
27
|
-
],
|
|
28
|
-
"effectiveDate": "2026-05-08"
|
|
29
|
-
}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "../../schema/ruleset-standard.schema.json",
|
|
3
|
-
"$id": "https://evolith.dev/rulesets/adr/generated/adr-0011-fault-tolerance-and-resiliency-patterns.rules.json",
|
|
4
|
-
"title": "ADR-0011 — Fault Tolerance and Resiliency Patterns Rules (generated)",
|
|
5
|
-
"description": "Auto-generated ruleset encoding ADR-0011 (core track). Classification: executable. Generated by .harness/scripts/generate-adr-rulesets.mjs — do not edit by hand.",
|
|
6
|
-
"version": "1.0.0",
|
|
7
|
-
"adrId": "ADR-0011",
|
|
8
|
-
"adrTitle": "Fault Tolerance and Resiliency Patterns",
|
|
9
|
-
"status": "Approved",
|
|
10
|
-
"date": "2026-05-08",
|
|
11
|
-
"rules": [
|
|
12
|
-
{
|
|
13
|
-
"id": "CORE-0011-01",
|
|
14
|
-
"severity": "MUST",
|
|
15
|
-
"category": "adr-conformance",
|
|
16
|
-
"title": "Conform to ADR-0011: Fault Tolerance and Resiliency Patterns",
|
|
17
|
-
"description": "Implementations MUST conform to the decision recorded in ADR-0011 (core track). ADR decision: Implement explicit Resilience Patterns protecting all outbound system exits: 1. Distributed Circuit Breaker (Opossum + Redis) : Wrap outbound network calls in high level infrastructure adapters. This ADR contains enforceable language (must, structure); conformance is expected to be verifiable via static analysis, linting, CI gates, or structural checks.",
|
|
18
|
-
"statement": "ADR decision: Implement explicit Resilience Patterns protecting all outbound system exits: 1. Distributed Circuit Breaker (Opossum + Redis) : Wrap outbound network calls in high level infrastructure adapters.",
|
|
19
|
-
"rationale": "Derived from ADR-0011 \"Decision\" section. Enforcement signals detected: must, structure.",
|
|
20
|
-
"validationQuery": "Verify codebase/CI compliance with ADR-0011 via static analysis, lint rules, or pipeline gates covering: must, structure. Concrete checks to be wired into the harness.",
|
|
21
|
-
"blocking": true,
|
|
22
|
-
"enforcement": "executable"
|
|
23
|
-
}
|
|
24
|
-
],
|
|
25
|
-
"references": [
|
|
26
|
-
"reference/architecture/adrs/core/0011-fault-tolerance-resiliency-patterns.md"
|
|
27
|
-
],
|
|
28
|
-
"effectiveDate": "2026-05-08"
|
|
29
|
-
}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "../../schema/ruleset-standard.schema.json",
|
|
3
|
-
"$id": "https://evolith.dev/rulesets/adr/generated/adr-0013-cloud-infrastructure-topology-and-disaster-recovery-dr.rules.json",
|
|
4
|
-
"title": "ADR-0013 — Cloud Infrastructure Topology and Disaster Recovery (DR) Rules (generated)",
|
|
5
|
-
"description": "Auto-generated ruleset encoding ADR-0013 (core track). Classification: advisory. Generated by .harness/scripts/generate-adr-rulesets.mjs — do not edit by hand.",
|
|
6
|
-
"version": "1.0.0",
|
|
7
|
-
"adrId": "ADR-0013",
|
|
8
|
-
"adrTitle": "Cloud Infrastructure Topology and Disaster Recovery (DR)",
|
|
9
|
-
"status": "Approved",
|
|
10
|
-
"date": "2026-05-08",
|
|
11
|
-
"rules": [
|
|
12
|
-
{
|
|
13
|
-
"id": "CORE-0013-01",
|
|
14
|
-
"severity": "SHOULD",
|
|
15
|
-
"category": "adr-conformance",
|
|
16
|
-
"title": "Honor design decision in ADR-0013: Cloud Infrastructure Topology and Disaster Recovery (DR)",
|
|
17
|
-
"description": "Design and implementation SHOULD honor the decision recorded in ADR-0013 (core track). ADR decision: Design infrastructure topology targeting Cloud Native patterns enforcing high resilience and instant failover potential: 1. Automated Orchestration : Deployment evolves by architectural phase. Manual attestation required — not machine-verifiable.",
|
|
18
|
-
"statement": "ADR decision: Design infrastructure topology targeting Cloud Native patterns enforcing high resilience and instant failover potential: 1. Automated Orchestration : Deployment evolves by architectural phase.",
|
|
19
|
-
"rationale": "Derived from ADR-0013 \"Decision\" section. No machine-verifiable signals detected; treated as an advisory design decision.",
|
|
20
|
-
"blocking": false,
|
|
21
|
-
"enforcement": "advisory"
|
|
22
|
-
}
|
|
23
|
-
],
|
|
24
|
-
"references": [
|
|
25
|
-
"reference/architecture/adrs/core/0013-cloud-infrastructure-topology-dr.md"
|
|
26
|
-
],
|
|
27
|
-
"effectiveDate": "2026-05-08"
|
|
28
|
-
}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "../../schema/ruleset-standard.schema.json",
|
|
3
|
-
"$id": "https://evolith.dev/rulesets/adr/generated/adr-0014-multi-layer-distributed-caching-strategy.rules.json",
|
|
4
|
-
"title": "ADR-0014 — Multi-Layer Distributed Caching Strategy Rules (generated)",
|
|
5
|
-
"description": "Auto-generated ruleset encoding ADR-0014 (core track). Classification: executable. Generated by .harness/scripts/generate-adr-rulesets.mjs — do not edit by hand.",
|
|
6
|
-
"version": "1.0.0",
|
|
7
|
-
"adrId": "ADR-0014",
|
|
8
|
-
"adrTitle": "Multi-Layer Distributed Caching Strategy",
|
|
9
|
-
"status": "Approved",
|
|
10
|
-
"date": "2026-05-08",
|
|
11
|
-
"rules": [
|
|
12
|
-
{
|
|
13
|
-
"id": "CORE-0014-01",
|
|
14
|
-
"severity": "MUST",
|
|
15
|
-
"category": "adr-conformance",
|
|
16
|
-
"title": "Conform to ADR-0014: Multi-Layer Distributed Caching Strategy",
|
|
17
|
-
"description": "Implementations MUST conform to the decision recorded in ADR-0014 (core track). ADR decision: Evolve to a comprehensive Multi Layer Tiered Caching Strategy utilizing CDN edge caching and distributed cache nodes to intercept and resolve read requests as close to the user as possible: The system supports the integration of a Content Delivery Network (CDN) deployed in front of the Edge Gateway. This ADR contains enforceable language (layer, structure); conformance is expected to be verifiable via static analysis, linting, CI gates, or structural checks.",
|
|
18
|
-
"statement": "ADR decision: Evolve to a comprehensive Multi Layer Tiered Caching Strategy utilizing CDN edge caching and distributed cache nodes to intercept and resolve read requests as close to the user as possible: The system supports the integration of a Content Delivery Network (CDN) deployed in front of the Edge Gateway.",
|
|
19
|
-
"rationale": "Derived from ADR-0014 \"Decision\" section. Enforcement signals detected: layer, structure.",
|
|
20
|
-
"validationQuery": "Verify codebase/CI compliance with ADR-0014 via static analysis, lint rules, or pipeline gates covering: layer, structure. Concrete checks to be wired into the harness.",
|
|
21
|
-
"blocking": true,
|
|
22
|
-
"enforcement": "executable"
|
|
23
|
-
}
|
|
24
|
-
],
|
|
25
|
-
"references": [
|
|
26
|
-
"reference/architecture/adrs/core/0014-multi-layer-distributed-caching-strategy.md"
|
|
27
|
-
],
|
|
28
|
-
"effectiveDate": "2026-05-08"
|
|
29
|
-
}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "../../schema/ruleset-standard.schema.json",
|
|
3
|
-
"$id": "https://evolith.dev/rulesets/adr/generated/adr-0015-event-driven-architecture-eda-for-intra-domain-communication.rules.json",
|
|
4
|
-
"title": "ADR-0015 — Event-Driven Architecture (EDA) for Intra-Domain Communication Rules (generated)",
|
|
5
|
-
"description": "Auto-generated ruleset encoding ADR-0015 (core track). Classification: executable. Generated by .harness/scripts/generate-adr-rulesets.mjs — do not edit by hand.",
|
|
6
|
-
"version": "1.0.0",
|
|
7
|
-
"adrId": "ADR-0015",
|
|
8
|
-
"adrTitle": "Event-Driven Architecture (EDA) for Intra-Domain Communication",
|
|
9
|
-
"status": "Approved",
|
|
10
|
-
"date": "2026-05-08",
|
|
11
|
-
"rules": [
|
|
12
|
-
{
|
|
13
|
-
"id": "CORE-0015-01",
|
|
14
|
-
"severity": "MUST",
|
|
15
|
-
"category": "adr-conformance",
|
|
16
|
-
"title": "Conform to ADR-0015: Event-Driven Architecture (EDA) for Intra-Domain Communication",
|
|
17
|
-
"description": "Implementations MUST conform to the decision recorded in ADR-0015 (core track). ADR decision: We will adopt an asynchronous Event Driven Architecture (EDA) for all cross bounded context communication: The domain will never import a concrete message broker. This ADR contains enforceable language (must, required, layer, boundaries, import); conformance is expected to be verifiable via static analysis, linting, CI gates, or structural checks.",
|
|
18
|
-
"statement": "ADR decision: We will adopt an asynchronous Event Driven Architecture (EDA) for all cross bounded context communication: The domain will never import a concrete message broker.",
|
|
19
|
-
"rationale": "Derived from ADR-0015 \"Decision\" section. Enforcement signals detected: must, required, layer, boundaries, import.",
|
|
20
|
-
"validationQuery": "Verify codebase/CI compliance with ADR-0015 via static analysis, lint rules, or pipeline gates covering: must, required, layer, boundaries, import. Concrete checks to be wired into the harness.",
|
|
21
|
-
"blocking": true,
|
|
22
|
-
"enforcement": "executable"
|
|
23
|
-
}
|
|
24
|
-
],
|
|
25
|
-
"references": [
|
|
26
|
-
"reference/architecture/adrs/core/0015-event-driven-architecture-intra-domain.md"
|
|
27
|
-
],
|
|
28
|
-
"effectiveDate": "2026-05-08"
|
|
29
|
-
}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "../../schema/ruleset-standard.schema.json",
|
|
3
|
-
"$id": "https://evolith.dev/rulesets/adr/generated/adr-0016-immutable-business-audit-trail-and-change-tracking.rules.json",
|
|
4
|
-
"title": "ADR-0016 — Immutable Business Audit Trail and Change Tracking Rules (generated)",
|
|
5
|
-
"description": "Auto-generated ruleset encoding ADR-0016 (core track). Classification: executable. Generated by .harness/scripts/generate-adr-rulesets.mjs — do not edit by hand.",
|
|
6
|
-
"version": "1.0.0",
|
|
7
|
-
"adrId": "ADR-0016",
|
|
8
|
-
"adrTitle": "Immutable Business Audit Trail and Change Tracking",
|
|
9
|
-
"status": "Approved",
|
|
10
|
-
"date": "2026-05-09",
|
|
11
|
-
"rules": [
|
|
12
|
-
{
|
|
13
|
-
"id": "CORE-0016-01",
|
|
14
|
-
"severity": "MUST",
|
|
15
|
-
"category": "adr-conformance",
|
|
16
|
-
"title": "Conform to ADR-0016: Immutable Business Audit Trail and Change Tracking",
|
|
17
|
-
"description": "Implementations MUST conform to the decision recorded in ADR-0016 (core track). ADR decision: Deploy a Hybrid Audit Strategy balancing performant direct reading with deep historical archiving: 1. Metadata Layer (Row Level) : Physical entities inherit standard persistent audit columns: created at , created by , updated at , updated by , and a concurrency tracking version integer. This ADR contains enforceable language (layer, structure); conformance is expected to be verifiable via static analysis, linting, CI gates, or structural checks.",
|
|
18
|
-
"statement": "ADR decision: Deploy a Hybrid Audit Strategy balancing performant direct reading with deep historical archiving: 1. Metadata Layer (Row Level) : Physical entities inherit standard persistent audit columns: created at , created by , updated at , updated by , and a concurrency tracking version integer.",
|
|
19
|
-
"rationale": "Derived from ADR-0016 \"Decision\" section. Enforcement signals detected: layer, structure.",
|
|
20
|
-
"validationQuery": "Verify codebase/CI compliance with ADR-0016 via static analysis, lint rules, or pipeline gates covering: layer, structure. Concrete checks to be wired into the harness.",
|
|
21
|
-
"blocking": true,
|
|
22
|
-
"enforcement": "executable"
|
|
23
|
-
}
|
|
24
|
-
],
|
|
25
|
-
"references": [
|
|
26
|
-
"reference/architecture/adrs/core/0016-immutable-business-audit-trail.md"
|
|
27
|
-
],
|
|
28
|
-
"effectiveDate": "2026-05-09"
|
|
29
|
-
}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "../../schema/ruleset-standard.schema.json",
|
|
3
|
-
"$id": "https://evolith.dev/rulesets/adr/generated/adr-0017-feature-flagging-strategy-for-progressive-delivery.rules.json",
|
|
4
|
-
"title": "ADR-0017 — Feature Flagging Strategy for Progressive Delivery Rules (generated)",
|
|
5
|
-
"description": "Auto-generated ruleset encoding ADR-0017 (core track). Classification: advisory. Generated by .harness/scripts/generate-adr-rulesets.mjs — do not edit by hand.",
|
|
6
|
-
"version": "1.0.0",
|
|
7
|
-
"adrId": "ADR-0017",
|
|
8
|
-
"adrTitle": "Feature Flagging Strategy for Progressive Delivery",
|
|
9
|
-
"status": "Approved",
|
|
10
|
-
"date": "2026-05-09",
|
|
11
|
-
"rules": [
|
|
12
|
-
{
|
|
13
|
-
"id": "CORE-0017-01",
|
|
14
|
-
"severity": "SHOULD",
|
|
15
|
-
"category": "adr-conformance",
|
|
16
|
-
"title": "Honor design decision in ADR-0017: Feature Flagging Strategy for Progressive Delivery",
|
|
17
|
-
"description": "Design and implementation SHOULD honor the decision recorded in ADR-0017 (core track). ADR decision: Treat dynamic feature routing as standard Infrastructure injection , completely disjoint from persistence architectures: 1. Service Decoupling : Avoid physical db toggles table creation. Manual attestation required — not machine-verifiable.",
|
|
18
|
-
"statement": "ADR decision: Treat dynamic feature routing as standard Infrastructure injection , completely disjoint from persistence architectures: 1. Service Decoupling : Avoid physical db toggles table creation.",
|
|
19
|
-
"rationale": "Derived from ADR-0017 \"Decision\" section. No machine-verifiable signals detected; treated as an advisory design decision.",
|
|
20
|
-
"blocking": false,
|
|
21
|
-
"enforcement": "advisory"
|
|
22
|
-
}
|
|
23
|
-
],
|
|
24
|
-
"references": [
|
|
25
|
-
"reference/architecture/adrs/core/0017-feature-flagging-strategy.md"
|
|
26
|
-
],
|
|
27
|
-
"effectiveDate": "2026-05-09"
|
|
28
|
-
}
|
package/rulesets/adr/generated/adr-0019-tactical-design-patterns-for-future-proofing.rules.json
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "../../schema/ruleset-standard.schema.json",
|
|
3
|
-
"$id": "https://evolith.dev/rulesets/adr/generated/adr-0019-tactical-design-patterns-for-future-proofing.rules.json",
|
|
4
|
-
"title": "ADR-0019 — Tactical Design Patterns for Future-Proofing Rules (generated)",
|
|
5
|
-
"description": "Auto-generated ruleset encoding ADR-0019 (core track). Classification: executable. Generated by .harness/scripts/generate-adr-rulesets.mjs — do not edit by hand.",
|
|
6
|
-
"version": "1.0.0",
|
|
7
|
-
"adrId": "ADR-0019",
|
|
8
|
-
"adrTitle": "Tactical Design Patterns for Future-Proofing",
|
|
9
|
-
"status": "Approved",
|
|
10
|
-
"date": "2026-05-08",
|
|
11
|
-
"rules": [
|
|
12
|
-
{
|
|
13
|
-
"id": "CORE-0019-01",
|
|
14
|
-
"severity": "MUST",
|
|
15
|
-
"category": "adr-conformance",
|
|
16
|
-
"title": "Conform to ADR-0019: Tactical Design Patterns for Future-Proofing",
|
|
17
|
-
"description": "Implementations MUST conform to the decision recorded in ADR-0019 (core track). ADR decision: Mandate specific Functional and Structure patterns protecting core purity: 1. The Result Pattern : Eliminate raw error throwing from inside application use cases. Methods strictly return a typed functional Result<V, E wrapper. This ADR contains enforceable language (must, structure); conformance is expected to be verifiable via static analysis, linting, CI gates, or structural checks.",
|
|
18
|
-
"statement": "ADR decision: Mandate specific Functional and Structure patterns protecting core purity: 1. The Result Pattern : Eliminate raw error throwing from inside application use cases. Methods strictly return a typed functional Result<V, E wrapper.",
|
|
19
|
-
"rationale": "Derived from ADR-0019 \"Decision\" section. Enforcement signals detected: must, structure.",
|
|
20
|
-
"validationQuery": "Verify codebase/CI compliance with ADR-0019 via static analysis, lint rules, or pipeline gates covering: must, structure. Concrete checks to be wired into the harness.",
|
|
21
|
-
"blocking": true,
|
|
22
|
-
"enforcement": "executable"
|
|
23
|
-
}
|
|
24
|
-
],
|
|
25
|
-
"references": [
|
|
26
|
-
"reference/architecture/adrs/core/0019-tactical-design-patterns-future-proofing.md"
|
|
27
|
-
],
|
|
28
|
-
"effectiveDate": "2026-05-08"
|
|
29
|
-
}
|