Skip to main content

FRIDAY is a console tool developed in Python that allows you to obtain and analyze key information from projects based on Adobe Commerce.

Project description


███████ ██████  ██ ██████   █████  ██    ██ 
██      ██   ██ ██ ██   ██ ██   ██  ██  ██  
█████   ██████  ██ ██   ██ ███████   ████   
██      ██   ██ ██ ██   ██ ██   ██    ██    
██      ██   ██ ██ ██████  ██   ██    ██    

F.R.I.D.A.Y. - Adobe Commerce Project Tool

FRIDAY es una herramienta de consola desarrollada en Python que permite obtener, analizar y documentar información clave de proyectos basados en Adobe Commerce (Magento). Incluye generación de documentación asistida por IA, gestión de logs en la nube, diagnóstico de entornos locales y troubleshooting de órdenes.

Características

  • Documentación con IA: Extrae la lógica de negocio de módulos custom y genera documentación lista para equipos de soporte, usando Claude como asistente.
  • Análisis de configuración: Extrae y muestra configuraciones clave del proyecto.
  • Logs en la nube: Descarga, busca y monitorea logs de Magento Commerce Cloud en paralelo.
  • Diagnóstico local: Verifica el estado del entorno ddev y ejecuta resets automatizados.
  • Troubleshooting: Reconstruye timelines de órdenes a partir de logs locales.
  • Exploración con IA: Carga contexto de un módulo y lanza Claude Code para exploración asistida.

Requisitos

  • Python 3.8 o superior
  • Acceso al proyecto Adobe Commerce
  • ddev (para comandos ddev:*)
  • Magento Cloud CLI (para comandos cloud:*)
  • Claude Code (para el comando explain)

Instalación

  1. Clonar el repositorio:
    git clone https://github.com/omni-pro/friday-cli.git
    cd friday-cli
    
  2. Crear un entorno virtual (recomendado):
    python3 -m venv venv
    source venv/bin/activate
    
  3. Instalar las dependencias:
    pip install -r requirements.txt
    
  4. Instalar como CLI global (opcional):
    pip install -e .
    

Comandos

friday --help

📋 Proyecto

Comando Descripción
friday project:info Muestra información general del proyecto y envía metadata a SQS

📖 Documentación (docs:*)

Generación de documentación de módulos Magento asistida por IA.

Comando Descripción
friday docs:extract <module_path> Extrae archivos de lógica de negocio de un módulo y copia el resultado al clipboard
friday docs:update Detecta módulos modificados en el último commit y extrae su contexto

docs:extract analiza un módulo Magento y extrae únicamente los archivos relevantes para entender la lógica de negocio:

  • Siempre extrae: registration.php, module.xml, di.xml (global y por área), events.xml, firmas de clases en Observer/ y Plugin/
  • Extrae si existen: webapi.xml, schema.graphqls, system.xml, crontab.xml, archivos de colas (communication, queue_topology, queue_consumer), db_schema.xml, data patches (solo nombre de clase), interfaces y constructores de modelos
  • Nunca extrae: view/, Test/, i18n/, implementaciones completas de PHP

Cada extracción incluye un score de complejidad (T1/T2/T3) basado en la cantidad de observers, plugins, dependencias externas, consumers de colas, endpoints de API, cron jobs, data patches y tablas de BD.

# Extraer un módulo específico (resultado copiado al clipboard)
friday docs:extract app/code/Vendor/ModuleName

# Detectar y extraer módulos cambiados en el último commit
friday docs:update

El output se diseñó para ser pegado directamente en claude.ai junto con el prompt template incluido en app/templates/module_doc_prompt.md.

☁️ Cloud Logs (cloud:*)

Wrappers para Magento Commerce Cloud CLI con ejecución paralela entre environments.

Comando Descripción
friday cloud:logs:fetch Descarga logs de los 3 environments simultáneamente
friday cloud:logs:grep <string> Busca un string en paralelo en integration/staging/production
friday cloud:logs:tail --env=ENV Tail de logs en tiempo real de un environment específico
# Descargar logs de todos los environments
friday cloud:logs:fetch

# Buscar errores de pago en todos los environments
friday cloud:logs:grep "payment failed"

# Buscar solo en producción
friday cloud:logs:grep "payment failed" --env=production

# Tail de logs en staging
friday cloud:logs:tail --env=staging

🔧 ddev (ddev:*)

Gestión del entorno local de desarrollo.

Comando Descripción
friday ddev:reset Reset completo del entorno local en la secuencia correcta
friday ddev:doctor Diagnóstico del entorno: servicios, indexers, caché, cron, RabbitMQ

ddev:reset ejecuta en orden:

  1. ddev stopddev start
  2. setup:upgradedi:compilestatic-content:deploy
  3. cache:flushindexer:reindex

Si algún paso falla, se detiene y muestra el error.

ddev:doctor verifica:

  • ✓/✗ Servicios ddev corriendo
  • ✓/✗ Indexers válidos
  • ✓/✗ Caché habilitada
  • ✓/✗ Cron ejecutándose
  • ✓/✗ Conexión a RabbitMQ
# Reset completo del entorno
friday ddev:reset

# Diagnóstico rápido
friday ddev:doctor

🔍 Troubleshooting

Comando Descripción
friday troubleshoot:order <increment_id> Reconstruye un timeline de una orden desde los logs locales

Busca el increment ID en todos los archivos de log (system.log, exception.log, payment.log, debug.log y cualquier log custom en var/log/), extrae timestamps y presenta una línea de tiempo ordenada cronológicamente.

friday troubleshoot:order 000000123

🤖 Exploración con IA

Comando Descripción
friday explain <module_name> Carga documentación del módulo y lanza Claude Code con contexto

Carga el archivo de documentación del módulo (docs/modules/Vendor_ModuleName.md) y cualquier skill file relacionado (docs/skills/), genera un archivo de contexto en .claude/contexts/, y lanza Claude Code con ese contexto pre-cargado.

friday explain Vendor_ModuleName

🎯 Claude Code Slash Command

El proyecto incluye un slash command para Claude Code en .claude/commands/gen-docs.md:

/project:gen-docs                      # Genera docs para módulos cambiados en el último commit
/project:gen-docs Vendor_ModuleName    # Genera doc para un módulo específico
/project:gen-docs app/code/Vendor/Mod  # Genera doc desde un path específico

El slash command es diff-aware: ignora módulos donde solo cambiaron archivos de view/, Test/ o i18n/.

Estructura de Documentación

docs/
├── modules/                    # Documentación generada por módulo
│   └── Vendor_ModuleName.md    # Un archivo por módulo
└── skills/                     # Runbooks para procesos de negocio complejos
    └── payment_azul_rd.md      # Ejemplo: gateway de pago Azul RD

Templates

Archivo Propósito
app/templates/module_doc_prompt.md Prompt reutilizable para generar docs con claude.ai
app/templates/skill_template.md Plantilla para skill files (decision trees, symptom maps)

Skill Files

Los skills son documentos verticales para procesos de negocio complejos que cruzan múltiples módulos. Están optimizados para consumo por IA, no para lectura humana:

  • Decision trees en formato ASCII para diagnóstico
  • Mapas Symptom → Cause → Action en tabla
  • Data flows con boundaries de sistema marcados
  • Referencia de configuración con impacto de valores incorrectos
  • Modos de fallo conocidos con pasos de recuperación

Configuración

El proyecto usa project.settings.yml para configuración general y variables de entorno (.env) para credenciales AWS:

AWS_REGION=us-east-1
AWS_SQS_URL=https://sqs.us-east-1.amazonaws.com/...
AWS_SQS_MESSAGE_GROUP_ID=friday

Contribución

¡Las contribuciones son bienvenidas! Para colaborar:

  1. Realiza un fork del repositorio.
  2. Crea una rama con la nueva funcionalidad o corrección de errores.
    git checkout -b feature/nueva-funcionalidad
    
  3. Envía un Pull Request.

Licencia

Este proyecto está licenciado bajo la licencia MIT. Consulta el archivo LICENSE para más detalles.

Contacto

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

omni_friday-0.0.9.tar.gz (23.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

omni_friday-0.0.9-py3-none-any.whl (26.3 kB view details)

Uploaded Python 3

File details

Details for the file omni_friday-0.0.9.tar.gz.

File metadata

  • Download URL: omni_friday-0.0.9.tar.gz
  • Upload date:
  • Size: 23.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for omni_friday-0.0.9.tar.gz
Algorithm Hash digest
SHA256 55621dad08a01110459a4bbe82609935e66c10a39c3f9c61899ff2461ca8a66e
MD5 3a2d591fd536ae7dfedb0a251bb3c62a
BLAKE2b-256 7bdc37dea0cd37fe4cdf86ad11877293ec2183fa682029d3d8b87821ba7e6c36

See more details on using hashes here.

File details

Details for the file omni_friday-0.0.9-py3-none-any.whl.

File metadata

  • Download URL: omni_friday-0.0.9-py3-none-any.whl
  • Upload date:
  • Size: 26.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for omni_friday-0.0.9-py3-none-any.whl
Algorithm Hash digest
SHA256 654afd479ac5e7dd50be4ca4611d89877798d8b6c808cd55dd48a458fc2ee93a
MD5 0ffa94b677eeb50a540e29330ae3c133
BLAKE2b-256 eb829790185e93938b0c2e3d55c8e07c7447f8c1177fc06156c8e1f4e9ad1b87

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page