Habilidad de Pipeline de Código Abierto
Abra cualquier proyecto de forma segura mediante un pipeline de 3 etapas: Bifurcar (eliminar secretos) → Sanitizar (verificar limpieza) → Empaquetar (CLAUDE.md + setup.sh + README).
Cuándo Activar
- El usuario dice "abrir este proyecto como código abierto" o "hacerlo público"
- El usuario desea preparar un repositorio privado para publicación pública
- El usuario necesita eliminar secretos antes de enviar a GitHub
- El usuario invoca
/opensource fork,/opensource verifyo/opensource package
Comandos
| Comando | Acción |
|---|---|
/opensource fork PROYECTO | Pipeline completo: bifurcar + sanitizar + empaquetar |
/opensource verify PROYECTO | Ejecutar sanitizador en el repositorio existente |
/opensource package PROYECTO | Generar CLAUDE.md + setup.sh + README |
/opensource list | Mostrar todos los proyectos en preparación |
/opensource status PROYECTO | Mostrar informes de un proyecto en preparación |
Protocolo
/opensource fork PROYECTO
Pipeline completo — el flujo de trabajo principal.
Paso 1: Recopilar Parámetros
Resuelva la ruta del proyecto. Si PROYECTO contiene /, trátelo como una ruta (absoluta o relativa). De lo contrario, verifique: directorio de trabajo actual, $HOME/PROYECTO, luego pregunte al usuario.
SOURCE_PATH="<ruta absoluta resuelta>"
STAGING_PATH="$HOME/opensource-staging/${PROJECT_NAME}"
Pregunte al usuario:
- "¿Qué proyecto?" (si no se encuentra)
- "¿Licencia? (MIT / Apache-2.0 / GPL-3.0 / BSD-3-Clause)"
- "¿Organización o nombre de usuario de GitHub?" (por defecto: detectar mediante
gh api user -q .login) - "¿Nombre del repositorio en GitHub?" (por defecto: nombre del proyecto)
- "¿Descripción para el README?" (analizar el proyecto para sugerir)
Paso 2: Crear Directorio de Preparación
mkdir -p $HOME/opensource-staging/
Paso 3: Ejecutar Agente Bifurcador
Inicie el agente opensource-forker:
Agent(
description="Bifurcar {PROYECTO} para código abierto",
subagent_type="opensource-forker",
prompt="""
Bifurcar proyecto para publicación de código abierto.
Origen: {SOURCE_PATH}
Destino: {STAGING_PATH}
Licencia: {chosen_license}
Siga el protocolo completo de bifurcación:
1. Copiar archivos (excluir .git, node_modules, __pycache__, .venv)
2. Eliminar todos los secretos y credenciales
3. Reemplazar referencias internas con marcadores de posición
4. Generar .env.example
5. Limpiar historial de git
6. Generar FORK_REPORT.md en {STAGING_PATH}/FORK_REPORT.md
"""
)
Espere a que termine. Lea {STAGING_PATH}/FORK_REPORT.md.
Paso 4: Ejecutar Agente Sanitizador
Inicie el agente opensource-sanitizer:
Agent(
description="Verificar sanitización de {PROYECTO}",
subagent_type="opensource-sanitizer",
prompt="""
Verificar sanitización de la bifurcación de código abierto.
Proyecto: {STAGING_PATH}
Origen (para referencia): {SOURCE_PATH}
Ejecutar TODAS las categorías de escaneo:
1. Escaneo de secretos (CRÍTICO)
2. Escaneo de PII (CRÍTICO)
3. Escaneo de referencias internas (CRÍTICO)
4. Verificación de archivos peligrosos (CRÍTICO)
5. Integridad de configuración (ADVERTENCIA)
6. Auditoría de historial de git
Generar SANITIZATION_REPORT.md dentro de {STAGING_PATH}/ con veredicto APROBADO/RECHAZADO.
"""
)
Espere a que termine. Lea {STAGING_PATH}/SANITIZATION_REPORT.md.
Si RECHAZADO: Muestre los hallazgos al usuario. Pregunte: "¿Corregir estos problemas y volver a escanear, o cancelar?"
- Si corregir: Aplique correcciones, vuelva a ejecutar el sanitizador (máximo 3 intentos — después de 3 RECHAZOS, presente todos los hallazgos y pida al usuario que corrija manualmente)
- Si cancelar: Limpie el directorio de preparación
Si APROBADO o APROBADO CON ADVERTENCIAS: Continúe al Paso 5.
Paso 5: Ejecutar Agente Empaquetador
Inicie el agente opensource-packager:
Agent(
description="Empaquetar {PROYECTO} para código abierto",
subagent_type="opensource-packager",
prompt="""
Generar empaquetado de código abierto para el proyecto.
Proyecto: {STAGING_PATH}
Licencia: {chosen_license}
Nombre del proyecto: {PROJECT_NAME}
Descripción: {description}
Repositorio GitHub: {github_repo}
Generar:
1. CLAUDE.md (comandos, arquitectura, archivos clave)
2. setup.sh (bootstrap con un comando, hacer ejecutable)
3. README.md (o mejorar el existente)
4. LICENSE
5. CONTRIBUTING.md
6. .github/ISSUE_TEMPLATE/ (bug_report.md, feature_request.md)
"""
)
Paso 6: Revisión Final
Presente al usuario:
Bifurcación de Código Abierto Lista: {PROJECT_NAME}
Ubicación: {STAGING_PATH}
Licencia: {license}
Archivos generados:
- CLAUDE.md
- setup.sh (ejecutable)
- README.md
- LICENSE
- CONTRIBUTING.md
- .env.example ({N} variables)
Sanitización: {sanitization_verdict}
Próximos pasos:
1. Revisar: cd {STAGING_PATH}
2. Crear repositorio: gh repo create {github_org}/{github_repo} --public
3. Enviar: git remote add origin ... && git push -u origin main
¿Proceder con la creación en GitHub? (sí/no/revisar primero)
Paso 7: Publicar en GitHub (con aprobación del usuario)
cd "{STAGING_PATH}"
gh repo create "{github_org}/{github_repo}" --public --source=. --push --description "{description}"
/opensource verify PROYECTO
Ejecutar sanitizador de forma independiente. Resolver ruta: si PROYECTO contiene /, trátelo como una ruta. De lo contrario, verifique $HOME/opensource-staging/PROYECTO, luego $HOME/PROYECTO, luego el directorio actual.
Agent(
subagent_type="opensource-sanitizer",
prompt="Verificar sanitización de: {resolved_path}. Ejecutar las 6 categorías de escaneo y generar SANITIZATION_REPORT.md."
)
/opensource package PROYECTO
Ejecutar empaquetador de forma independiente. Pregunte "¿Licencia?" y "¿Descripción?", luego:
Agent(
subagent_type="opensource-packager",
prompt="Empaquetar: {resolved_path} ..."
)
/opensource list
ls -d $HOME/opensource-staging/*/
Muestre cada proyecto con su progreso en el pipeline (presencia de FORK_REPORT.md, SANITIZATION_REPORT.md, CLAUDE.md).
/opensource status PROYECTO
cat $HOME/opensource-staging/${PROYECTO}/SANITIZATION_REPORT.md
cat $HOME/opensource-staging/${PROYECTO}/FORK_REPORT.md
Estructura de Preparación
$HOME/opensource-staging/
mi-proyecto/
FORK_REPORT.md # Del agente bifurcador
SANITIZATION_REPORT.md # Del agente sanitizador
CLAUDE.md # Del agente empaquetador
setup.sh # Del agente empaquetador
README.md # Del agente empaquetador
.env.example # Del agente bifurcador
... # Archivos del proyecto sanitizados
Anti-patrones
- Nunca enviar a GitHub sin la aprobación del usuario
- Nunca saltarse el sanitizador — es la puerta de seguridad
- Nunca continuar después de un RECHAZO del sanitizador sin corregir todos los hallazgos críticos
- Nunca dejar
.env,*.pemocredentials.jsonen el directorio de preparación
Buenas Prácticas
- Ejecute siempre el pipeline completo (bifurcar → sanitizar → empaquetar) para nuevas versiones
- El directorio de preparación persiste hasta que se limpie explícitamente — úselo para revisión
- Vuelva a ejecutar el sanitizador después de cualquier corrección manual antes de publicar
- Parametrice los secretos en lugar de eliminarlos — preserve la funcionalidad del proyecto
Habilidades Relacionadas
Consulte security-review para ver los patrones de detección de secretos utilizados por el sanitizador.