User Story Writer logo

User Story Writer

CommunityPopular
mohitagw15856
user-story-writer

Escribir historias de usuario bien estructuradas con criterios de aceptación y casos extremos. Úsalo cuando te pidan escribir historias de usuario, crear tickets a partir de un resumen de características, convertir un PRD en historias o redactar criterios de aceptación. Produce historias listas para estimar en formato estándar con criterios de aceptación claros, casos extremos y definición de hecho.

Overview

Publishermohitagw15856
Repositorypm-claude-skills
Skill nameuser-story-writer
Stars
1.4K
Forks
257
Bundled files
Instructions only
LicenseMIT
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • Self-contained

    Everything the model needs lives in the instructions — no extra files to sync.

  • Open source

    Published by mohitagw15856 on GitHub. Read the source before you install it.

Installation

Install the User Story Writer AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/mohitagw15856/pm-claude-skills/tree/main/i18n/es/skills/user-story-writer
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/mohitagw15856/pm-claude-skills.git /tmp/pm-claude-skills
mkdir -p .claude/skills
cp -r /tmp/pm-claude-skills/i18n/es/skills/user-story-writer .claude/skills/user-story-writer
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable User Story Writer in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads User Story Writer on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so User Story Writer is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

Skill User Story Writer

Esta habilidad produce historias de usuario listas para producción a partir de un resumen de características, una sección de PRD o una descripción verbal. Cada historia sigue el formato estándar con un claro quién/qué/por qué, criterios de aceptación conductuales en formato Given/When/Then, casos extremos y definición de hecho. El resultado está listo para copiar y pegar en Jira, Linear o tu herramienta de planificación.

Entradas Requeridas

Pide al usuario estos datos si no están proporcionados:

  • Característica o cambio a desglosar en historias — copia el resumen, sección de PRD o describe la característica
  • Tipos de usuario / personas involucradas (p. ej. administrador, usuario final, invitado, consumidor de API)
  • Alcance — ¿escribimos una historia o desglozamos una épica en un conjunto completo de historias?
  • Preferencia de formato de criterios de aceptación — Given/When/Then, lista de verificación con viñetas o ambos?
  • Restricciones técnicas o notas — cualquier cosa que el equipo de ingeniería haya señalado y que deba conformar las historias

Estructura del Resultado

Para cada historia:


Historia: [Título breve — verbo + sustantivo, p. ej. "Filtrar resultados de búsqueda por rango de fechas"]

Épica: [Nombre de la épica principal — p. ej. "Búsqueda Avanzada"] ID de Historia: [ID de Jira/Linear — deja en blanco si aún no se ha creado] Prioridad: [P1 / P2 / P3] Puntos de historia: [Deja en blanco — para que el equipo de ingeniería estime]


Historia de Usuario

Como [tipo de usuario específico — no "usuario"], Quiero [acción concreta que desean realizar], Para [el resultado que logran — valor de negocio, no descripción de la característica].

Ejemplo:

Como gerente de cuenta, Quiero filtrar mi lista de clientes por fecha de último contacto, Para poder identificar rápidamente los clientes con los que no he hablado en más de 30 días y priorizar el seguimiento.


Contexto

[1–3 oraciones de contexto que no están en la historia de usuario: cuándo importa esta historia, qué la desencadena, cómo se ajusta en un flujo más amplio. Esto ayuda a los ingenieros a entender el por qué antes de que pregunten.]


Criterios de Aceptación

Formato: Given / When / Then

Cada criterio prueba un comportamiento específico. Escribe un GWT por resultado observable — no un GWT para toda la característica.

CA1: [Nombre corto para este criterio]

Given [estado inicial o contexto]
When [acción del usuario]
Then [comportamiento observable del sistema]

CA2: [Nombre corto]

Given [...]
When [...]
Then [...]

CA3: [Nombre corto]

Given [...]
When [...]
Then [...]

Casos Extremos

[Lista escenarios que no son obvios pero que deben manejarse. Estos se convierten en ACs adicionales o notas para ingeniería.]

  • [Caso extremo 1]: [p. ej. El usuario aplica un filtro de fecha que devuelve 0 resultados — mostrar estado vacío con mensaje claro y una acción "limpiar filtros"]
  • [Caso extremo 2]: [p. ej. El usuario tiene >10,000 clientes — el filtro no debe degradar el tiempo de carga >200ms]
  • [Caso extremo 3]: [p. ej. El filtro de fecha persiste en la actualización de página — o explícitamente no debe si esa es la decisión]
  • [Caso extremo de permisos]: [p. ej. Los usuarios de solo lectura pueden ver el filtro pero no pueden guardar presets de filtro]

Fuera de Alcance

[Indica explícitamente qué NO cubre esta historia — previene el aumento de alcance y clarifica dónde comienza la siguiente historia.]

  • Guardar y compartir presets de filtro (historia separada — ver [Historia X])
  • Acciones en masa en resultados filtrados
  • Exportar lista de clientes filtrada a CSV

Definición de Hecho

  • Todos los criterios de aceptación se cumplen
  • Casos extremos manejados (o explícitamente diferidos con un nuevo ticket abierto)
  • Pruebas unitarias escritas para cada CA
  • Funciona en viewport móvil (si aplica)
  • Accesibilidad: navegable con teclado y compatible con lectores de pantalla
  • Los estados de error se manejan y el texto está aprobado
  • Producto y diseño han revisado en staging
  • Sin errores en consola en la compilación de producción

Plantilla de Desglozamiento de Épica

Si el usuario proporciona una épica o resumen de características, desglózala en un conjunto completo de historias antes de escribirlas:

Épica: [Nombre] Objetivo: [¿Qué resultado logra completar esta épica?] Historias:

#HistoriaNotasDependencias
1[Historia del camino feliz principal — la versión más simple de la característica que entrega valor]
2[Historia de validación / manejo de errores]Depende de #1
3[Historia de caso extremo o usuario avanzado]Depende de #1
4[Historia de administrador o configuración]
5[Historia de rendimiento o escala — si aplica]Depende de #1

Orden sugerido de sprint: [¿Qué historias son P1 para MVP? ¿Cuáles pueden seguir en un sprint posterior?]


Anti-patrones Comunes de Historias — y Soluciones

Usa estos para revisar historias antes de entregarlas a ingeniería:

Anti-patrónEjemploSolución
Solución en la historia"Como usuario quiero un filtro desplegable"Elimina la decisión de UI — "Como usuario quiero filtrar por rango de fechas"
"Para qué" vago"para que sea más fácil de usar"Hazlo específico — "para que pueda priorizar el seguimiento sin abrir cada registro manualmente"
Demasiado grandeLa historia cubre 5 flujos de usuario distintosDivide en historias separadas por flujo
Sin criterios de aceptaciónLa historia solo tiene descripciónAgrega al menos 3 criterios GWT antes de que ingeniería empiece
ACs que prueban la solución, no el comportamiento"Given el desplegable está abierto, When selecciono una opción"Prueba el resultado — "Given he aplicado un filtro de fecha, When veo mis resultados, Then solo aparecen clientes contactados en ese rango de fechas"
Falta estado vacíoSin CA para qué sucede con 0 resultadosAgrégalo — los estados vacíos son parte de la característica
Falta estado de errorSin CA para fallo de red o entrada inválidaAgrega explícitamente ACs de manejo de errores

Ejemplo: Conjunto Completo de Historias para una Característica

Resumen de característica: "Permitir a los usuarios exportar su historial de facturas como PDF o CSV"


Historia 1: Exportar lista de facturas como CSV

Como administrador de finanzas, Quiero exportar mi historial de facturas como archivo CSV, Para poder importarlo en nuestro software de contabilidad sin entrada manual de datos.

CA1: Exportación exitosa

Given estoy en la página de Facturas con al menos una factura
When hago clic en "Exportar" y selecciono "CSV"
Then se descarga un archivo CSV que contiene todas las facturas visibles con columnas: ID de Factura, Fecha, Monto, Estado, Nombre del Cliente

CA2: Estado vacío

Given estoy en la página de Facturas sin facturas
When hago clic en "Exportar"
Then el botón de exportar está deshabilitado y un tooltip dice "No hay facturas para exportar"

CA3: Exportación filtrada

Given he aplicado un filtro de fecha mostrando facturas de enero 2026 solo
When hago clic en "Exportar" y selecciono "CSV"
Then la exportación contiene solo facturas de enero 2026 — no todas las facturas

Casos extremos:

  • Exportar con >10,000 facturas — debe completarse en <30s o mostrar un indicador de progreso
  • Exportación activada en móvil — se descarga a la ubicación de descarga predeterminada del dispositivo

Fuera de alcance: Exportación a PDF (Historia 2), exportaciones programadas (épica futura)


Historia 2: Exportar lista de facturas como PDF

Como administrador de finanzas, Quiero exportar mi historial de facturas como PDF formateado, Para poder compartir un resumen profesional con nuestro contador.

[... los ACs siguen el mismo patrón ...]


Verificaciones de Calidad

  • Cada historia tiene un tipo de usuario específico — no "un usuario" o "el sistema"
  • El "para" explica el valor de negocio — no solo descripción de la característica
  • Cada CA prueba un resultado observable — no un conjunto de comportamientos
  • Los estados vacíos, estados de error y casos extremos se manejan explícitamente
  • El alcance fuera se documenta — no se asume
  • Las historias son independientes — pueden entregarse individualmente sin depender de trabajo no lanzado (excepto donde se indica explícitamente)

Anti-patrones

  • No escribas historias de usuario desde una perspectiva técnica — cada historia debe estar desde el punto de vista del usuario y establecer su objetivo
  • No escribas criterios de aceptación que sean inprobables — cada criterio debe tener una condición clara de aprobación/fallo
  • No crees historias demasiado grandes para completar en un solo sprint — desgloza épicas en historias estimables e independientemente entregables
  • No omitas casos extremos — los caminos infelices y estados de error son obligatorios, no opcionales
  • No saltes la Definición de Hecho — sin ella, "hecho" significa cosas diferentes para diferentes personas

Frases Desencadenantes de Ejemplo

  • "Escribe historias de usuario para [característica] a partir de este resumen"
  • "Desgloza esta sección de PRD en historias de usuario con criterios de aceptación"
  • "Convierte estos requisitos de características en tickets de Jira"
  • "Escribe las historias de usuario y ACs para [nombre de característica]"
  • "Desgloza esta épica en historias individuales listas para planificación de sprint"

Frequently asked questions

What does the User Story Writer AI skill do?

Escribir historias de usuario bien estructuradas con criterios de aceptación y casos extremos. Úsalo cuando te pidan escribir historias de usuario, crear tickets a partir de un resumen de características, convertir un PRD en historias o redactar criterios de aceptación. Produce historias listas para estimar en formato estándar con criterios de aceptación claros, casos extremos y definición de hecho.

Why use User Story Writer on TypingMind?

Because you install it once and use it with any model. User Story Writer is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install User Story Writer in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/mohitagw15856/pm-claude-skills/tree/main/i18n/es/skills/user-story-writer. TypingMind reads its SKILL.md and installs it as a skill you can enable per chat.

Which AI models can use User Story Writer?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with User Story Writer?

As many as you like. As long as a model supports skills, you can use User Story Writer with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the User Story Writer AI skill free?

Yes. It is published on GitHub by mohitagw15856 under the MIT license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇