@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,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)