executing-plans
executing-plans
Use when executing an implementation plan in the current session as the implementer yourself — your human partner chose inline execution, or no subagent tool is available
argumentationConstruye argumentos bien estructurados usando la tríada hipótesis-argumento- ejemplo. Cubre la formulación de hipótesis falsificables, la construcción de argumentos lógicos (deductivos, inductivos, analógicos, evidenciales), la provisión de ejemplos concretos y la refutación de contraargumentos mediante el método de steelmanning. Usar al escribir o revisar…
Independent GitHub snapshot · Automated classification · Original documentation governs
Construye argumentos rigurosos desde la hipótesis a través del razonamiento hasta la evidencia concreta. Cada afirmación técnica persuasiva sigue la misma tríada: una hipótesis clara establece qué crees, un argumento explica por qué se sostiene, y los ejemplos prueban que se sostiene. Esta habilidad te enseña a aplicar esa estructura a las revisiones de código, decisiones de diseño, redacción de investigación y cualquier contexto donde las afirmaciones necesiten justificación.
Enunciar tu afirmación como una hipótesis clara y falsificable. Una hipótesis no es una opinión ni una preferencia -- es una afirmación específica que puede comprobarse con evidencia.
Falsificable vs. no falsificable:
| No falsificable (opinión) | Falsificable (hipótesis) |
|---|---|
| "Este código es malo" | "Esta función tiene complejidad O(n^2) donde es alcanzable O(n)" |
| "Deberíamos usar TypeScript" | "El sistema de tipos de TypeScript capturará la clase de errores de referencia nula que causó 4 de nuestros últimos 6 incidentes en producción" |
| "El diseño de la API es más limpio" | "Reemplazar las 5 variantes de endpoint con un único endpoint parametrizado reduce la superficie de API pública en un 60%" |
| "Este enfoque de investigación es mejor" | "El método A logra mayor precisión que el método B en el conjunto de datos X al nivel de confianza del 95%" |
Esperado: Una hipótesis en una oración que sea específica, delimitada y falsificable. Alguien que la lea puede imaginar inmediatamente qué evidencia la confirmaría o refutaría.
En caso de fallo: Si la hipótesis se siente vaga, aplicar la prueba "¿cómo la refutaría?" Si no puedes imaginar evidencia contraria, la afirmación es una opinión, no una hipótesis. Reducir el alcance o añadir criterios medibles hasta que sea comprobable.
Seleccionar la estructura lógica que mejor apoye tu hipótesis. Diferentes afirmaciones requieren diferentes estrategias de razonamiento.
| Tipo | Estructura | Mejor para |
|---|---|---|
| Deductivo | Si A entonces B; A es verdad; por tanto B | Pruebas formales, afirmaciones de seguridad de tipos |
| Inductivo | Patrón observado en N casos; por tanto probable en general | Datos de rendimiento, resultados de pruebas |
| Analógico | X es similar a Y en aspectos relevantes; Y tiene propiedad P; por tanto X probablemente tiene P | Decisiones de diseño, elecciones tecnológicas |
| Evidencial | La evidencia E es más probable bajo la hipótesis H1 que H2; por tanto H1 está apoyada | Hallazgos de investigación, resultados de pruebas A/B |
Relacionar tu hipótesis con el tipo de argumento más fuerte:
Considerar combinar tipos para argumentos más sólidos (p.ej., razonamiento analógico respaldado por evidencia inductiva)
Esperado: Un tipo de argumento elegido (o combinación) con una justificación clara de por qué se adapta a la hipótesis.
En caso de fallo: Si ningún tipo encaja claramente, la hipótesis puede necesitar dividirse en sub-afirmaciones. Dividirla en partes que cada una tenga una estructura de argumento natural.
Construir la cadena lógica que conecta tu hipótesis con su justificación.
Ejemplo trabajado -- Revisión de código (deductivo + inductivo):
Hipótesis: "Extraer la lógica de validación en un módulo compartido reducirá la duplicación de errores en los tres manejadores de API."
Premisas:
- Los tres manejadores (
createUser,updateUser,deleteUser) implementan cada uno la misma validación de entrada con ligeras variaciones (observado ensrc/handlers/)- En los últimos 6 meses, 3 de 5 errores de validación fueron corregidos en un manejador pero no propagados a los demás (ver issues #42, #57, #61)
- Los módulos compartidos aplican una única fuente de verdad para la lógica (deductivo: si una implementación, entonces un solo lugar para corregir)
Cadena lógica: Debido a que los tres manejadores duplican la misma validación (premisa 1), los errores corregidos en uno se pierden en otros (premisa 2, inductivo de 3/5 casos). Un módulo compartido significa que las correcciones se aplican una vez a todos los llamadores (deductivo de semántica de módulo compartido). Por tanto, la extracción reducirá la duplicación de errores.
Contraargumento (steelmanned): "Los módulos compartidos introducen acoplamiento -- un cambio en la validación para un manejador podría romper a los demás."
Refutación: Los manejadores ya comparten intención de validación idéntica; el acoplamiento es implícito y más difícil de mantener. Hacerlo explícito mediante un módulo compartido con opciones parametrizadas (p.ej.,
validate(input, { requireEmail: true })) hace el acoplamiento visible y comprobable. La duplicación implícita actual es más arriesgada porque oculta la dependencia.
Ejemplo trabajado -- Investigación (evidencial):
Hipótesis: "El pre-entrenamiento en corpus específicos del dominio mejora el rendimiento en tareas posteriores más que aumentar el tamaño del corpus general para NER biomédico."
Premisas:
- BioBERT pre-entrenado en PubMed (4,5B palabras) supera a BERT-Large pre-entrenado en inglés general (16B palabras) en 6/6 benchmarks de NER biomédico (Lee et al., 2020)
- SciBERT pre-entrenado en Semantic Scholar (3,1B palabras) supera a BERT-Base en SciERC y JNLPBA a pesar de un corpus de pre-entrenamiento menor
- El escalado de dominio general (BERT-Base a BERT-Large, 3x parámetros) produce ganancias menores en NER biomédico que la adaptación de dominio (BERT-Base a BioBERT, mismos parámetros)
Cadena lógica: La evidencia muestra consistentemente que la selección del corpus de dominio supera la escala del corpus para NER biomédico (evidencial: estos resultados son más probables si la especificidad del dominio importa más que la escala). Tres comparaciones independientes apuntan en la misma dirección, fortaleciendo el caso inductivo.
Contraargumento (steelmanned): "Estos resultados pueden no generalizarse más allá de NER biomédico -- la biomedicina tiene vocabulario inusualmente especializado que infla la ventaja de adaptación de dominio."
Refutación: Limitación válida. La hipótesis está delimitada específicamente a NER biomédico. Sin embargo, ganancias similares de adaptación de dominio aparecen en NLP legal (Legal-BERT) y NLP financiero (FinBERT), lo que sugiere que el patrón puede generalizarse a otros dominios especializados, aunque esa es una afirmación separada que requiere su propia evidencia.
Esperado: Una cadena de argumentos completa con premisas, conexión lógica, un contraargumento presentado mediante steelmanning y una refutación. El lector puede seguir el razonamiento paso a paso.
En caso de fallo: Si el argumento se siente débil, verificar las premisas. Los argumentos débiles generalmente provienen de premisas no respaldadas, no de lógica defectuosa. Encontrar evidencia para cada premisa o reconocerla como un supuesto. Si el contraargumento es más fuerte que la refutación, la hipótesis puede necesitar revisión.
Respaldar el argumento con evidencia verificable de forma independiente. Los ejemplos no son ilustraciones -- son la base empírica que hace comprobable el argumento.
Criterios de selección de ejemplos:
| Criterio | Buen ejemplo | Mal ejemplo |
|---|---|---|
| Verificable independientemente | "El issue #42 muestra que el error se corrigió en el manejador A pero no en B" | "Hemos visto este tipo de error antes" |
| Específico | "createUser en la línea 47 reimplementa la misma expresión regular que updateUser en la línea 23" | "Hay duplicación en la base de código" |
| Representativo | "3 de 5 errores de validación en los últimos 6 meses siguieron este patrón" | "Una vez vi un error como este" |
| Incluye casos extremos | "Este patrón se mantiene para entradas de cadena pero no para la validación de carga de archivos, que tiene restricciones específicas del manejador" | (no se mencionan limitaciones) |
Esperado: Ejemplos concretos que un lector puede verificar de forma independiente. Al menos uno positivo y un caso extremo. Cada uno hace referencia a un artefacto específico (archivo, línea, issue, artículo, conjunto de datos).
En caso de fallo: Si los ejemplos son difíciles de encontrar, la hipótesis puede ser demasiado amplia o no estar fundamentada en la realidad observable. Reducir el alcance a lo que realmente puedes señalar. La ausencia de ejemplos es una señal, no una brecha que rellenar con referencias vagas.
Combinar hipótesis, argumento y ejemplos en el formato apropiado para el contexto.
Para revisiones de código -- estructurar el comentario como:
[S] <resumen en una línea de la sugerencia>
**Hypothesis**: <qué crees que debe cambiar y por qué>
**Argument**: <el caso lógico, con premisas>
**Evidence**: <archivos, líneas, issues o métricas específicas>
**Suggestion**: <cambio de código concreto o enfoque>
Para descripciones de PR -- estructurar el cuerpo como:
## Why
<Hypothesis: qué problema resuelve esto y la afirmación de mejora específica>
## Approach
<Argument: por qué se eligió este enfoque sobre las alternativas>
## Evidence
<Examples: benchmarks, referencias de errores, comparaciones antes/después>
Para ADRs (Architecture Decision Records) -- usar el formato ADR estándar con la tríada mapeada a Context (hipótesis), Decision (argumento) y Consequences (ejemplos/evidencia de resultados esperados)
Para redacción de investigación -- mapear a la estructura estándar: Introduction establece la hipótesis, Methods/Results proporcionan argumento y ejemplos, Discussion aborda contraargumentos
Revisar el argumento ensamblado para:
Esperado: Un argumento completo y formateado apropiado para su contexto. El lector puede evaluar la hipótesis, seguir el razonamiento, verificar la evidencia y considerar los contraargumentos -- todo en una estructura coherente.
En caso de fallo: Si el argumento ensamblado se siente desconectado, la hipótesis puede ser demasiado amplia. Dividirlo en sub-argumentos enfocados, cada uno con su propia tríada hipótesis-argumento-ejemplo. Dos argumentos bien estructurados son más sólidos que uno disperso.
For high-stakes decisions, compose this skill with the advocatus-diaboli agent to form a pre-decision review loop. The pattern:
When to compose vs. use alone:
review-pull-request -- aplicar la argumentación a la retroalimentación estructurada de revisión de códigoreview-research -- construir argumentos basados en evidencia en contextos de investigaciónreview-software-architecture -- justificar decisiones arquitectónicas con la tríada hipótesis-argumento-ejemplocreate-skill -- las habilidades mismas son argumentos estructurados sobre cómo realizar una tareawrite-claude-md -- documentar convenciones y decisiones que se benefician de una justificación clara