Agent skill
devexpert-testimonials
Import DevExpert testimonials from Google Sheets (gog) or pasted TSV lists, format text with line breaks, crop profile images to 400x400, copy them to src/assets/testimonials, update src/data/testimonials.json, and optionally update AI Expert IDs in src/pages/cursos/expert/ai.astro. Use when adding new testimonials or processing images.
Install this agent skill to your Project
npx add-skill https://github.com/antoniolg/agent-kit/tree/main/skills/devexpert-testimonials
SKILL.md
DevExpert Testimonials
Overview
Automates testimonial import, profile image cropping, and AI Expert section management.
Quick start
- Install dependencies (first time only):
bash
python -m pip install -r scripts/requirements.txt - Import from Google Sheets (recommended). Run from the repo root:
- Ensure gog is authenticated:
gog auth loginorgog auth manage.
bashpython scripts/sync_testimonials_from_sheet.py \ --ai-auto - Ensure gog is authenticated:
- The script:
- Detects rows where "Publicado en web" is empty.
- Downloads photos from Drive via
gog drive download. - Inserts line breaks automatically.
- Generates new IDs in
src/data/testimonials.json. - Crops images to 400x400 with face detection.
- (Optional) Updates
src/pages/cursos/expert/ai.astro. - Marks "Publicado en web" with
x. - Stores temporary downloads in
tmp/testimonials-sync.
- Manual TSV fallback:
bash
python scripts/import_testimonials.py \ --input /ruta/testimonios.txt
Input format (flexible)
Prefer TSV (tab-separated) with columns in this order:
fecha \t nombre \t posicion \t titulo \t texto \t rating \t ruta_imagen
- Optional fields: posicion, rating, ruta_imagen.
- If there is no image, leave the column empty.
- Dates are normalized to
YYYY-MM-DD HH:MM:SSwhen recognized.
Images
- File names are generated from
nombre+titulo(slug), e.g.:Santiago Perez Barber+AI Expert->santiago-perez-barber-ai-expert.jpg
- Uses face detection (OpenCV). If no face is detected, it uses center-crop.
- Default size: 400x400. Change with
--image-size. - Existing images are not overwritten unless
--overwrite-imagesis passed.
Google Sheets
- Current sheet schema:
references/sheet-schema.md. - "Publicado en web": any non-empty value is considered published.
- Configure defaults in
~/.config/skills/config.jsonunderdevexpert_testimonials:accountsheet_idgid(optional)
Example:
{
"devexpert_testimonials": {
"account": "you@example.com",
"sheet_id": "spreadsheet_id_here",
"gid": 123456789
}
}
AI Expert
- The script lists current IDs in
ai.astroand the new ones detected by title. - To write a specific list:
bash
python scripts/import_testimonials.py \ --input /ruta/testimonios.txt \ --ai-ids "35051,42724,42725" - If
--ai-idsis omitted, the script prompts for IDs (interactive stdin only). - To auto-update with new IDs:
bash
python scripts/import_testimonials.py \ --input /ruta/testimonios.txt \ --ai-auto
Useful options
--testimonials-jsonchange thetestimonials.jsonpath.--images-dirchange the destination images folder.--ai-astrochange the AI Expert page path.--dry-runshow what would change without writing.--ai-autoautomatically adds new AI Expert IDs.
Scripts
scripts/import_testimonials.pyImports testimonials, processes images, and proposes/updates AI Expert IDs.scripts/sync_testimonials_from_sheet.pySyncs from Google Sheets, downloads Drive images, and marks "Publicado en web".
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
gen-pdf
Converts a Markdown file to a styled PDF with DevExpert branding (logo in bottom-right corner). Use when asked to generate a PDF from a Markdown document, or when any DevExpert proposal/document needs to be exported as PDF.
cloudflared-tunnel
Create temporary public URLs for localhost apps using Cloudflare Quick Tunnels with tmux-based process management. Use when you need to preview a local app externally (mobile device, remote collaborator, QA), including host-allowlist fixes when a dev server blocks external hosts.
Manage inbox email. Uses the inbox script and stores metadata (ids) to open or archive messages later.
whatsapp-evo
Manage WhatsApp via Evolution API (v2.x): list chats with unread messages and reply.
create-cli
Design command-line interface parameters and UX: arguments, flags, subcommands, help text, output formats, error messages, exit codes, prompts, config/env precedence, and safe/dry-run behavior. Use when you’re designing a CLI spec (before implementation) or refactoring an existing CLI’s surface area for consistency, composability, and discoverability.
academy-enrollments
Manage academy enrollments by appending rows to a Google Sheet (used by Zapier/n8n to grant LearnWorlds access).
Didn't find tool you were looking for?