@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,81 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "../schema/ruleset-standard.schema.json",
|
|
3
|
-
"$id": "https://evolith.dev/rulesets/cross-cutting/compliance-baseline.rules.json",
|
|
4
|
-
"title": "Evolith Compliance Baseline Rules",
|
|
5
|
-
"description": "Machine-readable encoding of the 5 Evolith Compliance Baseline pillars. These artifacts govern the entire lifecycle and must be in effect from the first artifact to the last deployment.",
|
|
6
|
-
"version": "1.0.0",
|
|
7
|
-
"effectiveDate": "2026-01-01",
|
|
8
|
-
"exitCriteria": {
|
|
9
|
-
"description": "All 5 pillars validated present and compliant in each satellite. Baseline violations block Phase 1 gate.",
|
|
10
|
-
"validationTools": [
|
|
11
|
-
"evolith-cli validate",
|
|
12
|
-
"architectural review",
|
|
13
|
-
"CI baseline check"
|
|
14
|
-
]
|
|
15
|
-
},
|
|
16
|
-
"rules": [
|
|
17
|
-
{
|
|
18
|
-
"id": "CB-01",
|
|
19
|
-
"severity": "MUST",
|
|
20
|
-
"category": "Agnostic Baseline",
|
|
21
|
-
"title": "Technology selection respects Agnostic Baseline",
|
|
22
|
-
"description": "Any technology introduced in a satellite must not contradict the Agnostic Baseline. New technology requires Architecture Board review and ADR before adoption.",
|
|
23
|
-
"validationQuery": "New dependencies validated against authoritative-tech-stack-agnostic.md approved list. Unlisted tech requires exception.",
|
|
24
|
-
"blocking": true
|
|
25
|
-
},
|
|
26
|
-
{
|
|
27
|
-
"id": "CB-02",
|
|
28
|
-
"severity": "MUST",
|
|
29
|
-
"category": "Reference Architecture (Blueprint)",
|
|
30
|
-
"title": "Product architecture traceable to Reference Blueprint",
|
|
31
|
-
"description": "Product architecture diagrams must be traceable to the Evolith Reference Blueprint C4 model. All bounded contexts, layers, and communication paths must map to the reference.",
|
|
32
|
-
"validationQuery": "Architecture diagrams include reference to Blueprint layers and bounded contexts. Traceability matrix exists.",
|
|
33
|
-
"blocking": true
|
|
34
|
-
},
|
|
35
|
-
{
|
|
36
|
-
"id": "CB-03",
|
|
37
|
-
"severity": "MUST",
|
|
38
|
-
"category": "Engineering Manifesto",
|
|
39
|
-
"title": "Engineering Manifesto principles enforced",
|
|
40
|
-
"description": "SOLID, DRY, KISS, YAGNI, and anti-patterns rules from Engineering Manifesto are enforced via linting and code review.",
|
|
41
|
-
"validationQuery": "ESLint or equivalent rules enforce Manifesto principles. PR reviewer checks compliance.",
|
|
42
|
-
"blocking": true
|
|
43
|
-
},
|
|
44
|
-
{
|
|
45
|
-
"id": "CB-04",
|
|
46
|
-
"severity": "MUST",
|
|
47
|
-
"category": "Definition of Done",
|
|
48
|
-
"title": "Definition of Done satisfied before story closure",
|
|
49
|
-
"description": "Every Technical Story must satisfy the Definition of Done checklist before being marked Done. DoD includes: code implemented and reviewed, unit tests passing at >= 80% coverage, acceptance criteria verified, documentation updated.",
|
|
50
|
-
"validationQuery": "Story status = Done only when all DoD checklist items are checked. CI confirms coverage and test pass.",
|
|
51
|
-
"blocking": true
|
|
52
|
-
},
|
|
53
|
-
{
|
|
54
|
-
"id": "CB-05",
|
|
55
|
-
"severity": "MUST",
|
|
56
|
-
"category": "Repository Taxonomy",
|
|
57
|
-
"title": "Repository structure follows Taxonomy",
|
|
58
|
-
"description": "Repository structure, file naming, and artifact classification follow Repository Taxonomy rules. Evolith reference, canonical reference, and product evidence locations are respected.",
|
|
59
|
-
"validationQuery": "Directory structure matches Repository Taxonomy. Files located in correct taxonomic category.",
|
|
60
|
-
"blocking": true
|
|
61
|
-
},
|
|
62
|
-
{
|
|
63
|
-
"id": "CB-VAL-01",
|
|
64
|
-
"severity": "MUST",
|
|
65
|
-
"category": "validation",
|
|
66
|
-
"title": "All 5 baseline pillars must be present in evolith.yaml spec.compliance",
|
|
67
|
-
"description": "All 5 baseline pillars must be present in evolith.yaml spec.compliance",
|
|
68
|
-
"enforcement": "CLI validates baseline pillar references in satellite evolith.yaml",
|
|
69
|
-
"blocking": true
|
|
70
|
-
},
|
|
71
|
-
{
|
|
72
|
-
"id": "CB-VAL-02",
|
|
73
|
-
"severity": "MUST",
|
|
74
|
-
"category": "validation",
|
|
75
|
-
"title": "Baseline references must point to existing Evolith Core documents",
|
|
76
|
-
"description": "Baseline references must point to existing Evolith Core documents",
|
|
77
|
-
"enforcement": "Broken references to baseline documents block satellite governance validation",
|
|
78
|
-
"blocking": true
|
|
79
|
-
}
|
|
80
|
-
]
|
|
81
|
-
}
|
|
@@ -1,135 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "../schema/ruleset-standard.schema.json",
|
|
3
|
-
"$id": "https://evolith.dev/rulesets/cross-cutting/definition-of-done.rules.json",
|
|
4
|
-
"title": "Definition of Done Rules",
|
|
5
|
-
"description": "Machine-readable encoding of the Evolith Definition of Done. Mandatory checklist for every Technical Story before it can be marked Done.",
|
|
6
|
-
"version": "1.0.0",
|
|
7
|
-
"effectiveDate": "2026-01-01",
|
|
8
|
-
"rules": [
|
|
9
|
-
{
|
|
10
|
-
"id": "DOD-01",
|
|
11
|
-
"severity": "MUST",
|
|
12
|
-
"category": "code",
|
|
13
|
-
"title": "Code implemented and reviewed",
|
|
14
|
-
"description": "All implementation code is written and at least one peer review approval exists. Self-review does not count.",
|
|
15
|
-
"validationQuery": "PR has minimum 1 approved review. No direct push to main/develop.",
|
|
16
|
-
"blocking": true,
|
|
17
|
-
"checklistItem": "code-implemented"
|
|
18
|
-
},
|
|
19
|
-
{
|
|
20
|
-
"id": "DOD-02",
|
|
21
|
-
"severity": "MUST",
|
|
22
|
-
"category": "testing",
|
|
23
|
-
"title": "Unit tests meet coverage threshold",
|
|
24
|
-
"description": "Unit test coverage for business logic >= 80%. Layer-specific thresholds apply: Domain >= 95%, Application >= 85%, Infrastructure >= 60%.",
|
|
25
|
-
"validationQuery": "Coverage report from CI shows >= 80% for business logic. Per-layer thresholds validated.",
|
|
26
|
-
"blocking": true,
|
|
27
|
-
"checklistItem": "tests-passing"
|
|
28
|
-
},
|
|
29
|
-
{
|
|
30
|
-
"id": "DOD-03",
|
|
31
|
-
"severity": "MUST",
|
|
32
|
-
"category": "testing",
|
|
33
|
-
"title": "All acceptance criteria verified",
|
|
34
|
-
"description": "All acceptance criteria from the Functional Story are verified and pass. Manual or automated verification documented.",
|
|
35
|
-
"validationQuery": "All acceptance criteria marked as verified in story tracker. E2E or integration tests confirm criteria.",
|
|
36
|
-
"blocking": true,
|
|
37
|
-
"checklistItem": "acceptance-criteria-verified"
|
|
38
|
-
},
|
|
39
|
-
{
|
|
40
|
-
"id": "DOD-04",
|
|
41
|
-
"severity": "MUST",
|
|
42
|
-
"category": "documentation",
|
|
43
|
-
"title": "Documentation updated",
|
|
44
|
-
"description": "Documentation delta is produced alongside code changes. This includes: updated ADRs if decisions were made, inline code documentation for complex logic, README updates if public interfaces changed.",
|
|
45
|
-
"validationQuery": "PR includes documentation changes. Reviewer validates documentation completeness.",
|
|
46
|
-
"blocking": true,
|
|
47
|
-
"checklistItem": "documentation-updated"
|
|
48
|
-
},
|
|
49
|
-
{
|
|
50
|
-
"id": "DOD-05",
|
|
51
|
-
"severity": "MUST",
|
|
52
|
-
"category": "observability",
|
|
53
|
-
"title": "Observability instrumentation added",
|
|
54
|
-
"description": "Production paths have observable telemetry: traces with CorrelationId, structured logs with SessionTrackingId, metrics for key operations.",
|
|
55
|
-
"validationQuery": "OTel spans present for production API paths. Logs include required context fields.",
|
|
56
|
-
"blocking": true,
|
|
57
|
-
"checklistItem": "observability-added"
|
|
58
|
-
},
|
|
59
|
-
{
|
|
60
|
-
"id": "DOD-06",
|
|
61
|
-
"severity": "MUST",
|
|
62
|
-
"category": "security",
|
|
63
|
-
"title": "Security gates passed",
|
|
64
|
-
"description": "CodeQL scan passed with zero High/Critical findings. No new CVEs introduced. Secret scanning passed.",
|
|
65
|
-
"validationQuery": "CI security gates all green. CodeQL, dependency scan, secret scan passed.",
|
|
66
|
-
"blocking": true,
|
|
67
|
-
"checklistItem": "security-gates-passed"
|
|
68
|
-
},
|
|
69
|
-
{
|
|
70
|
-
"id": "DOD-07",
|
|
71
|
-
"severity": "MUST",
|
|
72
|
-
"category": "architecture",
|
|
73
|
-
"title": "ADR created if architectural decision made",
|
|
74
|
-
"description": "If the implementation required a new architectural decision (boundary change, technology selection, security model change), an ADR is created and linked to the story.",
|
|
75
|
-
"validationQuery": "Architectural decisions documented in ADR. Story links to relevant ADR IDs.",
|
|
76
|
-
"blocking": false,
|
|
77
|
-
"checklistItem": "adr-created-if-needed"
|
|
78
|
-
},
|
|
79
|
-
{
|
|
80
|
-
"id": "DOD-08",
|
|
81
|
-
"severity": "MUST",
|
|
82
|
-
"category": "integration",
|
|
83
|
-
"title": "Integration tests pass",
|
|
84
|
-
"description": "Integration tests (adapter tests with testcontainers) pass. Tests cover persistence adapters, gateway adapters, and inter-service contracts.",
|
|
85
|
-
"validationQuery": "Integration test suite passes. Contract tests for inter-service calls pass.",
|
|
86
|
-
"blocking": true,
|
|
87
|
-
"checklistItem": "integration-tests-passing"
|
|
88
|
-
},
|
|
89
|
-
{
|
|
90
|
-
"id": "DOD-09",
|
|
91
|
-
"severity": "MUST",
|
|
92
|
-
"category": "lint",
|
|
93
|
-
"title": "Linting and formatting passed",
|
|
94
|
-
"description": "All linting rules pass (ESLint, Prettier formatting). No lint errors, no formatting violations.",
|
|
95
|
-
"validationQuery": "CI lint step green. No ESLint errors, Prettier formatted.",
|
|
96
|
-
"blocking": true,
|
|
97
|
-
"checklistItem": "lint-passing"
|
|
98
|
-
},
|
|
99
|
-
{
|
|
100
|
-
"id": "DOD-10",
|
|
101
|
-
"severity": "MUST",
|
|
102
|
-
"category": "ci",
|
|
103
|
-
"title": "CI pipeline green on target branch",
|
|
104
|
-
"description": "CI pipeline runs successfully on the feature branch with all quality gates passing before merge.",
|
|
105
|
-
"validationQuery": "All CI checks green. Pipeline completed successfully on feature branch.",
|
|
106
|
-
"blocking": true,
|
|
107
|
-
"checklistItem": "ci-green"
|
|
108
|
-
}
|
|
109
|
-
],
|
|
110
|
-
"summaryChecklist": [
|
|
111
|
-
"code-implemented",
|
|
112
|
-
"tests-passing",
|
|
113
|
-
"acceptance-criteria-verified",
|
|
114
|
-
"documentation-updated",
|
|
115
|
-
"observability-added",
|
|
116
|
-
"security-gates-passed",
|
|
117
|
-
"adr-created-if-needed",
|
|
118
|
-
"integration-tests-passing",
|
|
119
|
-
"lint-passing",
|
|
120
|
-
"ci-green"
|
|
121
|
-
],
|
|
122
|
-
"references": [
|
|
123
|
-
"reference/governance/sdlc/02-engineering/construction-focused-sdlc-framework.md",
|
|
124
|
-
"reference/governance/sdlc/quality-gates.md"
|
|
125
|
-
],
|
|
126
|
-
"exitCriteria": {
|
|
127
|
-
"description": "All MUST items checked. Story cannot be marked Done without all blocking items satisfied.",
|
|
128
|
-
"validationTools": [
|
|
129
|
-
"CI pipeline",
|
|
130
|
-
"coverage reports",
|
|
131
|
-
"PR review",
|
|
132
|
-
"story tracker"
|
|
133
|
-
]
|
|
134
|
-
}
|
|
135
|
-
}
|
|
@@ -1,145 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "../schema/ruleset-standard.schema.json",
|
|
3
|
-
"$id": "https://evolith.dev/rulesets/cross-cutting/engineering-manifesto.rules.json",
|
|
4
|
-
"title": "Engineering Manifesto Rules",
|
|
5
|
-
"description": "Machine-readable encoding of the Evolith Engineering Manifesto principles. SOLID, DRY, KISS, YAGNI, and anti-pattern rules enforced via linting and review.",
|
|
6
|
-
"version": "1.0.0",
|
|
7
|
-
"effectiveDate": "2026-01-01",
|
|
8
|
-
"antiPatterns": [
|
|
9
|
-
{
|
|
10
|
-
"id": "AP-01",
|
|
11
|
-
"name": "God Class / Object",
|
|
12
|
-
"description": "Class with too many responsibilities (> 500 lines, > 20 methods). Violates SRP.",
|
|
13
|
-
"detection": "ESLint max-lines-per-file, max-classes-per-file"
|
|
14
|
-
},
|
|
15
|
-
{
|
|
16
|
-
"id": "AP-02",
|
|
17
|
-
"name": "Circular Dependency",
|
|
18
|
-
"description": "Module A imports Module B which imports Module A directly or indirectly.",
|
|
19
|
-
"detection": "dependency-cruiser no-circular"
|
|
20
|
-
},
|
|
21
|
-
{
|
|
22
|
-
"id": "AP-03",
|
|
23
|
-
"name": "Shotgun Surgery",
|
|
24
|
-
"description": "One change requires modifying many different classes across the codebase.",
|
|
25
|
-
"detection": "Code review; refactoring debt"
|
|
26
|
-
},
|
|
27
|
-
{
|
|
28
|
-
"id": "AP-04",
|
|
29
|
-
"name": "Spaghetti Code",
|
|
30
|
-
"description": "Code with complex nested control structures, no clear structure, tangled logic.",
|
|
31
|
-
"detection": "High cyclomatic complexity + low cohesion metrics"
|
|
32
|
-
},
|
|
33
|
-
{
|
|
34
|
-
"id": "AP-05",
|
|
35
|
-
"name": "Magic Numbers/Strings",
|
|
36
|
-
"description": "Unnamed constants scattered throughout code instead of named constants.",
|
|
37
|
-
"detection": "ESLint no-magic-numbers"
|
|
38
|
-
}
|
|
39
|
-
],
|
|
40
|
-
"references": [
|
|
41
|
-
"reference/governance/standards/engineering/engineering-manifesto.md",
|
|
42
|
-
"reference/architecture/adrs/core/0049-naming-semantics-clean-code-policy.md"
|
|
43
|
-
],
|
|
44
|
-
"exitCriteria": {
|
|
45
|
-
"description": "All SOLID violations blocked in CI. DRY violations detected and fixed. Anti-patterns flagged in code review.",
|
|
46
|
-
"validationTools": [
|
|
47
|
-
"ESLint",
|
|
48
|
-
"SonarQube",
|
|
49
|
-
"dependency-cruiser",
|
|
50
|
-
"code review"
|
|
51
|
-
]
|
|
52
|
-
},
|
|
53
|
-
"rules": [
|
|
54
|
-
{
|
|
55
|
-
"id": "EM-S-01",
|
|
56
|
-
"severity": "MUST",
|
|
57
|
-
"category": "SOLID",
|
|
58
|
-
"title": "Single Responsibility: one reason to change",
|
|
59
|
-
"description": "Every class and module has one, and only one, reason to change. No God classes or multipurpose utilities.",
|
|
60
|
-
"validationQuery": "ESLint rule max-classes-per-file or equivalent. Class length < 200 lines.",
|
|
61
|
-
"blocking": false
|
|
62
|
-
},
|
|
63
|
-
{
|
|
64
|
-
"id": "EM-S-02",
|
|
65
|
-
"severity": "MUST",
|
|
66
|
-
"category": "SOLID",
|
|
67
|
-
"title": "Open/Closed: open for extension, closed for modification",
|
|
68
|
-
"description": "Software entities (classes, modules, functions) are open for extension but closed for modification. New behavior added via inheritance/composition, not by editing existing code.",
|
|
69
|
-
"validationQuery": "Code review verifies no modification of tested/approved classes for new features. Extension via polymorphism preferred.",
|
|
70
|
-
"blocking": false
|
|
71
|
-
},
|
|
72
|
-
{
|
|
73
|
-
"id": "EM-S-03",
|
|
74
|
-
"severity": "MUST",
|
|
75
|
-
"category": "SOLID",
|
|
76
|
-
"title": "Liskov Substitution: subtype substitutable for base",
|
|
77
|
-
"description": "Objects of a superclass shall be replaceable with objects of a subclass without affecting correctness. No违背 Liskov anywhere.",
|
|
78
|
-
"validationQuery": "TypeScript: no unsafe casting. Liskov violations detected via type checking and test coverage.",
|
|
79
|
-
"blocking": true
|
|
80
|
-
},
|
|
81
|
-
{
|
|
82
|
-
"id": "EM-S-04",
|
|
83
|
-
"severity": "MUST",
|
|
84
|
-
"category": "SOLID",
|
|
85
|
-
"title": "Interface Segregation: fine-grained interfaces",
|
|
86
|
-
"description": "Clients should not be forced to depend on interfaces they do not use. Prefer many small interfaces over one large interface.",
|
|
87
|
-
"validationQuery": "Interface size checked. No interface with > 10 methods without documented justification.",
|
|
88
|
-
"blocking": false
|
|
89
|
-
},
|
|
90
|
-
{
|
|
91
|
-
"id": "EM-S-05",
|
|
92
|
-
"severity": "MUST",
|
|
93
|
-
"category": "SOLID",
|
|
94
|
-
"title": "Dependency Inversion: depend on abstractions",
|
|
95
|
-
"description": "High-level modules must not depend on low-level modules. Both must depend on abstractions. Abstractions must not depend on details.",
|
|
96
|
-
"validationQuery": "Dependency direction validated via eslint-plugin-boundaries. Core has no Infrastructure imports.",
|
|
97
|
-
"blocking": true
|
|
98
|
-
},
|
|
99
|
-
{
|
|
100
|
-
"id": "EM-D-01",
|
|
101
|
-
"severity": "MUST",
|
|
102
|
-
"category": "DRY",
|
|
103
|
-
"title": "Don't Repeat Yourself",
|
|
104
|
-
"description": "Every piece of knowledge must have a single, unambiguous, authoritative representation within a system. Duplicated logic must be extracted to a single source.",
|
|
105
|
-
"validationQuery": "AST analysis detects duplicated code blocks > 5 lines. ESLint no-duplicate-imports or equivalent.",
|
|
106
|
-
"blocking": false
|
|
107
|
-
},
|
|
108
|
-
{
|
|
109
|
-
"id": "EM-D-02",
|
|
110
|
-
"severity": "MUST",
|
|
111
|
-
"category": "DRY",
|
|
112
|
-
"title": "Configuration not duplicated",
|
|
113
|
-
"description": "Configuration values (strings, numbers, URLs) must not be hardcoded in multiple places. Centralized config or constants.",
|
|
114
|
-
"validationQuery": "Magic numbers/strings detected. Configuration centralized in config files or env vars.",
|
|
115
|
-
"blocking": false
|
|
116
|
-
},
|
|
117
|
-
{
|
|
118
|
-
"id": "EM-K-01",
|
|
119
|
-
"severity": "MUST",
|
|
120
|
-
"category": "KISS",
|
|
121
|
-
"title": "Keep It Simple, Stupid",
|
|
122
|
-
"description": "Simplicity is the ultimate sophistication. Prefer simple solutions over complex ones. Complexity is the enemy of reliability.",
|
|
123
|
-
"validationQuery": "Cyclomatic complexity < 15 per method/function. Nested ternaries and complex conditions flagged.",
|
|
124
|
-
"blocking": true
|
|
125
|
-
},
|
|
126
|
-
{
|
|
127
|
-
"id": "EM-K-02",
|
|
128
|
-
"severity": "SHOULD NOT",
|
|
129
|
-
"category": "KISS",
|
|
130
|
-
"title": "Avoid premature abstraction",
|
|
131
|
-
"description": "Do not abstract for hypothetical future reuse. Abstract when duplication appears, not before.",
|
|
132
|
-
"validationQuery": "Unused interfaces or abstract classes flagged. Abstraction must have concrete use.",
|
|
133
|
-
"blocking": false
|
|
134
|
-
},
|
|
135
|
-
{
|
|
136
|
-
"id": "EM-Y-01",
|
|
137
|
-
"severity": "MUST NOT",
|
|
138
|
-
"category": "YAGNI",
|
|
139
|
-
"title": "You Aren't Gonna Need It",
|
|
140
|
-
"description": "Do not implement features or abstractions until they are actually needed. Building for hypothetical futures creates complexity debt.",
|
|
141
|
-
"validationQuery": "Code review checks for unused code paths or interfaces with no implementing classes.",
|
|
142
|
-
"blocking": false
|
|
143
|
-
}
|
|
144
|
-
]
|
|
145
|
-
}
|
|
@@ -1,172 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "../schema/ruleset-standard.schema.json",
|
|
3
|
-
"$id": "https://evolith.dev/rulesets/cross-cutting/repository-taxonomy.rules.json",
|
|
4
|
-
"title": "Repository Taxonomy Rules",
|
|
5
|
-
"description": "Machine-readable encoding of the Evolith Repository Taxonomy. Naming, structure, and artifact classification rules for all Evolith repositories.",
|
|
6
|
-
"version": "1.0.0",
|
|
7
|
-
"effectiveDate": "2026-01-01",
|
|
8
|
-
"rules": [
|
|
9
|
-
{
|
|
10
|
-
"id": "TAX-01",
|
|
11
|
-
"severity": "MUST",
|
|
12
|
-
"category": "naming-conventions",
|
|
13
|
-
"title": "File names use kebab-case",
|
|
14
|
-
"description": "All file names use kebab-case (lowercase with hyphens). No spaces, no underscores in file names. Example: my-file-name.md, user-service.ts.",
|
|
15
|
-
"validationQuery": "File names validated via linting or CI script. Pattern: ^[a-z0-9-]+\\.[a-z]+$",
|
|
16
|
-
"blocking": true,
|
|
17
|
-
"examples": [
|
|
18
|
-
"my-file.md",
|
|
19
|
-
"user-service.ts",
|
|
20
|
-
"api-gateway.ts"
|
|
21
|
-
]
|
|
22
|
-
},
|
|
23
|
-
{
|
|
24
|
-
"id": "TAX-02",
|
|
25
|
-
"severity": "MUST",
|
|
26
|
-
"category": "naming-conventions",
|
|
27
|
-
"title": "Class and type names use PascalCase",
|
|
28
|
-
"description": "Classes, interfaces, types, enums, and UI components use PascalCase.",
|
|
29
|
-
"rationale": "ADR-0056: Ubiquitous language enforcement. PascalCase for types/components.",
|
|
30
|
-
"validationQuery": "ESLint naming-convention for classes and interfaces.",
|
|
31
|
-
"blocking": true,
|
|
32
|
-
"examples": [
|
|
33
|
-
"UserService",
|
|
34
|
-
"HttpClient",
|
|
35
|
-
"ApiResponse"
|
|
36
|
-
]
|
|
37
|
-
},
|
|
38
|
-
{
|
|
39
|
-
"id": "TAX-03",
|
|
40
|
-
"severity": "MUST",
|
|
41
|
-
"category": "naming-conventions",
|
|
42
|
-
"title": "Variable and function names use camelCase",
|
|
43
|
-
"description": "Variables, functions, methods use camelCase.",
|
|
44
|
-
"rationale": "ADR-0056: camelCase for variables and functions.",
|
|
45
|
-
"validationQuery": "ESLint naming-convention for variables and functions.",
|
|
46
|
-
"blocking": true,
|
|
47
|
-
"examples": [
|
|
48
|
-
"getUserById",
|
|
49
|
-
"userData",
|
|
50
|
-
"isValid"
|
|
51
|
-
]
|
|
52
|
-
},
|
|
53
|
-
{
|
|
54
|
-
"id": "TAX-04",
|
|
55
|
-
"severity": "MUST",
|
|
56
|
-
"category": "naming-conventions",
|
|
57
|
-
"title": "Constants use UPPER_SNAKE_CASE",
|
|
58
|
-
"description": "Compile-time constants and configuration keys use UPPER_SNAKE_CASE.",
|
|
59
|
-
"validationQuery": "ESLint naming-convention for constants.",
|
|
60
|
-
"blocking": false,
|
|
61
|
-
"examples": [
|
|
62
|
-
"MAX_RETRY_COUNT",
|
|
63
|
-
"API_BASE_URL"
|
|
64
|
-
]
|
|
65
|
-
},
|
|
66
|
-
{
|
|
67
|
-
"id": "TAX-05",
|
|
68
|
-
"severity": "MUST",
|
|
69
|
-
"category": "directory-structure",
|
|
70
|
-
"title": "Evolith Core structure: reference/, sdk/, rulesets/",
|
|
71
|
-
"description": "Evolith Core repository uses three primary directories: reference/ (human-authored standards), sdk/ (CLI, MCP, and executable access tooling), rulesets/ (machine-readable rules, including rulesets/topologies/ for executable topology rules). No other top-level content directories.",
|
|
72
|
-
"rationale": "Repository Taxonomy defines three entry points with clear ownership.",
|
|
73
|
-
"validationQuery": "Top-level directories match taxonomy. No arbitrary content directories added.",
|
|
74
|
-
"blocking": true,
|
|
75
|
-
"structure": [
|
|
76
|
-
"reference/",
|
|
77
|
-
"sdk/",
|
|
78
|
-
"rulesets/",
|
|
79
|
-
"rulesets/topologies/"
|
|
80
|
-
]
|
|
81
|
-
},
|
|
82
|
-
{
|
|
83
|
-
"id": "TAX-06",
|
|
84
|
-
"severity": "MUST",
|
|
85
|
-
"category": "directory-structure",
|
|
86
|
-
"title": "Satellite structure: src/, tests/, docs/",
|
|
87
|
-
"description": "Satellite repositories follow standard structure: src/ (source code), tests/ (test code), docs/ (documentation). Infrastructure code lives under src/Infrastructure, domain code under src/Domain.",
|
|
88
|
-
"rationale": "Repository Taxonomy standard satellite structure.",
|
|
89
|
-
"validationQuery": "Satellite root has src/, tests/, docs/ directories. Hexagonal layers under src/.",
|
|
90
|
-
"blocking": true,
|
|
91
|
-
"structure": [
|
|
92
|
-
"src/Domain",
|
|
93
|
-
"src/Application",
|
|
94
|
-
"src/Infrastructure",
|
|
95
|
-
"src/Api"
|
|
96
|
-
]
|
|
97
|
-
},
|
|
98
|
-
{
|
|
99
|
-
"id": "TAX-07",
|
|
100
|
-
"severity": "MUST",
|
|
101
|
-
"category": "adr-naming",
|
|
102
|
-
"title": "ADR files named with zero-padded ID",
|
|
103
|
-
"description": "ADR files use format: NNNN-descriptive-name.md where NNNN is zero-padded 4-digit number. Example: 0002-clean-architecture-nestjs.md, 0069-dotnet-grpc-service.md.",
|
|
104
|
-
"rationale": "core/ADR-0048: Canonical numbering enables sorting and referencing.",
|
|
105
|
-
"validationQuery": "ADR filenames match pattern: ^[0-9]{4}-[a-z-]+\\.md$",
|
|
106
|
-
"blocking": true,
|
|
107
|
-
"examples": [
|
|
108
|
-
"0002-clean-architecture-nestjs.md",
|
|
109
|
-
"0069-dotnet-grpc-service-setup-protobuf-contracts.md"
|
|
110
|
-
]
|
|
111
|
-
},
|
|
112
|
-
{
|
|
113
|
-
"id": "TAX-08",
|
|
114
|
-
"severity": "MUST",
|
|
115
|
-
"category": "adr-naming",
|
|
116
|
-
"title": "Bilingual ADR files use .es.md suffix",
|
|
117
|
-
"description": "Spanish translations of ADRs use .es.md suffix in same directory. Example: 0002-clean-architecture-nestjs.es.md alongside 0002-clean-architecture-nestjs.md.",
|
|
118
|
-
"rationale": "Bilingual naming convention: Pattern A for individual files.",
|
|
119
|
-
"validationQuery": "Bilingual parity: every .md ADR has corresponding .es.md in same directory.",
|
|
120
|
-
"blocking": true
|
|
121
|
-
},
|
|
122
|
-
{
|
|
123
|
-
"id": "TAX-09",
|
|
124
|
-
"severity": "MUST",
|
|
125
|
-
"category": "artifact-classification",
|
|
126
|
-
"title": "Evolith reference artifacts in reference/",
|
|
127
|
-
"description": "Reusable policy, decision criteria, accepted trade-offs, and human-authored topology profiles go in reference/architecture/, reference/architecture/topologies/, reference/governance/, reference/knowledge/. These are normative or decisional depending on document status.",
|
|
128
|
-
"rationale": "Repository Taxonomy: Canonical Reference goes in reference/.",
|
|
129
|
-
"validationQuery": "Architecture decisions, standards, and patterns placed in correct reference/ subdirectory.",
|
|
130
|
-
"blocking": true
|
|
131
|
-
},
|
|
132
|
-
{
|
|
133
|
-
"id": "TAX-10",
|
|
134
|
-
"severity": "MUST",
|
|
135
|
-
"category": "artifact-classification",
|
|
136
|
-
"title": "Product-specific evidence not in reference/",
|
|
137
|
-
"description": "Product-specific routes, schemas, seeds, and branding do NOT go in reference/. They go in the satellite repository. Enterprise policy changes go through Evolith governance.",
|
|
138
|
-
"rationale": "Repository Taxonomy: Product evidence stays in product repo, not reference.",
|
|
139
|
-
"validationQuery": "No product-specific files in reference/. Product evidence in satellite repositories.",
|
|
140
|
-
"blocking": true
|
|
141
|
-
},
|
|
142
|
-
{
|
|
143
|
-
"id": "TAX-11",
|
|
144
|
-
"severity": "MUST",
|
|
145
|
-
"category": "directory-structure",
|
|
146
|
-
"title": "No root-level topologies directory",
|
|
147
|
-
"description": "Evolith Core MUST NOT create /topologies/ at repository root. Multi-topology documentation and executable rules must stay within taxonomy-approved corpus and ruleset locations, specifically reference/architecture/topologies/ and rulesets/topologies/, unless a future accepted ADR supersedes the root taxonomy.",
|
|
148
|
-
"rationale": "core/ADR-0079 rejects root-level /topologies/ to preserve ADR-0048 and ADR-0070 root taxonomy constraints.",
|
|
149
|
-
"validationQuery": "Repository root directory listing does not contain topologies/.",
|
|
150
|
-
"blocking": true,
|
|
151
|
-
"examples": [
|
|
152
|
-
"reference/architecture/topologies/",
|
|
153
|
-
"rulesets/topologies/"
|
|
154
|
-
]
|
|
155
|
-
}
|
|
156
|
-
],
|
|
157
|
-
"references": [
|
|
158
|
-
"reference/governance/standards/repository-taxonomy.md",
|
|
159
|
-
"reference/architecture/adrs/core/0048-enterprise-taxonomy-reference-layout.md",
|
|
160
|
-
"reference/architecture/adrs/core/0056-enterprise-naming-design-conventions.md",
|
|
161
|
-
"reference/architecture/adrs/core/0070-lean-root-repository-taxonomy.md",
|
|
162
|
-
"reference/architecture/adrs/core/0079-multi-topology-reference-corpus.md"
|
|
163
|
-
],
|
|
164
|
-
"exitCriteria": {
|
|
165
|
-
"description": "All files follow naming conventions. Directory structure matches taxonomy. ADR files correctly numbered.",
|
|
166
|
-
"validationTools": [
|
|
167
|
-
"CI naming validation",
|
|
168
|
-
"directory structure check",
|
|
169
|
-
"ADR numbering validation"
|
|
170
|
-
]
|
|
171
|
-
}
|
|
172
|
-
}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
# Ruleset de Definition of Done
|
|
2
|
-
|
|
3
|
-
> **Navegación Bilingüe:** [English Version](./README.md)
|
|
4
|
-
|
|
5
|
-
Punto de entrada ejecutable WS1 para el ruleset Definition of Done de Evolith.
|
|
6
|
-
|
|
7
|
-
## Propósito
|
|
8
|
-
|
|
9
|
-
Este directorio expone `rulesets/definition-of-done` como la ruta ejecutable canónica que verifica la auditoría de fortaleza como data inteligente. El ruleset codifica el checklist obligatorio para cierre de historias consumido por el validador nativo de rulesets y los flujos de evidencia CI.
|
|
10
|
-
|
|
11
|
-
## Artefactos
|
|
12
|
-
|
|
13
|
-
| Artefacto | Propósito |
|
|
14
|
-
|---|---|
|
|
15
|
-
| [definition-of-done.rules.json](./definition-of-done.rules.json) | Ruleset nativo machine-readable para validación de Definition of Done |
|
|
16
|
-
| [../opa/dod.rego](../opa/dod.rego) | Artefacto de paridad OPA para validación de Definition of Done |
|
|
17
|
-
| [../opa/dod.test.rego](../opa/dod.test.rego) | Cobertura de pruebas OPA para la política Definition of Done |
|
|
18
|
-
|
|
19
|
-
## Validación
|
|
20
|
-
|
|
21
|
-
Ejecuta estos checks después de cambiar el ruleset:
|
|
22
|
-
|
|
23
|
-
```bash
|
|
24
|
-
npx jest --config packages/core-domain/jest.config.js --rootDir packages/core-domain --testPathPatterns='ruleset-validation.mode' --no-coverage
|
|
25
|
-
.harness/bin/opa test rulesets/opa/dod.rego rulesets/opa/dod.test.rego -v
|
|
26
|
-
```
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
# Definition of Done Ruleset
|
|
2
|
-
|
|
3
|
-
> **Bilingual Navigation:** [Versión en Español](./README.es.md)
|
|
4
|
-
|
|
5
|
-
Executable WS1 entrypoint for the Evolith Definition of Done ruleset.
|
|
6
|
-
|
|
7
|
-
## Purpose
|
|
8
|
-
|
|
9
|
-
This directory exposes `rulesets/definition-of-done` as the canonical executable path checked by the intelligent data strength audit. The ruleset encodes the mandatory story-closure checklist consumed by the native ruleset validator and CI evidence flows.
|
|
10
|
-
|
|
11
|
-
## Artifacts
|
|
12
|
-
|
|
13
|
-
| Artifact | Purpose |
|
|
14
|
-
|---|---|
|
|
15
|
-
| [definition-of-done.rules.json](./definition-of-done.rules.json) | Native machine-readable ruleset for Definition of Done validation |
|
|
16
|
-
| [../opa/dod.rego](../opa/dod.rego) | OPA policy parity artifact for Definition of Done validation |
|
|
17
|
-
| [../opa/dod.test.rego](../opa/dod.test.rego) | OPA test coverage for the Definition of Done policy |
|
|
18
|
-
|
|
19
|
-
## Validation
|
|
20
|
-
|
|
21
|
-
Run these checks after changing the ruleset:
|
|
22
|
-
|
|
23
|
-
```bash
|
|
24
|
-
npx jest --config packages/core-domain/jest.config.js --rootDir packages/core-domain --testPathPatterns='ruleset-validation.mode' --no-coverage
|
|
25
|
-
.harness/bin/opa test rulesets/opa/dod.rego rulesets/opa/dod.test.rego -v
|
|
26
|
-
```
|