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
- Clonar el repositorio:
git clone https://github.com/omni-pro/friday-cli.git cd friday-cli
- Crear un entorno virtual (recomendado):
python3 -m venv venv source venv/bin/activate
- Instalar las dependencias:
pip install -r requirements.txt
- 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 enObserver/yPlugin/ - 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:
ddev stop→ddev startsetup:upgrade→di:compile→static-content:deploycache:flush→indexer: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:
- Realiza un fork del repositorio.
- Crea una rama con la nueva funcionalidad o corrección de errores.
git checkout -b feature/nueva-funcionalidad
- Envía un Pull Request.
Licencia
Este proyecto está licenciado bajo la licencia MIT. Consulta el archivo LICENSE para más detalles.
Contacto
- Autor: Facundo Capua
- Empresa: OMNI.PRO
- Correo: capua.facundo@omni.pro
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
55621dad08a01110459a4bbe82609935e66c10a39c3f9c61899ff2461ca8a66e
|
|
| MD5 |
3a2d591fd536ae7dfedb0a251bb3c62a
|
|
| BLAKE2b-256 |
7bdc37dea0cd37fe4cdf86ad11877293ec2183fa682029d3d8b87821ba7e6c36
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
654afd479ac5e7dd50be4ca4611d89877798d8b6c808cd55dd48a458fc2ee93a
|
|
| MD5 |
0ffa94b677eeb50a540e29330ae3c133
|
|
| BLAKE2b-256 |
eb829790185e93938b0c2e3d55c8e07c7447f8c1177fc06156c8e1f4e9ad1b87
|