Instalación

pip install licit-ai-cli

O desde el código fuente:

git clone https://github.com/Diego303/licit-cli.git
cd licit-cli
pip install -e ".[dev]"

Invocación

# Como comando instalado
licit [opciones] <comando> [argumentos]

# Como módulo Python
python -m licit [opciones] <comando> [argumentos]

Opciones globales

OpciónDescripción
--versionMuestra la versión de licit
--config PATHRuta a un archivo .licit.yaml específico
-v, --verboseActiva logging detallado (nivel DEBUG)
--helpMuestra la ayuda
licit --version
# licit, version 0.3.0

licit --verbose status
# Muestra logs de debug durante la ejecución

Comandos

licit init

Inicializa licit en el proyecto actual. Detecta automáticamente las características del proyecto y genera la configuración.

licit init [--framework {eu-ai-act|owasp|all}]

Opciones:

OpciónDefaultDescripción
--frameworkallMarco regulatorio a habilitar

Qué hace:

  1. Ejecuta ProjectDetector para detectar lenguajes, frameworks, CI/CD, agentes IA, etc.
  2. Genera .licit.yaml con configuración adaptada al proyecto.
  3. Crea el directorio .licit/ para datos internos.
  4. Si detecta architect o vigil, habilita sus conectores automáticamente.

Ejemplo:

$ cd mi-proyecto-fastapi/
$ licit init

Initialized licit in mi-proyecto-fastapi
  Languages: python
  Frameworks: fastapi
  Agent configs: CLAUDE.md
  CI/CD: github-actions
  Config saved to .licit.yaml

Ejemplo con framework específico:

$ licit init --framework eu-ai-act
# Solo habilita EU AI Act, desactiva OWASP

licit status

Muestra el estado actual de licit y las fuentes de datos conectadas.

licit status

Qué muestra:

Ejemplo:

$ licit status

Project: mi-proyecto-fastapi
  Root: /home/user/mi-proyecto-fastapi
  Languages: python
  Frameworks: fastapi
  Git: 142 commits, 3 contributors

Config: .licit.yaml (loaded)

Frameworks:
  EU AI Act: enabled
  OWASP Agentic: enabled

Data sources:
  Provenance: not collected
  FRIA: not found
  Annex IV: not found
  Changelog: not found

Connectors:
  architect: disabled
  vigil: disabled

Agent configs:
  CLAUDE.md (claude-code)
  .cursorrules (cursor)

licit connect

Configura conectores opcionales para integrar fuentes de datos externas.

licit connect {architect|vigil} [--enable|--disable]

Argumentos:

ArgumentoDescripción
architectConector para Architect (reports y audit logs)
vigilConector para Vigil (hallazgos SARIF de seguridad)

Opciones:

OpciónDefaultDescripción
--enable(por defecto)Habilita el conector
--disableDeshabilita el conector

Ejemplo:

$ licit connect architect
# Habilita el conector de architect

$ licit connect vigil --enable
# Habilita el conector de vigil

$ licit connect architect --disable
# Deshabilita el conector de architect

licit trace

Rastrea la proveniencia del código — identifica qué fue escrito por IA y qué por humanos.

Estado: Funcional (Fase 2 completada).

licit trace [--since DATE|TAG] [--report] [--stats]

Opciones:

OpciónDescripción
--sinceAnaliza commits desde una fecha (YYYY-MM-DD) o tag de git
--reportGenera archivo de reporte de proveniencia en .licit/reports/provenance.md
--statsMuestra estadísticas en terminal

Qué hace:

  1. Ejecuta GitAnalyzer para analizar commits con 6 heurísticas (autor, mensaje, volumen, co-autores, patrones de archivos, hora).
  2. Opcionalmente lee logs de sesión de agentes (Claude Code).
  3. Clasifica cada archivo como ai (score >= 0.7), mixed (>= 0.5) o human (< 0.5).
  4. Almacena resultados en .licit/provenance.jsonl (append-only).
  5. Si sign: true, firma cada registro con HMAC-SHA256.

Ejemplo:

$ licit trace --since 2026-01-01 --stats

  Analyzing git history...
  Records: 45 files analyzed
  AI-generated: 18 (40.0%)
  Human-written: 22 (48.9%)
  Mixed: 5 (11.1%)

  AI tools detected: claude-code (15), cursor (3)
  Models detected: claude-sonnet-4 (12), claude-opus-4 (3), gpt-4o (3)

  Stored in .licit/provenance.jsonl

Ejemplo con reporte:

$ licit trace --report
# Genera .licit/reports/provenance.md con tabla detallada por archivo

Heurísticas utilizadas:

#HeurísticaPesoQué detecta
H1Author pattern3.0Nombres de autor AI (claude, copilot, cursor, bot, etc.)
H2Message pattern1.5Patrones de commit (conventional commits, “implement”, [ai])
H3Bulk changes2.0Cambios masivos (>20 archivos + >500 líneas)
H4Co-author3.0Co-authored-by: con keywords AI
H5File patterns1.0Todos los archivos son test files
H6Time pattern0.5Commits entre 1am-5am

Solo las heurísticas que producen señal (score > 0) contribuyen al promedio ponderado.


licit changelog

Genera un changelog de cambios en configuraciones de agentes IA con diffing semántico y clasificación de severidad.

Estado: Funcional (Fase 3 completada).

licit changelog [--since DATE|TAG] [--format {markdown|json}]

Opciones:

OpciónDefaultDescripción
--since(todos)Cambios desde fecha o tag
--formatmarkdownFormato de salida: markdown o json

Qué hace:

  1. Ejecuta ConfigWatcher para recuperar el historial git de los archivos monitoreados.
  2. Aplica diff_configs() (differ semántico) entre versiones consecutivas de cada archivo.
  3. Clasifica cada cambio con ChangeClassifier (MAJOR/MINOR/PATCH).
  4. Renderiza el changelog con ChangelogRenderer (Markdown o JSON).
  5. Muestra el output en terminal y lo guarda en output_path.

Archivos monitoreados (por defecto):

Ejemplo:

$ licit changelog

# Agent Config Changelog

> 3 change(s) detected across 2 file(s): **1** major, **1** minor, **1** patch

## .architect/config.yaml

- **[MAJOR]** Changed: model from claude-sonnet-4 to claude-opus-4 (`a1b2c3d4`) — 2026-03-12
- **[PATCH]** Changed: budget.max_cost_usd from 5.0 to 10.0 (`a1b2c3d4`) — 2026-03-12

## CLAUDE.md

- **[MINOR]** Changed: section:Rules from 5 lines to 8 lines (+3/-0) (`e5f6g7h8`) — 2026-03-11

  Changelog saved to .licit/changelog.md

Ejemplo JSON:

$ licit changelog --format json --since 2026-03-01
# Genera JSON con array "changes" y guarda en .licit/changelog.md

Clasificación de severidad:

SeveridadTriggerEjemplos
MAJORCambio de modelo/provider, o eliminación de campo MINORmodel: gpt-4gpt-5, borrar guardrails
MINORCambio de prompt, guardrails, tools, reglas, secciones MarkdownEditar system_prompt, añadir blocked_commands
PATCHTodo lo demásAjuste de parámetros, formatting

Formatos de diff soportados:

FormatoExtensionesEstrategia
YAML.yaml, .ymlDiff recursivo de key-value
JSON.jsonDiff recursivo de key-value
Markdown.mdDiff por secciones (headings)
Texto planoOtrosDiff de contenido completo

Para documentación detallada del sistema de changelog, ver Changelog.


licit fria

Completa la Evaluación de Impacto en Derechos Fundamentales (EU AI Act Artículo 27).

Estado: Registrado en CLI. Funcional a partir de Fase 4.

licit fria [--update]

Opciones:

OpciónDescripción
--updateActualiza un FRIA existente en lugar de crear uno nuevo

Archivos generados:


licit annex-iv

Genera la Documentación Técnica del Anexo IV (EU AI Act).

Estado: Registrado en CLI. Funcional a partir de Fase 4.

licit annex-iv [--organization NOMBRE] [--product NOMBRE]

Opciones:

OpciónDescripción
--organizationNombre de la organización
--productNombre del producto

Archivo generado:


licit report

Genera un reporte de compliance unificado.

Estado: Registrado en CLI. Funcional a partir de Fase 6.

licit report [--framework {eu-ai-act|owasp|all}] [--format {markdown|json|html}] [--output PATH]

Opciones:

OpciónDefaultDescripción
--frameworkallMarco a evaluar
--formatmarkdownFormato de salida
-o, --output.licit/reports/compliance-report.{ext}Ruta del archivo de salida

licit gaps

Identifica brechas de compliance con recomendaciones accionables.

Estado: Registrado en CLI. Funcional a partir de Fase 6.

licit gaps [--framework {eu-ai-act|owasp|all}]

Opciones:

OpciónDefaultDescripción
--frameworkallMarco a analizar

Ejemplo futuro:

$ licit gaps --framework eu-ai-act

EU AI Act Compliance Gaps:

[HIGH] ART-9-1: Risk Management System
  Gap: No FRIA document found
  Action: Run 'licit fria' to complete the assessment
  Effort: medium

[MEDIUM] ART-13-1: Transparency
  Gap: No provenance tracking configured
  Action: Run 'licit trace' to analyze code provenance
  Effort: low

licit verify

Verifica compliance y devuelve código de salida para CI/CD.

Estado: Registrado en CLI. Funcional a partir de Fase 6.

licit verify [--framework {eu-ai-act|owasp|all}]

Códigos de salida:

CódigoSignificado
0COMPLIANT — Todos los requisitos críticos cumplidos
1NON_COMPLIANT — Algún requisito crítico no cumplido
2PARTIAL — Algún requisito parcialmente cumplido

Uso en CI/CD (GitHub Actions):

- name: Compliance check
  run: licit verify
  # El pipeline falla si exit code != 0

Tabla resumen de comandos

ComandoFaseEstadoDescripción corta
init1FuncionalInicializa licit en el proyecto
status1FuncionalMuestra estado y fuentes conectadas
connect1FuncionalConfigura conectores
trace2FuncionalTrazabilidad de proveniencia
changelog3FuncionalChangelog de configs de agentes
fria4SkeletonFRIA (EU AI Act Art. 27)
annex-iv4SkeletonDocumentación técnica Anexo IV
report6SkeletonReporte unificado de compliance
gaps6SkeletonBrechas de compliance
verify6SkeletonGate de CI/CD