ワンクリックで
ワンクリックで
Sets up the full Cinetic security stack on Cinetic projects hosted on GitLab.com (non-PrestaShop: Laravel, Astro, TanStack, etc.). Use ONLY when the project is a Cinetic company project on GitLab.com Free tier. Triggers when the user asks to add dependency scanning, vulnerability alerts, security setup, Trivy, pnpm supply chain protection, or wants email reports of vulnerabilities. Do NOT use for GitHub-hosted projects, personal projects, or PrestaShop projects — use ps-security-audit skill instead for any PrestaShop project.
Sets up weekly automated security scanning for PrestaShop 8 projects hosted on GitLab.com. Checks: installed modules vs Friends of Presta advisory database, PrestaShop core version, and PHP/Composer dependencies via Trivy. Sends weekly HTML email report every Monday. Use ONLY for Cinetic PrestaShop projects on GitLab.com. Triggers when user asks for security scanning, vulnerability alerts, module CVE check, or Friends of Presta integration on a PrestaShop project.
Sets up BrowserSync live-reload watcher for PrestaShop Panda child theme development in Lando. Auto-detects child theme name and Lando proxy URL. Watches child theme CSS/JS/TPL files and reloads the browser automatically on save. Use when working on PS frontend/maquetación in Lando and the user wants auto-reload, live reload, watcher, or is tired of reloading the browser manually after CSS changes.
Sets up a static image placeholder for local Lando PrestaShop development so broken/missing product images show a nice placeholder instead of broken icons. Use this skill when the user says "placeholder de imagenes en lando", "lando image placeholder", "imagenes rotas en lando", "broken images in lando", or wants to avoid downloading hundreds of product images for local development. Trigger proactively whenever the user is working on a Lando PrestaShop project and mentions broken images or missing product photos.
Workflow for adding skills/commands to duck-ai and shipping a new release. Use when the user asks how to release duck-ai, ship a new duck-ai version, add a skill or command to duck-ai, bump a duck-ai version, "publicar duck-ai", "subir duck-ai", "nueva versión de duck-ai", or anything involving editing this repo and getting the change to the Cinetic team's machines.
| name | ps-demo-user |
| description | ps-demo-user — Usuario demo PrestaShop 8 (Lando) |
| version | 0.1.0 |
Crea un cliente de prueba con historial completo para testear la UI del panel de usuario. Reutilizable en cualquier proyecto PS8 con Lando.
| Campo | Valor |
|---|---|
edu@demo.com | |
| Password | edudemo123 |
| Nombre | Edu Demo |
DEMO00001 — Entregado (hace 60 días) + factura descargable + tracking GLSDEMO00002 — Enviado (hace 30 días) + factura + tracking GLSDEMO00003 — En preparación (hace 5 días)-- Carrier activo
SELECT id_carrier, name FROM {prefix}carrier WHERE active=1 AND deleted=0 LIMIT 5;
-- Productos con precio para usar en order_detail
SELECT id_product, reference, price FROM {prefix}product WHERE active=1 AND price > 0 LIMIT 5;
-- Prefijo
-- Ver en app/config/parameters.php → database_prefix
El script base está en demo-user-setup.sql (proyecto vives-8).
Cambios obligatorios para otros proyectos:
vivesps_ → el del proyecto@carrier_id por el carrier activoproduct_id en la sección ORDER DETAILS por productos realeslando php -r "echo password_hash('nueva_clave', PASSWORD_BCRYPT);"
Y actualizar el campo passwd en la sección CUSTOMER.lando mysql lamp -u lamp -plamp < demo-user-setup.sql
El script incluye
SET sql_mode = ''para evitar errores de fecha cero en Lando.
Entrar en https://{proyecto}.lndo.site/es/login con edu@demo.com / edudemo123
O verificar por SQL:
SELECT id_customer, email FROM {prefix}customer WHERE email='edu@demo.com';
SELECT reference, current_state FROM {prefix}orders WHERE id_customer={id} LIMIT 5;
SET sql_mode = '';
1. CUSTOMER — cuenta con bcrypt hash
2. ADDRESSES — 2 direcciones (casa + trabajo)
3. CARTS — 3 carritos (FK obligatoria de orders)
4. ORDERS — 3 pedidos (entregado / enviado / preparación)
5. ORDER_DETAIL — líneas de producto por pedido
6. ORDER_PAYMENT — registro de pago por pedido
7. ORDER_INVOICE — facturas (pedidos 1 y 2)
8. ORDER_HISTORY — log de cambios de estado
9. ORDER_CARRIER — transportista + tracking por pedido
| Problema | Solución |
|---|---|
Error fecha 0000-00-00 | Añadir SET sql_mode = '' al inicio |
birthday = 0000-00-00 da error en backoffice | Usar NULL en lugar de '0000-00-00' — PS8 lo rechaza al editar el cliente |
secure_key = '-1' da CustomerException | Debe ser un MD5 de 32 chars — usar MD5(RAND()) en el INSERT |
newsletter_date_add = 0000-00-00 da error | Usar NULL en lugar de fecha cero |
id_cart obligatorio en orders | Crear carts antes que orders |
invoice_address/delivery_address no existen | Eliminados en PS8 — no incluir |
unit_price_tax_incl_after_specific_price no existe | Eliminado en PS8 — no incluir |
| Password MD5 antiguo no funciona | PS8 usa bcrypt — regenerar hash |
SET sql_mode='';
SELECT @id := id_customer FROM {prefix}customer WHERE email='edu@demo.com';
DELETE oc FROM {prefix}order_carrier oc JOIN {prefix}orders o ON oc.id_order=o.id_order WHERE o.id_customer=@id;
DELETE oh FROM {prefix}order_history oh JOIN {prefix}orders o ON oh.id_order=o.id_order WHERE o.id_customer=@id;
DELETE oi FROM {prefix}order_invoice oi JOIN {prefix}orders o ON oi.id_order=o.id_order WHERE o.id_customer=@id;
DELETE op FROM {prefix}order_payment op JOIN {prefix}orders o ON op.order_reference=o.reference WHERE o.id_customer=@id;
DELETE od FROM {prefix}order_detail od JOIN {prefix}orders o ON od.id_order=o.id_order WHERE o.id_customer=@id;
DELETE FROM {prefix}orders WHERE id_customer=@id;
DELETE FROM {prefix}cart WHERE id_customer=@id;
DELETE FROM {prefix}address WHERE id_customer=@id;
DELETE FROM {prefix}customer WHERE email='edu@demo.com';