@evolith/core-domain 1.0.0 → 1.0.1
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 +1 -1
- package/dist/domain/services/default-workflow-definition.js.map +1 -1
- package/package.json +2 -1
- package/rulesets/README.es.md +170 -0
- package/rulesets/README.md +170 -0
- package/rulesets/acl/README.es.md +41 -0
- package/rulesets/acl/README.md +41 -0
- package/rulesets/acl/anti-corruption-layer.rules.es.json +99 -0
- package/rulesets/acl/anti-corruption-layer.rules.json +99 -0
- package/rulesets/adr/ADR_COVERAGE.es.md +133 -0
- package/rulesets/adr/ADR_COVERAGE.md +133 -0
- package/rulesets/adr/README.es.md +17 -0
- package/rulesets/adr/README.md +17 -0
- package/rulesets/adr/adr-0002-hexagonal-architecture.rules.json +103 -0
- package/rulesets/adr/adr-0005-cicd-quality-gates.rules.json +102 -0
- package/rulesets/adr/adr-0010-multi-tenancy.rules.json +129 -0
- package/rulesets/adr/adr-0018-testing-pyramid.rules.json +115 -0
- package/rulesets/adr/adr-0032-protocol-selection.rules.json +134 -0
- package/rulesets/adr/adr-0040-multi-runtime.rules.json +131 -0
- package/rulesets/adr/adr-0050-gitflow-branching.rules.json +176 -0
- package/rulesets/adr/generated/adr-0001-monorepo-orchestration-principle.rules.json +29 -0
- package/rulesets/adr/generated/adr-0006-microservices-transition-via-sidecar-pattern.rules.json +29 -0
- package/rulesets/adr/generated/adr-0009-strict-dependency-pinning-and-automated-vulnerability-manage.rules.json +29 -0
- package/rulesets/adr/generated/adr-0011-fault-tolerance-and-resiliency-patterns.rules.json +29 -0
- package/rulesets/adr/generated/adr-0013-cloud-infrastructure-topology-and-disaster-recovery-dr.rules.json +28 -0
- package/rulesets/adr/generated/adr-0014-multi-layer-distributed-caching-strategy.rules.json +29 -0
- package/rulesets/adr/generated/adr-0015-event-driven-architecture-eda-for-intra-domain-communication.rules.json +29 -0
- package/rulesets/adr/generated/adr-0016-immutable-business-audit-trail-and-change-tracking.rules.json +29 -0
- package/rulesets/adr/generated/adr-0017-feature-flagging-strategy-for-progressive-delivery.rules.json +28 -0
- package/rulesets/adr/generated/adr-0019-tactical-design-patterns-for-future-proofing.rules.json +29 -0
- package/rulesets/adr/generated/adr-0020-identity-provider-abstraction-strategy.rules.json +28 -0
- package/rulesets/adr/generated/adr-0024-centralized-configuration-feature-platform.rules.json +28 -0
- package/rulesets/adr/generated/adr-0025-feature-flag-provider-abstraction-strategy.rules.json +29 -0
- package/rulesets/adr/generated/adr-0028-self-hosted-open-source-hybrid-infrastructure.rules.json +29 -0
- package/rulesets/adr/generated/adr-0030-two-tier-distributed-gateway-model.rules.json +28 -0
- package/rulesets/adr/generated/adr-0031-schema-per-bounded-context-and-domain-event-catalog.rules.json +29 -0
- package/rulesets/adr/generated/adr-0033-transactional-outbox-pattern-for-async-messaging.rules.json +28 -0
- package/rulesets/adr/generated/adr-0034-cqrs-pattern-application-matrix.rules.json +29 -0
- package/rulesets/adr/generated/adr-0035-distributed-saga-pattern-implementation-strategy.rules.json +29 -0
- package/rulesets/adr/generated/adr-0036-message-bus-delivery-flow-control-strategy.rules.json +29 -0
- package/rulesets/adr/generated/adr-0037-enterprise-performance-concurrency-chaos-verification-strate.rules.json +28 -0
- package/rulesets/adr/generated/adr-0039-deployment-topology-abstraction-environment-switcher.rules.json +29 -0
- package/rulesets/adr/generated/adr-0041-dual-engine-policy-evaluation-native-opa.rules.json +28 -0
- package/rulesets/adr/generated/adr-0044-configurable-security-persistence-strategy-agnosticism-vs-na.rules.json +29 -0
- package/rulesets/adr/generated/adr-0045-microservice-extraction-readiness-criteria.rules.json +29 -0
- package/rulesets/adr/generated/adr-0046-unified-traceability-via-w3c-tracecontext.rules.json +29 -0
- package/rulesets/adr/generated/adr-0047-progressive-architecture-evolution-framework-modular-monolit.rules.json +29 -0
- package/rulesets/adr/generated/adr-0048-enterprise-taxonomy-standardization-and-reference-layout.rules.json +28 -0
- package/rulesets/adr/generated/adr-0049-naming-semantics-clean-code-policy-e2e-and-global.rules.json +29 -0
- package/rulesets/adr/generated/adr-0051-enterprise-database-engine-selection-strategy.rules.json +29 -0
- package/rulesets/adr/generated/adr-0052-unit-testing-isolation-strategy-mocks-vs-stubs.rules.json +29 -0
- package/rulesets/adr/generated/adr-0053-integration-and-e2e-testing-strategy.rules.json +29 -0
- package/rulesets/adr/generated/adr-0054-database-design-and-normalization-standards.rules.json +29 -0
- package/rulesets/adr/generated/adr-0055-microfrontends-architecture-strategy.rules.json +28 -0
- package/rulesets/adr/generated/adr-0056-enterprise-naming-design-conventions-multi-language-multi-pl.rules.json +29 -0
- package/rulesets/adr/generated/adr-0057-architecture-intelligence-catalog.rules.json +27 -0
- package/rulesets/adr/generated/adr-0058-ai-consumable-architecture-knowledge.rules.json +27 -0
- package/rulesets/adr/generated/adr-0067-modular-monolith-persistence-boundaries.rules.json +28 -0
- package/rulesets/adr/generated/adr-0068-documentation-release-gitflow.rules.json +29 -0
- package/rulesets/adr/generated/adr-0069-ai-agent-context-protocol-integration.rules.json +28 -0
- package/rulesets/adr/generated/adr-0070-lean-root-repository-taxonomy.rules.json +29 -0
- package/rulesets/adr/generated/adr-0071-domain-layer-base-class-and-inheritance-strategy.rules.json +29 -0
- package/rulesets/adr/generated/adr-0072-utc-date-storage-browser-timezone-detection-and-language-res.rules.json +29 -0
- package/rulesets/adr/generated/adr-0073-unified-cli-mcp-output-contract-and-gate-evidence-schema.rules.json +29 -0
- package/rulesets/adr/generated/adr-0074-evolith-core-api-native-exposure-layer.rules.json +29 -0
- package/rulesets/adr/generated/adr-0075-core-api-authentication-strategy.rules.json +28 -0
- package/rulesets/adr/generated/adr-0076-domain-oriented-microservice-architecture-doma.rules.json +28 -0
- package/rulesets/adr/generated/adr-0077-masstransit-v9-commercial-pivot-stay-on-v8-monitor-opentrans.rules.json +28 -0
- package/rulesets/adr/generated/adr-0078-domain-financial-separation-governance.rules.json +29 -0
- package/rulesets/adr/generated/adr-0079-multi-topology-reference-corpus-and-topology-manifest-contra.rules.json +29 -0
- package/rulesets/adr/generated/adr-0080-remote-repository-reference-contract.rules.json +29 -0
- package/rulesets/adr/generated/adr-0081-agentic-ai-sandbox-isolation-boundary.rules.json +29 -0
- package/rulesets/adr/generated/adr-0082-agentic-ai-prompt-context-and-tool-trust-boundary.rules.json +28 -0
- package/rulesets/adr/generated/adr-0083-agentic-ai-action-authorization-and-audit.rules.json +29 -0
- package/rulesets/adr/generated/adr-0084-data-mesh-and-data-as-a-product.rules.json +29 -0
- package/rulesets/adr/generated/adr-0085-agnostic-opa-wasm-distribution-architecture.rules.json +28 -0
- package/rulesets/adr/generated/adr-0086-agentic-ai-telemetry-cost-control-standard.rules.json +27 -0
- package/rulesets/adr/generated/adr-0087-attribute-based-access-control-abac-for-agentic-tool-executi.rules.json +29 -0
- package/rulesets/adr/generated/adr-0088-sovereign-identity-for-agentic-ai.rules.json +29 -0
- package/rulesets/adr/generated/adr-0089-event-driven-agentic-workflow-pattern.rules.json +28 -0
- package/rulesets/adr/generated/adr-0090-rag-knowledge-governance-standard.rules.json +29 -0
- package/rulesets/adr/generated/adr-0091-workload-identity-token-rotation-standard.rules.json +29 -0
- package/rulesets/adr/generated/adr-0092-agent-infinite-loop-prevention-and-circuit-breaker-rules.rules.json +29 -0
- package/rulesets/adr/generated/adr-0093-concurrency-control-and-resource-locking-standard-for-mcp-to.rules.json +29 -0
- package/rulesets/adr/generated/adr-0094-multi-agent-handoff-and-task-delegation-standards.rules.json +29 -0
- package/rulesets/adr/generated/adr-0095-serverless-architecture-governance.rules.json +29 -0
- package/rulesets/adr/generated/adr-0096-edge-computing-architecture-governance.rules.json +29 -0
- package/rulesets/adr/generated/adr-0097-knowledge-lifecycle-governance-standard.rules.json +29 -0
- package/rulesets/adr/generated/adr-0098-rest-uri-versioning-and-deprecation-policy.rules.json +29 -0
- package/rulesets/adr/generated/adr-0099-opa-bundle-distribution-via-s3-minio.rules.json +27 -0
- package/rulesets/adr/generated/adr-ai-augmented-0001-harness-engineering-for-ai-augmented-development.rules.json +29 -0
- package/rulesets/adr/generated/adr-ai-augmented-0002-mcp-integration-protocol-for-agent-tool-invocation.rules.json +29 -0
- package/rulesets/adr/generated/adr-ai-augmented-0003-model-selection-governance-for-ai-augmented-workflows.rules.json +29 -0
- package/rulesets/adr/generated/adr-ai-augmented-0004-agents-md-as-mandatory-repository-artifact.rules.json +29 -0
- package/rulesets/adr/generated/adr-ai-augmented-0005-human-in-the-loop-policy-for-autonomous-agent-operations.rules.json +29 -0
- package/rulesets/adr/generated/adr-android-0042-canonical-android-native-mobile-architecture.rules.json +29 -0
- package/rulesets/adr/generated/adr-dotnet-0041-canonical-net-c-backend-architecture.rules.json +29 -0
- package/rulesets/adr/generated/adr-dotnet-0060-net-multi-tenancy-dual-layer-strategy-ef-core-sql-server.rules.json +29 -0
- package/rulesets/adr/generated/adr-dotnet-0061-transactional-event-lifecycle-in-ef-core.rules.json +28 -0
- package/rulesets/adr/generated/adr-dotnet-0062-net-immutable-audit-trail-via-ddl-triggers-delta-capture.rules.json +29 -0
- package/rulesets/adr/generated/adr-dotnet-0063-b2b-request-idempotency-middleware-in-asp-net-core.rules.json +28 -0
- package/rulesets/adr/generated/adr-dotnet-0064-net-request-scope-observability-context-propagation.rules.json +29 -0
- package/rulesets/adr/generated/adr-dotnet-0065-net-pii-safe-structured-logging-pipeline-serilog.rules.json +29 -0
- package/rulesets/adr/generated/adr-dotnet-0066-net-lightweight-http-idempotency-via-imemorycache-idistribut.rules.json +28 -0
- package/rulesets/adr/generated/adr-dotnet-0069-net-grpc-service-setup-protobuf-contracts.rules.json +29 -0
- package/rulesets/adr/generated/adr-dotnet-0070-net-api-endpoint-strategy.rules.json +29 -0
- package/rulesets/adr/generated/adr-dotnet-0071-net-data-access-strategy-ef-core-as-default-orm-dapper-for-o.rules.json +27 -0
- package/rulesets/adr/generated/adr-dotnet-0072-net-aop-cross-cutting-concern-strategy-dispatchproxy-over-pi.rules.json +29 -0
- package/rulesets/adr/generated/adr-nodejs-0003-strict-typescript-standards.rules.json +29 -0
- package/rulesets/adr/generated/adr-nodejs-0004-frontend-offline-resilience.rules.json +28 -0
- package/rulesets/adr/generated/adr-nodejs-0007-observability-with-opentelemetry-loki-and-jaeger.rules.json +29 -0
- package/rulesets/adr/generated/adr-nodejs-0008-progressive-multi-module-evolution-with-api-gateway-and-bff-.rules.json +28 -0
- package/rulesets/adr/generated/adr-nodejs-0012-advanced-authorization-rbac-abac-strategy.rules.json +28 -0
- package/rulesets/adr/generated/adr-nodejs-0021-high-performance-authentication-graph-compilation.rules.json +28 -0
- package/rulesets/adr/generated/adr-nodejs-0022-contextual-authentication-and-pluggable-output-projections.rules.json +28 -0
- package/rulesets/adr/generated/adr-nodejs-0023-centralized-authorization-core-strategy.rules.json +28 -0
- package/rulesets/adr/generated/adr-nodejs-0026-adaptive-mfa-and-passwordless-platform.rules.json +28 -0
- package/rulesets/adr/generated/adr-nodejs-0027-dual-protocol-api-strategy-rest-grpc.rules.json +28 -0
- package/rulesets/adr/generated/adr-nodejs-0029-adoption-of-tactical-ddd-primitives-library.rules.json +29 -0
- package/rulesets/adr/generated/adr-nodejs-0038-enterprise-error-handling-result-pattern-strategy.rules.json +29 -0
- package/rulesets/adr/generated/adr-nodejs-0043-data-access-and-orm-strategy-for-node-js.rules.json +29 -0
- package/rulesets/adr/generated/adr-nodejs-0044-frontend-clean-architecture-layer-boundaries-react.rules.json +29 -0
- package/rulesets/adr/generated/adr-nodejs-0045-frontend-state-management-zustand-tanstack-query-dual-strate.rules.json +29 -0
- package/rulesets/adr/generated/adr-nodejs-0046-prohibition-of-raw-technical-identifiers-in-user-interfaces.rules.json +29 -0
- package/rulesets/adr/generated/adr-nodejs-0047-actionable-user-error-contract-and-correlated-diagnostics.rules.json +29 -0
- package/rulesets/adr/generated/adr-nodejs-0048-feature-flag-system-scope-and-structured-criteria-model.rules.json +29 -0
- package/rulesets/adr/generated/adr-nodejs-0074-monorepo-orchestration-with-nx.rules.json +29 -0
- package/rulesets/adr/generated/adr-nodejs-0075-application-gateway-bff-with-nestjs.rules.json +29 -0
- package/rulesets/architecture/README.es.md +21 -0
- package/rulesets/architecture/README.md +21 -0
- package/rulesets/architecture/opa/progressive-axis.rego +50 -0
- package/rulesets/cli/README.es.md +17 -0
- package/rulesets/cli/README.md +17 -0
- package/rulesets/cli/core-parity.rules.json +61 -0
- package/rulesets/cli/release-readiness.rules.json +77 -0
- package/rulesets/compliance-baseline/README.es.md +26 -0
- package/rulesets/compliance-baseline/README.md +26 -0
- package/rulesets/compliance-baseline/compliance-baseline.rules.json +81 -0
- package/rulesets/contracts/README.es.md +19 -0
- package/rulesets/contracts/README.md +19 -0
- package/rulesets/contracts/evolith-machine-contracts.json +29 -0
- package/rulesets/contracts/fixtures/gate-evidence.success.json +10 -0
- package/rulesets/contracts/fixtures/output-envelope.success.json +23 -0
- package/rulesets/cross-cutting/README.es.md +14 -0
- package/rulesets/cross-cutting/README.md +14 -0
- package/rulesets/cross-cutting/compliance-baseline.rules.json +81 -0
- package/rulesets/cross-cutting/definition-of-done.rules.json +135 -0
- package/rulesets/cross-cutting/engineering-manifesto.rules.json +145 -0
- package/rulesets/cross-cutting/repository-taxonomy.rules.json +172 -0
- package/rulesets/definition-of-done/README.es.md +26 -0
- package/rulesets/definition-of-done/README.md +26 -0
- package/rulesets/definition-of-done/definition-of-done.rules.json +135 -0
- package/rulesets/engineering-manifesto/README.es.md +26 -0
- package/rulesets/engineering-manifesto/README.md +26 -0
- package/rulesets/engineering-manifesto/engineering-manifesto.rules.json +145 -0
- package/rulesets/evidence/README.es.md +12 -0
- package/rulesets/evidence/README.md +12 -0
- package/rulesets/evidence/evidence-manifest.rules.json +48 -0
- package/rulesets/executive-scorecards/executive-scorecards.rules.es.json +213 -0
- package/rulesets/executive-scorecards/executive-scorecards.rules.json +213 -0
- package/rulesets/governance/README.es.md +13 -0
- package/rulesets/governance/README.md +13 -0
- package/rulesets/governance/abac-mcp-access.rules.es.json +41 -0
- package/rulesets/governance/abac-mcp-access.rules.json +41 -0
- package/rulesets/governance/executive-scorecards.rules.es.json +213 -0
- package/rulesets/governance/executive-scorecards.rules.json +213 -0
- package/rulesets/governance/inheritance.rules.json +115 -0
- package/rulesets/governance/knowledge-intake.rules.json +18 -0
- package/rulesets/governance/open-core-boundary.rules.es.json +148 -0
- package/rulesets/governance/open-core-boundary.rules.json +148 -0
- package/rulesets/governance/satellite-contracts.rules.json +183 -0
- package/rulesets/infrastructure/helm-enforcement.rules.json +21 -0
- package/rulesets/infrastructure/opa/helm-enforcement.rego +25 -0
- package/rulesets/infrastructure/opa/helm-enforcement.test.rego +31 -0
- package/rulesets/infrastructure/opa/opa-sidecar-bundle.rego +115 -0
- package/rulesets/infrastructure/opa/opa-sidecar-bundle.test.rego +66 -0
- package/rulesets/infrastructure/opa-sidecar-bundle.rules.json +18 -0
- package/rulesets/mcp/README.es.md +12 -0
- package/rulesets/mcp/README.md +12 -0
- package/rulesets/mcp/protocol-compliance.rules.json +57 -0
- package/rulesets/observability/README.es.md +12 -0
- package/rulesets/observability/README.md +12 -0
- package/rulesets/observability/telemetry-evidence.rules.json +48 -0
- package/rulesets/opa/README.es.md +22 -0
- package/rulesets/opa/README.md +22 -0
- package/rulesets/opa/abac-mcp-tool-access.rego +122 -0
- package/rulesets/opa/abac-mcp-tool-access.test.rego +33 -0
- package/rulesets/opa/anti-corruption-layer.rego +39 -0
- package/rulesets/opa/anti-corruption-layer.test.rego +118 -0
- package/rulesets/opa/ci-cd.rego +41 -0
- package/rulesets/opa/ci-cd.test.rego +23 -0
- package/rulesets/opa/cicd-quality-gates.rego +29 -0
- package/rulesets/opa/cicd-quality-gates.test.rego +54 -0
- package/rulesets/opa/cli-core-parity.rego +17 -0
- package/rulesets/opa/cli-core-parity.test.rego +39 -0
- package/rulesets/opa/cli-readiness.rego +32 -0
- package/rulesets/opa/cli-readiness.test.rego +23 -0
- package/rulesets/opa/cli-release-readiness.rego +21 -0
- package/rulesets/opa/cli-release-readiness.test.rego +46 -0
- package/rulesets/opa/compliance-baseline.rego +95 -0
- package/rulesets/opa/compliance-baseline.test.rego +89 -0
- package/rulesets/opa/dod.rego +42 -0
- package/rulesets/opa/dod.test.rego +250 -0
- package/rulesets/opa/engineering-manifesto.rego +78 -0
- package/rulesets/opa/engineering-manifesto.test.rego +133 -0
- package/rulesets/opa/evidence.rego +64 -0
- package/rulesets/opa/evidence.test.rego +23 -0
- package/rulesets/opa/executive-scorecards.rego +41 -0
- package/rulesets/opa/executive-scorecards.test.rego +60 -0
- package/rulesets/opa/gitflow-branching.rego +41 -0
- package/rulesets/opa/gitflow-branching.test.rego +60 -0
- package/rulesets/opa/governance.rego +39 -0
- package/rulesets/opa/governance.test.rego +23 -0
- package/rulesets/opa/hexagonal-architecture.rego +33 -0
- package/rulesets/opa/hexagonal-architecture.test.rego +57 -0
- package/rulesets/opa/infrastructure/helm-enforcement.rego +33 -0
- package/rulesets/opa/infrastructure/opa-sidecar-bundle.rego +42 -0
- package/rulesets/opa/knowledge-intake.rego +98 -0
- package/rulesets/opa/knowledge-intake.test.rego +50 -0
- package/rulesets/opa/main.rego +147 -0
- package/rulesets/opa/main_test.rego +149 -0
- package/rulesets/opa/mcp.rego +61 -0
- package/rulesets/opa/mcp.test.rego +27 -0
- package/rulesets/opa/multi-runtime.rego +33 -0
- package/rulesets/opa/multi-runtime.test.rego +53 -0
- package/rulesets/opa/multi-tenancy.rego +33 -0
- package/rulesets/opa/multi-tenancy.test.rego +53 -0
- package/rulesets/opa/open-core-boundary.rego +33 -0
- package/rulesets/opa/open-core-boundary.test.rego +60 -0
- package/rulesets/opa/protocol-selection.rego +29 -0
- package/rulesets/opa/protocol-selection.test.rego +46 -0
- package/rulesets/opa/rbac/gate-role-enforcement.rego +112 -0
- package/rulesets/opa/repository-taxonomy.rego +98 -0
- package/rulesets/opa/repository-taxonomy.test.rego +91 -0
- package/rulesets/opa/satellite-contracts.rego +42 -0
- package/rulesets/opa/satellite-contracts.test.rego +70 -0
- package/rulesets/opa/schemas/abac-mcp-tool-access.input.schema.json +21 -0
- package/rulesets/opa/schemas/anti-corruption-layer.input.schema.json +25 -0
- package/rulesets/opa/schemas/ci-cd.input.schema.json +27 -0
- package/rulesets/opa/schemas/cicd-quality-gates.input.schema.json +33 -0
- package/rulesets/opa/schemas/cli-core-parity.input.schema.json +30 -0
- package/rulesets/opa/schemas/cli-readiness.input.schema.json +28 -0
- package/rulesets/opa/schemas/cli-release-readiness.input.schema.json +26 -0
- package/rulesets/opa/schemas/compliance-baseline.input.schema.json +25 -0
- package/rulesets/opa/schemas/dod.input.schema.json +38 -0
- package/rulesets/opa/schemas/engineering-manifesto.input.schema.json +24 -0
- package/rulesets/opa/schemas/evidence.input.schema.json +35 -0
- package/rulesets/opa/schemas/executive-scorecards.input.schema.json +36 -0
- package/rulesets/opa/schemas/gitflow-branching.input.schema.json +36 -0
- package/rulesets/opa/schemas/governance.input.schema.json +19 -0
- package/rulesets/opa/schemas/hexagonal-architecture.input.schema.json +46 -0
- package/rulesets/opa/schemas/knowledge-intake.input.schema.json +57 -0
- package/rulesets/opa/schemas/mcp.input.schema.json +38 -0
- package/rulesets/opa/schemas/multi-runtime.input.schema.json +27 -0
- package/rulesets/opa/schemas/multi-tenancy.input.schema.json +27 -0
- package/rulesets/opa/schemas/open-core-boundary.input.schema.json +36 -0
- package/rulesets/opa/schemas/protocol-selection.input.schema.json +26 -0
- package/rulesets/opa/schemas/repository-taxonomy.input.schema.json +18 -0
- package/rulesets/opa/schemas/satellite-contracts.input.schema.json +38 -0
- package/rulesets/opa/schemas/taxonomy.input.schema.json +27 -0
- package/rulesets/opa/schemas/testing-pyramid.input.schema.json +42 -0
- package/rulesets/opa/schemas/version-pinning.input.schema.json +39 -0
- package/rulesets/opa/sdlc/coverage.rego +49 -0
- package/rulesets/opa/sdlc/coverage.test.rego +29 -0
- package/rulesets/opa/sdlc/pyramid-distribution.rego +31 -0
- package/rulesets/opa/sdlc/pyramid-distribution.test.rego +33 -0
- package/rulesets/opa/taxonomy.rego +51 -0
- package/rulesets/opa/taxonomy.test.rego +28 -0
- package/rulesets/opa/telemetry-evidence.rego +102 -0
- package/rulesets/opa/testing-pyramid.rego +49 -0
- package/rulesets/opa/testing-pyramid.test.rego +81 -0
- package/rulesets/opa/version-pinning.rego +99 -0
- package/rulesets/opa/version-pinning.test.rego +28 -0
- package/rulesets/phase-gates/README.es.md +28 -0
- package/rulesets/phase-gates/README.md +28 -0
- package/rulesets/phase-gates/phase-gates.rules.json +297 -0
- package/rulesets/quality-thresholds/README.es.md +28 -0
- package/rulesets/quality-thresholds/README.md +28 -0
- package/rulesets/quality-thresholds/quality-thresholds.rules.json +96 -0
- package/rulesets/repository-taxonomy/README.es.md +26 -0
- package/rulesets/repository-taxonomy/README.md +26 -0
- package/rulesets/repository-taxonomy/repository-taxonomy.rules.json +172 -0
- package/rulesets/satellite-contracts/README.es.md +27 -0
- package/rulesets/satellite-contracts/README.md +27 -0
- package/rulesets/satellite-contracts/satellite-contracts.rules.json +183 -0
- package/rulesets/schema/README.es.md +39 -0
- package/rulesets/schema/README.md +39 -0
- package/rulesets/schema/adr.schema.json +138 -0
- package/rulesets/schema/agile-backlog.schema.json +91 -0
- package/rulesets/schema/ballpark-estimation.schema.json +109 -0
- package/rulesets/schema/build-vs-compose.schema.json +98 -0
- package/rulesets/schema/cli-impact-analysis.schema.json +114 -0
- package/rulesets/schema/discovery-canvas.schema.json +92 -0
- package/rulesets/schema/evolith-user-story.schema.json +105 -0
- package/rulesets/schema/evolith-yaml.schema.json +191 -0
- package/rulesets/schema/functional-story.schema.json +111 -0
- package/rulesets/schema/gate-evidence.schema.json +85 -0
- package/rulesets/schema/integration-evidence.schema.json +47 -0
- package/rulesets/schema/knowledge-intake.schema.json +67 -0
- package/rulesets/schema/knowledge-projection.schema.json +24 -0
- package/rulesets/schema/maturity-evidence.schema.json +59 -0
- package/rulesets/schema/observability-validation.schema.json +85 -0
- package/rulesets/schema/on-call-handoff.schema.json +91 -0
- package/rulesets/schema/output-envelope.schema.json +102 -0
- package/rulesets/schema/prd.schema.json +117 -0
- package/rulesets/schema/release-notes.schema.json +138 -0
- package/rulesets/schema/rollback-rehearsal.schema.json +73 -0
- package/rulesets/schema/ruleset-sdlc.schema.json +59 -0
- package/rulesets/schema/ruleset-standard.schema.json +73 -0
- package/rulesets/schema/security-scan-report.schema.json +79 -0
- package/rulesets/schema/source-registry.schema.json +51 -0
- package/rulesets/schema/technical-feasibility.schema.json +66 -0
- package/rulesets/schema/technical-story.schema.json +112 -0
- package/rulesets/schema/test-summary-report.schema.json +158 -0
- package/rulesets/schema/topology-composition.schema.json +43 -0
- package/rulesets/schema/topology-manifest.schema.json +421 -0
- package/rulesets/sdlc/README.es.md +12 -0
- package/rulesets/sdlc/README.md +12 -0
- package/rulesets/sdlc/default-workflow.yaml +73 -0
- package/rulesets/sdlc/dependency-pinning.rules.json +183 -0
- package/rulesets/sdlc/phase-gates.rules.json +297 -0
- package/rulesets/sdlc/quality-thresholds.rules.json +96 -0
- package/rulesets/topologies/README.es.md +42 -0
- package/rulesets/topologies/README.md +42 -0
- package/rulesets/topologies/agentic-ai/README.es.md +142 -0
- package/rulesets/topologies/agentic-ai/README.md +142 -0
- package/rulesets/topologies/agentic-ai/adoption.es.md +37 -0
- package/rulesets/topologies/agentic-ai/adoption.md +37 -0
- package/rulesets/topologies/agentic-ai/agent.config.schema.json +100 -0
- package/rulesets/topologies/agentic-ai/agentic-ai.rego +46 -0
- package/rulesets/topologies/agentic-ai/agentic-ai.rules.json +109 -0
- package/rulesets/topologies/agentic-ai/agentic-ai.test.rego +68 -0
- package/rulesets/topologies/agentic-ai/agentic-ai.wasm +0 -0
- package/rulesets/topologies/agentic-ai/cli/cli-flows.es.md +35 -0
- package/rulesets/topologies/agentic-ai/cli/cli-flows.md +45 -0
- package/rulesets/topologies/agentic-ai/evidence.es.md +25 -0
- package/rulesets/topologies/agentic-ai/evidence.md +25 -0
- package/rulesets/topologies/agentic-ai/evolution.es.md +26 -0
- package/rulesets/topologies/agentic-ai/evolution.md +26 -0
- package/rulesets/topologies/agentic-ai/fixtures/invalid-agent.config.json +48 -0
- package/rulesets/topologies/agentic-ai/fixtures/valid-agent.config.json +48 -0
- package/rulesets/topologies/agentic-ai/maturity.es.md +33 -0
- package/rulesets/topologies/agentic-ai/maturity.md +33 -0
- package/rulesets/topologies/agentic-ai/mcp/mcp-manifest.json +100 -0
- package/rulesets/topologies/agentic-ai/openapi/openapi.yaml +187 -0
- package/rulesets/topologies/agentic-ai/operations.es.md +32 -0
- package/rulesets/topologies/agentic-ai/operations.md +32 -0
- package/rulesets/topologies/agentic-ai/parity-fixtures/compliant.json +18 -0
- package/rulesets/topologies/agentic-ai/parity-fixtures/violation.json +22 -0
- package/rulesets/topologies/agentic-ai/patterns.es.md +32 -0
- package/rulesets/topologies/agentic-ai/patterns.md +32 -0
- package/rulesets/topologies/agentic-ai/resilience.es.md +26 -0
- package/rulesets/topologies/agentic-ai/resilience.md +26 -0
- package/rulesets/topologies/agentic-ai/runbooks.es.md +48 -0
- package/rulesets/topologies/agentic-ai/runbooks.md +48 -0
- package/rulesets/topologies/agentic-ai/security.es.md +26 -0
- package/rulesets/topologies/agentic-ai/security.md +26 -0
- package/rulesets/topologies/agentic-ai/topology.manifest.json +127 -0
- package/rulesets/topologies/data-mesh/README.es.md +69 -0
- package/rulesets/topologies/data-mesh/README.md +69 -0
- package/rulesets/topologies/data-mesh/adoption.es.md +95 -0
- package/rulesets/topologies/data-mesh/adoption.md +95 -0
- package/rulesets/topologies/data-mesh/cli/cli-flows.es.md +41 -0
- package/rulesets/topologies/data-mesh/cli/cli-flows.md +53 -0
- package/rulesets/topologies/data-mesh/data-mesh.rego +11 -0
- package/rulesets/topologies/data-mesh/data-mesh.rules.json +100 -0
- package/rulesets/topologies/data-mesh/data-mesh.test.rego +107 -0
- package/rulesets/topologies/data-mesh/data-mesh.wasm +0 -0
- package/rulesets/topologies/data-mesh/evidence.es.md +111 -0
- package/rulesets/topologies/data-mesh/evidence.md +111 -0
- package/rulesets/topologies/data-mesh/evolution.es.md +67 -0
- package/rulesets/topologies/data-mesh/evolution.md +67 -0
- package/rulesets/topologies/data-mesh/fixtures/invalid.topology.config.json +12 -0
- package/rulesets/topologies/data-mesh/fixtures/valid.topology.config.json +12 -0
- package/rulesets/topologies/data-mesh/maturity.es.md +36 -0
- package/rulesets/topologies/data-mesh/maturity.md +36 -0
- package/rulesets/topologies/data-mesh/mcp/mcp-manifest.json +68 -0
- package/rulesets/topologies/data-mesh/openapi/openapi.yaml +186 -0
- package/rulesets/topologies/data-mesh/operations.es.md +63 -0
- package/rulesets/topologies/data-mesh/operations.md +63 -0
- package/rulesets/topologies/data-mesh/parity-fixtures/compliant.json +18 -0
- package/rulesets/topologies/data-mesh/parity-fixtures/violation.json +21 -0
- package/rulesets/topologies/data-mesh/patterns.es.md +67 -0
- package/rulesets/topologies/data-mesh/patterns.md +67 -0
- package/rulesets/topologies/data-mesh/resilience.es.md +64 -0
- package/rulesets/topologies/data-mesh/resilience.md +64 -0
- package/rulesets/topologies/data-mesh/runbooks.es.md +147 -0
- package/rulesets/topologies/data-mesh/runbooks.md +147 -0
- package/rulesets/topologies/data-mesh/security.es.md +66 -0
- package/rulesets/topologies/data-mesh/security.md +66 -0
- package/rulesets/topologies/data-mesh/topology.config.schema.json +30 -0
- package/rulesets/topologies/data-mesh/topology.manifest.json +107 -0
- package/rulesets/topologies/edge-computing/README.es.md +81 -0
- package/rulesets/topologies/edge-computing/README.md +81 -0
- package/rulesets/topologies/edge-computing/adoption.es.md +268 -0
- package/rulesets/topologies/edge-computing/adoption.md +268 -0
- package/rulesets/topologies/edge-computing/cli/cli-flows.es.md +41 -0
- package/rulesets/topologies/edge-computing/cli/cli-flows.md +53 -0
- package/rulesets/topologies/edge-computing/edge-computing.rego +41 -0
- package/rulesets/topologies/edge-computing/edge-computing.rules.json +50 -0
- package/rulesets/topologies/edge-computing/edge-computing.test.rego +33 -0
- package/rulesets/topologies/edge-computing/edge-computing.wasm +0 -0
- package/rulesets/topologies/edge-computing/evidence.es.md +263 -0
- package/rulesets/topologies/edge-computing/evidence.md +263 -0
- package/rulesets/topologies/edge-computing/evolution.es.md +257 -0
- package/rulesets/topologies/edge-computing/evolution.md +257 -0
- package/rulesets/topologies/edge-computing/fixtures/invalid.topology.config.json +6 -0
- package/rulesets/topologies/edge-computing/fixtures/valid.topology.config.json +6 -0
- package/rulesets/topologies/edge-computing/maturity.es.md +36 -0
- package/rulesets/topologies/edge-computing/maturity.md +36 -0
- package/rulesets/topologies/edge-computing/mcp/mcp-manifest.json +72 -0
- package/rulesets/topologies/edge-computing/openapi/openapi.yaml +187 -0
- package/rulesets/topologies/edge-computing/operations.es.md +148 -0
- package/rulesets/topologies/edge-computing/operations.md +148 -0
- package/rulesets/topologies/edge-computing/parity-fixtures/compliant.json +12 -0
- package/rulesets/topologies/edge-computing/parity-fixtures/violation.json +13 -0
- package/rulesets/topologies/edge-computing/patterns.es.md +291 -0
- package/rulesets/topologies/edge-computing/patterns.md +290 -0
- package/rulesets/topologies/edge-computing/resilience.es.md +232 -0
- package/rulesets/topologies/edge-computing/resilience.md +229 -0
- package/rulesets/topologies/edge-computing/runbooks.es.md +405 -0
- package/rulesets/topologies/edge-computing/runbooks.md +405 -0
- package/rulesets/topologies/edge-computing/security.es.md +218 -0
- package/rulesets/topologies/edge-computing/security.md +218 -0
- package/rulesets/topologies/edge-computing/topology.config.schema.json +13 -0
- package/rulesets/topologies/edge-computing/topology.manifest.json +113 -0
- package/rulesets/topologies/event-driven/README.es.md +71 -0
- package/rulesets/topologies/event-driven/README.md +71 -0
- package/rulesets/topologies/event-driven/adoption.es.md +67 -0
- package/rulesets/topologies/event-driven/adoption.md +67 -0
- package/rulesets/topologies/event-driven/cli/cli-flows.es.md +41 -0
- package/rulesets/topologies/event-driven/cli/cli-flows.md +53 -0
- package/rulesets/topologies/event-driven/event-driven.rego +11 -0
- package/rulesets/topologies/event-driven/event-driven.rules.json +100 -0
- package/rulesets/topologies/event-driven/event-driven.test.rego +107 -0
- package/rulesets/topologies/event-driven/event-driven.wasm +0 -0
- package/rulesets/topologies/event-driven/evidence.es.md +69 -0
- package/rulesets/topologies/event-driven/evidence.md +69 -0
- package/rulesets/topologies/event-driven/evolution.es.md +59 -0
- package/rulesets/topologies/event-driven/evolution.md +59 -0
- package/rulesets/topologies/event-driven/fixtures/invalid.topology.config.json +12 -0
- package/rulesets/topologies/event-driven/fixtures/valid.topology.config.json +12 -0
- package/rulesets/topologies/event-driven/maturity.es.md +36 -0
- package/rulesets/topologies/event-driven/maturity.md +36 -0
- package/rulesets/topologies/event-driven/mcp/mcp-manifest.json +68 -0
- package/rulesets/topologies/event-driven/openapi/openapi.yaml +186 -0
- package/rulesets/topologies/event-driven/operations.es.md +67 -0
- package/rulesets/topologies/event-driven/operations.md +67 -0
- package/rulesets/topologies/event-driven/parity-fixtures/compliant.json +18 -0
- package/rulesets/topologies/event-driven/parity-fixtures/violation.json +21 -0
- package/rulesets/topologies/event-driven/patterns.es.md +68 -0
- package/rulesets/topologies/event-driven/patterns.md +68 -0
- package/rulesets/topologies/event-driven/resilience.es.md +65 -0
- package/rulesets/topologies/event-driven/resilience.md +65 -0
- package/rulesets/topologies/event-driven/runbooks.es.md +79 -0
- package/rulesets/topologies/event-driven/runbooks.md +79 -0
- package/rulesets/topologies/event-driven/security.es.md +59 -0
- package/rulesets/topologies/event-driven/security.md +59 -0
- package/rulesets/topologies/event-driven/topology.config.schema.json +30 -0
- package/rulesets/topologies/event-driven/topology.manifest.json +109 -0
- package/rulesets/topologies/progressive-axis/distributed-modules/distributed-modules.rules.es.json +111 -0
- package/rulesets/topologies/progressive-axis/distributed-modules/distributed-modules.rules.json +111 -0
- package/rulesets/topologies/progressive-axis/microservices/microservices.rules.es.json +106 -0
- package/rulesets/topologies/progressive-axis/microservices/microservices.rules.json +106 -0
- package/rulesets/topologies/progressive-axis/modular-monolith/modular-monolith.rules.es.json +148 -0
- package/rulesets/topologies/progressive-axis/modular-monolith/modular-monolith.rules.json +148 -0
- package/rulesets/topologies/serverless/README.es.md +74 -0
- package/rulesets/topologies/serverless/README.md +74 -0
- package/rulesets/topologies/serverless/adoption.es.md +50 -0
- package/rulesets/topologies/serverless/adoption.md +50 -0
- package/rulesets/topologies/serverless/cli/cli-flows.es.md +41 -0
- package/rulesets/topologies/serverless/cli/cli-flows.md +53 -0
- package/rulesets/topologies/serverless/evidence.es.md +66 -0
- package/rulesets/topologies/serverless/evidence.md +66 -0
- package/rulesets/topologies/serverless/evolution.es.md +36 -0
- package/rulesets/topologies/serverless/evolution.md +36 -0
- package/rulesets/topologies/serverless/fixtures/invalid.topology.config.json +6 -0
- package/rulesets/topologies/serverless/fixtures/valid.topology.config.json +6 -0
- package/rulesets/topologies/serverless/maturity.es.md +36 -0
- package/rulesets/topologies/serverless/maturity.md +36 -0
- package/rulesets/topologies/serverless/mcp/mcp-manifest.json +72 -0
- package/rulesets/topologies/serverless/openapi/openapi.yaml +186 -0
- package/rulesets/topologies/serverless/operations.es.md +36 -0
- package/rulesets/topologies/serverless/operations.md +36 -0
- package/rulesets/topologies/serverless/parity-fixtures/compliant.json +13 -0
- package/rulesets/topologies/serverless/parity-fixtures/violation.json +15 -0
- package/rulesets/topologies/serverless/patterns.es.md +36 -0
- package/rulesets/topologies/serverless/patterns.md +36 -0
- package/rulesets/topologies/serverless/resilience.es.md +36 -0
- package/rulesets/topologies/serverless/resilience.md +36 -0
- package/rulesets/topologies/serverless/runbooks.es.md +68 -0
- package/rulesets/topologies/serverless/runbooks.md +68 -0
- package/rulesets/topologies/serverless/security.es.md +36 -0
- package/rulesets/topologies/serverless/security.md +36 -0
- package/rulesets/topologies/serverless/serverless.rego +32 -0
- package/rulesets/topologies/serverless/serverless.rules.json +33 -0
- package/rulesets/topologies/serverless/serverless.test.rego +28 -0
- package/rulesets/topologies/serverless/serverless.wasm +0 -0
- package/rulesets/topologies/serverless/topology.config.schema.json +28 -0
- package/rulesets/topologies/serverless/topology.manifest.json +114 -0
|
@@ -0,0 +1,176 @@
|
|
|
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
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
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
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
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
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
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
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
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
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
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
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
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
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
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
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
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
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
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
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
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
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "../../schema/ruleset-standard.schema.json",
|
|
3
|
+
"$id": "https://evolith.dev/rulesets/adr/generated/adr-0020-identity-provider-abstraction-strategy.rules.json",
|
|
4
|
+
"title": "ADR-0020 — Identity Provider Abstraction Strategy Rules (generated)",
|
|
5
|
+
"description": "Auto-generated ruleset encoding ADR-0020 (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-0020",
|
|
8
|
+
"adrTitle": "Identity Provider Abstraction Strategy",
|
|
9
|
+
"status": "Approved",
|
|
10
|
+
"date": "2026-05-09",
|
|
11
|
+
"rules": [
|
|
12
|
+
{
|
|
13
|
+
"id": "CORE-0020-01",
|
|
14
|
+
"severity": "SHOULD",
|
|
15
|
+
"category": "adr-conformance",
|
|
16
|
+
"title": "Honor design decision in ADR-0020: Identity Provider Abstraction Strategy",
|
|
17
|
+
"description": "Design and implementation SHOULD honor the decision recorded in ADR-0020 (core track). ADR decision: Separate credential verification from the business layer via polymorphic Strategy injection secured by a local Hexagonal interface ( IAuthenticationPort ): 1. Zero Lock in : The core core trusts a single validation Port logic. Manual attestation required — not machine-verifiable.",
|
|
18
|
+
"statement": "ADR decision: Separate credential verification from the business layer via polymorphic Strategy injection secured by a local Hexagonal interface ( IAuthenticationPort ): 1. Zero Lock in : The core core trusts a single validation Port logic.",
|
|
19
|
+
"rationale": "Derived from ADR-0020 \"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/0020-identity-provider-abstraction-strategy.md"
|
|
26
|
+
],
|
|
27
|
+
"effectiveDate": "2026-05-09"
|
|
28
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "../../schema/ruleset-standard.schema.json",
|
|
3
|
+
"$id": "https://evolith.dev/rulesets/adr/generated/adr-0024-centralized-configuration-feature-platform.rules.json",
|
|
4
|
+
"title": "ADR-0024 — Centralized Configuration & Feature Platform Rules (generated)",
|
|
5
|
+
"description": "Auto-generated ruleset encoding ADR-0024 (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-0024",
|
|
8
|
+
"adrTitle": "Centralized Configuration & Feature Platform",
|
|
9
|
+
"status": "Approved",
|
|
10
|
+
"date": "2026-05-09",
|
|
11
|
+
"rules": [
|
|
12
|
+
{
|
|
13
|
+
"id": "CORE-0024-01",
|
|
14
|
+
"severity": "SHOULD",
|
|
15
|
+
"category": "adr-conformance",
|
|
16
|
+
"title": "Honor design decision in ADR-0024: Centralized Configuration & Feature Platform",
|
|
17
|
+
"description": "Design and implementation SHOULD honor the decision recorded in ADR-0024 (core track). ADR decision: Introduce an authoritative Configuration & Feature Management Bounded Context consolidating system behaviors: 1. Dynamic IdP Store : Shift identity configurations out of environment files into multi tenant database pools, encrypted with AES 256 referencing external secret vaults. Manual attestation required — not machine-verifiable.",
|
|
18
|
+
"statement": "ADR decision: Introduce an authoritative Configuration & Feature Management Bounded Context consolidating system behaviors: 1. Dynamic IdP Store : Shift identity configurations out of environment files into multi tenant database pools, encrypted with AES 256 referencing external secret vaults.",
|
|
19
|
+
"rationale": "Derived from ADR-0024 \"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/0024-configuration-feature-management-platform.md"
|
|
26
|
+
],
|
|
27
|
+
"effectiveDate": "2026-05-09"
|
|
28
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "../../schema/ruleset-standard.schema.json",
|
|
3
|
+
"$id": "https://evolith.dev/rulesets/adr/generated/adr-0025-feature-flag-provider-abstraction-strategy.rules.json",
|
|
4
|
+
"title": "ADR-0025 — Feature Flag Provider Abstraction Strategy Rules (generated)",
|
|
5
|
+
"description": "Auto-generated ruleset encoding ADR-0025 (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-0025",
|
|
8
|
+
"adrTitle": "Feature Flag Provider Abstraction Strategy",
|
|
9
|
+
"status": "Approved",
|
|
10
|
+
"date": "2026-05-09",
|
|
11
|
+
"rules": [
|
|
12
|
+
{
|
|
13
|
+
"id": "CORE-0025-01",
|
|
14
|
+
"severity": "MUST",
|
|
15
|
+
"category": "adr-conformance",
|
|
16
|
+
"title": "Conform to ADR-0025: Feature Flag Provider Abstraction Strategy",
|
|
17
|
+
"description": "Implementations MUST conform to the decision recorded in ADR-0025 (core track). ADR decision: Subsume feature toggle invocation under classic Hexagonal Port principles: 1. Canonical Port : The core repository defines IFeatureFlagPort , detailing universal execution contracts ( evaluate() , isHealthy() ) entirely isolated from commercial library syntax. This ADR contains enforceable language (dependency, layer, structure); conformance is expected to be verifiable via static analysis, linting, CI gates, or structural checks.",
|
|
18
|
+
"statement": "ADR decision: Subsume feature toggle invocation under classic Hexagonal Port principles: 1. Canonical Port : The core repository defines IFeatureFlagPort , detailing universal execution contracts ( evaluate() , isHealthy() ) entirely isolated from commercial library syntax.",
|
|
19
|
+
"rationale": "Derived from ADR-0025 \"Decision\" section. Enforcement signals detected: dependency, layer, structure.",
|
|
20
|
+
"validationQuery": "Verify codebase/CI compliance with ADR-0025 via static analysis, lint rules, or pipeline gates covering: dependency, 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/0025-feature-flag-provider-abstraction.md"
|
|
27
|
+
],
|
|
28
|
+
"effectiveDate": "2026-05-09"
|
|
29
|
+
}
|
package/rulesets/adr/generated/adr-0028-self-hosted-open-source-hybrid-infrastructure.rules.json
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "../../schema/ruleset-standard.schema.json",
|
|
3
|
+
"$id": "https://evolith.dev/rulesets/adr/generated/adr-0028-self-hosted-open-source-hybrid-infrastructure.rules.json",
|
|
4
|
+
"title": "ADR-0028 — Self-Hosted, Open-Source Hybrid Infrastructure Rules (generated)",
|
|
5
|
+
"description": "Auto-generated ruleset encoding ADR-0028 (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-0028",
|
|
8
|
+
"adrTitle": "Self-Hosted, Open-Source Hybrid Infrastructure",
|
|
9
|
+
"status": "Approved",
|
|
10
|
+
"date": "2026-05-09",
|
|
11
|
+
"rules": [
|
|
12
|
+
{
|
|
13
|
+
"id": "CORE-0028-01",
|
|
14
|
+
"severity": "MUST",
|
|
15
|
+
"category": "adr-conformance",
|
|
16
|
+
"title": "Conform to ADR-0028: Self-Hosted, Open-Source Hybrid Infrastructure",
|
|
17
|
+
"description": "Implementations MUST conform to the decision recorded in ADR-0028 (core track). ADR decision: Strictly govern internal tooling selection based on the 100% Open Source, Self Hostable, and Plug and Play Extensibility Principle : 1. Infrastructure as a Port : NO concrete infrastructure SDK/Library from the products listed below may ever cross into Domain/Application layers. 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: Strictly govern internal tooling selection based on the 100% Open Source, Self Hostable, and Plug and Play Extensibility Principle : 1. Infrastructure as a Port : NO concrete infrastructure SDK/Library from the products listed below may ever cross into Domain/Application layers.",
|
|
19
|
+
"rationale": "Derived from ADR-0028 \"Decision\" section. Enforcement signals detected: must, layer, structure.",
|
|
20
|
+
"validationQuery": "Verify codebase/CI compliance with ADR-0028 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/0028-self-hosted-hybrid-infrastructure-on-premise.md"
|
|
27
|
+
],
|
|
28
|
+
"effectiveDate": "2026-05-09"
|
|
29
|
+
}
|