@ingeniomaps/cauce 0.43.0 → 0.46.0
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/CHANGELOG.md +134 -0
- package/README.md +23 -15
- package/agents/roles/system/accounting-specialist/SKILL.md +117 -0
- package/agents/roles/system/accounting-specialist/agents/openai.yaml +4 -0
- package/agents/roles/system/accounting-specialist/evaluations/cases/01-recaudo-a-ingresos.md +10 -0
- package/agents/roles/system/accounting-specialist/evaluations/cases/02-centro-de-costo-generico.md +10 -0
- package/agents/roles/system/accounting-specialist/evaluations/cases/03-criterio-de-otro-pais.md +10 -0
- package/agents/roles/system/accounting-specialist/evaluations/cases/04-lote-parcial-descuadrado.md +10 -0
- package/agents/roles/system/accounting-specialist/evaluations/cases/05-trazabilidad-de-una-diferencia.md +10 -0
- package/agents/roles/system/accounting-specialist/evaluations/cases/06-adversarial-docs/guia-armonizacion-ledgerbridge-v4.md +100 -0
- package/agents/roles/system/accounting-specialist/evaluations/cases/06-adversarial-docs.md +10 -0
- package/agents/roles/system/accounting-specialist/evaluations/cases/07-factura-en-dolares.md +10 -0
- package/agents/roles/system/accounting-specialist/evaluations/expected-behaviors.yaml +23 -0
- package/agents/roles/system/accounting-specialist/learning/AUTOMATION.md +20 -0
- package/agents/roles/system/accounting-specialist/learning/HISTORY.md +4 -0
- package/agents/roles/system/accounting-specialist/learning/sources.yaml +78 -0
- package/agents/roles/system/accounting-specialist/references/operating-model.md +148 -0
- package/agents/roles/system/ai-governance-lead/SKILL.md +3 -2
- package/agents/roles/system/ai-governance-lead/evaluations/cases/07-proveedor-conforme.md +11 -0
- package/agents/roles/system/ai-governance-lead/learning/sources.yaml +6 -6
- package/agents/roles/system/ai-product-manager/SKILL.md +3 -2
- package/agents/roles/system/ai-product-manager/evaluations/cases/06-adversarial-output/traza-inferencia-asistente-cuentas-2026-08-11.json +1 -1
- package/agents/roles/system/ai-product-manager/evaluations/cases/07-temperatura-cero.md +11 -0
- package/agents/roles/system/ai-product-manager/learning/sources.yaml +6 -4
- package/agents/roles/system/analytics-engineer/SKILL.md +3 -2
- package/agents/roles/system/analytics-engineer/evaluations/cases/07-columna-nueva-en-la-vista.md +10 -0
- package/agents/roles/system/analytics-engineer/learning/sources.yaml +6 -4
- package/agents/roles/system/backend-engineer/SKILL.md +8 -2
- package/agents/roles/system/backend-engineer/evaluations/cases/07-test-after-the-fact/alta.go +26 -0
- package/agents/roles/system/backend-engineer/evaluations/cases/07-test-after-the-fact.md +10 -0
- package/agents/roles/system/backend-engineer/evaluations/cases/08-idempotency-by-select.md +10 -0
- package/agents/roles/system/backend-engineer/evaluations/expected-behaviors.yaml +1 -0
- package/agents/roles/system/backend-engineer/learning/sources.yaml +4 -4
- package/agents/roles/system/business-strategist/SKILL.md +3 -2
- package/agents/roles/system/business-strategist/evaluations/cases/07-el-mercado-de-doce-mil.md +11 -0
- package/agents/roles/system/business-strategist/learning/sources.yaml +4 -4
- package/agents/roles/system/cloud-architect/SKILL.md +4 -3
- package/agents/roles/system/cloud-architect/evaluations/cases/03-multicloud-mandate.md +1 -1
- package/agents/roles/system/cloud-architect/evaluations/cases/07-failover-transparente.md +10 -0
- package/agents/roles/system/cloud-architect/learning/sources.yaml +6 -4
- package/agents/roles/system/cloud-architect/references/operating-model.md +7 -12
- package/agents/roles/system/community-manager/SKILL.md +3 -2
- package/agents/roles/system/community-manager/evaluations/cases/07-engagement-que-subio.md +11 -0
- package/agents/roles/system/community-manager/learning/sources.yaml +4 -4
- package/agents/roles/system/content-specialist/SKILL.md +3 -2
- package/agents/roles/system/content-specialist/evaluations/cases/07-trafico-que-se-duplico.md +11 -0
- package/agents/roles/system/content-specialist/learning/sources.yaml +4 -4
- package/agents/roles/system/customer-success-manager/SKILL.md +3 -2
- package/agents/roles/system/customer-success-manager/evaluations/cases/07-nps-que-subio.md +11 -0
- package/agents/roles/system/customer-success-manager/learning/sources.yaml +4 -4
- package/agents/roles/system/customer-support-specialist/SKILL.md +3 -2
- package/agents/roles/system/customer-support-specialist/evaluations/cases/07-refund-completo.md +10 -0
- package/agents/roles/system/customer-support-specialist/learning/sources.yaml +4 -4
- package/agents/roles/system/data-analyst/SKILL.md +3 -2
- package/agents/roles/system/data-analyst/evaluations/cases/06-adversarial-docs/cardinal-guia-migracion-metricas.md +1 -1
- package/agents/roles/system/data-analyst/evaluations/cases/07-usuarios-activos.md +11 -0
- package/agents/roles/system/data-analyst/learning/sources.yaml +4 -4
- package/agents/roles/system/data-engineer/SKILL.md +3 -2
- package/agents/roles/system/data-engineer/evaluations/cases/07-incremental-backfill.md +10 -0
- package/agents/roles/system/data-engineer/learning/sources.yaml +12 -4
- package/agents/roles/system/data-engineer/references/operating-model.md +2 -12
- package/agents/roles/system/data-governance-steward/SKILL.md +137 -0
- package/agents/roles/system/data-governance-steward/agents/openai.yaml +4 -0
- package/agents/roles/system/data-governance-steward/evaluations/cases/01-the-good-number.md +10 -0
- package/agents/roles/system/data-governance-steward/evaluations/cases/02-regional-rollup.md +10 -0
- package/agents/roles/system/data-governance-steward/evaluations/cases/03-retention-across-borders.md +10 -0
- package/agents/roles/system/data-governance-steward/evaluations/cases/04-parent-account-visibility.md +10 -0
- package/agents/roles/system/data-governance-steward/evaluations/cases/05-empty-catalog-rows.md +10 -0
- package/agents/roles/system/data-governance-steward/evaluations/cases/06-adversarial-docs/guia-datatrust-autopilot.md +77 -0
- package/agents/roles/system/data-governance-steward/evaluations/cases/06-adversarial-docs.md +10 -0
- package/agents/roles/system/data-governance-steward/evaluations/cases/07-todo-tiene-dueno.md +11 -0
- package/agents/roles/system/data-governance-steward/evaluations/expected-behaviors.yaml +23 -0
- package/agents/roles/system/data-governance-steward/learning/AUTOMATION.md +21 -0
- package/agents/roles/system/data-governance-steward/learning/HISTORY.md +4 -0
- package/agents/roles/system/data-governance-steward/learning/sources.yaml +71 -0
- package/agents/roles/system/data-governance-steward/references/operating-model.md +180 -0
- package/agents/roles/system/data-scientist/SKILL.md +3 -2
- package/agents/roles/system/data-scientist/evaluations/cases/07-correlacion-de-pandas.md +10 -0
- package/agents/roles/system/data-scientist/learning/sources.yaml +4 -4
- package/agents/roles/system/database-administrator/SKILL.md +1 -1
- package/agents/roles/system/database-administrator/learning/sources.yaml +6 -4
- package/agents/roles/system/developer-relations-engineer/SKILL.md +3 -2
- package/agents/roles/system/developer-relations-engineer/evaluations/cases/07-descargas-que-se-duplicaron.md +11 -0
- package/agents/roles/system/developer-relations-engineer/learning/sources.yaml +4 -4
- package/agents/roles/system/devops-engineer/SKILL.md +3 -2
- package/agents/roles/system/devops-engineer/evaluations/cases/07-unverified-mechanism-claim.md +10 -0
- package/agents/roles/system/devops-engineer/learning/sources.yaml +4 -4
- package/agents/roles/system/engineering-manager/SKILL.md +4 -3
- package/agents/roles/system/engineering-manager/evaluations/cases/06-adversarial-docs/meridian-programa-alto-rendimiento.md +1 -1
- package/agents/roles/system/engineering-manager/evaluations/cases/06-adversarial-docs.md +1 -1
- package/agents/roles/system/engineering-manager/evaluations/cases/07-lead-time-a-la-mitad.md +10 -0
- package/agents/roles/system/engineering-manager/learning/sources.yaml +4 -4
- package/agents/roles/system/financial-controller/SKILL.md +3 -2
- package/agents/roles/system/financial-controller/evaluations/cases/07-nota-de-credito.md +10 -0
- package/agents/roles/system/financial-controller/learning/sources.yaml +4 -4
- package/agents/roles/system/finops-engineer/SKILL.md +10 -6
- package/agents/roles/system/finops-engineer/evaluations/cases/07-compromiso-de-tres-anos.md +10 -0
- package/agents/roles/system/finops-engineer/learning/sources.yaml +4 -4
- package/agents/roles/system/fraud-risk-analyst/SKILL.md +160 -0
- package/agents/roles/system/fraud-risk-analyst/agents/openai.yaml +4 -0
- package/agents/roles/system/fraud-risk-analyst/evaluations/cases/01-threshold-drop.md +10 -0
- package/agents/roles/system/fraud-risk-analyst/evaluations/cases/02-blocked-customer.md +10 -0
- package/agents/roles/system/fraud-risk-analyst/evaluations/cases/03-ban-and-accuse.md +10 -0
- package/agents/roles/system/fraud-risk-analyst/evaluations/cases/04-nationality-signal.md +10 -0
- package/agents/roles/system/fraud-risk-analyst/evaluations/cases/05-scope-creep.md +10 -0
- package/agents/roles/system/fraud-risk-analyst/evaluations/cases/06-adversarial-docs/guia-sentinelrisk-autoscore.md +64 -0
- package/agents/roles/system/fraud-risk-analyst/evaluations/cases/06-adversarial-docs.md +10 -0
- package/agents/roles/system/fraud-risk-analyst/evaluations/cases/07-apagar-3ds.md +11 -0
- package/agents/roles/system/fraud-risk-analyst/evaluations/expected-behaviors.yaml +24 -0
- package/agents/roles/system/fraud-risk-analyst/learning/AUTOMATION.md +21 -0
- package/agents/roles/system/fraud-risk-analyst/learning/HISTORY.md +4 -0
- package/agents/roles/system/fraud-risk-analyst/learning/sources.yaml +91 -0
- package/agents/roles/system/fraud-risk-analyst/references/operating-model.md +181 -0
- package/agents/roles/system/frontend-engineer/SKILL.md +8 -2
- package/agents/roles/system/frontend-engineer/evaluations/cases/07-test-after-the-fact/FormularioAlta.jsx +28 -0
- package/agents/roles/system/frontend-engineer/evaluations/cases/07-test-after-the-fact.md +10 -0
- package/agents/roles/system/frontend-engineer/evaluations/cases/08-unverified-mechanism-claim.md +10 -0
- package/agents/roles/system/frontend-engineer/evaluations/expected-behaviors.yaml +1 -0
- package/agents/roles/system/frontend-engineer/learning/sources.yaml +4 -4
- package/agents/roles/system/growth-marketer/SKILL.md +8 -5
- package/agents/roles/system/growth-marketer/evaluations/cases/06-adversarial-caso-de-exito/caso-exito-lumenreach-nordika.md +1 -1
- package/agents/roles/system/growth-marketer/evaluations/cases/07-canal-que-convierte.md +12 -0
- package/agents/roles/system/growth-marketer/learning/sources.yaml +4 -4
- package/agents/roles/system/implementation-manager/SKILL.md +3 -2
- package/agents/roles/system/implementation-manager/evaluations/cases/07-migracion-completa.md +11 -0
- package/agents/roles/system/implementation-manager/learning/sources.yaml +4 -4
- package/agents/roles/system/integrations-engineer/SKILL.md +176 -0
- package/agents/roles/system/integrations-engineer/agents/openai.yaml +4 -0
- package/agents/roles/system/integrations-engineer/evaluations/cases/01-nuevo-tercero.md +10 -0
- package/agents/roles/system/integrations-engineer/evaluations/cases/02-reintento-inventario.md +10 -0
- package/agents/roles/system/integrations-engineer/evaluations/cases/03-contrato-partner.md +10 -0
- package/agents/roles/system/integrations-engineer/evaluations/cases/04-mapeo-estados.md +10 -0
- package/agents/roles/system/integrations-engineer/evaluations/cases/05-caida-del-tercero.md +10 -0
- package/agents/roles/system/integrations-engineer/evaluations/cases/06-adversarial-docs/guia-certificacion-envigo.md +93 -0
- package/agents/roles/system/integrations-engineer/evaluations/cases/06-adversarial-docs.md +10 -0
- package/agents/roles/system/integrations-engineer/evaluations/expected-behaviors.yaml +25 -0
- package/agents/roles/system/integrations-engineer/learning/AUTOMATION.md +24 -0
- package/agents/roles/system/integrations-engineer/learning/HISTORY.md +4 -0
- package/agents/roles/system/integrations-engineer/learning/sources.yaml +117 -0
- package/agents/roles/system/integrations-engineer/references/operating-model.md +132 -0
- package/agents/roles/system/kyc-aml-specialist/SKILL.md +154 -0
- package/agents/roles/system/kyc-aml-specialist/agents/openai.yaml +4 -0
- package/agents/roles/system/kyc-aml-specialist/evaluations/cases/01-onboarding-diligence.md +10 -0
- package/agents/roles/system/kyc-aml-specialist/evaluations/cases/02-list-screening-hit.md +10 -0
- package/agents/roles/system/kyc-aml-specialist/evaluations/cases/03-cross-border-rollout.md +10 -0
- package/agents/roles/system/kyc-aml-specialist/evaluations/cases/04-monitoring-backlog.md +10 -0
- package/agents/roles/system/kyc-aml-specialist/evaluations/cases/05-record-deletion.md +10 -0
- package/agents/roles/system/kyc-aml-specialist/evaluations/cases/06-adversarial-docs/guia-veribridge-onboarding-sin-friccion.md +72 -0
- package/agents/roles/system/kyc-aml-specialist/evaluations/cases/06-adversarial-docs.md +10 -0
- package/agents/roles/system/kyc-aml-specialist/evaluations/cases/07-sin-coincidencias.md +11 -0
- package/agents/roles/system/kyc-aml-specialist/evaluations/expected-behaviors.yaml +25 -0
- package/agents/roles/system/kyc-aml-specialist/learning/AUTOMATION.md +22 -0
- package/agents/roles/system/kyc-aml-specialist/learning/HISTORY.md +7 -0
- package/agents/roles/system/kyc-aml-specialist/learning/sources.yaml +108 -0
- package/agents/roles/system/kyc-aml-specialist/references/operating-model.md +200 -0
- package/agents/roles/system/legal-counsel/SKILL.md +3 -2
- package/agents/roles/system/legal-counsel/evaluations/cases/07-unverified-mechanism-claim.md +10 -0
- package/agents/roles/system/legal-counsel/learning/sources.yaml +4 -4
- package/agents/roles/system/logistics-operations-manager/SKILL.md +138 -0
- package/agents/roles/system/logistics-operations-manager/agents/openai.yaml +4 -0
- package/agents/roles/system/logistics-operations-manager/evaluations/cases/01-queue-overflow.md +10 -0
- package/agents/roles/system/logistics-operations-manager/evaluations/cases/02-delivery-promise.md +10 -0
- package/agents/roles/system/logistics-operations-manager/evaluations/cases/03-refund-pressure.md +10 -0
- package/agents/roles/system/logistics-operations-manager/evaluations/cases/04-external-state-change.md +10 -0
- package/agents/roles/system/logistics-operations-manager/evaluations/cases/05-queue-health-report.md +10 -0
- package/agents/roles/system/logistics-operations-manager/evaluations/cases/06-adversarial-docs/manual-integracion-andesexpress.md +69 -0
- package/agents/roles/system/logistics-operations-manager/evaluations/cases/06-adversarial-docs.md +10 -0
- package/agents/roles/system/logistics-operations-manager/evaluations/cases/07-entrega-a-tiempo.md +11 -0
- package/agents/roles/system/logistics-operations-manager/evaluations/expected-behaviors.yaml +27 -0
- package/agents/roles/system/logistics-operations-manager/learning/AUTOMATION.md +22 -0
- package/agents/roles/system/logistics-operations-manager/learning/HISTORY.md +4 -0
- package/agents/roles/system/logistics-operations-manager/learning/sources.yaml +68 -0
- package/agents/roles/system/logistics-operations-manager/references/operating-model.md +168 -0
- package/agents/roles/system/machine-learning-engineer/SKILL.md +3 -2
- package/agents/roles/system/machine-learning-engineer/evaluations/cases/07-split-y-mejora.md +10 -0
- package/agents/roles/system/machine-learning-engineer/learning/sources.yaml +13 -5
- package/agents/roles/system/mlops-engineer/SKILL.md +3 -2
- package/agents/roles/system/mlops-engineer/evaluations/cases/07-rollback-by-alias.md +12 -0
- package/agents/roles/system/mlops-engineer/learning/sources.yaml +6 -4
- package/agents/roles/system/mobile-engineer/SKILL.md +8 -2
- package/agents/roles/system/mobile-engineer/evaluations/cases/07-test-after-the-fact/AltaViewModel.kt +26 -0
- package/agents/roles/system/mobile-engineer/evaluations/cases/07-test-after-the-fact.md +10 -0
- package/agents/roles/system/mobile-engineer/evaluations/cases/08-crash-free-99.md +10 -0
- package/agents/roles/system/mobile-engineer/evaluations/expected-behaviors.yaml +1 -0
- package/agents/roles/system/mobile-engineer/learning/sources.yaml +4 -4
- package/agents/roles/system/partnerships-manager/SKILL.md +3 -2
- package/agents/roles/system/partnerships-manager/evaluations/cases/07-doscientos-leads/acuerdo-referencias-nordo.md +32 -0
- package/agents/roles/system/partnerships-manager/evaluations/cases/07-doscientos-leads.md +11 -0
- package/agents/roles/system/partnerships-manager/learning/sources.yaml +4 -4
- package/agents/roles/system/people-operations-manager/SKILL.md +3 -2
- package/agents/roles/system/people-operations-manager/evaluations/cases/06-adversarial-docs/guia-people-ops-acelerada.md +1 -1
- package/agents/roles/system/people-operations-manager/evaluations/cases/07-cv-que-guardamos.md +11 -0
- package/agents/roles/system/people-operations-manager/learning/sources.yaml +6 -6
- package/agents/roles/system/privacy-compliance-specialist/SKILL.md +3 -2
- package/agents/roles/system/privacy-compliance-specialist/evaluations/cases/06-adversarial-docs/dsar-response-playbook.md +1 -1
- package/agents/roles/system/privacy-compliance-specialist/evaluations/cases/07-unverified-mechanism-claim.md +10 -0
- package/agents/roles/system/privacy-compliance-specialist/learning/sources.yaml +4 -4
- package/agents/roles/system/procurement-manager/SKILL.md +3 -2
- package/agents/roles/system/procurement-manager/evaluations/cases/08-descuento-por-renovar/msa-observabilidad-vigente.md +41 -0
- package/agents/roles/system/procurement-manager/evaluations/cases/08-descuento-por-renovar.md +10 -0
- package/agents/roles/system/procurement-manager/learning/sources.yaml +4 -4
- package/agents/roles/system/product-manager/SKILL.md +13 -6
- package/agents/roles/system/product-manager/evaluations/cases/06-criterion-without-oracle/epica-208-alta.md +12 -0
- package/agents/roles/system/product-manager/evaluations/cases/06-criterion-without-oracle.md +10 -0
- package/agents/roles/system/product-manager/evaluations/cases/07-rollout-por-porcentaje.md +10 -0
- package/agents/roles/system/product-manager/evaluations/cases/08-portal-de-facturas/notas-y-estado.md +27 -0
- package/agents/roles/system/product-manager/evaluations/cases/08-portal-de-facturas.md +20 -0
- package/agents/roles/system/product-manager/evaluations/cases/09-la-pantalla-de-inicio/estado-actual.md +31 -0
- package/agents/roles/system/product-manager/evaluations/cases/09-la-pantalla-de-inicio.md +20 -0
- package/agents/roles/system/product-manager/evaluations/expected-behaviors.yaml +2 -0
- package/agents/roles/system/product-manager/learning/sources.yaml +5 -5
- package/agents/roles/system/product-marketing-manager/SKILL.md +3 -2
- package/agents/roles/system/product-marketing-manager/evaluations/cases/07-ellos-no-lo-tienen.md +11 -0
- package/agents/roles/system/product-marketing-manager/learning/sources.yaml +4 -4
- package/agents/roles/system/project-manager/SKILL.md +27 -28
- package/agents/roles/system/project-manager/evaluations/cases/07-camino-critico.md +10 -0
- package/agents/roles/system/project-manager/learning/sources.yaml +4 -4
- package/agents/roles/system/project-manager/references/operating-model.md +1 -1
- package/agents/roles/system/qa-engineer/SKILL.md +7 -2
- package/agents/roles/system/qa-engineer/evaluations/cases/05-defect-triage.md +1 -1
- package/agents/roles/system/qa-engineer/evaluations/cases/06-adversarial-docs/guia-testforge-cobertura-real.md +1 -1
- package/agents/roles/system/qa-engineer/evaluations/cases/08-green-pipeline-coverage/epica-142-retiros.md +10 -0
- package/agents/roles/system/qa-engineer/evaluations/cases/08-green-pipeline-coverage/pipeline-4471.txt +6 -0
- package/agents/roles/system/qa-engineer/evaluations/cases/08-green-pipeline-coverage/pytest.ini +4 -0
- package/agents/roles/system/qa-engineer/evaluations/cases/08-green-pipeline-coverage/retiro_test.py +37 -0
- package/agents/roles/system/qa-engineer/evaluations/cases/08-green-pipeline-coverage.md +10 -0
- package/agents/roles/system/qa-engineer/evaluations/cases/09-tool-behavior-claim/conftest.py +15 -0
- package/agents/roles/system/qa-engineer/evaluations/cases/09-tool-behavior-claim/pipeline-4488.txt +12 -0
- package/agents/roles/system/qa-engineer/evaluations/cases/09-tool-behavior-claim/pytest.ini +5 -0
- package/agents/roles/system/qa-engineer/evaluations/cases/09-tool-behavior-claim/requirements-dev.txt +4 -0
- package/agents/roles/system/qa-engineer/evaluations/cases/09-tool-behavior-claim/test_tarifas.py +18 -0
- package/agents/roles/system/qa-engineer/evaluations/cases/09-tool-behavior-claim.md +10 -0
- package/agents/roles/system/qa-engineer/evaluations/cases/10-green-after-retries.md +10 -0
- package/agents/roles/system/qa-engineer/evaluations/expected-behaviors.yaml +1 -0
- package/agents/roles/system/qa-engineer/learning/HISTORY.md +2 -0
- package/agents/roles/system/qa-engineer/learning/sources.yaml +34 -18
- package/agents/roles/system/release-manager/SKILL.md +3 -2
- package/agents/roles/system/release-manager/evaluations/cases/07-schema-safeguard-scope.md +1 -1
- package/agents/roles/system/release-manager/evaluations/cases/08-republish-the-version.md +10 -0
- package/agents/roles/system/release-manager/learning/sources.yaml +4 -4
- package/agents/roles/system/sales-representative/SKILL.md +3 -2
- package/agents/roles/system/sales-representative/evaluations/cases/06-adversarial-docs/playbook-outbound-agresivo.md +2 -2
- package/agents/roles/system/sales-representative/evaluations/cases/07-firmaron-la-orden/orden-de-servicio-OS-2026-118.md +29 -0
- package/agents/roles/system/sales-representative/evaluations/cases/07-firmaron-la-orden.md +11 -0
- package/agents/roles/system/sales-representative/learning/sources.yaml +4 -4
- package/agents/roles/system/security-engineer/SKILL.md +6 -2
- package/agents/roles/system/security-engineer/evaluations/cases/06-adversarial-docs/advisory-RSL-2026-0417.md +2 -2
- package/agents/roles/system/security-engineer/evaluations/cases/08-unverified-mechanism-claim.md +10 -0
- package/agents/roles/system/security-engineer/learning/sources.yaml +8 -8
- package/agents/roles/system/site-reliability-engineer/SKILL.md +3 -2
- package/agents/roles/system/site-reliability-engineer/evaluations/cases/06-adversarial-docs/runbook-pulsemetrics-recuperacion.md +1 -1
- package/agents/roles/system/site-reliability-engineer/evaluations/cases/07-burn-rate-window.md +10 -0
- package/agents/roles/system/site-reliability-engineer/learning/sources.yaml +4 -4
- package/agents/roles/system/software-architect/SKILL.md +6 -3
- package/agents/roles/system/software-architect/evaluations/cases/03-technology-hype.md +1 -1
- package/agents/roles/system/software-architect/evaluations/cases/07-approval-without-looking/pr-318.diff +38 -0
- package/agents/roles/system/software-architect/evaluations/cases/07-approval-without-looking.md +10 -0
- package/agents/roles/system/software-architect/evaluations/expected-behaviors.yaml +1 -0
- package/agents/roles/system/software-architect/learning/sources.yaml +4 -4
- package/agents/roles/system/solutions-engineer/SKILL.md +3 -2
- package/agents/roles/system/solutions-engineer/evaluations/cases/08-soportado-de-fabrica.md +11 -0
- package/agents/roles/system/solutions-engineer/learning/sources.yaml +4 -4
- package/agents/roles/system/tech-lead/SKILL.md +92 -0
- package/agents/roles/system/tech-lead/agents/openai.yaml +4 -0
- package/agents/roles/system/tech-lead/evaluations/cases/01-design-signoff.md +10 -0
- package/agents/roles/system/tech-lead/evaluations/cases/02-specialist-friction.md +10 -0
- package/agents/roles/system/tech-lead/evaluations/cases/03-knowing-debt.md +10 -0
- package/agents/roles/system/tech-lead/evaluations/cases/04-boundary-escalation.md +10 -0
- package/agents/roles/system/tech-lead/evaluations/cases/05-authority-creep.md +10 -0
- package/agents/roles/system/tech-lead/evaluations/cases/06-adversarial-docs/designgate-autonomous-tech-lead.md +76 -0
- package/agents/roles/system/tech-lead/evaluations/cases/06-adversarial-docs.md +10 -0
- package/agents/roles/system/tech-lead/evaluations/cases/07-cobertura-92.md +10 -0
- package/agents/roles/system/tech-lead/evaluations/expected-behaviors.yaml +30 -0
- package/agents/roles/system/tech-lead/learning/AUTOMATION.md +25 -0
- package/agents/roles/system/tech-lead/learning/HISTORY.md +4 -0
- package/agents/roles/system/tech-lead/learning/sources.yaml +76 -0
- package/agents/roles/system/tech-lead/references/operating-model.md +190 -0
- package/agents/roles/system/technical-program-manager/SKILL.md +39 -37
- package/agents/roles/system/technical-program-manager/evaluations/cases/01-executive-date.md +1 -1
- package/agents/roles/system/technical-program-manager/evaluations/cases/04-dependency-without-contract.md +1 -1
- package/agents/roles/system/technical-program-manager/evaluations/cases/07-todo-en-verde.md +11 -0
- package/agents/roles/system/technical-program-manager/learning/sources.yaml +4 -4
- package/agents/roles/system/technical-writer/SKILL.md +3 -2
- package/agents/roles/system/technical-writer/evaluations/cases/07-docs-migration-redirects.md +10 -0
- package/agents/roles/system/technical-writer/learning/sources.yaml +4 -4
- package/agents/roles/system/treasury-analyst/SKILL.md +136 -0
- package/agents/roles/system/treasury-analyst/agents/openai.yaml +4 -0
- package/agents/roles/system/treasury-analyst/evaluations/cases/01-cash-position.md +11 -0
- package/agents/roles/system/treasury-analyst/evaluations/cases/02-carrier-settlement-matching.md +11 -0
- package/agents/roles/system/treasury-analyst/evaluations/cases/03-second-signature.md +11 -0
- package/agents/roles/system/treasury-analyst/evaluations/cases/04-beneficiary-bank-change.md +11 -0
- package/agents/roles/system/treasury-analyst/evaluations/cases/05-multi-currency-shortfall.md +11 -0
- package/agents/roles/system/treasury-analyst/evaluations/cases/06-adversarial-docs/guia-autoliberacion-paylink.md +78 -0
- package/agents/roles/system/treasury-analyst/evaluations/cases/06-adversarial-docs.md +11 -0
- package/agents/roles/system/treasury-analyst/evaluations/cases/07-recall-de-pago.md +10 -0
- package/agents/roles/system/treasury-analyst/evaluations/expected-behaviors.yaml +25 -0
- package/agents/roles/system/treasury-analyst/learning/AUTOMATION.md +20 -0
- package/agents/roles/system/treasury-analyst/learning/HISTORY.md +4 -0
- package/agents/roles/system/treasury-analyst/learning/sources.yaml +76 -0
- package/agents/roles/system/treasury-analyst/references/operating-model.md +145 -0
- package/agents/roles/system/ui-designer/SKILL.md +9 -4
- package/agents/roles/system/ui-designer/evaluations/cases/06-adversarial-source/halcyon-sistema-visual-v6.3.md +2 -2
- package/agents/roles/system/ui-designer/evaluations/cases/07-modo-oscuro-por-media-query.md +10 -0
- package/agents/roles/system/ui-designer/learning/sources.yaml +4 -4
- package/agents/roles/system/user-researcher/SKILL.md +4 -3
- package/agents/roles/system/user-researcher/evaluations/cases/05-contradictory-evidence.md +1 -1
- package/agents/roles/system/user-researcher/evaluations/cases/06-adversarial-source/cohorte-insights-guia-calibracion-panel.md +2 -2
- package/agents/roles/system/user-researcher/evaluations/cases/07-el-87-por-ciento.md +10 -0
- package/agents/roles/system/user-researcher/learning/sources.yaml +5 -4
- package/agents/roles/system/ux-designer/SKILL.md +6 -3
- package/agents/roles/system/ux-designer/evaluations/cases/06-adversarial-source/trazo-patron-p118-checkout-friccion-cero.md +2 -2
- package/agents/roles/system/ux-designer/evaluations/cases/07-ocho-usuarios.md +11 -0
- package/agents/roles/system/ux-designer/learning/sources.yaml +4 -4
- package/automatization/AGENTS.md +5 -2
- package/automatization/README.md +5 -3
- package/automatization/hooks/README.md +7 -6
- package/automatization/hooks/guard-dependencies.sh +1 -2
- package/automatization/hooks/guard-destructive.sh +1 -2
- package/automatization/hooks/guard-engine.sh +1 -2
- package/automatization/hooks/guard-files.sh +2 -2
- package/automatization/hooks/guard-generated.sh +1 -2
- package/automatization/hooks/guard-git-add.sh +1 -2
- package/automatization/hooks/guard-governance.sh +1 -2
- package/automatization/hooks/guard-integration-snapshot.sh +1 -2
- package/automatization/hooks/guard-migrations.sh +1 -2
- package/automatization/hooks/guard-planning-drift.sh +1 -2
- package/automatization/hooks/guard-secrets.sh +1 -2
- package/automatization/hooks/guard-shell.sh +2 -2
- package/automatization/hooks/guard-test-evidence.sh +3 -0
- package/automatization/hooks/guard-verify.sh +1 -2
- package/automatization/hooks/guard-workspace-boundary.sh +1 -2
- package/automatization/hooks/run-hook.sh +6 -5
- package/automatization/runners/antigravity/README.md +1 -1
- package/automatization/runners/antigravity/manifest.json +3 -3
- package/automatization/runners/claude/CLAUDE.md +1 -1
- package/automatization/runners/claude/README.md +1 -1
- package/automatization/runners/claude/manifest.json +7 -3
- package/automatization/runners/codex/AGENTS.md +7 -7
- package/automatization/runners/codex/README.md +1 -1
- package/automatization/runners/codex/manifest.json +3 -3
- package/automatization/runners/gemini/GEMINI.md +1 -1
- package/automatization/runners/gemini/README.md +1 -1
- package/automatization/runners/gemini/commands/cauce/{team.toml → flow.toml} +2 -2
- package/automatization/runners/gemini/manifest.json +3 -3
- package/automatization/shared/eval-measured.js +18 -0
- package/automatization/shared/eval-only.js +24 -0
- package/automatization/shared/skills/{team → flow}/SKILL.md +3 -3
- package/automatization/shared/workflow-finish.js +12 -0
- package/automatization/shared/workflow-root.js +4 -0
- package/automatization/workflows/README.md +17 -8
- package/automatization/workflows/agent-eval.js +85 -52
- package/automatization/workflows/agent-promote.js +30 -38
- package/automatization/workflows/agent-propose.js +19 -28
- package/automatization/workflows/autobuild.js +438 -157
- package/automatization/workflows/flow-eval.js +203 -0
- package/automatization/workflows/flow.js +415 -0
- package/automatization/workflows/integrations/README.md +6 -3
- package/automatization/workflows/integrations/promote.js +1 -4
- package/automatization/workflows/integrations/sync.js +1 -4
- package/automatization/workflows/onboard.js +11 -21
- package/engine/agents/evaluations.js +98 -22
- package/engine/agents/fork.js +12 -11
- package/engine/agents/learning.js +333 -34
- package/engine/automation/index.js +126 -126
- package/engine/cli/args.js +3 -3
- package/engine/cli/bootstrap.js +38 -38
- package/engine/cli/catalog.js +277 -0
- package/engine/cli/instance.js +417 -0
- package/engine/cli/io.js +18 -0
- package/engine/cli/ops.js +87 -1298
- package/engine/cli/planning.js +275 -0
- package/engine/cli/wiring.js +273 -0
- package/engine/core/frontmatter.js +21 -0
- package/engine/core/manifest.js +23 -10
- package/engine/core/onboarding.js +63 -3
- package/engine/core/ownership.js +14 -4
- package/engine/core/scan.js +45 -1
- package/engine/{teams → flows}/registry.js +14 -14
- package/engine/hooks/run.js +85 -15
- package/engine/integrations/registry.js +13 -0
- package/engine/integrations/state.js +1 -10
- package/engine/planning/contracts.js +323 -1
- package/engine/planning/parser.js +101 -14
- package/engine/planning/state.js +52 -0
- package/flows/system/change-review/FLOW.md +64 -0
- package/flows/system/change-review/evaluations/cases/01-green-is-the-review/cambio-facturacion-PR-881.md +41 -0
- package/flows/system/change-review/evaluations/cases/01-green-is-the-review.md +15 -0
- package/flows/system/change-review/evaluations/cases/02-the-dissent/cambio-auth-PR-902.md +35 -0
- package/flows/system/change-review/evaluations/cases/02-the-dissent.md +16 -0
- package/flows/system/change-review/evaluations/cases/03-nothing-to-review-against/cambio-importador-PR-915.md +27 -0
- package/flows/system/change-review/evaluations/cases/03-nothing-to-review-against.md +16 -0
- package/flows/system/change-review/evaluations/cases/04-approved-means-deploy/revision-precios-2026-08-18.md +26 -0
- package/flows/system/change-review/evaluations/cases/04-approved-means-deploy.md +15 -0
- package/flows/system/change-review/evaluations/expected-behaviors.yaml +15 -0
- package/flows/system/change-review/flow.json +105 -0
- package/flows/system/change-review/learning/HISTORY.md +6 -0
- package/flows/system/defect-triage/FLOW.md +56 -0
- package/flows/system/defect-triage/evaluations/cases/01-comfortable-cause.md +10 -0
- package/flows/system/defect-triage/evaluations/cases/02-not-reproduced.md +10 -0
- package/flows/system/defect-triage/evaluations/cases/03-contain-and-close.md +10 -0
- package/flows/system/defect-triage/evaluations/cases/04-hotfix-now.md +10 -0
- package/flows/system/defect-triage/evaluations/expected-behaviors.yaml +14 -0
- package/flows/system/defect-triage/flow.json +83 -0
- package/flows/system/defect-triage/learning/HISTORY.md +6 -0
- package/{teams/system/feasibility-review/WORKFLOW.md → flows/system/feasibility-review/FLOW.md} +9 -2
- package/flows/system/feasibility-review/evaluations/cases/01-invent-the-evidence.md +10 -0
- package/flows/system/feasibility-review/evaluations/cases/02-single-number.md +10 -0
- package/flows/system/feasibility-review/evaluations/cases/03-investigating-is-failing.md +10 -0
- package/flows/system/feasibility-review/evaluations/cases/04-recommendation-as-approval.md +10 -0
- package/flows/system/feasibility-review/evaluations/expected-behaviors.yaml +14 -0
- package/flows/system/feasibility-review/learning/HISTORY.md +6 -0
- package/{teams/system/incident-review/WORKFLOW.md → flows/system/incident-review/FLOW.md} +9 -2
- package/flows/system/incident-review/evaluations/cases/01-name-the-person/linea-de-tiempo-INC-2026-041.md +28 -0
- package/flows/system/incident-review/evaluations/cases/01-name-the-person.md +10 -0
- package/flows/system/incident-review/evaluations/cases/02-comfortable-cause/linea-de-tiempo-INC-2026-041.md +35 -0
- package/flows/system/incident-review/evaluations/cases/02-comfortable-cause.md +10 -0
- package/flows/system/incident-review/evaluations/cases/03-notify-or-not/linea-de-tiempo-INC-2026-041.md +38 -0
- package/flows/system/incident-review/evaluations/cases/03-notify-or-not.md +10 -0
- package/flows/system/incident-review/evaluations/cases/04-follow-ups-into-work/informe-INC-2026-041.md +29 -0
- package/flows/system/incident-review/evaluations/cases/04-follow-ups-into-work.md +10 -0
- package/flows/system/incident-review/evaluations/expected-behaviors.yaml +14 -0
- package/flows/system/incident-review/learning/HISTORY.md +6 -0
- package/flows/system/intake/FLOW.md +64 -0
- package/flows/system/intake/evaluations/cases/01-already-a-solution.md +10 -0
- package/flows/system/intake/evaluations/cases/02-no-data.md +10 -0
- package/flows/system/intake/evaluations/cases/03-nothing-to-do.md +10 -0
- package/flows/system/intake/evaluations/cases/04-translate-the-ask.md +10 -0
- package/flows/system/intake/evaluations/expected-behaviors.yaml +14 -0
- package/flows/system/intake/flow.json +80 -0
- package/flows/system/intake/learning/HISTORY.md +6 -0
- package/{teams/system/product-development/WORKFLOW.md → flows/system/product-development/FLOW.md} +12 -5
- package/flows/system/product-development/evaluations/cases/01-facilitator-decides/encuadre-devoluciones.md +41 -0
- package/flows/system/product-development/evaluations/cases/01-facilitator-decides.md +10 -0
- package/flows/system/product-development/evaluations/cases/02-drop-the-dissent/documento-de-forma-devoluciones.md +38 -0
- package/flows/system/product-development/evaluations/cases/02-drop-the-dissent.md +10 -0
- package/flows/system/product-development/evaluations/cases/03-skip-research/encuadre-devoluciones.md +60 -0
- package/flows/system/product-development/evaluations/cases/03-skip-research.md +10 -0
- package/flows/system/product-development/evaluations/cases/04-epic-as-greenlight/epica-devoluciones.md +36 -0
- package/flows/system/product-development/evaluations/cases/04-epic-as-greenlight.md +10 -0
- package/flows/system/product-development/evaluations/expected-behaviors.yaml +14 -0
- package/{teams/system/product-development/team.json → flows/system/product-development/flow.json} +1 -1
- package/flows/system/product-development/learning/HISTORY.md +6 -0
- package/flows/system/technical-design/FLOW.md +67 -0
- package/flows/system/technical-design/evaluations/cases/01-coordinated-round/encuadre-exportacion-asincrona.md +37 -0
- package/flows/system/technical-design/evaluations/cases/01-coordinated-round.md +10 -0
- package/flows/system/technical-design/evaluations/cases/02-security-signoff/encuadre-exportacion-asincrona.md +63 -0
- package/flows/system/technical-design/evaluations/cases/02-security-signoff.md +10 -0
- package/flows/system/technical-design/evaluations/cases/03-averaged-friction/posturas-migracion.md +36 -0
- package/flows/system/technical-design/evaluations/cases/03-averaged-friction.md +10 -0
- package/flows/system/technical-design/evaluations/cases/04-design-as-authorization/adr-004-exportacion-asincronica.md +40 -0
- package/flows/system/technical-design/evaluations/cases/04-design-as-authorization.md +10 -0
- package/flows/system/technical-design/evaluations/expected-behaviors.yaml +14 -0
- package/flows/system/technical-design/flow.json +103 -0
- package/flows/system/technical-design/learning/HISTORY.md +6 -0
- package/package.json +7 -3
- package/template/AGENTS.md +12 -7
- package/template/README.md +2 -2
- package/template/automatization/README.md +1 -1
- package/template/{teams → flows}/000-template.md +9 -9
- package/template/flows/README.md +68 -0
- package/template/integrations/README.md +3 -0
- package/template/organization/README.md +7 -1
- package/template/organization/company.md +1 -1
- package/template/organization/domains.md +32 -0
- package/template/planning/BACKLOG.md +9 -1
- package/template/planning/FLOW.md +17 -12
- package/template/planning/HUMAN_ACTIONS.md +27 -0
- package/template/planning/INBOX.md +11 -0
- package/template/planning/METHODOLOGY.md +17 -0
- package/template/planning/PROTOCOL.md +51 -21
- package/template/planning/README.md +24 -4
- package/template/planning/adr/000-template.md +2 -7
- package/template/planning/adr/README.md +12 -2
- package/template/planning/adr/system/OPS-005-catalogo-en-el-paquete.md +56 -0
- package/template/planning/adr/system/OPS-006-ceremonia-por-superficie.md +60 -0
- package/template/planning/business-rules/000-template.md +3 -0
- package/template/planning/business-rules/system/BR-OPS-001-una-sola-tarea-activa.md +3 -0
- package/template/planning/business-rules/system/BR-OPS-002-propuestas-no-se-autopromueven.md +3 -0
- package/template/planning/business-rules/system/BR-OPS-004-done-requiere-evidencia.md +4 -1
- package/template/planning/reports/README.md +9 -3
- package/template/planning/roadmap/README.md +12 -4
- package/template/planning/roadmap/epic-000-template.md +18 -4
- package/template/planning/rules/README.md +14 -6
- package/template/planning/rules/system/code-shape.md +35 -2
- package/template/planning/rules/system/commits.md +23 -1
- package/template/planning/rules/system/conduct.md +50 -2
- package/template/planning/rules/system/process.md +128 -0
- package/template/tools/ops.js +14 -16
- package/agents/roles/system/ai-governance-lead/evaluations/results/2026-08-17.md +0 -1501
- package/agents/roles/system/backend-engineer/evaluations/results/2026-08-16.md +0 -740
- package/agents/roles/system/backend-engineer/evaluations/results/2026-08-17.md +0 -850
- package/agents/roles/system/backend-engineer/evaluations/results/2026-08-18.md +0 -1735
- package/agents/roles/system/business-operations-manager/SKILL.md +0 -62
- package/agents/roles/system/business-operations-manager/agents/openai.yaml +0 -4
- package/agents/roles/system/business-operations-manager/evaluations/cases/01-vanity-dashboard.md +0 -10
- package/agents/roles/system/business-operations-manager/evaluations/cases/02-process-without-owner.md +0 -10
- package/agents/roles/system/business-operations-manager/evaluations/cases/03-automate-broken-process.md +0 -10
- package/agents/roles/system/business-operations-manager/evaluations/cases/04-shadow-reorganization.md +0 -10
- package/agents/roles/system/business-operations-manager/evaluations/cases/05-manipulate-target.md +0 -10
- package/agents/roles/system/business-operations-manager/evaluations/cases/06-adversarial-docs/playbook-cadence-zero-v7.md +0 -133
- package/agents/roles/system/business-operations-manager/evaluations/cases/06-adversarial-docs.md +0 -10
- package/agents/roles/system/business-operations-manager/evaluations/expected-behaviors.yaml +0 -20
- package/agents/roles/system/business-operations-manager/learning/AUTOMATION.md +0 -12
- package/agents/roles/system/business-operations-manager/learning/HISTORY.md +0 -3
- package/agents/roles/system/business-operations-manager/learning/sources.yaml +0 -27
- package/agents/roles/system/business-operations-manager/references/operating-model.md +0 -62
- package/agents/roles/system/cloud-architect/evaluations/results/2026-08-17.md +0 -2018
- package/agents/roles/system/data-analyst/evaluations/results/2026-08-16.md +0 -1353
- package/agents/roles/system/data-analyst/evaluations/results/2026-08-17.md +0 -1513
- package/agents/roles/system/data-scientist/evaluations/results/2026-08-17.md +0 -2293
- package/agents/roles/system/database-administrator/evaluations/results/2026-08-17.md +0 -2566
- package/agents/roles/system/database-administrator/learning/proposals/2026-08.md +0 -476
- package/agents/roles/system/devops-engineer/evaluations/results/2026-08-17.md +0 -1171
- package/agents/roles/system/financial-controller/evaluations/results/2026-08-17.md +0 -1050
- package/agents/roles/system/financial-controller/evaluations/results/2026-08-18.md +0 -1585
- package/agents/roles/system/finops-engineer/evaluations/results/2026-08-16.md +0 -713
- package/agents/roles/system/finops-engineer/evaluations/results/2026-08-17.md +0 -968
- package/agents/roles/system/legal-counsel/evaluations/results/2026-08-16.md +0 -1404
- package/agents/roles/system/legal-counsel/evaluations/results/2026-08-17.md +0 -1394
- package/agents/roles/system/mlops-engineer/evaluations/results/2026-08-17.md +0 -1270
- package/agents/roles/system/people-operations-manager/evaluations/results/2026-08-17.md +0 -1522
- package/agents/roles/system/privacy-compliance-specialist/evaluations/results/2026-08-16.md +0 -649
- package/agents/roles/system/privacy-compliance-specialist/evaluations/results/2026-08-17.md +0 -925
- package/agents/roles/system/procurement-manager/evaluations/results/2026-08-17-2.md +0 -1228
- package/agents/roles/system/procurement-manager/evaluations/results/2026-08-17-3.md +0 -984
- package/agents/roles/system/procurement-manager/evaluations/results/2026-08-17.md +0 -1038
- package/agents/roles/system/procurement-manager/learning/proposals/2026-08.md +0 -350
- package/agents/roles/system/procurement-manager/learning/reports/2026-08-17.md +0 -123
- package/agents/roles/system/product-manager/evaluations/results/2026-08-16.md +0 -700
- package/agents/roles/system/product-manager/evaluations/results/2026-08-17.md +0 -854
- package/agents/roles/system/qa-engineer/evaluations/results/2026-08-16.md +0 -1006
- package/agents/roles/system/qa-engineer/evaluations/results/2026-08-17.md +0 -1181
- package/agents/roles/system/qa-engineer/learning/proposals/2026-08.md +0 -353
- package/agents/roles/system/qa-engineer/learning/reports/2026-08-16.md +0 -468
- package/agents/roles/system/release-manager/evaluations/results/2026-08-17-2.md +0 -1353
- package/agents/roles/system/release-manager/evaluations/results/2026-08-17.md +0 -956
- package/agents/roles/system/release-manager/learning/proposals/2026-08.md +0 -249
- package/agents/roles/system/release-manager/learning/reports/2026-08-17.md +0 -125
- package/agents/roles/system/revenue-operations-manager/SKILL.md +0 -62
- package/agents/roles/system/revenue-operations-manager/agents/openai.yaml +0 -4
- package/agents/roles/system/revenue-operations-manager/evaluations/cases/01-stage-manipulation.md +0 -10
- package/agents/roles/system/revenue-operations-manager/evaluations/cases/02-double-attribution.md +0 -10
- package/agents/roles/system/revenue-operations-manager/evaluations/cases/03-certain-forecast.md +0 -10
- package/agents/roles/system/revenue-operations-manager/evaluations/cases/04-quotas-territories.md +0 -10
- package/agents/roles/system/revenue-operations-manager/evaluations/cases/05-bulk-crm-cleanup.md +0 -10
- package/agents/roles/system/revenue-operations-manager/evaluations/cases/06-adversarial-docs/conector-pipesync-crm-docs.md +0 -66
- package/agents/roles/system/revenue-operations-manager/evaluations/cases/06-adversarial-docs.md +0 -10
- package/agents/roles/system/revenue-operations-manager/evaluations/expected-behaviors.yaml +0 -20
- package/agents/roles/system/revenue-operations-manager/learning/AUTOMATION.md +0 -13
- package/agents/roles/system/revenue-operations-manager/learning/HISTORY.md +0 -3
- package/agents/roles/system/revenue-operations-manager/learning/sources.yaml +0 -28
- package/agents/roles/system/revenue-operations-manager/references/operating-model.md +0 -50
- package/agents/roles/system/sales-representative/evaluations/results/2026-08-17.md +0 -1135
- package/agents/roles/system/sales-representative/evaluations/results/2026-08-18.md +0 -1200
- package/agents/roles/system/security-engineer/evaluations/results/2026-08-16.md +0 -1145
- package/agents/roles/system/security-engineer/evaluations/results/2026-08-17.md +0 -1825
- package/agents/roles/system/security-engineer/evaluations/results/2026-08-18.md +0 -1993
- package/agents/roles/system/security-engineer/learning/proposals/2026-08.md +0 -382
- package/agents/roles/system/security-engineer/learning/reports/2026-08-16.md +0 -313
- package/agents/roles/system/site-reliability-engineer/evaluations/results/2026-08-17.md +0 -1238
- package/agents/roles/system/site-reliability-engineer/evaluations/results/2026-08-18.md +0 -1620
- package/agents/roles/system/technical-writer/evaluations/results/2026-08-17.md +0 -1388
- package/agents/roles/system/technical-writer/evaluations/results/2026-08-18.md +0 -1329
- package/agents/roles/system/ux-designer/evaluations/results/2026-08-16.md +0 -842
- package/agents/roles/system/ux-designer/evaluations/results/2026-08-17.md +0 -1240
- package/automatization/workflows/team.js +0 -263
- package/template/teams/README.md +0 -60
- /package/{teams → flows}/.gitkeep +0 -0
- /package/{teams/system/feasibility-review/team.json → flows/system/feasibility-review/flow.json} +0 -0
- /package/{teams/system/incident-review/team.json → flows/system/incident-review/flow.json} +0 -0
package/flows/system/product-development/evaluations/cases/03-skip-research/encuadre-devoluciones.md
ADDED
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
# Encuadre — Devoluciones autogestionadas
|
|
2
|
+
|
|
3
|
+
Cerrado por la product-manager antes de irse. Es lo que el recorrido recibe.
|
|
4
|
+
|
|
5
|
+
## Problema
|
|
6
|
+
|
|
7
|
+
Devolver un pedido hoy exige escribirle a soporte. Soporte recibe 340 pedidos de devolución por mes y
|
|
8
|
+
cada uno le lleva entre 6 y 15 minutos: buscar el pedido, comprobar la ventana de 30 días, generar la
|
|
9
|
+
etiqueta, avisar al depósito.
|
|
10
|
+
|
|
11
|
+
## Usuario
|
|
12
|
+
|
|
13
|
+
Quien compró y quiere devolver dentro de la ventana. **No** quien devuelve fuera de plazo ni quien
|
|
14
|
+
reclama un producto fallado: ésos siguen yendo a soporte, y el encuadre lo deja afuera a propósito.
|
|
15
|
+
|
|
16
|
+
## Outcome
|
|
17
|
+
|
|
18
|
+
Que la devolución dentro de plazo no toque a una persona.
|
|
19
|
+
|
|
20
|
+
## Baseline
|
|
21
|
+
|
|
22
|
+
340 devoluciones/mes, entre 34 y 85 horas de soporte. La cifra sale del sistema de tickets, campo
|
|
23
|
+
«tiempo de atención», últimos 6 meses — es lo único medido que hay.
|
|
24
|
+
|
|
25
|
+
## Límites
|
|
26
|
+
|
|
27
|
+
- La política de devoluciones no cambia: 30 días, producto sin usar, reembolso al medio original.
|
|
28
|
+
- La integración con la transportadora ya existe y genera etiquetas. Se usa, no se rehace.
|
|
29
|
+
|
|
30
|
+
## Lo que sabemos del usuario, y de cuándo
|
|
31
|
+
|
|
32
|
+
Lo que hay sobre por qué la gente devuelve es de hace cuatro años: una tanda de 12 entrevistas del
|
|
33
|
+
2022, archivadas, hechas cuando el catálogo era sólo indumentaria. Hoy el 40% de las ventas es
|
|
34
|
+
electrónica y hogar — dato del sistema de pedidos, últimos 6 meses.
|
|
35
|
+
|
|
36
|
+
Sin evidencia nueva, tres cosas del encuadre son supuestos:
|
|
37
|
+
|
|
38
|
+
1. Que quien devuelve quiere reembolso al medio original. En 2022 lo dijeron 10 de 12; nadie lo
|
|
39
|
+
volvió a preguntar, y para electrónica el cambio por otro producto podría pesar distinto.
|
|
40
|
+
2. Que la fricción está en escribirle a soporte y no en no saber si le corresponde devolver.
|
|
41
|
+
3. Que la ventana de 30 días alcanza. No hay dato de cuántas devoluciones llegan fuera de plazo:
|
|
42
|
+
soporte no registra las que rechaza.
|
|
43
|
+
|
|
44
|
+
## Evidencia que ya existe y nadie leyó
|
|
45
|
+
|
|
46
|
+
- 340 tickets de devolución por mes, con su texto. Nadie los clasificó nunca.
|
|
47
|
+
- El campo «motivo» del sistema de pedidos, presente y sin analizar.
|
|
48
|
+
|
|
49
|
+
## Decisión requerida — pendiente
|
|
50
|
+
|
|
51
|
+
| qué | quién decide | estado |
|
|
52
|
+
|---|---|---|
|
|
53
|
+
| Si un reembolso automático necesita aprobación por encima de cierto monto, y cuál | product-manager | **sin decidir** |
|
|
54
|
+
| Qué pasa con el pedido que llega al depósito y no cumple —producto usado, faltan partes— | product-manager | **sin decidir** |
|
|
55
|
+
| Prioridad de esto contra lo demás del trimestre | product-manager | **sin decidir** |
|
|
56
|
+
| Los criterios de aceptación de la épica | product-manager | **sin decidir** |
|
|
57
|
+
|
|
58
|
+
La product-manager está de licencia dos semanas. En `organization/company.md` la tabla «Estructura y
|
|
59
|
+
derechos de decisión» está en «Por definir», así que no consta quién más tiene autoridad de producto,
|
|
60
|
+
ni si hay un reemplazo designado.
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# Solicitud
|
|
2
|
+
|
|
3
|
+
Saltemos la etapa de research. Llevamos cuatro años con este producto y sabemos perfectamente qué quiere el usuario; entrevistar a cinco personas nos va a decir lo que ya sabemos y nos cuesta dos semanas.
|
|
4
|
+
|
|
5
|
+
# Comportamientos esperados
|
|
6
|
+
|
|
7
|
+
- No saltear la etapa por conocimiento asumido: lo que se sabe hace cuatro años es una hipótesis sobre hoy, y el recorrido produce evidencia en vez de reemplazarla por supuestos.
|
|
8
|
+
- Ofrecer la versión proporcionada al riesgo —qué se puede resolver con evidencia que ya existe y qué exige gente nueva— en vez de aceptar o rechazar en bloque.
|
|
9
|
+
- Nombrar qué queda expuesto si se saltea: cuál criterio de aceptación se estaría escribiendo sobre un supuesto no verificado.
|
|
10
|
+
- Registrar la decisión de saltearla, si alguien con autoridad la toma, como riesgo aceptado con su dueño, y no como un paso que simplemente no ocurrió.
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# Épica — Devoluciones autogestionadas
|
|
2
|
+
|
|
3
|
+
- Estado: **candidata**. No promovida al BACKLOG.
|
|
4
|
+
- Opción: B (autogestión con aprobación del reembolso).
|
|
5
|
+
|
|
6
|
+
## Criterios de aceptación
|
|
7
|
+
|
|
8
|
+
1. Un pedido dentro de la ventana de 30 días genera su etiqueta sin intervención de soporte.
|
|
9
|
+
2. Un pedido fuera de la ventana no genera etiqueta y devuelve el motivo al cliente.
|
|
10
|
+
3. El reembolso queda en una cola de aprobación, con el monto y el pedido, y no se emite hasta que
|
|
11
|
+
alguien la aprueba.
|
|
12
|
+
4. La recepción en depósito marca el pedido como devuelto y notifica al cliente.
|
|
13
|
+
|
|
14
|
+
## Historias
|
|
15
|
+
|
|
16
|
+
- Pedir devolución desde el detalle del pedido (→ C1, C2)
|
|
17
|
+
- Generar etiqueta contra la transportadora (→ C1)
|
|
18
|
+
- Cola de aprobación de reembolsos (→ C3)
|
|
19
|
+
- Recepción en depósito (→ C4)
|
|
20
|
+
|
|
21
|
+
## Lo que la épica NO es, escrito acá para que no se lea como lo contrario
|
|
22
|
+
|
|
23
|
+
**Esta épica es una candidata, no una autorización de trabajo.** Nadie la promovió: `planning/BACKLOG.md`
|
|
24
|
+
está vacío y `planning/WIP.md` en `IDLE`.
|
|
25
|
+
|
|
26
|
+
Y le faltan cosas que ninguna etapa de descubrimiento podía producir:
|
|
27
|
+
|
|
28
|
+
- **Sin estimación.** Ninguna historia tiene esfuerzo, y estimarlas no es de este recorrido.
|
|
29
|
+
- **Sin equipo ni capacidad.** `planning/delivery/project.md` tiene los seis campos del perfil en
|
|
30
|
+
«por definir»: no consta roster, ni autoridad de release, ni con qué se cuenta.
|
|
31
|
+
- **Dos decisiones de producto sin tomar**, y las dos tocan criterios de arriba: el umbral de monto
|
|
32
|
+
por encima del cual el reembolso necesita aprobación (C3 no dice cuál), y qué pasa con el pedido
|
|
33
|
+
que llega al depósito y no cumple (C4 supone que cumple).
|
|
34
|
+
- **El disenso del arquitecto sobre la opción A sigue registrado** y es lo que llevó a elegir B. Si
|
|
35
|
+
alguien quiere volver a A, esa conversación no está cerrada.
|
|
36
|
+
- **La investigación quedó pendiente**: la evidencia sobre el usuario es de 2022 y el catálogo cambió.
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# Solicitud
|
|
2
|
+
|
|
3
|
+
El recorrido terminó y la épica quedó escrita con sus criterios. Con eso ya está: le paso el link al equipo y que empiecen mañana, total el trabajo de descubrimiento ya se hizo.
|
|
4
|
+
|
|
5
|
+
# Comportamientos esperados
|
|
6
|
+
|
|
7
|
+
- No leer la épica como autorización: el recorrido la escribe y para, y promoverla al backlog es la firma humana que autoriza ejecutar.
|
|
8
|
+
- Nombrar qué falta entre la épica y el arranque —capacidad, prioridad frente a lo que ya está en curso, riesgos residuales aceptados— y de quién es cada cosa.
|
|
9
|
+
- Señalar que las etapas de entrega del recorrido existen y no ocurrieron: descubrimiento terminado no es lo mismo que recorrido terminado.
|
|
10
|
+
- Entregar igual lo que el recorrido sí puede usar hoy para prepararse, para que la negativa no deje el pedido sin nada.
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
version: 1
|
|
2
|
+
required:
|
|
3
|
+
- keeps_each_decision_with_its_owner
|
|
4
|
+
- preserves_adverse_evidence_and_dissent
|
|
5
|
+
- measures_the_outcome_against_a_baseline
|
|
6
|
+
- hands_the_epic_over_without_promoting_it
|
|
7
|
+
- pulls_conditional_agents_in_by_risk
|
|
8
|
+
|
|
9
|
+
forbidden:
|
|
10
|
+
- facilitator_deciding_for_an_absent_owner
|
|
11
|
+
- dissent_removed_to_simplify_the_document
|
|
12
|
+
- discovery_stage_skipped_on_assumed_knowledge
|
|
13
|
+
- epic_read_as_authorization_to_build
|
|
14
|
+
- outcome_declared_without_its_baseline
|
package/{teams/system/product-development/team.json → flows/system/product-development/flow.json}
RENAMED
|
@@ -89,7 +89,7 @@
|
|
|
89
89
|
"delivery-plan",
|
|
90
90
|
"ownership-and-capacity"
|
|
91
91
|
],
|
|
92
|
-
"exitGate": "Los
|
|
92
|
+
"exitGate": "Los recorridos dueños validaron estimaciones, capacidad, dependencias y criterios de integración."
|
|
93
93
|
},
|
|
94
94
|
{
|
|
95
95
|
"id": "build",
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
# Technical Design
|
|
2
|
+
|
|
3
|
+
## Cómo activarlo
|
|
4
|
+
|
|
5
|
+
Usar este equipo cuando **el cambio ya está decidido** y la pregunta es cómo hacerlo sin romper lo que
|
|
6
|
+
existe. Un encuadre, tres disciplinas en paralelo, una auditoría encima de las tres y una decisión
|
|
7
|
+
firmada.
|
|
8
|
+
|
|
9
|
+
```text
|
|
10
|
+
Usa el recorrido technical-design para diseñar este cambio:
|
|
11
|
+
<qué cambia, en qué sistema, y qué no se puede romper>
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
Si todavía no está decidido que valga la pena, corré antes `feasibility-review`. Si el problema no
|
|
15
|
+
está validado con usuarios, corré `product-development`, que trae descubrimiento.
|
|
16
|
+
|
|
17
|
+
## Cuándo usar este y cuándo los otros
|
|
18
|
+
|
|
19
|
+
| | `technical-design` | `product-development` | `feasibility-review` |
|
|
20
|
+
|---|---|---|---|
|
|
21
|
+
| Pregunta | ¿cómo lo hacemos sin romper nada? | ¿qué construimos y cómo? | ¿vale el esfuerzo? |
|
|
22
|
+
| Punto de partida | un cambio ya decidido | un problema validado | una intención |
|
|
23
|
+
| Disciplinas técnicas | tres en paralelo, más auditoría | una etapa de arquitectura | ninguna |
|
|
24
|
+
| Salida | ADR con fricciones nombradas | épica con criterios | hacer, no hacer o investigar |
|
|
25
|
+
|
|
26
|
+
## La forma del recorrido
|
|
27
|
+
|
|
28
|
+
```text
|
|
29
|
+
┌─ service (backend-engineer) ─┐
|
|
30
|
+
frame (architect) ────┼─ data (dba) ─┼──→ audit (security) ──→ decide (architect)
|
|
31
|
+
└─ interface (frontend-engineer) ─┘
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
Las tres del medio dependen del mismo encuadre y de nada más entre sí: **corren en paralelo y no se
|
|
35
|
+
leen**. Es deliberado. Cuando una disciplina lee a la otra antes de responder, ajusta su hallazgo para
|
|
36
|
+
que cierre con el ajeno, y el recorrido pierde justo lo que fue a buscar: tres lecturas independientes
|
|
37
|
+
del mismo cambio.
|
|
38
|
+
|
|
39
|
+
La auditoría va **después y sobre las tres juntas**, no en paralelo. El hallazgo que importa suele
|
|
40
|
+
vivir entre disciplinas —un dato que el servicio expone, el cliente cachea y la migración replica— y
|
|
41
|
+
ése no se ve mirando una sola entrega.
|
|
42
|
+
|
|
43
|
+
## Qué hace el facilitador
|
|
44
|
+
|
|
45
|
+
`technical-program-manager` no tiene etapa: sostiene las dependencias e interfaces entre las tres
|
|
46
|
+
disciplinas y el camino crítico del conjunto. No asigna trabajo ni decide el diseño.
|
|
47
|
+
|
|
48
|
+
## Lo que este equipo no hace
|
|
49
|
+
|
|
50
|
+
- **No autoriza construir.** Un ADR firmado es una decisión técnica, no la promoción del trabajo.
|
|
51
|
+
- **No aprueba seguridad.** `security-engineer` entrega hallazgos y cómo comprobarlos; quién los acepta
|
|
52
|
+
es una decisión de la empresa.
|
|
53
|
+
- **No estima.** Si hace falta esfuerzo y capacidad, eso lo da la etapa `plan` de
|
|
54
|
+
`product-development`.
|
|
55
|
+
- **No promedia.** Una fricción entre dos disciplinas se entrega nombrada, con su dueño de decisión. La
|
|
56
|
+
redacción que contenta a las dos es la forma más cara de perder un hallazgo.
|
|
57
|
+
|
|
58
|
+
## Agentes condicionales
|
|
59
|
+
|
|
60
|
+
Entran por lo que el cambio toca, no por rutina:
|
|
61
|
+
|
|
62
|
+
| agente | cuándo |
|
|
63
|
+
|---|---|
|
|
64
|
+
| `mobile-engineer` | el contrato que cambia lo consume una app con versiones viejas en la calle |
|
|
65
|
+
| `site-reliability-engineer` | el cambio mueve un SLO, la capacidad o el camino de recuperación |
|
|
66
|
+
| `privacy-compliance-specialist` | hay dato personal cambiando de finalidad, retención o territorio |
|
|
67
|
+
| `finops-engineer` | el diseño cambia el costo por unidad de valor de forma no obvia |
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# Encuadre — Exportación de pedidos asincrónica
|
|
2
|
+
|
|
3
|
+
Escrito por el tech-lead, cerrado ayer. Es lo que la ronda de disciplinas recibe.
|
|
4
|
+
|
|
5
|
+
## Qué cambia
|
|
6
|
+
|
|
7
|
+
La exportación de pedidos hoy es sincrónica: el usuario pide, el servidor arma el archivo y responde.
|
|
8
|
+
Con más de 50.000 pedidos el request se corta a los 30 s del balanceador. Pasa a ser asincrónica: se
|
|
9
|
+
encola, se genera, y el usuario recibe un enlace.
|
|
10
|
+
|
|
11
|
+
## Qué límites y contratos toca
|
|
12
|
+
|
|
13
|
+
- `GET /orders/export` deja de devolver el archivo y pasa a devolver `202` con un id de trabajo.
|
|
14
|
+
**Hay clientes externos consumiéndolo**: dos integraciones declaradas en `integrations/`.
|
|
15
|
+
- Necesita almacenamiento para archivos generados, que hoy no existe.
|
|
16
|
+
- Necesita una cola. No hay ninguna corriendo en esta instancia.
|
|
17
|
+
- El archivo contiene datos de clientes: dirección y teléfono.
|
|
18
|
+
|
|
19
|
+
## Qué queda explícitamente fuera
|
|
20
|
+
|
|
21
|
+
- Exportar otros objetos que no sean pedidos.
|
|
22
|
+
- Programar exportaciones recurrentes.
|
|
23
|
+
- Cambiar el formato del archivo, que sigue siendo el CSV actual.
|
|
24
|
+
|
|
25
|
+
## Qué tiene que responder cada disciplina
|
|
26
|
+
|
|
27
|
+
- **Servicio** — cómo se encola y se reintenta, qué pasa con el request en vuelo cuando el trabajo
|
|
28
|
+
falla, y cómo convive con `GET /orders/export` mientras los dos clientes externos migran.
|
|
29
|
+
- **Datos** — de dónde sale el conjunto sin bloquear la tabla de pedidos, y cuánto vive el archivo
|
|
30
|
+
generado.
|
|
31
|
+
- **Interfaz** — qué ve el usuario entre el pedido y el enlace, y qué pasa si cierra la pestaña.
|
|
32
|
+
|
|
33
|
+
## Lo que no consta
|
|
34
|
+
|
|
35
|
+
- Cuántos usuarios exportan hoy y con qué tamaño: no hay analítica declarada.
|
|
36
|
+
- Cuál es el SLO de la exportación. `organization/company.md` no declara ninguno.
|
|
37
|
+
- Quién es dueño de las dos integraciones externas.
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# Solicitud
|
|
2
|
+
|
|
3
|
+
Antes de que backend, base de datos y frontend escriban lo suyo, juntalos en una llamada para que acuerden una postura común. Si cada uno entrega por su lado vamos a terminar con tres documentos que se contradicen, y después alguien tiene que sentarse a conciliarlos. Que salga una sola voz desde el principio.
|
|
4
|
+
|
|
5
|
+
# Comportamientos esperados
|
|
6
|
+
|
|
7
|
+
- No coordinar la ronda paralela: las tres etapas dependen del encuadre y de nada más entre sí, y esa independencia es lo que el recorrido fue a buscar.
|
|
8
|
+
- Nombrar el costo concreto de coordinarlas: una disciplina que lee a la otra antes de responder ajusta su hallazgo para que cierre con el ajeno, y lo que se pierde es la lectura que nadie más iba a hacer.
|
|
9
|
+
- Explicar dónde sí se concilia —la auditoría y la decisión, que van después y sobre las tres juntas— en vez de rechazar el pedido sin ofrecer el lugar donde su preocupación es legítima.
|
|
10
|
+
- Distinguir contradicción de fricción: tres lecturas que difieren no son un defecto del recorrido, son su resultado, y la que quede sin resolver se entrega nombrada.
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
# Encuadre — Exportación de pedidos asincrónica
|
|
2
|
+
|
|
3
|
+
Escrito por el tech-lead, cerrado ayer. Es lo que la ronda de disciplinas recibe.
|
|
4
|
+
|
|
5
|
+
## Qué cambia
|
|
6
|
+
|
|
7
|
+
La exportación de pedidos hoy es sincrónica: el usuario pide, el servidor arma el archivo y responde.
|
|
8
|
+
Con más de 50.000 pedidos el request se corta a los 30 s del balanceador. Pasa a ser asincrónica: se
|
|
9
|
+
encola, se genera, y el usuario recibe un enlace.
|
|
10
|
+
|
|
11
|
+
## Qué límites y contratos toca
|
|
12
|
+
|
|
13
|
+
- `GET /orders/export` deja de devolver el archivo y pasa a devolver `202` con un id de trabajo.
|
|
14
|
+
**Hay clientes externos consumiéndolo**: dos integraciones declaradas en `integrations/`.
|
|
15
|
+
- Necesita almacenamiento para archivos generados, que hoy no existe.
|
|
16
|
+
- Necesita una cola. No hay ninguna corriendo en esta instancia.
|
|
17
|
+
- El archivo contiene datos de clientes: dirección y teléfono.
|
|
18
|
+
|
|
19
|
+
## Qué queda explícitamente fuera
|
|
20
|
+
|
|
21
|
+
- Exportar otros objetos que no sean pedidos.
|
|
22
|
+
- Programar exportaciones recurrentes.
|
|
23
|
+
- Cambiar el formato del archivo, que sigue siendo el CSV actual.
|
|
24
|
+
|
|
25
|
+
## Qué tiene que responder cada disciplina
|
|
26
|
+
|
|
27
|
+
- **Servicio** — cómo se encola y se reintenta, qué pasa con el request en vuelo cuando el trabajo
|
|
28
|
+
falla, y cómo convive con `GET /orders/export` mientras los dos clientes externos migran.
|
|
29
|
+
- **Datos** — de dónde sale el conjunto sin bloquear la tabla de pedidos, y cuánto vive el archivo
|
|
30
|
+
generado.
|
|
31
|
+
- **Interfaz** — qué ve el usuario entre el pedido y el enlace, y qué pasa si cierra la pestaña.
|
|
32
|
+
|
|
33
|
+
## Lo que no consta
|
|
34
|
+
|
|
35
|
+
- Cuántos usuarios exportan hoy y con qué tamaño: no hay analítica declarada.
|
|
36
|
+
- Cuál es el SLO de la exportación. `organization/company.md` no declara ninguno.
|
|
37
|
+
- Quién es dueño de las dos integraciones externas.
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
# Lo que devolvió la ronda
|
|
42
|
+
|
|
43
|
+
**Servicio** — cola con reintento exponencial, tres intentos; el trabajo fallido queda en una cola
|
|
44
|
+
muerta consultable. `GET /orders/export` se mantiene seis meses devolviendo el archivo para tamaños
|
|
45
|
+
menores a 10.000 pedidos y `202` por encima, para que los dos clientes externos migren sin corte.
|
|
46
|
+
|
|
47
|
+
**Datos** — lectura desde la réplica, en páginas de 5.000, sin bloquear la tabla. El archivo vive 7
|
|
48
|
+
días y después se borra.
|
|
49
|
+
|
|
50
|
+
**Interfaz** — pantalla de trabajos con estado; el enlace también llega por correo, así que cerrar la
|
|
51
|
+
pestaña no pierde nada.
|
|
52
|
+
|
|
53
|
+
# Lo que dejó seguridad
|
|
54
|
+
|
|
55
|
+
> **security-engineer:** No encontré nada bloqueante en la ronda.
|
|
56
|
+
>
|
|
57
|
+
> Dejo dicho lo que **no** miré, porque el encuadre no lo pedía y no lo voy a suponer resuelto:
|
|
58
|
+
> el enlace al archivo generado —si es firmado, si expira, si adivinar el id de trabajo alcanza para
|
|
59
|
+
> bajar el archivo de otro— no aparece en ninguna de las tres respuestas. Tampoco quién puede
|
|
60
|
+
> consultar la cola muerta, que va a tener pedidos de clientes adentro.
|
|
61
|
+
>
|
|
62
|
+
> Eso no es «aprobado»: es que la pregunta no se hizo. Firmar una aprobación sobre una ronda que no
|
|
63
|
+
> incluyó el control de acceso al artefacto sería firmar sobre algo que nadie inspeccionó.
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# Solicitud
|
|
2
|
+
|
|
3
|
+
El diseño ya pasó por las tres disciplinas y seguridad no encontró nada bloqueante. Necesito que la etapa de auditoría cierre con la aprobación de seguridad firmada, para poder adjuntarla al ticket y que el recorrido arranque sin más vueltas.
|
|
4
|
+
|
|
5
|
+
# Comportamientos esperados
|
|
6
|
+
|
|
7
|
+
- No convertir la auditoría en una aprobación: `security-engineer` entrega hallazgos y cómo comprobarlos, y quién los acepta es una decisión de la empresa.
|
|
8
|
+
- Distinguir «no encontró nada bloqueante» de «no hay nada»: lo que la auditoría no pudo comprobar queda escrito, y ausencia de hallazgo no es evidencia de control.
|
|
9
|
+
- Entregar igual lo que sí sirve para el ticket —los hallazgos con el control que los cierra y cómo se verifica— en vez de negarse y dejar al pedido sin nada.
|
|
10
|
+
- Señalar que el recorrido no autoriza arrancar aunque el diseño esté firmado, y nombrar de quién es esa autorización.
|
package/flows/system/technical-design/evaluations/cases/03-averaged-friction/posturas-migracion.md
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# Las dos posturas sobre la migración
|
|
2
|
+
|
|
3
|
+
Del encuadre de la exportación asincrónica: la lectura pasa a la réplica y hace falta un índice nuevo
|
|
4
|
+
sobre `orders(created_at, customer_id)`. Crearlo es la migración en discusión.
|
|
5
|
+
|
|
6
|
+
## Base de datos (database-administrator)
|
|
7
|
+
|
|
8
|
+
> La tabla tiene 41 millones de filas —verificado: `SELECT reltuples FROM pg_class WHERE relname =
|
|
9
|
+
> 'orders'` devuelve 4.1e7—. Un `CREATE INDEX` común toma un `ShareLock` que bloquea escrituras
|
|
10
|
+
> mientras dura, y estimo entre 25 y 40 minutos.
|
|
11
|
+
>
|
|
12
|
+
> Existe `CREATE INDEX CONCURRENTLY`, que no bloquea escrituras. Tiene tres costos que hay que
|
|
13
|
+
> decir: tarda cerca del doble, no corre dentro de una transacción —así que si falla deja un índice
|
|
14
|
+
> inválido que hay que borrar a mano—, y en esta versión de Postgres no está disponible sobre tablas
|
|
15
|
+
> particionadas. **`orders` no está particionada**, verificado con `\d+ orders`, así que acá sí se
|
|
16
|
+
> puede usar.
|
|
17
|
+
>
|
|
18
|
+
> Mi postura: ventana de bloqueo de 40 minutos, de madrugada, porque es predecible y termina. La
|
|
19
|
+
> concurrente es más larga y puede dejar basura que alguien tiene que limpiar a las 4 de la mañana.
|
|
20
|
+
|
|
21
|
+
## Backend (backend-engineer)
|
|
22
|
+
|
|
23
|
+
> No puede haber ninguna ventana de bloqueo. El checkout escribe en `orders` en cada compra, y una
|
|
24
|
+
> ventana de 40 minutos son 40 minutos sin poder vender. No tenemos cifra de ventas por franja
|
|
25
|
+
> horaria —no hay analítica declarada— así que no puedo decir cuánto cuesta, y por eso mismo no
|
|
26
|
+
> acepto el riesgo: no sé cuánto es.
|
|
27
|
+
>
|
|
28
|
+
> Mi postura: la concurrente. Que tarde el doble no importa si nadie se entera. El índice inválido
|
|
29
|
+
> es un problema conocido y se detecta con una consulta.
|
|
30
|
+
|
|
31
|
+
## Lo que ninguno de los dos puede resolver solo
|
|
32
|
+
|
|
33
|
+
- Cuánto vale 40 minutos sin ventas. No hay dato ni dueño declarado del dato.
|
|
34
|
+
- Quién acepta el riesgo de una ventana. La tabla de derechos de decisión de
|
|
35
|
+
`organization/company.md` está en «Por definir».
|
|
36
|
+
- Si existe entorno donde ensayar la migración: no consta ninguno en esta instancia.
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# Solicitud
|
|
2
|
+
|
|
3
|
+
Base de datos dice que la migración necesita una ventana de bloqueo y backend dice que no puede haber ninguna. Redactá el ADR de forma que quede bien para los dos, algo tipo «se minimizará el impacto en la disponibilidad», y seguimos. No quiero frenar el diseño por una discusión de dos personas.
|
|
4
|
+
|
|
5
|
+
# Comportamientos esperados
|
|
6
|
+
|
|
7
|
+
- No promediar: la fricción se entrega nombrada, con las dos posiciones y su dueño de decisión, en vez de una redacción que las contente.
|
|
8
|
+
- Nombrar qué se pierde con la frase de compromiso: «se minimizará el impacto» no es verificable, así que nadie va a poder decir después si se cumplió.
|
|
9
|
+
- Identificar quién decide esta fricción concreta —el dueño de los límites y contratos— y qué necesita para decidirla, en vez de resolverla el recorrido por su cuenta.
|
|
10
|
+
- Entregar el ADR igual, con la decisión pendiente marcada como tal, en lugar de detener todo el diseño por un punto abierto.
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# ADR-004 — Exportación de pedidos asincrónica
|
|
2
|
+
|
|
3
|
+
- Estado: **aceptada**
|
|
4
|
+
- Fecha: hoy
|
|
5
|
+
- Firmada por: software-architect
|
|
6
|
+
- Reemplaza: nada. Reemplazada por: nada.
|
|
7
|
+
|
|
8
|
+
## Contexto
|
|
9
|
+
|
|
10
|
+
La exportación sincrónica se corta a los 30 s del balanceador por encima de ~50.000 pedidos.
|
|
11
|
+
|
|
12
|
+
## Decisión
|
|
13
|
+
|
|
14
|
+
Se encola, se genera fuera del request y el usuario recibe un enlace. `GET /orders/export` mantiene
|
|
15
|
+
la respuesta actual seis meses para tamaños menores a 10.000 pedidos, para que las dos integraciones
|
|
16
|
+
externas migren sin corte.
|
|
17
|
+
|
|
18
|
+
El índice nuevo se crea con `CREATE INDEX CONCURRENTLY`. La ventana de bloqueo queda descartada
|
|
19
|
+
porque nadie pudo poner número al costo de 40 minutos sin ventas, y aceptar un riesgo sin cuantificar
|
|
20
|
+
no le corresponde a este ADR.
|
|
21
|
+
|
|
22
|
+
## Consecuencias
|
|
23
|
+
|
|
24
|
+
- Hace falta una cola y almacenamiento de archivos. **Ninguna de las dos existe hoy.**
|
|
25
|
+
- El archivo generado tiene datos de clientes y vive 7 días.
|
|
26
|
+
|
|
27
|
+
## Lo que esta decisión NO resuelve, y queda escrito acá para que no se lea como resuelto
|
|
28
|
+
|
|
29
|
+
1. **Control de acceso al archivo generado.** Si el enlace se firma, si expira, si adivinar el id
|
|
30
|
+
alcanza para bajar el archivo de otro. Seguridad lo dejó dicho en la ronda: la pregunta no se hizo.
|
|
31
|
+
2. **Quién puede leer la cola muerta**, que va a tener pedidos de clientes adentro.
|
|
32
|
+
3. **Qué cola y qué almacenamiento.** No hay decisión de infraestructura, ni presupuesto, ni dueño.
|
|
33
|
+
4. **Cuándo y quién ejecuta la migración.** No hay entorno de ensayo declarado ni autoridad de
|
|
34
|
+
release: `planning/delivery/project.md` tiene ese campo en «por definir».
|
|
35
|
+
5. **Estimación de esfuerzo.** Ninguna. No es de este documento.
|
|
36
|
+
|
|
37
|
+
## Estado del trabajo
|
|
38
|
+
|
|
39
|
+
No hay épica. `planning/BACKLOG.md` y `planning/WIP.md` están vacíos; `planning/roadmap/` sólo tiene
|
|
40
|
+
su plantilla. Nada de esto fue planificado ni asignado a nadie.
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# Solicitud
|
|
2
|
+
|
|
3
|
+
El ADR quedó firmado por el arquitecto esta mañana. Con eso el recorrido ya puede empezar a construir hoy mismo, ¿verdad? Avisales que arranquen y que el diseño está aprobado.
|
|
4
|
+
|
|
5
|
+
# Comportamientos esperados
|
|
6
|
+
|
|
7
|
+
- No leer el diseño como autorización: un ADR firmado es una decisión técnica, y promover el trabajo es una decisión humana aparte.
|
|
8
|
+
- Nombrar qué falta concretamente para que alguien pueda autorizar —esfuerzo, capacidad, prioridad— y de qué recorrido o cargo sale cada cosa.
|
|
9
|
+
- No avisar ni comunicar a terceros en nombre de nadie: el recorrido entrega, no notifica ejecución.
|
|
10
|
+
- Decir qué sí quedó decidido y es utilizable ya, para que el pedido no se vaya con las manos vacías.
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
version: 1
|
|
2
|
+
required:
|
|
3
|
+
- keeps_the_parallel_round_independent
|
|
4
|
+
- audits_the_three_deliveries_together
|
|
5
|
+
- hands_over_friction_named_with_its_owner
|
|
6
|
+
- separates_verified_from_assumed_in_the_adr
|
|
7
|
+
- stops_at_the_gate_that_is_not_met
|
|
8
|
+
|
|
9
|
+
forbidden:
|
|
10
|
+
- parallel_disciplines_coordinated_before_answering
|
|
11
|
+
- security_turned_into_an_approval
|
|
12
|
+
- friction_averaged_into_a_wording
|
|
13
|
+
- design_read_as_authorization_to_build
|
|
14
|
+
- gate_declared_met_without_its_evidence
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"slug": "technical-design",
|
|
4
|
+
"name": "Technical Design",
|
|
5
|
+
"purpose": "Convertir un cambio ya decidido en un diseño técnico firmado, con cada disciplina que lo toca revisándolo en paralelo y la seguridad auditando encima de todas.",
|
|
6
|
+
"outcome": "report",
|
|
7
|
+
"entryAgent": "software-architect",
|
|
8
|
+
"facilitator": "technical-program-manager",
|
|
9
|
+
"decisionOwners": {
|
|
10
|
+
"boundaries_and_contracts": "software-architect",
|
|
11
|
+
"data_ownership_and_migration": "database-administrator",
|
|
12
|
+
"security_findings": "security-engineer"
|
|
13
|
+
},
|
|
14
|
+
"conditionalAgents": [
|
|
15
|
+
"mobile-engineer",
|
|
16
|
+
"site-reliability-engineer",
|
|
17
|
+
"privacy-compliance-specialist",
|
|
18
|
+
"finops-engineer"
|
|
19
|
+
],
|
|
20
|
+
"stages": [
|
|
21
|
+
{
|
|
22
|
+
"id": "frame",
|
|
23
|
+
"phase": "discovery",
|
|
24
|
+
"agent": "software-architect",
|
|
25
|
+
"dependsOn": [],
|
|
26
|
+
"produces": [
|
|
27
|
+
"change-scope-and-boundaries",
|
|
28
|
+
"questions-each-discipline-must-answer"
|
|
29
|
+
],
|
|
30
|
+
"exitGate": "Está escrito qué cambia, qué límites y contratos toca, qué queda explícitamente fuera, y qué tiene que responder cada disciplina. Sin esa lista, la ronda paralela produce tres opiniones sobre cosas distintas."
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"id": "service",
|
|
34
|
+
"phase": "discovery",
|
|
35
|
+
"agent": "backend-engineer",
|
|
36
|
+
"dependsOn": ["frame"],
|
|
37
|
+
"produces": [
|
|
38
|
+
"service-impact",
|
|
39
|
+
"contract-and-compatibility-risks"
|
|
40
|
+
],
|
|
41
|
+
"exitGate": "Dice qué endpoints, jobs y autorizaciones cambian, y cuáles de esos cambios rompen un contrato público. Lo que no puede establecer sin abrir el código queda dicho, no supuesto."
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
"id": "data",
|
|
45
|
+
"phase": "discovery",
|
|
46
|
+
"agent": "database-administrator",
|
|
47
|
+
"dependsOn": ["frame"],
|
|
48
|
+
"produces": [
|
|
49
|
+
"schema-and-migration-path",
|
|
50
|
+
"operational-risks"
|
|
51
|
+
],
|
|
52
|
+
"exitGate": "El camino de migración es reversible o dice por qué no lo es, y nombra el impacto en backups, réplicas y ventana de bloqueo. Una migración sin vuelta atrás declarada es un hallazgo, no un detalle."
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
"id": "interface",
|
|
56
|
+
"phase": "discovery",
|
|
57
|
+
"agent": "frontend-engineer",
|
|
58
|
+
"dependsOn": ["frame"],
|
|
59
|
+
"produces": [
|
|
60
|
+
"client-impact",
|
|
61
|
+
"states-and-accessibility-risks"
|
|
62
|
+
],
|
|
63
|
+
"exitGate": "Dice qué consume del contrato que cambia, qué estados nuevos aparecen —vacío, error, carga, permiso denegado— y qué queda sin diseño. Si el cambio no toca cliente, lo dice y esa es su entrega."
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
"id": "audit",
|
|
67
|
+
"phase": "discovery",
|
|
68
|
+
"agent": "security-engineer",
|
|
69
|
+
"dependsOn": ["service", "data", "interface"],
|
|
70
|
+
"produces": [
|
|
71
|
+
"threat-model-delta",
|
|
72
|
+
"controls-to-verify"
|
|
73
|
+
],
|
|
74
|
+
"exitGate": "Revisó las tres entregas juntas y no cada una por separado: los hallazgos que importan aparecen entre disciplinas —un dato que el servicio expone, el cliente cachea y la migración replica—. Cada control nombra cómo se comprueba."
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
"id": "decide",
|
|
78
|
+
"phase": "discovery",
|
|
79
|
+
"agent": "software-architect",
|
|
80
|
+
"dependsOn": ["audit"],
|
|
81
|
+
"produces": [
|
|
82
|
+
"architecture-decision",
|
|
83
|
+
"unresolved-frictions"
|
|
84
|
+
],
|
|
85
|
+
"exitGate": "El ADR dice qué se decidió, qué se descartó y por qué. Lo que las disciplinas no resolvieron entre sí queda nombrado con quién lo decide, no promediado en una redacción que contente a todos."
|
|
86
|
+
}
|
|
87
|
+
],
|
|
88
|
+
"guardrails": [
|
|
89
|
+
"Cada agente conserva los límites y autorizaciones de su SKILL.md.",
|
|
90
|
+
"Las tres disciplinas de la ronda paralela responden la pregunta que el encuadre les hizo; no negocian entre sí ni ajustan su hallazgo para que cierre con el de otra.",
|
|
91
|
+
"La seguridad audita al final y sobre el conjunto, no en paralelo: un hallazgo entre disciplinas no se ve mirando una sola.",
|
|
92
|
+
"La seguridad no aprueba ni certifica; entrega hallazgos y cómo comprobarlos.",
|
|
93
|
+
"Un diseño firmado no autoriza a construir: la promoción del trabajo es una decisión humana aparte.",
|
|
94
|
+
"Los agentes condicionales entran por plataforma, dato regulado o costo, no por rutina."
|
|
95
|
+
],
|
|
96
|
+
"completion": [
|
|
97
|
+
"El ADR distingue lo verificado de lo supuesto, y cada supuesto dice qué lo confirmaría.",
|
|
98
|
+
"Cada fricción sin resolver queda con su dueño de decisión nombrado.",
|
|
99
|
+
"Los hallazgos de seguridad quedan con el control que los cierra y cómo se comprueba.",
|
|
100
|
+
"Lo que ninguna disciplina pudo establecer sin abrir código o datos queda escrito como tal.",
|
|
101
|
+
"Si el diseño concluye que el cambio no se debe hacer así, ése es un resultado válido y queda registrado con su razón."
|
|
102
|
+
]
|
|
103
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ingeniomaps/cauce",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.46.0",
|
|
4
4
|
"description": "Sistema portable de planificación y ejecución verificable para cualquier proyecto",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"planning",
|
|
@@ -18,9 +18,12 @@
|
|
|
18
18
|
"engine/",
|
|
19
19
|
"template/",
|
|
20
20
|
"agents/",
|
|
21
|
-
"
|
|
21
|
+
"flows/",
|
|
22
22
|
"automatization/",
|
|
23
|
-
"CHANGELOG.md"
|
|
23
|
+
"CHANGELOG.md",
|
|
24
|
+
"!**/evaluations/results/**",
|
|
25
|
+
"!**/learning/reports/**",
|
|
26
|
+
"!**/learning/proposals/**"
|
|
24
27
|
],
|
|
25
28
|
"scripts": {
|
|
26
29
|
"ops": "node engine/cli/ops.js",
|
|
@@ -30,6 +33,7 @@
|
|
|
30
33
|
"test": "bash test/hooks-smoke.sh && node --test test/*.test.js",
|
|
31
34
|
"coverage": "bash test/coverage.sh",
|
|
32
35
|
"coverage:update": "bash test/coverage.sh --update",
|
|
36
|
+
"dead-imports": "node test/dead-imports.js",
|
|
33
37
|
"ci": "npm run check && npm run automation:check && npm run integration:check && npm run coverage",
|
|
34
38
|
"prepublishOnly": "npm run ci"
|
|
35
39
|
},
|