Skill Open Sourcer
Convierte una habilidad local en un paquete de lanzamiento público limpio. La entrada normal es solo una ruta a un archivo SKILL.md o un directorio de habilidad.
Postura por defecto: avanzar rápido, pero detenerse ante riesgos de publicación. Si el escáner de seguridad encuentra secretos, rutas privadas, datos de clientes, material propietario no publicado o propiedad ambigua, reporta los bloqueos y no publica hasta que el usuario los resuelva.
Inicio rápido
- Resuelve la entrada a un directorio de habilidad real. Acepta un archivo
SKILL.md, una carpeta que contengaSKILL.md, o un enlace simbólico bajo.codex/skills,.agents/skills,.claude/skillsu otra raíz local de habilidades. - Ejecuta la verificación del entorno antes de empaquetar o publicar:
SKILL_OPEN_SOURCER_DIR="${CODEX_HOME:-$HOME/.codex}/skills/skill-open-sourcer"
python3 "$SKILL_OPEN_SOURCER_DIR/scripts/check_release_env.py"
Los comandos locales requeridos son python3, git, node y npx. gh es la superficie de publicación predeterminada en GitHub, pero GitHub MCP/app o un remoto autenticado existente pueden reemplazarlo. Si no hay ninguna superficie de publicación en GitHub disponible, construye y valida el repositorio localmente, luego detente con la configuración faltante.
- Lee el punto de entrada de la habilidad e inspecciona directamente los archivos referenciados en
scripts/,references/,assets/yagents/. No copies carpetas locales no relacionadas. - Ejecuta el escáner de seguridad:
SKILL_OPEN_SOURCER_DIR="${CODEX_HOME:-$HOME/.codex}/skills/skill-open-sourcer"
python3 "$SKILL_OPEN_SOURCER_DIR/scripts/scan_skill_release.py" /ruta/a/la-habilidad-o-SKILL.md
- Si el entorno y los escáneres de seguridad están limpios, crea un repositorio de lanzamiento nuevo fuera del directorio de la habilidad fuente.
- Para un repositorio de una sola habilidad, copia
SKILL.md,agents/,references/,scripts/yassets/directamente a la raíz del repositorio. Usaskills/<nombre-de-la-habilidad>/másskills.sh.jsonsolo para repositorios de colección de múltiples habilidades. - Añade los archivos de lanzamiento público descritos en
references/release-package.md, incluyendo la puerta de calidad del README y las recomendaciones de metadatos de GitHub. - Valida la habilidad empaquetada y el listado de
npx skillsantes de publicar. - Publica en GitHub cuando las comprobaciones de bajo riesgo pasen, luego genera el texto de lanzamiento.
Lee references/release-package.md antes de escribir el repositorio de lanzamiento.
Contrato de salida
Para un lanzamiento exitoso, devuelve:
- URL del repositorio de GitHub.
- Comando de instalación usando
npx skills. - Resultados de verificación para la validación de la habilidad y
npx skills add <propietario>/<repo> --list. - Resumen breve de riesgos: qué se escaneó, qué se eliminó o saneó, y cualquier suposición residual.
- Descripción de GitHub y recomendaciones de temas al crear un nuevo repositorio público.
- Texto de lanzamiento: al menos una publicación en X/Twitter, más una versión opcional en chino cuando el usuario trabaja en chino.
Si está bloqueado, devuelve:
- Lista de bloqueos con rutas de archivo y motivos.
- Pasos de saneamiento sugeridos.
- La siguiente acción más segura, usualmente "limpia estos archivos y luego vuelve a ejecutar el lanzamiento".
Reglas de seguridad
Detención total cuando alguno de estos aparece en el paquete fuente:
- Claves API, tokens, claves privadas, cookies, credenciales, archivos
.envo configuración de autenticación. - Rutas personales absolutas como
/Users/...,/home/..., rutas de bóveda local o rutas de caché solo de máquina que confundirían a usuarios públicos. - Nombres de clientes, datos privados de la empresa, documentos internos, URL privadas, prompts no publicados o activos de pago/propietarios sin una licencia clara.
- Enlaces simbólicos que escapan del paquete, binarios grandes, bases de datos, registros, perfiles de navegador,
.DS_Store,__pycache__o archivos de caché generados. - Licencia o propiedad poco clara para código/activos incluidos.
La publicación automática de bajo riesgo solo está permitida cuando el escáner y la revisión manual no encuentran bloqueos. Si el repositorio de GitHub objetivo ya existe con contenido no relacionado, detente y pregunta antes de sobrescribir o hacer force push.
Reglas de empaquetado
- Mantén el comportamiento original de la habilidad intacto. Refactoriza solo lo suficiente para eliminar suposiciones privadas y hacer que la instalación pública sea confiable.
- Por defecto, usa un diseño de raíz plana para una habilidad pública. Usa un diseño anidado
skills/<nombre-de-la-habilidad>/solo cuando un repositorio publique múltiples habilidades. - Prefiere un
SKILL.mdligero; mueve la guía pública detallada areferences/solo cuando un agente la necesite realmente. - No añadas un README dentro de la carpeta de la habilidad. Coloca la documentación orientada a humanos en la raíz del repositorio de lanzamiento.
- Conserva
agents/openai.yamlcuando esté presente. Si está ausente, créalo condisplay_name,short_descriptiony undefault_promptque mencione explícitamente$<nombre-de-la-habilidad>. - Incluye
scripts/solo para lógica auxiliar determinista que la habilidad realmente usa. - Incluye
assets/solo cuando la licencia y el tamaño sean seguros para publicación pública. - Usa MIT como licencia predeterminada solo cuando la habilidad fuente no tenga una licencia conflictiva y la propiedad esté clara.
Flujo de publicación
- Ejecuta
scripts/check_release_env.py. Añade--repo-dir <repositorio-de-lanzamiento>al actualizar un repositorio local existente. Añade--check-npx-skillscuando el acceso a paquetes/red sea incierto. - Si faltan comandos requeridos, detente y reporta los bloqueos exactos. Si solo falta
gh, continúa solo cuando GitHub MCP/app esté disponible o el repositorio de lanzamiento ya tenga un remotooriginautenticado. - Construye el repositorio de lanzamiento localmente.
- Valida con el validador de habilidades del sistema cuando esté disponible:
python3 "${CODEX_HOME:-$HOME/.codex}/skills/.system/skill-creator/scripts/quick_validate.py" .
- Crea o actualiza el repositorio de GitHub usando la superficie de GitHub disponible (
gh, GitHub MCP/app o remoto existente). Evita force push. - Sube la rama o
main. - Verifica el listado:
npx skills add <propietario>/<repo> --list
- Si el listado funciona, proporciona el comando de instalación:
npx skills add <propietario>/<repo> -g -a codex --skill <nombre-de-la-habilidad> -y
Ajusta la bandera del agente y la redacción de instalación cuando la plataforma objetivo no sea Codex.
Texto de lanzamiento
Después de un lanzamiento exitoso, redacta un texto social conciso que explique:
- El problema que resuelve la habilidad.
- Qué le da un usuario.
- Qué publica o automatiza.
- El comando de instalación o enlace al repositorio.
- Un ejemplo concreto de solicitud.
Para usuarios chinos, incluye una publicación de lanzamiento natural en chino. Mantenla orientada a humanos; no expliques scripts en exceso.