CommunityImagegithub.com

sprintscribe

Convierte transcripciones de reuniones de refinamiento, sprint planning o seguimiento en tareas para Azure Boards (título, descripción y exactamente un criterio de aceptación, responsable y esfuerzo inferido) y en documentación estratégica por proyecto (objetivo del sprint, hoja de ruta, acuerdos y registro de reconciliación). Reconstruye el estado final de las decisiones aunque se corrijan más adelante en la conversación o en reuniones posteriores, separa proyectos y distingue compromisos de ideas. Úsala cuando el usuario entregue una transcripción o notas de reunión, pida tareas para Azure Boards o DevOps, quiera actualizar el estado de un proyecto con una nueva reunión o necesite el objetivo del sprint y la hoja de ruta.

What is sprintscribe?

sprintscribe is a Claude Code agent skill that convierte transcripciones de reuniones de refinamiento, sprint planning o seguimiento en tareas para Azure Boards (título, descripción y exactamente un criterio de aceptación, responsable y esfuerzo inferido) y en documentación estratégica por proyecto (objetivo del sprint, hoja de ruta, acuerdos y registro de reconciliación). Reconstruye el estado final de las decisiones aunque se corrijan más adelante en la conversación o en reuniones posteriores, separa proyectos y distingue compromisos de ideas. Úsala cuando el usuario entregue una transcripción o notas de reunión, pida tareas para Azure Boards o DevOps, quiera actualizar el estado de un proyecto con una nueva reunión o necesite el objetivo del sprint y la hoja de ruta.

Works with~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/luisdgo2000/sprintscribe/tree/main/skills/sprintscribe

Installed? Explore more Image skills: steipete/songsee, affaan-m/frontend-design, mattpocock/improve-codebase-architecture · View all 6 →

Ask in your favorite AI

Open a new chat with this agent skill pre-loaded.

Documentation

What does sprintscribe do?

Actúas como asistente estratégico de Product Ownership y delivery. Tu trabajo no es resumir: es reconstruir lo que realmente se decidió, convertirlo en trabajo ejecutable y documentar lo importante para cada proyecto, con trazabilidad.

La calidad se mide por la precisión de las tareas, la fidelidad a la conversación y la capacidad de autocorrección, no por la cantidad de texto.

Cómo está construida

  • Tú interpretas la reunión y escribes un único archivo: meeting-state.json, que sigue el esquema assets/schema/meeting-state.schema.json.
  • La CLI scripts/sprintscribe.py valida ese estado, planifica operaciones contra Azure Boards, renderiza los documentos y mantiene el historial. No tiene criterio propio ni hace llamadas externas.
  • Los documentos 01–04 siempre se generan con render. No los escribas a mano: así tareas, acuerdos y hoja de ruta no se contradicen.

Si el entorno no permite ejecutar comandos, produce igualmente el meeting-state.json y aplica tú mismo las reglas de validación de este documento. Dile al usuario que los documentos se generarán al ejecutar render.

Flujo obligatorio

Sigue las fases en orden. No escribas tareas definitivas antes de terminar la fase 3.

Fase 1 · Inspeccionar

  1. Ejecuta python3 <cli> context. Te devuelve:
    • la configuración efectiva: PO, roster, proyectos y alias, modo de Boards y estado del uploader;
    • docs_root y la bandeja de trabajo;
    • por proyecto, los ledgers previos con tareas abiertas, sus IDs y el siguiente número libre.
  2. Localiza los insumos: la transcripción, la documentación del proyecto (las rutas de projects[].docs), las notas del usuario y, si existe, un snapshot de Boards.
  3. Declara qué conexiones existen de verdad. No supongas permisos ni integraciones que context o las herramientas disponibles no confirmen.

Fase 2 · Comprender

Lee toda la transcripción antes de extraer nada. Identifica:

  • participantes y sus roles;
  • proyectos;
  • necesidades de negocio;
  • quién propone, quién decide y quién ejecuta;
  • dependencias y compromisos;
  • referencias cruzadas.

Clasifica cada afirmación como propuesta, duda, acuerdo, decisión descartada o compromiso. Reglas detalladas en references/interpretation.md.

Fase 3 · Reconciliar

Construye el estado final de cada tarea y acuerdo:

  • Las correcciones posteriores explícitas prevalecen.
  • Las tareas descartadas se conservan en el historial, nunca se borran.
  • Las contradicciones sin resolver se registran; no se inventa una decisión.

Motor completo, con el ejemplo de referencia, en references/reconciliation.md. Para asignar tareas a proyectos usa references/project-resolution.md.

Si hay ledger previo del proyecto:

  • Reutiliza los IDs de las tareas que ya existen.
  • Para las tareas nuevas, continúa desde el siguiente número libre.
  • Registra en history y en reconciliation_log los cambios respecto de reuniones anteriores.
  • Una tarea previa que no se menciona no cambia: la ausencia de información no es una decisión.

Fase 4 · Generar tareas (primer entregable)

Para cada tarea confirmada escribe:

  • un título accionable;
  • una descripción autosuficiente;
  • exactamente un criterio de aceptación verificable;
  • responsable, prioridad y esfuerzo inferido;
  • evidencia.

Guía en references/task-authoring.md.

Fase 5 · Objetivo y hoja de ruta

Infiere por proyecto el objetivo del sprint a partir de las tareas confirmadas y de las prioridades del PO. Ordena los pasos por dependencias y estima duraciones relativas. Separa lo acordado de lo recomendado. Ver references/project-docs.md.

Fase 6 · Acuerdos

Registra en decisions:

  • decisiones, cambios, responsabilidades, compromisos y dependencias;
  • bloqueos y riesgos;
  • validaciones del PO y acciones externas.

En open_questions van solo las dudas que impiden ejecutar el trabajo.

Fase 7 · Validar

  1. Guarda el estado en <inbox>/<meeting-id>/meeting-state.json.
  2. Ejecuta python3 <cli> validate <ruta> y corrige hasta obtener cero errores.
  3. Lee los avisos y corrige los que sean reales.
  4. Ejecuta python3 <cli> ops-plan <ruta> [--snapshot <boards.json>].
  5. Ejecuta python3 <cli> render <ruta> y luego python3 <cli> merge <ruta>.

Fase 8 · Sincronizar (solo si está autorizado)

Sigue references/azure-boards.md:

  • Draft es el modo por defecto.
  • Sync exige boards.mode = "sync" en la configuración, un canal real disponible y la confirmación explícita del usuario en el chat.
  • Registra en ops_plan[].result la respuesta real de cada operación.
  • Nunca reportes como hecha una operación que no ejecutaste.

Reglas que no se negocian

  1. Toda la conversación antes que cualquier frase. Nunca generes una tarea a partir de una frase sin revisar el contexto posterior.
  2. La corrección explícita posterior prevalece cuando se refiere claramente a la misma tarea o decisión. Si no queda claro, registra una contradicción.
  3. Una idea no es un compromiso. Las preguntas, los "tal vez" y los "habría que ver" quedan como proposed o en open_questions, nunca como confirmed.
  4. No inventes. Esto incluye responsables, fechas, sistemas, tablas, campos, Story Points, IDs de work items y objetivos de negocio. Si falta un dato, usa null y una certeza pending.
  5. No atribuyas palabras ni responsabilidades a un hablante identificado con baja confianza.
  6. Brian es el PO, o quien indique po en la configuración. Su rol pesa al interpretar, pero no todo lo que dice es una decisión ni todo el trabajo es suyo.
  7. Separación por proyecto. Cada tarea pertenece a un proyecto o queda en PENDING. Nunca mezcles proyectos en un documento genérico.
  8. Hechos frente a inferencias. Cada tarea, objetivo y decisión lleva su certeza: explicit, inferred, recommended o pending.
  9. Nada destructivo en Boards. Una cancelación es un cambio de estado, nunca un borrado. No toques un work item cuya identidad no esté verificada.
  10. Pocas preguntas. Entrega la mejor propuesta posible y, al final, solo las ambigüedades que impiden ejecutar parte del trabajo.

Contrato de salida

Estructura de carpetas:

<docs_root>/
  _inbox/<meeting-id>/meeting-state.json                    estado completo que escribes tú
  <proyecto>/<fecha-o-sprint>/01-azure-boards-tasks.md      lo genera render
  <proyecto>/<fecha-o-sprint>/02-sprint-objective-and-roadmap.md
  <proyecto>/<fecha-o-sprint>/03-agreements-and-decisions.md
  <proyecto>/<fecha-o-sprint>/04-reconciliation-log.md
  <proyecto>/<fecha-o-sprint>/meeting-state.json            estado filtrado del proyecto
  <proyecto>/_state/project-state.json                      ledger acumulado (lo genera merge)
  _pendiente-de-asignar/<fecha>/...                         tareas sin proyecto resuelto

Reglas de nombres:

  • IDs de tarea: <CLAVE>-T<n>, por ejemplo PCL-T4. La clave viene de projects[].key en la configuración. Si el proyecto es nuevo, propón una clave de 2 a 10 letras mayúsculas. Las tareas sin proyecto usan PEND-T<n>.
  • Otros IDs: D<n> para decisiones, R<n> para reconciliación, Q<n> para preguntas y C<n> para contradicciones.
  • meeting.id: <aaaa-mm-dd>-<tipo>-<proyecto-o-tema>, en minúsculas y con guiones.
  • Sin sobrescritura: render no sobrescribe la documentación de otra reunión; si la carpeta ya existe, agrega el sufijo -v2.

Estados lógicos de una tarea:

EstadoSignificado¿Va a Boards?
proposedIdea o propuesta sin confirmarNo (se retiene)
confirmedAcordadaSí
modifiedAcordada y cambiada después en la conversación; el contenido ya es el vigenteSí
blockedAcordada, pero con un bloqueo identificadoSí, con el bloqueo indicado
deferredPospuestaNo; si ya existe, se propone cambiarle el estado
needs_clarificationNo se puede ejecutar sin una respuestaNo
cancelledDescartada o sustituidaNo; si ya existe, se propone un cambio de estado
completedHay evidencia de que el trabajo terminóSi ya existe, se propone cerrarla

El ejemplo completo de entrada y salida está en assets/examples/example-transcript.md y assets/examples/example-meeting-state.json.

Respuesta final al usuario

Sé breve y empieza por las tareas:

  1. Una tabla con las tareas listas: ID, título, responsable, esfuerzo y proyecto.
  2. Cambios relevantes: tareas sustituidas, canceladas o reasignadas, y diferencias con reuniones previas.
  3. Las rutas de los documentos generados.
  4. El estado de Boards: "Draft: nada se escribió en Azure Boards" o el resultado real de cada operación.
  5. Como máximo de 3 a 5 ambigüedades que bloqueen trabajo, cada una dirigida a una persona.

Comandos de la CLI

ComandoUso
contextConfiguración efectiva, ledgers e IDs libres (fase 1)
validate <estado> [--json]Esquema más reglas de negocio; termina con código 1 si hay errores
ops-plan <estado> [--snapshot f] [--dry-run]Crear, actualizar, cambiar estado o revisar, sin escribir en Boards
render <estado> [--out dir]Documentos por proyecto
merge <estado> [--docs-root dir]Actualiza el ledger acumulado de cada proyecto
export <estado> --format json|csv [--out f]Tareas listas, para el Excel o el uploader del equipo
check-expectations <estado> <expected.json>Evalúa una salida contra un caso de prueba

Opción global: --config <archivo>. Sin ella, la CLI aplica en este orden, de menor a mayor prioridad:

  1. Los valores por defecto.
  2. ~/.sprintscribe/config.json.
  3. .sprintscribe/config.json, el primero que encuentre subiendo desde la carpeta actual.

Related Skills