Help us improve
Share bugs, ideas, or general feedback.
From mercadona-user-story-toolkit
Detects overly large user stories and applies heuristic splitting to decompose them into small, safe, valuable increments. Works after validate-stories, as last step before prioritization/execution.
npx claudepluginhub josemerca/mercadona-user-story-toolkitHow this skill is triggered — by the user, by Claude, or both
Slash command
/mercadona-user-story-toolkit:story-splittingThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Asiste al usuario en detectar stories demasiado grandes y propone heurísticas para descomponerlas en incrementos pequeños, seguros y valiosos.
Breaks large stories or epics into smaller deliverable stories using 8 systematic splitting patterns. Use when backlog items are too big for estimation, sequencing, or independent release.
Decomposes features into granular, INVEST-compliant user stories with acceptance criteria, MoSCoW priorities, and relative estimates (S/M/L). Useful for breaking down requirements into 8-hour implementable units.
Breaks PRDs or feature descriptions into implementable user stories with acceptance criteria, priorities, and notes. Use for sprint planning or engineering handoff.
Share bugs, ideas, or general feedback.
Asiste al usuario en detectar stories demasiado grandes y propone heurísticas para descomponerlas en incrementos pequeños, seguros y valiosos.
Modo copiloto: Esta skill diagnostica y PROPONE splits, pero NO los aplica automáticamente. Presenta el diagnóstico al usuario y espera confirmación antes de generar splits. Ver shared-config.md §Filosofía del Plugin.
El riesgo crece más rápido que el tamaño del cambio.
Stories pequeñas = Bajo riesgo = Feedback rápido = Aprendizaje Stories grandes = Alto riesgo = Feedback lento = Desperdicio
quality-guard → research → stories → validate-stories → 🆕 SPLIT-STORIES
│
▼
Stories listas
para Jira
| Señal del pipeline | Acción |
|---|---|
| Score Dim 6 (Survivable Experiment) ≤6 | ⚠️ Splitting recomendado |
| Story tiene >3 criterios de aceptación | ⚠️ Revisar si se puede dividir |
| Story cubre >1 iteración del PRD | ⚠️ Dividir por iteración primero |
| Red flags lingüísticos detectados | 🚨 Splitting obligatorio |
Stories con formato del ecosistema (template unificado de shared-config.md):
Si las stories vienen de Jira, OBLIGATORIO leer TODOS los campos (description + custom fields). Ver shared-config.md §Lectura de Stories desde Jira.
Para cada story analizada:
Detector determinista (offload-deterministic): ejecutar el script para identificar coincidencias exactas con boundary-matching, en lugar de escanear con el LLM.
python3 scripts/redflags.py --text "<contenido completo de la story>"
Devuelve los red flags detectados agrupados por categoría. Si no hay matches, no significa que la story sea pequeña — confirmar con el resto del paso.
Leer cada story buscando indicadores lingüísticos en TODOS estos campos:
6 categorías de red flags a buscar:
Ver SKILL-reference.md §S1 para ejemplos detallados de cada categoría.
Cuando detectes estas palabras, marcar la story como candidata a splitting.
Ver SKILL-reference.md §S2 para la tabla completa de decisión Red Flag → Técnica Recomendada (10 patrones con ejemplos).
Antes de proponer splits, presentar el diagnóstico:
He encontrado estos red flags en la story: [tabla de red flags detectados con categoría y texto exacto]
Técnica(s) de splitting recomendada(s): [lista]
¿Estás de acuerdo con el diagnóstico? ¿Hay algún aspecto que no deba dividirse? ¿Hay restricciones de entrega que deba considerar?
Esperar confirmación antes de generar los splits.
Regla cast-wide (Lada Kesseler): No converjas en la primera técnica que encaja. Genera 2-3 propuestas alternativas con técnicas distintas y presenta los trade-offs antes de que el usuario elija.
Para cada alternativa, documenta:
Formato de presentación al usuario:
Opción A (técnica X): split en N stories. Trade-off: ...
Opción B (técnica Y): split en M stories. Trade-off: ...
Opción C (técnica Z): split en P stories. Trade-off: ...
Mi recomendación: <opción> porque <razón>. ¿Con cuál seguimos?
Una vez el usuario elige, entonces detallar los splits de esa opción.
9 heurísticas disponibles (aplicar según red flags detectados):
| # | Heurística | Cuándo aplicar |
|---|---|---|
| 1 | Empezar por los Outputs | Output complejo (reportes, dashboards) |
| 2 | Estrechar el Segmento de Usuario | "para todos los usuarios" |
| 3 | Extraer la Utilidad Básica Primero | Feature bundling ("incluyendo", "con") |
| 4 | Empezar con Dummy, Mover a Dinámico | Múltiples fuentes de datos |
| 5 | Simplificar los Outputs | Múltiples formatos de salida |
| 6 | Dividir por Capacidad | Alcance de volumen amplio |
| 7 | Dividir por Ejemplos de Utilidad | Cambios técnicos grandes |
| 8 | Separar Aprender de Ganar | Incertidumbre técnica alta |
| 9 | Walking Skeleton en Muletas | "tiempo real" / "automatizado" |
Ver SKILL-reference.md §S3 para ejemplos detallados de cada heurística.
Para cada split propuesto, verificar:
Señales de que NO se hizo bien:
Ver SKILL-reference.md §S4 para el template completo de output (diagnóstico, red flags, splits, orden de entrega, impacto en scoring).
Ver SKILL-reference.md §S5 para red flags frecuentes y usuarios válidos para splits. Si tu equipo tiene un
team-context-template.mdconfigurado, se usa para personalizar los ejemplos.
Ver SKILL-reference.md §S6 para guía de tono de coaching y frases útiles.
scripts/redflags.py).