@evolith/core-domain 1.0.1 → 1.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +102 -0
- package/dist/domain/services/default-workflow-definition.js +4 -1
- package/dist/domain/services/default-workflow-definition.js.map +1 -1
- package/dist/gates/decision/gate-decision.js.map +1 -1
- package/package.json +1 -2
- package/rulesets/README.es.md +0 -170
- package/rulesets/README.md +0 -170
- package/rulesets/acl/README.es.md +0 -41
- package/rulesets/acl/README.md +0 -41
- package/rulesets/acl/anti-corruption-layer.rules.es.json +0 -99
- package/rulesets/acl/anti-corruption-layer.rules.json +0 -99
- package/rulesets/adr/ADR_COVERAGE.es.md +0 -133
- package/rulesets/adr/ADR_COVERAGE.md +0 -133
- package/rulesets/adr/README.es.md +0 -17
- package/rulesets/adr/README.md +0 -17
- package/rulesets/adr/adr-0002-hexagonal-architecture.rules.json +0 -103
- package/rulesets/adr/adr-0005-cicd-quality-gates.rules.json +0 -102
- package/rulesets/adr/adr-0010-multi-tenancy.rules.json +0 -129
- package/rulesets/adr/adr-0018-testing-pyramid.rules.json +0 -115
- package/rulesets/adr/adr-0032-protocol-selection.rules.json +0 -134
- package/rulesets/adr/adr-0040-multi-runtime.rules.json +0 -131
- package/rulesets/adr/adr-0050-gitflow-branching.rules.json +0 -176
- package/rulesets/adr/generated/adr-0001-monorepo-orchestration-principle.rules.json +0 -29
- package/rulesets/adr/generated/adr-0006-microservices-transition-via-sidecar-pattern.rules.json +0 -29
- package/rulesets/adr/generated/adr-0009-strict-dependency-pinning-and-automated-vulnerability-manage.rules.json +0 -29
- package/rulesets/adr/generated/adr-0011-fault-tolerance-and-resiliency-patterns.rules.json +0 -29
- package/rulesets/adr/generated/adr-0013-cloud-infrastructure-topology-and-disaster-recovery-dr.rules.json +0 -28
- package/rulesets/adr/generated/adr-0014-multi-layer-distributed-caching-strategy.rules.json +0 -29
- package/rulesets/adr/generated/adr-0015-event-driven-architecture-eda-for-intra-domain-communication.rules.json +0 -29
- package/rulesets/adr/generated/adr-0016-immutable-business-audit-trail-and-change-tracking.rules.json +0 -29
- package/rulesets/adr/generated/adr-0017-feature-flagging-strategy-for-progressive-delivery.rules.json +0 -28
- package/rulesets/adr/generated/adr-0019-tactical-design-patterns-for-future-proofing.rules.json +0 -29
- package/rulesets/adr/generated/adr-0020-identity-provider-abstraction-strategy.rules.json +0 -28
- package/rulesets/adr/generated/adr-0024-centralized-configuration-feature-platform.rules.json +0 -28
- package/rulesets/adr/generated/adr-0025-feature-flag-provider-abstraction-strategy.rules.json +0 -29
- package/rulesets/adr/generated/adr-0028-self-hosted-open-source-hybrid-infrastructure.rules.json +0 -29
- package/rulesets/adr/generated/adr-0030-two-tier-distributed-gateway-model.rules.json +0 -28
- package/rulesets/adr/generated/adr-0031-schema-per-bounded-context-and-domain-event-catalog.rules.json +0 -29
- package/rulesets/adr/generated/adr-0033-transactional-outbox-pattern-for-async-messaging.rules.json +0 -28
- package/rulesets/adr/generated/adr-0034-cqrs-pattern-application-matrix.rules.json +0 -29
- package/rulesets/adr/generated/adr-0035-distributed-saga-pattern-implementation-strategy.rules.json +0 -29
- package/rulesets/adr/generated/adr-0036-message-bus-delivery-flow-control-strategy.rules.json +0 -29
- package/rulesets/adr/generated/adr-0037-enterprise-performance-concurrency-chaos-verification-strate.rules.json +0 -28
- package/rulesets/adr/generated/adr-0039-deployment-topology-abstraction-environment-switcher.rules.json +0 -29
- package/rulesets/adr/generated/adr-0041-dual-engine-policy-evaluation-native-opa.rules.json +0 -28
- package/rulesets/adr/generated/adr-0044-configurable-security-persistence-strategy-agnosticism-vs-na.rules.json +0 -29
- package/rulesets/adr/generated/adr-0045-microservice-extraction-readiness-criteria.rules.json +0 -29
- package/rulesets/adr/generated/adr-0046-unified-traceability-via-w3c-tracecontext.rules.json +0 -29
- package/rulesets/adr/generated/adr-0047-progressive-architecture-evolution-framework-modular-monolit.rules.json +0 -29
- package/rulesets/adr/generated/adr-0048-enterprise-taxonomy-standardization-and-reference-layout.rules.json +0 -28
- package/rulesets/adr/generated/adr-0049-naming-semantics-clean-code-policy-e2e-and-global.rules.json +0 -29
- package/rulesets/adr/generated/adr-0051-enterprise-database-engine-selection-strategy.rules.json +0 -29
- package/rulesets/adr/generated/adr-0052-unit-testing-isolation-strategy-mocks-vs-stubs.rules.json +0 -29
- package/rulesets/adr/generated/adr-0053-integration-and-e2e-testing-strategy.rules.json +0 -29
- package/rulesets/adr/generated/adr-0054-database-design-and-normalization-standards.rules.json +0 -29
- package/rulesets/adr/generated/adr-0055-microfrontends-architecture-strategy.rules.json +0 -28
- package/rulesets/adr/generated/adr-0056-enterprise-naming-design-conventions-multi-language-multi-pl.rules.json +0 -29
- package/rulesets/adr/generated/adr-0057-architecture-intelligence-catalog.rules.json +0 -27
- package/rulesets/adr/generated/adr-0058-ai-consumable-architecture-knowledge.rules.json +0 -27
- package/rulesets/adr/generated/adr-0067-modular-monolith-persistence-boundaries.rules.json +0 -28
- package/rulesets/adr/generated/adr-0068-documentation-release-gitflow.rules.json +0 -29
- package/rulesets/adr/generated/adr-0069-ai-agent-context-protocol-integration.rules.json +0 -28
- package/rulesets/adr/generated/adr-0070-lean-root-repository-taxonomy.rules.json +0 -29
- package/rulesets/adr/generated/adr-0071-domain-layer-base-class-and-inheritance-strategy.rules.json +0 -29
- package/rulesets/adr/generated/adr-0072-utc-date-storage-browser-timezone-detection-and-language-res.rules.json +0 -29
- package/rulesets/adr/generated/adr-0073-unified-cli-mcp-output-contract-and-gate-evidence-schema.rules.json +0 -29
- package/rulesets/adr/generated/adr-0074-evolith-core-api-native-exposure-layer.rules.json +0 -29
- package/rulesets/adr/generated/adr-0075-core-api-authentication-strategy.rules.json +0 -28
- package/rulesets/adr/generated/adr-0076-domain-oriented-microservice-architecture-doma.rules.json +0 -28
- package/rulesets/adr/generated/adr-0077-masstransit-v9-commercial-pivot-stay-on-v8-monitor-opentrans.rules.json +0 -28
- package/rulesets/adr/generated/adr-0078-domain-financial-separation-governance.rules.json +0 -29
- package/rulesets/adr/generated/adr-0079-multi-topology-reference-corpus-and-topology-manifest-contra.rules.json +0 -29
- package/rulesets/adr/generated/adr-0080-remote-repository-reference-contract.rules.json +0 -29
- package/rulesets/adr/generated/adr-0081-agentic-ai-sandbox-isolation-boundary.rules.json +0 -29
- package/rulesets/adr/generated/adr-0082-agentic-ai-prompt-context-and-tool-trust-boundary.rules.json +0 -28
- package/rulesets/adr/generated/adr-0083-agentic-ai-action-authorization-and-audit.rules.json +0 -29
- package/rulesets/adr/generated/adr-0084-data-mesh-and-data-as-a-product.rules.json +0 -29
- package/rulesets/adr/generated/adr-0085-agnostic-opa-wasm-distribution-architecture.rules.json +0 -28
- package/rulesets/adr/generated/adr-0086-agentic-ai-telemetry-cost-control-standard.rules.json +0 -27
- package/rulesets/adr/generated/adr-0087-attribute-based-access-control-abac-for-agentic-tool-executi.rules.json +0 -29
- package/rulesets/adr/generated/adr-0088-sovereign-identity-for-agentic-ai.rules.json +0 -29
- package/rulesets/adr/generated/adr-0089-event-driven-agentic-workflow-pattern.rules.json +0 -28
- package/rulesets/adr/generated/adr-0090-rag-knowledge-governance-standard.rules.json +0 -29
- package/rulesets/adr/generated/adr-0091-workload-identity-token-rotation-standard.rules.json +0 -29
- package/rulesets/adr/generated/adr-0092-agent-infinite-loop-prevention-and-circuit-breaker-rules.rules.json +0 -29
- package/rulesets/adr/generated/adr-0093-concurrency-control-and-resource-locking-standard-for-mcp-to.rules.json +0 -29
- package/rulesets/adr/generated/adr-0094-multi-agent-handoff-and-task-delegation-standards.rules.json +0 -29
- package/rulesets/adr/generated/adr-0095-serverless-architecture-governance.rules.json +0 -29
- package/rulesets/adr/generated/adr-0096-edge-computing-architecture-governance.rules.json +0 -29
- package/rulesets/adr/generated/adr-0097-knowledge-lifecycle-governance-standard.rules.json +0 -29
- package/rulesets/adr/generated/adr-0098-rest-uri-versioning-and-deprecation-policy.rules.json +0 -29
- package/rulesets/adr/generated/adr-0099-opa-bundle-distribution-via-s3-minio.rules.json +0 -27
- package/rulesets/adr/generated/adr-ai-augmented-0001-harness-engineering-for-ai-augmented-development.rules.json +0 -29
- package/rulesets/adr/generated/adr-ai-augmented-0002-mcp-integration-protocol-for-agent-tool-invocation.rules.json +0 -29
- package/rulesets/adr/generated/adr-ai-augmented-0003-model-selection-governance-for-ai-augmented-workflows.rules.json +0 -29
- package/rulesets/adr/generated/adr-ai-augmented-0004-agents-md-as-mandatory-repository-artifact.rules.json +0 -29
- package/rulesets/adr/generated/adr-ai-augmented-0005-human-in-the-loop-policy-for-autonomous-agent-operations.rules.json +0 -29
- package/rulesets/adr/generated/adr-android-0042-canonical-android-native-mobile-architecture.rules.json +0 -29
- package/rulesets/adr/generated/adr-dotnet-0041-canonical-net-c-backend-architecture.rules.json +0 -29
- package/rulesets/adr/generated/adr-dotnet-0060-net-multi-tenancy-dual-layer-strategy-ef-core-sql-server.rules.json +0 -29
- package/rulesets/adr/generated/adr-dotnet-0061-transactional-event-lifecycle-in-ef-core.rules.json +0 -28
- package/rulesets/adr/generated/adr-dotnet-0062-net-immutable-audit-trail-via-ddl-triggers-delta-capture.rules.json +0 -29
- package/rulesets/adr/generated/adr-dotnet-0063-b2b-request-idempotency-middleware-in-asp-net-core.rules.json +0 -28
- package/rulesets/adr/generated/adr-dotnet-0064-net-request-scope-observability-context-propagation.rules.json +0 -29
- package/rulesets/adr/generated/adr-dotnet-0065-net-pii-safe-structured-logging-pipeline-serilog.rules.json +0 -29
- package/rulesets/adr/generated/adr-dotnet-0066-net-lightweight-http-idempotency-via-imemorycache-idistribut.rules.json +0 -28
- package/rulesets/adr/generated/adr-dotnet-0069-net-grpc-service-setup-protobuf-contracts.rules.json +0 -29
- package/rulesets/adr/generated/adr-dotnet-0070-net-api-endpoint-strategy.rules.json +0 -29
- package/rulesets/adr/generated/adr-dotnet-0071-net-data-access-strategy-ef-core-as-default-orm-dapper-for-o.rules.json +0 -27
- package/rulesets/adr/generated/adr-dotnet-0072-net-aop-cross-cutting-concern-strategy-dispatchproxy-over-pi.rules.json +0 -29
- package/rulesets/adr/generated/adr-nodejs-0003-strict-typescript-standards.rules.json +0 -29
- package/rulesets/adr/generated/adr-nodejs-0004-frontend-offline-resilience.rules.json +0 -28
- package/rulesets/adr/generated/adr-nodejs-0007-observability-with-opentelemetry-loki-and-jaeger.rules.json +0 -29
- package/rulesets/adr/generated/adr-nodejs-0008-progressive-multi-module-evolution-with-api-gateway-and-bff-.rules.json +0 -28
- package/rulesets/adr/generated/adr-nodejs-0012-advanced-authorization-rbac-abac-strategy.rules.json +0 -28
- package/rulesets/adr/generated/adr-nodejs-0021-high-performance-authentication-graph-compilation.rules.json +0 -28
- package/rulesets/adr/generated/adr-nodejs-0022-contextual-authentication-and-pluggable-output-projections.rules.json +0 -28
- package/rulesets/adr/generated/adr-nodejs-0023-centralized-authorization-core-strategy.rules.json +0 -28
- package/rulesets/adr/generated/adr-nodejs-0026-adaptive-mfa-and-passwordless-platform.rules.json +0 -28
- package/rulesets/adr/generated/adr-nodejs-0027-dual-protocol-api-strategy-rest-grpc.rules.json +0 -28
- package/rulesets/adr/generated/adr-nodejs-0029-adoption-of-tactical-ddd-primitives-library.rules.json +0 -29
- package/rulesets/adr/generated/adr-nodejs-0038-enterprise-error-handling-result-pattern-strategy.rules.json +0 -29
- package/rulesets/adr/generated/adr-nodejs-0043-data-access-and-orm-strategy-for-node-js.rules.json +0 -29
- package/rulesets/adr/generated/adr-nodejs-0044-frontend-clean-architecture-layer-boundaries-react.rules.json +0 -29
- package/rulesets/adr/generated/adr-nodejs-0045-frontend-state-management-zustand-tanstack-query-dual-strate.rules.json +0 -29
- package/rulesets/adr/generated/adr-nodejs-0046-prohibition-of-raw-technical-identifiers-in-user-interfaces.rules.json +0 -29
- package/rulesets/adr/generated/adr-nodejs-0047-actionable-user-error-contract-and-correlated-diagnostics.rules.json +0 -29
- package/rulesets/adr/generated/adr-nodejs-0048-feature-flag-system-scope-and-structured-criteria-model.rules.json +0 -29
- package/rulesets/adr/generated/adr-nodejs-0074-monorepo-orchestration-with-nx.rules.json +0 -29
- package/rulesets/adr/generated/adr-nodejs-0075-application-gateway-bff-with-nestjs.rules.json +0 -29
- package/rulesets/architecture/README.es.md +0 -21
- package/rulesets/architecture/README.md +0 -21
- package/rulesets/architecture/opa/progressive-axis.rego +0 -50
- package/rulesets/cli/README.es.md +0 -17
- package/rulesets/cli/README.md +0 -17
- package/rulesets/cli/core-parity.rules.json +0 -61
- package/rulesets/cli/release-readiness.rules.json +0 -77
- package/rulesets/compliance-baseline/README.es.md +0 -26
- package/rulesets/compliance-baseline/README.md +0 -26
- package/rulesets/compliance-baseline/compliance-baseline.rules.json +0 -81
- package/rulesets/contracts/README.es.md +0 -19
- package/rulesets/contracts/README.md +0 -19
- package/rulesets/contracts/evolith-machine-contracts.json +0 -29
- package/rulesets/contracts/fixtures/gate-evidence.success.json +0 -10
- package/rulesets/contracts/fixtures/output-envelope.success.json +0 -23
- package/rulesets/cross-cutting/README.es.md +0 -14
- package/rulesets/cross-cutting/README.md +0 -14
- package/rulesets/cross-cutting/compliance-baseline.rules.json +0 -81
- package/rulesets/cross-cutting/definition-of-done.rules.json +0 -135
- package/rulesets/cross-cutting/engineering-manifesto.rules.json +0 -145
- package/rulesets/cross-cutting/repository-taxonomy.rules.json +0 -172
- package/rulesets/definition-of-done/README.es.md +0 -26
- package/rulesets/definition-of-done/README.md +0 -26
- package/rulesets/definition-of-done/definition-of-done.rules.json +0 -135
- package/rulesets/engineering-manifesto/README.es.md +0 -26
- package/rulesets/engineering-manifesto/README.md +0 -26
- package/rulesets/engineering-manifesto/engineering-manifesto.rules.json +0 -145
- package/rulesets/evidence/README.es.md +0 -12
- package/rulesets/evidence/README.md +0 -12
- package/rulesets/evidence/evidence-manifest.rules.json +0 -48
- package/rulesets/executive-scorecards/executive-scorecards.rules.es.json +0 -213
- package/rulesets/executive-scorecards/executive-scorecards.rules.json +0 -213
- package/rulesets/governance/README.es.md +0 -13
- package/rulesets/governance/README.md +0 -13
- package/rulesets/governance/abac-mcp-access.rules.es.json +0 -41
- package/rulesets/governance/abac-mcp-access.rules.json +0 -41
- package/rulesets/governance/executive-scorecards.rules.es.json +0 -213
- package/rulesets/governance/executive-scorecards.rules.json +0 -213
- package/rulesets/governance/inheritance.rules.json +0 -115
- package/rulesets/governance/knowledge-intake.rules.json +0 -18
- package/rulesets/governance/open-core-boundary.rules.es.json +0 -148
- package/rulesets/governance/open-core-boundary.rules.json +0 -148
- package/rulesets/governance/satellite-contracts.rules.json +0 -183
- package/rulesets/infrastructure/helm-enforcement.rules.json +0 -21
- package/rulesets/infrastructure/opa/helm-enforcement.rego +0 -25
- package/rulesets/infrastructure/opa/helm-enforcement.test.rego +0 -31
- package/rulesets/infrastructure/opa/opa-sidecar-bundle.rego +0 -115
- package/rulesets/infrastructure/opa/opa-sidecar-bundle.test.rego +0 -66
- package/rulesets/infrastructure/opa-sidecar-bundle.rules.json +0 -18
- package/rulesets/mcp/README.es.md +0 -12
- package/rulesets/mcp/README.md +0 -12
- package/rulesets/mcp/protocol-compliance.rules.json +0 -57
- package/rulesets/observability/README.es.md +0 -12
- package/rulesets/observability/README.md +0 -12
- package/rulesets/observability/telemetry-evidence.rules.json +0 -48
- package/rulesets/opa/README.es.md +0 -22
- package/rulesets/opa/README.md +0 -22
- package/rulesets/opa/abac-mcp-tool-access.rego +0 -122
- package/rulesets/opa/abac-mcp-tool-access.test.rego +0 -33
- package/rulesets/opa/anti-corruption-layer.rego +0 -39
- package/rulesets/opa/anti-corruption-layer.test.rego +0 -118
- package/rulesets/opa/ci-cd.rego +0 -41
- package/rulesets/opa/ci-cd.test.rego +0 -23
- package/rulesets/opa/cicd-quality-gates.rego +0 -29
- package/rulesets/opa/cicd-quality-gates.test.rego +0 -54
- package/rulesets/opa/cli-core-parity.rego +0 -17
- package/rulesets/opa/cli-core-parity.test.rego +0 -39
- package/rulesets/opa/cli-readiness.rego +0 -32
- package/rulesets/opa/cli-readiness.test.rego +0 -23
- package/rulesets/opa/cli-release-readiness.rego +0 -21
- package/rulesets/opa/cli-release-readiness.test.rego +0 -46
- package/rulesets/opa/compliance-baseline.rego +0 -95
- package/rulesets/opa/compliance-baseline.test.rego +0 -89
- package/rulesets/opa/dod.rego +0 -42
- package/rulesets/opa/dod.test.rego +0 -250
- package/rulesets/opa/engineering-manifesto.rego +0 -78
- package/rulesets/opa/engineering-manifesto.test.rego +0 -133
- package/rulesets/opa/evidence.rego +0 -64
- package/rulesets/opa/evidence.test.rego +0 -23
- package/rulesets/opa/executive-scorecards.rego +0 -41
- package/rulesets/opa/executive-scorecards.test.rego +0 -60
- package/rulesets/opa/gitflow-branching.rego +0 -41
- package/rulesets/opa/gitflow-branching.test.rego +0 -60
- package/rulesets/opa/governance.rego +0 -39
- package/rulesets/opa/governance.test.rego +0 -23
- package/rulesets/opa/hexagonal-architecture.rego +0 -33
- package/rulesets/opa/hexagonal-architecture.test.rego +0 -57
- package/rulesets/opa/infrastructure/helm-enforcement.rego +0 -33
- package/rulesets/opa/infrastructure/opa-sidecar-bundle.rego +0 -42
- package/rulesets/opa/knowledge-intake.rego +0 -98
- package/rulesets/opa/knowledge-intake.test.rego +0 -50
- package/rulesets/opa/main.rego +0 -147
- package/rulesets/opa/main_test.rego +0 -149
- package/rulesets/opa/mcp.rego +0 -61
- package/rulesets/opa/mcp.test.rego +0 -27
- package/rulesets/opa/multi-runtime.rego +0 -33
- package/rulesets/opa/multi-runtime.test.rego +0 -53
- package/rulesets/opa/multi-tenancy.rego +0 -33
- package/rulesets/opa/multi-tenancy.test.rego +0 -53
- package/rulesets/opa/open-core-boundary.rego +0 -33
- package/rulesets/opa/open-core-boundary.test.rego +0 -60
- package/rulesets/opa/protocol-selection.rego +0 -29
- package/rulesets/opa/protocol-selection.test.rego +0 -46
- package/rulesets/opa/rbac/gate-role-enforcement.rego +0 -112
- package/rulesets/opa/repository-taxonomy.rego +0 -98
- package/rulesets/opa/repository-taxonomy.test.rego +0 -91
- package/rulesets/opa/satellite-contracts.rego +0 -42
- package/rulesets/opa/satellite-contracts.test.rego +0 -70
- package/rulesets/opa/schemas/abac-mcp-tool-access.input.schema.json +0 -21
- package/rulesets/opa/schemas/anti-corruption-layer.input.schema.json +0 -25
- package/rulesets/opa/schemas/ci-cd.input.schema.json +0 -27
- package/rulesets/opa/schemas/cicd-quality-gates.input.schema.json +0 -33
- package/rulesets/opa/schemas/cli-core-parity.input.schema.json +0 -30
- package/rulesets/opa/schemas/cli-readiness.input.schema.json +0 -28
- package/rulesets/opa/schemas/cli-release-readiness.input.schema.json +0 -26
- package/rulesets/opa/schemas/compliance-baseline.input.schema.json +0 -25
- package/rulesets/opa/schemas/dod.input.schema.json +0 -38
- package/rulesets/opa/schemas/engineering-manifesto.input.schema.json +0 -24
- package/rulesets/opa/schemas/evidence.input.schema.json +0 -35
- package/rulesets/opa/schemas/executive-scorecards.input.schema.json +0 -36
- package/rulesets/opa/schemas/gitflow-branching.input.schema.json +0 -36
- package/rulesets/opa/schemas/governance.input.schema.json +0 -19
- package/rulesets/opa/schemas/hexagonal-architecture.input.schema.json +0 -46
- package/rulesets/opa/schemas/knowledge-intake.input.schema.json +0 -57
- package/rulesets/opa/schemas/mcp.input.schema.json +0 -38
- package/rulesets/opa/schemas/multi-runtime.input.schema.json +0 -27
- package/rulesets/opa/schemas/multi-tenancy.input.schema.json +0 -27
- package/rulesets/opa/schemas/open-core-boundary.input.schema.json +0 -36
- package/rulesets/opa/schemas/protocol-selection.input.schema.json +0 -26
- package/rulesets/opa/schemas/repository-taxonomy.input.schema.json +0 -18
- package/rulesets/opa/schemas/satellite-contracts.input.schema.json +0 -38
- package/rulesets/opa/schemas/taxonomy.input.schema.json +0 -27
- package/rulesets/opa/schemas/testing-pyramid.input.schema.json +0 -42
- package/rulesets/opa/schemas/version-pinning.input.schema.json +0 -39
- package/rulesets/opa/sdlc/coverage.rego +0 -49
- package/rulesets/opa/sdlc/coverage.test.rego +0 -29
- package/rulesets/opa/sdlc/pyramid-distribution.rego +0 -31
- package/rulesets/opa/sdlc/pyramid-distribution.test.rego +0 -33
- package/rulesets/opa/taxonomy.rego +0 -51
- package/rulesets/opa/taxonomy.test.rego +0 -28
- package/rulesets/opa/telemetry-evidence.rego +0 -102
- package/rulesets/opa/testing-pyramid.rego +0 -49
- package/rulesets/opa/testing-pyramid.test.rego +0 -81
- package/rulesets/opa/version-pinning.rego +0 -99
- package/rulesets/opa/version-pinning.test.rego +0 -28
- package/rulesets/phase-gates/README.es.md +0 -28
- package/rulesets/phase-gates/README.md +0 -28
- package/rulesets/phase-gates/phase-gates.rules.json +0 -297
- package/rulesets/quality-thresholds/README.es.md +0 -28
- package/rulesets/quality-thresholds/README.md +0 -28
- package/rulesets/quality-thresholds/quality-thresholds.rules.json +0 -96
- package/rulesets/repository-taxonomy/README.es.md +0 -26
- package/rulesets/repository-taxonomy/README.md +0 -26
- package/rulesets/repository-taxonomy/repository-taxonomy.rules.json +0 -172
- package/rulesets/satellite-contracts/README.es.md +0 -27
- package/rulesets/satellite-contracts/README.md +0 -27
- package/rulesets/satellite-contracts/satellite-contracts.rules.json +0 -183
- package/rulesets/schema/README.es.md +0 -39
- package/rulesets/schema/README.md +0 -39
- package/rulesets/schema/adr.schema.json +0 -138
- package/rulesets/schema/agile-backlog.schema.json +0 -91
- package/rulesets/schema/ballpark-estimation.schema.json +0 -109
- package/rulesets/schema/build-vs-compose.schema.json +0 -98
- package/rulesets/schema/cli-impact-analysis.schema.json +0 -114
- package/rulesets/schema/discovery-canvas.schema.json +0 -92
- package/rulesets/schema/evolith-user-story.schema.json +0 -105
- package/rulesets/schema/evolith-yaml.schema.json +0 -191
- package/rulesets/schema/functional-story.schema.json +0 -111
- package/rulesets/schema/gate-evidence.schema.json +0 -85
- package/rulesets/schema/integration-evidence.schema.json +0 -47
- package/rulesets/schema/knowledge-intake.schema.json +0 -67
- package/rulesets/schema/knowledge-projection.schema.json +0 -24
- package/rulesets/schema/maturity-evidence.schema.json +0 -59
- package/rulesets/schema/observability-validation.schema.json +0 -85
- package/rulesets/schema/on-call-handoff.schema.json +0 -91
- package/rulesets/schema/output-envelope.schema.json +0 -102
- package/rulesets/schema/prd.schema.json +0 -117
- package/rulesets/schema/release-notes.schema.json +0 -138
- package/rulesets/schema/rollback-rehearsal.schema.json +0 -73
- package/rulesets/schema/ruleset-sdlc.schema.json +0 -59
- package/rulesets/schema/ruleset-standard.schema.json +0 -73
- package/rulesets/schema/security-scan-report.schema.json +0 -79
- package/rulesets/schema/source-registry.schema.json +0 -51
- package/rulesets/schema/technical-feasibility.schema.json +0 -66
- package/rulesets/schema/technical-story.schema.json +0 -112
- package/rulesets/schema/test-summary-report.schema.json +0 -158
- package/rulesets/schema/topology-composition.schema.json +0 -43
- package/rulesets/schema/topology-manifest.schema.json +0 -421
- package/rulesets/sdlc/README.es.md +0 -12
- package/rulesets/sdlc/README.md +0 -12
- package/rulesets/sdlc/default-workflow.yaml +0 -73
- package/rulesets/sdlc/dependency-pinning.rules.json +0 -183
- package/rulesets/sdlc/phase-gates.rules.json +0 -297
- package/rulesets/sdlc/quality-thresholds.rules.json +0 -96
- package/rulesets/topologies/README.es.md +0 -42
- package/rulesets/topologies/README.md +0 -42
- package/rulesets/topologies/agentic-ai/README.es.md +0 -142
- package/rulesets/topologies/agentic-ai/README.md +0 -142
- package/rulesets/topologies/agentic-ai/adoption.es.md +0 -37
- package/rulesets/topologies/agentic-ai/adoption.md +0 -37
- package/rulesets/topologies/agentic-ai/agent.config.schema.json +0 -100
- package/rulesets/topologies/agentic-ai/agentic-ai.rego +0 -46
- package/rulesets/topologies/agentic-ai/agentic-ai.rules.json +0 -109
- package/rulesets/topologies/agentic-ai/agentic-ai.test.rego +0 -68
- package/rulesets/topologies/agentic-ai/agentic-ai.wasm +0 -0
- package/rulesets/topologies/agentic-ai/cli/cli-flows.es.md +0 -35
- package/rulesets/topologies/agentic-ai/cli/cli-flows.md +0 -45
- package/rulesets/topologies/agentic-ai/evidence.es.md +0 -25
- package/rulesets/topologies/agentic-ai/evidence.md +0 -25
- package/rulesets/topologies/agentic-ai/evolution.es.md +0 -26
- package/rulesets/topologies/agentic-ai/evolution.md +0 -26
- package/rulesets/topologies/agentic-ai/fixtures/invalid-agent.config.json +0 -48
- package/rulesets/topologies/agentic-ai/fixtures/valid-agent.config.json +0 -48
- package/rulesets/topologies/agentic-ai/maturity.es.md +0 -33
- package/rulesets/topologies/agentic-ai/maturity.md +0 -33
- package/rulesets/topologies/agentic-ai/mcp/mcp-manifest.json +0 -100
- package/rulesets/topologies/agentic-ai/openapi/openapi.yaml +0 -187
- package/rulesets/topologies/agentic-ai/operations.es.md +0 -32
- package/rulesets/topologies/agentic-ai/operations.md +0 -32
- package/rulesets/topologies/agentic-ai/parity-fixtures/compliant.json +0 -18
- package/rulesets/topologies/agentic-ai/parity-fixtures/violation.json +0 -22
- package/rulesets/topologies/agentic-ai/patterns.es.md +0 -32
- package/rulesets/topologies/agentic-ai/patterns.md +0 -32
- package/rulesets/topologies/agentic-ai/resilience.es.md +0 -26
- package/rulesets/topologies/agentic-ai/resilience.md +0 -26
- package/rulesets/topologies/agentic-ai/runbooks.es.md +0 -48
- package/rulesets/topologies/agentic-ai/runbooks.md +0 -48
- package/rulesets/topologies/agentic-ai/security.es.md +0 -26
- package/rulesets/topologies/agentic-ai/security.md +0 -26
- package/rulesets/topologies/agentic-ai/topology.manifest.json +0 -127
- package/rulesets/topologies/data-mesh/README.es.md +0 -69
- package/rulesets/topologies/data-mesh/README.md +0 -69
- package/rulesets/topologies/data-mesh/adoption.es.md +0 -95
- package/rulesets/topologies/data-mesh/adoption.md +0 -95
- package/rulesets/topologies/data-mesh/cli/cli-flows.es.md +0 -41
- package/rulesets/topologies/data-mesh/cli/cli-flows.md +0 -53
- package/rulesets/topologies/data-mesh/data-mesh.rego +0 -11
- package/rulesets/topologies/data-mesh/data-mesh.rules.json +0 -100
- package/rulesets/topologies/data-mesh/data-mesh.test.rego +0 -107
- package/rulesets/topologies/data-mesh/data-mesh.wasm +0 -0
- package/rulesets/topologies/data-mesh/evidence.es.md +0 -111
- package/rulesets/topologies/data-mesh/evidence.md +0 -111
- package/rulesets/topologies/data-mesh/evolution.es.md +0 -67
- package/rulesets/topologies/data-mesh/evolution.md +0 -67
- package/rulesets/topologies/data-mesh/fixtures/invalid.topology.config.json +0 -12
- package/rulesets/topologies/data-mesh/fixtures/valid.topology.config.json +0 -12
- package/rulesets/topologies/data-mesh/maturity.es.md +0 -36
- package/rulesets/topologies/data-mesh/maturity.md +0 -36
- package/rulesets/topologies/data-mesh/mcp/mcp-manifest.json +0 -68
- package/rulesets/topologies/data-mesh/openapi/openapi.yaml +0 -186
- package/rulesets/topologies/data-mesh/operations.es.md +0 -63
- package/rulesets/topologies/data-mesh/operations.md +0 -63
- package/rulesets/topologies/data-mesh/parity-fixtures/compliant.json +0 -18
- package/rulesets/topologies/data-mesh/parity-fixtures/violation.json +0 -21
- package/rulesets/topologies/data-mesh/patterns.es.md +0 -67
- package/rulesets/topologies/data-mesh/patterns.md +0 -67
- package/rulesets/topologies/data-mesh/resilience.es.md +0 -64
- package/rulesets/topologies/data-mesh/resilience.md +0 -64
- package/rulesets/topologies/data-mesh/runbooks.es.md +0 -147
- package/rulesets/topologies/data-mesh/runbooks.md +0 -147
- package/rulesets/topologies/data-mesh/security.es.md +0 -66
- package/rulesets/topologies/data-mesh/security.md +0 -66
- package/rulesets/topologies/data-mesh/topology.config.schema.json +0 -30
- package/rulesets/topologies/data-mesh/topology.manifest.json +0 -107
- package/rulesets/topologies/edge-computing/README.es.md +0 -81
- package/rulesets/topologies/edge-computing/README.md +0 -81
- package/rulesets/topologies/edge-computing/adoption.es.md +0 -268
- package/rulesets/topologies/edge-computing/adoption.md +0 -268
- package/rulesets/topologies/edge-computing/cli/cli-flows.es.md +0 -41
- package/rulesets/topologies/edge-computing/cli/cli-flows.md +0 -53
- package/rulesets/topologies/edge-computing/edge-computing.rego +0 -41
- package/rulesets/topologies/edge-computing/edge-computing.rules.json +0 -50
- package/rulesets/topologies/edge-computing/edge-computing.test.rego +0 -33
- package/rulesets/topologies/edge-computing/edge-computing.wasm +0 -0
- package/rulesets/topologies/edge-computing/evidence.es.md +0 -263
- package/rulesets/topologies/edge-computing/evidence.md +0 -263
- package/rulesets/topologies/edge-computing/evolution.es.md +0 -257
- package/rulesets/topologies/edge-computing/evolution.md +0 -257
- package/rulesets/topologies/edge-computing/fixtures/invalid.topology.config.json +0 -6
- package/rulesets/topologies/edge-computing/fixtures/valid.topology.config.json +0 -6
- package/rulesets/topologies/edge-computing/maturity.es.md +0 -36
- package/rulesets/topologies/edge-computing/maturity.md +0 -36
- package/rulesets/topologies/edge-computing/mcp/mcp-manifest.json +0 -72
- package/rulesets/topologies/edge-computing/openapi/openapi.yaml +0 -187
- package/rulesets/topologies/edge-computing/operations.es.md +0 -148
- package/rulesets/topologies/edge-computing/operations.md +0 -148
- package/rulesets/topologies/edge-computing/parity-fixtures/compliant.json +0 -12
- package/rulesets/topologies/edge-computing/parity-fixtures/violation.json +0 -13
- package/rulesets/topologies/edge-computing/patterns.es.md +0 -291
- package/rulesets/topologies/edge-computing/patterns.md +0 -290
- package/rulesets/topologies/edge-computing/resilience.es.md +0 -232
- package/rulesets/topologies/edge-computing/resilience.md +0 -229
- package/rulesets/topologies/edge-computing/runbooks.es.md +0 -405
- package/rulesets/topologies/edge-computing/runbooks.md +0 -405
- package/rulesets/topologies/edge-computing/security.es.md +0 -218
- package/rulesets/topologies/edge-computing/security.md +0 -218
- package/rulesets/topologies/edge-computing/topology.config.schema.json +0 -13
- package/rulesets/topologies/edge-computing/topology.manifest.json +0 -113
- package/rulesets/topologies/event-driven/README.es.md +0 -71
- package/rulesets/topologies/event-driven/README.md +0 -71
- package/rulesets/topologies/event-driven/adoption.es.md +0 -67
- package/rulesets/topologies/event-driven/adoption.md +0 -67
- package/rulesets/topologies/event-driven/cli/cli-flows.es.md +0 -41
- package/rulesets/topologies/event-driven/cli/cli-flows.md +0 -53
- package/rulesets/topologies/event-driven/event-driven.rego +0 -11
- package/rulesets/topologies/event-driven/event-driven.rules.json +0 -100
- package/rulesets/topologies/event-driven/event-driven.test.rego +0 -107
- package/rulesets/topologies/event-driven/event-driven.wasm +0 -0
- package/rulesets/topologies/event-driven/evidence.es.md +0 -69
- package/rulesets/topologies/event-driven/evidence.md +0 -69
- package/rulesets/topologies/event-driven/evolution.es.md +0 -59
- package/rulesets/topologies/event-driven/evolution.md +0 -59
- package/rulesets/topologies/event-driven/fixtures/invalid.topology.config.json +0 -12
- package/rulesets/topologies/event-driven/fixtures/valid.topology.config.json +0 -12
- package/rulesets/topologies/event-driven/maturity.es.md +0 -36
- package/rulesets/topologies/event-driven/maturity.md +0 -36
- package/rulesets/topologies/event-driven/mcp/mcp-manifest.json +0 -68
- package/rulesets/topologies/event-driven/openapi/openapi.yaml +0 -186
- package/rulesets/topologies/event-driven/operations.es.md +0 -67
- package/rulesets/topologies/event-driven/operations.md +0 -67
- package/rulesets/topologies/event-driven/parity-fixtures/compliant.json +0 -18
- package/rulesets/topologies/event-driven/parity-fixtures/violation.json +0 -21
- package/rulesets/topologies/event-driven/patterns.es.md +0 -68
- package/rulesets/topologies/event-driven/patterns.md +0 -68
- package/rulesets/topologies/event-driven/resilience.es.md +0 -65
- package/rulesets/topologies/event-driven/resilience.md +0 -65
- package/rulesets/topologies/event-driven/runbooks.es.md +0 -79
- package/rulesets/topologies/event-driven/runbooks.md +0 -79
- package/rulesets/topologies/event-driven/security.es.md +0 -59
- package/rulesets/topologies/event-driven/security.md +0 -59
- package/rulesets/topologies/event-driven/topology.config.schema.json +0 -30
- package/rulesets/topologies/event-driven/topology.manifest.json +0 -109
- package/rulesets/topologies/progressive-axis/distributed-modules/distributed-modules.rules.es.json +0 -111
- package/rulesets/topologies/progressive-axis/distributed-modules/distributed-modules.rules.json +0 -111
- package/rulesets/topologies/progressive-axis/microservices/microservices.rules.es.json +0 -106
- package/rulesets/topologies/progressive-axis/microservices/microservices.rules.json +0 -106
- package/rulesets/topologies/progressive-axis/modular-monolith/modular-monolith.rules.es.json +0 -148
- package/rulesets/topologies/progressive-axis/modular-monolith/modular-monolith.rules.json +0 -148
- package/rulesets/topologies/serverless/README.es.md +0 -74
- package/rulesets/topologies/serverless/README.md +0 -74
- package/rulesets/topologies/serverless/adoption.es.md +0 -50
- package/rulesets/topologies/serverless/adoption.md +0 -50
- package/rulesets/topologies/serverless/cli/cli-flows.es.md +0 -41
- package/rulesets/topologies/serverless/cli/cli-flows.md +0 -53
- package/rulesets/topologies/serverless/evidence.es.md +0 -66
- package/rulesets/topologies/serverless/evidence.md +0 -66
- package/rulesets/topologies/serverless/evolution.es.md +0 -36
- package/rulesets/topologies/serverless/evolution.md +0 -36
- package/rulesets/topologies/serverless/fixtures/invalid.topology.config.json +0 -6
- package/rulesets/topologies/serverless/fixtures/valid.topology.config.json +0 -6
- package/rulesets/topologies/serverless/maturity.es.md +0 -36
- package/rulesets/topologies/serverless/maturity.md +0 -36
- package/rulesets/topologies/serverless/mcp/mcp-manifest.json +0 -72
- package/rulesets/topologies/serverless/openapi/openapi.yaml +0 -186
- package/rulesets/topologies/serverless/operations.es.md +0 -36
- package/rulesets/topologies/serverless/operations.md +0 -36
- package/rulesets/topologies/serverless/parity-fixtures/compliant.json +0 -13
- package/rulesets/topologies/serverless/parity-fixtures/violation.json +0 -15
- package/rulesets/topologies/serverless/patterns.es.md +0 -36
- package/rulesets/topologies/serverless/patterns.md +0 -36
- package/rulesets/topologies/serverless/resilience.es.md +0 -36
- package/rulesets/topologies/serverless/resilience.md +0 -36
- package/rulesets/topologies/serverless/runbooks.es.md +0 -68
- package/rulesets/topologies/serverless/runbooks.md +0 -68
- package/rulesets/topologies/serverless/security.es.md +0 -36
- package/rulesets/topologies/serverless/security.md +0 -36
- package/rulesets/topologies/serverless/serverless.rego +0 -32
- package/rulesets/topologies/serverless/serverless.rules.json +0 -33
- package/rulesets/topologies/serverless/serverless.test.rego +0 -28
- package/rulesets/topologies/serverless/serverless.wasm +0 -0
- package/rulesets/topologies/serverless/topology.config.schema.json +0 -28
- package/rulesets/topologies/serverless/topology.manifest.json +0 -114
|
@@ -1,183 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "../schema/ruleset-standard.schema.json",
|
|
3
|
-
"$id": "https://evolith.dev/rulesets/governance/satellite-contracts.rules.json",
|
|
4
|
-
"title": "Satellite Contract Rules",
|
|
5
|
-
"description": "Rules defining the required and optional structure of satellite evolith.yaml files. These contracts enable the federated governance model.",
|
|
6
|
-
"version": "1.0.0",
|
|
7
|
-
"effectiveDate": "2026-01-01",
|
|
8
|
-
"contractFields": {
|
|
9
|
-
"required": [
|
|
10
|
-
{
|
|
11
|
-
"field": "apiVersion",
|
|
12
|
-
"path": "$.apiVersion",
|
|
13
|
-
"type": "string",
|
|
14
|
-
"constraint": "Must be 'evolith.dev/v1'",
|
|
15
|
-
"rationale": "API version enables future governance format evolution without breaking existing satellites."
|
|
16
|
-
},
|
|
17
|
-
{
|
|
18
|
-
"field": "kind",
|
|
19
|
-
"path": "$.kind",
|
|
20
|
-
"type": "string",
|
|
21
|
-
"constraint": "Must be 'Satellite'",
|
|
22
|
-
"rationale": "Kind distinguishes Evolith resources (Satellite, Policy, Standard) in the same repository."
|
|
23
|
-
},
|
|
24
|
-
{
|
|
25
|
-
"field": "metadata.name",
|
|
26
|
-
"path": "$.metadata.name",
|
|
27
|
-
"type": "string",
|
|
28
|
-
"constraint": "kebab-case, lowercase, alphanumeric + hyphens only",
|
|
29
|
-
"rationale": "Name is the satellite's identity in governance tooling and Architecture Board communications."
|
|
30
|
-
},
|
|
31
|
-
{
|
|
32
|
-
"field": "metadata.phase",
|
|
33
|
-
"path": "$.metadata.phase",
|
|
34
|
-
"type": "string",
|
|
35
|
-
"constraint": "Must be F1, F2, or F3",
|
|
36
|
-
"rationale": "Phase determines which architecture rules apply. F1 is mandatory starting point unless exception approved."
|
|
37
|
-
},
|
|
38
|
-
{
|
|
39
|
-
"field": "metadata.architectureVersion",
|
|
40
|
-
"path": "$.metadata.architectureVersion",
|
|
41
|
-
"type": "string",
|
|
42
|
-
"constraint": "semver format",
|
|
43
|
-
"rationale": "Tracks architectural evolution of the satellite independently of product version."
|
|
44
|
-
},
|
|
45
|
-
{
|
|
46
|
-
"field": "spec.coreRef.version",
|
|
47
|
-
"path": "$.spec.coreRef.version",
|
|
48
|
-
"type": "string",
|
|
49
|
-
"constraint": "semver format, must reference existing Evolith Core version",
|
|
50
|
-
"rationale": "Core version pin ensures reproducible governance validation."
|
|
51
|
-
},
|
|
52
|
-
{
|
|
53
|
-
"field": "spec.coreRef.rulesetVersion",
|
|
54
|
-
"path": "$.spec.coreRef.rulesetVersion",
|
|
55
|
-
"type": "string",
|
|
56
|
-
"constraint": "semver format",
|
|
57
|
-
"rationale": "Ruleset version allows Core to publish rule updates without bumping full Core version."
|
|
58
|
-
},
|
|
59
|
-
{
|
|
60
|
-
"field": "spec.runtime.language",
|
|
61
|
-
"path": "$.spec.runtime.language",
|
|
62
|
-
"type": "string",
|
|
63
|
-
"constraint": "Must be one of: TypeScript, CSharp, Kotlin, Go, Python",
|
|
64
|
-
"rationale": "Runtime language determines which runtime-specific ADRs and patterns apply."
|
|
65
|
-
},
|
|
66
|
-
{
|
|
67
|
-
"field": "spec.runtime.framework",
|
|
68
|
-
"path": "$.spec.runtime.framework",
|
|
69
|
-
"type": "string",
|
|
70
|
-
"rationale": "Framework identifies the specific framework (NestJS, ASP.NET Core, Spring Boot) for pattern enforcement."
|
|
71
|
-
},
|
|
72
|
-
{
|
|
73
|
-
"field": "spec.sdlc.currentPhase",
|
|
74
|
-
"path": "$.spec.sdlc.currentPhase",
|
|
75
|
-
"type": "integer",
|
|
76
|
-
"constraint": "Must be 1, 2, 3, 4, or 5",
|
|
77
|
-
"rationale": "SDLC phase determines which gate rules and artifact requirements apply."
|
|
78
|
-
}
|
|
79
|
-
],
|
|
80
|
-
"optional": [
|
|
81
|
-
{
|
|
82
|
-
"field": "spec.coreRef.inheritancePath",
|
|
83
|
-
"path": "$.spec.coreRef.inheritancePath",
|
|
84
|
-
"type": "array",
|
|
85
|
-
"description": "Chain of inheritance if satellite extends another satellite",
|
|
86
|
-
"default": "[]"
|
|
87
|
-
},
|
|
88
|
-
{
|
|
89
|
-
"field": "spec.runtime.runtimeVersion",
|
|
90
|
-
"path": "$.spec.runtime.runtimeVersion",
|
|
91
|
-
"type": "string",
|
|
92
|
-
"description": "Runtime version (e.g., Node 20, .NET 8)"
|
|
93
|
-
},
|
|
94
|
-
{
|
|
95
|
-
"field": "spec.sdlc.gates",
|
|
96
|
-
"path": "$.spec.sdlc.gates",
|
|
97
|
-
"type": "object",
|
|
98
|
-
"description": "Gate completion dates for traceability"
|
|
99
|
-
},
|
|
100
|
-
{
|
|
101
|
-
"field": "spec.boundedContexts",
|
|
102
|
-
"path": "$.spec.boundedContexts",
|
|
103
|
-
"type": "array",
|
|
104
|
-
"description": "List of bounded contexts in this satellite"
|
|
105
|
-
},
|
|
106
|
-
{
|
|
107
|
-
"field": "spec.compliance.adrRegistry",
|
|
108
|
-
"path": "$.spec.compliance.adrRegistry",
|
|
109
|
-
"type": "array",
|
|
110
|
-
"description": "Local ADRs maintained by this satellite"
|
|
111
|
-
},
|
|
112
|
-
{
|
|
113
|
-
"field": "spec.compliance.coverageTarget",
|
|
114
|
-
"path": "$.spec.compliance.coverageTarget",
|
|
115
|
-
"type": "number",
|
|
116
|
-
"description": "Coverage target (minimum 80)"
|
|
117
|
-
},
|
|
118
|
-
{
|
|
119
|
-
"field": "spec.compliance.qualityWaivers",
|
|
120
|
-
"path": "$.spec.compliance.qualityWaivers",
|
|
121
|
-
"type": "array",
|
|
122
|
-
"description": "Active quality waivers with expiration dates"
|
|
123
|
-
}
|
|
124
|
-
]
|
|
125
|
-
},
|
|
126
|
-
"rules": [
|
|
127
|
-
{
|
|
128
|
-
"id": "SVC-01",
|
|
129
|
-
"title": "Satellite must have exactly one evolith.yaml in repository root",
|
|
130
|
-
"enforcement": "CLI validates single evolith.yaml at repo root. Nested evolith.yaml files are prohibited.",
|
|
131
|
-
"description": "CLI validates single evolith.yaml at repo root. Nested evolith.yaml files are prohibited."
|
|
132
|
-
},
|
|
133
|
-
{
|
|
134
|
-
"id": "SVC-02",
|
|
135
|
-
"title": "Satellite name must be unique across all Evolith satellites",
|
|
136
|
-
"enforcement": "CLI checks against Evolith satellite registry before allowing first push.",
|
|
137
|
-
"description": "CLI checks against Evolith satellite registry before allowing first push."
|
|
138
|
-
},
|
|
139
|
-
{
|
|
140
|
-
"id": "SVC-03",
|
|
141
|
-
"title": "F1 phase satellites must reference core/ADR-0047 in spec.compliance.adrRegistry",
|
|
142
|
-
"enforcement": "Satellites in F1 phase must include core/ADR-0047 confirming modular monolith starting point.",
|
|
143
|
-
"description": "Satellites in F1 phase must include core/ADR-0047 confirming modular monolith starting point."
|
|
144
|
-
},
|
|
145
|
-
{
|
|
146
|
-
"id": "SVC-04",
|
|
147
|
-
"title": "Satellites in F2 or F3 must have extraction readiness score documented",
|
|
148
|
-
"enforcement": "Satellites with phase F2 or F3 must have core/ADR-0045 assessment with score >= 70% (F2) or >= 80% (F3).",
|
|
149
|
-
"description": "Satellites with phase F2 or F3 must have core/ADR-0045 assessment with score >= 70% (F2) or >= 80% (F3)."
|
|
150
|
-
},
|
|
151
|
-
{
|
|
152
|
-
"id": "SVC-05",
|
|
153
|
-
"title": "Core version referenced must exist in Evolith Core registry",
|
|
154
|
-
"enforcement": "CLI validates coreRef.version against Evolith Core releases. Unknown versions trigger error.",
|
|
155
|
-
"description": "CLI validates coreRef.version against Evolith Core releases. Unknown versions trigger error."
|
|
156
|
-
}
|
|
157
|
-
],
|
|
158
|
-
"migrationRules": [
|
|
159
|
-
{
|
|
160
|
-
"id": "MIG-01",
|
|
161
|
-
"title": "Satellite can upgrade governance version via CLI upgrade command",
|
|
162
|
-
"command": "evolith upgrade --target-version <version>",
|
|
163
|
-
"description": "CLI automates version update, rule diff review, and CI validation"
|
|
164
|
-
},
|
|
165
|
-
{
|
|
166
|
-
"id": "MIG-02",
|
|
167
|
-
"title": "Phase transition (F1 → F2 → F3) requires Architecture Board approval artifact",
|
|
168
|
-
"description": "Phase transition is not automated. Board must review and explicitly approve before satellite updates metadata.phase"
|
|
169
|
-
},
|
|
170
|
-
{
|
|
171
|
-
"id": "MIG-03",
|
|
172
|
-
"title": "Satellite archival: satellite marks itself as Deprecated in evolith.yaml",
|
|
173
|
-
"description": "Deprecated satellites are retained for audit but no longer receive Core rule updates"
|
|
174
|
-
}
|
|
175
|
-
],
|
|
176
|
-
"reference": {
|
|
177
|
-
"evolithYamlSchema": "../schema/evolith-yaml.schema.json",
|
|
178
|
-
"inheritanceRules": "./inheritance.rules.json",
|
|
179
|
-
"f1Rules": "../../reference/architecture/topologies/progressive-axis/modular-monolith/modular-monolith.rules.json",
|
|
180
|
-
"f2Rules": "../../reference/architecture/topologies/progressive-axis/distributed-modules/distributed-modules.rules.json",
|
|
181
|
-
"f3Rules": "../../reference/architecture/topologies/progressive-axis/microservices/microservices.rules.json"
|
|
182
|
-
}
|
|
183
|
-
}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "../../schema/rule-definition.schema.json",
|
|
3
|
-
"id": "INFRA-001",
|
|
4
|
-
"category": "infrastructure",
|
|
5
|
-
"name": "Helm Charts Over Raw Manifests Enforcement",
|
|
6
|
-
"description": "Ensures that Kubernetes configurations use Helm charts (Chart.yaml) rather than raw standalone YAML manifests.",
|
|
7
|
-
"severity": "error",
|
|
8
|
-
"rationale": "Helm provides versioning, templating, and rollback capabilities which are required by ADR-0076 and the authoritative tech stack. Raw manifests lead to drift and duplication.",
|
|
9
|
-
"validation": {
|
|
10
|
-
"type": "file_pattern_ban",
|
|
11
|
-
"target": [
|
|
12
|
-
"reference/infrastructure/kubernetes/**/*.yaml"
|
|
13
|
-
],
|
|
14
|
-
"exclude": [
|
|
15
|
-
"reference/infrastructure/kubernetes/**/Chart.yaml",
|
|
16
|
-
"reference/infrastructure/kubernetes/**/values.yaml"
|
|
17
|
-
],
|
|
18
|
-
"message": "Raw Kubernetes YAML manifests are prohibited. Wrap your deployments in a Helm Chart.",
|
|
19
|
-
"opa_equivalent": "infrastructure/opa/helm-enforcement.rego"
|
|
20
|
-
}
|
|
21
|
-
}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
package evolith.infrastructure
|
|
2
|
-
|
|
3
|
-
import future.keywords.contains
|
|
4
|
-
import future.keywords.if
|
|
5
|
-
import future.keywords.in
|
|
6
|
-
|
|
7
|
-
# Default deny
|
|
8
|
-
default allow := false
|
|
9
|
-
|
|
10
|
-
# OPA rule to reject raw Kubernetes manifests that aren't part of a Helm chart.
|
|
11
|
-
# In a real setup, input would be the file paths or Kubernetes objects.
|
|
12
|
-
deny contains msg if {
|
|
13
|
-
some path in input.files
|
|
14
|
-
endswith(path, ".yaml")
|
|
15
|
-
contains(path, "reference/infrastructure/kubernetes/")
|
|
16
|
-
not endswith(path, "Chart.yaml")
|
|
17
|
-
not endswith(path, "values.yaml")
|
|
18
|
-
not contains(path, "templates/")
|
|
19
|
-
|
|
20
|
-
msg := sprintf("File %s is a raw Kubernetes manifest. Helm charts must be used (Chart.yaml and templates/).", [path])
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
allow if {
|
|
24
|
-
count(deny) == 0
|
|
25
|
-
}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
package evolith.infrastructure_test
|
|
2
|
-
|
|
3
|
-
import data.evolith.infrastructure
|
|
4
|
-
|
|
5
|
-
test_valid_helm_chart_is_allowed {
|
|
6
|
-
infrastructure.allow with input as {"files": ["Chart.yaml", "values.yaml", "templates/deployment.yaml"]}
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
test_empty_file_list_is_allowed {
|
|
10
|
-
infrastructure.allow with input as {"files": []}
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
test_raw_k8s_manifest_is_denied {
|
|
14
|
-
count(infrastructure.deny) > 0 with input as {"files": ["reference/infrastructure/kubernetes/deploy.yaml"]}
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
test_file_in_templates_is_allowed {
|
|
18
|
-
infrastructure.allow with input as {"files": ["templates/service.yaml"]}
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
test_chart_yaml_is_allowed {
|
|
22
|
-
infrastructure.allow with input as {"files": ["Chart.yaml"]}
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
test_values_yaml_is_allowed {
|
|
26
|
-
infrastructure.allow with input as {"files": ["values.yaml"]}
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
test_non_k8s_yaml_is_allowed {
|
|
30
|
-
infrastructure.allow with input as {"files": ["README.yaml"]}
|
|
31
|
-
}
|
|
@@ -1,115 +0,0 @@
|
|
|
1
|
-
package evolith.infrastructure.opa_sidecar_bundle
|
|
2
|
-
|
|
3
|
-
import future.keywords.contains
|
|
4
|
-
import future.keywords.if
|
|
5
|
-
import future.keywords.in
|
|
6
|
-
|
|
7
|
-
default allow := false
|
|
8
|
-
|
|
9
|
-
valid_algorithms := {"RS256", "ES256", "HS256"}
|
|
10
|
-
|
|
11
|
-
deny contains msg if {
|
|
12
|
-
some chart in input.charts
|
|
13
|
-
not startswith(chart.bundle.url, "https://")
|
|
14
|
-
msg := sprintf("%s OPA bundle endpoint must use https://", [chart.name])
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
deny contains msg if {
|
|
18
|
-
some chart in input.charts
|
|
19
|
-
chart.bundle.resource == ""
|
|
20
|
-
msg := sprintf("%s OPA bundle resource must be explicit", [chart.name])
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
deny contains msg if {
|
|
24
|
-
some chart in input.charts
|
|
25
|
-
not regex.match("^sha256:[a-f0-9]{64}$", chart.bundle.expectedSha256)
|
|
26
|
-
msg := sprintf("%s OPA bundle expectedSha256 must be a sha256:<64 hex> digest", [chart.name])
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
deny contains msg if {
|
|
30
|
-
some chart in input.charts
|
|
31
|
-
chart.bundle.credentials.existingSecretName == ""
|
|
32
|
-
msg := sprintf("%s OPA bundle credentials must come from a Kubernetes secret", [chart.name])
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
deny contains msg if {
|
|
36
|
-
some chart in input.charts
|
|
37
|
-
chart.bundle.credentials.regionKey == ""
|
|
38
|
-
msg := sprintf("%s OPA bundle credentials must include AWS_REGION for S3 signing", [chart.name])
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
deny contains msg if {
|
|
42
|
-
some chart in input.charts
|
|
43
|
-
not chart.bundle.signing.enabled
|
|
44
|
-
msg := sprintf("%s OPA bundle signature verification must be enabled", [chart.name])
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
deny contains msg if {
|
|
48
|
-
some chart in input.charts
|
|
49
|
-
chart.bundle.signing.existingSecretName == ""
|
|
50
|
-
msg := sprintf("%s OPA bundle signing public key must come from a Kubernetes secret", [chart.name])
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
deny contains msg if {
|
|
54
|
-
some chart in input.charts
|
|
55
|
-
not chart.bundle.signing.algorithm in valid_algorithms
|
|
56
|
-
msg := sprintf("%s OPA bundle signing algorithm is unsupported", [chart.name])
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
deny contains msg if {
|
|
60
|
-
some chart in input.charts
|
|
61
|
-
chart.bundle.signing.keyId == ""
|
|
62
|
-
msg := sprintf("%s OPA bundle signing keyId must be explicit", [chart.name])
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
deny contains msg if {
|
|
66
|
-
some chart in input.charts
|
|
67
|
-
not chart.bundle.readinessFailClosed
|
|
68
|
-
msg := sprintf("%s OPA sidecar readiness must fail closed on bundle activation", [chart.name])
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
deny contains msg if {
|
|
72
|
-
some chart in input.charts
|
|
73
|
-
not chart.rendered.hasConfigFileArg
|
|
74
|
-
msg := sprintf("%s OPA sidecar must load config.yaml through --config-file", [chart.name])
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
deny contains msg if {
|
|
78
|
-
some chart in input.charts
|
|
79
|
-
not chart.rendered.hasSigningKeyFileArg
|
|
80
|
-
msg := sprintf("%s OPA sidecar must load the signing public key with --set-file", [chart.name])
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
deny contains msg if {
|
|
84
|
-
some chart in input.charts
|
|
85
|
-
not chart.rendered.hasCredentialsEnv
|
|
86
|
-
msg := sprintf("%s OPA sidecar must expose S3 credentials from secret-backed environment variables", [chart.name])
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
deny contains msg if {
|
|
90
|
-
some chart in input.charts
|
|
91
|
-
not chart.rendered.hasDigestEnv
|
|
92
|
-
msg := sprintf("%s OPA sidecar must expose the expected bundle digest", [chart.name])
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
deny contains msg if {
|
|
96
|
-
some chart in input.charts
|
|
97
|
-
not chart.rendered.hasFailClosedReadiness
|
|
98
|
-
msg := sprintf("%s OPA sidecar must render /health?bundles readiness", [chart.name])
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
deny contains msg if {
|
|
102
|
-
some chart in input.charts
|
|
103
|
-
not chart.rendered.config.credentialsFromEnvironment
|
|
104
|
-
msg := sprintf("%s OPA config must enable s3_signing.environment_credentials", [chart.name])
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
deny contains msg if {
|
|
108
|
-
some chart in input.charts
|
|
109
|
-
chart.rendered.config.signingKeyId != chart.bundle.signing.keyId
|
|
110
|
-
msg := sprintf("%s OPA config signing keyid must match values", [chart.name])
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
allow if {
|
|
114
|
-
count(deny) == 0
|
|
115
|
-
}
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
package evolith.infrastructure.opa_sidecar_bundle
|
|
2
|
-
|
|
3
|
-
import future.keywords.if
|
|
4
|
-
import future.keywords.in
|
|
5
|
-
|
|
6
|
-
valid_chart := {
|
|
7
|
-
"name": "evolith-bff",
|
|
8
|
-
"bundle": {
|
|
9
|
-
"url": "https://ums-minio.ums-system.svc.cluster.local:9000",
|
|
10
|
-
"resource": "opa-bundles/bundle.tar.gz",
|
|
11
|
-
"expectedSha256": "sha256:7bffa731a4b3dfde851d0a2ee50a5bd654f8e2413ec4bb7f668a39550f9d42f7",
|
|
12
|
-
"credentials": {
|
|
13
|
-
"existingSecretName": "opa-bundle-credentials",
|
|
14
|
-
"regionKey": "AWS_REGION",
|
|
15
|
-
},
|
|
16
|
-
"signing": {
|
|
17
|
-
"enabled": true,
|
|
18
|
-
"existingSecretName": "opa-bundle-signing-key",
|
|
19
|
-
"keyId": "evolith-opa-bundle-rs256",
|
|
20
|
-
"algorithm": "RS256",
|
|
21
|
-
},
|
|
22
|
-
"readinessFailClosed": true,
|
|
23
|
-
},
|
|
24
|
-
"rendered": {
|
|
25
|
-
"hasConfigFileArg": true,
|
|
26
|
-
"hasSigningKeyFileArg": true,
|
|
27
|
-
"hasCredentialsEnv": true,
|
|
28
|
-
"hasDigestEnv": true,
|
|
29
|
-
"hasFailClosedReadiness": true,
|
|
30
|
-
"config": {
|
|
31
|
-
"credentialsFromEnvironment": true,
|
|
32
|
-
"signingKeyId": "evolith-opa-bundle-rs256",
|
|
33
|
-
},
|
|
34
|
-
},
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
test_valid_chart_allows if {
|
|
38
|
-
allow with input as {"charts": [valid_chart]}
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
test_http_endpoint_denied if {
|
|
42
|
-
invalid := object.union_n([
|
|
43
|
-
valid_chart,
|
|
44
|
-
{"bundle": object.union(valid_chart.bundle, {"url": "http://ums-minio:9000"})},
|
|
45
|
-
])
|
|
46
|
-
some msg in deny with input as {"charts": [invalid]}
|
|
47
|
-
contains(msg, "https://")
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
test_unsigned_bundle_denied if {
|
|
51
|
-
invalid := object.union_n([
|
|
52
|
-
valid_chart,
|
|
53
|
-
{"bundle": object.union(valid_chart.bundle, {"signing": object.union(valid_chart.bundle.signing, {"enabled": false})})},
|
|
54
|
-
])
|
|
55
|
-
some msg in deny with input as {"charts": [invalid]}
|
|
56
|
-
contains(msg, "signature verification")
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
test_missing_readiness_denied if {
|
|
60
|
-
invalid := object.union_n([
|
|
61
|
-
valid_chart,
|
|
62
|
-
{"rendered": object.union(valid_chart.rendered, {"hasFailClosedReadiness": false})},
|
|
63
|
-
])
|
|
64
|
-
some msg in deny with input as {"charts": [invalid]}
|
|
65
|
-
contains(msg, "/health?bundles")
|
|
66
|
-
}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "../schema/rule-definition.schema.json",
|
|
3
|
-
"id": "INFRA-OPA-001",
|
|
4
|
-
"category": "infrastructure",
|
|
5
|
-
"name": "OPA Sidecar Bundle Integrity",
|
|
6
|
-
"description": "Ensures Helm-based OPA sidecars fetch bundles from authenticated TLS endpoints, verify signed bundles, pin the expected bundle digest, and fail closed until bundle activation succeeds.",
|
|
7
|
-
"severity": "error",
|
|
8
|
-
"rationale": "OPA sidecars enforce executable governance at runtime. Unsigned or unauthenticated bundle distribution allows policy tampering and makes Native/OPA parity meaningful only in repository tests, not in deployed services.",
|
|
9
|
-
"validation": {
|
|
10
|
-
"type": "helm_opa_bundle_integrity",
|
|
11
|
-
"target": [
|
|
12
|
-
"reference/infrastructure/helm/evolith-bff",
|
|
13
|
-
"reference/infrastructure/helm/evolith-mcp"
|
|
14
|
-
],
|
|
15
|
-
"message": "OPA sidecar bundles must use HTTPS, Kubernetes secret-backed credentials, signed bundle verification, expected SHA-256 digest metadata, and fail-closed readiness.",
|
|
16
|
-
"opa_equivalent": "infrastructure/opa/opa-sidecar-bundle.rego"
|
|
17
|
-
}
|
|
18
|
-
}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
# Rulesets MCP
|
|
2
|
-
|
|
3
|
-
> **Navegación bilingüe:** [English version](./README.md)
|
|
4
|
-
|
|
5
|
-
Reglas para exposición del protocolo MCP de Evolith, comportamiento de transporte y contexto de gobernanza consumible por IA.
|
|
6
|
-
|
|
7
|
-
## Rulesets
|
|
8
|
-
|
|
9
|
-
| Ruleset | Propósito |
|
|
10
|
-
|---|---|
|
|
11
|
-
| [Cumplimiento del Protocolo MCP](./protocol-compliance.rules.json) | Define el comportamiento mínimo del protocolo para los transportes MCP soportados. |
|
|
12
|
-
|
package/rulesets/mcp/README.md
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
# MCP Rulesets
|
|
2
|
-
|
|
3
|
-
> **Bilingual navigation:** [Versión en Español](./README.es.md)
|
|
4
|
-
|
|
5
|
-
Rules for Evolith MCP protocol exposure, transport behavior, and AI-consumable governance context.
|
|
6
|
-
|
|
7
|
-
## Rulesets
|
|
8
|
-
|
|
9
|
-
| Ruleset | Purpose |
|
|
10
|
-
|---|---|
|
|
11
|
-
| [MCP Protocol Compliance](./protocol-compliance.rules.json) | Defines minimum protocol behavior for supported MCP transports. |
|
|
12
|
-
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "../schema/ruleset-standard.schema.json",
|
|
3
|
-
"$id": "https://evolith.dev/rulesets/mcp/protocol-compliance.rules.json",
|
|
4
|
-
"title": "MCP Protocol Compliance Rules",
|
|
5
|
-
"description": "Minimum behavior required for Evolith MCP server transports and handlers.",
|
|
6
|
-
"version": "1.0.0",
|
|
7
|
-
"effectiveDate": "2026-06-08",
|
|
8
|
-
"scope": "core-cli",
|
|
9
|
-
"category": "mcp",
|
|
10
|
-
"rules": [
|
|
11
|
-
{
|
|
12
|
-
"id": "MCP-01",
|
|
13
|
-
"severity": "MUST",
|
|
14
|
-
"category": "protocol",
|
|
15
|
-
"title": "Initialize Request Must Return Capabilities",
|
|
16
|
-
"description": "The MCP server MUST respond to initialize with protocolVersion, capabilities, and serverInfo.",
|
|
17
|
-
"validationQuery": "Send JSON-RPC initialize request and validate response shape.",
|
|
18
|
-
"blocking": true
|
|
19
|
-
},
|
|
20
|
-
{
|
|
21
|
-
"id": "MCP-02",
|
|
22
|
-
"severity": "MUST",
|
|
23
|
-
"category": "tools",
|
|
24
|
-
"title": "Tools List Must Be Complete and Stable",
|
|
25
|
-
"description": "tools/list MUST expose every supported tool with name, description, and inputSchema.",
|
|
26
|
-
"validationQuery": "Call tools/list and validate each tool descriptor.",
|
|
27
|
-
"blocking": true
|
|
28
|
-
},
|
|
29
|
-
{
|
|
30
|
-
"id": "MCP-03",
|
|
31
|
-
"severity": "MUST",
|
|
32
|
-
"category": "resources",
|
|
33
|
-
"title": "Resources Must Preserve Core Traceability",
|
|
34
|
-
"description": "resources/read responses MUST identify the Core artifact or ruleset source behind the returned context.",
|
|
35
|
-
"validationQuery": "Read representative resources and verify source traceability metadata or content path.",
|
|
36
|
-
"blocking": true
|
|
37
|
-
},
|
|
38
|
-
{
|
|
39
|
-
"id": "MCP-04",
|
|
40
|
-
"severity": "MUST",
|
|
41
|
-
"category": "security",
|
|
42
|
-
"title": "HTTP Transport Requires Explicit Authentication Mode",
|
|
43
|
-
"description": "When HTTP transport is enabled outside local development, an API key or equivalent authentication mode MUST be configured.",
|
|
44
|
-
"validationQuery": "Inspect MCP transport config for apiKey or local-only mode.",
|
|
45
|
-
"blocking": true
|
|
46
|
-
},
|
|
47
|
-
{
|
|
48
|
-
"id": "MCP-05",
|
|
49
|
-
"severity": "SHOULD",
|
|
50
|
-
"category": "observability",
|
|
51
|
-
"title": "MCP Calls Should Emit Metrics",
|
|
52
|
-
"description": "Tool calls SHOULD record latency, success, failure, and error class metrics.",
|
|
53
|
-
"validationQuery": "Call a tool and inspect MCP metrics output.",
|
|
54
|
-
"blocking": false
|
|
55
|
-
}
|
|
56
|
-
]
|
|
57
|
-
}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
# Rulesets de Observabilidad
|
|
2
|
-
|
|
3
|
-
> **Navegación bilingüe:** [English version](./README.md)
|
|
4
|
-
|
|
5
|
-
Reglas para evidencia de telemetría requerida por gates Evolith y preparación operativa.
|
|
6
|
-
|
|
7
|
-
## Rulesets
|
|
8
|
-
|
|
9
|
-
| Ruleset | Propósito |
|
|
10
|
-
|---|---|
|
|
11
|
-
| [Evidencia de Telemetría](./telemetry-evidence.rules.json) | Define evidencia mínima de trazas, logs, métricas y dashboards para rutas productivas. |
|
|
12
|
-
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
# Observability Rulesets
|
|
2
|
-
|
|
3
|
-
> **Bilingual navigation:** [Versión en Español](./README.es.md)
|
|
4
|
-
|
|
5
|
-
Rules for telemetry evidence required by Evolith phase gates and operational readiness.
|
|
6
|
-
|
|
7
|
-
## Rulesets
|
|
8
|
-
|
|
9
|
-
| Ruleset | Purpose |
|
|
10
|
-
|---|---|
|
|
11
|
-
| [Telemetry Evidence](./telemetry-evidence.rules.json) | Defines minimum trace, log, metric, and dashboard evidence for production paths. |
|
|
12
|
-
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "../schema/ruleset-standard.schema.json",
|
|
3
|
-
"$id": "https://evolith.dev/rulesets/observability/telemetry-evidence.rules.json",
|
|
4
|
-
"title": "Telemetry Evidence Rules",
|
|
5
|
-
"description": "Minimum observability evidence for phase gates and production readiness.",
|
|
6
|
-
"version": "1.0.0",
|
|
7
|
-
"effectiveDate": "2026-06-08",
|
|
8
|
-
"scope": "satellite",
|
|
9
|
-
"category": "observability",
|
|
10
|
-
"rules": [
|
|
11
|
-
{
|
|
12
|
-
"id": "OBS-EVD-01",
|
|
13
|
-
"severity": "MUST",
|
|
14
|
-
"category": "tracing",
|
|
15
|
-
"title": "Production Paths Emit Trace Context",
|
|
16
|
-
"description": "Production request paths MUST emit TraceId, SpanId, and CorrelationId or runtime-equivalent trace context.",
|
|
17
|
-
"validationQuery": "Inspect OTel traces for representative production paths.",
|
|
18
|
-
"blocking": true
|
|
19
|
-
},
|
|
20
|
-
{
|
|
21
|
-
"id": "OBS-EVD-02",
|
|
22
|
-
"severity": "MUST",
|
|
23
|
-
"category": "logging",
|
|
24
|
-
"title": "Structured Logs Carry Request Context",
|
|
25
|
-
"description": "Structured logs MUST include request correlation fields and avoid raw PII.",
|
|
26
|
-
"validationQuery": "Sample production logs and verify correlation fields plus PII-safe logging policy.",
|
|
27
|
-
"blocking": true
|
|
28
|
-
},
|
|
29
|
-
{
|
|
30
|
-
"id": "OBS-EVD-03",
|
|
31
|
-
"severity": "MUST",
|
|
32
|
-
"category": "metrics",
|
|
33
|
-
"title": "Service Health Metrics Are Reported",
|
|
34
|
-
"description": "Production services MUST report error rate, latency percentile, throughput, and availability metrics.",
|
|
35
|
-
"validationQuery": "Inspect metrics backend or dashboard export for required service health metrics.",
|
|
36
|
-
"blocking": true
|
|
37
|
-
},
|
|
38
|
-
{
|
|
39
|
-
"id": "OBS-EVD-04",
|
|
40
|
-
"severity": "SHOULD",
|
|
41
|
-
"category": "dashboards",
|
|
42
|
-
"title": "Gate Evidence References Dashboard",
|
|
43
|
-
"description": "Phase 5 evidence SHOULD reference the dashboard or query used to verify nominal monitoring.",
|
|
44
|
-
"validationQuery": "Verify release notes or evidence manifest includes dashboardRef.",
|
|
45
|
-
"blocking": false
|
|
46
|
-
}
|
|
47
|
-
]
|
|
48
|
-
}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
# Políticas OPA y Schemas de Entrada
|
|
2
|
-
|
|
3
|
-
Esta carpeta contiene las políticas principales de Open Policy Agent (OPA) `.rego` utilizadas para la validación de arquitectura y gobernanza en la plataforma Evolith.
|
|
4
|
-
|
|
5
|
-
Cada política OPA define un contrato formal para su entrada, respaldado por un JSON Schema versionado.
|
|
6
|
-
|
|
7
|
-
## Políticas y Schemas OPA
|
|
8
|
-
|
|
9
|
-
| Archivo de Política | Archivo de Prueba | JSON Schema de Entrada | Descripción |
|
|
10
|
-
|---|---|---|---|
|
|
11
|
-
| [governance.rego](./governance.rego) | [governance.test.rego](./governance.test.rego) | [governance.input.schema.json](./schemas/governance.input.schema.json) | Verifica los límites de herencia de satélites y decisiones obligatorias. |
|
|
12
|
-
| [mcp.rego](./mcp.rego) | [mcp.test.rego](./mcp.test.rego) | [mcp.input.schema.json](./schemas/mcp.input.schema.json) | Verifica el cumplimiento del protocolo MCP y la evidencia de pruebas de humo. |
|
|
13
|
-
| [version-pinning.rego](./version-pinning.rego) | [version-pinning.test.rego](./version-pinning.test.rego) | [version-pinning.input.schema.json](./schemas/version-pinning.input.schema.json) | Aplica reglas estrictas de fijación (pinning) de dependencias de paquetes. |
|
|
14
|
-
| [cli-readiness.rego](./cli-readiness.rego) | [cli-readiness.test.rego](./cli-readiness.test.rego) | [cli-readiness.input.schema.json](./schemas/cli-readiness.input.schema.json) | Valida la compilación, documentación y preparación del archivo lock del Smart CLI. |
|
|
15
|
-
| [knowledge-intake.rego](./knowledge-intake.rego) | [knowledge-intake.test.rego](./knowledge-intake.test.rego) | [knowledge-intake.input.schema.json](./schemas/knowledge-intake.input.schema.json) | Gobierna el ciclo de vida de ingesta, estado de revisión y emparejamiento topológico de conocimiento externo. |
|
|
16
|
-
| [taxonomy.rego](./taxonomy.rego) | [taxonomy.test.rego](./taxonomy.test.rego) | [taxonomy.input.schema.json](./schemas/taxonomy.input.schema.json) | Valida la taxonomía de directorios del repositorio, nombres de archivos ADR y pares bilingües. |
|
|
17
|
-
| [ci-cd.rego](./ci-cd.rego) | [ci-cd.test.rego](./ci-cd.test.rego) | [ci-cd.input.schema.json](./schemas/ci-cd.input.schema.json) | Asegura que el escaneo de dependencias, scripts de flujo de trabajo y actualizaciones de dependencias estén presentes. |
|
|
18
|
-
| [evidence.rego](./evidence.rego) | [evidence.test.rego](./evidence.test.rego) | [evidence.input.schema.json](./schemas/evidence.input.schema.json) | Valida el esquema, periodos de retención y propiedad de los artefactos de evidencia de gates. |
|
|
19
|
-
| [abac-mcp-tool-access.rego](./abac-mcp-tool-access.rego) | [abac-mcp-tool-access.test.rego](./abac-mcp-tool-access.test.rego) | [abac-mcp-tool-access.input.schema.json](./schemas/abac-mcp-tool-access.input.schema.json) | Restringe la ejecución de herramientas del Model Context Protocol (MCP) por rol, acción y entorno. |
|
|
20
|
-
|
|
21
|
-
---
|
|
22
|
-
[Volver al Centro de Rulesets](../README.es.md)
|