@echo off chcp 65001 >nul title Desplegador de Gobernanza Multi-Agente echo ======================================================== echo DESPLEGADOR DE ARQUITECTURA DE AGENTES Y GOBERNANZA echo (control de estado, prompt registry, auditoria, HITL) echo ======================================================== echo. set /p "PROJECT_PATH=Introduce la ruta absoluta donde deseas crear el proyecto (ej: C:\Proyectos\MiAgenteAI): " if "%PROJECT_PATH%"=="" ( echo [ERROR] La ruta no puede estar vacia. pause exit /b ) set "P=%PROJECT_PATH%" echo. echo [+] Creando estructura de directorios en: %P% mkdir "%P%\00_governance\audit_logs" 2>nul mkdir "%P%\01_architecture" 2>nul mkdir "%P%\02_specs" 2>nul mkdir "%P%\03_state\history" 2>nul mkdir "%P%\03_state\checkpoints" 2>nul mkdir "%P%\03_state\locks" 2>nul mkdir "%P%\04_agents\orchestrator" 2>nul mkdir "%P%\04_agents\workers" 2>nul mkdir "%P%\04_agents\validators" 2>nul mkdir "%P%\05_skills\core_tools" 2>nul mkdir "%P%\05_skills\custom_actions" 2>nul mkdir "%P%\06_design\outputs" 2>nul echo [OK] Estructura de directorios creada. echo. echo [+] Generando archivos de gobernanza, estado y auditoria... :: 1. README.md echo # Proyecto Multi-Agente - Gobernanza Estricta> "%P%\README.md" echo.>> "%P%\README.md" echo Creado bajo el framework de gobernanza anti-desorden estocastico.>> "%P%\README.md" echo.>> "%P%\README.md" echo ## Estructura>> "%P%\README.md" echo - 00_governance: politicas, validadores deterministas, auditoria e incidentes.>> "%P%\README.md" echo - 01_architecture: diseno del sistema y flujo de datos.>> "%P%\README.md" echo - 02_specs: requisitos y prompt registry centralizado.>> "%P%\README.md" echo - 03_state: estado transaccional, historial, checkpoints HITL y locks.>> "%P%\README.md" echo - 04_agents: orquestador, workers y validadores.>> "%P%\README.md" echo - 05_skills: herramientas base y acciones especificas del dominio.>> "%P%\README.md" echo - 06_design: salidas y artefactos entregables.>> "%P%\README.md" echo.>> "%P%\README.md" echo Antes de operar, leer 00_governance\policies.md completo.>> "%P%\README.md" echo [OK] archivo creado: README.md :: 2. .env.example echo # Configuracion de Credenciales> "%P%\.env.example" echo OPENAI_API_KEY=tu_clave_aqui>> "%P%\.env.example" echo ANTHROPIC_API_KEY=tu_clave_aqui>> "%P%\.env.example" echo GEMINI_API_KEY=tu_clave_aqui>> "%P%\.env.example" echo LOG_LEVEL=INFO>> "%P%\.env.example" echo [OK] archivo creado: .env.example :: 3. run_orchestrator.py (placeholder, sin logica de negocio) echo # run_orchestrator.py - punto de entrada del sistema.> "%P%\run_orchestrator.py" echo # Implementar aqui conforme a 02_specs\requirements.md y 02_specs\prompt_registry.json.>> "%P%\run_orchestrator.py" echo # No omitir el paso de VERIFY del bucle de operacion antes de avanzar de fase.>> "%P%\run_orchestrator.py" echo [OK] archivo creado: run_orchestrator.py :: 4. 00_governance\policies.md echo # Politicas de Gobernanza y Seguridad> "%P%\00_governance\policies.md" echo.>> "%P%\00_governance\policies.md" echo 1. Ningun agente modifica un archivo listado en 03_state\canonical_registry.json>> "%P%\00_governance\policies.md" echo sin pasar por un checkpoint HITL en 03_state\checkpoints.>> "%P%\00_governance\policies.md" echo 2. Ningun agente certifica su propio trabajo como completado o verificado.>> "%P%\00_governance\policies.md" echo La verificacion la hace un agente validator distinto o un humano, con>> "%P%\00_governance\policies.md" echo evidencia independientemente reproducible: hash recomputado, conteo>> "%P%\00_governance\policies.md" echo recomputado, render inspeccionado.>> "%P%\00_governance\policies.md" echo 3. Todo campo que no pueda determinarse con confianza queda null. Nunca se>> "%P%\00_governance\policies.md" echo rellena con un valor inferido o razonable. Cero alucinacion de datos.>> "%P%\00_governance\policies.md" echo 4. Copiar, nunca mover ni sobrescribir, los archivos fuente originales del>> "%P%\00_governance\policies.md" echo cliente o del dominio del proyecto.>> "%P%\00_governance\policies.md" echo 5. Toda ambiguedad se reporta para revision humana. Nunca se resuelve>> "%P%\00_governance\policies.md" echo adivinando en silencio.>> "%P%\00_governance\policies.md" echo 6. Ningun archivo o registro de entrada desaparece sin dejar un registro de>> "%P%\00_governance\policies.md" echo error o fallo correspondiente.>> "%P%\00_governance\policies.md" echo 7. Toda regla de clasificacion se valida contra una muestra real y auditada>> "%P%\00_governance\policies.md" echo del corpus antes de codificarse. Nunca se disena desde una suposicion>> "%P%\00_governance\policies.md" echo razonable sin evidencia.>> "%P%\00_governance\policies.md" echo 8. Antes de iniciar un proceso largo sin supervision: debe existir lock file>> "%P%\00_governance\policies.md" echo con deteccion de huerfano, checkpoint con escritura atomica, y timeout>> "%P%\00_governance\policies.md" echo por unidad de trabajo derivado de datos reales, nunca inventado.>> "%P%\00_governance\policies.md" echo 9. Al detectar dos versiones divergentes de un mismo activo compartido: una>> "%P%\00_governance\policies.md" echo queda canonica y registrada, la otra se archiva con nombre autodescriptivo.>> "%P%\00_governance\policies.md" echo Nunca se borra en silencio ni queda un duplicado ambiguo sin registrar.>> "%P%\00_governance\policies.md" echo 10. La comparacion de integridad entre dos versiones de un dataset se hace>> "%P%\00_governance\policies.md" echo por clave primaria real, nunca por posicion o orden de insercion.>> "%P%\00_governance\policies.md" echo 11. Ante un cambio de alcance radical (nuevo tipo de dato, fase no prevista,>> "%P%\00_governance\policies.md" echo hallazgo que contradice una regla ya codificada), se declara>> "%P%\00_governance\policies.md" echo explicitamente y se ejecuta 00_governance\re_baseline_protocol.md>> "%P%\00_governance\policies.md" echo antes de reanudar corridas criticas.>> "%P%\00_governance\policies.md" echo [OK] archivo creado: 00_governance\policies.md :: 5. 00_governance\agent_allowlist.md echo # Allow-list de Agentes - autonomia sin checkpoint HITL> "%P%\00_governance\agent_allowlist.md" echo.>> "%P%\00_governance\agent_allowlist.md" echo Esta es la autorizacion que el propio sistema de agentes se da a si mismo>> "%P%\00_governance\agent_allowlist.md" echo para operar sin preguntar. No sustituye un checkpoint HITL cuando la accion>> "%P%\00_governance\agent_allowlist.md" echo cae en la lista de umbrales criticos de policies.md.>> "%P%\00_governance\agent_allowlist.md" echo.>> "%P%\00_governance\agent_allowlist.md" echo ## Vigente>> "%P%\00_governance\agent_allowlist.md" echo - listar aqui comandos y acciones permanentemente pre-aprobados>> "%P%\00_governance\agent_allowlist.md" echo.>> "%P%\00_governance\agent_allowlist.md" echo ## Ampliaciones temporales>> "%P%\00_governance\agent_allowlist.md" echo - fecha inicio hasta fecha fin o condicion de cierre: alcance exacto>> "%P%\00_governance\agent_allowlist.md" echo ampliado, y motivo. Eliminar esta entrada cuando la ventana cierre.>> "%P%\00_governance\agent_allowlist.md" echo [OK] archivo creado: 00_governance\agent_allowlist.md :: 5b. 00_governance\re_baseline_protocol.md echo # Protocolo de Cambio Radical / Re-baseline> "%P%\00_governance\re_baseline_protocol.md" echo.>> "%P%\00_governance\re_baseline_protocol.md" echo Ejecutar completo ante cualquier cambio que invalide un supuesto ya>> "%P%\00_governance\re_baseline_protocol.md" echo documentado en requirements.md, canonical_registry.json o policies.md:>> "%P%\00_governance\re_baseline_protocol.md" echo nuevo tipo de dato, fase no prevista, hallazgo que contradice una regla ya>> "%P%\00_governance\re_baseline_protocol.md" echo codificada, cambio de objetivo del cliente.>> "%P%\00_governance\re_baseline_protocol.md" echo.>> "%P%\00_governance\re_baseline_protocol.md" echo 1. DECLARAR el cambio por escrito en 03_state\checkpoints: fecha,>> "%P%\00_governance\re_baseline_protocol.md" echo descripcion del cambio de alcance, quien lo autoriza.>> "%P%\00_governance\re_baseline_protocol.md" echo 2. CONGELAR nuevas corridas criticas (procesos largos sin supervision,>> "%P%\00_governance\re_baseline_protocol.md" echo escrituras sobre activos canonicos) hasta cerrar este protocolo.>> "%P%\00_governance\re_baseline_protocol.md" echo 3. RE-DERIVAR los numeros y reglas actualmente confiables sobre una>> "%P%\00_governance\re_baseline_protocol.md" echo muestra real bajo el nuevo alcance. Nunca asumir que las reglas>> "%P%\00_governance\re_baseline_protocol.md" echo anteriores siguen aplicando solo porque nadie las ha objetado todavia.>> "%P%\00_governance\re_baseline_protocol.md" echo 4. RE-VALIDAR canonical_registry.json: cada activo se reconfirma como>> "%P%\00_governance\re_baseline_protocol.md" echo canonico bajo el nuevo alcance, o se marca explicitamente obsoleto.>> "%P%\00_governance\re_baseline_protocol.md" echo 5. RE-EMITIR policies.md o requirements.md si alguna regla ya no aplica,>> "%P%\00_governance\re_baseline_protocol.md" echo con changelog explicito: que regla se retira, por que, quien aprobo.>> "%P%\00_governance\re_baseline_protocol.md" echo 6. REGISTRAR el evento en audit_logs\incident_log.md, incluso si no hubo>> "%P%\00_governance\re_baseline_protocol.md" echo ningun error de por medio.>> "%P%\00_governance\re_baseline_protocol.md" echo 7. Solo despues de 1-6 se reanudan corridas criticas bajo el nuevo>> "%P%\00_governance\re_baseline_protocol.md" echo baseline.>> "%P%\00_governance\re_baseline_protocol.md" echo [OK] archivo creado: 00_governance\re_baseline_protocol.md :: 6. 00_governance\audit_logs\incident_log.md echo # Registro de Incidentes - Framework de Gobernanza> "%P%\00_governance\audit_logs\incident_log.md" echo.>> "%P%\00_governance\audit_logs\incident_log.md" echo ^| Fecha ^| Incidente ^| Causa Raiz ^| Resolucion / Leccion ^|>> "%P%\00_governance\audit_logs\incident_log.md" echo ^|---^|---^|---^|---^|>> "%P%\00_governance\audit_logs\incident_log.md" echo [OK] archivo creado: 00_governance\audit_logs\incident_log.md :: 7. 00_governance\safety_checks.py (esqueleto, sin implementacion) echo # safety_checks.py - Esqueleto de validadores deterministas.> "%P%\00_governance\safety_checks.py" echo # Contrato funcional: ver FRAMEWORK_GOBERNANZA_MULTIAGENTE_GENERICO.md, seccion 5.>> "%P%\00_governance\safety_checks.py" echo # Cada funcion debe implementarse y tener al menos un test que confirme que>> "%P%\00_governance\safety_checks.py" echo # rechaza el caso de fallo real que la origino. No usar sin implementar.>> "%P%\00_governance\safety_checks.py" echo.>> "%P%\00_governance\safety_checks.py" echo.>> "%P%\00_governance\safety_checks.py" echo def verify_output_hash(claimed_path, expected_hash):>> "%P%\00_governance\safety_checks.py" echo # Recalcula el hash real del archivo y lo compara con expected_hash.>> "%P%\00_governance\safety_checks.py" echo # Debe fallar si el hash recalculado no coincide.>> "%P%\00_governance\safety_checks.py" echo # Devuelve: hash_real, coincide (bool)>> "%P%\00_governance\safety_checks.py" echo raise NotImplementedError>> "%P%\00_governance\safety_checks.py" echo.>> "%P%\00_governance\safety_checks.py" echo.>> "%P%\00_governance\safety_checks.py" echo def compare_datasets_by_primary_key(old, new, key_field):>> "%P%\00_governance\safety_checks.py" echo # Compara dos datasets por el campo clave real, nunca por posicion o rowid.>> "%P%\00_governance\safety_checks.py" echo # Debe fallar si la comparacion se hizo por posicion en vez de por clave.>> "%P%\00_governance\safety_checks.py" echo # Devuelve: filas_identicas, filas_divergentes, ejemplos>> "%P%\00_governance\safety_checks.py" echo raise NotImplementedError>> "%P%\00_governance\safety_checks.py" echo.>> "%P%\00_governance\safety_checks.py" echo.>> "%P%\00_governance\safety_checks.py" echo def check_lock_orphaned(lock_path):>> "%P%\00_governance\safety_checks.py" echo # Verifica si el PID registrado en el lock sigue vivo en el sistema.>> "%P%\00_governance\safety_checks.py" echo # Debe fallar si el PID no existe y el lock se trata como valido igual.>> "%P%\00_governance\safety_checks.py" echo # Devuelve: huerfano (bool), pid_verificado>> "%P%\00_governance\safety_checks.py" echo raise NotImplementedError>> "%P%\00_governance\safety_checks.py" echo.>> "%P%\00_governance\safety_checks.py" echo.>> "%P%\00_governance\safety_checks.py" echo def derive_timeout_from_percentiles(sample_durations, percentile=99, safety_multiplier=2):>> "%P%\00_governance\safety_checks.py" echo # Deriva un timeout real a partir de percentiles medidos, nunca un numero>> "%P%\00_governance\safety_checks.py" echo # inventado a priori.>> "%P%\00_governance\safety_checks.py" echo # Devuelve: umbral_derivado, percentiles_usados>> "%P%\00_governance\safety_checks.py" echo raise NotImplementedError>> "%P%\00_governance\safety_checks.py" echo.>> "%P%\00_governance\safety_checks.py" echo.>> "%P%\00_governance\safety_checks.py" echo def enforce_single_canonical(asset_name, registry_path):>> "%P%\00_governance\safety_checks.py" echo # Impide escribir un archivo que colisione con un nombre canonico ya>> "%P%\00_governance\safety_checks.py" echo # registrado sin pasar por archivado explicito.>> "%P%\00_governance\safety_checks.py" echo # Devuelve: permitido (bool), accion_requerida>> "%P%\00_governance\safety_checks.py" echo raise NotImplementedError>> "%P%\00_governance\safety_checks.py" echo.>> "%P%\00_governance\safety_checks.py" echo.>> "%P%\00_governance\safety_checks.py" echo def validator_is_independent(validator_agent_id, worker_agent_id, run_id):>> "%P%\00_governance\safety_checks.py" echo # Impide que un agente certifique su propio trabajo.>> "%P%\00_governance\safety_checks.py" echo # Debe fallar si validator_agent_id es igual a worker_agent_id para el>> "%P%\00_governance\safety_checks.py" echo # mismo run_id.>> "%P%\00_governance\safety_checks.py" echo # Devuelve: independiente (bool)>> "%P%\00_governance\safety_checks.py" echo raise NotImplementedError>> "%P%\00_governance\safety_checks.py" echo [OK] archivo creado: 00_governance\safety_checks.py :: 8. 01_architecture\system_design.md echo # Diseno del Sistema> "%P%\01_architecture\system_design.md" echo.>> "%P%\01_architecture\system_design.md" echo Documentar aqui: topologia de agentes, diagrama de flujo de control,>> "%P%\01_architecture\system_design.md" echo puntos de decision y donde se ubican los checkpoints HITL.>> "%P%\01_architecture\system_design.md" echo [OK] archivo creado: 01_architecture\system_design.md :: 9. 01_architecture\data_flow.md echo # Flujo de Datos> "%P%\01_architecture\data_flow.md" echo.>> "%P%\01_architecture\data_flow.md" echo Documentar aqui: entradas, salidas, esquemas de datos y que activos son>> "%P%\01_architecture\data_flow.md" echo canonicos segun 03_state\canonical_registry.json.>> "%P%\01_architecture\data_flow.md" echo [OK] archivo creado: 01_architecture\data_flow.md :: 10. 02_specs\requirements.md echo # Requisitos y Alcance> "%P%\02_specs\requirements.md" echo.>> "%P%\02_specs\requirements.md" echo Documentar aqui: alcance y objetivos del proyecto, invariantes no>> "%P%\02_specs\requirements.md" echo negociables del dominio, y criterios de aceptacion de cada entregable.>> "%P%\02_specs\requirements.md" echo [OK] archivo creado: 02_specs\requirements.md :: 11. 02_specs\prompt_registry.json echo {> "%P%\02_specs\prompt_registry.json" echo "version": "1.0.0",>> "%P%\02_specs\prompt_registry.json" echo "agents": {>> "%P%\02_specs\prompt_registry.json" echo "orchestrator": {>> "%P%\02_specs\prompt_registry.json" echo "system_prompt": "Eres el director del sistema. Planificas y delegas tareas manteniendo la consistencia global. No ejecutas trabajo tu mismo: despachas a workers y exiges evidencia de validators antes de avanzar de fase.",>> "%P%\02_specs\prompt_registry.json" echo "allowed_tools": ["planner", "delegator"]>> "%P%\02_specs\prompt_registry.json" echo },>> "%P%\02_specs\prompt_registry.json" echo "worker": {>> "%P%\02_specs\prompt_registry.json" echo "system_prompt": "Eres un agente ejecutor especializado. Sigues estrictamente las especificaciones tecnicas. Nunca reportas tu propio trabajo como completado o verificado: reportas que hiciste y que evidencia produjiste. La certificacion la hace un validator distinto.",>> "%P%\02_specs\prompt_registry.json" echo "allowed_tools": ["file_writer", "code_generator"]>> "%P%\02_specs\prompt_registry.json" echo },>> "%P%\02_specs\prompt_registry.json" echo "validator": {>> "%P%\02_specs\prompt_registry.json" echo "system_prompt": "Eres el validador de calidad y cumplimiento de politicas. Tu trabajo es intentar refutar el resultado del worker, no confirmarlo. Rechazas cualquier salida anomala o sin evidencia independientemente reproducible. Nunca certificas una tarea que tu mismo ejecutaste.",>> "%P%\02_specs\prompt_registry.json" echo "allowed_tools": ["linter", "policy_checker", "hash_verifier", "primary_key_diff"]>> "%P%\02_specs\prompt_registry.json" echo }>> "%P%\02_specs\prompt_registry.json" echo }>> "%P%\02_specs\prompt_registry.json" echo }>> "%P%\02_specs\prompt_registry.json" echo [OK] archivo creado: 02_specs\prompt_registry.json :: 12. 03_state\current_state.json echo {> "%P%\03_state\current_state.json" echo "project_status": "initialized",>> "%P%\03_state\current_state.json" echo "current_phase": "setup",>> "%P%\03_state\current_state.json" echo "active_agent": "none",>> "%P%\03_state\current_state.json" echo "last_checkpoint": null,>> "%P%\03_state\current_state.json" echo "pending_hitl_approval": null,>> "%P%\03_state\current_state.json" echo "error_count": 0,>> "%P%\03_state\current_state.json" echo "baseline_version": "1.0.0",>> "%P%\03_state\current_state.json" echo "last_re_baseline_at": null>> "%P%\03_state\current_state.json" echo }>> "%P%\03_state\current_state.json" echo [OK] archivo creado: 03_state\current_state.json :: 13. 03_state\canonical_registry.json echo {> "%P%\03_state\canonical_registry.json" echo "assets": []>> "%P%\03_state\canonical_registry.json" echo }>> "%P%\03_state\canonical_registry.json" echo [OK] archivo creado: 03_state\canonical_registry.json :: 14-16. README de control por subcarpeta de 03_state echo Historial de snapshots de current_state.json, para rollback. No editar a mano.> "%P%\03_state\history\README.md" echo [OK] archivo creado: 03_state\history\README.md echo Puntos de control HITL. Una tarea que requiere aprobacion humana escribe> "%P%\03_state\checkpoints\README.md" echo aqui su solicitud y espera confirmacion explicita antes de continuar.>> "%P%\03_state\checkpoints\README.md" echo [OK] archivo creado: 03_state\checkpoints\README.md echo Lock files activos: PID, comando y heartbeat. Antes de tratar un lock como> "%P%\03_state\locks\README.md" echo valido tras cualquier interrupcion, verificar que el PID sigue vivo.>> "%P%\03_state\locks\README.md" echo [OK] archivo creado: 03_state\locks\README.md :: 17-19. README de control por subcarpeta de 04_agents echo Agente director: planifica y delega. No certifica trabajo propio ni ajeno.> "%P%\04_agents\orchestrator\README.md" echo [OK] archivo creado: 04_agents\orchestrator\README.md echo Agentes ejecutores especializados. Reportan que hicieron y que evidencia> "%P%\04_agents\workers\README.md" echo produjeron. Nunca se autocalifican como completado o verificado.>> "%P%\04_agents\workers\README.md" echo [OK] archivo creado: 04_agents\workers\README.md echo Agentes de control de calidad y auditoria. Intentan refutar el resultado> "%P%\04_agents\validators\README.md" echo del worker. Nunca certifican una tarea que ellos mismos ejecutaron.>> "%P%\04_agents\validators\README.md" echo [OK] archivo creado: 04_agents\validators\README.md :: 20-21. README de control por subcarpeta de 05_skills echo Funciones base: E/S de archivos, llamadas a APIs, conectores. Sin logica> "%P%\05_skills\core_tools\README.md" echo de negocio del dominio especifico del proyecto.>> "%P%\05_skills\core_tools\README.md" echo [OK] archivo creado: 05_skills\core_tools\README.md echo Habilidades especificas del dominio del proyecto.> "%P%\05_skills\custom_actions\README.md" echo [OK] archivo creado: 05_skills\custom_actions\README.md :: 22. README de control de 06_design\outputs echo Resultados procesados, listos para entrega al cliente o siguiente etapa.> "%P%\06_design\outputs\README.md" echo Todo archivo aqui debe poder trazarse a un registro de auditoria en> "%P%\06_design\outputs\README.md" echo 00_governance\audit_logs.>> "%P%\06_design\outputs\README.md" echo [OK] archivo creado: 06_design\outputs\README.md echo. echo ======================================================== echo [EXITO] Framework de gobernanza desplegado. echo Ruta: %P% echo. echo Antes de operar: leer 00_governance\policies.md completo y llenar echo 01_architecture, 02_specs\requirements.md con el detalle real del proyecto. echo safety_checks.py quedo como ESQUELETO SIN IMPLEMENTAR: implementarlo y echo conectarlo como gate real antes de confiar en el. echo. echo IMPORTANTE: esto es gobernanza por CONVENCION hasta que safety_checks.py echo este implementado y conectado. Ante cualquier cambio de alcance radical, echo ejecutar 00_governance\re_baseline_protocol.md antes de seguir. echo ======================================================== echo. start "" explorer "%P%" pause