@evolith/core-domain 1.0.0 → 1.0.1
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/dist/domain/services/default-workflow-definition.js +1 -1
- package/dist/domain/services/default-workflow-definition.js.map +1 -1
- package/package.json +2 -1
- package/rulesets/README.es.md +170 -0
- package/rulesets/README.md +170 -0
- package/rulesets/acl/README.es.md +41 -0
- package/rulesets/acl/README.md +41 -0
- package/rulesets/acl/anti-corruption-layer.rules.es.json +99 -0
- package/rulesets/acl/anti-corruption-layer.rules.json +99 -0
- package/rulesets/adr/ADR_COVERAGE.es.md +133 -0
- package/rulesets/adr/ADR_COVERAGE.md +133 -0
- package/rulesets/adr/README.es.md +17 -0
- package/rulesets/adr/README.md +17 -0
- package/rulesets/adr/adr-0002-hexagonal-architecture.rules.json +103 -0
- package/rulesets/adr/adr-0005-cicd-quality-gates.rules.json +102 -0
- package/rulesets/adr/adr-0010-multi-tenancy.rules.json +129 -0
- package/rulesets/adr/adr-0018-testing-pyramid.rules.json +115 -0
- package/rulesets/adr/adr-0032-protocol-selection.rules.json +134 -0
- package/rulesets/adr/adr-0040-multi-runtime.rules.json +131 -0
- package/rulesets/adr/adr-0050-gitflow-branching.rules.json +176 -0
- package/rulesets/adr/generated/adr-0001-monorepo-orchestration-principle.rules.json +29 -0
- package/rulesets/adr/generated/adr-0006-microservices-transition-via-sidecar-pattern.rules.json +29 -0
- package/rulesets/adr/generated/adr-0009-strict-dependency-pinning-and-automated-vulnerability-manage.rules.json +29 -0
- package/rulesets/adr/generated/adr-0011-fault-tolerance-and-resiliency-patterns.rules.json +29 -0
- package/rulesets/adr/generated/adr-0013-cloud-infrastructure-topology-and-disaster-recovery-dr.rules.json +28 -0
- package/rulesets/adr/generated/adr-0014-multi-layer-distributed-caching-strategy.rules.json +29 -0
- package/rulesets/adr/generated/adr-0015-event-driven-architecture-eda-for-intra-domain-communication.rules.json +29 -0
- package/rulesets/adr/generated/adr-0016-immutable-business-audit-trail-and-change-tracking.rules.json +29 -0
- package/rulesets/adr/generated/adr-0017-feature-flagging-strategy-for-progressive-delivery.rules.json +28 -0
- package/rulesets/adr/generated/adr-0019-tactical-design-patterns-for-future-proofing.rules.json +29 -0
- package/rulesets/adr/generated/adr-0020-identity-provider-abstraction-strategy.rules.json +28 -0
- package/rulesets/adr/generated/adr-0024-centralized-configuration-feature-platform.rules.json +28 -0
- package/rulesets/adr/generated/adr-0025-feature-flag-provider-abstraction-strategy.rules.json +29 -0
- package/rulesets/adr/generated/adr-0028-self-hosted-open-source-hybrid-infrastructure.rules.json +29 -0
- package/rulesets/adr/generated/adr-0030-two-tier-distributed-gateway-model.rules.json +28 -0
- package/rulesets/adr/generated/adr-0031-schema-per-bounded-context-and-domain-event-catalog.rules.json +29 -0
- package/rulesets/adr/generated/adr-0033-transactional-outbox-pattern-for-async-messaging.rules.json +28 -0
- package/rulesets/adr/generated/adr-0034-cqrs-pattern-application-matrix.rules.json +29 -0
- package/rulesets/adr/generated/adr-0035-distributed-saga-pattern-implementation-strategy.rules.json +29 -0
- package/rulesets/adr/generated/adr-0036-message-bus-delivery-flow-control-strategy.rules.json +29 -0
- package/rulesets/adr/generated/adr-0037-enterprise-performance-concurrency-chaos-verification-strate.rules.json +28 -0
- package/rulesets/adr/generated/adr-0039-deployment-topology-abstraction-environment-switcher.rules.json +29 -0
- package/rulesets/adr/generated/adr-0041-dual-engine-policy-evaluation-native-opa.rules.json +28 -0
- package/rulesets/adr/generated/adr-0044-configurable-security-persistence-strategy-agnosticism-vs-na.rules.json +29 -0
- package/rulesets/adr/generated/adr-0045-microservice-extraction-readiness-criteria.rules.json +29 -0
- package/rulesets/adr/generated/adr-0046-unified-traceability-via-w3c-tracecontext.rules.json +29 -0
- package/rulesets/adr/generated/adr-0047-progressive-architecture-evolution-framework-modular-monolit.rules.json +29 -0
- package/rulesets/adr/generated/adr-0048-enterprise-taxonomy-standardization-and-reference-layout.rules.json +28 -0
- package/rulesets/adr/generated/adr-0049-naming-semantics-clean-code-policy-e2e-and-global.rules.json +29 -0
- package/rulesets/adr/generated/adr-0051-enterprise-database-engine-selection-strategy.rules.json +29 -0
- package/rulesets/adr/generated/adr-0052-unit-testing-isolation-strategy-mocks-vs-stubs.rules.json +29 -0
- package/rulesets/adr/generated/adr-0053-integration-and-e2e-testing-strategy.rules.json +29 -0
- package/rulesets/adr/generated/adr-0054-database-design-and-normalization-standards.rules.json +29 -0
- package/rulesets/adr/generated/adr-0055-microfrontends-architecture-strategy.rules.json +28 -0
- package/rulesets/adr/generated/adr-0056-enterprise-naming-design-conventions-multi-language-multi-pl.rules.json +29 -0
- package/rulesets/adr/generated/adr-0057-architecture-intelligence-catalog.rules.json +27 -0
- package/rulesets/adr/generated/adr-0058-ai-consumable-architecture-knowledge.rules.json +27 -0
- package/rulesets/adr/generated/adr-0067-modular-monolith-persistence-boundaries.rules.json +28 -0
- package/rulesets/adr/generated/adr-0068-documentation-release-gitflow.rules.json +29 -0
- package/rulesets/adr/generated/adr-0069-ai-agent-context-protocol-integration.rules.json +28 -0
- package/rulesets/adr/generated/adr-0070-lean-root-repository-taxonomy.rules.json +29 -0
- package/rulesets/adr/generated/adr-0071-domain-layer-base-class-and-inheritance-strategy.rules.json +29 -0
- package/rulesets/adr/generated/adr-0072-utc-date-storage-browser-timezone-detection-and-language-res.rules.json +29 -0
- package/rulesets/adr/generated/adr-0073-unified-cli-mcp-output-contract-and-gate-evidence-schema.rules.json +29 -0
- package/rulesets/adr/generated/adr-0074-evolith-core-api-native-exposure-layer.rules.json +29 -0
- package/rulesets/adr/generated/adr-0075-core-api-authentication-strategy.rules.json +28 -0
- package/rulesets/adr/generated/adr-0076-domain-oriented-microservice-architecture-doma.rules.json +28 -0
- package/rulesets/adr/generated/adr-0077-masstransit-v9-commercial-pivot-stay-on-v8-monitor-opentrans.rules.json +28 -0
- package/rulesets/adr/generated/adr-0078-domain-financial-separation-governance.rules.json +29 -0
- package/rulesets/adr/generated/adr-0079-multi-topology-reference-corpus-and-topology-manifest-contra.rules.json +29 -0
- package/rulesets/adr/generated/adr-0080-remote-repository-reference-contract.rules.json +29 -0
- package/rulesets/adr/generated/adr-0081-agentic-ai-sandbox-isolation-boundary.rules.json +29 -0
- package/rulesets/adr/generated/adr-0082-agentic-ai-prompt-context-and-tool-trust-boundary.rules.json +28 -0
- package/rulesets/adr/generated/adr-0083-agentic-ai-action-authorization-and-audit.rules.json +29 -0
- package/rulesets/adr/generated/adr-0084-data-mesh-and-data-as-a-product.rules.json +29 -0
- package/rulesets/adr/generated/adr-0085-agnostic-opa-wasm-distribution-architecture.rules.json +28 -0
- package/rulesets/adr/generated/adr-0086-agentic-ai-telemetry-cost-control-standard.rules.json +27 -0
- package/rulesets/adr/generated/adr-0087-attribute-based-access-control-abac-for-agentic-tool-executi.rules.json +29 -0
- package/rulesets/adr/generated/adr-0088-sovereign-identity-for-agentic-ai.rules.json +29 -0
- package/rulesets/adr/generated/adr-0089-event-driven-agentic-workflow-pattern.rules.json +28 -0
- package/rulesets/adr/generated/adr-0090-rag-knowledge-governance-standard.rules.json +29 -0
- package/rulesets/adr/generated/adr-0091-workload-identity-token-rotation-standard.rules.json +29 -0
- package/rulesets/adr/generated/adr-0092-agent-infinite-loop-prevention-and-circuit-breaker-rules.rules.json +29 -0
- package/rulesets/adr/generated/adr-0093-concurrency-control-and-resource-locking-standard-for-mcp-to.rules.json +29 -0
- package/rulesets/adr/generated/adr-0094-multi-agent-handoff-and-task-delegation-standards.rules.json +29 -0
- package/rulesets/adr/generated/adr-0095-serverless-architecture-governance.rules.json +29 -0
- package/rulesets/adr/generated/adr-0096-edge-computing-architecture-governance.rules.json +29 -0
- package/rulesets/adr/generated/adr-0097-knowledge-lifecycle-governance-standard.rules.json +29 -0
- package/rulesets/adr/generated/adr-0098-rest-uri-versioning-and-deprecation-policy.rules.json +29 -0
- package/rulesets/adr/generated/adr-0099-opa-bundle-distribution-via-s3-minio.rules.json +27 -0
- package/rulesets/adr/generated/adr-ai-augmented-0001-harness-engineering-for-ai-augmented-development.rules.json +29 -0
- package/rulesets/adr/generated/adr-ai-augmented-0002-mcp-integration-protocol-for-agent-tool-invocation.rules.json +29 -0
- package/rulesets/adr/generated/adr-ai-augmented-0003-model-selection-governance-for-ai-augmented-workflows.rules.json +29 -0
- package/rulesets/adr/generated/adr-ai-augmented-0004-agents-md-as-mandatory-repository-artifact.rules.json +29 -0
- package/rulesets/adr/generated/adr-ai-augmented-0005-human-in-the-loop-policy-for-autonomous-agent-operations.rules.json +29 -0
- package/rulesets/adr/generated/adr-android-0042-canonical-android-native-mobile-architecture.rules.json +29 -0
- package/rulesets/adr/generated/adr-dotnet-0041-canonical-net-c-backend-architecture.rules.json +29 -0
- package/rulesets/adr/generated/adr-dotnet-0060-net-multi-tenancy-dual-layer-strategy-ef-core-sql-server.rules.json +29 -0
- package/rulesets/adr/generated/adr-dotnet-0061-transactional-event-lifecycle-in-ef-core.rules.json +28 -0
- package/rulesets/adr/generated/adr-dotnet-0062-net-immutable-audit-trail-via-ddl-triggers-delta-capture.rules.json +29 -0
- package/rulesets/adr/generated/adr-dotnet-0063-b2b-request-idempotency-middleware-in-asp-net-core.rules.json +28 -0
- package/rulesets/adr/generated/adr-dotnet-0064-net-request-scope-observability-context-propagation.rules.json +29 -0
- package/rulesets/adr/generated/adr-dotnet-0065-net-pii-safe-structured-logging-pipeline-serilog.rules.json +29 -0
- package/rulesets/adr/generated/adr-dotnet-0066-net-lightweight-http-idempotency-via-imemorycache-idistribut.rules.json +28 -0
- package/rulesets/adr/generated/adr-dotnet-0069-net-grpc-service-setup-protobuf-contracts.rules.json +29 -0
- package/rulesets/adr/generated/adr-dotnet-0070-net-api-endpoint-strategy.rules.json +29 -0
- package/rulesets/adr/generated/adr-dotnet-0071-net-data-access-strategy-ef-core-as-default-orm-dapper-for-o.rules.json +27 -0
- package/rulesets/adr/generated/adr-dotnet-0072-net-aop-cross-cutting-concern-strategy-dispatchproxy-over-pi.rules.json +29 -0
- package/rulesets/adr/generated/adr-nodejs-0003-strict-typescript-standards.rules.json +29 -0
- package/rulesets/adr/generated/adr-nodejs-0004-frontend-offline-resilience.rules.json +28 -0
- package/rulesets/adr/generated/adr-nodejs-0007-observability-with-opentelemetry-loki-and-jaeger.rules.json +29 -0
- package/rulesets/adr/generated/adr-nodejs-0008-progressive-multi-module-evolution-with-api-gateway-and-bff-.rules.json +28 -0
- package/rulesets/adr/generated/adr-nodejs-0012-advanced-authorization-rbac-abac-strategy.rules.json +28 -0
- package/rulesets/adr/generated/adr-nodejs-0021-high-performance-authentication-graph-compilation.rules.json +28 -0
- package/rulesets/adr/generated/adr-nodejs-0022-contextual-authentication-and-pluggable-output-projections.rules.json +28 -0
- package/rulesets/adr/generated/adr-nodejs-0023-centralized-authorization-core-strategy.rules.json +28 -0
- package/rulesets/adr/generated/adr-nodejs-0026-adaptive-mfa-and-passwordless-platform.rules.json +28 -0
- package/rulesets/adr/generated/adr-nodejs-0027-dual-protocol-api-strategy-rest-grpc.rules.json +28 -0
- package/rulesets/adr/generated/adr-nodejs-0029-adoption-of-tactical-ddd-primitives-library.rules.json +29 -0
- package/rulesets/adr/generated/adr-nodejs-0038-enterprise-error-handling-result-pattern-strategy.rules.json +29 -0
- package/rulesets/adr/generated/adr-nodejs-0043-data-access-and-orm-strategy-for-node-js.rules.json +29 -0
- package/rulesets/adr/generated/adr-nodejs-0044-frontend-clean-architecture-layer-boundaries-react.rules.json +29 -0
- package/rulesets/adr/generated/adr-nodejs-0045-frontend-state-management-zustand-tanstack-query-dual-strate.rules.json +29 -0
- package/rulesets/adr/generated/adr-nodejs-0046-prohibition-of-raw-technical-identifiers-in-user-interfaces.rules.json +29 -0
- package/rulesets/adr/generated/adr-nodejs-0047-actionable-user-error-contract-and-correlated-diagnostics.rules.json +29 -0
- package/rulesets/adr/generated/adr-nodejs-0048-feature-flag-system-scope-and-structured-criteria-model.rules.json +29 -0
- package/rulesets/adr/generated/adr-nodejs-0074-monorepo-orchestration-with-nx.rules.json +29 -0
- package/rulesets/adr/generated/adr-nodejs-0075-application-gateway-bff-with-nestjs.rules.json +29 -0
- package/rulesets/architecture/README.es.md +21 -0
- package/rulesets/architecture/README.md +21 -0
- package/rulesets/architecture/opa/progressive-axis.rego +50 -0
- package/rulesets/cli/README.es.md +17 -0
- package/rulesets/cli/README.md +17 -0
- package/rulesets/cli/core-parity.rules.json +61 -0
- package/rulesets/cli/release-readiness.rules.json +77 -0
- package/rulesets/compliance-baseline/README.es.md +26 -0
- package/rulesets/compliance-baseline/README.md +26 -0
- package/rulesets/compliance-baseline/compliance-baseline.rules.json +81 -0
- package/rulesets/contracts/README.es.md +19 -0
- package/rulesets/contracts/README.md +19 -0
- package/rulesets/contracts/evolith-machine-contracts.json +29 -0
- package/rulesets/contracts/fixtures/gate-evidence.success.json +10 -0
- package/rulesets/contracts/fixtures/output-envelope.success.json +23 -0
- package/rulesets/cross-cutting/README.es.md +14 -0
- package/rulesets/cross-cutting/README.md +14 -0
- package/rulesets/cross-cutting/compliance-baseline.rules.json +81 -0
- package/rulesets/cross-cutting/definition-of-done.rules.json +135 -0
- package/rulesets/cross-cutting/engineering-manifesto.rules.json +145 -0
- package/rulesets/cross-cutting/repository-taxonomy.rules.json +172 -0
- package/rulesets/definition-of-done/README.es.md +26 -0
- package/rulesets/definition-of-done/README.md +26 -0
- package/rulesets/definition-of-done/definition-of-done.rules.json +135 -0
- package/rulesets/engineering-manifesto/README.es.md +26 -0
- package/rulesets/engineering-manifesto/README.md +26 -0
- package/rulesets/engineering-manifesto/engineering-manifesto.rules.json +145 -0
- package/rulesets/evidence/README.es.md +12 -0
- package/rulesets/evidence/README.md +12 -0
- package/rulesets/evidence/evidence-manifest.rules.json +48 -0
- package/rulesets/executive-scorecards/executive-scorecards.rules.es.json +213 -0
- package/rulesets/executive-scorecards/executive-scorecards.rules.json +213 -0
- package/rulesets/governance/README.es.md +13 -0
- package/rulesets/governance/README.md +13 -0
- package/rulesets/governance/abac-mcp-access.rules.es.json +41 -0
- package/rulesets/governance/abac-mcp-access.rules.json +41 -0
- package/rulesets/governance/executive-scorecards.rules.es.json +213 -0
- package/rulesets/governance/executive-scorecards.rules.json +213 -0
- package/rulesets/governance/inheritance.rules.json +115 -0
- package/rulesets/governance/knowledge-intake.rules.json +18 -0
- package/rulesets/governance/open-core-boundary.rules.es.json +148 -0
- package/rulesets/governance/open-core-boundary.rules.json +148 -0
- package/rulesets/governance/satellite-contracts.rules.json +183 -0
- package/rulesets/infrastructure/helm-enforcement.rules.json +21 -0
- package/rulesets/infrastructure/opa/helm-enforcement.rego +25 -0
- package/rulesets/infrastructure/opa/helm-enforcement.test.rego +31 -0
- package/rulesets/infrastructure/opa/opa-sidecar-bundle.rego +115 -0
- package/rulesets/infrastructure/opa/opa-sidecar-bundle.test.rego +66 -0
- package/rulesets/infrastructure/opa-sidecar-bundle.rules.json +18 -0
- package/rulesets/mcp/README.es.md +12 -0
- package/rulesets/mcp/README.md +12 -0
- package/rulesets/mcp/protocol-compliance.rules.json +57 -0
- package/rulesets/observability/README.es.md +12 -0
- package/rulesets/observability/README.md +12 -0
- package/rulesets/observability/telemetry-evidence.rules.json +48 -0
- package/rulesets/opa/README.es.md +22 -0
- package/rulesets/opa/README.md +22 -0
- package/rulesets/opa/abac-mcp-tool-access.rego +122 -0
- package/rulesets/opa/abac-mcp-tool-access.test.rego +33 -0
- package/rulesets/opa/anti-corruption-layer.rego +39 -0
- package/rulesets/opa/anti-corruption-layer.test.rego +118 -0
- package/rulesets/opa/ci-cd.rego +41 -0
- package/rulesets/opa/ci-cd.test.rego +23 -0
- package/rulesets/opa/cicd-quality-gates.rego +29 -0
- package/rulesets/opa/cicd-quality-gates.test.rego +54 -0
- package/rulesets/opa/cli-core-parity.rego +17 -0
- package/rulesets/opa/cli-core-parity.test.rego +39 -0
- package/rulesets/opa/cli-readiness.rego +32 -0
- package/rulesets/opa/cli-readiness.test.rego +23 -0
- package/rulesets/opa/cli-release-readiness.rego +21 -0
- package/rulesets/opa/cli-release-readiness.test.rego +46 -0
- package/rulesets/opa/compliance-baseline.rego +95 -0
- package/rulesets/opa/compliance-baseline.test.rego +89 -0
- package/rulesets/opa/dod.rego +42 -0
- package/rulesets/opa/dod.test.rego +250 -0
- package/rulesets/opa/engineering-manifesto.rego +78 -0
- package/rulesets/opa/engineering-manifesto.test.rego +133 -0
- package/rulesets/opa/evidence.rego +64 -0
- package/rulesets/opa/evidence.test.rego +23 -0
- package/rulesets/opa/executive-scorecards.rego +41 -0
- package/rulesets/opa/executive-scorecards.test.rego +60 -0
- package/rulesets/opa/gitflow-branching.rego +41 -0
- package/rulesets/opa/gitflow-branching.test.rego +60 -0
- package/rulesets/opa/governance.rego +39 -0
- package/rulesets/opa/governance.test.rego +23 -0
- package/rulesets/opa/hexagonal-architecture.rego +33 -0
- package/rulesets/opa/hexagonal-architecture.test.rego +57 -0
- package/rulesets/opa/infrastructure/helm-enforcement.rego +33 -0
- package/rulesets/opa/infrastructure/opa-sidecar-bundle.rego +42 -0
- package/rulesets/opa/knowledge-intake.rego +98 -0
- package/rulesets/opa/knowledge-intake.test.rego +50 -0
- package/rulesets/opa/main.rego +147 -0
- package/rulesets/opa/main_test.rego +149 -0
- package/rulesets/opa/mcp.rego +61 -0
- package/rulesets/opa/mcp.test.rego +27 -0
- package/rulesets/opa/multi-runtime.rego +33 -0
- package/rulesets/opa/multi-runtime.test.rego +53 -0
- package/rulesets/opa/multi-tenancy.rego +33 -0
- package/rulesets/opa/multi-tenancy.test.rego +53 -0
- package/rulesets/opa/open-core-boundary.rego +33 -0
- package/rulesets/opa/open-core-boundary.test.rego +60 -0
- package/rulesets/opa/protocol-selection.rego +29 -0
- package/rulesets/opa/protocol-selection.test.rego +46 -0
- package/rulesets/opa/rbac/gate-role-enforcement.rego +112 -0
- package/rulesets/opa/repository-taxonomy.rego +98 -0
- package/rulesets/opa/repository-taxonomy.test.rego +91 -0
- package/rulesets/opa/satellite-contracts.rego +42 -0
- package/rulesets/opa/satellite-contracts.test.rego +70 -0
- package/rulesets/opa/schemas/abac-mcp-tool-access.input.schema.json +21 -0
- package/rulesets/opa/schemas/anti-corruption-layer.input.schema.json +25 -0
- package/rulesets/opa/schemas/ci-cd.input.schema.json +27 -0
- package/rulesets/opa/schemas/cicd-quality-gates.input.schema.json +33 -0
- package/rulesets/opa/schemas/cli-core-parity.input.schema.json +30 -0
- package/rulesets/opa/schemas/cli-readiness.input.schema.json +28 -0
- package/rulesets/opa/schemas/cli-release-readiness.input.schema.json +26 -0
- package/rulesets/opa/schemas/compliance-baseline.input.schema.json +25 -0
- package/rulesets/opa/schemas/dod.input.schema.json +38 -0
- package/rulesets/opa/schemas/engineering-manifesto.input.schema.json +24 -0
- package/rulesets/opa/schemas/evidence.input.schema.json +35 -0
- package/rulesets/opa/schemas/executive-scorecards.input.schema.json +36 -0
- package/rulesets/opa/schemas/gitflow-branching.input.schema.json +36 -0
- package/rulesets/opa/schemas/governance.input.schema.json +19 -0
- package/rulesets/opa/schemas/hexagonal-architecture.input.schema.json +46 -0
- package/rulesets/opa/schemas/knowledge-intake.input.schema.json +57 -0
- package/rulesets/opa/schemas/mcp.input.schema.json +38 -0
- package/rulesets/opa/schemas/multi-runtime.input.schema.json +27 -0
- package/rulesets/opa/schemas/multi-tenancy.input.schema.json +27 -0
- package/rulesets/opa/schemas/open-core-boundary.input.schema.json +36 -0
- package/rulesets/opa/schemas/protocol-selection.input.schema.json +26 -0
- package/rulesets/opa/schemas/repository-taxonomy.input.schema.json +18 -0
- package/rulesets/opa/schemas/satellite-contracts.input.schema.json +38 -0
- package/rulesets/opa/schemas/taxonomy.input.schema.json +27 -0
- package/rulesets/opa/schemas/testing-pyramid.input.schema.json +42 -0
- package/rulesets/opa/schemas/version-pinning.input.schema.json +39 -0
- package/rulesets/opa/sdlc/coverage.rego +49 -0
- package/rulesets/opa/sdlc/coverage.test.rego +29 -0
- package/rulesets/opa/sdlc/pyramid-distribution.rego +31 -0
- package/rulesets/opa/sdlc/pyramid-distribution.test.rego +33 -0
- package/rulesets/opa/taxonomy.rego +51 -0
- package/rulesets/opa/taxonomy.test.rego +28 -0
- package/rulesets/opa/telemetry-evidence.rego +102 -0
- package/rulesets/opa/testing-pyramid.rego +49 -0
- package/rulesets/opa/testing-pyramid.test.rego +81 -0
- package/rulesets/opa/version-pinning.rego +99 -0
- package/rulesets/opa/version-pinning.test.rego +28 -0
- package/rulesets/phase-gates/README.es.md +28 -0
- package/rulesets/phase-gates/README.md +28 -0
- package/rulesets/phase-gates/phase-gates.rules.json +297 -0
- package/rulesets/quality-thresholds/README.es.md +28 -0
- package/rulesets/quality-thresholds/README.md +28 -0
- package/rulesets/quality-thresholds/quality-thresholds.rules.json +96 -0
- package/rulesets/repository-taxonomy/README.es.md +26 -0
- package/rulesets/repository-taxonomy/README.md +26 -0
- package/rulesets/repository-taxonomy/repository-taxonomy.rules.json +172 -0
- package/rulesets/satellite-contracts/README.es.md +27 -0
- package/rulesets/satellite-contracts/README.md +27 -0
- package/rulesets/satellite-contracts/satellite-contracts.rules.json +183 -0
- package/rulesets/schema/README.es.md +39 -0
- package/rulesets/schema/README.md +39 -0
- package/rulesets/schema/adr.schema.json +138 -0
- package/rulesets/schema/agile-backlog.schema.json +91 -0
- package/rulesets/schema/ballpark-estimation.schema.json +109 -0
- package/rulesets/schema/build-vs-compose.schema.json +98 -0
- package/rulesets/schema/cli-impact-analysis.schema.json +114 -0
- package/rulesets/schema/discovery-canvas.schema.json +92 -0
- package/rulesets/schema/evolith-user-story.schema.json +105 -0
- package/rulesets/schema/evolith-yaml.schema.json +191 -0
- package/rulesets/schema/functional-story.schema.json +111 -0
- package/rulesets/schema/gate-evidence.schema.json +85 -0
- package/rulesets/schema/integration-evidence.schema.json +47 -0
- package/rulesets/schema/knowledge-intake.schema.json +67 -0
- package/rulesets/schema/knowledge-projection.schema.json +24 -0
- package/rulesets/schema/maturity-evidence.schema.json +59 -0
- package/rulesets/schema/observability-validation.schema.json +85 -0
- package/rulesets/schema/on-call-handoff.schema.json +91 -0
- package/rulesets/schema/output-envelope.schema.json +102 -0
- package/rulesets/schema/prd.schema.json +117 -0
- package/rulesets/schema/release-notes.schema.json +138 -0
- package/rulesets/schema/rollback-rehearsal.schema.json +73 -0
- package/rulesets/schema/ruleset-sdlc.schema.json +59 -0
- package/rulesets/schema/ruleset-standard.schema.json +73 -0
- package/rulesets/schema/security-scan-report.schema.json +79 -0
- package/rulesets/schema/source-registry.schema.json +51 -0
- package/rulesets/schema/technical-feasibility.schema.json +66 -0
- package/rulesets/schema/technical-story.schema.json +112 -0
- package/rulesets/schema/test-summary-report.schema.json +158 -0
- package/rulesets/schema/topology-composition.schema.json +43 -0
- package/rulesets/schema/topology-manifest.schema.json +421 -0
- package/rulesets/sdlc/README.es.md +12 -0
- package/rulesets/sdlc/README.md +12 -0
- package/rulesets/sdlc/default-workflow.yaml +73 -0
- package/rulesets/sdlc/dependency-pinning.rules.json +183 -0
- package/rulesets/sdlc/phase-gates.rules.json +297 -0
- package/rulesets/sdlc/quality-thresholds.rules.json +96 -0
- package/rulesets/topologies/README.es.md +42 -0
- package/rulesets/topologies/README.md +42 -0
- package/rulesets/topologies/agentic-ai/README.es.md +142 -0
- package/rulesets/topologies/agentic-ai/README.md +142 -0
- package/rulesets/topologies/agentic-ai/adoption.es.md +37 -0
- package/rulesets/topologies/agentic-ai/adoption.md +37 -0
- package/rulesets/topologies/agentic-ai/agent.config.schema.json +100 -0
- package/rulesets/topologies/agentic-ai/agentic-ai.rego +46 -0
- package/rulesets/topologies/agentic-ai/agentic-ai.rules.json +109 -0
- package/rulesets/topologies/agentic-ai/agentic-ai.test.rego +68 -0
- package/rulesets/topologies/agentic-ai/agentic-ai.wasm +0 -0
- package/rulesets/topologies/agentic-ai/cli/cli-flows.es.md +35 -0
- package/rulesets/topologies/agentic-ai/cli/cli-flows.md +45 -0
- package/rulesets/topologies/agentic-ai/evidence.es.md +25 -0
- package/rulesets/topologies/agentic-ai/evidence.md +25 -0
- package/rulesets/topologies/agentic-ai/evolution.es.md +26 -0
- package/rulesets/topologies/agentic-ai/evolution.md +26 -0
- package/rulesets/topologies/agentic-ai/fixtures/invalid-agent.config.json +48 -0
- package/rulesets/topologies/agentic-ai/fixtures/valid-agent.config.json +48 -0
- package/rulesets/topologies/agentic-ai/maturity.es.md +33 -0
- package/rulesets/topologies/agentic-ai/maturity.md +33 -0
- package/rulesets/topologies/agentic-ai/mcp/mcp-manifest.json +100 -0
- package/rulesets/topologies/agentic-ai/openapi/openapi.yaml +187 -0
- package/rulesets/topologies/agentic-ai/operations.es.md +32 -0
- package/rulesets/topologies/agentic-ai/operations.md +32 -0
- package/rulesets/topologies/agentic-ai/parity-fixtures/compliant.json +18 -0
- package/rulesets/topologies/agentic-ai/parity-fixtures/violation.json +22 -0
- package/rulesets/topologies/agentic-ai/patterns.es.md +32 -0
- package/rulesets/topologies/agentic-ai/patterns.md +32 -0
- package/rulesets/topologies/agentic-ai/resilience.es.md +26 -0
- package/rulesets/topologies/agentic-ai/resilience.md +26 -0
- package/rulesets/topologies/agentic-ai/runbooks.es.md +48 -0
- package/rulesets/topologies/agentic-ai/runbooks.md +48 -0
- package/rulesets/topologies/agentic-ai/security.es.md +26 -0
- package/rulesets/topologies/agentic-ai/security.md +26 -0
- package/rulesets/topologies/agentic-ai/topology.manifest.json +127 -0
- package/rulesets/topologies/data-mesh/README.es.md +69 -0
- package/rulesets/topologies/data-mesh/README.md +69 -0
- package/rulesets/topologies/data-mesh/adoption.es.md +95 -0
- package/rulesets/topologies/data-mesh/adoption.md +95 -0
- package/rulesets/topologies/data-mesh/cli/cli-flows.es.md +41 -0
- package/rulesets/topologies/data-mesh/cli/cli-flows.md +53 -0
- package/rulesets/topologies/data-mesh/data-mesh.rego +11 -0
- package/rulesets/topologies/data-mesh/data-mesh.rules.json +100 -0
- package/rulesets/topologies/data-mesh/data-mesh.test.rego +107 -0
- package/rulesets/topologies/data-mesh/data-mesh.wasm +0 -0
- package/rulesets/topologies/data-mesh/evidence.es.md +111 -0
- package/rulesets/topologies/data-mesh/evidence.md +111 -0
- package/rulesets/topologies/data-mesh/evolution.es.md +67 -0
- package/rulesets/topologies/data-mesh/evolution.md +67 -0
- package/rulesets/topologies/data-mesh/fixtures/invalid.topology.config.json +12 -0
- package/rulesets/topologies/data-mesh/fixtures/valid.topology.config.json +12 -0
- package/rulesets/topologies/data-mesh/maturity.es.md +36 -0
- package/rulesets/topologies/data-mesh/maturity.md +36 -0
- package/rulesets/topologies/data-mesh/mcp/mcp-manifest.json +68 -0
- package/rulesets/topologies/data-mesh/openapi/openapi.yaml +186 -0
- package/rulesets/topologies/data-mesh/operations.es.md +63 -0
- package/rulesets/topologies/data-mesh/operations.md +63 -0
- package/rulesets/topologies/data-mesh/parity-fixtures/compliant.json +18 -0
- package/rulesets/topologies/data-mesh/parity-fixtures/violation.json +21 -0
- package/rulesets/topologies/data-mesh/patterns.es.md +67 -0
- package/rulesets/topologies/data-mesh/patterns.md +67 -0
- package/rulesets/topologies/data-mesh/resilience.es.md +64 -0
- package/rulesets/topologies/data-mesh/resilience.md +64 -0
- package/rulesets/topologies/data-mesh/runbooks.es.md +147 -0
- package/rulesets/topologies/data-mesh/runbooks.md +147 -0
- package/rulesets/topologies/data-mesh/security.es.md +66 -0
- package/rulesets/topologies/data-mesh/security.md +66 -0
- package/rulesets/topologies/data-mesh/topology.config.schema.json +30 -0
- package/rulesets/topologies/data-mesh/topology.manifest.json +107 -0
- package/rulesets/topologies/edge-computing/README.es.md +81 -0
- package/rulesets/topologies/edge-computing/README.md +81 -0
- package/rulesets/topologies/edge-computing/adoption.es.md +268 -0
- package/rulesets/topologies/edge-computing/adoption.md +268 -0
- package/rulesets/topologies/edge-computing/cli/cli-flows.es.md +41 -0
- package/rulesets/topologies/edge-computing/cli/cli-flows.md +53 -0
- package/rulesets/topologies/edge-computing/edge-computing.rego +41 -0
- package/rulesets/topologies/edge-computing/edge-computing.rules.json +50 -0
- package/rulesets/topologies/edge-computing/edge-computing.test.rego +33 -0
- package/rulesets/topologies/edge-computing/edge-computing.wasm +0 -0
- package/rulesets/topologies/edge-computing/evidence.es.md +263 -0
- package/rulesets/topologies/edge-computing/evidence.md +263 -0
- package/rulesets/topologies/edge-computing/evolution.es.md +257 -0
- package/rulesets/topologies/edge-computing/evolution.md +257 -0
- package/rulesets/topologies/edge-computing/fixtures/invalid.topology.config.json +6 -0
- package/rulesets/topologies/edge-computing/fixtures/valid.topology.config.json +6 -0
- package/rulesets/topologies/edge-computing/maturity.es.md +36 -0
- package/rulesets/topologies/edge-computing/maturity.md +36 -0
- package/rulesets/topologies/edge-computing/mcp/mcp-manifest.json +72 -0
- package/rulesets/topologies/edge-computing/openapi/openapi.yaml +187 -0
- package/rulesets/topologies/edge-computing/operations.es.md +148 -0
- package/rulesets/topologies/edge-computing/operations.md +148 -0
- package/rulesets/topologies/edge-computing/parity-fixtures/compliant.json +12 -0
- package/rulesets/topologies/edge-computing/parity-fixtures/violation.json +13 -0
- package/rulesets/topologies/edge-computing/patterns.es.md +291 -0
- package/rulesets/topologies/edge-computing/patterns.md +290 -0
- package/rulesets/topologies/edge-computing/resilience.es.md +232 -0
- package/rulesets/topologies/edge-computing/resilience.md +229 -0
- package/rulesets/topologies/edge-computing/runbooks.es.md +405 -0
- package/rulesets/topologies/edge-computing/runbooks.md +405 -0
- package/rulesets/topologies/edge-computing/security.es.md +218 -0
- package/rulesets/topologies/edge-computing/security.md +218 -0
- package/rulesets/topologies/edge-computing/topology.config.schema.json +13 -0
- package/rulesets/topologies/edge-computing/topology.manifest.json +113 -0
- package/rulesets/topologies/event-driven/README.es.md +71 -0
- package/rulesets/topologies/event-driven/README.md +71 -0
- package/rulesets/topologies/event-driven/adoption.es.md +67 -0
- package/rulesets/topologies/event-driven/adoption.md +67 -0
- package/rulesets/topologies/event-driven/cli/cli-flows.es.md +41 -0
- package/rulesets/topologies/event-driven/cli/cli-flows.md +53 -0
- package/rulesets/topologies/event-driven/event-driven.rego +11 -0
- package/rulesets/topologies/event-driven/event-driven.rules.json +100 -0
- package/rulesets/topologies/event-driven/event-driven.test.rego +107 -0
- package/rulesets/topologies/event-driven/event-driven.wasm +0 -0
- package/rulesets/topologies/event-driven/evidence.es.md +69 -0
- package/rulesets/topologies/event-driven/evidence.md +69 -0
- package/rulesets/topologies/event-driven/evolution.es.md +59 -0
- package/rulesets/topologies/event-driven/evolution.md +59 -0
- package/rulesets/topologies/event-driven/fixtures/invalid.topology.config.json +12 -0
- package/rulesets/topologies/event-driven/fixtures/valid.topology.config.json +12 -0
- package/rulesets/topologies/event-driven/maturity.es.md +36 -0
- package/rulesets/topologies/event-driven/maturity.md +36 -0
- package/rulesets/topologies/event-driven/mcp/mcp-manifest.json +68 -0
- package/rulesets/topologies/event-driven/openapi/openapi.yaml +186 -0
- package/rulesets/topologies/event-driven/operations.es.md +67 -0
- package/rulesets/topologies/event-driven/operations.md +67 -0
- package/rulesets/topologies/event-driven/parity-fixtures/compliant.json +18 -0
- package/rulesets/topologies/event-driven/parity-fixtures/violation.json +21 -0
- package/rulesets/topologies/event-driven/patterns.es.md +68 -0
- package/rulesets/topologies/event-driven/patterns.md +68 -0
- package/rulesets/topologies/event-driven/resilience.es.md +65 -0
- package/rulesets/topologies/event-driven/resilience.md +65 -0
- package/rulesets/topologies/event-driven/runbooks.es.md +79 -0
- package/rulesets/topologies/event-driven/runbooks.md +79 -0
- package/rulesets/topologies/event-driven/security.es.md +59 -0
- package/rulesets/topologies/event-driven/security.md +59 -0
- package/rulesets/topologies/event-driven/topology.config.schema.json +30 -0
- package/rulesets/topologies/event-driven/topology.manifest.json +109 -0
- package/rulesets/topologies/progressive-axis/distributed-modules/distributed-modules.rules.es.json +111 -0
- package/rulesets/topologies/progressive-axis/distributed-modules/distributed-modules.rules.json +111 -0
- package/rulesets/topologies/progressive-axis/microservices/microservices.rules.es.json +106 -0
- package/rulesets/topologies/progressive-axis/microservices/microservices.rules.json +106 -0
- package/rulesets/topologies/progressive-axis/modular-monolith/modular-monolith.rules.es.json +148 -0
- package/rulesets/topologies/progressive-axis/modular-monolith/modular-monolith.rules.json +148 -0
- package/rulesets/topologies/serverless/README.es.md +74 -0
- package/rulesets/topologies/serverless/README.md +74 -0
- package/rulesets/topologies/serverless/adoption.es.md +50 -0
- package/rulesets/topologies/serverless/adoption.md +50 -0
- package/rulesets/topologies/serverless/cli/cli-flows.es.md +41 -0
- package/rulesets/topologies/serverless/cli/cli-flows.md +53 -0
- package/rulesets/topologies/serverless/evidence.es.md +66 -0
- package/rulesets/topologies/serverless/evidence.md +66 -0
- package/rulesets/topologies/serverless/evolution.es.md +36 -0
- package/rulesets/topologies/serverless/evolution.md +36 -0
- package/rulesets/topologies/serverless/fixtures/invalid.topology.config.json +6 -0
- package/rulesets/topologies/serverless/fixtures/valid.topology.config.json +6 -0
- package/rulesets/topologies/serverless/maturity.es.md +36 -0
- package/rulesets/topologies/serverless/maturity.md +36 -0
- package/rulesets/topologies/serverless/mcp/mcp-manifest.json +72 -0
- package/rulesets/topologies/serverless/openapi/openapi.yaml +186 -0
- package/rulesets/topologies/serverless/operations.es.md +36 -0
- package/rulesets/topologies/serverless/operations.md +36 -0
- package/rulesets/topologies/serverless/parity-fixtures/compliant.json +13 -0
- package/rulesets/topologies/serverless/parity-fixtures/violation.json +15 -0
- package/rulesets/topologies/serverless/patterns.es.md +36 -0
- package/rulesets/topologies/serverless/patterns.md +36 -0
- package/rulesets/topologies/serverless/resilience.es.md +36 -0
- package/rulesets/topologies/serverless/resilience.md +36 -0
- package/rulesets/topologies/serverless/runbooks.es.md +68 -0
- package/rulesets/topologies/serverless/runbooks.md +68 -0
- package/rulesets/topologies/serverless/security.es.md +36 -0
- package/rulesets/topologies/serverless/security.md +36 -0
- package/rulesets/topologies/serverless/serverless.rego +32 -0
- package/rulesets/topologies/serverless/serverless.rules.json +33 -0
- package/rulesets/topologies/serverless/serverless.test.rego +28 -0
- package/rulesets/topologies/serverless/serverless.wasm +0 -0
- package/rulesets/topologies/serverless/topology.config.schema.json +28 -0
- package/rulesets/topologies/serverless/topology.manifest.json +114 -0
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "../schema/ruleset-standard.schema.json",
|
|
3
|
+
"$id": "https://evolith.dev/rulesets/executive-scorecards/executive-scorecards.rules.json",
|
|
4
|
+
"title": "Executive Scorecards Rules",
|
|
5
|
+
"description": "Rules encoding DORA and SPACE metrics for executive visibility. These rules ensure Predictability, Adherencia (Architecture Drift Index), and Eficiencia across satellite products.",
|
|
6
|
+
"version": "1.0.0",
|
|
7
|
+
"effectiveDate": "2026-06-06",
|
|
8
|
+
"scope": "satellite",
|
|
9
|
+
"category": "executive-metrics",
|
|
10
|
+
"principles": [
|
|
11
|
+
{
|
|
12
|
+
"id": "DORA-01",
|
|
13
|
+
"principle": "Deployment Frequency",
|
|
14
|
+
"statement": "Satellite products MUST measure and report deployment frequency. Target: at least once per week to production.",
|
|
15
|
+
"rationale": "Evololith Product Vision §6: Deployment Frequency is a core DORA metric. High deployment frequency indicates healthy CD pipeline.",
|
|
16
|
+
"severity": "MUST",
|
|
17
|
+
"validationQuery": "CI/CD pipeline exports deployment frequency metric. Report shows deployments/week to production.",
|
|
18
|
+
"blocking": false,
|
|
19
|
+
"metrics": {
|
|
20
|
+
"name": "Deployment Frequency",
|
|
21
|
+
"unit": "deployments per week",
|
|
22
|
+
"target": ">= 1",
|
|
23
|
+
"measurement": "Count of production deployments in trailing 4 weeks / 4",
|
|
24
|
+
"dashboardRequired": true
|
|
25
|
+
},
|
|
26
|
+
"references": [
|
|
27
|
+
"reference/governance/standards/vision/evolith-product-vision-master.md#6-executive-vision-scorecards"
|
|
28
|
+
]
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
"id": "DORA-02",
|
|
32
|
+
"principle": "Lead Time for Changes",
|
|
33
|
+
"statement": "Satellite products MUST measure and report lead time from commit to production. Target: less than 7 days for medium changes.",
|
|
34
|
+
"rationale": "Evololith Product Vision §6: Lead Time measures how quickly changes flow from commit to production. Short lead time indicates efficient pipeline.",
|
|
35
|
+
"severity": "MUST",
|
|
36
|
+
"validationQuery": "CI/CD pipeline exports lead time metric. Report shows median days from first commit to production deployment.",
|
|
37
|
+
"blocking": false,
|
|
38
|
+
"metrics": {
|
|
39
|
+
"name": "Lead Time for Changes",
|
|
40
|
+
"unit": "days",
|
|
41
|
+
"target": "<= 7",
|
|
42
|
+
"measurement": "Median time from first commit of a change to production deployment",
|
|
43
|
+
"dashboardRequired": true
|
|
44
|
+
},
|
|
45
|
+
"references": [
|
|
46
|
+
"reference/governance/standards/vision/evolith-product-vision-master.md#6-executive-vision-scorecards"
|
|
47
|
+
]
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
"id": "DORA-03",
|
|
51
|
+
"principle": "Change Failure Rate",
|
|
52
|
+
"statement": "Satellite products MUST measure and report change failure rate. Target: less than 15% of deployments cause failures.",
|
|
53
|
+
"rationale": "Evololith Product Vision §6: Change Failure Rate measures the percentage of deployments causing production failures.",
|
|
54
|
+
"severity": "MUST",
|
|
55
|
+
"validationQuery": "CI/CD pipeline exports change failure rate. Report shows % of deployments requiring rollback or hotfix.",
|
|
56
|
+
"blocking": false,
|
|
57
|
+
"metrics": {
|
|
58
|
+
"name": "Change Failure Rate",
|
|
59
|
+
"unit": "percentage",
|
|
60
|
+
"target": "<= 15%",
|
|
61
|
+
"measurement": "(Failed deployments / Total deployments) * 100 in trailing 4 weeks",
|
|
62
|
+
"dashboardRequired": true
|
|
63
|
+
},
|
|
64
|
+
"references": [
|
|
65
|
+
"reference/governance/standards/vision/evolith-product-vision-master.md#6-executive-vision-scorecards"
|
|
66
|
+
]
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
"id": "DORA-04",
|
|
70
|
+
"principle": "Time to Restore",
|
|
71
|
+
"statement": "Satellite products MUST measure and report MTTR (Mean Time To Restore). Target: less than 1 hour for critical failures.",
|
|
72
|
+
"rationale": "Evolith Product Vision §6: Time to Restore measures how quickly the team recovers from failures. Low MTTR indicates effective incident response.",
|
|
73
|
+
"severity": "MUST",
|
|
74
|
+
"validationQuery": "Incident management system exports MTTR. Report shows median hours from failure detection to service restoration.",
|
|
75
|
+
"blocking": false,
|
|
76
|
+
"metrics": {
|
|
77
|
+
"name": "Time to Restore",
|
|
78
|
+
"unit": "hours",
|
|
79
|
+
"target": "<= 1",
|
|
80
|
+
"measurement": "Median time from failure detection to restoration for P1/P2 incidents",
|
|
81
|
+
"dashboardRequired": true
|
|
82
|
+
},
|
|
83
|
+
"references": [
|
|
84
|
+
"reference/governance/standards/vision/evolith-product-vision-master.md#6-executive-vision-scorecards"
|
|
85
|
+
]
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
"id": "SPACE-01",
|
|
89
|
+
"principle": "Reliability (Observability)",
|
|
90
|
+
"statement": "Satellite products MUST have observability infrastructure (traces, logs, metrics) operational in production.",
|
|
91
|
+
"rationale": "Evololith Product Vision §6: Reliability ensures production systems are observable. Evolith ADR-0007 mandates OpenTelemetry.",
|
|
92
|
+
"severity": "MUST",
|
|
93
|
+
"validationQuery": "Production observability dashboard accessible. OpenTelemetry traces flowing. Error rate < 1%.",
|
|
94
|
+
"blocking": true,
|
|
95
|
+
"metrics": {
|
|
96
|
+
"name": "Error Rate",
|
|
97
|
+
"unit": "percentage",
|
|
98
|
+
"target": "<= 1%",
|
|
99
|
+
"measurement": "(Failed requests / Total requests) * 100 in trailing 24 hours",
|
|
100
|
+
"dashboardRequired": true
|
|
101
|
+
},
|
|
102
|
+
"references": [
|
|
103
|
+
"reference/governance/standards/vision/evolith-product-vision-master.md#6-executive-vision-scorecards",
|
|
104
|
+
"reference/architecture/adrs/nodejs/0007-observability-telemetry-loki-opentelemetry.md"
|
|
105
|
+
]
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
"id": "SPACE-02",
|
|
109
|
+
"principle": "Culture (Team Health)",
|
|
110
|
+
"statement": "Satellite products SHOULD measure team health quarterly. Target: > 70% positive sentiment.",
|
|
111
|
+
"rationale": "Evolith Product Vision §6: Culture measures team satisfaction and health. Teams that are healthy ship higher quality.",
|
|
112
|
+
"severity": "SHOULD",
|
|
113
|
+
"validationQuery": "Team health survey conducted quarterly. Results stored in product documentation. Trend tracked.",
|
|
114
|
+
"blocking": false,
|
|
115
|
+
"metrics": {
|
|
116
|
+
"name": "Team Health Score",
|
|
117
|
+
"unit": "percentage",
|
|
118
|
+
"target": ">= 70%",
|
|
119
|
+
"measurement": "% positive responses in quarterly team health survey",
|
|
120
|
+
"dashboardRequired": false
|
|
121
|
+
},
|
|
122
|
+
"references": [
|
|
123
|
+
"reference/governance/standards/vision/evolith-product-vision-master.md#6-executive-vision-scorecards"
|
|
124
|
+
]
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
"id": "SPACE-03",
|
|
128
|
+
"principle": "Execution (Throughput)",
|
|
129
|
+
"statement": "Satellite products MUST measure and report sprint throughput. Target: > 80% of committed work delivered.",
|
|
130
|
+
"rationale": "Evolith Product Vision §6: Execution measures delivery effectiveness. Consistent throughput indicates predictable pipeline.",
|
|
131
|
+
"severity": "SHOULD",
|
|
132
|
+
"validationQuery": "Sprint metrics exported. Report shows % of story points delivered vs committed in trailing 4 sprints.",
|
|
133
|
+
"blocking": false,
|
|
134
|
+
"metrics": {
|
|
135
|
+
"name": "Sprint Throughput",
|
|
136
|
+
"unit": "percentage",
|
|
137
|
+
"target": ">= 80%",
|
|
138
|
+
"measurement": "(Delivered story points / Committed story points) * 100 in trailing 4 sprints",
|
|
139
|
+
"dashboardRequired": true
|
|
140
|
+
},
|
|
141
|
+
"references": [
|
|
142
|
+
"reference/governance/standards/vision/evolith-product-vision-master.md#6-executive-vision-scorecards"
|
|
143
|
+
]
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
"id": "SPACE-04",
|
|
147
|
+
"principle": "Communication (Visibility)",
|
|
148
|
+
"statement": "Satellite products MUST have current SDLC state visible to all stakeholders. Target: phase gate status updated within 24h.",
|
|
149
|
+
"rationale": "Evolith Product Vision §6: Communication ensures stakeholders have real-time visibility into development state.",
|
|
150
|
+
"severity": "SHOULD",
|
|
151
|
+
"validationQuery": "Phase gate status board accessible. Updates made within 24h of state change. All stakeholders have access.",
|
|
152
|
+
"blocking": false,
|
|
153
|
+
"metrics": {
|
|
154
|
+
"name": "Gate Status Freshness",
|
|
155
|
+
"unit": "hours",
|
|
156
|
+
"target": "<= 24",
|
|
157
|
+
"measurement": "Max time between state change and status board update",
|
|
158
|
+
"dashboardRequired": true
|
|
159
|
+
},
|
|
160
|
+
"references": [
|
|
161
|
+
"reference/governance/standards/vision/evolith-product-vision-master.md#6-executive-vision-scorecards"
|
|
162
|
+
]
|
|
163
|
+
},
|
|
164
|
+
{
|
|
165
|
+
"id": "SPACE-05",
|
|
166
|
+
"principle": "Sponsorship (Leadership Alignment)",
|
|
167
|
+
"statement": "Satellite products MUST have executive sponsor assigned and actively engaged. Sponsor must review quarterly status.",
|
|
168
|
+
"rationale": "Evolith Product Vision §6: Sponsorship ensures leadership alignment. Active sponsorship prevents strategic drift.",
|
|
169
|
+
"severity": "MUST",
|
|
170
|
+
"validationQuery": "evolith.yaml includes governance.executiveSponsor field. Quarterly review meeting documented.",
|
|
171
|
+
"blocking": false,
|
|
172
|
+
"metrics": {
|
|
173
|
+
"name": "Executive Engagement",
|
|
174
|
+
"unit": "reviews per quarter",
|
|
175
|
+
"target": ">= 1",
|
|
176
|
+
"measurement": "Count of executive sponsor reviews in trailing quarter",
|
|
177
|
+
"dashboardRequired": false
|
|
178
|
+
},
|
|
179
|
+
"references": [
|
|
180
|
+
"reference/governance/standards/vision/evolith-product-vision-master.md#6-executive-vision-scorecards"
|
|
181
|
+
]
|
|
182
|
+
},
|
|
183
|
+
{
|
|
184
|
+
"id": "DRIFT-01",
|
|
185
|
+
"principle": "Architecture Drift Index",
|
|
186
|
+
"statement": "Satellite products MUST measure and report Architecture Drift Index. Target: < 10% drift from Evolith Core standards.",
|
|
187
|
+
"rationale": "Evolith Product Vision §6: Adherence measured via Architecture Drift Index. Drift > threshold indicates erosion of governance.",
|
|
188
|
+
"severity": "MUST",
|
|
189
|
+
"validationQuery": "Evolith CLI validate command run monthly. Report shows % of rules failed vs total applicable rules.",
|
|
190
|
+
"blocking": false,
|
|
191
|
+
"metrics": {
|
|
192
|
+
"name": "Architecture Drift Index",
|
|
193
|
+
"unit": "percentage",
|
|
194
|
+
"target": "<= 10%",
|
|
195
|
+
"measurement": "(Failed rules / Total applicable rules) * 100",
|
|
196
|
+
"dashboardRequired": true
|
|
197
|
+
},
|
|
198
|
+
"references": [
|
|
199
|
+
"reference/governance/standards/vision/evolith-product-vision-master.md#6-executive-vision-scorecards"
|
|
200
|
+
]
|
|
201
|
+
}
|
|
202
|
+
],
|
|
203
|
+
"governance": {
|
|
204
|
+
"complianceVerification": "DORA+SPACE metrics verified quarterly during governance review. Evolith CLI validate command provides drift index.",
|
|
205
|
+
"exceptionProcess": "Architecture Board review required when any metric exceeds target for 2+ consecutive quarters.",
|
|
206
|
+
"dashboardRequirements": "Metrics marked dashboardRequired: true MUST be visible in Evolith Tracker or equivalent executive dashboard.",
|
|
207
|
+
"reportingCadence": "DORA metrics reported monthly. SPACE metrics reported quarterly."
|
|
208
|
+
},
|
|
209
|
+
"bilingual": {
|
|
210
|
+
"en": "Executive Scorecards Rules",
|
|
211
|
+
"es": "Reglas de Scorecards Ejecutivos"
|
|
212
|
+
}
|
|
213
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# Índice de Reglas de Gobernanza
|
|
2
|
+
|
|
3
|
+
Reglas para la herencia federada y la validación de contratos de satélites.
|
|
4
|
+
|
|
5
|
+
| Conjunto de Reglas | Archivo | Descripción |
|
|
6
|
+
|---|---|---|
|
|
7
|
+
| **Reglas de Herencia** | [inheritance.rules.json](./inheritance.rules.json) | Cómo los satélites heredan reglas de Evolith Core |
|
|
8
|
+
| **Contratos de Satélites** | [satellite-contracts.rules.json](./satellite-contracts.rules.json) | Campos requeridos y opcionales de evolith.yaml |
|
|
9
|
+
| **Ingesta de Conocimiento** | [knowledge-intake.rules.json](./knowledge-intake.rules.json) | Procedencia, revisión de Winston y evidencia de promoción para conocimiento externo |
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
Volver al [Rulesets Hub](../README.es.md)
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# Governance Rules Index
|
|
2
|
+
|
|
3
|
+
Rules for federated inheritance and satellite contract validation.
|
|
4
|
+
|
|
5
|
+
| Rule Set | File | Description |
|
|
6
|
+
|---|---|---|
|
|
7
|
+
| **Inheritance Rules** | [inheritance.rules.json](./inheritance.rules.json) | How satellites inherit rules from Evolith Core |
|
|
8
|
+
| **Satellite Contracts** | [satellite-contracts.rules.json](./satellite-contracts.rules.json) | Required and optional evolith.yaml fields |
|
|
9
|
+
| **Knowledge Intake** | [knowledge-intake.rules.json](./knowledge-intake.rules.json) | Provenance, Winston review, and promotion evidence for external knowledge |
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
Back to [Rulesets Hub](../README.md)
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "../schema/ruleset-standard.schema.json",
|
|
3
|
+
"$id": "https://evolith.dev/rulesets/governance/abac-mcp-access.rules.json",
|
|
4
|
+
"title": "Reglas de Control de Acceso ABAC para Herramientas MCP",
|
|
5
|
+
"description": "Reglas de Control de Acceso Basado en Atributos para ejecución de herramientas MCP agénticas. Contraparte nativa TypeScript de abac-mcp-tool-access.rego. Implementa ADR-0087 Paridad Dual-Engine (R-25).",
|
|
6
|
+
"version": "1.0.0",
|
|
7
|
+
"effectiveDate": "2026-06-26",
|
|
8
|
+
"scope": "satellite",
|
|
9
|
+
"category": "security",
|
|
10
|
+
"adrRef": "reference/architecture/adrs/core/0087-abac-agentic-tool-execution.md",
|
|
11
|
+
"opaRef": "rulesets/opa/abac-mcp-tool-access.rego",
|
|
12
|
+
"rules": [
|
|
13
|
+
{
|
|
14
|
+
"id": "ABAC-01",
|
|
15
|
+
"severity": "MUST",
|
|
16
|
+
"category": "control-de-acceso",
|
|
17
|
+
"title": "El Acceso a Herramientas Requiere Autorización",
|
|
18
|
+
"description": "Las llamadas a herramientas MCP DEBEN estar autorizadas. Una llamada es denegada cuando: (a) una regla explícita de denegación se activa (herramienta de deploy en producción para no-arquitecto), o (b) ninguna regla de permiso aplica (el usuario carece del rol requerido para la clasificación de la herramienta). Jerarquía de roles: read_only (viewer, auditor) → developer/qa → operator/sre → architect/admin.",
|
|
19
|
+
"validationQuery": "Verificar que la política ABAC otorga allow y ningún deny se activa para la llamada, dados user.roles y environment.",
|
|
20
|
+
"blocking": true
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"id": "ABAC-02",
|
|
24
|
+
"severity": "MUST",
|
|
25
|
+
"category": "control-de-acceso",
|
|
26
|
+
"title": "El Contexto de Usuario Debe Contener Roles",
|
|
27
|
+
"description": "El contexto de ejecución de herramientas MCP DEBE incluir al menos un rol en el array user.roles. Un array de roles vacío provoca que todas las llamadas sean denegadas — no existe estado de usuario autenticado sin rol.",
|
|
28
|
+
"validationQuery": "Verificar que el array user.roles no está vacío antes de permitir cualquier ejecución de herramienta.",
|
|
29
|
+
"blocking": true
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
"id": "ABAC-03",
|
|
33
|
+
"severity": "MUST",
|
|
34
|
+
"category": "control-de-acceso",
|
|
35
|
+
"title": "La Herramienta Debe Estar Clasificada en el Registro",
|
|
36
|
+
"description": "La herramienta solicitada DEBE aparecer en uno de los tres conjuntos de clasificación: read_tools, write_tools o deploy_tools. Las herramientas no clasificadas son denegadas. La clasificación de herramientas se mantiene en el registro de política ABAC y se actualiza mediante revisión del Architecture Board.",
|
|
37
|
+
"validationQuery": "Verificar que tool_name existe en el registro de clasificación read_tools, write_tools o deploy_tools.",
|
|
38
|
+
"blocking": true
|
|
39
|
+
}
|
|
40
|
+
]
|
|
41
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "../schema/ruleset-standard.schema.json",
|
|
3
|
+
"$id": "https://evolith.dev/rulesets/governance/abac-mcp-access.rules.json",
|
|
4
|
+
"title": "ABAC MCP Tool Access Rules",
|
|
5
|
+
"description": "Attribute-Based Access Control rules for agentic MCP tool execution. Native TypeScript counterpart to abac-mcp-tool-access.rego. Implements ADR-0087 Dual-Engine Parity (R-25).",
|
|
6
|
+
"version": "1.0.0",
|
|
7
|
+
"effectiveDate": "2026-06-26",
|
|
8
|
+
"scope": "satellite",
|
|
9
|
+
"category": "security",
|
|
10
|
+
"adrRef": "reference/architecture/adrs/core/0087-abac-agentic-tool-execution.md",
|
|
11
|
+
"opaRef": "rulesets/opa/abac-mcp-tool-access.rego",
|
|
12
|
+
"rules": [
|
|
13
|
+
{
|
|
14
|
+
"id": "ABAC-01",
|
|
15
|
+
"severity": "MUST",
|
|
16
|
+
"category": "access-control",
|
|
17
|
+
"title": "Tool Access Requires Authorization",
|
|
18
|
+
"description": "MCP tool calls MUST be authorized. A tool call is denied when: (a) an explicit deny rule fires (deploy tool in production for non-architect), or (b) no allow rule matches (user lacks the required role for the tool classification). Role hierarchy: read_only (viewer, auditor) → developer/qa → operator/sre → architect/admin.",
|
|
19
|
+
"validationQuery": "Verify ABAC policy grants allow and no deny fires for the tool call, given user.roles and environment.",
|
|
20
|
+
"blocking": true
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"id": "ABAC-02",
|
|
24
|
+
"severity": "MUST",
|
|
25
|
+
"category": "access-control",
|
|
26
|
+
"title": "User Context Must Carry Roles",
|
|
27
|
+
"description": "The MCP tool execution context MUST include at least one role in the user.roles array. An empty roles array causes all tool calls to be denied — no authenticated-but-roleless state is permitted.",
|
|
28
|
+
"validationQuery": "Verify user.roles array is non-empty before allowing any tool execution.",
|
|
29
|
+
"blocking": true
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
"id": "ABAC-03",
|
|
33
|
+
"severity": "MUST",
|
|
34
|
+
"category": "access-control",
|
|
35
|
+
"title": "Tool Must Be Classified in the Tool Registry",
|
|
36
|
+
"description": "The requested tool MUST appear in one of the three classification sets: read_tools, write_tools, or deploy_tools. Unclassified tools are denied. Tool classification is maintained in the ABAC policy registry and updated via Architecture Board review.",
|
|
37
|
+
"validationQuery": "Verify tool_name exists in read_tools, write_tools, or deploy_tools classification registry.",
|
|
38
|
+
"blocking": true
|
|
39
|
+
}
|
|
40
|
+
]
|
|
41
|
+
}
|
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"$id": "https://evolith.dev/rulesets/governance/executive-scorecards.rules.json",
|
|
4
|
+
"title": "Reglas de Scorecards Ejecutivos",
|
|
5
|
+
"description": "Reglas que codifican métricas DORA y SPACE para visibilidad ejecutiva. Estas reglas aseguran Predictibilidad, Adherencia (Architecture Drift Index), y Eficiencia en productos satélite.",
|
|
6
|
+
"version": "1.0.0",
|
|
7
|
+
"effectiveDate": "2026-06-06",
|
|
8
|
+
"scope": "satellite",
|
|
9
|
+
"category": "executive-metrics",
|
|
10
|
+
"principles": [
|
|
11
|
+
{
|
|
12
|
+
"id": "DORA-01",
|
|
13
|
+
"principle": "Frecuencia de Despliegue",
|
|
14
|
+
"statement": "Los productos satélite DEBEN medir y reportar frecuencia de despliegue. Objetivo: al menos una vez por semana a producción.",
|
|
15
|
+
"rationale": "Evolith Product Vision §6: Frecuencia de Despliegue es una métrica DORA core. Alta frecuencia indica pipeline CD saludable.",
|
|
16
|
+
"severity": "MUST",
|
|
17
|
+
"validationQuery": "CI/CD pipeline exporta métrica de frecuencia de despliegue. Reporte muestra deployments/semana a producción.",
|
|
18
|
+
"blocking": false,
|
|
19
|
+
"metrics": {
|
|
20
|
+
"name": "Deployment Frequency",
|
|
21
|
+
"unit": "despliegues por semana",
|
|
22
|
+
"target": ">= 1",
|
|
23
|
+
"measurement": "Count de despliegues a producción en últimas 4 semanas / 4",
|
|
24
|
+
"dashboardRequired": true
|
|
25
|
+
},
|
|
26
|
+
"references": [
|
|
27
|
+
"reference/governance/standards/vision/evolith-product-vision-master.es.md#6-executive-vision-scorecards"
|
|
28
|
+
]
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
"id": "DORA-02",
|
|
32
|
+
"principle": "Lead Time para Cambios",
|
|
33
|
+
"statement": "Los productos satélite DEBEN medir y reportar lead time desde commit a producción. Objetivo: menos de 7 días para cambios medianos.",
|
|
34
|
+
"rationale": "Evolith Product Vision §6: Lead Time mide qué tan rápido los cambios fluyen de commit a producción. Lead time corto indica pipeline eficiente.",
|
|
35
|
+
"severity": "MUST",
|
|
36
|
+
"validationQuery": "CI/CD pipeline exporta métrica de lead time. Reporte muestra días mediana desde primer commit a despliegue a producción.",
|
|
37
|
+
"blocking": false,
|
|
38
|
+
"metrics": {
|
|
39
|
+
"name": "Lead Time for Changes",
|
|
40
|
+
"unit": "días",
|
|
41
|
+
"target": "<= 7",
|
|
42
|
+
"measurement": "Tiempo mediana desde primer commit de un cambio a despliegue a producción",
|
|
43
|
+
"dashboardRequired": true
|
|
44
|
+
},
|
|
45
|
+
"references": [
|
|
46
|
+
"reference/governance/standards/vision/evolith-product-vision-master.es.md#6-executive-vision-scorecards"
|
|
47
|
+
]
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
"id": "DORA-03",
|
|
51
|
+
"principle": "Tasa de Fallo en Cambios",
|
|
52
|
+
"statement": "Los productos satélite DEBEN medir y reportar tasa de fallo en cambios. Objetivo: menos de 15% de despliegues causan fallos.",
|
|
53
|
+
"rationale": "Evolith Product Vision §6: Change Failure Rate mide el porcentaje de despliegues que causan fallos en producción.",
|
|
54
|
+
"severity": "MUST",
|
|
55
|
+
"validationQuery": "CI/CD pipeline exporta tasa de fallo en cambios. Reporte muestra % de despliegues que requieren rollback o hotfix.",
|
|
56
|
+
"blocking": false,
|
|
57
|
+
"metrics": {
|
|
58
|
+
"name": "Change Failure Rate",
|
|
59
|
+
"unit": "porcentaje",
|
|
60
|
+
"target": "<= 15%",
|
|
61
|
+
"measurement": "(Despliegues fallidos / Total despliegues) * 100 en últimas 4 semanas",
|
|
62
|
+
"dashboardRequired": true
|
|
63
|
+
},
|
|
64
|
+
"references": [
|
|
65
|
+
"reference/governance/standards/vision/evolith-product-vision-master.es.md#6-executive-vision-scorecards"
|
|
66
|
+
]
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
"id": "DORA-04",
|
|
70
|
+
"principle": "Tiempo para Restaurar",
|
|
71
|
+
"statement": "Los productos satélite DEBEN medir y reportar MTTR (Mean Time To Restore). Objetivo: menos de 1 hora para fallos críticos.",
|
|
72
|
+
"rationale": "Evolith Product Vision §6: Time to Restore mide qué tan rápido el equipo se recupera de fallos. MTTR bajo indica respuesta a incidentes efectiva.",
|
|
73
|
+
"severity": "MUST",
|
|
74
|
+
"validationQuery": "Sistema de gestión de incidentes exporta MTTR. Reporte muestra horas mediana desde detección de fallo a restauración de servicio.",
|
|
75
|
+
"blocking": false,
|
|
76
|
+
"metrics": {
|
|
77
|
+
"name": "Time to Restore",
|
|
78
|
+
"unit": "horas",
|
|
79
|
+
"target": "<= 1",
|
|
80
|
+
"measurement": "Tiempo mediana desde detección de fallo a restauración para incidentes P1/P2",
|
|
81
|
+
"dashboardRequired": true
|
|
82
|
+
},
|
|
83
|
+
"references": [
|
|
84
|
+
"reference/governance/standards/vision/evolith-product-vision-master.es.md#6-executive-vision-scorecards"
|
|
85
|
+
]
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
"id": "SPACE-01",
|
|
89
|
+
"principle": "Confiabilidad (Observabilidad)",
|
|
90
|
+
"statement": "Los productos satélite DEBEN tener infraestructura de observabilidad (traces, logs, metrics) operativa en producción.",
|
|
91
|
+
"rationale": "Evolith Product Vision §6: Confiabilidad asegura que los sistemas de producción sean observables. ADR-0007 de Evolith mandates OpenTelemetry.",
|
|
92
|
+
"severity": "MUST",
|
|
93
|
+
"validationQuery": "Dashboard de observabilidad de producción accesible. Traces OpenTelemetry fluyendo. Tasa de error < 1%.",
|
|
94
|
+
"blocking": true,
|
|
95
|
+
"metrics": {
|
|
96
|
+
"name": "Error Rate",
|
|
97
|
+
"unit": "porcentaje",
|
|
98
|
+
"target": "<= 1%",
|
|
99
|
+
"measurement": "(Requests fallidos / Total requests) * 100 en últimas 24 horas",
|
|
100
|
+
"dashboardRequired": true
|
|
101
|
+
},
|
|
102
|
+
"references": [
|
|
103
|
+
"reference/governance/standards/vision/evolith-product-vision-master.es.md#6-executive-vision-scorecards",
|
|
104
|
+
"reference/architecture/adrs/nodejs/0007-observability-telemetry-loki-opentelemetry.es.md"
|
|
105
|
+
]
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
"id": "SPACE-02",
|
|
109
|
+
"principle": "Cultura (Salud del Equipo)",
|
|
110
|
+
"statement": "Los productos satélite DEBERÍAN medir salud del equipo trimestralmente. Objetivo: > 70% sentimiento positivo.",
|
|
111
|
+
"rationale": "Evolith Product Vision §6: Cultura mide satisfacción y salud del equipo. Equipos saludables envían mayor calidad.",
|
|
112
|
+
"severity": "SHOULD",
|
|
113
|
+
"validationQuery": "Encuesta de salud de equipo conducida trimestralmente. Resultados almacenados en documentación del producto. Tendencia rastreada.",
|
|
114
|
+
"blocking": false,
|
|
115
|
+
"metrics": {
|
|
116
|
+
"name": "Team Health Score",
|
|
117
|
+
"unit": "porcentaje",
|
|
118
|
+
"target": ">= 70%",
|
|
119
|
+
"measurement": "% respuestas positivas en encuesta trimestral de salud de equipo",
|
|
120
|
+
"dashboardRequired": false
|
|
121
|
+
},
|
|
122
|
+
"references": [
|
|
123
|
+
"reference/governance/standards/vision/evolith-product-vision-master.es.md#6-executive-vision-scorecards"
|
|
124
|
+
]
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
"id": "SPACE-03",
|
|
128
|
+
"principle": "Ejecución (Throughput)",
|
|
129
|
+
"statement": "Los productos satélite DEBEN medir y reportar throughput de sprint. Objetivo: > 80% del trabajo comprometido entregado.",
|
|
130
|
+
"rationale": "Evolith Product Vision §6: Ejecución mide efectividad de entrega. Throughput consistente indica pipeline predecible.",
|
|
131
|
+
"severity": "SHOULD",
|
|
132
|
+
"validationQuery": "Métricas de sprint exportadas. Reporte muestra % de story points entregados vs comprometidos en últimos 4 sprints.",
|
|
133
|
+
"blocking": false,
|
|
134
|
+
"metrics": {
|
|
135
|
+
"name": "Sprint Throughput",
|
|
136
|
+
"unit": "porcentaje",
|
|
137
|
+
"target": ">= 80%",
|
|
138
|
+
"measurement": "(Story points entregados / Story points comprometidos) * 100 en últimos 4 sprints",
|
|
139
|
+
"dashboardRequired": true
|
|
140
|
+
},
|
|
141
|
+
"references": [
|
|
142
|
+
"reference/governance/standards/vision/evolith-product-vision-master.es.md#6-executive-vision-scorecards"
|
|
143
|
+
]
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
"id": "SPACE-04",
|
|
147
|
+
"principle": "Comunicación (Visibilidad)",
|
|
148
|
+
"statement": "Los productos satélite DEBEN tener estado SDLC actual visible para todos los stakeholders. Objetivo: estado de phase gate actualizado dentro de 24h.",
|
|
149
|
+
"rationale": "Evolith Product Vision §6: Comunicación asegura que los stakeholders tengan visibilidad en tiempo real del estado de desarrollo.",
|
|
150
|
+
"severity": "SHOULD",
|
|
151
|
+
"validationQuery": "Tablero de estado de phase gates accesible. Actualizaciones hechas dentro de 24h de cambio de estado. Todos los stakeholders tienen acceso.",
|
|
152
|
+
"blocking": false,
|
|
153
|
+
"metrics": {
|
|
154
|
+
"name": "Gate Status Freshness",
|
|
155
|
+
"unit": "horas",
|
|
156
|
+
"target": "<= 24",
|
|
157
|
+
"measurement": "Tiempo máximo entre cambio de estado y actualización del tablero de estado",
|
|
158
|
+
"dashboardRequired": true
|
|
159
|
+
},
|
|
160
|
+
"references": [
|
|
161
|
+
"reference/governance/standards/vision/evolith-product-vision-master.es.md#6-executive-vision-scorecards"
|
|
162
|
+
]
|
|
163
|
+
},
|
|
164
|
+
{
|
|
165
|
+
"id": "SPACE-05",
|
|
166
|
+
"principle": "Patrocinio (Alineación de Liderazgo)",
|
|
167
|
+
"statement": "Los productos satélite DEBEN tener sponsor ejecutivo asignado y activamente engajado. Sponsor debe revisar estado trimestralmente.",
|
|
168
|
+
"rationale": "Evolith Product Vision §6: Patrocinio asegura alineación de liderazgo. Patrocinio activo previene drift estratégico.",
|
|
169
|
+
"severity": "MUST",
|
|
170
|
+
"validationQuery": "evolith.yaml incluye campo governance.executiveSponsor. Reunión de revisión trimestral documentada.",
|
|
171
|
+
"blocking": false,
|
|
172
|
+
"metrics": {
|
|
173
|
+
"name": "Executive Engagement",
|
|
174
|
+
"unit": "revisiones por trimestre",
|
|
175
|
+
"target": ">= 1",
|
|
176
|
+
"measurement": "Count de revisiones de sponsor ejecutivo en trimestre pasado",
|
|
177
|
+
"dashboardRequired": false
|
|
178
|
+
},
|
|
179
|
+
"references": [
|
|
180
|
+
"reference/governance/standards/vision/evolith-product-vision-master.es.md#6-executive-vision-scorecards"
|
|
181
|
+
]
|
|
182
|
+
},
|
|
183
|
+
{
|
|
184
|
+
"id": "DRIFT-01",
|
|
185
|
+
"principle": "Architecture Drift Index",
|
|
186
|
+
"statement": "Los productos satélite DEBEN medir y reportar Architecture Drift Index. Objetivo: < 10% drift de estándares Evolith Core.",
|
|
187
|
+
"rationale": "Evolith Product Vision §6: Adherencia medida via Architecture Drift Index. Drift > umbral indica erosión de gobernanza.",
|
|
188
|
+
"severity": "MUST",
|
|
189
|
+
"validationQuery": "Comando evolith validate ejecutado mensualmente. Reporte muestra % de reglas fallidas vs total aplicables.",
|
|
190
|
+
"blocking": false,
|
|
191
|
+
"metrics": {
|
|
192
|
+
"name": "Architecture Drift Index",
|
|
193
|
+
"unit": "porcentaje",
|
|
194
|
+
"target": "<= 10%",
|
|
195
|
+
"measurement": "(Reglas fallidas / Total reglas aplicables) * 100",
|
|
196
|
+
"dashboardRequired": true
|
|
197
|
+
},
|
|
198
|
+
"references": [
|
|
199
|
+
"reference/governance/standards/vision/evolith-product-vision-master.es.md#6-executive-vision-scorecards"
|
|
200
|
+
]
|
|
201
|
+
}
|
|
202
|
+
],
|
|
203
|
+
"governance": {
|
|
204
|
+
"complianceVerification": "Métricas DORA+SPACE verificadas trimestralmente durante revisión de gobernanza. Comando evolith validate proporciona drift index.",
|
|
205
|
+
"exceptionProcess": "Revisión del Architecture Board requerida cuando cualquier métrica excede objetivo por 2+ trimestres consecutivos.",
|
|
206
|
+
"dashboardRequirements": "Métricas marcadas dashboardRequired: true DEBEN ser visibles en Evolith Tracker o dashboard ejecutivo equivalente.",
|
|
207
|
+
"reportingCadence": "Métricas DORA reportadas mensualmente. Métricas SPACE reportadas trimestralmente."
|
|
208
|
+
},
|
|
209
|
+
"bilingual": {
|
|
210
|
+
"en": "Executive Scorecards Rules",
|
|
211
|
+
"es": "Reglas de Scorecards Ejecutivos"
|
|
212
|
+
}
|
|
213
|
+
}
|