{ "_": "Paths que fn-orquestador NUNCA debe modificar dentro del worktree auto/. Issue 0069.", "_format": "Cada entry es una ruta o glob relativa al repo root. La regla puede ser exact|glob|prefix.", "protected": [ {"rule": "prefix", "path": ".claude/agents/", "reason": "Self-modification prohibida; el orquestador no se modifica a si mismo ni a otros subagentes en la misma run."}, {"rule": "prefix", "path": ".claude/commands/", "reason": "Comandos definidos por humano."}, {"rule": "prefix", "path": ".claude/rules/", "reason": "Reglas operativas. Modificar requiere review humano."}, {"rule": "prefix", "path": ".claude/scripts/", "reason": "Hooks del repo."}, {"rule": "exact", "path": ".claude/CLAUDE.md", "reason": "Memoria del proyecto."}, {"rule": "exact", "path": ".claude/settings.json", "reason": "Config persistente."}, {"rule": "exact", "path": ".claude/settings.local.json", "reason": "Config local del PC."}, {"rule": "exact", "path": ".mcp.json", "reason": "Config MCP."}, {"rule": "prefix", "path": "dev/issues/", "reason": "Issues files. Excepcion: el issue del task actual (orquestador puede actualizar status/notas)."}, {"rule": "glob", "path": "**/.env*", "reason": "Secrets."}, {"rule": "glob", "path": "**/*.key", "reason": "Secrets."}, {"rule": "glob", "path": "**/*.pem", "reason": "Secrets."}, {"rule": "glob", "path": "**/credentials.json", "reason": "Secrets."}, {"rule": "glob", "path": "**/migrations/*.sql", "reason": "Migraciones existentes inmutables. Crear nuevas numeradas — no editar."}, {"rule": "exact", "path": "registry.db", "reason": "Indice regenerable, no fuente. Usar fn index."}, {"rule": "glob", "path": "**/operations.db", "reason": "Datos vivos. Acceso via fn ops o sqlite_api, no escritura directa de SQL."}, {"rule": "exact", "path": "go.mod", "reason": "Cambios de deps requieren review humano (riesgo CVE/licencias)."}, {"rule": "exact", "path": "go.sum", "reason": "Bloqueo de deps."}, {"rule": "glob", "path": "**/package.json", "reason": "Cambios de deps requieren review humano."}, {"rule": "glob", "path": "**/package-lock.json", "reason": "Bloqueo de deps npm."}, {"rule": "glob", "path": "**/pnpm-lock.yaml", "reason": "Bloqueo de deps pnpm."}, {"rule": "glob", "path": "**/pyproject.toml", "reason": "Cambios de deps Python."}, {"rule": "glob", "path": "**/uv.lock", "reason": "Bloqueo deps uv."}, {"rule": "exact", "path": ".git/", "reason": "git internals. Operar via git CLI, nunca tocar archivos directo."} ], "exceptions": [ { "rule": "Single-issue exception", "description": "El orquestador PUEDE modificar dev/issues/*.md para actualizar estado/notas del propio task. Cualquier otro issue file permanece protegido." }, { "rule": "Migrations aditivas", "description": "El orquestador PUEDE crear archivos NUEVOS en cualquier migrations/ (NNN_*.sql) con numero superior al maximo existente. NUNCA editar migrations existentes." } ] }