# Release Signing > Nota interna del proyecto no-mistakes. Se usa al cambiar la firma de releases de macOS, la verificación de artefactos de release o el workflow de release, cuya identidad Developer ID es permanente. Fuente: https://skillsagentes.com/skills/kunchenguid/no-mistakes/release-signing Markdown: https://skillsagentes.com/skills/kunchenguid/no-mistakes/release-signing.md Repositorio: https://github.com/kunchenguid/no-mistakes Autor: kunchenguid Licencia: MIT Actualizado: hace 3 días Coste de contexto: 24 tok instalada, 465 tok al activarse, 465 tok con todos los archivos del bundle Bundle: 1 archivo, 2 KB Permisos que pide: ninguno declarado ## Instalación Un skill son archivos markdown: los mismos archivos valen para cualquier agente y lo único que cambia es el directorio de destino, es decir la bandera `--agent`. Añade `-g` para instalarlo en todos los proyectos de la máquina. ```bash # Claude Code npx -y skills add kunchenguid/no-mistakes --skill release-signing --agent claude-code # Cursor npx -y skills add kunchenguid/no-mistakes --skill release-signing --agent cursor # Codex npx -y skills add kunchenguid/no-mistakes --skill release-signing --agent codex # Gemini CLI npx -y skills add kunchenguid/no-mistakes --skill release-signing --agent gemini # Windsurf npx -y skills add kunchenguid/no-mistakes --skill release-signing --agent windsurf # Cline npx -y skills add kunchenguid/no-mistakes --skill release-signing --agent cline ``` ## Qué hace - Cada artefacto oficial de macOS (`darwin/arm64` y `darwin/amd64`) se firma con Developer ID Application en un runner de macOS, con hardened runtime y timestamp seguro, y se verifica estrictamente antes de archivar. - El identificador de ejecutable `com.kunchenguid.no-mistakes` y el Team ID `9T2J7MNUP9` son la identidad permanente de Developer ID y NUNCA deben cambiar: cambiar cualquiera resetea todos los permisos concedidos. - La firma corre solo en el job de build de darwin tras el entorno `release-signing` de GitHub; el certificado es el secreto base64 `CSC_LINK` desbloqueado con `CSC_KEY_PASSWORD` en un keychain efímero. - La firma ocurre antes de crear el tarball y el checksum, y la verificación falla cerrado ante cualquier firma ausente o ambigua, Team ID erróneo, identificador no permanente, o falta de hardened runtime o timestamp. - Los mecanismos viven en `.github/workflows/release.yml`; el contrato lo fijan los tests estáticos `TestReleaseWorkflow*`. Notarización, stapling, PKG y binarios universales quedan fuera de alcance por ahora. ## Cuándo usarla - Se cambia la firma de releases de macOS, la verificación de artefactos de release o el workflow de release. ## Qué la activa - "Voy a tocar la firma de releases de macOS en no-mistakes" - "Revisa el gate de verificación de firma del release" - "Cambia el workflow de release manteniendo la identidad permanente" ## Archivos - SKILL.md — 2 KB ## SKILL.md Reproducido tal cual desde kunchenguid/no-mistakes bajo MIT. Esta sección es el documento original y está en inglés. **macOS Release Signing (permanent identity)** - Every official macOS release artifact - both `darwin/arm64` and `darwin/amd64` - is Developer ID Application signed on a macOS runner with a fixed identifier, hardened runtime, secure timestamp, and no entitlements, then strictly verified before it is archived or checksummed; the Linux and Windows release paths are unchanged. - The executable identifier `com.kunchenguid.no-mistakes` and Team ID `9T2J7MNUP9` are the permanent Developer ID identity and MUST NEVER change: they are the invariant of the identity-based designated requirement that lets macOS permission grants survive `no-mistakes update`, so changing either resets every grant once. - Signing runs only in the darwin build job gated behind the `release-signing` GitHub environment; the certificate is the base64 `CSC_LINK` secret unlocked with `CSC_KEY_PASSWORD`, imported into an ephemeral keychain with a runtime-generated password that is deleted on success and failure, and no other job may reference those secrets. - Signing happens before tarball creation and checksum generation, and the verify gate fails the release closed on any missing or ambiguous signature, wrong Team ID, non-permanent identifier, content-based (`cdhash`) requirement, missing hardened runtime or timestamp, or wrong architecture. - Mechanics live in `.github/workflows/release.yml`; the contract is pinned by the root `TestReleaseWorkflow*` static tests in `workflow_release_signing_test.go`, and secret values are never recorded here or in any test fixture. - Notarization, stapling, a PKG, Homebrew, and universal binaries are intentionally out of scope for this phase. ## Dónde encaja - Categoría: [Seguridad](https://skillsagentes.com/categorias/seguridad.md) — Auditorías, revisión de dependencias, manejo de secretos y modelado de amenazas. - Creador: [kunchenguid](https://skillsagentes.com/creators/kunchenguid.md) — 16 skills en el directorio - [Todas las skills](https://skillsagentes.com/skills.md) - [Ranking de instalaciones](https://skillsagentes.com/ranking.md) ## Otras skills del mismo repositorio - [No Mistakes](https://skillsagentes.com/skills/kunchenguid/no-mistakes/no-mistakes.md): Valida tus cambios de código por el pipeline de no-mistakes (review de código automatizado, tests, lint, docs, push, PR y CI) antes de que lleguen al destino de push configurado. Se activa con `/no-mistakes`. - [Testing Conventions](https://skillsagentes.com/skills/kunchenguid/no-mistakes/testing-conventions.md): Nota interna del proyecto no-mistakes. Se usa al añadir o cambiar tests, el harness e2e, el aislamiento de procesos de test o el sharding de tests en CI. - [Pr Publication Safety](https://skillsagentes.com/skills/kunchenguid/no-mistakes/pr-publication-safety.md): Nota interna de seguridad del proyecto no-mistakes. Se usa al cambiar el render del cuerpo del PR, la redacción de rutas de home, la publicación de rutas de artefacto o los marcadores de attestation de pipeline. - [Ci Monitor](https://skillsagentes.com/skills/kunchenguid/no-mistakes/ci-monitor.md): Nota interna del proyecto no-mistakes. Se usa al cambiar la readiness de CI, la recogida de checks del forge, los reruns, los timeouts de CI o la monitorización del ciclo de vida del PR. - [Pipeline Review And Agents](https://skillsagentes.com/skills/kunchenguid/no-mistakes/pipeline-review-and-agents.md): Nota interna del proyecto no-mistakes. Se usa al cambiar las sesiones de review, las decisiones sobre findings, los timeouts de agente, el comportamiento del Test local o la conformidad con la intención. ## Skills relacionadas - [Cso](https://skillsagentes.com/skills/garrytan/gstack/cso.md): Modo Chief Security Officer: auditoría de seguridad centrada en infraestructura, con OWASP Top 10, modelado de amenazas STRIDE y verificación activa. - [Security And Hardening](https://skillsagentes.com/skills/addyosmani/agent-skills/security-and-hardening.md): Endurece el código contra vulnerabilidades. Úsalo al manejar entrada de usuario, autenticación, almacenamiento de datos, integraciones externas o datos personales (GDPR, CCPA). - [Owasp Top 10 Testing](https://skillsagentes.com/skills/usestrix/strix/owasp-top-10-testing.md): Prueba una aplicación contra el OWASP Top 10:2025 con Strix: agentes de IA que intentan exploits reales y reportan solo lo probado, con PoC. - [Find Security Vulnerabilities In Code](https://skillsagentes.com/skills/usestrix/strix/find-security-vulnerabilities-in-code.md): Revisión de seguridad de caja blanca con IA: lee el código fuente, razona sobre el flujo de datos y la autorización, y explota lo que encuentra con PoC. - [Api Security Testing](https://skillsagentes.com/skills/usestrix/strix/api-security-testing.md): Pon a prueba una API REST, GraphQL o gRPC con Strix: agentes autónomos enumeran endpoints y explotan el OWASP API Security Top 10 (2023) con una PoC funcional por cada hallazgo. --- Skills Agentes · [Índice de páginas en markdown](https://skillsagentes.com/sitemap.md) · [Inicio](https://skillsagentes.com/index.md)