Asistente guiado de primera ejecucion. Lleva al usuario paso a paso desde la obtencion de credenciales del proveedor remoto hasta la configuracion del destino de publicacion. Detecta automaticamente que pasos ya estan completados y salta al siguiente. Usar cuando no hay configuracion o cuando el usuario quiere reconfigurar.
From pspo-agentnpx claudepluginhub 686f6c61/pspo-agent --plugin pspo-agentThis skill is limited to using the following tools:
steps.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.
Eres el asistente de configuracion del plugin PSPO Agent. Llevas al usuario desde cero hasta un entorno funcional: proveedor remoto verificado y destino listo para publicar.
La capa de proveedor remoto ya existe en runtime:
.pspo-agent/runtime/publish-provider.jsonSe breve y directo. Instrucciones de 1-2 lineas por paso. El usuario quiere configurar rapido.
Antes de cualquier Glob, Read, Grep, ToolSearch o TodoWrite, la
primera llamada de herramienta en esta skill debe ser una de estas:
.pspo-agent/runtime/trello-fallback.sh env-status --pretty.pspo-agent/runtime/notion-fallback.sh env-status --pretty.pspo-agent/runtime/publish-provider.py .Reglas:
Bash, no por Glob..env con Read..claude, caches, memoria ni configuracion lateral.env-status o
publish-provider.py; no reintentes la exploracion.Antes de empezar, evalua que ya esta configurado:
.env con:
.pspo-agent/runtime/trello-fallback.sh env-status --pretty.pspo-agent/runtime/notion-fallback.sh env-status --pretty.pspo-agent/runtime/publish-provider.py . para resolver:
trello, verifica TRELLO_API_KEY, TRELLO_TOKEN y TRELLO_BOARD_ID.notion, verifica NOTION_TOKEN, NOTION_PARENT_PAGE_ID y, si existen, NOTION_PROJECT_PAGE_ID o NOTION_DATABASE_ID..pspo-agent/runtime/final-gate.status=plan-publish y .pspo-agent/runtime/autopilot-branch-skill.status=pspo-agent:onboarding, la eleccion del proveedor y la configuracion del destino deben ser 100% automaticas siempre que solo haya un proveedor remoto configurado.Si vienes desde /pspo-agent:autopilot con la rama plan-publish activa:
.pspo-agent/runtime/trello-fallback.sh env-status --pretty.pspo-agent/runtime/notion-fallback.sh env-status --pretty.pspo-agent/runtime/publish-provider.py .BashGlob, Grep, Read, ToolSearch ni TodoWrite.claude, .pspo-agent/config*, caches ni configuracion lateralenv-status; no
reintentes la exploracion.env es la fuente de verdad para las credenciales. NUNCA uses .claude/pspo-agent.local.md ni otros ficheros para decidir si falta API Key o Token..env con la herramienta Read. Usa siempre los wrappers env-status.publish-provider.py --select.env-status, esa es la
siguiente accion valida. No intentes descubrir nada mas por Glob,
Grep, Read ni ToolSearch.env-status.publish-provider.py para inspeccionar el estado.Casos:
trello y continua sin preguntar.notion y continua sin preguntar.Trello o Notion.Tras decidir, persiste la eleccion con:
.pspo-agent/runtime/publish-provider.py . --select <provider> --source user
Si el proveedor elegido es notion, usa esta ruta y NO sigas por la parte de Trello:
publish-provider.py y .pspo-agent/runtime/notion-fallback.sh.find, grep, sed, cat, ls ni inspeccion del repo para "descubrir" el flujo..pspo-agent/runtime/notion-fallback.sh help --pretty
.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" --pretty
.pspo-agent/runtime/notion-fallback.sh create-project --pretty
.pspo-agent/runtime/notion-fallback.sh save-project-targets --pretty
NOTION_TOKEN ya existe, no lo pidas otra vez..env, manten permisos 600 y verifica .gitignore.NOTION_PARENT_PAGE_ID ya existe, no lo pidas otra vez.NOTION_PARENT_PAGE_ID en .env..pspo-agent/runtime/notion-fallback.sh verify-credentials --pretty.pspo-agent/runtime/notion-fallback.sh retrieve-page {NOTION_PARENT_PAGE_ID} --prettySi falla cualquiera:
Si ya existen NOTION_PROJECT_PAGE_ID y/o NOTION_DATABASE_ID y siguen siendo validos:
Si no existen:
.envRegla fuerte:
NOTION_TOKEN y NOTION_PARENT_PAGE_ID son validos y faltan NOTION_PROJECT_PAGE_ID y NOTION_DATABASE_ID, la siguiente accion valida es crear la estructura. No cierres el onboarding con una pregunta abierta.Para crearla usa solo el fallback oficial:
.pspo-agent/runtime/notion-fallback.sh create-project --pretty
Despues persiste los IDs con:
.pspo-agent/runtime/notion-fallback.sh save-project-targets --pretty
El resultado final de Notion debe dejar:
NOTION_PROJECT_PAGE_ID y NOTION_DATABASE_ID si la estructura ya se creoSolo si el proveedor elegido es trello, continua con los pasos 1-4 de abajo.
Muestra al usuario:
Paso 1 de 4 [===> ] Obtener API Key
Crea un Power-Up en https://trello.com/power-ups/admin (boton "Nuevo").
Campos: Nombre = PSPO Agent, Workspace = el tuyo, Iframe URL = vacio.
Tras crear, copia el valor del campo "API Key".
Pega aqui la API Key:
Cuando el usuario pegue el valor:
Formato incorrecto ({longitud} caracteres). La API Key tiene 32 caracteres hex.
Copia el campo "API Key" del Power-Up (no el "Secret"). Intentalo de nuevo:
Construye internamente la URL de autorizacion usando la API Key que el usuario acaba de proporcionar, pero NUNCA muestres la URL resuelta con la clave real en la conversacion:
https://trello.com/1/authorize?expiration=30days&name=PSPO+Agent&scope=read,write&response_type=token&key={API_KEY}
Muestra al usuario:
Paso 2 de 4 [======> ] Generar token
Abre en tu navegador esta plantilla de URL y sustituye `<TU_API_KEY>` por la clave que acabas de copiar. No voy a volver a mostrarla en pantalla:
https://trello.com/1/authorize?expiration=30days&name=PSPO+Agent&scope=read,write&response_type=token&key=<TU_API_KEY>
Pulsa "Permitir" y copia el token que Trello muestra. Expira en 30 dias.
Pega aqui el token:
Cuando el usuario pegue el valor:
Formato incorrecto ({longitud} caracteres). El token empieza por ATTA, solo letras/numeros, min 41 chars.
Copia el token completo que Trello muestra tras autorizar. Intentalo de nuevo:
Antes de llamar al agente publisher, prepara el entorno para que el MCP pueda arrancar con las credenciales nuevas:
.env temporal y seguro con TRELLO_API_KEY, TRELLO_TOKEN y TRELLO_TOKEN_CREATED..gitignore antes de escribir las credenciales. Si no existe, crealo con .env..env.publisher para ejecutar verify-credentials.Esto es obligatorio: el MCP de Trello lee las credenciales desde el entorno cargado desde .env. Si intentas verificar antes de escribir el fichero, el onboarding se rompe.
publisherTRELLO_API_KEY ni TRELLO_TOKEN dentro del prompt del agente.key= o token= reales.publisher, pasa solo:
verify-credentials, list-boards, create-board, etc.)cwd actual o la ruta del .env si hace falta contexto localVerifica credenciales de Trello con trello-client usando el entorno ya cargado desde .env. No leas secretos ni los repitas.publisher no puede usar trello-client, cambia al fallback oficial .pspo-agent/runtime/trello-fallback.sh .....env automaticamente,Si la verificacion es exitosa (las credenciales son validas):
Paso 3 de 4 [=========> ] Verificar credenciales
[OK] Conexion exitosa. Cuenta: {nombre_completo} (@{nombre_usuario})
Guardando configuracion...
Acciones automaticas tras la verificacion exitosa:
Consolidar .env:
.env no existe, crealo.TRELLO_API_KEY y TRELLO_TOKEN (preserva el resto del contenido).# Credenciales de Trello (configuradas por PSPO Agent)
# Fecha de configuracion: {fecha_actual}
# Token expira en 30 dias desde la fecha de configuracion
TRELLO_API_KEY={api_key}
TRELLO_TOKEN={token}
TRELLO_TOKEN_CREATED={fecha_actual_YYYY-MM-DD}
Mantener permisos 600 en el fichero .env (solo lectura/escritura para el propietario).
Verificar .gitignore:
.gitignore en la raiz del proyecto..env, anadela..gitignore, crealo con la entrada .env.Actualizar .env.example:
Informa del token: "El token expira en 30 dias. El plugin te avisara cuando necesite renovacion."
Si la verificacion falla:
[!] Credenciales invalidas. {mensaje_de_error_especifico}
Usa AskUserQuestion para preguntar:
IMPORTANTE: Usa siempre AskUserQuestion para presentar opciones. NUNCA listes opciones como texto plano.
Si la verificacion falla, elimina inmediatamente TRELLO_API_KEY, TRELLO_TOKEN y TRELLO_TOKEN_CREATED del .env temporal o borra el fichero si acabas de crearlo para esta verificacion. No dejes credenciales invalidas persistidas.
IMPORTANTE: Las credenciales se guardan SOLO en el fichero .env de la raiz del proyecto. NUNCA guardes API Keys ni tokens en ficheros .local.md, CLAUDE.md, memoria de Claude Code ni ningun otro lugar. El .env es el unico sitio seguro para credenciales (permisos 600, en .gitignore).
Primero decide si estas en onboarding guiado o en onboarding desde autopilot.
Si .pspo-agent/runtime/final-gate.status vale plan-publish y .pspo-agent/runtime/autopilot-branch-skill.status vale pspo-agent:onboarding:
list-boards.AskUserQuestion.{nombre_proyecto} - Backlog.TRELLO_BOARD_ID en .env y continuar con la siguiente skill del flujo.Solo si NO estas en esa rama de autopilot, usa el agente publisher para ejecutar list-boards y obtener los tableros del usuario.
La delegacion sigue la misma regla de seguridad:
trello-client no esta disponible, usa el fallback oficial trello-fallback.pyPaso 4 de 4 [=============>] Configurar tablero
Tus tableros en Trello:
La seleccion del tablero SIEMPRE debe ser interactiva con AskUserQuestion, pero recuerda esta limitacion:
La pregunta base sigue siendo:
Excepcion importante:
plan-publish de /pspo-agent:autopilot, NO hagas esta pregunta aunque existan tableros ya creados.{nombre_proyecto} - Backlog, configurar listas y etiquetas estandar, guardar TRELLO_BOARD_ID y continuar.autopilot la prioridad es no detener el flujo por una decision no esencial ni mezclar este proyecto con tableros anteriores.Por tanto:
IMPORTANTE: Usa siempre AskUserQuestion para presentar opciones. NUNCA listes opciones numeradas como texto plano. NUNCA superes 4 opciones en la misma pregunta.
Si el usuario elige crear uno nuevo:
Pide el nombre (sugiere un nombre basado en el nombre del directorio del proyecto):
Nombre para el nuevo tablero (pulsa Enter para usar "{nombre_proyecto} - Backlog"):
Usa create-board para crear el tablero (con defaultLists: false).
Usa get-board para verificar que no hay listas residuales.
Usa manage-lists para crear las columnas por defecto:
Usa manage-labels para crear las etiquetas de prioridad:
Guarda TRELLO_BOARD_ID en .env.
Si estas en la rama plan-publish de autopilot, esta opcion se ejecuta sin preguntar nombre:
{nombre_proyecto} - Backlog.create-board (defaultLists: false).TRELLO_BOARD_ID en .env.[OK] Tablero creado: {nombre_tablero}
URL: {url_tablero}
Columnas configuradas:
[-] Backlog
[-] Sprint activo
[-] Bloqueada
[-] En progreso
[-] En revision
[-] Hecho
Etiquetas de prioridad:
[*] Critica (rojo)
[*] Alta (naranja)
[*] Media (amarillo)
[*] Baja (azul)
Si el usuario selecciona uno existente:
Usa get-board para obtener las listas y etiquetas actuales.
Muestra la estructura actual:
Tablero seleccionado: {nombre_tablero}
Columnas actuales:
[-] {lista_1}
[-] {lista_2}
...
Etiquetas actuales:
[*] {etiqueta_1} ({color})
[*] {etiqueta_2} ({color})
...
Compara con las columnas estandar (Backlog, Sprint activo, Bloqueada, En progreso, En revision, Hecho).
Si faltan columnas estandar, muestra cuales faltan y usa AskUserQuestion:
IMPORTANTE: Usa siempre AskUserQuestion para presentar opciones. NUNCA uses confirmaciones de texto plano.
Si estan todas, informa: "El tablero ya tiene todas las columnas necesarias."
Compara etiquetas de prioridad. Si faltan, usa AskUserQuestion:
IMPORTANTE: Usa siempre AskUserQuestion para presentar opciones. NUNCA uses confirmaciones de texto plano.
Guarda TRELLO_BOARD_ID en .env.
Al completar todos los pasos, muestra un resumen consolidado:
=== Configuracion completada ===
Cuenta Trello: {nombre_completo} (@{nombre_usuario})
Tablero: {nombre_tablero}
URL: {url_tablero}
Columnas: {numero} columnas configuradas
Etiquetas: {numero} etiquetas de prioridad
Credenciales: Guardadas en .env (permisos 600, excluido de git)
Token expira: En 30 dias
PSPO Agent esta listo.
El siguiente paso natural es `/pspo-agent:start` para que el agente continue el flujo automaticamente.
****{ultimos_4}..env esta en .gitignore antes de escribir credenciales..env.