Puertas de Lanzamiento de GitHub
Gobernanza de lanzamientos respaldada por evidencia para software generado con IA
Enterprise Skills clasifica el riesgo de cada cambio, exige la evidencia adecuada y publica una decisión de lanzamiento explicable y vinculada al commit como verificación obligatoria, y luego demuestra exactamente por qué cada commit llegó a producción. La configuración son cuatro pasos obligatorios, unos diez minutos, más un paso opcional para evidencia producida por agentes.
- 1
Instala la GitHub App
Instala Enterprise Skills Release Governor en los repositorios que quieras gobernar. Los permisos son mínimos: checks (escritura), pull requests, contenidos y metadatos (lectura).
- 2
Añade tu clave de licencia como secreto del repositorio
En tu repositorio: Settings → Secrets and variables → Actions → New repository secret. Llámalo
ES_LICENSE_KEYcon la clave de licencia de tu correo de compra. La clave nunca aparece en los archivos de workflow. Los límites de repositorios activos siguen tu plan (Pro 3 · Team 10 · Enterprise según contrato). - 3
Añade el workflow del Release Governor
Crea
.github/workflows/release-governor.yml:name: Release Governor on: pull_request: branches: [main] jobs: govern: runs-on: ubuntu-latest permissions: contents: read id-token: write # optional: lets the decision carry a CI attestation steps: - uses: actions/checkout@v4 with: fetch-depth: 0 # govern classifies base...HEAD and needs the PR head object - uses: mawebb001/release-governor-action@v1 with: license-key: ${{ secrets.ES_LICENSE_KEY }} anthropic-api-key: ${{ secrets.ANTHROPIC_API_KEY }} # optional — funds the evidence phaseEl Governor lee evidencia vinculada al commit desde
.project-ai/skill-outputs/: producida por tu agente revisor para cada cambio. Cada archivo declara el commit contra el que se produjo con un campo commit: <sha> de nivel superior; ejecuta enterprise-skills evidence bind despues de confirmar el cambio para sellarlo. La evidencia faltante de un dominio requerido falla cerrada, y tambien la evidencia sin vinculacion o de un commit anterior. - 4
Opcional: produce evidencia semántica automáticamente
Cuando un cambio requiere evidencia que ninguna herramienta de CI produce mecánicamente: compatibilidad de API, seguridad de migraciones, preparación de observabilidad/rollback. La Action puede producirla en CI en lugar de depender de que un revisor la suba. Añade tu clave de API de Anthropic como un segundo secreto del repositorio llamado ANTHROPIC_API_KEY; la línea anthropic-api-key del workflow de arriba se la pasa a la Action, y financia la fase de evidencia headless de la Action.
La misma clasificación de riesgo que usa el Governor selecciona qué agentes se ejecutan: un cambio de docs no ejecuta ninguno, una migración ejecuta migration-safety, y cada agente debe escribir evidencia con esquema válido sin tocar nada más, o el paso falla cerrado. La Action ejecuta los agentes con Claude Code. Sin
anthropic-api-key, la fase de evidencia se omite con un aviso visible y el Governor decide solo sobre la evidencia confirmada. La salida del agente es evidencia, nunca política: el Governor determinista sigue tomando la única decisión. - 5
Haz la verificación obligatoria
Settings del repo → Rules → Rulesets → New branch ruleset: apunta a tu rama por defecto y exige el status check
enterprise-skills/release-governor. Desde ese momento, los merges se bloquean hasta que exista una decisión fresca y aprobatoria para el commit exacto.
Qué obtienes en cada PR
- Clasificación determinista de riesgo del diff real (migración de base de datos, auth, contrato de API, infraestructura, dependencias, UI) que selecciona solo los dominios de evidencia requeridos: nunca todas las verificaciones en todos los cambios.
- Un PASS/FAIL explicable vinculado al commit exacto, con los estados de evidencia por dominio y la versión de la política que lo decidió.
- Un registro contrafirmado con Ed25519 y de solo anexado: consúltalo en tus Release Records y verifícalo sin conexión con la clave pública publicada.
¿Necesitas una licencia? Ver planes. ¿Preguntas? Centro de ayuda.
Arquitectura de confianza
Por qué puedes confiar en el registro
La evidencia está vinculada, atestada, contrafirmada y encadenada: para que un auditor pueda verificar qué se lanzó sin confiar en nosotros, ni en ti, al momento de leer.
- 01
Se produce la evidencia
Tu CI y tus agentes emiten evidencia (salidas de skills, resultados de pruebas) vinculada al commit y árbol exactos. La evidencia de un commit anterior se rechaza como obsoleta, nunca se reutiliza en silencio.
vinculada al commit · obsoleta = rechazada
- 02
El productor queda atestado
Las decisiones publicadas desde GitHub Actions llevan un token OIDC que el servidor verifica contra el repositorio: prueba de qué workflow las produjo, sin secretos de larga vida que robar.
GitHub OIDC · vinculado al repositorio
- 03
El servidor contrafirma
Cada decisión y evento de despliegue aceptado se contrafirma con la clave Ed25519 del servidor. Un actor local puede reescribir sus propios archivos; no puede reescribir el historial de firmas del servidor.
Ed25519 · clave 9a05918b3742d1b3
- 04
Las entradas se encadenan en un libro mayor
Las contrafirmas aterrizan en un log de transparencia de solo anexado por inquilino, cuyo hash raíz acumulado se incluye en cada entrada posterior: el borrado y el reordenado son detectables, no negables.
solo anexado · raíces encadenadas
- 05
Un Release Record canónico
Por pull request y commit: la clasificación de riesgo, cada pieza de evidencia con su estado, la decisión y su explicación, las excepciones y la línea de tiempo de despliegue a promoción.
- 06
Cualquiera puede verificar sin conexión
Las exportaciones firmadas se verifican con la clave pública publicada: un auditor comprueba qué se lanzó y por qué sin cuenta, sin llamada a la API y sin confiar en que este sitio sea honesto hoy.
/api/evidence/public-key
Esta es la misma cadena que protege los registros en vivo contados en la página principal: la clave de firma mostrada es la clave de producción sirviendo ahora mismo.