@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.
Files changed (502) hide show
  1. package/README.md +102 -0
  2. package/dist/domain/services/default-workflow-definition.js +4 -1
  3. package/dist/domain/services/default-workflow-definition.js.map +1 -1
  4. package/dist/gates/decision/gate-decision.js.map +1 -1
  5. package/package.json +1 -2
  6. package/rulesets/README.es.md +0 -170
  7. package/rulesets/README.md +0 -170
  8. package/rulesets/acl/README.es.md +0 -41
  9. package/rulesets/acl/README.md +0 -41
  10. package/rulesets/acl/anti-corruption-layer.rules.es.json +0 -99
  11. package/rulesets/acl/anti-corruption-layer.rules.json +0 -99
  12. package/rulesets/adr/ADR_COVERAGE.es.md +0 -133
  13. package/rulesets/adr/ADR_COVERAGE.md +0 -133
  14. package/rulesets/adr/README.es.md +0 -17
  15. package/rulesets/adr/README.md +0 -17
  16. package/rulesets/adr/adr-0002-hexagonal-architecture.rules.json +0 -103
  17. package/rulesets/adr/adr-0005-cicd-quality-gates.rules.json +0 -102
  18. package/rulesets/adr/adr-0010-multi-tenancy.rules.json +0 -129
  19. package/rulesets/adr/adr-0018-testing-pyramid.rules.json +0 -115
  20. package/rulesets/adr/adr-0032-protocol-selection.rules.json +0 -134
  21. package/rulesets/adr/adr-0040-multi-runtime.rules.json +0 -131
  22. package/rulesets/adr/adr-0050-gitflow-branching.rules.json +0 -176
  23. package/rulesets/adr/generated/adr-0001-monorepo-orchestration-principle.rules.json +0 -29
  24. package/rulesets/adr/generated/adr-0006-microservices-transition-via-sidecar-pattern.rules.json +0 -29
  25. package/rulesets/adr/generated/adr-0009-strict-dependency-pinning-and-automated-vulnerability-manage.rules.json +0 -29
  26. package/rulesets/adr/generated/adr-0011-fault-tolerance-and-resiliency-patterns.rules.json +0 -29
  27. package/rulesets/adr/generated/adr-0013-cloud-infrastructure-topology-and-disaster-recovery-dr.rules.json +0 -28
  28. package/rulesets/adr/generated/adr-0014-multi-layer-distributed-caching-strategy.rules.json +0 -29
  29. package/rulesets/adr/generated/adr-0015-event-driven-architecture-eda-for-intra-domain-communication.rules.json +0 -29
  30. package/rulesets/adr/generated/adr-0016-immutable-business-audit-trail-and-change-tracking.rules.json +0 -29
  31. package/rulesets/adr/generated/adr-0017-feature-flagging-strategy-for-progressive-delivery.rules.json +0 -28
  32. package/rulesets/adr/generated/adr-0019-tactical-design-patterns-for-future-proofing.rules.json +0 -29
  33. package/rulesets/adr/generated/adr-0020-identity-provider-abstraction-strategy.rules.json +0 -28
  34. package/rulesets/adr/generated/adr-0024-centralized-configuration-feature-platform.rules.json +0 -28
  35. package/rulesets/adr/generated/adr-0025-feature-flag-provider-abstraction-strategy.rules.json +0 -29
  36. package/rulesets/adr/generated/adr-0028-self-hosted-open-source-hybrid-infrastructure.rules.json +0 -29
  37. package/rulesets/adr/generated/adr-0030-two-tier-distributed-gateway-model.rules.json +0 -28
  38. package/rulesets/adr/generated/adr-0031-schema-per-bounded-context-and-domain-event-catalog.rules.json +0 -29
  39. package/rulesets/adr/generated/adr-0033-transactional-outbox-pattern-for-async-messaging.rules.json +0 -28
  40. package/rulesets/adr/generated/adr-0034-cqrs-pattern-application-matrix.rules.json +0 -29
  41. package/rulesets/adr/generated/adr-0035-distributed-saga-pattern-implementation-strategy.rules.json +0 -29
  42. package/rulesets/adr/generated/adr-0036-message-bus-delivery-flow-control-strategy.rules.json +0 -29
  43. package/rulesets/adr/generated/adr-0037-enterprise-performance-concurrency-chaos-verification-strate.rules.json +0 -28
  44. package/rulesets/adr/generated/adr-0039-deployment-topology-abstraction-environment-switcher.rules.json +0 -29
  45. package/rulesets/adr/generated/adr-0041-dual-engine-policy-evaluation-native-opa.rules.json +0 -28
  46. package/rulesets/adr/generated/adr-0044-configurable-security-persistence-strategy-agnosticism-vs-na.rules.json +0 -29
  47. package/rulesets/adr/generated/adr-0045-microservice-extraction-readiness-criteria.rules.json +0 -29
  48. package/rulesets/adr/generated/adr-0046-unified-traceability-via-w3c-tracecontext.rules.json +0 -29
  49. package/rulesets/adr/generated/adr-0047-progressive-architecture-evolution-framework-modular-monolit.rules.json +0 -29
  50. package/rulesets/adr/generated/adr-0048-enterprise-taxonomy-standardization-and-reference-layout.rules.json +0 -28
  51. package/rulesets/adr/generated/adr-0049-naming-semantics-clean-code-policy-e2e-and-global.rules.json +0 -29
  52. package/rulesets/adr/generated/adr-0051-enterprise-database-engine-selection-strategy.rules.json +0 -29
  53. package/rulesets/adr/generated/adr-0052-unit-testing-isolation-strategy-mocks-vs-stubs.rules.json +0 -29
  54. package/rulesets/adr/generated/adr-0053-integration-and-e2e-testing-strategy.rules.json +0 -29
  55. package/rulesets/adr/generated/adr-0054-database-design-and-normalization-standards.rules.json +0 -29
  56. package/rulesets/adr/generated/adr-0055-microfrontends-architecture-strategy.rules.json +0 -28
  57. package/rulesets/adr/generated/adr-0056-enterprise-naming-design-conventions-multi-language-multi-pl.rules.json +0 -29
  58. package/rulesets/adr/generated/adr-0057-architecture-intelligence-catalog.rules.json +0 -27
  59. package/rulesets/adr/generated/adr-0058-ai-consumable-architecture-knowledge.rules.json +0 -27
  60. package/rulesets/adr/generated/adr-0067-modular-monolith-persistence-boundaries.rules.json +0 -28
  61. package/rulesets/adr/generated/adr-0068-documentation-release-gitflow.rules.json +0 -29
  62. package/rulesets/adr/generated/adr-0069-ai-agent-context-protocol-integration.rules.json +0 -28
  63. package/rulesets/adr/generated/adr-0070-lean-root-repository-taxonomy.rules.json +0 -29
  64. package/rulesets/adr/generated/adr-0071-domain-layer-base-class-and-inheritance-strategy.rules.json +0 -29
  65. package/rulesets/adr/generated/adr-0072-utc-date-storage-browser-timezone-detection-and-language-res.rules.json +0 -29
  66. package/rulesets/adr/generated/adr-0073-unified-cli-mcp-output-contract-and-gate-evidence-schema.rules.json +0 -29
  67. package/rulesets/adr/generated/adr-0074-evolith-core-api-native-exposure-layer.rules.json +0 -29
  68. package/rulesets/adr/generated/adr-0075-core-api-authentication-strategy.rules.json +0 -28
  69. package/rulesets/adr/generated/adr-0076-domain-oriented-microservice-architecture-doma.rules.json +0 -28
  70. package/rulesets/adr/generated/adr-0077-masstransit-v9-commercial-pivot-stay-on-v8-monitor-opentrans.rules.json +0 -28
  71. package/rulesets/adr/generated/adr-0078-domain-financial-separation-governance.rules.json +0 -29
  72. package/rulesets/adr/generated/adr-0079-multi-topology-reference-corpus-and-topology-manifest-contra.rules.json +0 -29
  73. package/rulesets/adr/generated/adr-0080-remote-repository-reference-contract.rules.json +0 -29
  74. package/rulesets/adr/generated/adr-0081-agentic-ai-sandbox-isolation-boundary.rules.json +0 -29
  75. package/rulesets/adr/generated/adr-0082-agentic-ai-prompt-context-and-tool-trust-boundary.rules.json +0 -28
  76. package/rulesets/adr/generated/adr-0083-agentic-ai-action-authorization-and-audit.rules.json +0 -29
  77. package/rulesets/adr/generated/adr-0084-data-mesh-and-data-as-a-product.rules.json +0 -29
  78. package/rulesets/adr/generated/adr-0085-agnostic-opa-wasm-distribution-architecture.rules.json +0 -28
  79. package/rulesets/adr/generated/adr-0086-agentic-ai-telemetry-cost-control-standard.rules.json +0 -27
  80. package/rulesets/adr/generated/adr-0087-attribute-based-access-control-abac-for-agentic-tool-executi.rules.json +0 -29
  81. package/rulesets/adr/generated/adr-0088-sovereign-identity-for-agentic-ai.rules.json +0 -29
  82. package/rulesets/adr/generated/adr-0089-event-driven-agentic-workflow-pattern.rules.json +0 -28
  83. package/rulesets/adr/generated/adr-0090-rag-knowledge-governance-standard.rules.json +0 -29
  84. package/rulesets/adr/generated/adr-0091-workload-identity-token-rotation-standard.rules.json +0 -29
  85. package/rulesets/adr/generated/adr-0092-agent-infinite-loop-prevention-and-circuit-breaker-rules.rules.json +0 -29
  86. package/rulesets/adr/generated/adr-0093-concurrency-control-and-resource-locking-standard-for-mcp-to.rules.json +0 -29
  87. package/rulesets/adr/generated/adr-0094-multi-agent-handoff-and-task-delegation-standards.rules.json +0 -29
  88. package/rulesets/adr/generated/adr-0095-serverless-architecture-governance.rules.json +0 -29
  89. package/rulesets/adr/generated/adr-0096-edge-computing-architecture-governance.rules.json +0 -29
  90. package/rulesets/adr/generated/adr-0097-knowledge-lifecycle-governance-standard.rules.json +0 -29
  91. package/rulesets/adr/generated/adr-0098-rest-uri-versioning-and-deprecation-policy.rules.json +0 -29
  92. package/rulesets/adr/generated/adr-0099-opa-bundle-distribution-via-s3-minio.rules.json +0 -27
  93. package/rulesets/adr/generated/adr-ai-augmented-0001-harness-engineering-for-ai-augmented-development.rules.json +0 -29
  94. package/rulesets/adr/generated/adr-ai-augmented-0002-mcp-integration-protocol-for-agent-tool-invocation.rules.json +0 -29
  95. package/rulesets/adr/generated/adr-ai-augmented-0003-model-selection-governance-for-ai-augmented-workflows.rules.json +0 -29
  96. package/rulesets/adr/generated/adr-ai-augmented-0004-agents-md-as-mandatory-repository-artifact.rules.json +0 -29
  97. package/rulesets/adr/generated/adr-ai-augmented-0005-human-in-the-loop-policy-for-autonomous-agent-operations.rules.json +0 -29
  98. package/rulesets/adr/generated/adr-android-0042-canonical-android-native-mobile-architecture.rules.json +0 -29
  99. package/rulesets/adr/generated/adr-dotnet-0041-canonical-net-c-backend-architecture.rules.json +0 -29
  100. package/rulesets/adr/generated/adr-dotnet-0060-net-multi-tenancy-dual-layer-strategy-ef-core-sql-server.rules.json +0 -29
  101. package/rulesets/adr/generated/adr-dotnet-0061-transactional-event-lifecycle-in-ef-core.rules.json +0 -28
  102. package/rulesets/adr/generated/adr-dotnet-0062-net-immutable-audit-trail-via-ddl-triggers-delta-capture.rules.json +0 -29
  103. package/rulesets/adr/generated/adr-dotnet-0063-b2b-request-idempotency-middleware-in-asp-net-core.rules.json +0 -28
  104. package/rulesets/adr/generated/adr-dotnet-0064-net-request-scope-observability-context-propagation.rules.json +0 -29
  105. package/rulesets/adr/generated/adr-dotnet-0065-net-pii-safe-structured-logging-pipeline-serilog.rules.json +0 -29
  106. package/rulesets/adr/generated/adr-dotnet-0066-net-lightweight-http-idempotency-via-imemorycache-idistribut.rules.json +0 -28
  107. package/rulesets/adr/generated/adr-dotnet-0069-net-grpc-service-setup-protobuf-contracts.rules.json +0 -29
  108. package/rulesets/adr/generated/adr-dotnet-0070-net-api-endpoint-strategy.rules.json +0 -29
  109. package/rulesets/adr/generated/adr-dotnet-0071-net-data-access-strategy-ef-core-as-default-orm-dapper-for-o.rules.json +0 -27
  110. package/rulesets/adr/generated/adr-dotnet-0072-net-aop-cross-cutting-concern-strategy-dispatchproxy-over-pi.rules.json +0 -29
  111. package/rulesets/adr/generated/adr-nodejs-0003-strict-typescript-standards.rules.json +0 -29
  112. package/rulesets/adr/generated/adr-nodejs-0004-frontend-offline-resilience.rules.json +0 -28
  113. package/rulesets/adr/generated/adr-nodejs-0007-observability-with-opentelemetry-loki-and-jaeger.rules.json +0 -29
  114. package/rulesets/adr/generated/adr-nodejs-0008-progressive-multi-module-evolution-with-api-gateway-and-bff-.rules.json +0 -28
  115. package/rulesets/adr/generated/adr-nodejs-0012-advanced-authorization-rbac-abac-strategy.rules.json +0 -28
  116. package/rulesets/adr/generated/adr-nodejs-0021-high-performance-authentication-graph-compilation.rules.json +0 -28
  117. package/rulesets/adr/generated/adr-nodejs-0022-contextual-authentication-and-pluggable-output-projections.rules.json +0 -28
  118. package/rulesets/adr/generated/adr-nodejs-0023-centralized-authorization-core-strategy.rules.json +0 -28
  119. package/rulesets/adr/generated/adr-nodejs-0026-adaptive-mfa-and-passwordless-platform.rules.json +0 -28
  120. package/rulesets/adr/generated/adr-nodejs-0027-dual-protocol-api-strategy-rest-grpc.rules.json +0 -28
  121. package/rulesets/adr/generated/adr-nodejs-0029-adoption-of-tactical-ddd-primitives-library.rules.json +0 -29
  122. package/rulesets/adr/generated/adr-nodejs-0038-enterprise-error-handling-result-pattern-strategy.rules.json +0 -29
  123. package/rulesets/adr/generated/adr-nodejs-0043-data-access-and-orm-strategy-for-node-js.rules.json +0 -29
  124. package/rulesets/adr/generated/adr-nodejs-0044-frontend-clean-architecture-layer-boundaries-react.rules.json +0 -29
  125. package/rulesets/adr/generated/adr-nodejs-0045-frontend-state-management-zustand-tanstack-query-dual-strate.rules.json +0 -29
  126. package/rulesets/adr/generated/adr-nodejs-0046-prohibition-of-raw-technical-identifiers-in-user-interfaces.rules.json +0 -29
  127. package/rulesets/adr/generated/adr-nodejs-0047-actionable-user-error-contract-and-correlated-diagnostics.rules.json +0 -29
  128. package/rulesets/adr/generated/adr-nodejs-0048-feature-flag-system-scope-and-structured-criteria-model.rules.json +0 -29
  129. package/rulesets/adr/generated/adr-nodejs-0074-monorepo-orchestration-with-nx.rules.json +0 -29
  130. package/rulesets/adr/generated/adr-nodejs-0075-application-gateway-bff-with-nestjs.rules.json +0 -29
  131. package/rulesets/architecture/README.es.md +0 -21
  132. package/rulesets/architecture/README.md +0 -21
  133. package/rulesets/architecture/opa/progressive-axis.rego +0 -50
  134. package/rulesets/cli/README.es.md +0 -17
  135. package/rulesets/cli/README.md +0 -17
  136. package/rulesets/cli/core-parity.rules.json +0 -61
  137. package/rulesets/cli/release-readiness.rules.json +0 -77
  138. package/rulesets/compliance-baseline/README.es.md +0 -26
  139. package/rulesets/compliance-baseline/README.md +0 -26
  140. package/rulesets/compliance-baseline/compliance-baseline.rules.json +0 -81
  141. package/rulesets/contracts/README.es.md +0 -19
  142. package/rulesets/contracts/README.md +0 -19
  143. package/rulesets/contracts/evolith-machine-contracts.json +0 -29
  144. package/rulesets/contracts/fixtures/gate-evidence.success.json +0 -10
  145. package/rulesets/contracts/fixtures/output-envelope.success.json +0 -23
  146. package/rulesets/cross-cutting/README.es.md +0 -14
  147. package/rulesets/cross-cutting/README.md +0 -14
  148. package/rulesets/cross-cutting/compliance-baseline.rules.json +0 -81
  149. package/rulesets/cross-cutting/definition-of-done.rules.json +0 -135
  150. package/rulesets/cross-cutting/engineering-manifesto.rules.json +0 -145
  151. package/rulesets/cross-cutting/repository-taxonomy.rules.json +0 -172
  152. package/rulesets/definition-of-done/README.es.md +0 -26
  153. package/rulesets/definition-of-done/README.md +0 -26
  154. package/rulesets/definition-of-done/definition-of-done.rules.json +0 -135
  155. package/rulesets/engineering-manifesto/README.es.md +0 -26
  156. package/rulesets/engineering-manifesto/README.md +0 -26
  157. package/rulesets/engineering-manifesto/engineering-manifesto.rules.json +0 -145
  158. package/rulesets/evidence/README.es.md +0 -12
  159. package/rulesets/evidence/README.md +0 -12
  160. package/rulesets/evidence/evidence-manifest.rules.json +0 -48
  161. package/rulesets/executive-scorecards/executive-scorecards.rules.es.json +0 -213
  162. package/rulesets/executive-scorecards/executive-scorecards.rules.json +0 -213
  163. package/rulesets/governance/README.es.md +0 -13
  164. package/rulesets/governance/README.md +0 -13
  165. package/rulesets/governance/abac-mcp-access.rules.es.json +0 -41
  166. package/rulesets/governance/abac-mcp-access.rules.json +0 -41
  167. package/rulesets/governance/executive-scorecards.rules.es.json +0 -213
  168. package/rulesets/governance/executive-scorecards.rules.json +0 -213
  169. package/rulesets/governance/inheritance.rules.json +0 -115
  170. package/rulesets/governance/knowledge-intake.rules.json +0 -18
  171. package/rulesets/governance/open-core-boundary.rules.es.json +0 -148
  172. package/rulesets/governance/open-core-boundary.rules.json +0 -148
  173. package/rulesets/governance/satellite-contracts.rules.json +0 -183
  174. package/rulesets/infrastructure/helm-enforcement.rules.json +0 -21
  175. package/rulesets/infrastructure/opa/helm-enforcement.rego +0 -25
  176. package/rulesets/infrastructure/opa/helm-enforcement.test.rego +0 -31
  177. package/rulesets/infrastructure/opa/opa-sidecar-bundle.rego +0 -115
  178. package/rulesets/infrastructure/opa/opa-sidecar-bundle.test.rego +0 -66
  179. package/rulesets/infrastructure/opa-sidecar-bundle.rules.json +0 -18
  180. package/rulesets/mcp/README.es.md +0 -12
  181. package/rulesets/mcp/README.md +0 -12
  182. package/rulesets/mcp/protocol-compliance.rules.json +0 -57
  183. package/rulesets/observability/README.es.md +0 -12
  184. package/rulesets/observability/README.md +0 -12
  185. package/rulesets/observability/telemetry-evidence.rules.json +0 -48
  186. package/rulesets/opa/README.es.md +0 -22
  187. package/rulesets/opa/README.md +0 -22
  188. package/rulesets/opa/abac-mcp-tool-access.rego +0 -122
  189. package/rulesets/opa/abac-mcp-tool-access.test.rego +0 -33
  190. package/rulesets/opa/anti-corruption-layer.rego +0 -39
  191. package/rulesets/opa/anti-corruption-layer.test.rego +0 -118
  192. package/rulesets/opa/ci-cd.rego +0 -41
  193. package/rulesets/opa/ci-cd.test.rego +0 -23
  194. package/rulesets/opa/cicd-quality-gates.rego +0 -29
  195. package/rulesets/opa/cicd-quality-gates.test.rego +0 -54
  196. package/rulesets/opa/cli-core-parity.rego +0 -17
  197. package/rulesets/opa/cli-core-parity.test.rego +0 -39
  198. package/rulesets/opa/cli-readiness.rego +0 -32
  199. package/rulesets/opa/cli-readiness.test.rego +0 -23
  200. package/rulesets/opa/cli-release-readiness.rego +0 -21
  201. package/rulesets/opa/cli-release-readiness.test.rego +0 -46
  202. package/rulesets/opa/compliance-baseline.rego +0 -95
  203. package/rulesets/opa/compliance-baseline.test.rego +0 -89
  204. package/rulesets/opa/dod.rego +0 -42
  205. package/rulesets/opa/dod.test.rego +0 -250
  206. package/rulesets/opa/engineering-manifesto.rego +0 -78
  207. package/rulesets/opa/engineering-manifesto.test.rego +0 -133
  208. package/rulesets/opa/evidence.rego +0 -64
  209. package/rulesets/opa/evidence.test.rego +0 -23
  210. package/rulesets/opa/executive-scorecards.rego +0 -41
  211. package/rulesets/opa/executive-scorecards.test.rego +0 -60
  212. package/rulesets/opa/gitflow-branching.rego +0 -41
  213. package/rulesets/opa/gitflow-branching.test.rego +0 -60
  214. package/rulesets/opa/governance.rego +0 -39
  215. package/rulesets/opa/governance.test.rego +0 -23
  216. package/rulesets/opa/hexagonal-architecture.rego +0 -33
  217. package/rulesets/opa/hexagonal-architecture.test.rego +0 -57
  218. package/rulesets/opa/infrastructure/helm-enforcement.rego +0 -33
  219. package/rulesets/opa/infrastructure/opa-sidecar-bundle.rego +0 -42
  220. package/rulesets/opa/knowledge-intake.rego +0 -98
  221. package/rulesets/opa/knowledge-intake.test.rego +0 -50
  222. package/rulesets/opa/main.rego +0 -147
  223. package/rulesets/opa/main_test.rego +0 -149
  224. package/rulesets/opa/mcp.rego +0 -61
  225. package/rulesets/opa/mcp.test.rego +0 -27
  226. package/rulesets/opa/multi-runtime.rego +0 -33
  227. package/rulesets/opa/multi-runtime.test.rego +0 -53
  228. package/rulesets/opa/multi-tenancy.rego +0 -33
  229. package/rulesets/opa/multi-tenancy.test.rego +0 -53
  230. package/rulesets/opa/open-core-boundary.rego +0 -33
  231. package/rulesets/opa/open-core-boundary.test.rego +0 -60
  232. package/rulesets/opa/protocol-selection.rego +0 -29
  233. package/rulesets/opa/protocol-selection.test.rego +0 -46
  234. package/rulesets/opa/rbac/gate-role-enforcement.rego +0 -112
  235. package/rulesets/opa/repository-taxonomy.rego +0 -98
  236. package/rulesets/opa/repository-taxonomy.test.rego +0 -91
  237. package/rulesets/opa/satellite-contracts.rego +0 -42
  238. package/rulesets/opa/satellite-contracts.test.rego +0 -70
  239. package/rulesets/opa/schemas/abac-mcp-tool-access.input.schema.json +0 -21
  240. package/rulesets/opa/schemas/anti-corruption-layer.input.schema.json +0 -25
  241. package/rulesets/opa/schemas/ci-cd.input.schema.json +0 -27
  242. package/rulesets/opa/schemas/cicd-quality-gates.input.schema.json +0 -33
  243. package/rulesets/opa/schemas/cli-core-parity.input.schema.json +0 -30
  244. package/rulesets/opa/schemas/cli-readiness.input.schema.json +0 -28
  245. package/rulesets/opa/schemas/cli-release-readiness.input.schema.json +0 -26
  246. package/rulesets/opa/schemas/compliance-baseline.input.schema.json +0 -25
  247. package/rulesets/opa/schemas/dod.input.schema.json +0 -38
  248. package/rulesets/opa/schemas/engineering-manifesto.input.schema.json +0 -24
  249. package/rulesets/opa/schemas/evidence.input.schema.json +0 -35
  250. package/rulesets/opa/schemas/executive-scorecards.input.schema.json +0 -36
  251. package/rulesets/opa/schemas/gitflow-branching.input.schema.json +0 -36
  252. package/rulesets/opa/schemas/governance.input.schema.json +0 -19
  253. package/rulesets/opa/schemas/hexagonal-architecture.input.schema.json +0 -46
  254. package/rulesets/opa/schemas/knowledge-intake.input.schema.json +0 -57
  255. package/rulesets/opa/schemas/mcp.input.schema.json +0 -38
  256. package/rulesets/opa/schemas/multi-runtime.input.schema.json +0 -27
  257. package/rulesets/opa/schemas/multi-tenancy.input.schema.json +0 -27
  258. package/rulesets/opa/schemas/open-core-boundary.input.schema.json +0 -36
  259. package/rulesets/opa/schemas/protocol-selection.input.schema.json +0 -26
  260. package/rulesets/opa/schemas/repository-taxonomy.input.schema.json +0 -18
  261. package/rulesets/opa/schemas/satellite-contracts.input.schema.json +0 -38
  262. package/rulesets/opa/schemas/taxonomy.input.schema.json +0 -27
  263. package/rulesets/opa/schemas/testing-pyramid.input.schema.json +0 -42
  264. package/rulesets/opa/schemas/version-pinning.input.schema.json +0 -39
  265. package/rulesets/opa/sdlc/coverage.rego +0 -49
  266. package/rulesets/opa/sdlc/coverage.test.rego +0 -29
  267. package/rulesets/opa/sdlc/pyramid-distribution.rego +0 -31
  268. package/rulesets/opa/sdlc/pyramid-distribution.test.rego +0 -33
  269. package/rulesets/opa/taxonomy.rego +0 -51
  270. package/rulesets/opa/taxonomy.test.rego +0 -28
  271. package/rulesets/opa/telemetry-evidence.rego +0 -102
  272. package/rulesets/opa/testing-pyramid.rego +0 -49
  273. package/rulesets/opa/testing-pyramid.test.rego +0 -81
  274. package/rulesets/opa/version-pinning.rego +0 -99
  275. package/rulesets/opa/version-pinning.test.rego +0 -28
  276. package/rulesets/phase-gates/README.es.md +0 -28
  277. package/rulesets/phase-gates/README.md +0 -28
  278. package/rulesets/phase-gates/phase-gates.rules.json +0 -297
  279. package/rulesets/quality-thresholds/README.es.md +0 -28
  280. package/rulesets/quality-thresholds/README.md +0 -28
  281. package/rulesets/quality-thresholds/quality-thresholds.rules.json +0 -96
  282. package/rulesets/repository-taxonomy/README.es.md +0 -26
  283. package/rulesets/repository-taxonomy/README.md +0 -26
  284. package/rulesets/repository-taxonomy/repository-taxonomy.rules.json +0 -172
  285. package/rulesets/satellite-contracts/README.es.md +0 -27
  286. package/rulesets/satellite-contracts/README.md +0 -27
  287. package/rulesets/satellite-contracts/satellite-contracts.rules.json +0 -183
  288. package/rulesets/schema/README.es.md +0 -39
  289. package/rulesets/schema/README.md +0 -39
  290. package/rulesets/schema/adr.schema.json +0 -138
  291. package/rulesets/schema/agile-backlog.schema.json +0 -91
  292. package/rulesets/schema/ballpark-estimation.schema.json +0 -109
  293. package/rulesets/schema/build-vs-compose.schema.json +0 -98
  294. package/rulesets/schema/cli-impact-analysis.schema.json +0 -114
  295. package/rulesets/schema/discovery-canvas.schema.json +0 -92
  296. package/rulesets/schema/evolith-user-story.schema.json +0 -105
  297. package/rulesets/schema/evolith-yaml.schema.json +0 -191
  298. package/rulesets/schema/functional-story.schema.json +0 -111
  299. package/rulesets/schema/gate-evidence.schema.json +0 -85
  300. package/rulesets/schema/integration-evidence.schema.json +0 -47
  301. package/rulesets/schema/knowledge-intake.schema.json +0 -67
  302. package/rulesets/schema/knowledge-projection.schema.json +0 -24
  303. package/rulesets/schema/maturity-evidence.schema.json +0 -59
  304. package/rulesets/schema/observability-validation.schema.json +0 -85
  305. package/rulesets/schema/on-call-handoff.schema.json +0 -91
  306. package/rulesets/schema/output-envelope.schema.json +0 -102
  307. package/rulesets/schema/prd.schema.json +0 -117
  308. package/rulesets/schema/release-notes.schema.json +0 -138
  309. package/rulesets/schema/rollback-rehearsal.schema.json +0 -73
  310. package/rulesets/schema/ruleset-sdlc.schema.json +0 -59
  311. package/rulesets/schema/ruleset-standard.schema.json +0 -73
  312. package/rulesets/schema/security-scan-report.schema.json +0 -79
  313. package/rulesets/schema/source-registry.schema.json +0 -51
  314. package/rulesets/schema/technical-feasibility.schema.json +0 -66
  315. package/rulesets/schema/technical-story.schema.json +0 -112
  316. package/rulesets/schema/test-summary-report.schema.json +0 -158
  317. package/rulesets/schema/topology-composition.schema.json +0 -43
  318. package/rulesets/schema/topology-manifest.schema.json +0 -421
  319. package/rulesets/sdlc/README.es.md +0 -12
  320. package/rulesets/sdlc/README.md +0 -12
  321. package/rulesets/sdlc/default-workflow.yaml +0 -73
  322. package/rulesets/sdlc/dependency-pinning.rules.json +0 -183
  323. package/rulesets/sdlc/phase-gates.rules.json +0 -297
  324. package/rulesets/sdlc/quality-thresholds.rules.json +0 -96
  325. package/rulesets/topologies/README.es.md +0 -42
  326. package/rulesets/topologies/README.md +0 -42
  327. package/rulesets/topologies/agentic-ai/README.es.md +0 -142
  328. package/rulesets/topologies/agentic-ai/README.md +0 -142
  329. package/rulesets/topologies/agentic-ai/adoption.es.md +0 -37
  330. package/rulesets/topologies/agentic-ai/adoption.md +0 -37
  331. package/rulesets/topologies/agentic-ai/agent.config.schema.json +0 -100
  332. package/rulesets/topologies/agentic-ai/agentic-ai.rego +0 -46
  333. package/rulesets/topologies/agentic-ai/agentic-ai.rules.json +0 -109
  334. package/rulesets/topologies/agentic-ai/agentic-ai.test.rego +0 -68
  335. package/rulesets/topologies/agentic-ai/agentic-ai.wasm +0 -0
  336. package/rulesets/topologies/agentic-ai/cli/cli-flows.es.md +0 -35
  337. package/rulesets/topologies/agentic-ai/cli/cli-flows.md +0 -45
  338. package/rulesets/topologies/agentic-ai/evidence.es.md +0 -25
  339. package/rulesets/topologies/agentic-ai/evidence.md +0 -25
  340. package/rulesets/topologies/agentic-ai/evolution.es.md +0 -26
  341. package/rulesets/topologies/agentic-ai/evolution.md +0 -26
  342. package/rulesets/topologies/agentic-ai/fixtures/invalid-agent.config.json +0 -48
  343. package/rulesets/topologies/agentic-ai/fixtures/valid-agent.config.json +0 -48
  344. package/rulesets/topologies/agentic-ai/maturity.es.md +0 -33
  345. package/rulesets/topologies/agentic-ai/maturity.md +0 -33
  346. package/rulesets/topologies/agentic-ai/mcp/mcp-manifest.json +0 -100
  347. package/rulesets/topologies/agentic-ai/openapi/openapi.yaml +0 -187
  348. package/rulesets/topologies/agentic-ai/operations.es.md +0 -32
  349. package/rulesets/topologies/agentic-ai/operations.md +0 -32
  350. package/rulesets/topologies/agentic-ai/parity-fixtures/compliant.json +0 -18
  351. package/rulesets/topologies/agentic-ai/parity-fixtures/violation.json +0 -22
  352. package/rulesets/topologies/agentic-ai/patterns.es.md +0 -32
  353. package/rulesets/topologies/agentic-ai/patterns.md +0 -32
  354. package/rulesets/topologies/agentic-ai/resilience.es.md +0 -26
  355. package/rulesets/topologies/agentic-ai/resilience.md +0 -26
  356. package/rulesets/topologies/agentic-ai/runbooks.es.md +0 -48
  357. package/rulesets/topologies/agentic-ai/runbooks.md +0 -48
  358. package/rulesets/topologies/agentic-ai/security.es.md +0 -26
  359. package/rulesets/topologies/agentic-ai/security.md +0 -26
  360. package/rulesets/topologies/agentic-ai/topology.manifest.json +0 -127
  361. package/rulesets/topologies/data-mesh/README.es.md +0 -69
  362. package/rulesets/topologies/data-mesh/README.md +0 -69
  363. package/rulesets/topologies/data-mesh/adoption.es.md +0 -95
  364. package/rulesets/topologies/data-mesh/adoption.md +0 -95
  365. package/rulesets/topologies/data-mesh/cli/cli-flows.es.md +0 -41
  366. package/rulesets/topologies/data-mesh/cli/cli-flows.md +0 -53
  367. package/rulesets/topologies/data-mesh/data-mesh.rego +0 -11
  368. package/rulesets/topologies/data-mesh/data-mesh.rules.json +0 -100
  369. package/rulesets/topologies/data-mesh/data-mesh.test.rego +0 -107
  370. package/rulesets/topologies/data-mesh/data-mesh.wasm +0 -0
  371. package/rulesets/topologies/data-mesh/evidence.es.md +0 -111
  372. package/rulesets/topologies/data-mesh/evidence.md +0 -111
  373. package/rulesets/topologies/data-mesh/evolution.es.md +0 -67
  374. package/rulesets/topologies/data-mesh/evolution.md +0 -67
  375. package/rulesets/topologies/data-mesh/fixtures/invalid.topology.config.json +0 -12
  376. package/rulesets/topologies/data-mesh/fixtures/valid.topology.config.json +0 -12
  377. package/rulesets/topologies/data-mesh/maturity.es.md +0 -36
  378. package/rulesets/topologies/data-mesh/maturity.md +0 -36
  379. package/rulesets/topologies/data-mesh/mcp/mcp-manifest.json +0 -68
  380. package/rulesets/topologies/data-mesh/openapi/openapi.yaml +0 -186
  381. package/rulesets/topologies/data-mesh/operations.es.md +0 -63
  382. package/rulesets/topologies/data-mesh/operations.md +0 -63
  383. package/rulesets/topologies/data-mesh/parity-fixtures/compliant.json +0 -18
  384. package/rulesets/topologies/data-mesh/parity-fixtures/violation.json +0 -21
  385. package/rulesets/topologies/data-mesh/patterns.es.md +0 -67
  386. package/rulesets/topologies/data-mesh/patterns.md +0 -67
  387. package/rulesets/topologies/data-mesh/resilience.es.md +0 -64
  388. package/rulesets/topologies/data-mesh/resilience.md +0 -64
  389. package/rulesets/topologies/data-mesh/runbooks.es.md +0 -147
  390. package/rulesets/topologies/data-mesh/runbooks.md +0 -147
  391. package/rulesets/topologies/data-mesh/security.es.md +0 -66
  392. package/rulesets/topologies/data-mesh/security.md +0 -66
  393. package/rulesets/topologies/data-mesh/topology.config.schema.json +0 -30
  394. package/rulesets/topologies/data-mesh/topology.manifest.json +0 -107
  395. package/rulesets/topologies/edge-computing/README.es.md +0 -81
  396. package/rulesets/topologies/edge-computing/README.md +0 -81
  397. package/rulesets/topologies/edge-computing/adoption.es.md +0 -268
  398. package/rulesets/topologies/edge-computing/adoption.md +0 -268
  399. package/rulesets/topologies/edge-computing/cli/cli-flows.es.md +0 -41
  400. package/rulesets/topologies/edge-computing/cli/cli-flows.md +0 -53
  401. package/rulesets/topologies/edge-computing/edge-computing.rego +0 -41
  402. package/rulesets/topologies/edge-computing/edge-computing.rules.json +0 -50
  403. package/rulesets/topologies/edge-computing/edge-computing.test.rego +0 -33
  404. package/rulesets/topologies/edge-computing/edge-computing.wasm +0 -0
  405. package/rulesets/topologies/edge-computing/evidence.es.md +0 -263
  406. package/rulesets/topologies/edge-computing/evidence.md +0 -263
  407. package/rulesets/topologies/edge-computing/evolution.es.md +0 -257
  408. package/rulesets/topologies/edge-computing/evolution.md +0 -257
  409. package/rulesets/topologies/edge-computing/fixtures/invalid.topology.config.json +0 -6
  410. package/rulesets/topologies/edge-computing/fixtures/valid.topology.config.json +0 -6
  411. package/rulesets/topologies/edge-computing/maturity.es.md +0 -36
  412. package/rulesets/topologies/edge-computing/maturity.md +0 -36
  413. package/rulesets/topologies/edge-computing/mcp/mcp-manifest.json +0 -72
  414. package/rulesets/topologies/edge-computing/openapi/openapi.yaml +0 -187
  415. package/rulesets/topologies/edge-computing/operations.es.md +0 -148
  416. package/rulesets/topologies/edge-computing/operations.md +0 -148
  417. package/rulesets/topologies/edge-computing/parity-fixtures/compliant.json +0 -12
  418. package/rulesets/topologies/edge-computing/parity-fixtures/violation.json +0 -13
  419. package/rulesets/topologies/edge-computing/patterns.es.md +0 -291
  420. package/rulesets/topologies/edge-computing/patterns.md +0 -290
  421. package/rulesets/topologies/edge-computing/resilience.es.md +0 -232
  422. package/rulesets/topologies/edge-computing/resilience.md +0 -229
  423. package/rulesets/topologies/edge-computing/runbooks.es.md +0 -405
  424. package/rulesets/topologies/edge-computing/runbooks.md +0 -405
  425. package/rulesets/topologies/edge-computing/security.es.md +0 -218
  426. package/rulesets/topologies/edge-computing/security.md +0 -218
  427. package/rulesets/topologies/edge-computing/topology.config.schema.json +0 -13
  428. package/rulesets/topologies/edge-computing/topology.manifest.json +0 -113
  429. package/rulesets/topologies/event-driven/README.es.md +0 -71
  430. package/rulesets/topologies/event-driven/README.md +0 -71
  431. package/rulesets/topologies/event-driven/adoption.es.md +0 -67
  432. package/rulesets/topologies/event-driven/adoption.md +0 -67
  433. package/rulesets/topologies/event-driven/cli/cli-flows.es.md +0 -41
  434. package/rulesets/topologies/event-driven/cli/cli-flows.md +0 -53
  435. package/rulesets/topologies/event-driven/event-driven.rego +0 -11
  436. package/rulesets/topologies/event-driven/event-driven.rules.json +0 -100
  437. package/rulesets/topologies/event-driven/event-driven.test.rego +0 -107
  438. package/rulesets/topologies/event-driven/event-driven.wasm +0 -0
  439. package/rulesets/topologies/event-driven/evidence.es.md +0 -69
  440. package/rulesets/topologies/event-driven/evidence.md +0 -69
  441. package/rulesets/topologies/event-driven/evolution.es.md +0 -59
  442. package/rulesets/topologies/event-driven/evolution.md +0 -59
  443. package/rulesets/topologies/event-driven/fixtures/invalid.topology.config.json +0 -12
  444. package/rulesets/topologies/event-driven/fixtures/valid.topology.config.json +0 -12
  445. package/rulesets/topologies/event-driven/maturity.es.md +0 -36
  446. package/rulesets/topologies/event-driven/maturity.md +0 -36
  447. package/rulesets/topologies/event-driven/mcp/mcp-manifest.json +0 -68
  448. package/rulesets/topologies/event-driven/openapi/openapi.yaml +0 -186
  449. package/rulesets/topologies/event-driven/operations.es.md +0 -67
  450. package/rulesets/topologies/event-driven/operations.md +0 -67
  451. package/rulesets/topologies/event-driven/parity-fixtures/compliant.json +0 -18
  452. package/rulesets/topologies/event-driven/parity-fixtures/violation.json +0 -21
  453. package/rulesets/topologies/event-driven/patterns.es.md +0 -68
  454. package/rulesets/topologies/event-driven/patterns.md +0 -68
  455. package/rulesets/topologies/event-driven/resilience.es.md +0 -65
  456. package/rulesets/topologies/event-driven/resilience.md +0 -65
  457. package/rulesets/topologies/event-driven/runbooks.es.md +0 -79
  458. package/rulesets/topologies/event-driven/runbooks.md +0 -79
  459. package/rulesets/topologies/event-driven/security.es.md +0 -59
  460. package/rulesets/topologies/event-driven/security.md +0 -59
  461. package/rulesets/topologies/event-driven/topology.config.schema.json +0 -30
  462. package/rulesets/topologies/event-driven/topology.manifest.json +0 -109
  463. package/rulesets/topologies/progressive-axis/distributed-modules/distributed-modules.rules.es.json +0 -111
  464. package/rulesets/topologies/progressive-axis/distributed-modules/distributed-modules.rules.json +0 -111
  465. package/rulesets/topologies/progressive-axis/microservices/microservices.rules.es.json +0 -106
  466. package/rulesets/topologies/progressive-axis/microservices/microservices.rules.json +0 -106
  467. package/rulesets/topologies/progressive-axis/modular-monolith/modular-monolith.rules.es.json +0 -148
  468. package/rulesets/topologies/progressive-axis/modular-monolith/modular-monolith.rules.json +0 -148
  469. package/rulesets/topologies/serverless/README.es.md +0 -74
  470. package/rulesets/topologies/serverless/README.md +0 -74
  471. package/rulesets/topologies/serverless/adoption.es.md +0 -50
  472. package/rulesets/topologies/serverless/adoption.md +0 -50
  473. package/rulesets/topologies/serverless/cli/cli-flows.es.md +0 -41
  474. package/rulesets/topologies/serverless/cli/cli-flows.md +0 -53
  475. package/rulesets/topologies/serverless/evidence.es.md +0 -66
  476. package/rulesets/topologies/serverless/evidence.md +0 -66
  477. package/rulesets/topologies/serverless/evolution.es.md +0 -36
  478. package/rulesets/topologies/serverless/evolution.md +0 -36
  479. package/rulesets/topologies/serverless/fixtures/invalid.topology.config.json +0 -6
  480. package/rulesets/topologies/serverless/fixtures/valid.topology.config.json +0 -6
  481. package/rulesets/topologies/serverless/maturity.es.md +0 -36
  482. package/rulesets/topologies/serverless/maturity.md +0 -36
  483. package/rulesets/topologies/serverless/mcp/mcp-manifest.json +0 -72
  484. package/rulesets/topologies/serverless/openapi/openapi.yaml +0 -186
  485. package/rulesets/topologies/serverless/operations.es.md +0 -36
  486. package/rulesets/topologies/serverless/operations.md +0 -36
  487. package/rulesets/topologies/serverless/parity-fixtures/compliant.json +0 -13
  488. package/rulesets/topologies/serverless/parity-fixtures/violation.json +0 -15
  489. package/rulesets/topologies/serverless/patterns.es.md +0 -36
  490. package/rulesets/topologies/serverless/patterns.md +0 -36
  491. package/rulesets/topologies/serverless/resilience.es.md +0 -36
  492. package/rulesets/topologies/serverless/resilience.md +0 -36
  493. package/rulesets/topologies/serverless/runbooks.es.md +0 -68
  494. package/rulesets/topologies/serverless/runbooks.md +0 -68
  495. package/rulesets/topologies/serverless/security.es.md +0 -36
  496. package/rulesets/topologies/serverless/security.md +0 -36
  497. package/rulesets/topologies/serverless/serverless.rego +0 -32
  498. package/rulesets/topologies/serverless/serverless.rules.json +0 -33
  499. package/rulesets/topologies/serverless/serverless.test.rego +0 -28
  500. package/rulesets/topologies/serverless/serverless.wasm +0 -0
  501. package/rulesets/topologies/serverless/topology.config.schema.json +0 -28
  502. 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
- ```