{"id":50538706,"url":"https://github.com/lucabenedettini/salesforce-ai-agent-optimizer","last_synced_at":"2026-06-03T19:00:14.075Z","repository":{"id":362234176,"uuid":"1257512711","full_name":"lucabenedettini/salesforce-ai-agent-optimizer","owner":"lucabenedettini","description":"AI agent skill and toolkit for Salesforce architecture, metadata planning, AppExchange package context, token-efficient CLI, and Knowledge-driven delivery","archived":false,"fork":false,"pushed_at":"2026-06-03T08:53:47.000Z","size":118,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-03T09:16:53.518Z","etag":null,"topics":["agentforce","ai-agents","apex","appexchange","claude-code","codex","github-copilot","lwc","salesforce","salesforce-cli","salesforce-cpq","salesforce-development"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lucabenedettini.png","metadata":{"files":{"readme":"README.es.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-06-02T18:47:32.000Z","updated_at":"2026-06-03T08:53:37.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/lucabenedettini/salesforce-ai-agent-optimizer","commit_stats":null,"previous_names":["lucabenedettini/salesforce-agent-optimizer"],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/lucabenedettini/salesforce-ai-agent-optimizer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lucabenedettini%2Fsalesforce-ai-agent-optimizer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lucabenedettini%2Fsalesforce-ai-agent-optimizer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lucabenedettini%2Fsalesforce-ai-agent-optimizer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lucabenedettini%2Fsalesforce-ai-agent-optimizer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lucabenedettini","download_url":"https://codeload.github.com/lucabenedettini/salesforce-ai-agent-optimizer/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lucabenedettini%2Fsalesforce-ai-agent-optimizer/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33876333,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-03T02:00:06.370Z","response_time":59,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["agentforce","ai-agents","apex","appexchange","claude-code","codex","github-copilot","lwc","salesforce","salesforce-cli","salesforce-cpq","salesforce-development"],"created_at":"2026-06-03T19:00:12.040Z","updated_at":"2026-06-03T19:00:13.972Z","avatar_url":"https://github.com/lucabenedettini.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Salesforce AI Agent Optimizer\n\n[English](README.md) | [Italiano](README.it.md) | Espanol | [简体中文](README.zh-CN.md)\n\n[![Validate Skill](https://github.com/lucabenedettini/salesforce-ai-agent-optimizer/actions/workflows/validate.yml/badge.svg)](https://github.com/lucabenedettini/salesforce-ai-agent-optimizer/actions/workflows/validate.yml)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)\n[![Latest release](https://img.shields.io/github/v/release/lucabenedettini/salesforce-ai-agent-optimizer)](https://github.com/lucabenedettini/salesforce-ai-agent-optimizer/releases)\n[![Agents](https://img.shields.io/badge/agents-Codex%20%7C%20Claude%20Code%20%7C%20GitHub%20Copilot-blue)](#instalacion)\n\nSalesforce AI Agent Optimizer es una skill publica con licencia MIT para agentes AI que trabajan en proyectos Salesforce. Ayuda a Codex, Claude Code, GitHub Copilot y agentes similares a planificar, implementar, validar, empaquetar y documentar cambios Salesforce con uso compacto de contexto y guardrails fuertes.\n\nEl repositorio publico se llama **Salesforce AI Agent Optimizer**. El nombre de la skill Codex sigue siendo `salesforce-agent-optimizer`.\n\nVersion actual: `0.6.1`\n\n## Principios\n\n- Salesforce first: preferir capacidades estandar, configuracion, Flow, permission sets, LDS/UI API, named credentials y managed packages antes que Apex, LWC, triggers o integraciones custom.\n- Eficiencia de tokens: usar progressive disclosure, Knowledge local indexada, salida CLI compacta, lecturas dirigidas y parches minimos.\n- Knowledge local: `/sf-init-project-skill` crea un indice Markdown compacto de metadata del proyecto, inspirado en el patron LLM wiki.\n- CLI agent-native: `scripts/sf_agent_cli.py` envuelve la Salesforce CLI oficial con alias explicitos, JSON compacto, redaccion de secretos, dry-run, produccion read-only y bloqueo de deletes sin aprobacion.\n- Least privilege: durante la planificacion el agente debe inspeccionar los permisos actuales en la org para users/personas afectados y conceder solo el acceso minimo necesario.\n- No inventar: si falta evidencia, el agente debe preguntar al user o presentar escenarios con tradeoffs.\n\n## Guardrails De Seguridad\n\n- Las orgs de produccion son read-only para operaciones write, execute y destructive mediante la facade.\n- Cada comando org/data/metadata requiere un alias org explicito.\n- Las operaciones destructivas nunca son automaticas. Data delete, metadata delete, package uninstall, source delete, purge, hard delete y despliegues con `destructiveChanges.xml` requieren aprobacion separada sobre el scope exacto.\n- La CLI bloquea comandos destructivos sin este flag exacto tras la aprobacion user:\n\n```bash\n--delete-approval \"I explicitly approve this deletion\"\n```\n\n- La metadata eliminada va en `destructiveChanges.xml`, no en `package.xml`.\n- Si record set, dependencias metadata, version package, permisos o comportamiento org no estan claros, el agente debe preguntar o presentar opciones.\n\n## Comandos Principales\n\nCrear o refrescar Knowledge:\n\n```text\n/sf-init-project-skill\n```\n\nActualizar contexto de version Salesforce release/API/SOAP/package desde fuentes oficiales:\n\n```text\n/sf-version-update-skill\n```\n\nEjecutar tests locales:\n\n```bash\npython scripts/sync_agent_instructions.py --check\npython scripts/validate_skill.py\npython scripts/self_test.py --json\npython -m pytest\n```\n\nGenerar manifest para metadata agregada o modificada:\n\n```bash\npython scripts/generate_package_manifest.py --project-root . --output release-artifacts/\u003cdate\u003e-\u003cchange\u003e/package.xml --from-git-status\n```\n\nLeer packages instalados en una org:\n\n```bash\npython scripts/sf_agent_cli.py package-installed-list --target-org \u003calias\u003e --select result\n```\n\nInspeccionar acceso actual antes de planificar permisos:\n\n```bash\npython scripts/sf_agent_cli.py access-inspect --target-org \u003calias\u003e --username user@example.com --sobject Account --select users.records,permission_set_assignments.records,object_permissions.records,field_permissions.records\n```\n\nBorrar un record solo tras aprobacion explicita:\n\n```bash\npython scripts/sf_agent_cli.py data-record-delete --target-org \u003calias\u003e --sobject Account --record-id 001... --delete-approval \"I explicitly approve this deletion\"\n```\n\n## Instalacion\n\nPide a Codex:\n\n```text\nInstall the Salesforce AI Agent Optimizer skill from https://github.com/lucabenedettini/salesforce-ai-agent-optimizer\n```\n\nComando installer Codex:\n\n```bash\npython \u003ccodex-home\u003e/skills/.system/skill-installer/scripts/install-skill-from-github.py --repo lucabenedettini/salesforce-ai-agent-optimizer --path . --name salesforce-agent-optimizer\n```\n\nRutas nativas Codex:\n\n- Skill de repo: `.agents/skills/salesforce-agent-optimizer`\n- Skill de user: `$HOME/.agents/skills/salesforce-agent-optimizer`\n\nClaude Code:\n\n- Instala o conserva la skill en `.claude/skills/salesforce-agent-optimizer/SKILL.md`.\n- Opcionalmente fusiona `agents/claude-code.md` en `CLAUDE.md`.\n- Copia `agents/sf-init-project-skill.md` en `.claude/commands/sf-init-project-skill.md`.\n- Copia `agents/sf-version-update-skill.md` en `.claude/commands/sf-version-update-skill.md`.\n\nGitHub Copilot:\n\n- Usa `AGENTS.md`, `.github/copilot-instructions.md` y `.github/instructions/salesforce-agent-optimizer.instructions.md`.\n\n## Prerrequisitos\n\n- Python 3.10+.\n- Git.\n- Proyecto Salesforce DX para Knowledge metadata, deploy, retrieve o manifest.\n- Salesforce CLI oficial disponible como `sf`.\n- Alias org autenticados. El agente debe pedir los alias y no usar default org.\n- Sandbox para operaciones write/execute. Produccion es read-only.\n\nOpcional:\n\n- PyYAML para validar skills Codex.\n- Node.js/npm para instalar Salesforce CLI con `npm install -g @salesforce/cli`.\n- Go y `cli-printing-press` solo para experimentacion CLI.\n\n## Contexto Version\n\nVerificado el 2026-06-03:\n\n- Salesforce release: Summer '26.\n- Platform API, Metadata API, SOAP API: `67.0`.\n- SOAP API `login()` no esta disponible en API `65.0+`; Salesforce anuncio el retirement de SOAP `login()` para API `31.0-64.0` con Summer '27.\n- Las versiones de managed packages son especificas de la target org. Inspecciona packages instalados antes de asumir namespace, objetos o features.\n\n## Validacion Y Handoff\n\nLa metodologia requiere resumir la solicitud, hacer preguntas solo cuando sean necesarias, identificar productos/packages y dependencias, aplicar least privilege, planificar cambios minimos, pedir aprobacion, generar `package.xml`, ofrecer artefactos de entrega, validar con tests o subagent, y preguntar si hacer push y a que branch solo cuando la validacion pase.\n\n## Fuentes Oficiales\n\n- Salesforce CLI: https://developer.salesforce.com/tools/salesforcecli\n- Salesforce CLI reference: https://developer.salesforce.com/docs/atlas.en-us.sfdx_cli_reference.meta/sfdx_cli_reference/cli_reference_top.htm\n- Metadata API deploy and destructive changes: https://developer.salesforce.com/docs/atlas.en-us.api_meta.meta/api_meta/meta_deploy.htm\n- Salesforce Well-Architected Secure: https://architect.salesforce.com/docs/architect/well-architected/guide/secure\n- Salesforce release notes: https://help.salesforce.com/s/articleView?id=release-notes.salesforce_release_notes.htm\u0026language=en_US\u0026type=5\n\n## Licencia\n\nMIT. Cualquier persona puede usar, copiar, modificar, distribuir y forkear este repositorio bajo los terminos de `LICENSE`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flucabenedettini%2Fsalesforce-ai-agent-optimizer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flucabenedettini%2Fsalesforce-ai-agent-optimizer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flucabenedettini%2Fsalesforce-ai-agent-optimizer/lists"}