| name | revisor-licencias-oss |
| description | Clasifica licencias de software de código abierto y detecta incompatibilidades con el modelo de distribución |
| argument-hint | <listado-de-dependencias-o-SBOM> |
Propósito
Esta skill analiza las licencias de software de código abierto (OSS) utilizadas en un proyecto y las clasifica según su nivel de copyleft. Detecta incompatibilidades con el modelo de distribución o explotación de la empresa y señala riesgos de cumplimiento.
Instrucciones
Paso 1 — Obtener inventario de dependencias
- Leer el listado de dependencias proporcionado (package.json, pom.xml, requirements.txt, SBOM, o listado manual).
- Identificar la licencia de cada componente.
- Si la licencia no está clara, marcarlo como "licencia desconocida" — riesgo por defecto ALTO.
Paso 2 — Clasificar licencias
| Categoría | Licencias | Riesgo de copyleft |
|---|
| Permisiva | MIT, BSD-2, BSD-3, Apache 2.0, ISC, Unlicense | Bajo — permite uso comercial y propietario |
| Copyleft débil | LGPL-2.1, LGPL-3.0, MPL-2.0, EPL-2.0 | Medio — copyleft limitado al componente |
| Copyleft fuerte | GPL-2.0, GPL-3.0, AGPL-3.0 | Alto — extiende copyleft a obra derivada |
| No libre / Propietaria | Licencias comerciales, SSPL, BUSL | Requiere análisis individual |
Paso 3 — Evaluar contra modelo de distribución
Modelos de distribución de la empresa:
- SaaS / cloud: AGPL es el riesgo principal (extiende copyleft a uso en red).
- Distribución binaria: GPL obliga a ofrecer código fuente.
- Biblioteca/SDK: LGPL permite linkado dinámico; GPL no.
- Uso interno: la mayoría de licencias OSS no imponen obligaciones sin distribución.
Paso 4 — Detectar incompatibilidades
- GPL-2.0 y Apache-2.0 son incompatibles (cláusula de patentes).
- GPL-2.0-only y GPL-3.0-only son incompatibles entre sí.
- Licencias con cláusula de atribución: verificar que se cumple.
- Licencias con restricción de uso (BUSL, Commons Clause): no son OSS.
Formato de salida
## Revisión de licencias OSS
**Proyecto:** [nombre]
**Modelo de distribución:** [SaaS/binaria/biblioteca/interno]
**Fecha del análisis:** [fecha]
**Dependencias analizadas:** [número]
### Resumen
| Categoría | Número | Porcentaje |
|-----------|--------|------------|
| Permisiva | [n] | [%] |
| Copyleft débil | [n] | [%] |
| Copyleft fuerte | [n] | [%] |
| Desconocida | [n] | [%] |
### Incompatibilidades detectadas
| Componente | Licencia | Problema | Severidad | Acción recomendada |
|------------|----------|----------|-----------|-------------------|
| [nombre] | [licencia] | [descripción] | [ALTA/MEDIA/BAJA] | [acción] |
### Inventario completo
| Componente | Versión | Licencia | Categoría | Compatible | Notas |
|------------|---------|----------|-----------|------------|-------|
| [nombre] | [ver] | [licencia] | [cat] | [SÍ/NO/?] | [nota] |
### Obligaciones de cumplimiento
[Lista de acciones necesarias: atribución, oferta de código fuente, etc.]
Referencias normativas
- Ley 64 de 2012 (derecho de autor): protección de los programas de ordenador como obras (no por patente; duración patrimonial de 70 años desde la primera publicación).
- Ley 64 de 2012: cesión de derechos patrimoniales de explotación de software — por escrito y limitada a las modalidades expresamente cedidas.
- Ley 64 de 2012: límites y excepciones a los derechos — copia de seguridad e interoperabilidad [verificar].
- Convenio de Berna (derecho de autor): referencia internacional aplicable en Panamá.
- Referencia comparada (no vinculante en Panamá): Directiva (UE) 2009/24/CE sobre protección jurídica de programas de ordenador.
Guardrails
- NO proporciona asesoramiento jurídico vinculante sobre cumplimiento de licencias.
- NO modifica el código fuente ni elimina dependencias.
- NO contacta con titulares de derechos para solicitar licencias.
- NO determina con certeza si un uso concreto constituye "obra derivada" — eso requiere análisis jurídico especializado.
- ESCALAR si se detectan componentes AGPL en proyecto SaaS sin política de cumplimiento.
- ESCALAR si hay dependencias con licencia desconocida en componentes críticos.
- AVISAR si el modelo de distribución no está claro y afecta al análisis.