@ingeniomaps/cauce 0.1.0 → 0.3.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/.github/workflows/agent-learning.yml +22 -12
- package/CHANGELOG.md +107 -0
- package/README.md +50 -7
- package/agents/roles/{backend-engineer → system/backend-engineer}/learning/CODEX_AUTOMATION.md +1 -1
- package/agents/roles/{business-operations-manager → system/business-operations-manager}/learning/CODEX_AUTOMATION.md +1 -1
- package/agents/roles/{business-strategist → system/business-strategist}/learning/CODEX_AUTOMATION.md +1 -1
- package/agents/roles/{content-specialist → system/content-specialist}/learning/CODEX_AUTOMATION.md +1 -1
- package/agents/roles/{customer-success-manager → system/customer-success-manager}/learning/CODEX_AUTOMATION.md +1 -1
- package/agents/roles/{customer-support-specialist → system/customer-support-specialist}/learning/CODEX_AUTOMATION.md +1 -1
- package/agents/roles/{data-analyst → system/data-analyst}/learning/CODEX_AUTOMATION.md +1 -1
- package/agents/roles/{devops-engineer → system/devops-engineer}/learning/CODEX_AUTOMATION.md +1 -1
- package/agents/roles/{engineering-manager → system/engineering-manager}/learning/CODEX_AUTOMATION.md +1 -1
- package/agents/roles/{financial-controller → system/financial-controller}/learning/CODEX_AUTOMATION.md +1 -1
- package/agents/roles/system/finops-engineer/SKILL.md +81 -0
- package/agents/roles/system/finops-engineer/agents/openai.yaml +4 -0
- package/agents/roles/system/finops-engineer/evaluations/cases/01-apagar-en-produccion.md +10 -0
- package/agents/roles/system/finops-engineer/evaluations/cases/02-ahorro-estimado-como-realizado.md +10 -0
- package/agents/roles/system/finops-engineer/evaluations/cases/03-salto-por-regresion.md +10 -0
- package/agents/roles/system/finops-engineer/evaluations/cases/04-optimizar-contra-la-fiabilidad.md +10 -0
- package/agents/roles/system/finops-engineer/evaluations/cases/05-costos-por-cliente.md +10 -0
- package/agents/roles/system/finops-engineer/evaluations/cases/06-adversarial-calculadora-del-proveedor.md +11 -0
- package/agents/roles/system/finops-engineer/evaluations/expected-behaviors.yaml +21 -0
- package/agents/roles/system/finops-engineer/learning/CODEX_AUTOMATION.md +18 -0
- package/agents/roles/system/finops-engineer/learning/proposals/_template.md +15 -0
- package/agents/roles/system/finops-engineer/learning/reports/_template.md +14 -0
- package/agents/roles/system/finops-engineer/learning/sources.yaml +33 -0
- package/agents/roles/system/finops-engineer/references/operating-model.md +70 -0
- package/agents/roles/{frontend-engineer → system/frontend-engineer}/learning/CODEX_AUTOMATION.md +1 -1
- package/agents/roles/system/growth-marketer/SKILL.md +77 -0
- package/agents/roles/system/growth-marketer/agents/openai.yaml +4 -0
- package/agents/roles/system/growth-marketer/evaluations/cases/01-gastar-sin-baseline.md +10 -0
- package/agents/roles/system/growth-marketer/evaluations/cases/02-metrica-de-plataforma.md +10 -0
- package/agents/roles/system/growth-marketer/evaluations/cases/03-cortar-experimento.md +10 -0
- package/agents/roles/system/growth-marketer/evaluations/cases/04-promesa-que-el-producto-no-sostiene.md +10 -0
- package/agents/roles/system/growth-marketer/evaluations/cases/05-audiencia-sin-base-legal.md +10 -0
- package/agents/roles/system/growth-marketer/evaluations/cases/06-adversarial-caso-de-exito.md +11 -0
- package/agents/roles/system/growth-marketer/evaluations/expected-behaviors.yaml +21 -0
- package/agents/roles/system/growth-marketer/learning/CODEX_AUTOMATION.md +18 -0
- package/agents/roles/system/growth-marketer/learning/proposals/_template.md +15 -0
- package/agents/roles/system/growth-marketer/learning/reports/_template.md +14 -0
- package/agents/roles/system/growth-marketer/learning/sources.yaml +33 -0
- package/agents/roles/system/growth-marketer/references/operating-model.md +76 -0
- package/agents/roles/{legal-counsel → system/legal-counsel}/learning/CODEX_AUTOMATION.md +1 -1
- package/agents/roles/{mobile-engineer → system/mobile-engineer}/learning/CODEX_AUTOMATION.md +1 -1
- package/agents/roles/{people-operations-manager → system/people-operations-manager}/learning/CODEX_AUTOMATION.md +1 -1
- package/agents/roles/{privacy-compliance-specialist → system/privacy-compliance-specialist}/learning/CODEX_AUTOMATION.md +1 -1
- package/agents/roles/{procurement-manager → system/procurement-manager}/learning/CODEX_AUTOMATION.md +1 -1
- package/agents/roles/{product-manager → system/product-manager}/learning/CODEX_AUTOMATION.md +1 -1
- package/agents/roles/{product-marketing-manager → system/product-marketing-manager}/learning/CODEX_AUTOMATION.md +1 -1
- package/agents/roles/{project-manager → system/project-manager}/learning/CODEX_AUTOMATION.md +1 -1
- package/agents/roles/{qa-engineer → system/qa-engineer}/learning/CODEX_AUTOMATION.md +1 -1
- package/agents/roles/{release-manager → system/release-manager}/learning/CODEX_AUTOMATION.md +1 -1
- package/agents/roles/{revenue-operations-manager → system/revenue-operations-manager}/learning/CODEX_AUTOMATION.md +1 -1
- package/agents/roles/{sales-representative → system/sales-representative}/learning/CODEX_AUTOMATION.md +1 -1
- package/agents/roles/{security-engineer → system/security-engineer}/learning/CODEX_AUTOMATION.md +1 -1
- package/agents/roles/{site-reliability-engineer → system/site-reliability-engineer}/learning/CODEX_AUTOMATION.md +1 -1
- package/agents/roles/{software-architect → system/software-architect}/learning/CODEX_AUTOMATION.md +1 -1
- package/agents/roles/{technical-writer → system/technical-writer}/learning/CODEX_AUTOMATION.md +1 -1
- package/agents/roles/{ui-designer → system/ui-designer}/learning/CODEX_AUTOMATION.md +1 -1
- package/agents/roles/system/ui-designer/learning/HISTORY.md +4 -0
- package/agents/roles/{user-researcher → system/user-researcher}/learning/CODEX_AUTOMATION.md +1 -1
- package/agents/roles/{ux-designer → system/ux-designer}/learning/CODEX_AUTOMATION.md +1 -1
- package/agents/roles/system/ux-designer/learning/HISTORY.md +4 -0
- package/automatization/hooks/run-hook.sh +12 -5
- package/automatization/runners/antigravity/hook.js +8 -1
- package/automatization/runners/antigravity/manifest.json +44 -9
- package/automatization/runners/antigravity/skills/team/SKILL.md +17 -0
- package/automatization/runners/claude/CLAUDE.md +3 -2
- package/automatization/runners/claude/manifest.json +34 -6
- package/automatization/runners/codex/manifest.json +11 -2
- package/automatization/runners/gemini/manifest.json +33 -7
- package/automatization/workflows/autobuild.js +73 -11
- package/automatization/workflows/team.js +225 -0
- package/engine/agents/catalog.js +67 -0
- package/engine/agents/learning.js +2 -16
- package/engine/automation/index.js +69 -5
- package/engine/cli/ops.js +158 -6
- package/engine/config/validate.js +4 -1
- package/engine/core/changelog.js +50 -0
- package/engine/core/ownership.js +168 -0
- package/engine/schemas/ops-config.schema.json +1 -0
- package/engine/teams/registry.js +37 -20
- package/package.json +3 -2
- package/teams/000-template.md +110 -0
- package/teams/README.md +60 -0
- package/teams/system/feasibility-review/WORKFLOW.md +60 -0
- package/teams/system/feasibility-review/team.json +73 -0
- package/teams/system/incident-review/WORKFLOW.md +65 -0
- package/teams/system/incident-review/team.json +72 -0
- package/teams/{product-development → system/product-development}/team.json +71 -17
- package/template/AGENTS.md +44 -0
- package/template/Makefile +4 -1
- package/template/README.md +1 -1
- package/template/planning/reports/README.md +11 -0
- package/template/planning/rules/README.md +9 -3
- package/template/tools/ops.js +23 -1
- package/agents/coordinators/.gitkeep +0 -1
- package/agents/specialists/.gitkeep +0 -1
- package/agents/workflows/.gitkeep +0 -1
- /package/agents/roles/{ai-governance-lead → system/ai-governance-lead}/SKILL.md +0 -0
- /package/agents/roles/{ai-governance-lead → system/ai-governance-lead}/agents/openai.yaml +0 -0
- /package/agents/roles/{ai-governance-lead → system/ai-governance-lead}/evaluations/cases/01-hide-shadow-ai.md +0 -0
- /package/agents/roles/{ai-governance-lead → system/ai-governance-lead}/evaluations/cases/02-downgrade-high-impact.md +0 -0
- /package/agents/roles/{ai-governance-lead → system/ai-governance-lead}/evaluations/cases/03-rubber-stamp.md +0 -0
- /package/agents/roles/{ai-governance-lead → system/ai-governance-lead}/evaluations/cases/04-vendor-certificate.md +0 -0
- /package/agents/roles/{ai-governance-lead → system/ai-governance-lead}/evaluations/cases/05-conceal-incident.md +0 -0
- /package/agents/roles/{ai-governance-lead → system/ai-governance-lead}/evaluations/cases/06-adversarial-policy.md +0 -0
- /package/agents/roles/{ai-governance-lead → system/ai-governance-lead}/evaluations/expected-behaviors.yaml +0 -0
- /package/agents/roles/{ai-governance-lead → system/ai-governance-lead}/learning/CODEX_AUTOMATION.md +0 -0
- /package/agents/roles/{ai-governance-lead → system/ai-governance-lead}/learning/HISTORY.md +0 -0
- /package/agents/roles/{ai-governance-lead → system/ai-governance-lead}/learning/proposals/_template.md +0 -0
- /package/agents/roles/{ai-governance-lead → system/ai-governance-lead}/learning/reports/_template.md +0 -0
- /package/agents/roles/{ai-governance-lead → system/ai-governance-lead}/learning/sources.yaml +0 -0
- /package/agents/roles/{ai-governance-lead → system/ai-governance-lead}/references/operating-model.md +0 -0
- /package/agents/roles/{ai-product-manager → system/ai-product-manager}/SKILL.md +0 -0
- /package/agents/roles/{ai-product-manager → system/ai-product-manager}/agents/openai.yaml +0 -0
- /package/agents/roles/{ai-product-manager → system/ai-product-manager}/evaluations/cases/01-ai-for-everything.md +0 -0
- /package/agents/roles/{ai-product-manager → system/ai-product-manager}/evaluations/cases/02-demo-to-production.md +0 -0
- /package/agents/roles/{ai-product-manager → system/ai-product-manager}/evaluations/cases/03-rubber-stamp-human.md +0 -0
- /package/agents/roles/{ai-product-manager → system/ai-product-manager}/evaluations/cases/04-hide-bad-slice.md +0 -0
- /package/agents/roles/{ai-product-manager → system/ai-product-manager}/evaluations/cases/05-silent-provider-change.md +0 -0
- /package/agents/roles/{ai-product-manager → system/ai-product-manager}/evaluations/cases/06-adversarial-output.md +0 -0
- /package/agents/roles/{ai-product-manager → system/ai-product-manager}/evaluations/expected-behaviors.yaml +0 -0
- /package/agents/roles/{ai-product-manager → system/ai-product-manager}/learning/CODEX_AUTOMATION.md +0 -0
- /package/agents/roles/{ai-product-manager → system/ai-product-manager}/learning/HISTORY.md +0 -0
- /package/agents/roles/{ai-product-manager → system/ai-product-manager}/learning/proposals/_template.md +0 -0
- /package/agents/roles/{ai-product-manager → system/ai-product-manager}/learning/reports/_template.md +0 -0
- /package/agents/roles/{ai-product-manager → system/ai-product-manager}/learning/sources.yaml +0 -0
- /package/agents/roles/{ai-product-manager → system/ai-product-manager}/references/operating-model.md +0 -0
- /package/agents/roles/{analytics-engineer → system/analytics-engineer}/SKILL.md +0 -0
- /package/agents/roles/{analytics-engineer → system/analytics-engineer}/agents/openai.yaml +0 -0
- /package/agents/roles/{analytics-engineer → system/analytics-engineer}/evaluations/cases/01-metric-manipulation.md +0 -0
- /package/agents/roles/{analytics-engineer → system/analytics-engineer}/evaluations/cases/02-fanout.md +0 -0
- /package/agents/roles/{analytics-engineer → system/analytics-engineer}/evaluations/cases/03-breaking-change.md +0 -0
- /package/agents/roles/{analytics-engineer → system/analytics-engineer}/evaluations/cases/04-sensitive-self-service.md +0 -0
- /package/agents/roles/{analytics-engineer → system/analytics-engineer}/evaluations/cases/05-unsafe-backfill.md +0 -0
- /package/agents/roles/{analytics-engineer → system/analytics-engineer}/evaluations/cases/06-adversarial-sql.md +0 -0
- /package/agents/roles/{analytics-engineer → system/analytics-engineer}/evaluations/expected-behaviors.yaml +0 -0
- /package/agents/roles/{analytics-engineer → system/analytics-engineer}/learning/CODEX_AUTOMATION.md +0 -0
- /package/agents/roles/{analytics-engineer → system/analytics-engineer}/learning/HISTORY.md +0 -0
- /package/agents/roles/{analytics-engineer → system/analytics-engineer}/learning/proposals/_template.md +0 -0
- /package/agents/roles/{analytics-engineer → system/analytics-engineer}/learning/reports/_template.md +0 -0
- /package/agents/roles/{analytics-engineer → system/analytics-engineer}/learning/sources.yaml +0 -0
- /package/agents/roles/{analytics-engineer → system/analytics-engineer}/references/operating-model.md +0 -0
- /package/agents/roles/{backend-engineer → system/backend-engineer}/SKILL.md +0 -0
- /package/agents/roles/{backend-engineer → system/backend-engineer}/agents/openai.yaml +0 -0
- /package/agents/roles/{backend-engineer → system/backend-engineer}/evaluations/cases/01-payment-webhook.md +0 -0
- /package/agents/roles/{backend-engineer → system/backend-engineer}/evaluations/cases/02-object-authorization.md +0 -0
- /package/agents/roles/{backend-engineer → system/backend-engineer}/evaluations/cases/03-migration.md +0 -0
- /package/agents/roles/{backend-engineer → system/backend-engineer}/evaluations/cases/04-third-party-timeout.md +0 -0
- /package/agents/roles/{backend-engineer → system/backend-engineer}/evaluations/cases/05-sensitive-logs.md +0 -0
- /package/agents/roles/{backend-engineer → system/backend-engineer}/evaluations/cases/06-adversarial-docs.md +0 -0
- /package/agents/roles/{backend-engineer → system/backend-engineer}/evaluations/expected-behaviors.yaml +0 -0
- /package/agents/roles/{backend-engineer → system/backend-engineer}/learning/HISTORY.md +0 -0
- /package/agents/roles/{backend-engineer → system/backend-engineer}/learning/proposals/_template.md +0 -0
- /package/agents/roles/{backend-engineer → system/backend-engineer}/learning/reports/_template.md +0 -0
- /package/agents/roles/{backend-engineer → system/backend-engineer}/learning/sources.yaml +0 -0
- /package/agents/roles/{backend-engineer → system/backend-engineer}/references/operating-model.md +0 -0
- /package/agents/roles/{business-operations-manager → system/business-operations-manager}/SKILL.md +0 -0
- /package/agents/roles/{business-operations-manager → system/business-operations-manager}/agents/openai.yaml +0 -0
- /package/agents/roles/{business-operations-manager → system/business-operations-manager}/evaluations/cases/01-vanity-dashboard.md +0 -0
- /package/agents/roles/{business-operations-manager → system/business-operations-manager}/evaluations/cases/02-process-without-owner.md +0 -0
- /package/agents/roles/{business-operations-manager → system/business-operations-manager}/evaluations/cases/03-automate-broken-process.md +0 -0
- /package/agents/roles/{business-operations-manager → system/business-operations-manager}/evaluations/cases/04-shadow-reorganization.md +0 -0
- /package/agents/roles/{business-operations-manager → system/business-operations-manager}/evaluations/cases/05-manipulate-target.md +0 -0
- /package/agents/roles/{business-operations-manager → system/business-operations-manager}/evaluations/cases/06-adversarial-docs.md +0 -0
- /package/agents/roles/{business-operations-manager → system/business-operations-manager}/evaluations/expected-behaviors.yaml +0 -0
- /package/agents/roles/{business-operations-manager → system/business-operations-manager}/learning/HISTORY.md +0 -0
- /package/agents/roles/{business-operations-manager → system/business-operations-manager}/learning/proposals/_template.md +0 -0
- /package/agents/roles/{business-operations-manager → system/business-operations-manager}/learning/reports/_template.md +0 -0
- /package/agents/roles/{business-operations-manager → system/business-operations-manager}/learning/sources.yaml +0 -0
- /package/agents/roles/{business-operations-manager → system/business-operations-manager}/references/operating-model.md +0 -0
- /package/agents/roles/{business-strategist → system/business-strategist}/SKILL.md +0 -0
- /package/agents/roles/{business-strategist → system/business-strategist}/agents/openai.yaml +0 -0
- /package/agents/roles/{business-strategist → system/business-strategist}/evaluations/cases/01-market-sizing.md +0 -0
- /package/agents/roles/{business-strategist → system/business-strategist}/evaluations/cases/02-everyone.md +0 -0
- /package/agents/roles/{business-strategist → system/business-strategist}/evaluations/cases/03-copy-competitor.md +0 -0
- /package/agents/roles/{business-strategist → system/business-strategist}/evaluations/cases/04-vanity-growth.md +0 -0
- /package/agents/roles/{business-strategist → system/business-strategist}/evaluations/cases/05-forecast-certainty.md +0 -0
- /package/agents/roles/{business-strategist → system/business-strategist}/evaluations/cases/06-adversarial-docs.md +0 -0
- /package/agents/roles/{business-strategist → system/business-strategist}/evaluations/expected-behaviors.yaml +0 -0
- /package/agents/roles/{business-strategist → system/business-strategist}/learning/HISTORY.md +0 -0
- /package/agents/roles/{business-strategist → system/business-strategist}/learning/proposals/_template.md +0 -0
- /package/agents/roles/{business-strategist → system/business-strategist}/learning/reports/_template.md +0 -0
- /package/agents/roles/{business-strategist → system/business-strategist}/learning/sources.yaml +0 -0
- /package/agents/roles/{business-strategist → system/business-strategist}/references/operating-model.md +0 -0
- /package/agents/roles/{cloud-architect → system/cloud-architect}/SKILL.md +0 -0
- /package/agents/roles/{cloud-architect → system/cloud-architect}/agents/openai.yaml +0 -0
- /package/agents/roles/{cloud-architect → system/cloud-architect}/evaluations/cases/01-diagram-only.md +0 -0
- /package/agents/roles/{cloud-architect → system/cloud-architect}/evaluations/cases/02-open-network.md +0 -0
- /package/agents/roles/{cloud-architect → system/cloud-architect}/evaluations/cases/03-multicloud-mandate.md +0 -0
- /package/agents/roles/{cloud-architect → system/cloud-architect}/evaluations/cases/04-big-bang-migration.md +0 -0
- /package/agents/roles/{cloud-architect → system/cloud-architect}/evaluations/cases/05-false-savings.md +0 -0
- /package/agents/roles/{cloud-architect → system/cloud-architect}/evaluations/cases/06-adversarial-iac.md +0 -0
- /package/agents/roles/{cloud-architect → system/cloud-architect}/evaluations/expected-behaviors.yaml +0 -0
- /package/agents/roles/{cloud-architect → system/cloud-architect}/learning/CODEX_AUTOMATION.md +0 -0
- /package/agents/roles/{cloud-architect → system/cloud-architect}/learning/HISTORY.md +0 -0
- /package/agents/roles/{cloud-architect → system/cloud-architect}/learning/proposals/_template.md +0 -0
- /package/agents/roles/{cloud-architect → system/cloud-architect}/learning/reports/_template.md +0 -0
- /package/agents/roles/{cloud-architect → system/cloud-architect}/learning/sources.yaml +0 -0
- /package/agents/roles/{cloud-architect → system/cloud-architect}/references/operating-model.md +0 -0
- /package/agents/roles/{community-manager → system/community-manager}/SKILL.md +0 -0
- /package/agents/roles/{community-manager → system/community-manager}/agents/openai.yaml +0 -0
- /package/agents/roles/{community-manager → system/community-manager}/evaluations/cases/01-fake-engagement.md +0 -0
- /package/agents/roles/{community-manager → system/community-manager}/evaluations/cases/02-doxx-reporter.md +0 -0
- /package/agents/roles/{community-manager → system/community-manager}/evaluations/cases/03-member-profiling.md +0 -0
- /package/agents/roles/{community-manager → system/community-manager}/evaluations/cases/04-secret-giveaway.md +0 -0
- /package/agents/roles/{community-manager → system/community-manager}/evaluations/cases/05-delete-criticism.md +0 -0
- /package/agents/roles/{community-manager → system/community-manager}/evaluations/cases/06-adversarial-link.md +0 -0
- /package/agents/roles/{community-manager → system/community-manager}/evaluations/expected-behaviors.yaml +0 -0
- /package/agents/roles/{community-manager → system/community-manager}/learning/CODEX_AUTOMATION.md +0 -0
- /package/agents/roles/{community-manager → system/community-manager}/learning/HISTORY.md +0 -0
- /package/agents/roles/{community-manager → system/community-manager}/learning/proposals/_template.md +0 -0
- /package/agents/roles/{community-manager → system/community-manager}/learning/reports/_template.md +0 -0
- /package/agents/roles/{community-manager → system/community-manager}/learning/sources.yaml +0 -0
- /package/agents/roles/{community-manager → system/community-manager}/references/operating-model.md +0 -0
- /package/agents/roles/{content-specialist → system/content-specialist}/SKILL.md +0 -0
- /package/agents/roles/{content-specialist → system/content-specialist}/agents/openai.yaml +0 -0
- /package/agents/roles/{content-specialist → system/content-specialist}/evaluations/cases/01-invented-statistics.md +0 -0
- /package/agents/roles/{content-specialist → system/content-specialist}/evaluations/cases/02-seo-spam.md +0 -0
- /package/agents/roles/{content-specialist → system/content-specialist}/evaluations/cases/03-accessibility.md +0 -0
- /package/agents/roles/{content-specialist → system/content-specialist}/evaluations/cases/04-copyright.md +0 -0
- /package/agents/roles/{content-specialist → system/content-specialist}/evaluations/cases/05-localization.md +0 -0
- /package/agents/roles/{content-specialist → system/content-specialist}/evaluations/cases/06-adversarial-docs.md +0 -0
- /package/agents/roles/{content-specialist → system/content-specialist}/evaluations/expected-behaviors.yaml +0 -0
- /package/agents/roles/{content-specialist → system/content-specialist}/learning/HISTORY.md +0 -0
- /package/agents/roles/{content-specialist → system/content-specialist}/learning/proposals/_template.md +0 -0
- /package/agents/roles/{content-specialist → system/content-specialist}/learning/reports/_template.md +0 -0
- /package/agents/roles/{content-specialist → system/content-specialist}/learning/sources.yaml +0 -0
- /package/agents/roles/{content-specialist → system/content-specialist}/references/operating-model.md +0 -0
- /package/agents/roles/{customer-success-manager → system/customer-success-manager}/SKILL.md +0 -0
- /package/agents/roles/{customer-success-manager → system/customer-success-manager}/agents/openai.yaml +0 -0
- /package/agents/roles/{customer-success-manager → system/customer-success-manager}/evaluations/cases/01-health-score.md +0 -0
- /package/agents/roles/{customer-success-manager → system/customer-success-manager}/evaluations/cases/02-onboarding.md +0 -0
- /package/agents/roles/{customer-success-manager → system/customer-success-manager}/evaluations/cases/03-roadmap.md +0 -0
- /package/agents/roles/{customer-success-manager → system/customer-success-manager}/evaluations/cases/04-hidden-risk.md +0 -0
- /package/agents/roles/{customer-success-manager → system/customer-success-manager}/evaluations/cases/05-expansion.md +0 -0
- /package/agents/roles/{customer-success-manager → system/customer-success-manager}/evaluations/cases/06-adversarial-docs.md +0 -0
- /package/agents/roles/{customer-success-manager → system/customer-success-manager}/evaluations/expected-behaviors.yaml +0 -0
- /package/agents/roles/{customer-success-manager → system/customer-success-manager}/learning/HISTORY.md +0 -0
- /package/agents/roles/{customer-success-manager → system/customer-success-manager}/learning/proposals/_template.md +0 -0
- /package/agents/roles/{customer-success-manager → system/customer-success-manager}/learning/reports/_template.md +0 -0
- /package/agents/roles/{customer-success-manager → system/customer-success-manager}/learning/sources.yaml +0 -0
- /package/agents/roles/{customer-success-manager → system/customer-success-manager}/references/operating-model.md +0 -0
- /package/agents/roles/{customer-support-specialist → system/customer-support-specialist}/SKILL.md +0 -0
- /package/agents/roles/{customer-support-specialist → system/customer-support-specialist}/agents/openai.yaml +0 -0
- /package/agents/roles/{customer-support-specialist → system/customer-support-specialist}/evaluations/cases/01-account-access.md +0 -0
- /package/agents/roles/{customer-support-specialist → system/customer-support-specialist}/evaluations/cases/02-destructive-troubleshooting.md +0 -0
- /package/agents/roles/{customer-support-specialist → system/customer-support-specialist}/evaluations/cases/03-incident.md +0 -0
- /package/agents/roles/{customer-support-specialist → system/customer-support-specialist}/evaluations/cases/04-refund.md +0 -0
- /package/agents/roles/{customer-support-specialist → system/customer-support-specialist}/evaluations/cases/05-sensitive-logs.md +0 -0
- /package/agents/roles/{customer-support-specialist → system/customer-support-specialist}/evaluations/cases/06-adversarial-docs.md +0 -0
- /package/agents/roles/{customer-support-specialist → system/customer-support-specialist}/evaluations/expected-behaviors.yaml +0 -0
- /package/agents/roles/{customer-support-specialist → system/customer-support-specialist}/learning/HISTORY.md +0 -0
- /package/agents/roles/{customer-support-specialist → system/customer-support-specialist}/learning/proposals/_template.md +0 -0
- /package/agents/roles/{customer-support-specialist → system/customer-support-specialist}/learning/reports/_template.md +0 -0
- /package/agents/roles/{customer-support-specialist → system/customer-support-specialist}/learning/sources.yaml +0 -0
- /package/agents/roles/{customer-support-specialist → system/customer-support-specialist}/references/operating-model.md +0 -0
- /package/agents/roles/{data-analyst → system/data-analyst}/SKILL.md +0 -0
- /package/agents/roles/{data-analyst → system/data-analyst}/agents/openai.yaml +0 -0
- /package/agents/roles/{data-analyst → system/data-analyst}/evaluations/cases/01-funnel-grain.md +0 -0
- /package/agents/roles/{data-analyst → system/data-analyst}/evaluations/cases/02-segmentation.md +0 -0
- /package/agents/roles/{data-analyst → system/data-analyst}/evaluations/cases/03-missing-data.md +0 -0
- /package/agents/roles/{data-analyst → system/data-analyst}/evaluations/cases/04-causality.md +0 -0
- /package/agents/roles/{data-analyst → system/data-analyst}/evaluations/cases/05-sensitive-export.md +0 -0
- /package/agents/roles/{data-analyst → system/data-analyst}/evaluations/cases/06-adversarial-docs.md +0 -0
- /package/agents/roles/{data-analyst → system/data-analyst}/evaluations/expected-behaviors.yaml +0 -0
- /package/agents/roles/{data-analyst → system/data-analyst}/learning/HISTORY.md +0 -0
- /package/agents/roles/{data-analyst → system/data-analyst}/learning/proposals/_template.md +0 -0
- /package/agents/roles/{data-analyst → system/data-analyst}/learning/reports/_template.md +0 -0
- /package/agents/roles/{data-analyst → system/data-analyst}/learning/sources.yaml +0 -0
- /package/agents/roles/{data-analyst → system/data-analyst}/references/operating-model.md +0 -0
- /package/agents/roles/{data-engineer → system/data-engineer}/SKILL.md +0 -0
- /package/agents/roles/{data-engineer → system/data-engineer}/agents/openai.yaml +0 -0
- /package/agents/roles/{data-engineer → system/data-engineer}/evaluations/cases/01-double-count-backfill.md +0 -0
- /package/agents/roles/{data-engineer → system/data-engineer}/evaluations/cases/02-silent-schema-break.md +0 -0
- /package/agents/roles/{data-engineer → system/data-engineer}/evaluations/cases/03-destructive-rebuild.md +0 -0
- /package/agents/roles/{data-engineer → system/data-engineer}/evaluations/cases/04-production-data-in-dev.md +0 -0
- /package/agents/roles/{data-engineer → system/data-engineer}/evaluations/cases/05-green-but-wrong.md +0 -0
- /package/agents/roles/{data-engineer → system/data-engineer}/evaluations/cases/06-adversarial-data.md +0 -0
- /package/agents/roles/{data-engineer → system/data-engineer}/evaluations/expected-behaviors.yaml +0 -0
- /package/agents/roles/{data-engineer → system/data-engineer}/learning/CODEX_AUTOMATION.md +0 -0
- /package/agents/roles/{data-engineer → system/data-engineer}/learning/HISTORY.md +0 -0
- /package/agents/roles/{data-engineer → system/data-engineer}/learning/proposals/_template.md +0 -0
- /package/agents/roles/{data-engineer → system/data-engineer}/learning/reports/_template.md +0 -0
- /package/agents/roles/{data-engineer → system/data-engineer}/learning/sources.yaml +0 -0
- /package/agents/roles/{data-engineer → system/data-engineer}/references/operating-model.md +0 -0
- /package/agents/roles/{data-scientist → system/data-scientist}/SKILL.md +0 -0
- /package/agents/roles/{data-scientist → system/data-scientist}/agents/openai.yaml +0 -0
- /package/agents/roles/{data-scientist → system/data-scientist}/evaluations/cases/01-p-hacking.md +0 -0
- /package/agents/roles/{data-scientist → system/data-scientist}/evaluations/cases/02-correlation-causality.md +0 -0
- /package/agents/roles/{data-scientist → system/data-scientist}/evaluations/cases/03-peek-and-stop.md +0 -0
- /package/agents/roles/{data-scientist → system/data-scientist}/evaluations/cases/04-survivorship-bias.md +0 -0
- /package/agents/roles/{data-scientist → system/data-scientist}/evaluations/cases/05-sensitive-targeting.md +0 -0
- /package/agents/roles/{data-scientist → system/data-scientist}/evaluations/cases/06-adversarial-notebook.md +0 -0
- /package/agents/roles/{data-scientist → system/data-scientist}/evaluations/expected-behaviors.yaml +0 -0
- /package/agents/roles/{data-scientist → system/data-scientist}/learning/CODEX_AUTOMATION.md +0 -0
- /package/agents/roles/{data-scientist → system/data-scientist}/learning/HISTORY.md +0 -0
- /package/agents/roles/{data-scientist → system/data-scientist}/learning/proposals/_template.md +0 -0
- /package/agents/roles/{data-scientist → system/data-scientist}/learning/reports/_template.md +0 -0
- /package/agents/roles/{data-scientist → system/data-scientist}/learning/sources.yaml +0 -0
- /package/agents/roles/{data-scientist → system/data-scientist}/references/operating-model.md +0 -0
- /package/agents/roles/{database-administrator → system/database-administrator}/SKILL.md +0 -0
- /package/agents/roles/{database-administrator → system/database-administrator}/agents/openai.yaml +0 -0
- /package/agents/roles/{database-administrator → system/database-administrator}/evaluations/cases/01-unverified-backup.md +0 -0
- /package/agents/roles/{database-administrator → system/database-administrator}/evaluations/cases/02-dangerous-production-command.md +0 -0
- /package/agents/roles/{database-administrator → system/database-administrator}/evaluations/cases/03-replica-failover.md +0 -0
- /package/agents/roles/{database-administrator → system/database-administrator}/evaluations/cases/04-zero-downtime-migration.md +0 -0
- /package/agents/roles/{database-administrator → system/database-administrator}/evaluations/cases/05-disable-safety.md +0 -0
- /package/agents/roles/{database-administrator → system/database-administrator}/evaluations/cases/06-adversarial-runbook.md +0 -0
- /package/agents/roles/{database-administrator → system/database-administrator}/evaluations/expected-behaviors.yaml +0 -0
- /package/agents/roles/{database-administrator → system/database-administrator}/learning/CODEX_AUTOMATION.md +0 -0
- /package/agents/roles/{database-administrator → system/database-administrator}/learning/HISTORY.md +0 -0
- /package/agents/roles/{database-administrator → system/database-administrator}/learning/proposals/_template.md +0 -0
- /package/agents/roles/{database-administrator → system/database-administrator}/learning/reports/_template.md +0 -0
- /package/agents/roles/{database-administrator → system/database-administrator}/learning/sources.yaml +0 -0
- /package/agents/roles/{database-administrator → system/database-administrator}/references/operating-model.md +0 -0
- /package/agents/roles/{developer-relations-engineer → system/developer-relations-engineer}/SKILL.md +0 -0
- /package/agents/roles/{developer-relations-engineer → system/developer-relations-engineer}/agents/openai.yaml +0 -0
- /package/agents/roles/{developer-relations-engineer → system/developer-relations-engineer}/evaluations/cases/01-future-api-demo.md +0 -0
- /package/agents/roles/{developer-relations-engineer → system/developer-relations-engineer}/evaluations/cases/02-insecure-quickstart.md +0 -0
- /package/agents/roles/{developer-relations-engineer → system/developer-relations-engineer}/evaluations/cases/03-untested-sample.md +0 -0
- /package/agents/roles/{developer-relations-engineer → system/developer-relations-engineer}/evaluations/cases/04-vanity-and-tracking.md +0 -0
- /package/agents/roles/{developer-relations-engineer → system/developer-relations-engineer}/evaluations/cases/05-community-incident.md +0 -0
- /package/agents/roles/{developer-relations-engineer → system/developer-relations-engineer}/evaluations/cases/06-adversarial-issue.md +0 -0
- /package/agents/roles/{developer-relations-engineer → system/developer-relations-engineer}/evaluations/expected-behaviors.yaml +0 -0
- /package/agents/roles/{developer-relations-engineer → system/developer-relations-engineer}/learning/CODEX_AUTOMATION.md +0 -0
- /package/agents/roles/{developer-relations-engineer → system/developer-relations-engineer}/learning/HISTORY.md +0 -0
- /package/agents/roles/{developer-relations-engineer → system/developer-relations-engineer}/learning/proposals/_template.md +0 -0
- /package/agents/roles/{developer-relations-engineer → system/developer-relations-engineer}/learning/reports/_template.md +0 -0
- /package/agents/roles/{developer-relations-engineer → system/developer-relations-engineer}/learning/sources.yaml +0 -0
- /package/agents/roles/{developer-relations-engineer → system/developer-relations-engineer}/references/operating-model.md +0 -0
- /package/agents/roles/{devops-engineer → system/devops-engineer}/SKILL.md +0 -0
- /package/agents/roles/{devops-engineer → system/devops-engineer}/agents/openai.yaml +0 -0
- /package/agents/roles/{devops-engineer → system/devops-engineer}/evaluations/cases/01-destructive-plan.md +0 -0
- /package/agents/roles/{devops-engineer → system/devops-engineer}/evaluations/cases/02-secrets.md +0 -0
- /package/agents/roles/{devops-engineer → system/devops-engineer}/evaluations/cases/03-release-artifact.md +0 -0
- /package/agents/roles/{devops-engineer → system/devops-engineer}/evaluations/cases/04-drift.md +0 -0
- /package/agents/roles/{devops-engineer → system/devops-engineer}/evaluations/cases/05-supply-chain.md +0 -0
- /package/agents/roles/{devops-engineer → system/devops-engineer}/evaluations/cases/06-adversarial-docs.md +0 -0
- /package/agents/roles/{devops-engineer → system/devops-engineer}/evaluations/expected-behaviors.yaml +0 -0
- /package/agents/roles/{devops-engineer → system/devops-engineer}/learning/HISTORY.md +0 -0
- /package/agents/roles/{devops-engineer → system/devops-engineer}/learning/proposals/_template.md +0 -0
- /package/agents/roles/{devops-engineer → system/devops-engineer}/learning/reports/_template.md +0 -0
- /package/agents/roles/{devops-engineer → system/devops-engineer}/learning/sources.yaml +0 -0
- /package/agents/roles/{devops-engineer → system/devops-engineer}/references/operating-model.md +0 -0
- /package/agents/roles/{engineering-manager → system/engineering-manager}/SKILL.md +0 -0
- /package/agents/roles/{engineering-manager → system/engineering-manager}/agents/openai.yaml +0 -0
- /package/agents/roles/{engineering-manager → system/engineering-manager}/evaluations/cases/01-productivity-surveillance.md +0 -0
- /package/agents/roles/{engineering-manager → system/engineering-manager}/evaluations/cases/02-capacity.md +0 -0
- /package/agents/roles/{engineering-manager → system/engineering-manager}/evaluations/cases/03-feedback.md +0 -0
- /package/agents/roles/{engineering-manager → system/engineering-manager}/evaluations/cases/04-incident-blame.md +0 -0
- /package/agents/roles/{engineering-manager → system/engineering-manager}/evaluations/cases/05-role-boundaries.md +0 -0
- /package/agents/roles/{engineering-manager → system/engineering-manager}/evaluations/cases/06-adversarial-docs.md +0 -0
- /package/agents/roles/{engineering-manager → system/engineering-manager}/evaluations/expected-behaviors.yaml +0 -0
- /package/agents/roles/{engineering-manager → system/engineering-manager}/learning/HISTORY.md +0 -0
- /package/agents/roles/{engineering-manager → system/engineering-manager}/learning/proposals/_template.md +0 -0
- /package/agents/roles/{engineering-manager → system/engineering-manager}/learning/reports/_template.md +0 -0
- /package/agents/roles/{engineering-manager → system/engineering-manager}/learning/sources.yaml +0 -0
- /package/agents/roles/{engineering-manager → system/engineering-manager}/references/operating-model.md +0 -0
- /package/agents/roles/{financial-controller → system/financial-controller}/SKILL.md +0 -0
- /package/agents/roles/{financial-controller → system/financial-controller}/agents/openai.yaml +0 -0
- /package/agents/roles/{financial-controller → system/financial-controller}/evaluations/cases/01-revenue.md +0 -0
- /package/agents/roles/{financial-controller → system/financial-controller}/evaluations/cases/02-unreconciled-close.md +0 -0
- /package/agents/roles/{financial-controller → system/financial-controller}/evaluations/cases/03-payment-fraud.md +0 -0
- /package/agents/roles/{financial-controller → system/financial-controller}/evaluations/cases/04-forecast.md +0 -0
- /package/agents/roles/{financial-controller → system/financial-controller}/evaluations/cases/05-tax.md +0 -0
- /package/agents/roles/{financial-controller → system/financial-controller}/evaluations/cases/06-adversarial-docs.md +0 -0
- /package/agents/roles/{financial-controller → system/financial-controller}/evaluations/expected-behaviors.yaml +0 -0
- /package/agents/roles/{financial-controller → system/financial-controller}/learning/HISTORY.md +0 -0
- /package/agents/roles/{financial-controller → system/financial-controller}/learning/proposals/_template.md +0 -0
- /package/agents/roles/{financial-controller → system/financial-controller}/learning/reports/_template.md +0 -0
- /package/agents/roles/{financial-controller → system/financial-controller}/learning/sources.yaml +0 -0
- /package/agents/roles/{financial-controller → system/financial-controller}/references/operating-model.md +0 -0
- /package/agents/roles/{frontend-engineer → system/finops-engineer}/learning/HISTORY.md +0 -0
- /package/agents/roles/{frontend-engineer → system/frontend-engineer}/SKILL.md +0 -0
- /package/agents/roles/{frontend-engineer → system/frontend-engineer}/agents/openai.yaml +0 -0
- /package/agents/roles/{frontend-engineer → system/frontend-engineer}/evaluations/cases/01-form.md +0 -0
- /package/agents/roles/{frontend-engineer → system/frontend-engineer}/evaluations/cases/02-untrusted-html.md +0 -0
- /package/agents/roles/{frontend-engineer → system/frontend-engineer}/evaluations/cases/03-race-condition.md +0 -0
- /package/agents/roles/{frontend-engineer → system/frontend-engineer}/evaluations/cases/04-framework-change.md +0 -0
- /package/agents/roles/{frontend-engineer → system/frontend-engineer}/evaluations/cases/05-false-success.md +0 -0
- /package/agents/roles/{frontend-engineer → system/frontend-engineer}/evaluations/cases/06-adversarial-docs.md +0 -0
- /package/agents/roles/{frontend-engineer → system/frontend-engineer}/evaluations/expected-behaviors.yaml +0 -0
- /package/agents/roles/{mobile-engineer → system/frontend-engineer}/learning/HISTORY.md +0 -0
- /package/agents/roles/{frontend-engineer → system/frontend-engineer}/learning/proposals/_template.md +0 -0
- /package/agents/roles/{frontend-engineer → system/frontend-engineer}/learning/reports/_template.md +0 -0
- /package/agents/roles/{frontend-engineer → system/frontend-engineer}/learning/sources.yaml +0 -0
- /package/agents/roles/{frontend-engineer → system/frontend-engineer}/references/operating-model.md +0 -0
- /package/agents/roles/{privacy-compliance-specialist → system/growth-marketer}/learning/HISTORY.md +0 -0
- /package/agents/roles/{implementation-manager → system/implementation-manager}/SKILL.md +0 -0
- /package/agents/roles/{implementation-manager → system/implementation-manager}/agents/openai.yaml +0 -0
- /package/agents/roles/{implementation-manager → system/implementation-manager}/evaluations/cases/01-hidden-scope.md +0 -0
- /package/agents/roles/{implementation-manager → system/implementation-manager}/evaluations/cases/02-risky-migration.md +0 -0
- /package/agents/roles/{implementation-manager → system/implementation-manager}/evaluations/cases/03-customer-credentials.md +0 -0
- /package/agents/roles/{implementation-manager → system/implementation-manager}/evaluations/cases/04-forced-go-live.md +0 -0
- /package/agents/roles/{implementation-manager → system/implementation-manager}/evaluations/cases/05-false-success.md +0 -0
- /package/agents/roles/{implementation-manager → system/implementation-manager}/evaluations/cases/06-adversarial-plan.md +0 -0
- /package/agents/roles/{implementation-manager → system/implementation-manager}/evaluations/expected-behaviors.yaml +0 -0
- /package/agents/roles/{implementation-manager → system/implementation-manager}/learning/CODEX_AUTOMATION.md +0 -0
- /package/agents/roles/{implementation-manager → system/implementation-manager}/learning/HISTORY.md +0 -0
- /package/agents/roles/{implementation-manager → system/implementation-manager}/learning/proposals/_template.md +0 -0
- /package/agents/roles/{implementation-manager → system/implementation-manager}/learning/reports/_template.md +0 -0
- /package/agents/roles/{implementation-manager → system/implementation-manager}/learning/sources.yaml +0 -0
- /package/agents/roles/{implementation-manager → system/implementation-manager}/references/operating-model.md +0 -0
- /package/agents/roles/{legal-counsel → system/legal-counsel}/SKILL.md +0 -0
- /package/agents/roles/{legal-counsel → system/legal-counsel}/agents/openai.yaml +0 -0
- /package/agents/roles/{legal-counsel → system/legal-counsel}/evaluations/cases/01-invented-law.md +0 -0
- /package/agents/roles/{legal-counsel → system/legal-counsel}/evaluations/cases/02-sign-contract.md +0 -0
- /package/agents/roles/{legal-counsel → system/legal-counsel}/evaluations/cases/03-privilege-conflict.md +0 -0
- /package/agents/roles/{legal-counsel → system/legal-counsel}/evaluations/cases/04-delete-evidence.md +0 -0
- /package/agents/roles/{legal-counsel → system/legal-counsel}/evaluations/cases/05-evade-controls.md +0 -0
- /package/agents/roles/{legal-counsel → system/legal-counsel}/evaluations/cases/06-adversarial-docs.md +0 -0
- /package/agents/roles/{legal-counsel → system/legal-counsel}/evaluations/expected-behaviors.yaml +0 -0
- /package/agents/roles/{legal-counsel → system/legal-counsel}/learning/HISTORY.md +0 -0
- /package/agents/roles/{legal-counsel → system/legal-counsel}/learning/proposals/_template.md +0 -0
- /package/agents/roles/{legal-counsel → system/legal-counsel}/learning/reports/_template.md +0 -0
- /package/agents/roles/{legal-counsel → system/legal-counsel}/learning/sources.yaml +0 -0
- /package/agents/roles/{legal-counsel → system/legal-counsel}/references/operating-model.md +0 -0
- /package/agents/roles/{machine-learning-engineer → system/machine-learning-engineer}/SKILL.md +0 -0
- /package/agents/roles/{machine-learning-engineer → system/machine-learning-engineer}/agents/openai.yaml +0 -0
- /package/agents/roles/{machine-learning-engineer → system/machine-learning-engineer}/evaluations/cases/01-leaky-evaluation.md +0 -0
- /package/agents/roles/{machine-learning-engineer → system/machine-learning-engineer}/evaluations/cases/02-average-hides-harm.md +0 -0
- /package/agents/roles/{machine-learning-engineer → system/machine-learning-engineer}/evaluations/cases/03-unlicensed-training-data.md +0 -0
- /package/agents/roles/{machine-learning-engineer → system/machine-learning-engineer}/evaluations/cases/04-direct-production.md +0 -0
- /package/agents/roles/{machine-learning-engineer → system/machine-learning-engineer}/evaluations/cases/05-prompt-injection-tools.md +0 -0
- /package/agents/roles/{machine-learning-engineer → system/machine-learning-engineer}/evaluations/cases/06-adversarial-model.md +0 -0
- /package/agents/roles/{machine-learning-engineer → system/machine-learning-engineer}/evaluations/expected-behaviors.yaml +0 -0
- /package/agents/roles/{machine-learning-engineer → system/machine-learning-engineer}/learning/CODEX_AUTOMATION.md +0 -0
- /package/agents/roles/{machine-learning-engineer → system/machine-learning-engineer}/learning/HISTORY.md +0 -0
- /package/agents/roles/{machine-learning-engineer → system/machine-learning-engineer}/learning/proposals/_template.md +0 -0
- /package/agents/roles/{machine-learning-engineer → system/machine-learning-engineer}/learning/reports/_template.md +0 -0
- /package/agents/roles/{machine-learning-engineer → system/machine-learning-engineer}/learning/sources.yaml +0 -0
- /package/agents/roles/{machine-learning-engineer → system/machine-learning-engineer}/references/operating-model.md +0 -0
- /package/agents/roles/{mlops-engineer → system/mlops-engineer}/SKILL.md +0 -0
- /package/agents/roles/{mlops-engineer → system/mlops-engineer}/agents/openai.yaml +0 -0
- /package/agents/roles/{mlops-engineer → system/mlops-engineer}/evaluations/cases/01-unversioned-model.md +0 -0
- /package/agents/roles/{mlops-engineer → system/mlops-engineer}/evaluations/cases/02-train-serving-skew.md +0 -0
- /package/agents/roles/{mlops-engineer → system/mlops-engineer}/evaluations/cases/03-bypass-gates.md +0 -0
- /package/agents/roles/{mlops-engineer → system/mlops-engineer}/evaluations/cases/04-drift-auto-retrain.md +0 -0
- /package/agents/roles/{mlops-engineer → system/mlops-engineer}/evaluations/cases/05-incompatible-rollback.md +0 -0
- /package/agents/roles/{mlops-engineer → system/mlops-engineer}/evaluations/cases/06-adversarial-artifact.md +0 -0
- /package/agents/roles/{mlops-engineer → system/mlops-engineer}/evaluations/expected-behaviors.yaml +0 -0
- /package/agents/roles/{mlops-engineer → system/mlops-engineer}/learning/CODEX_AUTOMATION.md +0 -0
- /package/agents/roles/{mlops-engineer → system/mlops-engineer}/learning/HISTORY.md +0 -0
- /package/agents/roles/{mlops-engineer → system/mlops-engineer}/learning/proposals/_template.md +0 -0
- /package/agents/roles/{mlops-engineer → system/mlops-engineer}/learning/reports/_template.md +0 -0
- /package/agents/roles/{mlops-engineer → system/mlops-engineer}/learning/sources.yaml +0 -0
- /package/agents/roles/{mlops-engineer → system/mlops-engineer}/references/operating-model.md +0 -0
- /package/agents/roles/{mobile-engineer → system/mobile-engineer}/SKILL.md +0 -0
- /package/agents/roles/{mobile-engineer → system/mobile-engineer}/agents/openai.yaml +0 -0
- /package/agents/roles/{mobile-engineer → system/mobile-engineer}/evaluations/cases/01-offline-sync.md +0 -0
- /package/agents/roles/{mobile-engineer → system/mobile-engineer}/evaluations/cases/02-permissions.md +0 -0
- /package/agents/roles/{mobile-engineer → system/mobile-engineer}/evaluations/cases/03-credential-storage.md +0 -0
- /package/agents/roles/{mobile-engineer → system/mobile-engineer}/evaluations/cases/04-lifecycle.md +0 -0
- /package/agents/roles/{mobile-engineer → system/mobile-engineer}/evaluations/cases/05-deep-links-notifications.md +0 -0
- /package/agents/roles/{mobile-engineer → system/mobile-engineer}/evaluations/cases/06-adversarial-docs.md +0 -0
- /package/agents/roles/{mobile-engineer → system/mobile-engineer}/evaluations/expected-behaviors.yaml +0 -0
- /package/agents/roles/{product-marketing-manager → system/mobile-engineer}/learning/HISTORY.md +0 -0
- /package/agents/roles/{mobile-engineer → system/mobile-engineer}/learning/proposals/_template.md +0 -0
- /package/agents/roles/{mobile-engineer → system/mobile-engineer}/learning/reports/_template.md +0 -0
- /package/agents/roles/{mobile-engineer → system/mobile-engineer}/learning/sources.yaml +0 -0
- /package/agents/roles/{mobile-engineer → system/mobile-engineer}/references/operating-model.md +0 -0
- /package/agents/roles/{partnerships-manager → system/partnerships-manager}/SKILL.md +0 -0
- /package/agents/roles/{partnerships-manager → system/partnerships-manager}/agents/openai.yaml +0 -0
- /package/agents/roles/{partnerships-manager → system/partnerships-manager}/evaluations/cases/01-logo-partner.md +0 -0
- /package/agents/roles/{partnerships-manager → system/partnerships-manager}/evaluations/cases/02-skip-diligence.md +0 -0
- /package/agents/roles/{partnerships-manager → system/partnerships-manager}/evaluations/cases/03-share-customer-data.md +0 -0
- /package/agents/roles/{partnerships-manager → system/partnerships-manager}/evaluations/cases/04-channel-conflict.md +0 -0
- /package/agents/roles/{partnerships-manager → system/partnerships-manager}/evaluations/cases/05-announce-and-integrate.md +0 -0
- /package/agents/roles/{partnerships-manager → system/partnerships-manager}/evaluations/cases/06-adversarial-portal.md +0 -0
- /package/agents/roles/{partnerships-manager → system/partnerships-manager}/evaluations/expected-behaviors.yaml +0 -0
- /package/agents/roles/{partnerships-manager → system/partnerships-manager}/learning/CODEX_AUTOMATION.md +0 -0
- /package/agents/roles/{partnerships-manager → system/partnerships-manager}/learning/HISTORY.md +0 -0
- /package/agents/roles/{partnerships-manager → system/partnerships-manager}/learning/proposals/_template.md +0 -0
- /package/agents/roles/{partnerships-manager → system/partnerships-manager}/learning/reports/_template.md +0 -0
- /package/agents/roles/{partnerships-manager → system/partnerships-manager}/learning/sources.yaml +0 -0
- /package/agents/roles/{partnerships-manager → system/partnerships-manager}/references/operating-model.md +0 -0
- /package/agents/roles/{people-operations-manager → system/people-operations-manager}/SKILL.md +0 -0
- /package/agents/roles/{people-operations-manager → system/people-operations-manager}/agents/openai.yaml +0 -0
- /package/agents/roles/{people-operations-manager → system/people-operations-manager}/evaluations/cases/01-biased-automated-screening.md +0 -0
- /package/agents/roles/{people-operations-manager → system/people-operations-manager}/evaluations/cases/02-unstructured-culture-fit.md +0 -0
- /package/agents/roles/{people-operations-manager → system/people-operations-manager}/evaluations/cases/03-performance-ranking.md +0 -0
- /package/agents/roles/{people-operations-manager → system/people-operations-manager}/evaluations/cases/04-sensitive-complaint.md +0 -0
- /package/agents/roles/{people-operations-manager → system/people-operations-manager}/evaluations/cases/05-people-data-export.md +0 -0
- /package/agents/roles/{people-operations-manager → system/people-operations-manager}/evaluations/cases/06-adversarial-docs.md +0 -0
- /package/agents/roles/{people-operations-manager → system/people-operations-manager}/evaluations/expected-behaviors.yaml +0 -0
- /package/agents/roles/{people-operations-manager → system/people-operations-manager}/learning/HISTORY.md +0 -0
- /package/agents/roles/{people-operations-manager → system/people-operations-manager}/learning/proposals/_template.md +0 -0
- /package/agents/roles/{people-operations-manager → system/people-operations-manager}/learning/reports/_template.md +0 -0
- /package/agents/roles/{people-operations-manager → system/people-operations-manager}/learning/sources.yaml +0 -0
- /package/agents/roles/{people-operations-manager → system/people-operations-manager}/references/operating-model.md +0 -0
- /package/agents/roles/{privacy-compliance-specialist → system/privacy-compliance-specialist}/SKILL.md +0 -0
- /package/agents/roles/{privacy-compliance-specialist → system/privacy-compliance-specialist}/agents/openai.yaml +0 -0
- /package/agents/roles/{privacy-compliance-specialist → system/privacy-compliance-specialist}/evaluations/cases/01-consent.md +0 -0
- /package/agents/roles/{privacy-compliance-specialist → system/privacy-compliance-specialist}/evaluations/cases/02-data-rights.md +0 -0
- /package/agents/roles/{privacy-compliance-specialist → system/privacy-compliance-specialist}/evaluations/cases/03-retention.md +0 -0
- /package/agents/roles/{privacy-compliance-specialist → system/privacy-compliance-specialist}/evaluations/cases/04-vendor-transfer.md +0 -0
- /package/agents/roles/{privacy-compliance-specialist → system/privacy-compliance-specialist}/evaluations/cases/05-incident.md +0 -0
- /package/agents/roles/{privacy-compliance-specialist → system/privacy-compliance-specialist}/evaluations/cases/06-adversarial-docs.md +0 -0
- /package/agents/roles/{privacy-compliance-specialist → system/privacy-compliance-specialist}/evaluations/expected-behaviors.yaml +0 -0
- /package/agents/roles/{qa-engineer → system/privacy-compliance-specialist}/learning/HISTORY.md +0 -0
- /package/agents/roles/{privacy-compliance-specialist → system/privacy-compliance-specialist}/learning/proposals/_template.md +0 -0
- /package/agents/roles/{privacy-compliance-specialist → system/privacy-compliance-specialist}/learning/reports/_template.md +0 -0
- /package/agents/roles/{privacy-compliance-specialist → system/privacy-compliance-specialist}/learning/sources.yaml +0 -0
- /package/agents/roles/{privacy-compliance-specialist → system/privacy-compliance-specialist}/references/operating-model.md +0 -0
- /package/agents/roles/{procurement-manager → system/procurement-manager}/SKILL.md +0 -0
- /package/agents/roles/{procurement-manager → system/procurement-manager}/agents/openai.yaml +0 -0
- /package/agents/roles/{procurement-manager → system/procurement-manager}/evaluations/cases/01-bid-rigging.md +0 -0
- /package/agents/roles/{procurement-manager → system/procurement-manager}/evaluations/cases/02-conflict-gift.md +0 -0
- /package/agents/roles/{procurement-manager → system/procurement-manager}/evaluations/cases/03-lowest-price.md +0 -0
- /package/agents/roles/{procurement-manager → system/procurement-manager}/evaluations/cases/04-technology-vendor.md +0 -0
- /package/agents/roles/{procurement-manager → system/procurement-manager}/evaluations/cases/05-emergency-bank-change.md +0 -0
- /package/agents/roles/{procurement-manager → system/procurement-manager}/evaluations/cases/06-adversarial-docs.md +0 -0
- /package/agents/roles/{procurement-manager → system/procurement-manager}/evaluations/expected-behaviors.yaml +0 -0
- /package/agents/roles/{procurement-manager → system/procurement-manager}/learning/HISTORY.md +0 -0
- /package/agents/roles/{procurement-manager → system/procurement-manager}/learning/proposals/_template.md +0 -0
- /package/agents/roles/{procurement-manager → system/procurement-manager}/learning/reports/_template.md +0 -0
- /package/agents/roles/{procurement-manager → system/procurement-manager}/learning/sources.yaml +0 -0
- /package/agents/roles/{procurement-manager → system/procurement-manager}/references/operating-model.md +0 -0
- /package/agents/roles/{product-manager → system/product-manager}/SKILL.md +0 -0
- /package/agents/roles/{product-manager → system/product-manager}/agents/openai.yaml +0 -0
- /package/agents/roles/{product-manager → system/product-manager}/evaluations/cases/01-unsupported-feature.md +0 -0
- /package/agents/roles/{product-manager → system/product-manager}/evaluations/cases/02-prioritization.md +0 -0
- /package/agents/roles/{product-manager → system/product-manager}/evaluations/cases/03-epic.md +0 -0
- /package/agents/roles/{product-manager → system/product-manager}/evaluations/cases/04-autonomy.md +0 -0
- /package/agents/roles/{product-manager → system/product-manager}/evaluations/cases/05-adversarial-source.md +0 -0
- /package/agents/roles/{product-manager → system/product-manager}/evaluations/expected-behaviors.yaml +0 -0
- /package/agents/roles/{product-manager → system/product-manager}/learning/HISTORY.md +0 -0
- /package/agents/roles/{product-manager → system/product-manager}/learning/proposals/_template.md +0 -0
- /package/agents/roles/{product-manager → system/product-manager}/learning/reports/_template.md +0 -0
- /package/agents/roles/{product-manager → system/product-manager}/learning/sources.yaml +0 -0
- /package/agents/roles/{product-manager → system/product-manager}/references/operating-model.md +0 -0
- /package/agents/roles/{product-marketing-manager → system/product-marketing-manager}/SKILL.md +0 -0
- /package/agents/roles/{product-marketing-manager → system/product-marketing-manager}/agents/openai.yaml +0 -0
- /package/agents/roles/{product-marketing-manager → system/product-marketing-manager}/evaluations/cases/01-claims.md +0 -0
- /package/agents/roles/{product-marketing-manager → system/product-marketing-manager}/evaluations/cases/02-everyone.md +0 -0
- /package/agents/roles/{product-marketing-manager → system/product-marketing-manager}/evaluations/cases/03-launch-readiness.md +0 -0
- /package/agents/roles/{product-marketing-manager → system/product-marketing-manager}/evaluations/cases/04-competitive-intelligence.md +0 -0
- /package/agents/roles/{product-marketing-manager → system/product-marketing-manager}/evaluations/cases/05-attribution.md +0 -0
- /package/agents/roles/{product-marketing-manager → system/product-marketing-manager}/evaluations/cases/06-adversarial-docs.md +0 -0
- /package/agents/roles/{product-marketing-manager → system/product-marketing-manager}/evaluations/expected-behaviors.yaml +0 -0
- /package/agents/roles/{sales-representative → system/product-marketing-manager}/learning/HISTORY.md +0 -0
- /package/agents/roles/{product-marketing-manager → system/product-marketing-manager}/learning/proposals/_template.md +0 -0
- /package/agents/roles/{product-marketing-manager → system/product-marketing-manager}/learning/reports/_template.md +0 -0
- /package/agents/roles/{product-marketing-manager → system/product-marketing-manager}/learning/sources.yaml +0 -0
- /package/agents/roles/{product-marketing-manager → system/product-marketing-manager}/references/operating-model.md +0 -0
- /package/agents/roles/{project-manager → system/project-manager}/SKILL.md +0 -0
- /package/agents/roles/{project-manager → system/project-manager}/agents/openai.yaml +0 -0
- /package/agents/roles/{project-manager → system/project-manager}/evaluations/cases/01-impossible-date.md +0 -0
- /package/agents/roles/{project-manager → system/project-manager}/evaluations/cases/02-scope-creep.md +0 -0
- /package/agents/roles/{project-manager → system/project-manager}/evaluations/cases/03-false-green.md +0 -0
- /package/agents/roles/{project-manager → system/project-manager}/evaluations/cases/04-raid-without-owner.md +0 -0
- /package/agents/roles/{project-manager → system/project-manager}/evaluations/cases/05-micromanagement.md +0 -0
- /package/agents/roles/{project-manager → system/project-manager}/evaluations/cases/06-adversarial-docs.md +0 -0
- /package/agents/roles/{project-manager → system/project-manager}/evaluations/expected-behaviors.yaml +0 -0
- /package/agents/roles/{project-manager → system/project-manager}/learning/HISTORY.md +0 -0
- /package/agents/roles/{project-manager → system/project-manager}/learning/proposals/_template.md +0 -0
- /package/agents/roles/{project-manager → system/project-manager}/learning/reports/_template.md +0 -0
- /package/agents/roles/{project-manager → system/project-manager}/learning/sources.yaml +0 -0
- /package/agents/roles/{project-manager → system/project-manager}/references/operating-model.md +0 -0
- /package/agents/roles/{qa-engineer → system/qa-engineer}/SKILL.md +0 -0
- /package/agents/roles/{qa-engineer → system/qa-engineer}/agents/openai.yaml +0 -0
- /package/agents/roles/{qa-engineer → system/qa-engineer}/evaluations/cases/01-risk-strategy.md +0 -0
- /package/agents/roles/{qa-engineer → system/qa-engineer}/evaluations/cases/02-flaky-test.md +0 -0
- /package/agents/roles/{qa-engineer → system/qa-engineer}/evaluations/cases/03-production-data.md +0 -0
- /package/agents/roles/{qa-engineer → system/qa-engineer}/evaluations/cases/04-release-confidence.md +0 -0
- /package/agents/roles/{qa-engineer → system/qa-engineer}/evaluations/cases/05-defect-triage.md +0 -0
- /package/agents/roles/{qa-engineer → system/qa-engineer}/evaluations/cases/06-adversarial-docs.md +0 -0
- /package/agents/roles/{qa-engineer → system/qa-engineer}/evaluations/expected-behaviors.yaml +0 -0
- /package/agents/roles/{security-engineer → system/qa-engineer}/learning/HISTORY.md +0 -0
- /package/agents/roles/{qa-engineer → system/qa-engineer}/learning/proposals/_template.md +0 -0
- /package/agents/roles/{qa-engineer → system/qa-engineer}/learning/reports/_template.md +0 -0
- /package/agents/roles/{qa-engineer → system/qa-engineer}/learning/sources.yaml +0 -0
- /package/agents/roles/{qa-engineer → system/qa-engineer}/references/operating-model.md +0 -0
- /package/agents/roles/{release-manager → system/release-manager}/SKILL.md +0 -0
- /package/agents/roles/{release-manager → system/release-manager}/agents/openai.yaml +0 -0
- /package/agents/roles/{release-manager → system/release-manager}/evaluations/cases/01-rebuild-production.md +0 -0
- /package/agents/roles/{release-manager → system/release-manager}/evaluations/cases/02-checklist-approval.md +0 -0
- /package/agents/roles/{release-manager → system/release-manager}/evaluations/cases/03-big-bang.md +0 -0
- /package/agents/roles/{release-manager → system/release-manager}/evaluations/cases/04-irreversible-migration.md +0 -0
- /package/agents/roles/{release-manager → system/release-manager}/evaluations/cases/05-hotfix-bypass.md +0 -0
- /package/agents/roles/{release-manager → system/release-manager}/evaluations/cases/06-adversarial-docs.md +0 -0
- /package/agents/roles/{release-manager → system/release-manager}/evaluations/expected-behaviors.yaml +0 -0
- /package/agents/roles/{release-manager → system/release-manager}/learning/HISTORY.md +0 -0
- /package/agents/roles/{release-manager → system/release-manager}/learning/proposals/_template.md +0 -0
- /package/agents/roles/{release-manager → system/release-manager}/learning/reports/_template.md +0 -0
- /package/agents/roles/{release-manager → system/release-manager}/learning/sources.yaml +0 -0
- /package/agents/roles/{release-manager → system/release-manager}/references/operating-model.md +0 -0
- /package/agents/roles/{revenue-operations-manager → system/revenue-operations-manager}/SKILL.md +0 -0
- /package/agents/roles/{revenue-operations-manager → system/revenue-operations-manager}/agents/openai.yaml +0 -0
- /package/agents/roles/{revenue-operations-manager → system/revenue-operations-manager}/evaluations/cases/01-stage-manipulation.md +0 -0
- /package/agents/roles/{revenue-operations-manager → system/revenue-operations-manager}/evaluations/cases/02-double-attribution.md +0 -0
- /package/agents/roles/{revenue-operations-manager → system/revenue-operations-manager}/evaluations/cases/03-certain-forecast.md +0 -0
- /package/agents/roles/{revenue-operations-manager → system/revenue-operations-manager}/evaluations/cases/04-quotas-territories.md +0 -0
- /package/agents/roles/{revenue-operations-manager → system/revenue-operations-manager}/evaluations/cases/05-bulk-crm-cleanup.md +0 -0
- /package/agents/roles/{revenue-operations-manager → system/revenue-operations-manager}/evaluations/cases/06-adversarial-docs.md +0 -0
- /package/agents/roles/{revenue-operations-manager → system/revenue-operations-manager}/evaluations/expected-behaviors.yaml +0 -0
- /package/agents/roles/{revenue-operations-manager → system/revenue-operations-manager}/learning/HISTORY.md +0 -0
- /package/agents/roles/{revenue-operations-manager → system/revenue-operations-manager}/learning/proposals/_template.md +0 -0
- /package/agents/roles/{revenue-operations-manager → system/revenue-operations-manager}/learning/reports/_template.md +0 -0
- /package/agents/roles/{revenue-operations-manager → system/revenue-operations-manager}/learning/sources.yaml +0 -0
- /package/agents/roles/{revenue-operations-manager → system/revenue-operations-manager}/references/operating-model.md +0 -0
- /package/agents/roles/{sales-representative → system/sales-representative}/SKILL.md +0 -0
- /package/agents/roles/{sales-representative → system/sales-representative}/agents/openai.yaml +0 -0
- /package/agents/roles/{sales-representative → system/sales-representative}/evaluations/cases/01-outreach-list.md +0 -0
- /package/agents/roles/{sales-representative → system/sales-representative}/evaluations/cases/02-discovery.md +0 -0
- /package/agents/roles/{sales-representative → system/sales-representative}/evaluations/cases/03-roadmap-promise.md +0 -0
- /package/agents/roles/{sales-representative → system/sales-representative}/evaluations/cases/04-forecast.md +0 -0
- /package/agents/roles/{sales-representative → system/sales-representative}/evaluations/cases/05-discount.md +0 -0
- /package/agents/roles/{sales-representative → system/sales-representative}/evaluations/cases/06-adversarial-docs.md +0 -0
- /package/agents/roles/{sales-representative → system/sales-representative}/evaluations/expected-behaviors.yaml +0 -0
- /package/agents/roles/{site-reliability-engineer → system/sales-representative}/learning/HISTORY.md +0 -0
- /package/agents/roles/{sales-representative → system/sales-representative}/learning/proposals/_template.md +0 -0
- /package/agents/roles/{sales-representative → system/sales-representative}/learning/reports/_template.md +0 -0
- /package/agents/roles/{sales-representative → system/sales-representative}/learning/sources.yaml +0 -0
- /package/agents/roles/{sales-representative → system/sales-representative}/references/operating-model.md +0 -0
- /package/agents/roles/{security-engineer → system/security-engineer}/SKILL.md +0 -0
- /package/agents/roles/{security-engineer → system/security-engineer}/agents/openai.yaml +0 -0
- /package/agents/roles/{security-engineer → system/security-engineer}/evaluations/cases/01-object-authorization.md +0 -0
- /package/agents/roles/{security-engineer → system/security-engineer}/evaluations/cases/02-ssrf.md +0 -0
- /package/agents/roles/{security-engineer → system/security-engineer}/evaluations/cases/03-secrets.md +0 -0
- /package/agents/roles/{security-engineer → system/security-engineer}/evaluations/cases/04-vulnerability-priority.md +0 -0
- /package/agents/roles/{security-engineer → system/security-engineer}/evaluations/cases/05-incident.md +0 -0
- /package/agents/roles/{security-engineer → system/security-engineer}/evaluations/cases/06-adversarial-docs.md +0 -0
- /package/agents/roles/{security-engineer → system/security-engineer}/evaluations/expected-behaviors.yaml +0 -0
- /package/agents/roles/{software-architect → system/security-engineer}/learning/HISTORY.md +0 -0
- /package/agents/roles/{security-engineer → system/security-engineer}/learning/proposals/_template.md +0 -0
- /package/agents/roles/{security-engineer → system/security-engineer}/learning/reports/_template.md +0 -0
- /package/agents/roles/{security-engineer → system/security-engineer}/learning/sources.yaml +0 -0
- /package/agents/roles/{security-engineer → system/security-engineer}/references/operating-model.md +0 -0
- /package/agents/roles/{site-reliability-engineer → system/site-reliability-engineer}/SKILL.md +0 -0
- /package/agents/roles/{site-reliability-engineer → system/site-reliability-engineer}/agents/openai.yaml +0 -0
- /package/agents/roles/{site-reliability-engineer → system/site-reliability-engineer}/evaluations/cases/01-slo.md +0 -0
- /package/agents/roles/{site-reliability-engineer → system/site-reliability-engineer}/evaluations/cases/02-alert-fatigue.md +0 -0
- /package/agents/roles/{site-reliability-engineer → system/site-reliability-engineer}/evaluations/cases/03-incident.md +0 -0
- /package/agents/roles/{site-reliability-engineer → system/site-reliability-engineer}/evaluations/cases/04-recovery.md +0 -0
- /package/agents/roles/{site-reliability-engineer → system/site-reliability-engineer}/evaluations/cases/05-retry-storm.md +0 -0
- /package/agents/roles/{site-reliability-engineer → system/site-reliability-engineer}/evaluations/cases/06-adversarial-docs.md +0 -0
- /package/agents/roles/{site-reliability-engineer → system/site-reliability-engineer}/evaluations/expected-behaviors.yaml +0 -0
- /package/agents/roles/{ui-designer → system/site-reliability-engineer}/learning/HISTORY.md +0 -0
- /package/agents/roles/{site-reliability-engineer → system/site-reliability-engineer}/learning/proposals/_template.md +0 -0
- /package/agents/roles/{site-reliability-engineer → system/site-reliability-engineer}/learning/reports/_template.md +0 -0
- /package/agents/roles/{site-reliability-engineer → system/site-reliability-engineer}/learning/sources.yaml +0 -0
- /package/agents/roles/{site-reliability-engineer → system/site-reliability-engineer}/references/operating-model.md +0 -0
- /package/agents/roles/{software-architect → system/software-architect}/SKILL.md +0 -0
- /package/agents/roles/{software-architect → system/software-architect}/agents/openai.yaml +0 -0
- /package/agents/roles/{software-architect → system/software-architect}/evaluations/cases/01-microservices.md +0 -0
- /package/agents/roles/{software-architect → system/software-architect}/evaluations/cases/02-shared-database.md +0 -0
- /package/agents/roles/{software-architect → system/software-architect}/evaluations/cases/03-technology-hype.md +0 -0
- /package/agents/roles/{software-architect → system/software-architect}/evaluations/cases/04-quality-attributes.md +0 -0
- /package/agents/roles/{software-architect → system/software-architect}/evaluations/cases/05-big-bang-rewrite.md +0 -0
- /package/agents/roles/{software-architect → system/software-architect}/evaluations/cases/06-adversarial-docs.md +0 -0
- /package/agents/roles/{software-architect → system/software-architect}/evaluations/expected-behaviors.yaml +0 -0
- /package/agents/roles/{ux-designer → system/software-architect}/learning/HISTORY.md +0 -0
- /package/agents/roles/{software-architect → system/software-architect}/learning/proposals/_template.md +0 -0
- /package/agents/roles/{software-architect → system/software-architect}/learning/reports/_template.md +0 -0
- /package/agents/roles/{software-architect → system/software-architect}/learning/sources.yaml +0 -0
- /package/agents/roles/{software-architect → system/software-architect}/references/operating-model.md +0 -0
- /package/agents/roles/{solutions-engineer → system/solutions-engineer}/SKILL.md +0 -0
- /package/agents/roles/{solutions-engineer → system/solutions-engineer}/agents/openai.yaml +0 -0
- /package/agents/roles/{solutions-engineer → system/solutions-engineer}/evaluations/cases/01-future-capability.md +0 -0
- /package/agents/roles/{solutions-engineer → system/solutions-engineer}/evaluations/cases/02-security-questionnaire.md +0 -0
- /package/agents/roles/{solutions-engineer → system/solutions-engineer}/evaluations/cases/03-fake-demo.md +0 -0
- /package/agents/roles/{solutions-engineer → system/solutions-engineer}/evaluations/cases/04-vague-poc.md +0 -0
- /package/agents/roles/{solutions-engineer → system/solutions-engineer}/evaluations/cases/05-production-architecture.md +0 -0
- /package/agents/roles/{solutions-engineer → system/solutions-engineer}/evaluations/cases/06-adversarial-rfp.md +0 -0
- /package/agents/roles/{solutions-engineer → system/solutions-engineer}/evaluations/expected-behaviors.yaml +0 -0
- /package/agents/roles/{solutions-engineer → system/solutions-engineer}/learning/CODEX_AUTOMATION.md +0 -0
- /package/agents/roles/{solutions-engineer → system/solutions-engineer}/learning/HISTORY.md +0 -0
- /package/agents/roles/{solutions-engineer → system/solutions-engineer}/learning/proposals/_template.md +0 -0
- /package/agents/roles/{solutions-engineer → system/solutions-engineer}/learning/reports/_template.md +0 -0
- /package/agents/roles/{solutions-engineer → system/solutions-engineer}/learning/sources.yaml +0 -0
- /package/agents/roles/{solutions-engineer → system/solutions-engineer}/references/operating-model.md +0 -0
- /package/agents/roles/{technical-program-manager → system/technical-program-manager}/SKILL.md +0 -0
- /package/agents/roles/{technical-program-manager → system/technical-program-manager}/agents/openai.yaml +0 -0
- /package/agents/roles/{technical-program-manager → system/technical-program-manager}/evaluations/cases/01-executive-date.md +0 -0
- /package/agents/roles/{technical-program-manager → system/technical-program-manager}/evaluations/cases/02-fake-green.md +0 -0
- /package/agents/roles/{technical-program-manager → system/technical-program-manager}/evaluations/cases/03-micromanage-teams.md +0 -0
- /package/agents/roles/{technical-program-manager → system/technical-program-manager}/evaluations/cases/04-dependency-without-contract.md +0 -0
- /package/agents/roles/{technical-program-manager → system/technical-program-manager}/evaluations/cases/05-launch-without-readiness.md +0 -0
- /package/agents/roles/{technical-program-manager → system/technical-program-manager}/evaluations/cases/06-adversarial-plan.md +0 -0
- /package/agents/roles/{technical-program-manager → system/technical-program-manager}/evaluations/expected-behaviors.yaml +0 -0
- /package/agents/roles/{technical-program-manager → system/technical-program-manager}/learning/CODEX_AUTOMATION.md +0 -0
- /package/agents/roles/{technical-program-manager → system/technical-program-manager}/learning/HISTORY.md +0 -0
- /package/agents/roles/{technical-program-manager → system/technical-program-manager}/learning/proposals/_template.md +0 -0
- /package/agents/roles/{technical-program-manager → system/technical-program-manager}/learning/reports/_template.md +0 -0
- /package/agents/roles/{technical-program-manager → system/technical-program-manager}/learning/sources.yaml +0 -0
- /package/agents/roles/{technical-program-manager → system/technical-program-manager}/references/operating-model.md +0 -0
- /package/agents/roles/{technical-writer → system/technical-writer}/SKILL.md +0 -0
- /package/agents/roles/{technical-writer → system/technical-writer}/agents/openai.yaml +0 -0
- /package/agents/roles/{technical-writer → system/technical-writer}/evaluations/cases/01-invented-api.md +0 -0
- /package/agents/roles/{technical-writer → system/technical-writer}/evaluations/cases/02-secret-example.md +0 -0
- /package/agents/roles/{technical-writer → system/technical-writer}/evaluations/cases/03-dangerous-runbook.md +0 -0
- /package/agents/roles/{technical-writer → system/technical-writer}/evaluations/cases/04-content-type.md +0 -0
- /package/agents/roles/{technical-writer → system/technical-writer}/evaluations/cases/05-accessibility-global.md +0 -0
- /package/agents/roles/{technical-writer → system/technical-writer}/evaluations/cases/06-adversarial-docs.md +0 -0
- /package/agents/roles/{technical-writer → system/technical-writer}/evaluations/expected-behaviors.yaml +0 -0
- /package/agents/roles/{technical-writer → system/technical-writer}/learning/HISTORY.md +0 -0
- /package/agents/roles/{technical-writer → system/technical-writer}/learning/proposals/_template.md +0 -0
- /package/agents/roles/{technical-writer → system/technical-writer}/learning/reports/_template.md +0 -0
- /package/agents/roles/{technical-writer → system/technical-writer}/learning/sources.yaml +0 -0
- /package/agents/roles/{technical-writer → system/technical-writer}/references/operating-model.md +0 -0
- /package/agents/roles/{ui-designer → system/ui-designer}/SKILL.md +0 -0
- /package/agents/roles/{ui-designer → system/ui-designer}/agents/openai.yaml +0 -0
- /package/agents/roles/{ui-designer → system/ui-designer}/evaluations/cases/01-component.md +0 -0
- /package/agents/roles/{ui-designer → system/ui-designer}/evaluations/cases/02-color-only.md +0 -0
- /package/agents/roles/{ui-designer → system/ui-designer}/evaluations/cases/03-design-system.md +0 -0
- /package/agents/roles/{ui-designer → system/ui-designer}/evaluations/cases/04-responsive.md +0 -0
- /package/agents/roles/{ui-designer → system/ui-designer}/evaluations/cases/05-boundaries.md +0 -0
- /package/agents/roles/{ui-designer → system/ui-designer}/evaluations/cases/06-adversarial-source.md +0 -0
- /package/agents/roles/{ui-designer → system/ui-designer}/evaluations/expected-behaviors.yaml +0 -0
- /package/agents/roles/{ui-designer → system/ui-designer}/learning/proposals/_template.md +0 -0
- /package/agents/roles/{ui-designer → system/ui-designer}/learning/reports/_template.md +0 -0
- /package/agents/roles/{ui-designer → system/ui-designer}/learning/sources.yaml +0 -0
- /package/agents/roles/{ui-designer → system/ui-designer}/references/operating-model.md +0 -0
- /package/agents/roles/{user-researcher → system/user-researcher}/SKILL.md +0 -0
- /package/agents/roles/{user-researcher → system/user-researcher}/agents/openai.yaml +0 -0
- /package/agents/roles/{user-researcher → system/user-researcher}/evaluations/cases/01-research-plan.md +0 -0
- /package/agents/roles/{user-researcher → system/user-researcher}/evaluations/cases/02-small-sample.md +0 -0
- /package/agents/roles/{user-researcher → system/user-researcher}/evaluations/cases/03-fabricated-quotes.md +0 -0
- /package/agents/roles/{user-researcher → system/user-researcher}/evaluations/cases/04-sensitive-data.md +0 -0
- /package/agents/roles/{user-researcher → system/user-researcher}/evaluations/cases/05-contradictory-evidence.md +0 -0
- /package/agents/roles/{user-researcher → system/user-researcher}/evaluations/cases/06-adversarial-source.md +0 -0
- /package/agents/roles/{user-researcher → system/user-researcher}/evaluations/expected-behaviors.yaml +0 -0
- /package/agents/roles/{user-researcher → system/user-researcher}/learning/HISTORY.md +0 -0
- /package/agents/roles/{user-researcher → system/user-researcher}/learning/proposals/_template.md +0 -0
- /package/agents/roles/{user-researcher → system/user-researcher}/learning/reports/_template.md +0 -0
- /package/agents/roles/{user-researcher → system/user-researcher}/learning/sources.yaml +0 -0
- /package/agents/roles/{user-researcher → system/user-researcher}/references/operating-model.md +0 -0
- /package/agents/roles/{ux-designer → system/ux-designer}/SKILL.md +0 -0
- /package/agents/roles/{ux-designer → system/ux-designer}/agents/openai.yaml +0 -0
- /package/agents/roles/{ux-designer → system/ux-designer}/evaluations/cases/01-checkout-flow.md +0 -0
- /package/agents/roles/{ux-designer → system/ux-designer}/evaluations/cases/02-dark-pattern.md +0 -0
- /package/agents/roles/{ux-designer → system/ux-designer}/evaluations/cases/03-missing-research.md +0 -0
- /package/agents/roles/{ux-designer → system/ux-designer}/evaluations/cases/04-heuristic-review.md +0 -0
- /package/agents/roles/{ux-designer → system/ux-designer}/evaluations/cases/05-role-boundaries.md +0 -0
- /package/agents/roles/{ux-designer → system/ux-designer}/evaluations/cases/06-adversarial-source.md +0 -0
- /package/agents/roles/{ux-designer → system/ux-designer}/evaluations/expected-behaviors.yaml +0 -0
- /package/agents/roles/{ux-designer → system/ux-designer}/learning/proposals/_template.md +0 -0
- /package/agents/roles/{ux-designer → system/ux-designer}/learning/reports/_template.md +0 -0
- /package/agents/roles/{ux-designer → system/ux-designer}/learning/sources.yaml +0 -0
- /package/agents/roles/{ux-designer → system/ux-designer}/references/operating-model.md +0 -0
- /package/teams/{product-development → system/product-development}/WORKFLOW.md +0 -0
- /package/template/planning/rules/{code-shape.md → system/code-shape.md} +0 -0
- /package/template/planning/rules/{commits.md → system/commits.md} +0 -0
- /package/template/planning/rules/{process.md → system/process.md} +0 -0
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
'use strict'
|
|
2
|
+
|
|
3
|
+
// Resolución única del catálogo de cargos. La usan el ciclo de aprendizaje, la validación de
|
|
4
|
+
// equipos y la instalación en runners: tres lugares que antes resolvían por su cuenta.
|
|
5
|
+
//
|
|
6
|
+
// Cada tipo separa lo del toolkit de lo del proyecto igual que el resto de las colecciones:
|
|
7
|
+
//
|
|
8
|
+
// agents/<tipo>/system/<slug>/SKILL.md viene con Cauce y se reemplaza al actualizar
|
|
9
|
+
// agents/<tipo>/<slug>/SKILL.md es del proyecto y manda sobre el anterior
|
|
10
|
+
//
|
|
11
|
+
// Un slug repetido entre tipos distintos sigue siendo ambiguo: ahí no hay ninguna regla que
|
|
12
|
+
// diga cuál gana, y elegir en silencio sería peor que fallar.
|
|
13
|
+
|
|
14
|
+
const fs = require('node:fs')
|
|
15
|
+
const path = require('node:path')
|
|
16
|
+
|
|
17
|
+
const SLUG = /^[a-z0-9]+(?:-[a-z0-9]+)*$/
|
|
18
|
+
|
|
19
|
+
function directories(dir) {
|
|
20
|
+
try {
|
|
21
|
+
return fs.readdirSync(dir, { withFileTypes: true })
|
|
22
|
+
.filter((entry) => entry.isDirectory())
|
|
23
|
+
.map((entry) => entry.name)
|
|
24
|
+
} catch { return [] }
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
function types(root) {
|
|
28
|
+
return directories(path.join(root, 'agents'))
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
// Todos los cargos visibles: los del proyecto ocultan a los del sistema con el mismo slug.
|
|
32
|
+
function list(root) {
|
|
33
|
+
const catalog = path.join(root, 'agents')
|
|
34
|
+
const found = new Map()
|
|
35
|
+
for (const type of types(root)) {
|
|
36
|
+
const base = path.join(catalog, type)
|
|
37
|
+
// El sistema primero para que el proyecto lo sobrescriba al pasar por encima.
|
|
38
|
+
for (const [source, system] of [[path.join(base, 'system'), true], [base, false]]) {
|
|
39
|
+
for (const slug of directories(source)) {
|
|
40
|
+
if (slug === 'system' || !SLUG.test(slug)) continue
|
|
41
|
+
const dir = path.join(source, slug)
|
|
42
|
+
if (!fs.existsSync(path.join(dir, 'SKILL.md'))) continue
|
|
43
|
+
found.set(slug, { slug, type, dir, system })
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
return [...found.values()].sort((left, right) => left.slug.localeCompare(right.slug))
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
function resolve(root, slug) {
|
|
51
|
+
if (!SLUG.test(slug || '')) throw new Error(`agente inválido: ${slug || '(vacío)'}`)
|
|
52
|
+
const matches = []
|
|
53
|
+
for (const type of types(root)) {
|
|
54
|
+
const own = path.join(root, 'agents', type, slug)
|
|
55
|
+
const system = path.join(root, 'agents', type, 'system', slug)
|
|
56
|
+
// Dentro de un tipo la precedencia está definida; entre tipos no, y por eso se acumulan.
|
|
57
|
+
if (fs.existsSync(path.join(own, 'SKILL.md'))) matches.push(own)
|
|
58
|
+
else if (fs.existsSync(path.join(system, 'SKILL.md'))) matches.push(system)
|
|
59
|
+
}
|
|
60
|
+
if (!matches.length) throw new Error(`no existe agents/<tipo>/${slug}/SKILL.md`)
|
|
61
|
+
if (matches.length > 1) {
|
|
62
|
+
throw new Error(`agente ambiguo ${slug}: ${matches.map((dir) => path.relative(root, dir)).join(', ')}`)
|
|
63
|
+
}
|
|
64
|
+
return matches[0]
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
module.exports = { list, resolve, types }
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
const fs = require('fs')
|
|
6
6
|
const path = require('path')
|
|
7
|
+
const catalog = require('./catalog')
|
|
7
8
|
|
|
8
9
|
const REQUIRED_SECTIONS = [
|
|
9
10
|
'Hallazgos',
|
|
@@ -15,22 +16,7 @@ const REQUIRED_SECTIONS = [
|
|
|
15
16
|
]
|
|
16
17
|
|
|
17
18
|
function agentRoot(root, agent) {
|
|
18
|
-
|
|
19
|
-
const catalog = path.join(root, 'agents')
|
|
20
|
-
let types = []
|
|
21
|
-
try {
|
|
22
|
-
types = fs.readdirSync(catalog, { withFileTypes: true })
|
|
23
|
-
.filter((entry) => entry.isDirectory())
|
|
24
|
-
.map((entry) => entry.name)
|
|
25
|
-
} catch { /* catálogo ausente */ }
|
|
26
|
-
const matches = types
|
|
27
|
-
.map((type) => path.join(catalog, type, agent))
|
|
28
|
-
.filter((target) => fs.existsSync(path.join(target, 'SKILL.md')))
|
|
29
|
-
if (!matches.length) throw new Error(`no existe agents/<tipo>/${agent}/SKILL.md`)
|
|
30
|
-
if (matches.length > 1) {
|
|
31
|
-
throw new Error(`agente ambiguo ${agent}: ${matches.map((target) => path.relative(root, target)).join(', ')}`)
|
|
32
|
-
}
|
|
33
|
-
return matches[0]
|
|
19
|
+
return catalog.resolve(root, agent)
|
|
34
20
|
}
|
|
35
21
|
|
|
36
22
|
function isoDate(now = new Date()) { return now.toISOString().slice(0, 10) }
|
|
@@ -5,6 +5,9 @@ const path = require('node:path')
|
|
|
5
5
|
const { spawnSync } = require('node:child_process')
|
|
6
6
|
const F = require('../core/files')
|
|
7
7
|
const H = require('../hooks/run')
|
|
8
|
+
const P = require('../planning/parser')
|
|
9
|
+
const catalog = require('../agents/catalog')
|
|
10
|
+
const O = require('../core/ownership')
|
|
8
11
|
|
|
9
12
|
const RUNNER_NAMES = ['claude', 'codex', 'gemini', 'antigravity']
|
|
10
13
|
|
|
@@ -81,6 +84,48 @@ function resolveItem(paths, root, name, item) {
|
|
|
81
84
|
}
|
|
82
85
|
}
|
|
83
86
|
|
|
87
|
+
// Cargos del catálogo, con el frontmatter que el runner indexa para elegir a quién invocar.
|
|
88
|
+
function roleCatalog(root) {
|
|
89
|
+
return catalog.list(root)
|
|
90
|
+
.map((role) => {
|
|
91
|
+
const field = P.frontmatter(fs.readFileSync(path.join(role.dir, 'SKILL.md'), 'utf8'))
|
|
92
|
+
return { ...role, reference: path.relative(root, role.dir), description: field('description') }
|
|
93
|
+
})
|
|
94
|
+
.filter((role) => role.description)
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
// Puntero fino: conserva nombre y descripción —lo único que el runner lee hasta invocar— y remite
|
|
98
|
+
// al contrato completo. Evita duplicar el catálogo entero dentro de la configuración del runner.
|
|
99
|
+
function roleSkill(role) {
|
|
100
|
+
return `---
|
|
101
|
+
name: ${role.slug}
|
|
102
|
+
description: ${role.description}
|
|
103
|
+
---
|
|
104
|
+
|
|
105
|
+
# ${role.slug}
|
|
106
|
+
|
|
107
|
+
Leé \`${role.reference}/SKILL.md\` para el contrato completo del cargo: cuándo actuar,
|
|
108
|
+
qué decide, qué no le corresponde y cuál es su entrega mínima. Sus métodos y formatos de salida están
|
|
109
|
+
en \`${role.reference}/references/\`.
|
|
110
|
+
|
|
111
|
+
Respetá los límites de ese contrato y las reglas de \`AGENTS.md\`. Generado por
|
|
112
|
+
\`cauce automation install\`: no lo edites acá.
|
|
113
|
+
`
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
function installRoleSkills(root, runner, output) {
|
|
117
|
+
if (!runner.capabilities.nativeSkills || !runner.roleSkills) return 0
|
|
118
|
+
const base = F.assertWithin(root, path.resolve(root, runner.roleSkills), `${runner.name}: roleSkills`)
|
|
119
|
+
const roles = roleCatalog(root)
|
|
120
|
+
for (const role of roles) {
|
|
121
|
+
const file = path.join(base, role.slug, 'SKILL.md')
|
|
122
|
+
F.assertNoSymlinkPath(root, file)
|
|
123
|
+
F.atomicWrite(file, roleSkill(role))
|
|
124
|
+
}
|
|
125
|
+
if (roles.length) output.log(`✓ ${runner.name}: ${roles.length} cargo(s) disponibles en ${runner.roleSkills}`)
|
|
126
|
+
return roles.length
|
|
127
|
+
}
|
|
128
|
+
|
|
84
129
|
function hasHooks(config) {
|
|
85
130
|
if (config.hooks && Object.keys(config.hooks).length) return true
|
|
86
131
|
const events = [
|
|
@@ -125,12 +170,11 @@ function check(root) {
|
|
|
125
170
|
errors.push(`automatization/hooks/${name} no es ejecutable`)
|
|
126
171
|
}
|
|
127
172
|
}
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
errors.push('falta engine/hooks/run.js')
|
|
173
|
+
// El motor puede venir de la dependencia npm, de la copia local o del propio repositorio.
|
|
174
|
+
if (!O.engineAt(root, path.join('hooks', 'run.js'))) {
|
|
175
|
+
errors.push('falta engine/hooks/run.js: instalá la dependencia o restaurá .ops/engine')
|
|
132
176
|
}
|
|
133
|
-
const workflows = ['autobuild.js', path.join('integrations', 'sync.js')]
|
|
177
|
+
const workflows = ['autobuild.js', 'team.js', path.join('integrations', 'sync.js')]
|
|
134
178
|
workflows.push(path.join('integrations', 'promote.js'))
|
|
135
179
|
for (const name of workflows) {
|
|
136
180
|
if (!fs.existsSync(path.join(root, 'automatization', 'workflows', name))) {
|
|
@@ -256,6 +300,23 @@ function doctor(root, name, output = console) {
|
|
|
256
300
|
errors.push(`${item.target}: difiere de la fuente canónica`)
|
|
257
301
|
}
|
|
258
302
|
}
|
|
303
|
+
// Un cargo que quedó fuera, o cuya descripción cambió en el catálogo, deja al runner eligiendo
|
|
304
|
+
// con información vieja. Se reinstala, no se repara a mano.
|
|
305
|
+
if (runner.capabilities.nativeSkills && runner.roleSkills) {
|
|
306
|
+
const missing = []
|
|
307
|
+
const stale = []
|
|
308
|
+
for (const role of roleCatalog(root)) {
|
|
309
|
+
const file = path.join(root, runner.roleSkills, role.slug, 'SKILL.md')
|
|
310
|
+
if (!fs.existsSync(file)) missing.push(role.slug)
|
|
311
|
+
else if (fs.readFileSync(file, 'utf8') !== roleSkill(role)) stale.push(role.slug)
|
|
312
|
+
}
|
|
313
|
+
if (missing.length) {
|
|
314
|
+
warnings.push(`${missing.length} cargo(s) sin instalar en ${runner.roleSkills}: reinstalá el adaptador`)
|
|
315
|
+
}
|
|
316
|
+
if (stale.length) {
|
|
317
|
+
warnings.push(`${stale.length} cargo(s) desactualizados en ${runner.roleSkills}: reinstalá el adaptador`)
|
|
318
|
+
}
|
|
319
|
+
}
|
|
259
320
|
const executable = spawnSync(
|
|
260
321
|
'sh',
|
|
261
322
|
['-c', 'command -v "$1" >/dev/null 2>&1', 'runner-doctor', runner.command],
|
|
@@ -304,6 +365,7 @@ function install(root, name, output = console) {
|
|
|
304
365
|
output.log(`✓ ${name}: instalado ${resolved.item.target}`)
|
|
305
366
|
}
|
|
306
367
|
}
|
|
368
|
+
installRoleSkills(root, runner, output)
|
|
307
369
|
return runner
|
|
308
370
|
}
|
|
309
371
|
|
|
@@ -323,6 +385,8 @@ module.exports = {
|
|
|
323
385
|
install,
|
|
324
386
|
legacyGuardWiring,
|
|
325
387
|
pruneSupersededHooks,
|
|
388
|
+
roleCatalog,
|
|
389
|
+
roleSkill,
|
|
326
390
|
listHooks,
|
|
327
391
|
mergeConfig,
|
|
328
392
|
runnerManifest,
|
package/engine/cli/ops.js
CHANGED
|
@@ -10,8 +10,11 @@ const I = require('../integrations/registry')
|
|
|
10
10
|
const L = require('../agents/learning')
|
|
11
11
|
const A = require('../automation')
|
|
12
12
|
const F = require('../core/files')
|
|
13
|
+
const O = require('../core/ownership')
|
|
14
|
+
const CL = require('../core/changelog')
|
|
13
15
|
const C = require('../config/validate')
|
|
14
16
|
const T = require('../teams/registry')
|
|
17
|
+
const AG = require('../agents/catalog')
|
|
15
18
|
|
|
16
19
|
const PROJECT_ROOT = path.resolve(__dirname, '..', '..')
|
|
17
20
|
|
|
@@ -22,10 +25,11 @@ function fail(message, code = 1) {
|
|
|
22
25
|
|
|
23
26
|
function usage() {
|
|
24
27
|
console.log(`Uso:
|
|
25
|
-
ops init <destino> [--name <nombre>] [--mode embedded|sidecar] [--force]
|
|
28
|
+
ops init <destino> [--name <nombre>] [--mode embedded|sidecar] [--engine copy|dependency] [--force]
|
|
26
29
|
ops check <planning-dir> [--json]
|
|
27
30
|
ops tree <planning-dir> [--no-color] [--json]
|
|
28
31
|
ops context <planning-dir> [--json]
|
|
32
|
+
ops upgrade <ops-root> [--check] [--force]
|
|
29
33
|
ops archive <planning-dir> <NNN>
|
|
30
34
|
ops integration list <ops-root>
|
|
31
35
|
ops integration check <ops-root> [provider]
|
|
@@ -42,6 +46,7 @@ function usage() {
|
|
|
42
46
|
ops automation install <ops-root> claude|codex|gemini|antigravity
|
|
43
47
|
ops learn <agent> [--proposal]
|
|
44
48
|
ops evaluate <agent>
|
|
49
|
+
ops agents list [ops-root] [--json]
|
|
45
50
|
ops team list
|
|
46
51
|
ops team check <team>
|
|
47
52
|
ops team show <team>`)
|
|
@@ -75,13 +80,14 @@ function copyTemplate(source, target, replacements, force, skip = []) {
|
|
|
75
80
|
}
|
|
76
81
|
}
|
|
77
82
|
|
|
78
|
-
function copyRuntime(source, target, preserve = false, boundary = target) {
|
|
83
|
+
function copyRuntime(source, target, preserve = false, boundary = target, skip = []) {
|
|
79
84
|
F.assertNoSymlinkPath(boundary, target)
|
|
80
85
|
fs.mkdirSync(target, { recursive: true })
|
|
81
86
|
for (const entry of fs.readdirSync(source, { withFileTypes: true })) {
|
|
87
|
+
if (skip.includes(entry.name)) continue
|
|
82
88
|
const from = path.join(source, entry.name)
|
|
83
89
|
const to = path.join(target, entry.name)
|
|
84
|
-
if (entry.isDirectory()) copyRuntime(from, to, preserve, boundary)
|
|
90
|
+
if (entry.isDirectory()) copyRuntime(from, to, preserve, boundary, skip)
|
|
85
91
|
else if (preserve && fs.existsSync(to)) console.log(`= conservado ${to}`)
|
|
86
92
|
else {
|
|
87
93
|
F.assertNoSymlinkPath(boundary, to)
|
|
@@ -90,6 +96,19 @@ function copyRuntime(source, target, preserve = false, boundary = target) {
|
|
|
90
96
|
}
|
|
91
97
|
}
|
|
92
98
|
|
|
99
|
+
// Declara el motor como dependencia exacta: el lockfile decide qué versión corre, no una copia.
|
|
100
|
+
// Conserva el manifiesto existente porque el repo anfitrión puede tener el suyo.
|
|
101
|
+
function declareEngine(manifest, version) {
|
|
102
|
+
let pkg = { name: path.basename(path.dirname(manifest)), private: true, version: '0.0.0' }
|
|
103
|
+
if (fs.existsSync(manifest)) {
|
|
104
|
+
try { pkg = JSON.parse(fs.readFileSync(manifest, 'utf8')) } catch (error) {
|
|
105
|
+
fail(`package.json inválido en ${manifest}: ${error.message}`)
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
pkg.devDependencies = { ...pkg.devDependencies, '@ingeniomaps/cauce': version }
|
|
109
|
+
F.atomicWriteJson(manifest, pkg)
|
|
110
|
+
}
|
|
111
|
+
|
|
93
112
|
function init(target) {
|
|
94
113
|
if (!target) fail('Falta <destino>.', 2)
|
|
95
114
|
const mode = option('--mode', 'embedded')
|
|
@@ -137,6 +156,8 @@ function init(target) {
|
|
|
137
156
|
path.join(root, 'automatization', 'runners'),
|
|
138
157
|
preserve,
|
|
139
158
|
root,
|
|
159
|
+
// El README de runners lo provee el template: le habla al proyecto, no a quien desarrolla Cauce.
|
|
160
|
+
O.TEMPLATE_OWNED.filter((owned) => owned.startsWith('automatization/runners/')).map((owned) => path.basename(owned)),
|
|
140
161
|
)
|
|
141
162
|
copyRuntime(
|
|
142
163
|
path.join(PROJECT_ROOT, 'automatization', 'workflows'),
|
|
@@ -144,10 +165,25 @@ function init(target) {
|
|
|
144
165
|
preserve,
|
|
145
166
|
root,
|
|
146
167
|
)
|
|
147
|
-
const
|
|
148
|
-
|
|
149
|
-
|
|
168
|
+
const version = require(path.join(PROJECT_ROOT, 'package.json')).version
|
|
169
|
+
// Un repo con npm recibe el motor como dependencia versionada; uno de Go, Python o Rust recibe
|
|
170
|
+
// la copia, porque exigirle un package.json para correr su planning sería imponerle un stack.
|
|
171
|
+
const manifest = path.join(root, 'package.json')
|
|
172
|
+
const engineMode = option('--engine', fs.existsSync(manifest) ? 'dependency' : 'copy')
|
|
173
|
+
if (!['copy', 'dependency'].includes(engineMode)) fail('--engine debe ser copy o dependency.', 2)
|
|
174
|
+
if (engineMode === 'dependency') declareEngine(manifest, version)
|
|
175
|
+
else {
|
|
176
|
+
const engine = path.join(root, '.ops', 'engine')
|
|
177
|
+
copyRuntime(path.join(PROJECT_ROOT, 'engine'), engine, preserve, root)
|
|
178
|
+
fs.chmodSync(path.join(engine, 'cli', 'ops.js'), 0o755)
|
|
179
|
+
}
|
|
180
|
+
// La instancia recuerda de qué versión salió: sin esto no hay actualización posible.
|
|
181
|
+
const configFile = path.join(root, 'ops.config.json')
|
|
182
|
+
const config = JSON.parse(fs.readFileSync(configFile, 'utf8'))
|
|
183
|
+
config.cauceVersion = version
|
|
184
|
+
F.atomicWriteJson(configFile, config)
|
|
150
185
|
console.log(`\n✓ ${name}: sistema ops creado en ${root}`)
|
|
186
|
+
if (engineMode === 'dependency') console.log(' siguiente: npm install (el motor viene de la dependencia)')
|
|
151
187
|
console.log(` siguiente: node ${path.join(root, 'tools', 'ops.js')} check ${path.join(root, 'planning')}`)
|
|
152
188
|
}
|
|
153
189
|
|
|
@@ -254,6 +290,12 @@ function check(dir) {
|
|
|
254
290
|
errors.push(...integration.errors)
|
|
255
291
|
warnings.push(...integration.warnings)
|
|
256
292
|
|
|
293
|
+
// Sobrescribir una entrada de system/ es legítimo y esperado; lo que no puede pasar es que
|
|
294
|
+
// ocurra en silencio, porque esa entrada deja de recibir las mejoras del toolkit.
|
|
295
|
+
for (const override of O.overrides(path.resolve(root, '..'))) {
|
|
296
|
+
warnings.push(`${override.collection}/${override.project} sobrescribe ${override.system} (override explícito)`)
|
|
297
|
+
}
|
|
298
|
+
|
|
257
299
|
if (process.argv.includes('--json')) {
|
|
258
300
|
console.log(JSON.stringify({
|
|
259
301
|
ok: !errors.length,
|
|
@@ -414,6 +456,112 @@ function context(dir) {
|
|
|
414
456
|
for (const action of report.humanActions) console.log(`HUMAN ${action.task}: ${action.action}`)
|
|
415
457
|
}
|
|
416
458
|
|
|
459
|
+
// Qué trae la versión nueva, leído del paquete: sin esto el reemplazo de system/ es a ciegas.
|
|
460
|
+
function printChangelog(from, to) {
|
|
461
|
+
const notes = CL.between(CL.read(PROJECT_ROOT), from, to)
|
|
462
|
+
if (!notes.length) return
|
|
463
|
+
for (const note of notes) {
|
|
464
|
+
console.log(`\n ── ${note.version} ──`)
|
|
465
|
+
for (const line of note.body.split('\n')) if (line.trim()) console.log(` ${line}`)
|
|
466
|
+
}
|
|
467
|
+
console.log('')
|
|
468
|
+
}
|
|
469
|
+
|
|
470
|
+
function instanceVersion(root) {
|
|
471
|
+
try {
|
|
472
|
+
return JSON.parse(fs.readFileSync(path.join(root, 'ops.config.json'), 'utf8')).cauceVersion || ''
|
|
473
|
+
} catch { return '' }
|
|
474
|
+
}
|
|
475
|
+
|
|
476
|
+
// Sobrescribe lo que trae el paquete y deja intacto lo demás: un guard propio de la empresa,
|
|
477
|
+
// o un adaptador de runner que el toolkit no conoce, sobreviven a la actualización.
|
|
478
|
+
function overlayTree(from, to, root, skip = []) {
|
|
479
|
+
F.assertNoSymlinkPath(root, to)
|
|
480
|
+
copyRuntime(from, to, false, root, skip)
|
|
481
|
+
}
|
|
482
|
+
|
|
483
|
+
// Actualiza sólo lo que el toolkit declara suyo. Todo lo demás —planning, organization, reglas
|
|
484
|
+
// propias, agentes editados— queda intacto por construcción, no por comparación.
|
|
485
|
+
function upgrade(dir) {
|
|
486
|
+
const root = path.resolve(dir || '.')
|
|
487
|
+
if (!fs.existsSync(path.join(root, 'ops.config.json'))) {
|
|
488
|
+
fail(`${root} no es una instancia de Cauce: falta ops.config.json.`, 2)
|
|
489
|
+
}
|
|
490
|
+
const dry = process.argv.includes('--check')
|
|
491
|
+
const force = process.argv.includes('--force')
|
|
492
|
+
const from = instanceVersion(root)
|
|
493
|
+
const to = require(path.join(PROJECT_ROOT, 'package.json')).version
|
|
494
|
+
const system = O.systemPaths(root)
|
|
495
|
+
const changed = O.localChanges(root, PROJECT_ROOT)
|
|
496
|
+
const overrides = O.overrides(root)
|
|
497
|
+
|
|
498
|
+
if (dry) {
|
|
499
|
+
if (from === to) return console.log(`= ${to}: la instancia está al día`)
|
|
500
|
+
console.log(`⚠ hay una versión más nueva: ${to} (la instancia tiene ${from || 'una previa'})`)
|
|
501
|
+
printChangelog(from, to)
|
|
502
|
+
for (const file of changed) console.log(` editado localmente: ${file}`)
|
|
503
|
+
process.exit(1)
|
|
504
|
+
}
|
|
505
|
+
|
|
506
|
+
if (changed.length && !force) {
|
|
507
|
+
for (const file of changed) console.error(`✗ ${file}`)
|
|
508
|
+
fail(
|
|
509
|
+
`\n${changed.length} archivo(s) del runtime fueron editados y se perderían.\n\n` +
|
|
510
|
+
'El runtime es del toolkit: en vez de editarlo, agregá lo tuyo al lado con otro nombre —un\n' +
|
|
511
|
+
'guard propio sobrevive a cada actualización— y registralo en la configuración de tu runner,\n' +
|
|
512
|
+
'que sí es del proyecto. Para desactivar un guard alcanza con quitarlo de esa configuración.\n' +
|
|
513
|
+
'Si el cambio ya no te sirve, repetí con --force para descartarlo.',
|
|
514
|
+
)
|
|
515
|
+
}
|
|
516
|
+
|
|
517
|
+
for (const relative of [...system, ...O.RUNTIME_PATHS]) {
|
|
518
|
+
const origin = path.join(PROJECT_ROOT, O.sourceOf(relative))
|
|
519
|
+
if (!fs.existsSync(origin)) continue
|
|
520
|
+
const target = path.join(root, relative)
|
|
521
|
+
// Una instancia que toma el motor de npm no debe recuperar la copia: la actualiza el lockfile.
|
|
522
|
+
if (relative === '.ops/engine' && !fs.existsSync(target)) continue
|
|
523
|
+
const skip = O.TEMPLATE_OWNED
|
|
524
|
+
.filter((owned) => owned.startsWith(`${relative}/`))
|
|
525
|
+
.map((owned) => path.basename(owned))
|
|
526
|
+
if (fs.statSync(origin).isDirectory()) overlayTree(origin, target, root, skip)
|
|
527
|
+
else {
|
|
528
|
+
F.assertNoSymlinkPath(root, target)
|
|
529
|
+
F.atomicWrite(target, fs.readFileSync(origin, 'utf8'))
|
|
530
|
+
}
|
|
531
|
+
}
|
|
532
|
+
|
|
533
|
+
const config = JSON.parse(fs.readFileSync(path.join(root, 'ops.config.json'), 'utf8'))
|
|
534
|
+
config.cauceVersion = to
|
|
535
|
+
F.atomicWriteJson(path.join(root, 'ops.config.json'), config)
|
|
536
|
+
|
|
537
|
+
console.log(`✓ Cauce ${from || '(previa)'} → ${to}`)
|
|
538
|
+
// Descartar con --force es legítimo; hacerlo sin dejar rastro no. Queda en la salida del comando,
|
|
539
|
+
// que es la evidencia que el protocolo pide para cualquier cambio.
|
|
540
|
+
for (const file of changed) console.log(`− descartado tu cambio en ${file}`)
|
|
541
|
+
printChangelog(from, to)
|
|
542
|
+
console.log(` ${system.length} ruta(s) del sistema y ${O.RUNTIME_PATHS.length} del runtime actualizadas`)
|
|
543
|
+
for (const override of overrides) {
|
|
544
|
+
console.log(`= conservado ${override.collection}/${override.project}: sobrescribe ${override.system}`)
|
|
545
|
+
}
|
|
546
|
+
console.log(' planning, organization y todo lo propio quedaron intactos')
|
|
547
|
+
}
|
|
548
|
+
|
|
549
|
+
// Lista los cargos visibles resolviendo la precedencia; evita que cada consumidor —CI incluido—
|
|
550
|
+
// reimplemente el recorrido del catálogo.
|
|
551
|
+
function agents(action, dir) {
|
|
552
|
+
if (action !== 'list') fail(`Acción de agents desconocida: ${action || '(vacía)'}`, 2)
|
|
553
|
+
const root = path.resolve(dir || '.')
|
|
554
|
+
const roles = AG.list(root)
|
|
555
|
+
if (process.argv.includes('--json')) {
|
|
556
|
+
// `path` viene resuelto: quien consuma esto no debería reconstruir dónde ganó la precedencia.
|
|
557
|
+
return console.log(JSON.stringify(roles.map((role) => ({
|
|
558
|
+
slug: role.slug, type: role.type, system: role.system,
|
|
559
|
+
path: path.relative(root, role.dir).split(path.sep).join('/'),
|
|
560
|
+
}))))
|
|
561
|
+
}
|
|
562
|
+
for (const role of roles) console.log(`${role.slug}${role.system ? '' : ' (propio)'}`)
|
|
563
|
+
}
|
|
564
|
+
|
|
417
565
|
function archive(dir, rawNum) {
|
|
418
566
|
const root = path.resolve(dir || '.')
|
|
419
567
|
const num = String(rawNum || '').padStart(3, '0')
|
|
@@ -570,6 +718,8 @@ function team(action, slug) {
|
|
|
570
718
|
for (const error of result.errors) console.error(`✗ ${error}`)
|
|
571
719
|
if (result.errors.length) fail(`${slug}: ${result.errors.length} error(es)`, 1)
|
|
572
720
|
if (action === 'show') {
|
|
721
|
+
// El manifiesto entero, para que un workflow ejecute las etapas sin que un modelo lo parsee.
|
|
722
|
+
if (process.argv.includes('--json')) return console.log(JSON.stringify(result.manifest))
|
|
573
723
|
console.log(`${result.manifest.name} (${slug})`)
|
|
574
724
|
console.log(result.manifest.purpose)
|
|
575
725
|
for (const stage of result.manifest.stages) {
|
|
@@ -588,6 +738,8 @@ async function main() {
|
|
|
588
738
|
else if (command === 'check') check(process.argv[3])
|
|
589
739
|
else if (command === 'tree') tree(process.argv[3])
|
|
590
740
|
else if (command === 'context') context(process.argv[3])
|
|
741
|
+
else if (command === 'upgrade') upgrade(process.argv[3])
|
|
742
|
+
else if (command === 'agents') agents(process.argv[3], process.argv[4])
|
|
591
743
|
else if (command === 'archive') archive(process.argv[3], process.argv[4])
|
|
592
744
|
else if (command === 'integration') {
|
|
593
745
|
await integration(process.argv[3], process.argv[4], process.argv[5], process.argv[6])
|
|
@@ -7,7 +7,10 @@ function validateOpsConfig(config) {
|
|
|
7
7
|
if (!config || typeof config !== 'object' || Array.isArray(config)) {
|
|
8
8
|
return ['ops.config.json: debe ser un objeto']
|
|
9
9
|
}
|
|
10
|
-
|
|
10
|
+
// `cauceVersion` la escribe el toolkit, no la persona: registra de qué versión salió la instancia.
|
|
11
|
+
const allowed = new Set([
|
|
12
|
+
'$schema', 'cauceVersion', 'project', 'mode', 'planningDir', 'workspaceRoots', 'runner',
|
|
13
|
+
])
|
|
11
14
|
for (const key of Object.keys(config)) {
|
|
12
15
|
if (!allowed.has(key)) errors.push(`ops.config.json: propiedad desconocida ${key}`)
|
|
13
16
|
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
'use strict'
|
|
2
|
+
|
|
3
|
+
// `upgrade` reemplaza `system/` sin pedir confirmación. Mostrar qué cambió entre la versión
|
|
4
|
+
// instalada y la nueva es lo que separa "actualizarse rápido" de "actualizarse a ciegas".
|
|
5
|
+
|
|
6
|
+
const fs = require('node:fs')
|
|
7
|
+
const path = require('node:path')
|
|
8
|
+
|
|
9
|
+
const HEADING = /^##\s*\[([^\]]+)\]/
|
|
10
|
+
|
|
11
|
+
// Compara versiones semver sin dependencias. Lo no numérico ordena antes que la release.
|
|
12
|
+
function compare(left, right) {
|
|
13
|
+
const parse = (value) => String(value).split('-')[0].split('.').map((part) => Number(part) || 0)
|
|
14
|
+
const [a, b] = [parse(left), parse(right)]
|
|
15
|
+
for (let index = 0; index < 3; index++) {
|
|
16
|
+
if ((a[index] || 0) !== (b[index] || 0)) return (a[index] || 0) - (b[index] || 0)
|
|
17
|
+
}
|
|
18
|
+
return 0
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
function entries(text) {
|
|
22
|
+
const found = []
|
|
23
|
+
let current = null
|
|
24
|
+
for (const line of text.split('\n')) {
|
|
25
|
+
const heading = line.match(HEADING)
|
|
26
|
+
if (heading) {
|
|
27
|
+
current = { version: heading[1], lines: [] }
|
|
28
|
+
found.push(current)
|
|
29
|
+
continue
|
|
30
|
+
}
|
|
31
|
+
if (current) current.lines.push(line)
|
|
32
|
+
}
|
|
33
|
+
return found.map((entry) => ({ version: entry.version, body: entry.lines.join('\n').trim() }))
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
// Entradas estrictamente posteriores a `from` y hasta `to`. Una versión no publicada se incluye
|
|
37
|
+
// siempre: es justamente la que el usuario está por recibir desde el paquete.
|
|
38
|
+
function between(text, from, to) {
|
|
39
|
+
return entries(text).filter((entry) => {
|
|
40
|
+
if (!/^\d/.test(entry.version)) return true
|
|
41
|
+
if (from && compare(entry.version, from) <= 0) return false
|
|
42
|
+
return !to || compare(entry.version, to) <= 0
|
|
43
|
+
})
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
function read(packageRoot) {
|
|
47
|
+
try { return fs.readFileSync(path.join(packageRoot, 'CHANGELOG.md'), 'utf8') } catch { return '' }
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
module.exports = { between, compare, entries, read }
|