# Rule Research > Define un contrato preciso de regla de React Doctor antes de implementarla. Se usa al validar la idea de una regla, recoger evidencia, identificar trampas de falso positivo o fijar los límites de la primera versión. Fuente: https://skillsagentes.com/skills/millionco/react-doctor/rule-research Markdown: https://skillsagentes.com/skills/millionco/react-doctor/rule-research.md Repositorio: https://github.com/millionco/react-doctor Autor: millionco Licencia: NOASSERTION Actualizado: el mes pasado Coste de contexto: 61 tok instalada, 566 tok al activarse, 566 tok con todos los archivos del bundle Bundle: 1 archivo, 2 KB Permisos que pide: ninguno declarado ## Instalación Un skill son archivos markdown: los mismos archivos valen para cualquier agente y lo único que cambia es el directorio de destino, es decir la bandera `--agent`. Añade `-g` para instalarlo en todos los proyectos de la máquina. ```bash # Claude Code npx -y skills add millionco/react-doctor --skill rule-research --agent claude-code # Cursor npx -y skills add millionco/react-doctor --skill rule-research --agent cursor # Codex npx -y skills add millionco/react-doctor --skill rule-research --agent codex # Gemini CLI npx -y skills add millionco/react-doctor --skill rule-research --agent gemini # Windsurf npx -y skills add millionco/react-doctor --skill rule-research --agent windsurf # Cline npx -y skills add millionco/react-doctor --skill rule-research --agent cline ``` ## Qué hace - Define un contrato preciso de regla de React Doctor antes de implementarla, que `rule-writing` pueda implementar sin adivinar. - Resuelve solo lo que afecta a la corrección: qué patrón debe reportar, qué comportamiento en runtime lo hace dañino, qué código parecido debe quedarse callado y qué análisis necesita la detección. - Reúne evidencia: define la regla en una frase, explica el motivo en runtime, inspecciona reglas y utilidades cercanas y usa `truffler` antes de proponer un detector o helper nuevo. - Separa positivos fuertes, patrones adyacentes, trampas válidas y casos no soportados, y elige detección solo-sintaxis, con scope o con paths. - Devuelve un contrato con secciones fijas (definición, motivo, precisión del detector, evidencia, positivos, trampas de falso positivo, en/ fuera de scope, semillas de test, preguntas abiertas). ## Cuándo usarla - Al validar la idea de una regla, recoger evidencia oficial o de código abierto, identificar trampas de falso positivo o fijar los límites de la primera versión. ## Qué la activa - "Investiga el contrato para una regla que detecte setState dentro de useFrame" - "¿Qué trampas de falso positivo tiene esta idea de regla?" - "Define los límites de la primera versión de esta regla" ## Archivos - SKILL.md — 2 KB ## SKILL.md Reproducido tal cual desde millionco/react-doctor bajo NOASSERTION. Esta sección es el documento original y está en inglés. # Research a rule Produce a rule contract that `rule-writing` can implement without guessing. ## Define the behavior Resolve only questions that affect correctness: - Which code pattern should report? - Which runtime behavior makes it harmful? - Which similar code must stay quiet? - Does detection need syntax, scope, or path analysis? - Which imported, dynamic, type-driven, or interprocedural cases stay out of scope? If the user requested implementation, make the contract concise and continue. ## Collect evidence 1. Define the rule in one sentence: `This rule catches that causes .` 2. Explain the runtime reason. 3. Inspect nearby rules, tests, utilities, and the generated registry. 4. Use `truffler` before proposing a new detector or helper: ```sh bunx @rayhanadev/truffler "" \ packages/oxlint-plugin-react-doctor/src/plugin \ --kind function,interface,type,constant --limit 20 ``` 5. Gather official documentation, implementation notes, related linter behavior, and open-source examples. 6. Separate strong positives, adjacent patterns, valid traps, and unsupported cases. 7. Choose syntax-only, scope-aware, or path-aware detection. Use `rde-eval` when a bounded open-source sample could change the contract. Leave final pull request parity to `rule-validate`. ## Write the contract Return: ```md Rule definition: Runtime reason: Detector precision: Evidence: - Strong positives: - False-positive traps: - In scope: - Out of scope: - Test seeds: - Open questions: - ``` Treat false positives as correctness bugs. Keep the diagnostic narrower than or equal to the proven behavior. Split adjacent ideas into separate rules. ## Dónde encaja - Categoría: [Herramientas para desarrolladores](https://skillsagentes.com/categorias/herramientas-desarrollo.md) — Skills que cambian cómo tu agente escribe, revisa y despliega código. - Creador: [millionco](https://skillsagentes.com/creators/millionco.md) — 16 skills en el directorio - [Todas las skills](https://skillsagentes.com/skills.md) - [Ranking de instalaciones](https://skillsagentes.com/ranking.md) ## Otras skills del mismo repositorio - [React Doctor](https://skillsagentes.com/skills/millionco/react-doctor/react-doctor.md): Escanea bases de código React en busca de problemas de seguridad, rendimiento, corrección y arquitectura, y da una puntuación de salud de 0 a 100. Incluye chequeo de regresión y un flujo completo de triage local con `/doctor`. - [Run Parity](https://skillsagentes.com/skills/millionco/react-doctor/run-parity.md): Compara los diagnósticos de React Doctor de un pull request contra su base con Daytona. Se usa para correr parity, comprobar regresiones de diagnósticos en un PR o reportar diagnósticos añadidos y quitados. - [Improve Threejs](https://skillsagentes.com/skills/millionco/react-doctor/improve-threejs.md): Audita y arregla apps de Three.js y React Three Fiber: rendimiento del frame-loop, fugas de memoria de GPU, corrección del grafo de escena y defectos visuales como z-fighting, shadow acne, espacio de color erróneo y resize roto. - [Fuzz](https://skillsagentes.com/skills/millionco/react-doctor/fuzz.md): Somete a fuzzing las reglas de React Doctor con `@react-doctor/fuzz` para hallar crashes, lentitud, falsos positivos y diagnósticos sensibles a mutaciones. Se usa tras pasar los tests de la regla o al confirmarse un falso positivo nuevo. - [Performance](https://skillsagentes.com/skills/millionco/react-doctor/performance.md): Diagnostica el rendimiento de React en tiempo de ejecución con trazas de React Doctor, marcado de renders en vivo, Long Animation Frames y evidencia de renders por componente. Se invoca como `/performance`. ## Skills relacionadas - [Improve React](https://skillsagentes.com/skills/millionco/react-doctor/improve-react.md): Audita toda una base de código React como ingeniero sénior, apoyándose en el escaneo de React Doctor, y produce hallazgos priorizados y planes de implementación autocontenidos. Es de solo lectura: planifica mejoras, no las aplica. - [Rule Writing](https://skillsagentes.com/skills/millionco/react-doctor/rule-writing.md): Implementa reglas de React Doctor a partir de un contrato validado: reglas de oxlint, detección por sintaxis o control de flujo, tests adversariales, reutilización de utilidades del árbol sintáctico y actualización del registro de reglas. - [Fuzz](https://skillsagentes.com/skills/millionco/react-doctor/fuzz.md): Somete a fuzzing las reglas de React Doctor con `@react-doctor/fuzz` para hallar crashes, lentitud, falsos positivos y diagnósticos sensibles a mutaciones. Se usa tras pasar los tests de la regla o al confirmarse un falso positivo nuevo. - [Domain Modeling](https://skillsagentes.com/skills/mattpocock/skills/domain-modeling.md): Construye y afila el modelo de dominio de un proyecto. Úsalo para fijar la terminología o un lenguaje ubicuo, registrar una decisión arquitectónica, o cuando otro skill necesita mantener el modelo. - [Setup Pre Commit](https://skillsagentes.com/skills/mattpocock/skills/setup-pre-commit.md): Configura hooks de pre-commit con Husky y lint-staged (Prettier), typecheck y tests en el repo actual. Úsalo para añadir hooks de pre-commit, configurar Husky o lint-staged. --- Skills Agentes · [Índice de páginas en markdown](https://skillsagentes.com/sitemap.md) · [Inicio](https://skillsagentes.com/index.md)