CommunityProgramación y desarrollogithub.com

fswp-block-developer

Habilidad de dominio para trabajar con el editor de bloques de WordPress en Full-Stack WP Developer. Cubre la construcción de bloques Gutenberg personalizados, patrones y la API de Interactividad.

¿Qué es fswp-block-developer?

Esta habilidad (`fswp-block-developer`) está diseñada para desarrolladores que trabajan con el editor de bloques de WordPress (Gutenberg) dentro del ecosistema Full-Stack WP Developer. Su objetivo es guiar la creación de bloques personalizados, patrones y cualquier interacción frontend dinámica, priorizando siempre el uso de bloques y patrones del núcleo antes que escribir código personalizado. La habilidad abarca toda la anatomía de un bloque moderno: `block.json`, `edit.js`, `save.js` (estático o dinámico), `render.php` y módulos de script. Incluye reglas detalladas sobre atributos, soportes, InnerBlocks, variaciones, migraciones (deprecated) y la API de Bindings. Además, cubre en profundidad la API de Interactividad de WordPress, permitiendo comportamientos reactivos ligeros sin frameworks externos, mediante directivas `data-wp-*` y stores. La habilidad también proporciona pautas para la creación de patrones y el flujo de construcción con `@wordpress/scripts`. Es ideal para cualquier tarea que requiera un bloque personalizado, patrón o interacción frontend en un plugin o tema de WordPress, asegurando que se sigan las mejores prácticas de codificación, seguridad, internacionalización y accesibilidad.

Compatible con~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/syncwin/fswp-developer/tree/main/skills/fswp-block-developer

Installed? Explore more Programación y desarrollo skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

FSWP Block Developer

Fundacional (siempre aplicado): fswp-developer/references/lean-coding.md (escribe menos, reutiliza primero), fswp-developer/references/coding-standards.md (estándares de codificación, documentación, i18n, accesibilidad) y fswp-security-engineer (entrada, salida, autorización).

Usa los bloques del núcleo primero; escribe un bloque personalizado solo cuando los bloques y patrones del núcleo no puedan expresar el requisito. Referencias oficiales: Enlaces del Manual del Editor de Bloques en fswp-developer/references/official-docs.md. Verifica la versión mínima de WordPress para cada API contra la versión mínima declarada del proyecto.

Anatomía

blocks/mi-bloque/
  block.json      nombre, título, categoría, atributos, soportes, render, editorScript, viewScriptModule, estilo
  edit.js         interfaz del editor (usa useBlockProps)
  save.js         marcado estático, u omitir para bloques dinámicos
  render.php      renderizado del servidor para bloques dinámicos
  view.js         comportamiento frontend (módulo)
  style.scss / editor.scss

Registrar desde metadatos: register_block_type( __DIR__ . '/build/mi-bloque' ) en init (usa una función con nombre para el callback de init). Establece "apiVersion": 3 (actual desde WordPress 6.3) y agrega "$schema": "https://schemas.wp.org/trunk/block.json". Referencia campo por campo, verificada contra el Manual del Editor de Bloques: references/block-json.md.

Decisiones

PreguntaElige
La salida depende solo de atributos guardadosBloque Estático (save.js)
La salida depende de datos en vivo, debe cambiar sin volver a guardar, o contiene lógicaBloque Dinámico (render.php); save devuelve null o solo InnerBlocks
Contenido anidadoInnerBlocks con allowedBlocks y template
Vincular un atributo a datos (metadatos de entrada, fuente personalizada)API Block Bindings (register_block_bindings_source) cuando la versión mínima de WordPress lo permita
Ajustes preestablecidos alternativos de un bloque existenteVariaciones o estilos de bloque, no un nuevo bloque
Diseño reutilizableUn patrón, no un bloque

Reglas

  • Atributos: asigna a cada atributo un type y default; origínalos del marcado o comentarios de manera consistente; valida en render.php.
  • Usa supports (color, espaciado, tipografía, alineación, ancla) en lugar de escribir controles.
  • El marcado del editor debe usar useBlockProps(); el PHP dinámico usa get_block_wrapper_attributes().
  • render.php (render en block.json, WordPress 6.1+) recibe $attributes, $content y $block (un WP_Block). Se carga una vez por instancia de bloque en la página, por lo que nunca declares funciones o clases dentro de él; llama a código compartido desde otro archivo.
  • Scripts vs módulos: viewScript es para scripts clásicos (y cualquier cosa que dependa de scripts de WordPress); viewScriptModule (6.5+) es para módulos de script como la API de Interactividad. No son intercambiables, por lo tanto no mezcles dependencias entre los dos.
  • Escapa todo en render.php (fswp-security-engineer); los atributos son entrada del usuario.
  • Cambiar el marcado guardado de un bloque estático ya enviado rompe el contenido existente. Agrega una entrada deprecated con el save antiguo, los atributos y una función migrate, luego cambia el bloque.
  • Traduce las cadenas (__() con el dominio de texto) en JS y PHP; wp_set_script_translations o textdomain en block.json.
  • Carga scripts frontend solo donde se renderiza el bloque (viewScriptModule/script en block.json lo hacen).

Patrones

Más detalles sobre patrones, variaciones, hooks de bloque y bindings: references/patterns-variations.md. Profundidad de la API de Interactividad (renderizado del servidor, acciones asíncronas, data-wp-each, watchers, rendimiento): references/interactivity.md.

Regístrate en PHP con register_block_pattern() (y register_block_pattern_category()), o como archivos en el directorio patterns/ de un tema. Los patrones usan valores preestablecidos y texto traducido; sin imágenes remotas; dales un título claro, categorías y palabras clave.

API de Interactividad

Marcado renderizado por el servidor más un pequeño comportamiento reactivo, sin necesidad de framework.

  • Habilítalo con "supports": { "interactivity": true } y "viewScriptModule": "file:./view.js".
  • Directivas de marcado: data-wp-interactive="namespace", data-wp-context='{"open":false}', data-wp-on--click="actions.toggle", data-wp-bind--hidden="!context.open", data-wp-class--is-open="context.open", data-wp-text="state.label".
  • Store en view.js: import { store, getContext } from '@wordpress/interactivity'; store( 'namespace', { state: {...}, actions: { toggle() { const c = getContext(); c.open = ! c.open; } } } );
  • Siembra el estado del servidor con wp_interactivity_state( 'namespace', array(...) ) para que la primera pintura sea correcta y no haya parpadeo. Mantén el estado serializable.
  • Usa espacios de nombres para todo para evitar colisiones; nunca pongas secretos en el estado o contexto (ambos se imprimen en la página).
  • Para accesibilidad, vincula aria-expanded y el manejo del enfoque al estado, y prueba el uso del teclado.

Construcción y pruebas

npx @wordpress/create-block para un punto de partida; @wordpress/scripts para build, start, lint-js, lint-style, test-unit-js. Entrega los archivos compilados junto con src/, package.json y el archivo de bloqueo (regla de directorio para código compilado). Prueba en el editor (inserta, edita, guarda, recarga, cambia a vista de código) y en el frontend. Pasa a fswp-qa-engineer.

Individual skills in this repo

This repo contains 9 individual skills — each has its own dedicated page.

fswp-api-developer

Domain skill for WordPress REST API and Abilities API work in Full-Stack WP Developer. Covers registering routes with schemas, argument validation and sanitization, permission callbacks, controller classes, exposing post types and meta, authentication (cookie nonce, application passwords), pagination and errors, and registering abilities with input and output schemas and safety annotations. Use for any custom endpoint or machine-readable capability in a plugin or theme.

fswp-architect

Planning stage of Full-Stack WP Developer. Classifies the work (new plugin, new theme, update to an existing plugin or theme, add-on for another product, or WordPress Core patch), triages existing code with a bundled detection script, asks one round of essential questions, does competitive research, and produces one reviewable PRD or change brief with a single approval gate. Also covers Migration mode and multi-session handoff docs. Invoked by fswp-developer before any code is written; consult directly for PRD, change-brief, or handoff-doc questions.

fswp-core-contributor

WordPress Core contribution stage of Full-Stack WP Developer. Guides a contributor through finding or filing a Trac ticket, setting up the wordpress-develop checkout and test environment, writing a patch or GitHub pull request that follows Core coding standards, inline documentation, backward compatibility and tests, and preparing the ticket comment; also routes block-editor changes to the Gutenberg repository and security reports to the private process. Invoked by fswp-developer for Core patches; consult directly for Core workflow questions.

fswp-devops-engineer

Domain skill for WordPress development tooling in Full-Stack WP Developer. Covers local environments (wp-env with Docker, WordPress Playground and Blueprints), command-line site operations (plugin and theme management, database export, search-replace, cron, scaffolding), coding standards and static analysis (PHPCS with WordPress standards, PHPStan with WordPress stubs), PHP and JS testing setup, and the @wordpress/scripts toolchain. Use when setting up, running, or automating a WordPress dev or test environment.

fswp-maintainer

Change stage for existing WordPress code in Full-Stack WP Developer. Updates, fixes, refactors, and upgrades existing plugins and themes without breaking them, and builds add-ons for products you do not own (WooCommerce extensions, page-builder elements, extensions of other plugins) using hooks instead of edits to third-party files. Covers reading before changing, parity lists, deprecation, host compatibility, upgrade paths, and patch delivery. Invoked by fswp-developer after an approved change brief; consult directly for safe-change or add-on questions.

fswp-qa-engineer

Verification stage of Full-Stack WP Developer. Runs the mechanical gate for plugins and themes (house-rule scripts, PHP lint, PHPCS with WordPress standards, PHP compatibility, PHPStan with WordPress stubs), the manual checklist, PRD or change-brief scenario tests, and the pre-release check. Reports PASS, FAIL, or NOT RUN and never implies a skipped check passed. Invoked by fswp-developer after a build and again before delivery; consult directly to audit any plugin or theme folder.

fswp-reviewer

Independent review stage of Full-Stack WP Developer. Reviews a finished WordPress plugin, theme, add-on, or Core patch through a security lens (WordPress-specific vulnerabilities, REST and AJAX authorization with an API risk map, AI-generated-code risks), a quality lens (error handling, data and upgrade safety, performance, i18n, accessibility, comment accuracy, test gaps, class and type design, scope), and an optional lean lens for trimming over-engineering, reporting only high-confidence findings in a fixed format. Invoked by fswp-developer after the verify gate, normally through the fswp-code-reviewer agent; consult directly to review or optimize any WordPress code.

fswp-theme-developer

Theme build stage of Full-Stack WP Developer. Builds custom WordPress themes - block themes (theme.json, templates, template parts, patterns, style variations), classic themes (template hierarchy, functions.php, theme supports), hybrids, and child themes - with accessibility, escaping, and directory readiness built in, plus a scaffold script. Invoked by fswp-developer after an approved PRD for a new theme; consult directly for a specific theme pattern. For changes to an existing theme use fswp-maintainer.

syncwin/fswp-plugin-developer

Plugin build stage of Full-Stack WP Developer. House standards and code templates for real WordPress plugins (not shortcode snippets) - folder anatomy, activation/uninstall lifecycle, custom post types and tables, admin UI tiers, front-end output on the Atomic Framework, REST and cron, i18n, distribution, and the Tier 3 React admin stack - plus a scaffold script. Also the base structure for add-ons. Invoked by fswp-developer after an approved PRD; consult directly for a specific plugin build pattern.

Skills relacionados