@evolith/core-domain 1.0.1 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (501) hide show
  1. package/dist/domain/services/default-workflow-definition.js +4 -1
  2. package/dist/domain/services/default-workflow-definition.js.map +1 -1
  3. package/dist/gates/decision/gate-decision.js.map +1 -1
  4. package/package.json +1 -2
  5. package/rulesets/README.es.md +0 -170
  6. package/rulesets/README.md +0 -170
  7. package/rulesets/acl/README.es.md +0 -41
  8. package/rulesets/acl/README.md +0 -41
  9. package/rulesets/acl/anti-corruption-layer.rules.es.json +0 -99
  10. package/rulesets/acl/anti-corruption-layer.rules.json +0 -99
  11. package/rulesets/adr/ADR_COVERAGE.es.md +0 -133
  12. package/rulesets/adr/ADR_COVERAGE.md +0 -133
  13. package/rulesets/adr/README.es.md +0 -17
  14. package/rulesets/adr/README.md +0 -17
  15. package/rulesets/adr/adr-0002-hexagonal-architecture.rules.json +0 -103
  16. package/rulesets/adr/adr-0005-cicd-quality-gates.rules.json +0 -102
  17. package/rulesets/adr/adr-0010-multi-tenancy.rules.json +0 -129
  18. package/rulesets/adr/adr-0018-testing-pyramid.rules.json +0 -115
  19. package/rulesets/adr/adr-0032-protocol-selection.rules.json +0 -134
  20. package/rulesets/adr/adr-0040-multi-runtime.rules.json +0 -131
  21. package/rulesets/adr/adr-0050-gitflow-branching.rules.json +0 -176
  22. package/rulesets/adr/generated/adr-0001-monorepo-orchestration-principle.rules.json +0 -29
  23. package/rulesets/adr/generated/adr-0006-microservices-transition-via-sidecar-pattern.rules.json +0 -29
  24. package/rulesets/adr/generated/adr-0009-strict-dependency-pinning-and-automated-vulnerability-manage.rules.json +0 -29
  25. package/rulesets/adr/generated/adr-0011-fault-tolerance-and-resiliency-patterns.rules.json +0 -29
  26. package/rulesets/adr/generated/adr-0013-cloud-infrastructure-topology-and-disaster-recovery-dr.rules.json +0 -28
  27. package/rulesets/adr/generated/adr-0014-multi-layer-distributed-caching-strategy.rules.json +0 -29
  28. package/rulesets/adr/generated/adr-0015-event-driven-architecture-eda-for-intra-domain-communication.rules.json +0 -29
  29. package/rulesets/adr/generated/adr-0016-immutable-business-audit-trail-and-change-tracking.rules.json +0 -29
  30. package/rulesets/adr/generated/adr-0017-feature-flagging-strategy-for-progressive-delivery.rules.json +0 -28
  31. package/rulesets/adr/generated/adr-0019-tactical-design-patterns-for-future-proofing.rules.json +0 -29
  32. package/rulesets/adr/generated/adr-0020-identity-provider-abstraction-strategy.rules.json +0 -28
  33. package/rulesets/adr/generated/adr-0024-centralized-configuration-feature-platform.rules.json +0 -28
  34. package/rulesets/adr/generated/adr-0025-feature-flag-provider-abstraction-strategy.rules.json +0 -29
  35. package/rulesets/adr/generated/adr-0028-self-hosted-open-source-hybrid-infrastructure.rules.json +0 -29
  36. package/rulesets/adr/generated/adr-0030-two-tier-distributed-gateway-model.rules.json +0 -28
  37. package/rulesets/adr/generated/adr-0031-schema-per-bounded-context-and-domain-event-catalog.rules.json +0 -29
  38. package/rulesets/adr/generated/adr-0033-transactional-outbox-pattern-for-async-messaging.rules.json +0 -28
  39. package/rulesets/adr/generated/adr-0034-cqrs-pattern-application-matrix.rules.json +0 -29
  40. package/rulesets/adr/generated/adr-0035-distributed-saga-pattern-implementation-strategy.rules.json +0 -29
  41. package/rulesets/adr/generated/adr-0036-message-bus-delivery-flow-control-strategy.rules.json +0 -29
  42. package/rulesets/adr/generated/adr-0037-enterprise-performance-concurrency-chaos-verification-strate.rules.json +0 -28
  43. package/rulesets/adr/generated/adr-0039-deployment-topology-abstraction-environment-switcher.rules.json +0 -29
  44. package/rulesets/adr/generated/adr-0041-dual-engine-policy-evaluation-native-opa.rules.json +0 -28
  45. package/rulesets/adr/generated/adr-0044-configurable-security-persistence-strategy-agnosticism-vs-na.rules.json +0 -29
  46. package/rulesets/adr/generated/adr-0045-microservice-extraction-readiness-criteria.rules.json +0 -29
  47. package/rulesets/adr/generated/adr-0046-unified-traceability-via-w3c-tracecontext.rules.json +0 -29
  48. package/rulesets/adr/generated/adr-0047-progressive-architecture-evolution-framework-modular-monolit.rules.json +0 -29
  49. package/rulesets/adr/generated/adr-0048-enterprise-taxonomy-standardization-and-reference-layout.rules.json +0 -28
  50. package/rulesets/adr/generated/adr-0049-naming-semantics-clean-code-policy-e2e-and-global.rules.json +0 -29
  51. package/rulesets/adr/generated/adr-0051-enterprise-database-engine-selection-strategy.rules.json +0 -29
  52. package/rulesets/adr/generated/adr-0052-unit-testing-isolation-strategy-mocks-vs-stubs.rules.json +0 -29
  53. package/rulesets/adr/generated/adr-0053-integration-and-e2e-testing-strategy.rules.json +0 -29
  54. package/rulesets/adr/generated/adr-0054-database-design-and-normalization-standards.rules.json +0 -29
  55. package/rulesets/adr/generated/adr-0055-microfrontends-architecture-strategy.rules.json +0 -28
  56. package/rulesets/adr/generated/adr-0056-enterprise-naming-design-conventions-multi-language-multi-pl.rules.json +0 -29
  57. package/rulesets/adr/generated/adr-0057-architecture-intelligence-catalog.rules.json +0 -27
  58. package/rulesets/adr/generated/adr-0058-ai-consumable-architecture-knowledge.rules.json +0 -27
  59. package/rulesets/adr/generated/adr-0067-modular-monolith-persistence-boundaries.rules.json +0 -28
  60. package/rulesets/adr/generated/adr-0068-documentation-release-gitflow.rules.json +0 -29
  61. package/rulesets/adr/generated/adr-0069-ai-agent-context-protocol-integration.rules.json +0 -28
  62. package/rulesets/adr/generated/adr-0070-lean-root-repository-taxonomy.rules.json +0 -29
  63. package/rulesets/adr/generated/adr-0071-domain-layer-base-class-and-inheritance-strategy.rules.json +0 -29
  64. package/rulesets/adr/generated/adr-0072-utc-date-storage-browser-timezone-detection-and-language-res.rules.json +0 -29
  65. package/rulesets/adr/generated/adr-0073-unified-cli-mcp-output-contract-and-gate-evidence-schema.rules.json +0 -29
  66. package/rulesets/adr/generated/adr-0074-evolith-core-api-native-exposure-layer.rules.json +0 -29
  67. package/rulesets/adr/generated/adr-0075-core-api-authentication-strategy.rules.json +0 -28
  68. package/rulesets/adr/generated/adr-0076-domain-oriented-microservice-architecture-doma.rules.json +0 -28
  69. package/rulesets/adr/generated/adr-0077-masstransit-v9-commercial-pivot-stay-on-v8-monitor-opentrans.rules.json +0 -28
  70. package/rulesets/adr/generated/adr-0078-domain-financial-separation-governance.rules.json +0 -29
  71. package/rulesets/adr/generated/adr-0079-multi-topology-reference-corpus-and-topology-manifest-contra.rules.json +0 -29
  72. package/rulesets/adr/generated/adr-0080-remote-repository-reference-contract.rules.json +0 -29
  73. package/rulesets/adr/generated/adr-0081-agentic-ai-sandbox-isolation-boundary.rules.json +0 -29
  74. package/rulesets/adr/generated/adr-0082-agentic-ai-prompt-context-and-tool-trust-boundary.rules.json +0 -28
  75. package/rulesets/adr/generated/adr-0083-agentic-ai-action-authorization-and-audit.rules.json +0 -29
  76. package/rulesets/adr/generated/adr-0084-data-mesh-and-data-as-a-product.rules.json +0 -29
  77. package/rulesets/adr/generated/adr-0085-agnostic-opa-wasm-distribution-architecture.rules.json +0 -28
  78. package/rulesets/adr/generated/adr-0086-agentic-ai-telemetry-cost-control-standard.rules.json +0 -27
  79. package/rulesets/adr/generated/adr-0087-attribute-based-access-control-abac-for-agentic-tool-executi.rules.json +0 -29
  80. package/rulesets/adr/generated/adr-0088-sovereign-identity-for-agentic-ai.rules.json +0 -29
  81. package/rulesets/adr/generated/adr-0089-event-driven-agentic-workflow-pattern.rules.json +0 -28
  82. package/rulesets/adr/generated/adr-0090-rag-knowledge-governance-standard.rules.json +0 -29
  83. package/rulesets/adr/generated/adr-0091-workload-identity-token-rotation-standard.rules.json +0 -29
  84. package/rulesets/adr/generated/adr-0092-agent-infinite-loop-prevention-and-circuit-breaker-rules.rules.json +0 -29
  85. package/rulesets/adr/generated/adr-0093-concurrency-control-and-resource-locking-standard-for-mcp-to.rules.json +0 -29
  86. package/rulesets/adr/generated/adr-0094-multi-agent-handoff-and-task-delegation-standards.rules.json +0 -29
  87. package/rulesets/adr/generated/adr-0095-serverless-architecture-governance.rules.json +0 -29
  88. package/rulesets/adr/generated/adr-0096-edge-computing-architecture-governance.rules.json +0 -29
  89. package/rulesets/adr/generated/adr-0097-knowledge-lifecycle-governance-standard.rules.json +0 -29
  90. package/rulesets/adr/generated/adr-0098-rest-uri-versioning-and-deprecation-policy.rules.json +0 -29
  91. package/rulesets/adr/generated/adr-0099-opa-bundle-distribution-via-s3-minio.rules.json +0 -27
  92. package/rulesets/adr/generated/adr-ai-augmented-0001-harness-engineering-for-ai-augmented-development.rules.json +0 -29
  93. package/rulesets/adr/generated/adr-ai-augmented-0002-mcp-integration-protocol-for-agent-tool-invocation.rules.json +0 -29
  94. package/rulesets/adr/generated/adr-ai-augmented-0003-model-selection-governance-for-ai-augmented-workflows.rules.json +0 -29
  95. package/rulesets/adr/generated/adr-ai-augmented-0004-agents-md-as-mandatory-repository-artifact.rules.json +0 -29
  96. package/rulesets/adr/generated/adr-ai-augmented-0005-human-in-the-loop-policy-for-autonomous-agent-operations.rules.json +0 -29
  97. package/rulesets/adr/generated/adr-android-0042-canonical-android-native-mobile-architecture.rules.json +0 -29
  98. package/rulesets/adr/generated/adr-dotnet-0041-canonical-net-c-backend-architecture.rules.json +0 -29
  99. package/rulesets/adr/generated/adr-dotnet-0060-net-multi-tenancy-dual-layer-strategy-ef-core-sql-server.rules.json +0 -29
  100. package/rulesets/adr/generated/adr-dotnet-0061-transactional-event-lifecycle-in-ef-core.rules.json +0 -28
  101. package/rulesets/adr/generated/adr-dotnet-0062-net-immutable-audit-trail-via-ddl-triggers-delta-capture.rules.json +0 -29
  102. package/rulesets/adr/generated/adr-dotnet-0063-b2b-request-idempotency-middleware-in-asp-net-core.rules.json +0 -28
  103. package/rulesets/adr/generated/adr-dotnet-0064-net-request-scope-observability-context-propagation.rules.json +0 -29
  104. package/rulesets/adr/generated/adr-dotnet-0065-net-pii-safe-structured-logging-pipeline-serilog.rules.json +0 -29
  105. package/rulesets/adr/generated/adr-dotnet-0066-net-lightweight-http-idempotency-via-imemorycache-idistribut.rules.json +0 -28
  106. package/rulesets/adr/generated/adr-dotnet-0069-net-grpc-service-setup-protobuf-contracts.rules.json +0 -29
  107. package/rulesets/adr/generated/adr-dotnet-0070-net-api-endpoint-strategy.rules.json +0 -29
  108. package/rulesets/adr/generated/adr-dotnet-0071-net-data-access-strategy-ef-core-as-default-orm-dapper-for-o.rules.json +0 -27
  109. package/rulesets/adr/generated/adr-dotnet-0072-net-aop-cross-cutting-concern-strategy-dispatchproxy-over-pi.rules.json +0 -29
  110. package/rulesets/adr/generated/adr-nodejs-0003-strict-typescript-standards.rules.json +0 -29
  111. package/rulesets/adr/generated/adr-nodejs-0004-frontend-offline-resilience.rules.json +0 -28
  112. package/rulesets/adr/generated/adr-nodejs-0007-observability-with-opentelemetry-loki-and-jaeger.rules.json +0 -29
  113. package/rulesets/adr/generated/adr-nodejs-0008-progressive-multi-module-evolution-with-api-gateway-and-bff-.rules.json +0 -28
  114. package/rulesets/adr/generated/adr-nodejs-0012-advanced-authorization-rbac-abac-strategy.rules.json +0 -28
  115. package/rulesets/adr/generated/adr-nodejs-0021-high-performance-authentication-graph-compilation.rules.json +0 -28
  116. package/rulesets/adr/generated/adr-nodejs-0022-contextual-authentication-and-pluggable-output-projections.rules.json +0 -28
  117. package/rulesets/adr/generated/adr-nodejs-0023-centralized-authorization-core-strategy.rules.json +0 -28
  118. package/rulesets/adr/generated/adr-nodejs-0026-adaptive-mfa-and-passwordless-platform.rules.json +0 -28
  119. package/rulesets/adr/generated/adr-nodejs-0027-dual-protocol-api-strategy-rest-grpc.rules.json +0 -28
  120. package/rulesets/adr/generated/adr-nodejs-0029-adoption-of-tactical-ddd-primitives-library.rules.json +0 -29
  121. package/rulesets/adr/generated/adr-nodejs-0038-enterprise-error-handling-result-pattern-strategy.rules.json +0 -29
  122. package/rulesets/adr/generated/adr-nodejs-0043-data-access-and-orm-strategy-for-node-js.rules.json +0 -29
  123. package/rulesets/adr/generated/adr-nodejs-0044-frontend-clean-architecture-layer-boundaries-react.rules.json +0 -29
  124. package/rulesets/adr/generated/adr-nodejs-0045-frontend-state-management-zustand-tanstack-query-dual-strate.rules.json +0 -29
  125. package/rulesets/adr/generated/adr-nodejs-0046-prohibition-of-raw-technical-identifiers-in-user-interfaces.rules.json +0 -29
  126. package/rulesets/adr/generated/adr-nodejs-0047-actionable-user-error-contract-and-correlated-diagnostics.rules.json +0 -29
  127. package/rulesets/adr/generated/adr-nodejs-0048-feature-flag-system-scope-and-structured-criteria-model.rules.json +0 -29
  128. package/rulesets/adr/generated/adr-nodejs-0074-monorepo-orchestration-with-nx.rules.json +0 -29
  129. package/rulesets/adr/generated/adr-nodejs-0075-application-gateway-bff-with-nestjs.rules.json +0 -29
  130. package/rulesets/architecture/README.es.md +0 -21
  131. package/rulesets/architecture/README.md +0 -21
  132. package/rulesets/architecture/opa/progressive-axis.rego +0 -50
  133. package/rulesets/cli/README.es.md +0 -17
  134. package/rulesets/cli/README.md +0 -17
  135. package/rulesets/cli/core-parity.rules.json +0 -61
  136. package/rulesets/cli/release-readiness.rules.json +0 -77
  137. package/rulesets/compliance-baseline/README.es.md +0 -26
  138. package/rulesets/compliance-baseline/README.md +0 -26
  139. package/rulesets/compliance-baseline/compliance-baseline.rules.json +0 -81
  140. package/rulesets/contracts/README.es.md +0 -19
  141. package/rulesets/contracts/README.md +0 -19
  142. package/rulesets/contracts/evolith-machine-contracts.json +0 -29
  143. package/rulesets/contracts/fixtures/gate-evidence.success.json +0 -10
  144. package/rulesets/contracts/fixtures/output-envelope.success.json +0 -23
  145. package/rulesets/cross-cutting/README.es.md +0 -14
  146. package/rulesets/cross-cutting/README.md +0 -14
  147. package/rulesets/cross-cutting/compliance-baseline.rules.json +0 -81
  148. package/rulesets/cross-cutting/definition-of-done.rules.json +0 -135
  149. package/rulesets/cross-cutting/engineering-manifesto.rules.json +0 -145
  150. package/rulesets/cross-cutting/repository-taxonomy.rules.json +0 -172
  151. package/rulesets/definition-of-done/README.es.md +0 -26
  152. package/rulesets/definition-of-done/README.md +0 -26
  153. package/rulesets/definition-of-done/definition-of-done.rules.json +0 -135
  154. package/rulesets/engineering-manifesto/README.es.md +0 -26
  155. package/rulesets/engineering-manifesto/README.md +0 -26
  156. package/rulesets/engineering-manifesto/engineering-manifesto.rules.json +0 -145
  157. package/rulesets/evidence/README.es.md +0 -12
  158. package/rulesets/evidence/README.md +0 -12
  159. package/rulesets/evidence/evidence-manifest.rules.json +0 -48
  160. package/rulesets/executive-scorecards/executive-scorecards.rules.es.json +0 -213
  161. package/rulesets/executive-scorecards/executive-scorecards.rules.json +0 -213
  162. package/rulesets/governance/README.es.md +0 -13
  163. package/rulesets/governance/README.md +0 -13
  164. package/rulesets/governance/abac-mcp-access.rules.es.json +0 -41
  165. package/rulesets/governance/abac-mcp-access.rules.json +0 -41
  166. package/rulesets/governance/executive-scorecards.rules.es.json +0 -213
  167. package/rulesets/governance/executive-scorecards.rules.json +0 -213
  168. package/rulesets/governance/inheritance.rules.json +0 -115
  169. package/rulesets/governance/knowledge-intake.rules.json +0 -18
  170. package/rulesets/governance/open-core-boundary.rules.es.json +0 -148
  171. package/rulesets/governance/open-core-boundary.rules.json +0 -148
  172. package/rulesets/governance/satellite-contracts.rules.json +0 -183
  173. package/rulesets/infrastructure/helm-enforcement.rules.json +0 -21
  174. package/rulesets/infrastructure/opa/helm-enforcement.rego +0 -25
  175. package/rulesets/infrastructure/opa/helm-enforcement.test.rego +0 -31
  176. package/rulesets/infrastructure/opa/opa-sidecar-bundle.rego +0 -115
  177. package/rulesets/infrastructure/opa/opa-sidecar-bundle.test.rego +0 -66
  178. package/rulesets/infrastructure/opa-sidecar-bundle.rules.json +0 -18
  179. package/rulesets/mcp/README.es.md +0 -12
  180. package/rulesets/mcp/README.md +0 -12
  181. package/rulesets/mcp/protocol-compliance.rules.json +0 -57
  182. package/rulesets/observability/README.es.md +0 -12
  183. package/rulesets/observability/README.md +0 -12
  184. package/rulesets/observability/telemetry-evidence.rules.json +0 -48
  185. package/rulesets/opa/README.es.md +0 -22
  186. package/rulesets/opa/README.md +0 -22
  187. package/rulesets/opa/abac-mcp-tool-access.rego +0 -122
  188. package/rulesets/opa/abac-mcp-tool-access.test.rego +0 -33
  189. package/rulesets/opa/anti-corruption-layer.rego +0 -39
  190. package/rulesets/opa/anti-corruption-layer.test.rego +0 -118
  191. package/rulesets/opa/ci-cd.rego +0 -41
  192. package/rulesets/opa/ci-cd.test.rego +0 -23
  193. package/rulesets/opa/cicd-quality-gates.rego +0 -29
  194. package/rulesets/opa/cicd-quality-gates.test.rego +0 -54
  195. package/rulesets/opa/cli-core-parity.rego +0 -17
  196. package/rulesets/opa/cli-core-parity.test.rego +0 -39
  197. package/rulesets/opa/cli-readiness.rego +0 -32
  198. package/rulesets/opa/cli-readiness.test.rego +0 -23
  199. package/rulesets/opa/cli-release-readiness.rego +0 -21
  200. package/rulesets/opa/cli-release-readiness.test.rego +0 -46
  201. package/rulesets/opa/compliance-baseline.rego +0 -95
  202. package/rulesets/opa/compliance-baseline.test.rego +0 -89
  203. package/rulesets/opa/dod.rego +0 -42
  204. package/rulesets/opa/dod.test.rego +0 -250
  205. package/rulesets/opa/engineering-manifesto.rego +0 -78
  206. package/rulesets/opa/engineering-manifesto.test.rego +0 -133
  207. package/rulesets/opa/evidence.rego +0 -64
  208. package/rulesets/opa/evidence.test.rego +0 -23
  209. package/rulesets/opa/executive-scorecards.rego +0 -41
  210. package/rulesets/opa/executive-scorecards.test.rego +0 -60
  211. package/rulesets/opa/gitflow-branching.rego +0 -41
  212. package/rulesets/opa/gitflow-branching.test.rego +0 -60
  213. package/rulesets/opa/governance.rego +0 -39
  214. package/rulesets/opa/governance.test.rego +0 -23
  215. package/rulesets/opa/hexagonal-architecture.rego +0 -33
  216. package/rulesets/opa/hexagonal-architecture.test.rego +0 -57
  217. package/rulesets/opa/infrastructure/helm-enforcement.rego +0 -33
  218. package/rulesets/opa/infrastructure/opa-sidecar-bundle.rego +0 -42
  219. package/rulesets/opa/knowledge-intake.rego +0 -98
  220. package/rulesets/opa/knowledge-intake.test.rego +0 -50
  221. package/rulesets/opa/main.rego +0 -147
  222. package/rulesets/opa/main_test.rego +0 -149
  223. package/rulesets/opa/mcp.rego +0 -61
  224. package/rulesets/opa/mcp.test.rego +0 -27
  225. package/rulesets/opa/multi-runtime.rego +0 -33
  226. package/rulesets/opa/multi-runtime.test.rego +0 -53
  227. package/rulesets/opa/multi-tenancy.rego +0 -33
  228. package/rulesets/opa/multi-tenancy.test.rego +0 -53
  229. package/rulesets/opa/open-core-boundary.rego +0 -33
  230. package/rulesets/opa/open-core-boundary.test.rego +0 -60
  231. package/rulesets/opa/protocol-selection.rego +0 -29
  232. package/rulesets/opa/protocol-selection.test.rego +0 -46
  233. package/rulesets/opa/rbac/gate-role-enforcement.rego +0 -112
  234. package/rulesets/opa/repository-taxonomy.rego +0 -98
  235. package/rulesets/opa/repository-taxonomy.test.rego +0 -91
  236. package/rulesets/opa/satellite-contracts.rego +0 -42
  237. package/rulesets/opa/satellite-contracts.test.rego +0 -70
  238. package/rulesets/opa/schemas/abac-mcp-tool-access.input.schema.json +0 -21
  239. package/rulesets/opa/schemas/anti-corruption-layer.input.schema.json +0 -25
  240. package/rulesets/opa/schemas/ci-cd.input.schema.json +0 -27
  241. package/rulesets/opa/schemas/cicd-quality-gates.input.schema.json +0 -33
  242. package/rulesets/opa/schemas/cli-core-parity.input.schema.json +0 -30
  243. package/rulesets/opa/schemas/cli-readiness.input.schema.json +0 -28
  244. package/rulesets/opa/schemas/cli-release-readiness.input.schema.json +0 -26
  245. package/rulesets/opa/schemas/compliance-baseline.input.schema.json +0 -25
  246. package/rulesets/opa/schemas/dod.input.schema.json +0 -38
  247. package/rulesets/opa/schemas/engineering-manifesto.input.schema.json +0 -24
  248. package/rulesets/opa/schemas/evidence.input.schema.json +0 -35
  249. package/rulesets/opa/schemas/executive-scorecards.input.schema.json +0 -36
  250. package/rulesets/opa/schemas/gitflow-branching.input.schema.json +0 -36
  251. package/rulesets/opa/schemas/governance.input.schema.json +0 -19
  252. package/rulesets/opa/schemas/hexagonal-architecture.input.schema.json +0 -46
  253. package/rulesets/opa/schemas/knowledge-intake.input.schema.json +0 -57
  254. package/rulesets/opa/schemas/mcp.input.schema.json +0 -38
  255. package/rulesets/opa/schemas/multi-runtime.input.schema.json +0 -27
  256. package/rulesets/opa/schemas/multi-tenancy.input.schema.json +0 -27
  257. package/rulesets/opa/schemas/open-core-boundary.input.schema.json +0 -36
  258. package/rulesets/opa/schemas/protocol-selection.input.schema.json +0 -26
  259. package/rulesets/opa/schemas/repository-taxonomy.input.schema.json +0 -18
  260. package/rulesets/opa/schemas/satellite-contracts.input.schema.json +0 -38
  261. package/rulesets/opa/schemas/taxonomy.input.schema.json +0 -27
  262. package/rulesets/opa/schemas/testing-pyramid.input.schema.json +0 -42
  263. package/rulesets/opa/schemas/version-pinning.input.schema.json +0 -39
  264. package/rulesets/opa/sdlc/coverage.rego +0 -49
  265. package/rulesets/opa/sdlc/coverage.test.rego +0 -29
  266. package/rulesets/opa/sdlc/pyramid-distribution.rego +0 -31
  267. package/rulesets/opa/sdlc/pyramid-distribution.test.rego +0 -33
  268. package/rulesets/opa/taxonomy.rego +0 -51
  269. package/rulesets/opa/taxonomy.test.rego +0 -28
  270. package/rulesets/opa/telemetry-evidence.rego +0 -102
  271. package/rulesets/opa/testing-pyramid.rego +0 -49
  272. package/rulesets/opa/testing-pyramid.test.rego +0 -81
  273. package/rulesets/opa/version-pinning.rego +0 -99
  274. package/rulesets/opa/version-pinning.test.rego +0 -28
  275. package/rulesets/phase-gates/README.es.md +0 -28
  276. package/rulesets/phase-gates/README.md +0 -28
  277. package/rulesets/phase-gates/phase-gates.rules.json +0 -297
  278. package/rulesets/quality-thresholds/README.es.md +0 -28
  279. package/rulesets/quality-thresholds/README.md +0 -28
  280. package/rulesets/quality-thresholds/quality-thresholds.rules.json +0 -96
  281. package/rulesets/repository-taxonomy/README.es.md +0 -26
  282. package/rulesets/repository-taxonomy/README.md +0 -26
  283. package/rulesets/repository-taxonomy/repository-taxonomy.rules.json +0 -172
  284. package/rulesets/satellite-contracts/README.es.md +0 -27
  285. package/rulesets/satellite-contracts/README.md +0 -27
  286. package/rulesets/satellite-contracts/satellite-contracts.rules.json +0 -183
  287. package/rulesets/schema/README.es.md +0 -39
  288. package/rulesets/schema/README.md +0 -39
  289. package/rulesets/schema/adr.schema.json +0 -138
  290. package/rulesets/schema/agile-backlog.schema.json +0 -91
  291. package/rulesets/schema/ballpark-estimation.schema.json +0 -109
  292. package/rulesets/schema/build-vs-compose.schema.json +0 -98
  293. package/rulesets/schema/cli-impact-analysis.schema.json +0 -114
  294. package/rulesets/schema/discovery-canvas.schema.json +0 -92
  295. package/rulesets/schema/evolith-user-story.schema.json +0 -105
  296. package/rulesets/schema/evolith-yaml.schema.json +0 -191
  297. package/rulesets/schema/functional-story.schema.json +0 -111
  298. package/rulesets/schema/gate-evidence.schema.json +0 -85
  299. package/rulesets/schema/integration-evidence.schema.json +0 -47
  300. package/rulesets/schema/knowledge-intake.schema.json +0 -67
  301. package/rulesets/schema/knowledge-projection.schema.json +0 -24
  302. package/rulesets/schema/maturity-evidence.schema.json +0 -59
  303. package/rulesets/schema/observability-validation.schema.json +0 -85
  304. package/rulesets/schema/on-call-handoff.schema.json +0 -91
  305. package/rulesets/schema/output-envelope.schema.json +0 -102
  306. package/rulesets/schema/prd.schema.json +0 -117
  307. package/rulesets/schema/release-notes.schema.json +0 -138
  308. package/rulesets/schema/rollback-rehearsal.schema.json +0 -73
  309. package/rulesets/schema/ruleset-sdlc.schema.json +0 -59
  310. package/rulesets/schema/ruleset-standard.schema.json +0 -73
  311. package/rulesets/schema/security-scan-report.schema.json +0 -79
  312. package/rulesets/schema/source-registry.schema.json +0 -51
  313. package/rulesets/schema/technical-feasibility.schema.json +0 -66
  314. package/rulesets/schema/technical-story.schema.json +0 -112
  315. package/rulesets/schema/test-summary-report.schema.json +0 -158
  316. package/rulesets/schema/topology-composition.schema.json +0 -43
  317. package/rulesets/schema/topology-manifest.schema.json +0 -421
  318. package/rulesets/sdlc/README.es.md +0 -12
  319. package/rulesets/sdlc/README.md +0 -12
  320. package/rulesets/sdlc/default-workflow.yaml +0 -73
  321. package/rulesets/sdlc/dependency-pinning.rules.json +0 -183
  322. package/rulesets/sdlc/phase-gates.rules.json +0 -297
  323. package/rulesets/sdlc/quality-thresholds.rules.json +0 -96
  324. package/rulesets/topologies/README.es.md +0 -42
  325. package/rulesets/topologies/README.md +0 -42
  326. package/rulesets/topologies/agentic-ai/README.es.md +0 -142
  327. package/rulesets/topologies/agentic-ai/README.md +0 -142
  328. package/rulesets/topologies/agentic-ai/adoption.es.md +0 -37
  329. package/rulesets/topologies/agentic-ai/adoption.md +0 -37
  330. package/rulesets/topologies/agentic-ai/agent.config.schema.json +0 -100
  331. package/rulesets/topologies/agentic-ai/agentic-ai.rego +0 -46
  332. package/rulesets/topologies/agentic-ai/agentic-ai.rules.json +0 -109
  333. package/rulesets/topologies/agentic-ai/agentic-ai.test.rego +0 -68
  334. package/rulesets/topologies/agentic-ai/agentic-ai.wasm +0 -0
  335. package/rulesets/topologies/agentic-ai/cli/cli-flows.es.md +0 -35
  336. package/rulesets/topologies/agentic-ai/cli/cli-flows.md +0 -45
  337. package/rulesets/topologies/agentic-ai/evidence.es.md +0 -25
  338. package/rulesets/topologies/agentic-ai/evidence.md +0 -25
  339. package/rulesets/topologies/agentic-ai/evolution.es.md +0 -26
  340. package/rulesets/topologies/agentic-ai/evolution.md +0 -26
  341. package/rulesets/topologies/agentic-ai/fixtures/invalid-agent.config.json +0 -48
  342. package/rulesets/topologies/agentic-ai/fixtures/valid-agent.config.json +0 -48
  343. package/rulesets/topologies/agentic-ai/maturity.es.md +0 -33
  344. package/rulesets/topologies/agentic-ai/maturity.md +0 -33
  345. package/rulesets/topologies/agentic-ai/mcp/mcp-manifest.json +0 -100
  346. package/rulesets/topologies/agentic-ai/openapi/openapi.yaml +0 -187
  347. package/rulesets/topologies/agentic-ai/operations.es.md +0 -32
  348. package/rulesets/topologies/agentic-ai/operations.md +0 -32
  349. package/rulesets/topologies/agentic-ai/parity-fixtures/compliant.json +0 -18
  350. package/rulesets/topologies/agentic-ai/parity-fixtures/violation.json +0 -22
  351. package/rulesets/topologies/agentic-ai/patterns.es.md +0 -32
  352. package/rulesets/topologies/agentic-ai/patterns.md +0 -32
  353. package/rulesets/topologies/agentic-ai/resilience.es.md +0 -26
  354. package/rulesets/topologies/agentic-ai/resilience.md +0 -26
  355. package/rulesets/topologies/agentic-ai/runbooks.es.md +0 -48
  356. package/rulesets/topologies/agentic-ai/runbooks.md +0 -48
  357. package/rulesets/topologies/agentic-ai/security.es.md +0 -26
  358. package/rulesets/topologies/agentic-ai/security.md +0 -26
  359. package/rulesets/topologies/agentic-ai/topology.manifest.json +0 -127
  360. package/rulesets/topologies/data-mesh/README.es.md +0 -69
  361. package/rulesets/topologies/data-mesh/README.md +0 -69
  362. package/rulesets/topologies/data-mesh/adoption.es.md +0 -95
  363. package/rulesets/topologies/data-mesh/adoption.md +0 -95
  364. package/rulesets/topologies/data-mesh/cli/cli-flows.es.md +0 -41
  365. package/rulesets/topologies/data-mesh/cli/cli-flows.md +0 -53
  366. package/rulesets/topologies/data-mesh/data-mesh.rego +0 -11
  367. package/rulesets/topologies/data-mesh/data-mesh.rules.json +0 -100
  368. package/rulesets/topologies/data-mesh/data-mesh.test.rego +0 -107
  369. package/rulesets/topologies/data-mesh/data-mesh.wasm +0 -0
  370. package/rulesets/topologies/data-mesh/evidence.es.md +0 -111
  371. package/rulesets/topologies/data-mesh/evidence.md +0 -111
  372. package/rulesets/topologies/data-mesh/evolution.es.md +0 -67
  373. package/rulesets/topologies/data-mesh/evolution.md +0 -67
  374. package/rulesets/topologies/data-mesh/fixtures/invalid.topology.config.json +0 -12
  375. package/rulesets/topologies/data-mesh/fixtures/valid.topology.config.json +0 -12
  376. package/rulesets/topologies/data-mesh/maturity.es.md +0 -36
  377. package/rulesets/topologies/data-mesh/maturity.md +0 -36
  378. package/rulesets/topologies/data-mesh/mcp/mcp-manifest.json +0 -68
  379. package/rulesets/topologies/data-mesh/openapi/openapi.yaml +0 -186
  380. package/rulesets/topologies/data-mesh/operations.es.md +0 -63
  381. package/rulesets/topologies/data-mesh/operations.md +0 -63
  382. package/rulesets/topologies/data-mesh/parity-fixtures/compliant.json +0 -18
  383. package/rulesets/topologies/data-mesh/parity-fixtures/violation.json +0 -21
  384. package/rulesets/topologies/data-mesh/patterns.es.md +0 -67
  385. package/rulesets/topologies/data-mesh/patterns.md +0 -67
  386. package/rulesets/topologies/data-mesh/resilience.es.md +0 -64
  387. package/rulesets/topologies/data-mesh/resilience.md +0 -64
  388. package/rulesets/topologies/data-mesh/runbooks.es.md +0 -147
  389. package/rulesets/topologies/data-mesh/runbooks.md +0 -147
  390. package/rulesets/topologies/data-mesh/security.es.md +0 -66
  391. package/rulesets/topologies/data-mesh/security.md +0 -66
  392. package/rulesets/topologies/data-mesh/topology.config.schema.json +0 -30
  393. package/rulesets/topologies/data-mesh/topology.manifest.json +0 -107
  394. package/rulesets/topologies/edge-computing/README.es.md +0 -81
  395. package/rulesets/topologies/edge-computing/README.md +0 -81
  396. package/rulesets/topologies/edge-computing/adoption.es.md +0 -268
  397. package/rulesets/topologies/edge-computing/adoption.md +0 -268
  398. package/rulesets/topologies/edge-computing/cli/cli-flows.es.md +0 -41
  399. package/rulesets/topologies/edge-computing/cli/cli-flows.md +0 -53
  400. package/rulesets/topologies/edge-computing/edge-computing.rego +0 -41
  401. package/rulesets/topologies/edge-computing/edge-computing.rules.json +0 -50
  402. package/rulesets/topologies/edge-computing/edge-computing.test.rego +0 -33
  403. package/rulesets/topologies/edge-computing/edge-computing.wasm +0 -0
  404. package/rulesets/topologies/edge-computing/evidence.es.md +0 -263
  405. package/rulesets/topologies/edge-computing/evidence.md +0 -263
  406. package/rulesets/topologies/edge-computing/evolution.es.md +0 -257
  407. package/rulesets/topologies/edge-computing/evolution.md +0 -257
  408. package/rulesets/topologies/edge-computing/fixtures/invalid.topology.config.json +0 -6
  409. package/rulesets/topologies/edge-computing/fixtures/valid.topology.config.json +0 -6
  410. package/rulesets/topologies/edge-computing/maturity.es.md +0 -36
  411. package/rulesets/topologies/edge-computing/maturity.md +0 -36
  412. package/rulesets/topologies/edge-computing/mcp/mcp-manifest.json +0 -72
  413. package/rulesets/topologies/edge-computing/openapi/openapi.yaml +0 -187
  414. package/rulesets/topologies/edge-computing/operations.es.md +0 -148
  415. package/rulesets/topologies/edge-computing/operations.md +0 -148
  416. package/rulesets/topologies/edge-computing/parity-fixtures/compliant.json +0 -12
  417. package/rulesets/topologies/edge-computing/parity-fixtures/violation.json +0 -13
  418. package/rulesets/topologies/edge-computing/patterns.es.md +0 -291
  419. package/rulesets/topologies/edge-computing/patterns.md +0 -290
  420. package/rulesets/topologies/edge-computing/resilience.es.md +0 -232
  421. package/rulesets/topologies/edge-computing/resilience.md +0 -229
  422. package/rulesets/topologies/edge-computing/runbooks.es.md +0 -405
  423. package/rulesets/topologies/edge-computing/runbooks.md +0 -405
  424. package/rulesets/topologies/edge-computing/security.es.md +0 -218
  425. package/rulesets/topologies/edge-computing/security.md +0 -218
  426. package/rulesets/topologies/edge-computing/topology.config.schema.json +0 -13
  427. package/rulesets/topologies/edge-computing/topology.manifest.json +0 -113
  428. package/rulesets/topologies/event-driven/README.es.md +0 -71
  429. package/rulesets/topologies/event-driven/README.md +0 -71
  430. package/rulesets/topologies/event-driven/adoption.es.md +0 -67
  431. package/rulesets/topologies/event-driven/adoption.md +0 -67
  432. package/rulesets/topologies/event-driven/cli/cli-flows.es.md +0 -41
  433. package/rulesets/topologies/event-driven/cli/cli-flows.md +0 -53
  434. package/rulesets/topologies/event-driven/event-driven.rego +0 -11
  435. package/rulesets/topologies/event-driven/event-driven.rules.json +0 -100
  436. package/rulesets/topologies/event-driven/event-driven.test.rego +0 -107
  437. package/rulesets/topologies/event-driven/event-driven.wasm +0 -0
  438. package/rulesets/topologies/event-driven/evidence.es.md +0 -69
  439. package/rulesets/topologies/event-driven/evidence.md +0 -69
  440. package/rulesets/topologies/event-driven/evolution.es.md +0 -59
  441. package/rulesets/topologies/event-driven/evolution.md +0 -59
  442. package/rulesets/topologies/event-driven/fixtures/invalid.topology.config.json +0 -12
  443. package/rulesets/topologies/event-driven/fixtures/valid.topology.config.json +0 -12
  444. package/rulesets/topologies/event-driven/maturity.es.md +0 -36
  445. package/rulesets/topologies/event-driven/maturity.md +0 -36
  446. package/rulesets/topologies/event-driven/mcp/mcp-manifest.json +0 -68
  447. package/rulesets/topologies/event-driven/openapi/openapi.yaml +0 -186
  448. package/rulesets/topologies/event-driven/operations.es.md +0 -67
  449. package/rulesets/topologies/event-driven/operations.md +0 -67
  450. package/rulesets/topologies/event-driven/parity-fixtures/compliant.json +0 -18
  451. package/rulesets/topologies/event-driven/parity-fixtures/violation.json +0 -21
  452. package/rulesets/topologies/event-driven/patterns.es.md +0 -68
  453. package/rulesets/topologies/event-driven/patterns.md +0 -68
  454. package/rulesets/topologies/event-driven/resilience.es.md +0 -65
  455. package/rulesets/topologies/event-driven/resilience.md +0 -65
  456. package/rulesets/topologies/event-driven/runbooks.es.md +0 -79
  457. package/rulesets/topologies/event-driven/runbooks.md +0 -79
  458. package/rulesets/topologies/event-driven/security.es.md +0 -59
  459. package/rulesets/topologies/event-driven/security.md +0 -59
  460. package/rulesets/topologies/event-driven/topology.config.schema.json +0 -30
  461. package/rulesets/topologies/event-driven/topology.manifest.json +0 -109
  462. package/rulesets/topologies/progressive-axis/distributed-modules/distributed-modules.rules.es.json +0 -111
  463. package/rulesets/topologies/progressive-axis/distributed-modules/distributed-modules.rules.json +0 -111
  464. package/rulesets/topologies/progressive-axis/microservices/microservices.rules.es.json +0 -106
  465. package/rulesets/topologies/progressive-axis/microservices/microservices.rules.json +0 -106
  466. package/rulesets/topologies/progressive-axis/modular-monolith/modular-monolith.rules.es.json +0 -148
  467. package/rulesets/topologies/progressive-axis/modular-monolith/modular-monolith.rules.json +0 -148
  468. package/rulesets/topologies/serverless/README.es.md +0 -74
  469. package/rulesets/topologies/serverless/README.md +0 -74
  470. package/rulesets/topologies/serverless/adoption.es.md +0 -50
  471. package/rulesets/topologies/serverless/adoption.md +0 -50
  472. package/rulesets/topologies/serverless/cli/cli-flows.es.md +0 -41
  473. package/rulesets/topologies/serverless/cli/cli-flows.md +0 -53
  474. package/rulesets/topologies/serverless/evidence.es.md +0 -66
  475. package/rulesets/topologies/serverless/evidence.md +0 -66
  476. package/rulesets/topologies/serverless/evolution.es.md +0 -36
  477. package/rulesets/topologies/serverless/evolution.md +0 -36
  478. package/rulesets/topologies/serverless/fixtures/invalid.topology.config.json +0 -6
  479. package/rulesets/topologies/serverless/fixtures/valid.topology.config.json +0 -6
  480. package/rulesets/topologies/serverless/maturity.es.md +0 -36
  481. package/rulesets/topologies/serverless/maturity.md +0 -36
  482. package/rulesets/topologies/serverless/mcp/mcp-manifest.json +0 -72
  483. package/rulesets/topologies/serverless/openapi/openapi.yaml +0 -186
  484. package/rulesets/topologies/serverless/operations.es.md +0 -36
  485. package/rulesets/topologies/serverless/operations.md +0 -36
  486. package/rulesets/topologies/serverless/parity-fixtures/compliant.json +0 -13
  487. package/rulesets/topologies/serverless/parity-fixtures/violation.json +0 -15
  488. package/rulesets/topologies/serverless/patterns.es.md +0 -36
  489. package/rulesets/topologies/serverless/patterns.md +0 -36
  490. package/rulesets/topologies/serverless/resilience.es.md +0 -36
  491. package/rulesets/topologies/serverless/resilience.md +0 -36
  492. package/rulesets/topologies/serverless/runbooks.es.md +0 -68
  493. package/rulesets/topologies/serverless/runbooks.md +0 -68
  494. package/rulesets/topologies/serverless/security.es.md +0 -36
  495. package/rulesets/topologies/serverless/security.md +0 -36
  496. package/rulesets/topologies/serverless/serverless.rego +0 -32
  497. package/rulesets/topologies/serverless/serverless.rules.json +0 -33
  498. package/rulesets/topologies/serverless/serverless.test.rego +0 -28
  499. package/rulesets/topologies/serverless/serverless.wasm +0 -0
  500. package/rulesets/topologies/serverless/topology.config.schema.json +0 -28
  501. package/rulesets/topologies/serverless/topology.manifest.json +0 -114
@@ -1,72 +0,0 @@
1
- {
2
- "protocolVersion": "2025-03-26",
3
- "topologyId": "serverless",
4
- "description": "MCP interface for the Serverless topology. Provides tools for inspecting and validating serverless function configurations, resources for manifest and ruleset access, and prompts for serverless-readiness and implementation guidance.",
5
- "capabilities": {
6
- "tools": {},
7
- "resources": {},
8
- "prompts": {}
9
- },
10
- "tools": [
11
- {
12
- "name": "evolith-topology-inspect",
13
- "description": "Inspect a Serverless topology configuration and return its parsed manifest, function definitions, and corpus artifact references.",
14
- "inputSchema": {
15
- "type": "object",
16
- "properties": {
17
- "configPath": {
18
- "type": "string",
19
- "description": "Path to the Serverless configuration file"
20
- },
21
- "includeFunctions": {
22
- "type": "boolean",
23
- "description": "Include function-level metadata and triggers"
24
- }
25
- },
26
- "required": ["configPath"]
27
- }
28
- },
29
- {
30
- "name": "evolith-topology-validate",
31
- "description": "Validate a Serverless configuration against the topology ruleset and OPA policies, returning pass/fail per gate.",
32
- "inputSchema": {
33
- "type": "object",
34
- "properties": {
35
- "configPath": {
36
- "type": "string",
37
- "description": "Path to the Serverless configuration to validate"
38
- },
39
- "strictMode": {
40
- "type": "boolean",
41
- "description": "Fail on warnings, not just errors"
42
- }
43
- },
44
- "required": ["configPath"]
45
- }
46
- }
47
- ],
48
- "resources": [
49
- {
50
- "uri": "evolith://topologies/serverless/manifest",
51
- "name": "Serverless Topology Manifest",
52
- "description": "Full topology manifest for Serverless, including metadata, artifact references, and corpus configuration.",
53
- "mimeType": "application/json"
54
- },
55
- {
56
- "uri": "evolith://topologies/serverless/rulesets",
57
- "name": "Serverless Rulesets",
58
- "description": "All ruleset files for Serverless: native rules JSON, OPA Rego policies, and WASM bundle.",
59
- "mimeType": "application/json"
60
- }
61
- ],
62
- "prompts": [
63
- {
64
- "name": "serverless-readiness-review",
65
- "description": "Assesses whether a workload is suitable for serverless deployment, evaluating cold-start tolerance, statelessness, timeout limits, and cost profile."
66
- },
67
- {
68
- "name": "topology-aware-implementation",
69
- "description": "Guides AI-assisted implementation to respect Serverless topology constraints, ephemeral stateless design, and event-driven triggers."
70
- }
71
- ]
72
- }
@@ -1,186 +0,0 @@
1
- openapi: "3.1.0"
2
- info:
3
- title: "Serverless Topology — Core API Surface"
4
- version: "0.1.0"
5
- description: >
6
- REST API surface specific to the Serverless topology.
7
- Describes endpoints exposed by the Core API for querying,
8
- inspecting, and validating Serverless topology instances.
9
- servers:
10
- - url: "https://api.evolith.dev/v1"
11
- description: "Evolith Core API (production)"
12
- paths:
13
- /topologies/{id}:
14
- get:
15
- tags: [Topologies]
16
- summary: "Retrieve Serverless topology information"
17
- description: >
18
- Returns the full topology record for Serverless, including
19
- dimension, status, version, governance metadata, and corpus
20
- artifact references (rulesets, OPA policies, ADRs, guidance).
21
- operationId: "getServerlessTopology"
22
- parameters:
23
- - name: id
24
- in: path
25
- required: true
26
- schema:
27
- type: string
28
- pattern: "^serverless$"
29
- example: "serverless"
30
- responses:
31
- "200":
32
- description: "Successful response with Serverless topology data"
33
- content:
34
- application/json:
35
- schema:
36
- $ref: "#/components/schemas/EnvelopeTopology"
37
- "404":
38
- description: "Topology not found"
39
- /topologies/{id}/manifest:
40
- get:
41
- tags: [Topologies]
42
- summary: "Get Serverless topology manifest"
43
- description: >
44
- Returns the full topology manifest for Serverless, with
45
- artifact references, corpus configuration, and business
46
- boundary declaration.
47
- operationId: "getServerlessManifest"
48
- parameters:
49
- - name: id
50
- in: path
51
- required: true
52
- schema:
53
- type: string
54
- pattern: "^serverless$"
55
- responses:
56
- "200":
57
- description: "Successful response with Serverless manifest"
58
- content:
59
- application/json:
60
- schema:
61
- $ref: "#/components/schemas/EnvelopeManifest"
62
- /topologies/{id}/validate:
63
- post:
64
- tags: [Topologies]
65
- summary: "Validate Serverless topology rules"
66
- description: >
67
- Executes all applicable rulesets and OPA policies for Serverless
68
- against a submitted configuration, returning pass/fail per gate.
69
- operationId: "validateServerlessTopology"
70
- parameters:
71
- - name: id
72
- in: path
73
- required: true
74
- schema:
75
- type: string
76
- pattern: "^serverless$"
77
- requestBody:
78
- required: true
79
- content:
80
- application/json:
81
- schema:
82
- $ref: "#/components/schemas/ValidationRequest"
83
- responses:
84
- "200":
85
- description: "Validation results"
86
- content:
87
- application/json:
88
- schema:
89
- $ref: "#/components/schemas/EnvelopeValidation"
90
- components:
91
- schemas:
92
- Envelope:
93
- type: object
94
- properties:
95
- success:
96
- type: boolean
97
- data: {}
98
- meta:
99
- type: object
100
- properties:
101
- context:
102
- type: string
103
- timing:
104
- type: number
105
- schemaVersion:
106
- type: string
107
- pattern: "^\\d+\\.\\d+\\.\\d+$"
108
- required: [context, timing, schemaVersion]
109
- required: [success, data, meta]
110
- EnvelopeTopology:
111
- allOf:
112
- - $ref: "#/components/schemas/Envelope"
113
- - type: object
114
- properties:
115
- data:
116
- $ref: "#/components/schemas/TopologyRecord"
117
- EnvelopeManifest:
118
- allOf:
119
- - $ref: "#/components/schemas/Envelope"
120
- - type: object
121
- properties:
122
- data:
123
- $ref: "#/components/schemas/TopologyManifest"
124
- EnvelopeValidation:
125
- allOf:
126
- - $ref: "#/components/schemas/Envelope"
127
- - type: object
128
- properties:
129
- data:
130
- $ref: "#/components/schemas/ValidationResult"
131
- TopologyRecord:
132
- type: object
133
- properties:
134
- id:
135
- type: string
136
- example: "serverless"
137
- name:
138
- type: string
139
- example: "Serverless"
140
- dimension:
141
- type: string
142
- example: "execution"
143
- status:
144
- type: string
145
- enum: [accepted, draft, deprecated]
146
- version:
147
- type: string
148
- example: "0.1.0"
149
- TopologyManifest:
150
- type: object
151
- properties:
152
- apiVersion:
153
- type: string
154
- example: "evolith.dev/topology/v1"
155
- kind:
156
- type: string
157
- example: "TopologyManifest"
158
- metadata:
159
- type: object
160
- spec:
161
- type: object
162
- ValidationRequest:
163
- type: object
164
- properties:
165
- config:
166
- type: object
167
- description: "Configuration to validate against topology rules"
168
- required: [config]
169
- ValidationResult:
170
- type: object
171
- properties:
172
- passed:
173
- type: boolean
174
- gates:
175
- type: array
176
- items:
177
- type: object
178
- properties:
179
- gate:
180
- type: string
181
- passed:
182
- type: boolean
183
- evidence:
184
- type: array
185
- items:
186
- type: string
@@ -1,36 +0,0 @@
1
- # Guía de Operaciones Sin Servidor
2
-
3
- > **Navegación Bilingüe:** [English](./operations.md) | [Español](./operations.es.md)
4
-
5
- **Propietario:** Ingeniería de Plataforma
6
- **Topología:** Sin Servidor
7
-
8
- ---
9
-
10
- ## Optimización de Inicio en Frío
11
-
12
- Las funciones deben cumplir con un presupuesto de **1000 ms para inicio en frío** (SV-R04). Utilizar concurrencia provisionada para rutas sensibles a la latencia. Mantener los paquetes de despliegue por debajo de **50 MB** (SV-R03) para reducir el tiempo de inicialización. Evitar dependencias pesadas de runtime; preferir runtimes ligeros (Node.js, Python) sobre stacks pesados.
13
-
14
- ## Límites de Concurrencia
15
-
16
- Monitorear cuotas de concurrencia regionales. Implementar interruptores de circuito al acercarse a los límites. Utilizar concurrencia reservada para aislar funciones críticas de vecinos ruidosos. Rastrear ejecuciones concurrentes contra los presupuestos para evitar cascadas de limitaciones.
17
-
18
- ## Manejo de Cola de Cartas Muertas (DLQ)
19
-
20
- Toda invocación asíncrona debe declarar una DLQ (SV-R01). Los mensajes fallidos se enrutan a la DLQ tras agotar los reintentos. Procesar entradas de DLQ con una función dedicada de remediación. Alertar cuando la profundidad de la DLQ exceda cero por más de 5 minutos.
21
-
22
- ## Monitoreo de Funciones
23
-
24
- Instrumentar invocaciones con logs estructurados, trazas y métricas. Rastrear latencia p50, p95 y p99 por función. Monitorear tasas de error, conteos de limitaciones y frecuencia de inicio en frío. Agregar costos por función para responsabilidad presupuestaria (objetivo: **1 centavo por ejecución**).
25
-
26
- ## Rastreo de Costos
27
-
28
- Etiquetar cada función con metadatos de centro de costo. Generar reportes diarios de costos por función y por topology. Alertar cuando el costo por ejecución exceda el presupuesto. Revisar funciones inactivas mensualmente y descomisionar recursos no utilizados.
29
-
30
- ## Mitigación de Bloqueo con el Proveedor
31
-
32
- Abstract las APIs específicas del proveedor detrás de interfaces internas (ADR-0095). Utilizar runtimes de funciones y formatos de eventos portables entre proveedores. Mantener una capa de contrato neutral al proveedor para esquemas de eventos. Documentar optimizaciones específicas del proveedor como compromisos deliberados, no acoplamientos accidentales.
33
-
34
- ---
35
-
36
- [Volver al Perfil Sin Servidor](./README.es.md)
@@ -1,36 +0,0 @@
1
- # Serverless — Operations Guide
2
-
3
- > **Bilingual Navigation:** [English](./operations.md) | [Español](./operations.es.md)
4
-
5
- **Owner:** Platform Engineering
6
- **Topology:** Serverless
7
-
8
- ---
9
-
10
- ## Cold Start Optimization
11
-
12
- Functions must meet a **1000 ms cold start budget** (SV-R04). Use provisioned concurrency for latency-sensitive paths. Keep deployment packages under **50 MB** (SV-R03) to reduce initialization time. Avoid large runtime dependencies; prefer lightweight runtimes (Node.js, Python) over heavyweight stacks.
13
-
14
- ## Concurrency Limits
15
-
16
- Monitor regional concurrency quotas. Implement circuit breakers when approaching limits. Use reserved concurrency to isolate critical functions from noisy neighbors. Track concurrent executions against budgets to prevent throttling cascades.
17
-
18
- ## Dead Letter Queue (DLQ) Handling
19
-
20
- Every asynchronous invocation must declare a DLQ (SV-R01). Failed messages route to the DLQ after retry exhaustion. Process DLQ entries with a dedicated remediation function. Alert on DLQ depth exceeding zero for more than 5 minutes.
21
-
22
- ## Function Monitoring
23
-
24
- Instrument invocations with structured logs, traces, and metrics. Track p50, p95, and p99 latency per function. Monitor error rates, throttle counts, and cold start frequency. Aggregate costs per function for budget accountability (target: **1 cent per execution**).
25
-
26
- ## Cost Tracking
27
-
28
- Tag every function with cost-center metadata. Generate daily cost reports per function and per topology. Alert when per-execution cost exceeds budget. Review idle functions monthly and decommission unused resources.
29
-
30
- ## Vendor Lock-in Mitigation
31
-
32
- Abstract cloud-specific APIs behind internal interfaces (ADR-0095). Use function-runtimes and event formats that portable across providers. Maintain a provider-neutral contract layer for event schemas. Document provider-specific optimizations as deliberate trade-offs, not accidental coupling.
33
-
34
- ---
35
-
36
- [Back to Serverless Profile](./README.md)
@@ -1,13 +0,0 @@
1
- {
2
- "input": {
3
- "topology": "serverless",
4
- "config": {
5
- "networkSecurity": { "mtlsEnabled": true },
6
- "hasContract": true,
7
- "isStateless": true,
8
- "hasBoundedPackage": true,
9
- "hasColdStartReadiness": true
10
- }
11
- },
12
- "expectedNative": []
13
- }
@@ -1,15 +0,0 @@
1
- {
2
- "input": {
3
- "topology": "serverless",
4
- "config": {
5
- "networkSecurity": { "mtlsEnabled": true },
6
- "hasContract": false,
7
- "isStateless": true,
8
- "hasBoundedPackage": true,
9
- "hasColdStartReadiness": true
10
- }
11
- },
12
- "expectedNative": [
13
- { "ruleId": "SV-R01", "severity": "error", "file": null }
14
- ]
15
- }
@@ -1,36 +0,0 @@
1
- # Guía de Patrones Sin Servidor
2
-
3
- > **Navegación Bilingüe:** [English](./patterns.md) | [Español](./patterns.es.md)
4
-
5
- **Propietario:** Ingeniería de Plataforma
6
- **Topología:** Sin Servidor
7
-
8
- ---
9
-
10
- ## Fan-Out / Fan-In
11
-
12
- Usar fan-out para distribuir trabajo entre múltiples invocaciones paralelas de funciones. Agregar resultados con una función fan-in o una máquina de estados. Asegurar que cada rama paralela sea idempotente. Monitorear la latencia total del pipeline contra el presupuesto de 1500 ms.
13
-
14
- ## Funciones de Estado / Workflows
15
-
16
- Orquestar procesos de múltiples pasos con máquinas de estados (SV-R01). Definir estados explícitos, transiciones y manejadores de errores. Persistir el estado del workflow externamente para sobrevivir reinicios de funciones. Usar workflows visuales para lógica de negocio compleja que excede una sola función.
17
-
18
- ## Filtrado de Eventos
19
-
20
- Filtrar eventos en la fuente para reducir invocaciones innecesarias. Usar reglas de bus de eventos o suscripciones de topics para entrega selectiva. Evitar procesar eventos irrelevantes dentro de la lógica de la función. Medir la efectividad del filtrado rastreando la relación invocación-trabajo-útil.
21
-
22
- ## Composición de Funciones
23
-
24
- Componer funciones pequeñas y de propósito único en workflows de orden superior. Mantener los límites de composición limpios: cada función posee una capacidad de dominio. Usar mensajería asíncrona para comunicación entre funciones. Evitar cadenas de llamadas síncronas profundas que aumentan la latencia y la exposición a inicios en frío.
25
-
26
- ## Backend-for-Frontend (BFF)
27
-
28
- Implementar funciones BFF para agregar servicios backend para clientes específicos. Adaptar payloads de respuesta por frontend para reducir sobre-obtención. Mantener funciones BFF delgadas — componen, no transforman lógica de negocio. Almacenar en caché respuestas BFF para patrones con alta carga de lectura.
29
-
30
- ## Disparadores Programados
31
-
32
- Usar disparadores basados en cron para cargas de trabajo periódicas. Alinear la granularidad del calendario con las necesidades de negocio (minuto, hora, día). Implementar lógica de relleno para calendarios perdidos. Monitorear deriva del calendario y alertar sobre invocaciones perdidas.
33
-
34
- ---
35
-
36
- [Volver al Perfil Sin Servidor](./README.es.md)
@@ -1,36 +0,0 @@
1
- # Serverless — Patterns Guide
2
-
3
- > **Bilingual Navigation:** [English](./patterns.md) | [Español](./patterns.es.md)
4
-
5
- **Owner:** Platform Engineering
6
- **Topology:** Serverless
7
-
8
- ---
9
-
10
- ## Fan-Out / Fan-In
11
-
12
- Use fan-out to distribute work across multiple parallel function invocations. Aggregate results with a fan-in function or a state machine. Ensure each parallel branch is idempotent. Monitor total pipeline latency against the 1500 ms budget.
13
-
14
- ## Step Functions / Workflows
15
-
16
- Orchestrate multi-step processes with state machines (SV-R01). Define explicit states, transitions, and error handlers. Persist workflow state externally to survive function restarts. Use visual workflows for complex business logic that exceeds a single function.
17
-
18
- ## Event Filtering
19
-
20
- Filter events at the source to reduce unnecessary invocations. Use event bus rules or topic subscriptions for selective delivery. Avoid processing irrelevant events inside function logic. Measure filtering effectiveness by tracking invocation-to-useful-work ratio.
21
-
22
- ## Function Composition
23
-
24
- Compose small, single-purpose functions into higher-order workflows. Keep composition boundaries clean: each function owns one domain capability. Use async messaging for inter-function communication. Avoid deep synchronous call chains that increase latency and cold start exposure.
25
-
26
- ## Backend-for-Frontend (BFF)
27
-
28
- Implement BFF functions to aggregate backend services for specific clients. Tailor response payloads per frontend to reduce over-fetching. Keep BFF functions thin — they compose, they don't transform business logic. Cache BFF responses for read-heavy patterns.
29
-
30
- ## Scheduled Triggers
31
-
32
- Use cron-based triggers for periodic workloads. Align schedule granularity with business needs (minute, hour, day). Implement backfill logic for missed schedules. Monitor schedule drift and alert on missed invocations.
33
-
34
- ---
35
-
36
- [Back to Serverless Profile](./README.md)
@@ -1,36 +0,0 @@
1
- # Guía de Resiliencia Sin Servidor
2
-
3
- > **Navegación Bilingüe:** [English](./resilience.md) | [Español](./resilience.es.md)
4
-
5
- **Propietario:** Ingeniería de Plataforma
6
- **Topología:** Sin Servidor
7
-
8
- ---
9
-
10
- ## Idempotencia
11
-
12
- Cada función debe ser idempotente. Usar claves de idempotencia derivadas del payload del evento o un token proporcionado por el cliente. Almacenar registros de idempotencia en un almacén rápido y duradero con un TTL que coincida con el dominio de negocio. Rechazar invocaciones duplicadas con el resultado original.
13
-
14
- ## Reintento con Backoff Exponencial
15
-
16
- Configurar reintentos con backoff exponencial y jitter para fallos transitorios. Establecer el número máximo de reintentos basado en el timeout de la función y el presupuesto de latencia (1500 ms total). Distinguir errores reintatables (5xx, limitaciones) de fallos permanentes (4xx, validación). Evitar bucles de reintento ilimitados.
17
-
18
- ## Puntos de Control
19
-
20
- Para flujos de trabajo de ejecución larga o fan-out, persistir estado interno en almacenamiento externo. Usar colas o bases de datos duraderas como puntos de control. Reanudar desde el último punto de control tras un fallo en lugar de reiniciar todo el flujo de trabajo. Mantener las escrituras de puntos de control atómicas.
21
-
22
- ## Recuperación de DLQ
23
-
24
- Enrutar fallos irrecuperables a la DLQ. Implementar una función de recuperación dedicada que inspeccione, transforme y reprocese entradas de la DLQ. Alertar inmediatamente cuando la profundidad de la DLQ exceda el umbral. Mantener rastros de auditoría para cada intento de procesamiento de DLQ.
25
-
26
- ## Mitigación de Inicio en Frío
27
-
28
- Reservar concurrencia provisionada para rutas críticas para mantenerse dentro del presupuesto de 1000 ms de inicio en frío (SV-R04). Calentar funciones en un calendario para prevenir evicciones por timeout de inactividad. Usar runtimes ligeros y minimizar el tamaño del paquete (SV-R03). Perfilar inicios en frío continuamente y regresar en caso de degradación.
29
-
30
- ## Diseño Stateless (SV-R02)
31
-
32
- Las funciones no deben mantener estado local entre invocaciones. Externalizar todo el estado a almacenes gestionados (base de datos, caché, cola). Tratar cada invocación como independente. Validar esta invariant en pruebas de integración.
33
-
34
- ---
35
-
36
- [Volver al Perfil Sin Servidor](./README.es.md)
@@ -1,36 +0,0 @@
1
- # Serverless — Resilience Guide
2
-
3
- > **Bilingual Navigation:** [English](./resilience.md) | [Español](./resilience.es.md)
4
-
5
- **Owner:** Platform Engineering
6
- **Topology:** Serverless
7
-
8
- ---
9
-
10
- ## Idempotency
11
-
12
- Every function must be idempotent. Use idempotency keys derived from the event payload or a client-supplied token. Store idempotency records in a fast, durable store with a TTL matching the business domain. Reject duplicate invocations with the original result.
13
-
14
- ## Retry with Exponential Backoff
15
-
16
- Configure retries with exponential backoff and jitter for transient failures. Set maximum retry attempts based on function timeout and latency budget (1500 ms total). Distinguish retryable errors (5xx, throttling) from permanent failures (4xx, validation). Avoid unbounded retry loops.
17
-
18
- ## Checkpointing
19
-
20
- For long-running or fan-out workflows, persist intermediate state to external storage. Use durable queues or databases as checkpoints. Resume from the last checkpoint after failure rather than restarting the entire workflow. Keep checkpoint writes atomic.
21
-
22
- ## DLQ Recovery
23
-
24
- Route unrecoverable failures to the DLQ. Implement a dedicated recovery function that inspects, transforms, and reprocesses DLQ entries. Alert immediately on DLQ depth exceeding threshold. Maintain audit trails for every DLQ processing attempt.
25
-
26
- ## Cold Start Mitigation
27
-
28
- Reserve provisioned concurrency for critical paths to stay within the 1000 ms cold start budget (SV-R04). Warm functions on a schedule to prevent idle-timeout evictions. Use lightweight runtimes and minimize package size (SV-R03). Profile cold starts continuously and regress on degradation.
29
-
30
- ## Stateless Design (SV-R02)
31
-
32
- Functions must not hold local state between invocations. Externalize all state to managed stores (database, cache, queue). Treat each invocation as independent. Validate this invariant in integration tests.
33
-
34
- ---
35
-
36
- [Back to Serverless Profile](./README.md)
@@ -1,68 +0,0 @@
1
- # Runbooks Sin Servidor
2
-
3
- > **Navegación Bilingüe:** [English](./runbooks.md) | [Español](./runbooks.es.md)
4
-
5
- **Propietario:** Ingeniería de Plataforma
6
- **Topología:** Sin Servidor
7
-
8
- ---
9
-
10
- ## Runbook 1: Fallo en Despliegue de Función
11
-
12
- **Disparador:** El pipeline de CI/CD reporta un error de despliegue.
13
-
14
- 1. Revisar logs de despliegue para detalles del error y stack trace.
15
- 2. Verificar permisos del rol IAM para la cuenta de despliegue.
16
- 3. Validar configuración de la función (ruta del handler, runtime, memoria, timeout).
17
- 4. Asegurar que el paquete de despliegue esté bajo 50 MB (SV-R03).
18
- 5. Re-ejecutar el despliegue con logging detallado habilitado.
19
- 6. Si persiste, hacer rollback a la última versión conocida como buena e investigar offline.
20
-
21
- ## Runbook 2: Latencia de Inicio en Frío Excede el Presupuesto
22
-
23
- **Disparador:** La latencia p95 de inicio en frío excede 1000 ms (SV-R04).
24
-
25
- 1. Identificar la función afectada desde el panel de monitoreo.
26
- 2. Revisar el tamaño del paquete de despliegue y dependencias.
27
- 3. Cambiar a un runtime más ligero si es factible (Node.js, Python).
28
- 4. Habilitar concurrencia provisionada para la función.
29
- 5. Perfilar la fase de init — identificar código de inicialización pesado.
30
- 6. Mover la inicialización fuera del handler donde sea posible.
31
- 7. Validar la mejora contra el presupuesto de 1000 ms.
32
-
33
- ## Runbook 3: Profundidad de DLQ Excede el Umbral
34
-
35
- **Disparador:** La profundidad de la DLQ excede cero por más de 5 minutos.
36
-
37
- 1. Identificar la función de origen y el tipo de evento fallido.
38
- 2. Inspeccionar entradas de la DLQ para mensajes de error y payloads.
39
- 3. Corregir la causa raíz en la función consumidora.
40
- 4. Reprocesar entradas de la DLQ a través de la función de remediación.
41
- 5. Verificar que la profundidad de la DLQ regresa a cero.
42
- 6. Actualizar umbrales de alerta si el umbral era demasiado sensible.
43
-
44
- ## Runbook 4: Límite de Concurrencia Excedido
45
-
46
- **Disparador:** Invocaciones de función retornan errores de limitación (429).
47
-
48
- 1. Verificar el uso actual de concurrencia contra la cuota regional.
49
- 2. Identificar qué funciones están consumiendo más concurrencia.
50
- 3. Aumentar concurrencia reservada para funciones críticas si es necesario.
51
- 4. Implementar o ajustar interruptores de circuito en rutas no críticas.
52
- 5. Solicitar aumento de cuota si se espera crecimiento sostenido.
53
- 6. Monitorear durante 30 minutos después de la remediación para confirmar estabilidad.
54
-
55
- ## Runbook 5: Investigación de Timeout de Función
56
-
57
- **Disparador:** La función excede consistentemente el timeout configurado.
58
-
59
- 1. Revisar logs de ejecución de la función para operaciones lentas.
60
- 2. Verificar latencia de servicios downstream (base de datos, APIs externas).
61
- 3. Aumentar el timeout si la carga de trabajo genuinamente requiere más tiempo.
62
- 4. Optimizar rutas de código — reducir I/O innecesario, operaciones por lotes.
63
- 5. Considerar dividir en funciones más pequeñas si la tarea es demasiado grande.
64
- 6. Validar el nuevo timeout contra el presupuesto de latencia de 1500 ms.
65
-
66
- ---
67
-
68
- [Volver al Perfil Sin Servidor](./README.es.md)
@@ -1,68 +0,0 @@
1
- # Serverless — Runbooks
2
-
3
- > **Bilingual Navigation:** [English](./runbooks.md) | [Español](./runbooks.es.md)
4
-
5
- **Owner:** Platform Engineering
6
- **Topology:** Serverless
7
-
8
- ---
9
-
10
- ## Runbook 1: Function Deployment Failure
11
-
12
- **Trigger:** CI/CD pipeline reports deployment error.
13
-
14
- 1. Check deployment logs for error details and stack trace.
15
- 2. Verify IAM role permissions for the deployment account.
16
- 3. Validate function configuration (handler path, runtime, memory, timeout).
17
- 4. Ensure deployment package is under 50 MB (SV-R03).
18
- 5. Re-run deployment with verbose logging enabled.
19
- 6. If persistent, rollback to the last known-good version and investigate offline.
20
-
21
- ## Runbook 2: Cold Start Latency Exceeds Budget
22
-
23
- **Trigger:** p95 cold start latency exceeds 1000 ms (SV-R04).
24
-
25
- 1. Identify the affected function from monitoring dashboard.
26
- 2. Review deployment package size and dependencies.
27
- 3. Switch to a lighter runtime if feasible (Node.js, Python).
28
- 4. Enable provisioned concurrency for the function.
29
- 5. Profile init phase — identify heavy initialization code.
30
- 6. Move initialization outside the handler where possible.
31
- 7. Validate improvement against the 1000 ms budget.
32
-
33
- ## Runbook 3: DLQ Depth Exceeds Threshold
34
-
35
- **Trigger:** DLQ depth exceeds zero for more than 5 minutes.
36
-
37
- 1. Identify the source function and failing event type.
38
- 2. Inspect DLQ entries for error messages and payloads.
39
- 3. Fix the root cause in the consumer function.
40
- 4. Reprocess DLQ entries via the remediation function.
41
- 5. Verify DLQ depth returns to zero.
42
- 6. Update alerting thresholds if the threshold was too sensitive.
43
-
44
- ## Runbook 4: Concurrency Limit Exceeded
45
-
46
- **Trigger:** Function invocations returning throttling errors (429).
47
-
48
- 1. Check current concurrency usage against regional quota.
49
- 2. Identify which functions are consuming the most concurrency.
50
- 3. Increase reserved concurrency for critical functions if needed.
51
- 4. Implement or tune circuit breakers on non-critical paths.
52
- 5. Request a quota increase if sustained growth is expected.
53
- 6. Monitor for 30 minutes after remediation to confirm stability.
54
-
55
- ## Runbook 5: Function Timeout Investigation
56
-
57
- **Trigger:** Function consistently timing out near configured timeout.
58
-
59
- 1. Review function execution logs for slow operations.
60
- 2. Check downstream service latency (database, external APIs).
61
- 3. Increase timeout if the workload genuinely requires more time.
62
- 4. Optimize code paths — reduce unnecessary I/O, batch operations.
63
- 5. Consider splitting into smaller functions if the task is too large.
64
- 6. Validate new timeout against the 1500 ms latency budget.
65
-
66
- ---
67
-
68
- [Back to Serverless Profile](./README.md)