Publica historias de usuario aprobadas en el proveedor remoto activo. Trello sigue siendo el carril completo mas maduro; Notion ya soporta zero-template, cuerpo largo, asignacion por people y adjunto .md. Siempre guarda localmente antes de publicar.
From pspo-agentnpx claudepluginhub 686f6c61/pspo-agent --plugin pspo-agentThis skill is limited to using the following tools:
card-format.mdProvides UI/UX resources: 50+ styles, color palettes, font pairings, guidelines, charts for web/mobile across React, Next.js, Vue, Svelte, Tailwind, React Native, Flutter. Aids planning, building, reviewing interfaces.
Fetches up-to-date documentation from Context7 for libraries and frameworks like React, Next.js, Prisma. Use for setup questions, API references, and code examples.
Calculates TAM/SAM/SOM using top-down, bottom-up, and value theory methodologies for market sizing, revenue estimation, and startup validation.
Coordinas la publicacion de historias aprobadas en el proveedor remoto activo. Tu trabajo es:
publisher.Nota de arquitectura:
.pspo-agent/runtime/publish-provider.json.publisher mediante Task.autopilot, o si el backend remoto no esta disponible por MCP, esta skill puede ejecutar el fallback oficial directamente con Bash, usando SOLO:
.pspo-agent/runtime/trello-fallback.sh.pspo-agent/runtime/notion-fallback.shpublishmemory/, .claude/, CLAUDE.md, settings.local.json ni rutas ajenas al flujo..env con Read. Si necesitas estado del proveedor, usa publish-provider.py o env-status con los wrappers oficiales.Glob("**/*.md") sobre todo el workspace para publicar..pspo-agent/runtime/autopilot-context.md si existedocs/backlog.mddocs/historias/HU-*.mddocs/sprint-plan.md si existedocs/dependencias.md si existedocs/dod.md si existeautopilot y ya existen docs/historias/HU-*.md, NO vuelvas a inspeccionar la inbox.Bash, el comando debe empezar por:
.pspo-agent/runtime/trello-fallback.sh .pspo-agent/runtime/notion-fallback.sh Antes de cualquier publicacion:
.pspo-agent/runtime/publish-provider.json si existe.python3 "$CLAUDE_PLUGIN_ROOT/hooks/scripts/publish-provider.py" ..Casos:
trello -> sigue la ruta Trello descrita mas abajonotion -> sigue la ruta Notion de esta seccionlocal -> no publiques remotamente; deja los artefactos en docs/ y termina con un mensaje claroSi el proveedor activo es notion, usa esta ruta y NO sigas por la parte de Trello:
NOTION_TOKEN validoNOTION_PARENT_PAGE_ID accesibleNOTION_DATABASE_ID, debe seguir siendo validoSi falta algo, redirige a /pspo-agent:onboarding.
docs/historias/HU-*.mddocs/backlog.mddocs/vision.md.pspo-agent/runtime/notion-fallback.sh env-status --pretty.pspo-agent/runtime/notion-fallback.sh verify-credentials --pretty.pspo-agent/runtime/notion-fallback.sh retrieve-page {NOTION_PARENT_PAGE_ID} --prettyNOTION_PROJECT_PAGE_ID o NOTION_DATABASE_ID:
.pspo-agent/runtime/notion-fallback.sh create-project --pretty.pspo-agent/runtime/notion-fallback.sh save-project-targets --pretty.pspo-agent/runtime/notion-fallback.sh ensure-dependency-relations --prettyBloqueada_por y Bloquea como relacion dualHU-00:
docs/vision.md con .pspo-agent/runtime/notion-fallback.sh sync-vision-from-markdown --prettyNOTION_VISION_PAGE_IDdocs/vision.md y docs/historias/HU-*.md, usa .pspo-agent/runtime/notion-fallback.sh sync-stories-from-folder --prettyHU-00, create/update de HUs, adjuntos y dependencias en dos pasadasunresolvedAssignments y attachmentSkipsdocs/publish-report.md con el resumen local del lote Notion.pspo-agent/runtime/notion-fallback.sh parse-story-markdown --pretty.pspo-agent/runtime/notion-fallback.sh sync-story-from-markdown --prettysync-story-from-markdown debe encapsular el carril base find-story-page -> create-story-page o update-story-page -> upload-and-attach-markdownsync-story-from-markdown debe dejar tambien resuelto el equivalente a .pspo-agent/runtime/notion-fallback.sh upload-and-attach-markdown --pretty.md ya estaba adjunto, debe evitar re-subirlo y reportarlo como attachmentSkips.pspo-agent/runtime/notion-fallback.sh resolve-user-by-email --pretty solo si necesitas diagnosticar una asignacion no resueltaHU-XX.pspo-agent/runtime/notion-fallback.sh sync-story-dependencies-from-markdown --prettysync-story-dependencies-from-markdown debe terminar delegando en set-story-dependenciesBloqueada_por debe apuntar a las paginas de las HUs previasBloquea debe aparecer por la relacion dualDocumento_MD tiene el .mdAsignado_a tiene people si el email se resolvioBloqueada_por y Bloquea reflejan dependencias reales cuando aplicaunresolvedAssignments no esta vacio, repórtalo como revision manual pendientedocs/publish-report.md existe y resume vision, HUs, asignaciones pendientes y adjuntos reutilizados.md debe quedar adjuntopeoplerelation, no solo en textoSolo si el proveedor activo es trello, aplica desde aqui la ruta Trello original.
publisherCuando prepares el Task hacia publisher, el prompt DEBE dejar cerrados estos puntos:
create-cards, nunca create-card.{
"listId": "LIST_ID",
"cards": [
{
"name": "HU-01: ...",
"desc": "Resumen ejecutivo",
"idLabels": ["LABEL_ID"],
"idMembers": ["MEMBER_ID"],
"pos": "bottom"
}
]
}
.md adjuntomemberId resuelto si ya lo conocesmemberId no esta resuelto todavia, el publisher DEBE ejecutar primero invite-member y luego get-board-members antes de crear o sincronizar la tarjeta.publisher DEBE verificar con get-card que la tarjeta final tiene:
.mdidMembers cuando la HU tenia owneridMembers, la publicacion de esa HU no puede contarse como exito total.TRELLO_BOARD_ID configurado en .env.Si falta alguno de estos prerequisitos, redirige al flujo correcto:
/pspo-agent:onboarding/pspo-agent:discovery/pspo-agent:onboardingSi existe .pspo-agent/runtime/autopilot-context.md y
.pspo-agent/runtime/final-gate.status vale plan-publish, interpreta que el
usuario ya eligio publicar desde la gate final. En ese caso:
docs/publish-report.md.pspo-agent/runtime/trello-fallback.sh para evitar deriva entre skillsAntes de cualquier interaccion con Trello, asegurate de que las historias estan persistidas en el sistema de ficheros. Ejecuta /pspo-agent:save-docs si no se ha ejecutado ya.
Esto garantiza que si la publicacion en Trello falla, el trabajo del usuario no se pierde.
Validacion obligatoria antes de continuar:
docs/historias/.docs/historias/HU-*.md.docs/backlog.md pero NO existen los ficheros individuales, detente y ejecuta /pspo-agent:save-docs para dividir el backlog en HUs individuales. No intentes publicar desde un backlog monolitico.Lee la configuracion del tablero con el agente publisher (herramienta get-board) para obtener:
Determinar la lista destino para cada HU:
docs/sprint-plan.md si existe para saber que HUs estan en el sprint activo.docs/dependencias.md, usalo para detectar HUs con dependencias confirmadas aun no resueltas.manage-lists antes de publicar. No la uses como alias permanente.manage-lists.IMPORTANTE: Usa siempre AskUserQuestion para presentar opciones. NUNCA listes opciones como texto plano.
Una vez confirmada la lista destino, lee cada fichero de docs/historias/HU-*.md para extraer:
Si alguna HU no tiene Asignado a, NO la publiques todavia:
/pspo-agent:assign.Si las historias no tienen estimacion (talla):
/pspo-agent:sprint-plan.IMPORTANTE: Usa siempre AskUserQuestion para presentar opciones. NUNCA uses confirmaciones de texto plano.
Presenta la vista previa al usuario:
=== Vista previa de publicacion ===
Tablero destino: {nombre_tablero}
URL: {url_tablero}
Tarjetas a crear:
| # | Titulo | Prioridad | Talla | Lista destino | Asignado a |
|---|--------|-----------|-------|---------------|------------|
| 1 | HU-01: {titulo} | Alta | M | Sprint activo | Ana Garcia |
| 2 | HU-02: {titulo} | Media | L | Sprint activo | Pedro Lopez |
| 3 | HU-03: {titulo} | Alta | S | Backlog | Sin asignar |
Cada tarjeta incluira:
- Descripcion resumida con prioridad y estimacion
- Fichero .md completo como adjunto
- Checklist "Definition of Done" (si configurada)
- Checklist "Dependencias" (si la HU tiene dependencias confirmadas)
- Miembro asignado
- Etiquetas operativas: Asignada, Bloqueada y/o Bloqueante cuando corresponda
Usa AskUserQuestion para confirmar solo en modo interactivo:
IMPORTANTE: Usa siempre AskUserQuestion para presentar opciones. NUNCA uses confirmaciones de texto plano. En modo autonomo o autopilot, la confirmacion ya se recibio en la gate final y debes continuar sin volver a preguntar.
Antes de crear tarjetas, usa el agente publisher con la herramienta search-cards para buscar tarjetas existentes en el tablero que tengan titulos similares.
Si encuentra duplicados potenciales:
get-card + update-card y continua.IMPORTANTE: Usa siempre AskUserQuestion para presentar opciones. NUNCA listes opciones como texto plano.
Si existe un CSV de equipo compatible:
/pspo-agent:team.Invitar miembros: Lee los emails del equipo desde el CSV compatible e invita a cada miembro al tablero usando invite-member. Este paso se ejecuta UNA VEZ. Si un miembro ya esta en el tablero, no pasa nada.
Obtener IDs de miembros: Usa primero el memberId devuelto por invite-member para el email exacto invitado. Si no llega, usa get-board-members como fallback para buscar el ID de Trello por nombre o username.
Informa brevemente: "Invitaciones enviadas a {N} miembros. {X} miembros mapeados para asignacion a tarjetas."
Si una HU tiene Asignado a pero no consigues memberId, esa tarjeta no se considera completa. Debe aparecer en el reporte final como "requiere revision manual por asignacion pendiente".
El Task hacia publisher NO puede omitir esta informacion. Si vas a delegar sin emails, nombres o memberId esperados, detente y prepara mejor el payload antes de lanzar el agente.
Antes de publicar, pasa las descripciones de las tarjetas por el agente culture-guardian para asegurar que el texto que llega a Trello tiene acentos correctos, tono profesional y es detallista.
Antes de crear o sincronizar tarjetas, usa manage-labels para garantizar que existen estas etiquetas operativas del tablero:
Critica, Alta, Media, BajaAsignada (green), Bloqueada (red), Bloqueante (purple)IMPORTANTE SOBRE PERMISOS: A partir de este punto, ejecuta TODAS las llamadas MCP de forma CONTINUA y AUTOMATICA. No pidas confirmacion al usuario entre tarjetas. El usuario ya confirmo en la vista previa.
IMPORTANTE SOBRE DELEGACION:
Task con publisher.autopilot, o si el publisher deriva o no tiene trello-client, usa directamente .pspo-agent/runtime/trello-fallback.sh.publisher pierde acceso al MCP, usa solo el fallback oficial trello-fallback.py.Procesamiento en lotes de 5 tarjetas:
Para evitar perdida de contexto con muchas historias, procesa las tarjetas en lotes de 5:
Para CADA lote:
Para CADA historia del lote, ejecuta estos pasos en orden:
search-cards por HU-XX.create-cards. La descripcion DEBE seguir el formato estandar del agente publisher. Incluir idMembers si el miembro asignado tiene ID de Trello mapeado. Enviar a la lista correcta (Sprint activo, Bloqueada o Backlog segun sprint-plan.md y docs/dependencias.md), junto con las etiquetas de prioridad y las operativas que apliquen.get-card y update-card para sincronizar solo los cambios de:
actualizada, no como duplicada.attach-file: si la tarjeta es nueva, adjunta siempre el fichero completo HU-XX-titulo.md. Si la tarjeta ya existia, re-adjunta solo si el fichero no figura ya en los adjuntos de get-card.add-checklist: anade el checklist "Definition of Done" con los criterios de docs/dod.md (si existe y si no esta ya presente).add-checklist solo si aun no existe. Incluye items del tipo Depende de HU-03 - Confirmada - Pendiente.Al terminar cada lote, muestra progreso:
Lote {N}/{total_lotes}: {X} tarjetas creadas. Continuando...
No pidas confirmacion individual por cada tarjeta ni entre lotes. La confirmacion se pide UNA SOLA VEZ en la vista previa. Despues, ejecuta todo sin interrupciones.
Despues de crear todas las tarjetas, ejecuta una verificacion:
search-cards con el agente publisher para obtener las tarjetas recien creadas..md, tambien incluyela como "requiere revision manual".idMembers esta vacio, NO la cuentes como correcta aunque el texto de la descripcion diga "Asignado:".Cuando una tarjeta se publique correctamente:
docs/historias/HU-XX-*.md correspondiente:
Estado -> Publicada en TrelloUltima modificacion -> fecha actualdocs/backlog.md para reflejar el nuevo estado.docs/publish-report.md con el resumen de URLs creadas, duplicadas y errores.Muestra el resultado completo al usuario:
Si todo fue exitoso:
=== Publicacion completada ===
Se han creado {N} tarjetas en el tablero "{nombre_tablero}":
| # | Titulo | Lista | Miembro | URL |
|---|--------|-------|---------|-----|
| 1 | HU-01: {titulo} | Sprint activo | Ana Garcia | https://trello.com/c/... |
| 2 | HU-02: {titulo} | Sprint activo | Pedro Lopez | https://trello.com/c/... |
| 3 | HU-03: {titulo} | Backlog | -- | https://trello.com/c/... |
Cada tarjeta incluye:
- Descripcion resumida con estimacion y prioridad
- Fichero .md completo como adjunto
- Checklist "Definition of Done" (si configurada)
- Checklist "Dependencias" cuando aplica
- Miembro asignado real en Trello
- Etiquetas operativas sincronizadas
Las historias tambien estan guardadas localmente en docs/historias/.
Si hubo errores parciales:
=== Publicacion parcial ===
Tarjetas creadas ({X}):
| # | Titulo | URL |
|---|--------|-----|
| 1 | HU-01: {titulo} | https://trello.com/c/... |
Tarjetas con error ({Y}):
| # | Titulo | Error |
|---|--------|-------|
| 2 | HU-02: {titulo} | {descripcion del error} |
Las historias con error estan guardadas localmente en docs/historias/.
Puedes reintentar la publicacion ejecutando /pspo-agent:publish.
Este es el final del flujo. No preguntes que quiere hacer. Si el usuario quiere planificar sprint, exportar o hacer otra cosa, lo dira el.
get-card confirma idMembers.