Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

AIComply

Análisis estático local de señales técnicas relacionadas con el Reglamento europeo de IA y el RGPD. Python 3.11+, CLI, consola local, JSON, Markdown, SARIF 2.1.0 y evidencia firmada con Ed25519.

Estado: alpha en revisión. No es una certificación, una opinión jurídica ni una garantía de evitar multas. Sin hallazgos no significa conformidad.

Distribución: la versión pública comprobada el 20 de septiembre de 2026 es aicomply-cli==0.1.0; no incluye todas las mejoras de esta rama. La siguiente prepublicación preparada es 2.0.0a0 y todavía no se ha publicado. Consulta la validación de producto y PyPI, incluida la corrección de validadores nominales y sus límites, antes de adoptar el analizador como gate de seguridad. Las versiones alpha requieren selección explícita en pip; una instalación sin versión puede conservar la versión estable anterior. Antes de desplegar, consultar condiciones de lanzamiento. Los cambios de esta rama no equivalen a una versión publicada en PyPI.

Instalación reproducible desde el repositorio

python3 -m pip install --user uv==0.8.22
uv python install 3.11
uv sync --locked --extra dev --python 3.11
uv run aicomply --help

uv.lock fija el entorno de desarrollo/CI. Una instalación de la wheel sin el lock puede resolver otras versiones dentro de los rangos del paquete. No instales AIComply dentro del entorno de un cliente ni instales sus dependencias para analizar su código.

Uso

Ejecutar estos comandos desde el checkout de AIComply; sustituir /ruta/cliente por una copia local autorizada. Guardar reportes fuera del árbol analizado.

uv run aicomply scan /ruta/cliente
uv run aicomply scan /ruta/cliente --format json --output ../report.json
uv run aicomply scan /ruta/cliente --format markdown --output ../report.md
uv run aicomply scan /ruta/cliente --format sarif --output ../report.sarif
uv run aicomply scan /ruta/cliente --articles 5,12,14,50
uv run aicomply assess
uv run aicomply docgen /ruta/cliente --name "Sistema declarado" \
  --version "1.2.0" --output ../annex-iv.md
Salida de scan Significado
0 Escaneo completado y política de hallazgos satisfecha; no acredita legalidad
1 Hallazgos por encima de la tolerancia configurada; por defecto cualquier hallazgo
2 Error de argumentos, configuración, lectura, análisis, firma o escritura

--enforce-risk-tier high_risk tolera high_risk, limited_risk y minimal_risk, pero falla con prohibited. Son etiquetas técnicas del catálogo, no clasificación jurídica del sistema. La opción CLI tiene prioridad sobre la configuración del proyecto. Sin umbral se falla con cualquier hallazgo.

Configuración y alcance

La configuración se lee de .aicomply.yaml en la raíz objetivo (o en el directorio de un archivo objetivo). Las claves desconocidas, YAML inválido, duplicados, aliases y tipos incorrectos producen error explícito.

exclude_paths:
  - "generated/**"
ignore_rules: []
custom_rules_dir: "review-rules"
enforce_risk_tier: "high_risk"

custom_rules_dir debe permanecer dentro del objetivo. Las reglas personalizadas son políticas confiables: revisar sus regex y semántica antes de usarlas. Las exclusiones y supresiones (# aicomply:ignore EUAIA-ART12-001) reducen cobertura: requieren justificación y revisión; no prueban que el riesgo haya desaparecido.

El análisis incluye AST/taint intraprocedural de Python, regex en extensiones admitidas, manifests/lockfiles de Python y comprobaciones Docker/Compose. No ejecuta el código objetivo, no instala sus dependencias y no envía el código a servicios externos. No modela completamente funciones externas, reflexión, concurrencia, heap, runtime, datasets ni arquitectura desplegada.

Rechaza entradas ilegibles, symlinks, archivos especiales, codificación inválida, sintaxis Python inválida e inputs excesivos. Compose con aliases/merges requiere una copia expandida revisada manualmente. Los límites del CLI son 4 MiB por archivo, 100 MiB totales y 10.000 entradas. Las rutas ignoradas se registran. Las extensiones no admitidas no se analizan; no hay cobertura universal.

Procedencia

El JSON contiene:

  • scan_id: hash del conjunto de hallazgos; dos escaneos sin hallazgos pueden compartirlo aunque el código sea distinto.
  • source_manifest: rutas relativas, tamaños y SHA-256 de los bytes capturados; source_manifest_hash identifica ese inventario.
  • active_rule_ids, rules_fingerprint, effective_config, config_fingerprint y exclusions: política y límites efectivos.
  • analysis_status, legal_assessment, limitations e imports observados.

El inventario no es un snapshot atómico del repositorio completo ni cubre archivos excluidos. Los reportes pueden contener código, datos personales o secretos presentes en snippets: aplicar acceso restringido, retención y eliminación acordados con cada cliente. Las salidas CLI a archivo se escriben atómicamente con permisos POSIX restrictivos; Windows requiere su propia política de ACL.

Evidencia Ed25519

uv run aicomply keygen --out-dir ../private-evidence-keys --name reviewer
uv run aicomply scan /ruta/cliente --format json --sign \
  --key ../private-evidence-keys/reviewer.pem --signer-id "review-service" \
  --output ../signed-report.json
uv run aicomply verify ../signed-report.json \
  --public-key ../private-evidence-keys/reviewer.pub

Solo JSON conserva el envelope firmado. La clave privada se crea sin sobrescritura y con modo POSIX 0600; es PKCS8 sin cifrar y no debe almacenarse en el repositorio. Guardarla en un directorio privado y gestionar custodia, rotación y backups. str/bytes en la API de firmas son contenido; solo un Path explícito solicita lectura local.

Una verificación válida prueba integridad del payload canónico respecto de la clave suministrada. La confianza en esa clave es externa. No prueba legalidad, identidad acreditada, fecha confiable, revocación ni admisibilidad judicial. Se rechazan JSON ambiguos, versiones/algoritmos incorrectos y campos omitidos o normalizados. Bundles anteriores que no incluyan el schema completo pueden requerir regeneración; nunca reinterpretarlos como una nueva firma.

Consola local

uv run aicomply ui /ruta/cliente --host 127.0.0.1 --port 8080 --no-browser

Abrir la URL loopback mostrada por el comando. La consola sirve recursos locales sin CDN, limita Host/Origin y confina el análisis al objetivo de inicio. No usar proxies públicos, túneles ni binds a 0.0.0.0: carece de autenticación, RBAC y aislamiento multi-tenant.

El worker usa snapshot privado, límites de tiempo/memoria y descriptores POSIX sin seguir enlaces. Scan/docgen por UI requieren estas capacidades; plataformas sin ellas fallan explícitamente. Límites adicionales: 32 MiB por snapshot, 10.000 entradas, profundidad 64, 30 s de ejecución, 512 MiB de memoria, un trabajo activo, ocho conexiones, 2 MiB por petición y 8 MiB por respuesta. El navegador admite evidencia de hasta 1 MiB.

La evaluación comparte el modelo contextual del CLI y conserva valores desconocidos. El Anexo IV es un borrador de nueve secciones con información pendiente; importar una librería no demuestra controles efectivos.

GitHub Action

Fijar el Action a un commit revisado; sustituir el marcador:

- uses: actions/checkout@v4
- uses: aiambo08/AIComply@<reviewed-commit-sha>
  with:
    path: "."
    format: "sarif"
    output: "aicomply-results.sarif"
    upload-sarif: "false"

Para subir SARIF, activar upload-sarif y conceder security-events: write solo al job correspondiente. Revisar permisos y confidencialidad: subir SARIF transfiere resultados a GitHub. En forks y Dependabot no se intenta esa subida. El Action valida un reporte fresco y propaga los errores; no añadir || true. Las fixtures intencionalmente riesgosas de este repositorio disparan hallazgos: la política del autoescaneo requiere una decisión del mantenedor, no una excepción silenciosa en CI.

Desarrollo y controles

uv sync --locked --extra dev
uv run ruff check .
uv run mypy
uv run pytest -q
uv run --frozen python scripts/check_quality.py

mypy comprueba estrictamente el clasificador; no todo el proyecto está tipado estrictamente. El script de calidad exige tests/lint/tipos, construye wheel y sdist, verifica recursos, instala en un entorno aislado, comprueba dependencias y prueba los entry points y un escaneo SARIF instalado.

Para modificar estilos de la consola (Node/npm solo en desarrollo):

npm exec --yes --package=tailwindcss@3.4.17 -- tailwindcss \
  --config src/aicomply/ui/static/tailwind.config.cjs \
  --input src/aicomply/ui/static/app.source.css \
  --output src/aicomply/ui/static/app.css --minify
node --check src/aicomply/ui/static/app.js

No se publican métricas universales de precisión o recall: las pruebas sintéticas no representan todas las aplicaciones ni determinan infracciones.

Documentación

Licencia MIT. La adopción requiere evaluación técnica y jurídica según finalidad, rol, jurisdicción y operación real del cliente.

Metadata

Release files for aicomply-cli 2.0.0a0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for aicomply-cli 2.0.0a0
File Size Uploaded Provenance
aicomply_cli-2.0.0a0.tar.gz 91.4 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for aicomply-cli 2.0.0a0
File Interpreter ABI Platform
aicomply_cli-2.0.0a0-py3-none-any.whl Python 3 none any Details

Total release size: 198.4 kB

Release files / aicomply_cli-2.0.0a0.tar.gz

Download URL aicomply_cli-2.0.0a0.tar.gz
Size 91.4 kB
Tags Source
SHA-256 checksum
How to use checksums
d899c75411c82dd0bee20e64a88d1ce93c54807611e7de77a5953074ee79c509
BLAKE2b-256 checksum
How to use checksums
1518613dbd51ae4079be70b42daeac6f678083443e456c3aedddffafbcd79f0e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 21, 2026.

Transparency log

Release files / aicomply_cli-2.0.0a0-py3-none-any.whl

Download URL aicomply_cli-2.0.0a0-py3-none-any.whl
Size 107.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
3553a99979f4a75d912684593f14517c10b3e15b0830458cbb22f01be0cd51f5
BLAKE2b-256 checksum
How to use checksums
e829f71629e4dd3b9ee5c3de6d8a64edbe5c82eca3b5b7d429b6c902391c0cb8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 21, 2026.

Transparency log

Security for aicomply-cli 2.0.0a0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for aicomply_cli-2.0.0a0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 21, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page