# UTF-8 sin BOM — prevención global (EQUIPITELLO)

**Problema:** PowerShell 5.1 escribe BOM con `Set-Content -Encoding UTF8`. Cline/Node `JSON.parse` falla.

## Herramientas

| Script | Uso |
|--------|-----|
| `tools/lib/Utf8NoBom.ps1` | Módulo: `Write-Utf8NoBomFile`, `Write-JsonFileNoBom`, `Merge-JsonFileNoBom` |
| `tools/audit-bom-json-equipitello.ps1` | Audita MCP JSON en AppData; `-Repair` quita BOM |
| `tools/fix-ide-mcp-equipitello.ps1` | Repara MCP + extensiones; usa el módulo |

## Reglas

1. **Nunca** `Set-Content -Encoding UTF8` en `.json` / MCP.
2. **`.editorconfig`** en raíz `htdocs/` → `charset = utf-8` para `*.json`.
3. **Cursor/VS Code:** `"files.encoding": "utf8"` (no `utf8bom`).
4. **Agentes Cursor:** regla `.cursor/rules/utf8-json-no-bom.mdc`.
5. **AiAgentSetups:** `shared/lib/common.ps1` → `Merge-JsonFile` sin BOM vía módulo.

## Auditoría recomendada

Tras scripts de instalación Cline/Kiro o cambios MCP:

```powershell
cd C:\xampp\htdocs\cursor-mobile-bridge\tools
powershell -ExecutionPolicy Bypass -File .\audit-bom-json-equipitello.ps1 -Repair
```

## Archivos críticos

- `%APPDATA%\Cursor\User\globalStorage\saoudrizwan.*\settings\cline_mcp_settings.json`
- `%APPDATA%\Cursor\User\globalStorage\saoudrizwan.*\settings\mcp_settings.json`
- `%USERPROFILE%\.cursor\mcp.json`
