CommunityProgramación y desarrollogithub.com

Awenforever/winmedic-skill

Reparación de computadoras Windows: diagnóstico, limpieza, migración, reparación. Cubre espacio en disco, arranque y rendimiento, ciclo de vida de aplicaciones, actualizaciones y controladores, red, postura de seguridad, y triaje de recuperación. Prioriza solo-lectura, las acciones destructivas pasan por una zona de cuarentena y son reversibles, cada recomendación incluye evidencia.

¿Qué es winmedic-skill?

Este skill convierte a un agente como Claude Code o Cursor en un experto en reparación de equipos Windows. Su propósito es diagnosticar y resolver problemas comunes como discos llenos, lentitud, fallos de actualización, errores de red, y migración de aplicaciones, siguiendo un flujo de trabajo forzoso de 8 pasos: definir objetivo, enrutar a un playbook, diagnosticar de solo lectura, generar un plan, confirmar con el usuario, ejecutar en cuarentena, verificar, y reportar. Las acciones se clasifican en 4 niveles de riesgo (Tier 1-4), donde las de alto riesgo requieren confirmación explícita y las críticas son rechazadas automáticamente. Soporta múltiples plataformas de agente (CLI, MCP) y se integra con PowerShell y herramientas nativas de Windows. El skill es estrictamente local, no recopila telemetría ni requiere conexión a internet, y mantiene un registro de auditoría completo para garantizar la transparencia y la reversibilidad de cada operación.

Compatible con~Claude Code~Codex CLI~Cursor
npx skills add Awenforever/winmedic-skill

Installed? Explore more Programación y desarrollo skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación


name: winmedic description: Reparación de computadoras Windows: diagnóstico, limpieza, migración, reparación. Cubre espacio en disco, arranque y rendimiento, ciclo de vida de aplicaciones, actualizaciones y controladores, red, postura de seguridad, y triaje de recuperación. Prioriza solo-lectura, las acciones destructivas pasan por una zona de cuarentena y son reversibles, cada recomendación incluye evidencia. whenToUse: El usuario menciona que C: está lleno/rojo, la computadora está lenta, el arranque es lento, el software no se desinstala correctamente, quiere mover WeChat u otras aplicaciones a D:, administrar directorios grandes, fallos de actualización, controladores defectuosos, sin internet, pantalla azul, archivos borrados por error, revisión de equipo nuevo, o cualquier solicitud de "revisar o modificar este Windows". Migraciones: mover caché a D:, C: no tiene espacio, en qué unidad instalar, archivos de WeChat demasiado grandes, disco temporal. Palabras clave en inglés: remote PC troubleshooting, driver update failed, why is my disk filling up, disk growing, move cache to another drive, which drive to install, disk full, low disk space, slow boot, startup bloat, uninstall leftovers, migrate app or data to another drive, Windows Update failure, driver or device problem, no internet, proxy/VPN issue, printer offline, backup check, recover deleted files, new PC intake. version: 1.16.0

WinMedic

Objetivo

Convertir al agente anfitrión en la capa de razonamiento y al PowerShell local y al motor integrado en la capa de ejecución. Primero usa evidencia para localizar la causa, luego propón la reparación mínima, tras confirmación ejecuta y verifica.

Este Skill no inicia modelos independientes, no se conecta a internet, ni recopila telemetría; siempre obedece los permisos y mecanismos de aprobación del anfitrión.

Verificaciones previas a la ejecución

  1. Confirma que la plataforma es Windows, el Shell es PowerShell, y si se ejecuta como administrador. No deduzcas de la descripción del usuario.
  2. Confirma que el ámbito es la máquina local. Si el usuario da exclusiones (no tocar WeChat, no borrar D:), conviértelas en restricciones escritas y respétalas durante todo el proceso.
  3. Ejecuta engine\winmedic.ps1 doctor una vez para obtener permisos/versión de PS/disponibilidad de WizTree.
  4. Si el anfitrión no tiene capacidad de ejecución local (solo chat), cambia al modo "pasos manuales + puntos de verificación" y no finjas ejecutar.

Flujo de trabajo forzoso

1. Definir objetivo

  • Divide en: síntoma, estado deseado, restricciones inmutables.
  • Mantén múltiples objetivos por separado; no reemplaces migración con eliminación ni reparación con reinstalación.
  • Solo pregunta si la ambigüedad cambia significativamente el camino.

2. Enrutar Playbook

  • Lee playbook-index.md y selecciona el más específico para los síntomas.
  • Carga solo el que necesites playbooks/*.md, no leas todos a la vez.
  • Con múltiples problemas independientes, procesa uno por uno según "impacto × orden de dependencia".

3. Diagnóstico de solo lectura

winmedic.ps1 probe --set <domain>        # Produce state\findings.json
  • La sonda es de solo lectura. Cualquier operación de escritura en este paso es un bug; detente inmediatamente e informa.
  • Los elementos que no se puedan recopilar márcalos explícitamente como "No se puede obtener" y no adivines.

4. Generar plan

winmedic.ps1 plan --from state\findings.json

Produce plan.json + plan.md + planHash. Presenta el contenido de plan.md textualmente al usuario, no lo reformules en una descripción vaga.

plan.md ahora contiene dos secciones:

  1. Recomendaciones (por prioridad) — Recomendaciones de acciones entre dominios, high primero (pendiente de reinicio, sin punto de restauración, riesgo de seguridad, disco crítico)
    • Las acciones marcadas como Ejecutable: <action> se pueden ejecutar directamente con winmedic.ps1 apply --action <action> --yes
    • Las acciones marcadas como Manual: <playbook> se procesan paso a paso según ese playbook, no inventes tus propios pasos
  2. Detalle — Elementos de limpieza ejecutables por el motor (se ejecutan por id)

La fuente de las recomendaciones son reglas deterministas (no conjeturas del modelo), y la evidencia apunta a playbooks o entradas de evidencia en el catálogo.

5. Confirmación

  • Enumera cada elemento: acción, impacto, nivel de riesgo, capacidad de reversión.
  • Solo ejecuta los ids que el usuario haya aprobado. Si el usuario dice "lo que sea", por defecto solo haz Tier 1 + Tier 2.
  • Tier 3 debe confirmarse elemento por elemento; Tier 4 nunca se ejecuta.

6. Ejecución

winmedic.ps1 apply --plan state\plan.json --ids R1,R3 --yes
  • Por defecto entra en cuarentena (soft delete); no añadas --purge a la ligera.
  • Si hay fallo parcial (código de salida 7), revisa el journal primero antes de decidir si continuar.

7. Verificación

winmedic.ps1 verify --journal <id>
  • Verifica espacio disponible, estado del servicio, si el objetivo ha desaparecido.
  • Si pendingReboot = true, informa claramente al usuario "esto surtirá efecto completo tras reiniciar", no finjas éxito.

8. Informe

Cinco secciones fijas: Estado actual → Lo que se encontró → Lo que se hizo → Resultado de verificación → Lo que no se hizo (y por qué).

Clasificación de acciones

TierSignificadoRequisito de ejecución
1Riesgo cero, el sistema sigue funcionando sin elloSolo confirmación
2Caché, se reconstruiráExplicar costo de reconstrucción
3Requiere juicio, puede afectar funcionalidadConfirmación elemento por elemento + mostrar evidencia
4Línea rojaRechazar ejecución, explicar motivo y dar ruta manual

Resumen de un vistazo y comparación

winmedic.ps1 probe --set intake        # Recopilación de solo lectura entre dominios (aprox. 60-90 segundos)
winmedic.ps1 summary                   # Resumen de un vistazo de nueve dominios, con OK/WARN/BAD
winmedic.ps1 diff --from a.json --to b.json   # Comparación de dos recopilaciones

Los dominios no recopilados en el resumen aparecen como [?] No recopilado, no saques conclusiones basadas en esto, primero completa la recopilación.

Al final del resumen se listan directamente las "Recomendaciones" (por prioridad), que tienen el mismo origen que la sección de recomendaciones en el plan. Para que sea legible por máquina, añade --json y redirige:

winmedic.ps1 summary --json > status.json

Software específico (Dominio de cargas de trabajo)

Cuando el usuario menciona un software específico (LaTeX, PyCharm, Steam, Zotero, Word, herramienta proxy...) ejecuta primero:

winmedic.ps1 probe --set workloads

Esto mide el volumen de caché y datos de cada software según la tabla de firmas en catalog/workloads.json, y verifica la consistencia de la cadena de proxy.

Distinción clave:

  • kind=cache (caché de sombreadores, índices de IDE, texmf-var, OfficeFileCache) → Limpiable, el costo es la reconstrucción
  • kind=data (juego en sí, archivos adjuntos de Zotero, historial de chat de WeChat, texmf-dist) → Nunca se elimina, solo migrable
  • kind=review (descargas de Tencent Video, directorios mixtos) → Debe confirmarse primero, puede contener contenido descargado activamente por el usuario
  • probe.proxy-chain lista los valores de proxy en las cinco capas: system/WinHTTP/git/npm/pip; consistent=false indica conflicto

Añadir nuevo software no requiere cambiar el código: solo añade una firma (detect + measure + playbook) en catalog/workloads.json.

Decisiones de migración (cuando el usuario dice "mover la caché/software a otro disco" "C: no tiene espacio para nuevo software")

Esto es una cuestión de juicio, no de buscar en una tabla. El motor solo da hechos; la solución la decides tú, pero debes completar la lista.

winmedic.ps1 relocate            # Resumen de discos + lista de decisión + tabla de hechos + recomendación predeterminada
winmedic.ps1 relocate --json     # Igual, estructurado

La salida tiene tres secciones con significados diferentes, no las mezcles:

SecciónSignificadoUso
Lista de decisiónTres preguntas que deben responderseDebes dar una conclusión para cada una en tu respuesta, no las omitas
HechosRuta/volumen/medio/existe/carpeta conocida/ruta declarada por softwareBase para la decisión
Recomendación predeterminadaPerspectiva predeterminada del motor (marcada policySource=default-hint)Solo referencia, puede ser anulada por tu juicio; no la transmitas como conclusión

Tres preguntas de la lista (debes cubrirlas explícitamente en tu respuesta)

  1. ¿Está bajo una carpeta conocida? Sí → Mueve esa carpeta una vez, no establezcas rutas para software individual; pero primero evalúa la pregunta 3
  2. ¿Datos calientes o fríos? Calientes (caché de renderizado en tiempo real, índices de IDE, caché de streaming) → Quédate en el disco más rápido; Fríos (juegos/VMs/biblioteca de libros/historial de chat) → Considera mover a un disco de capacidad
  3. ¿El software ya ha registrado la ruta absoluta (instalar primero, luego mover)? Sí → Después de mover, debes sincronizar la configuración del software, de lo contrario apuntará a la ruta antigua

Lo que tú (DSH) debes hacer

  • Primero mira el medio en la tabla de hechos: mover datos calientes a un HDD es incorrecto, incluso si es más grande
  • Primero mira la ruta declarada por software: es la evidencia dura de "instalar primero, luego mover"
  • La solución debe escribirse como "qué hacer → por qué → riesgo → método de verificación", y pedir confirmación al usuario antes de ejecutar
  • El motor no migra por ti; tu trabajo es dar una solución con razón

Consulta el playbook apps-relocate-cache (PB-913).

Tendencias (qué está creciendo, no solo qué es más grande)

winmedic.ps1 trend --record      # Registra una instantánea (recomendado una vez al día)
winmedic.ps1 trend --days 14     # Observa cambios y tasas

Reglas de interpretación:

  • confidence=insufficient (<2 muestras) → No saques conclusiones, primero registra
  • confidence=low (intervalo <0.5 días) → Solo mira el cambio, sin tasa diaria
  • confidence=ok → Solo entonces se puede decir "crece X GB por día"

Uso: Cuando C: está lleno, primero mira la tendencia, luego decide si limpiar caché o buscar qué software está escribiendo logs descontroladamente.

Diagnóstico diferencial (escenarios como "C: lleno" o "red anómala" que requieren buscar la causa raíz)

winmedic.ps1 diagnose --list
winmedic.ps1 diagnose --case dx.cdisk-full

La salida es una tabla de hechos (hipótesis × métrica × valor actual × señal de interpretación × fuente de datos), sin conclusión.

Debes: evaluar cada elemento, explicar qué hipótesis se descartan y cuáles se apoyan, y luego dar la solución. La source que contiene trend son cambios; los marcados low no pueden calcular tasa; los marcados insufficient no tienen valor.

Si se necesita una herramienta externa, primero consulta la mesa de herramientas: winmedic.ps1 tools (solo detecta, no ejecuta automáticamente Tier≥3).

Biblioteca de casos (experiencia acumulada)

En cases/ hay casos de siete secciones: Síntoma / Entorno / Recopilación / Hipótesis y descartes / Acción / Resultado / Lección.

  • Ante un problema similar, primero consulta los casos; puede ahorrar una ronda completa de diagnóstico.
  • Después de resolver un problema nuevo, escribe un caso según cases/_template.md, de lo contrario tendrás que empezar de nuevo la próxima vez.
  • Los marcados como pending son elementos sin evidencia de campo aún que están pendientes de investigación, no deben citarse como conclusión.

Consulta de evidencia

Antes de ejecutar cualquier acción, si el usuario pregunta "por qué" o "cuál es la base", consulta directamente:

winmedic.ps1 explain --action storage.winsxs-cleanup

La salida incluye: nivel, reversibilidad, comando, notas, evidencia original y enlace oficial, fecha de verificación, regla de validación.

Puerta de riesgo

apply verifica la capacidad de recuperación (punto de restauración/copia de seguridad de volumen):

  • Si el destino incluye Tier 3 (no reversible) y la capacidad de recuperación no está lista → Rechazar ejecución, código de retorno 4
  • En este caso, lo correcto es: primero apply --action recovery.create-restore-point --yes para crear un punto de restauración, o pedir al usuario que añada explícitamente --accept-risk
  • No añadas --accept-risk por tu cuenta para "avanzar la tarea"

Exclusiones del usuario (restricciones duras)

Cuando el usuario dice "no toques WeChat" o "no toques D:", inmediatamente fija las exclusiones, no las guardes solo en la memoria:

winmedic.ps1 profile --exclude "C:\Users\<user>\Documents\WeChat Files"
winmedic.ps1 profile --exclude "D:\*"
winmedic.ps1 profile                       # Ver exclusiones actuales
winmedic.ps1 profile --exclude "..." --remove  # Eliminar exclusión

Las exclusiones tienen una doble barrera: se excluyen en la fase de plan, y se rechazan nuevamente en la fase de aplicación con registro contable.

Cuándo parar obligatoriamente

  • El objetivo son archivos dentro de Windows\WinSxS, Windows\Installer, System32, WindowsApps
  • El objetivo es el directorio de chat ( WeChat Files / xwechat_files ) o exclusiones declaradas por el usuario
  • Solo quedan 1–2 puntos de restauración del sistema y se pide eliminar uno
  • La cantidad de confirmación está cerca del límite de confirmación y se pide reducir el archivo de página
  • El usuario pide "borra todo" o "no te preocupes por los riesgos" — primero explica, luego solo haz Tier 1/2

Convenciones de llamada al motor

Si el anfitrión solo puede acceder a herramientas a través de MCP, usa engine\mcp\winmedic-mcp.ps1 (ver docs/MCP.md); Los parámetros de la herramienta se corresponden uno a uno con los comandos siguientes; para la herramienta necesitas yes=true. El resto de reglas son completamente idénticas.

  • Todos los subcomandos soportan --json; sin --json producen un resumen legible para humanos.
  • Códigos de salida: 0 éxito / 2 uso / 3 permisos / 4 requisito previo no cumplido / 5 plan inválido / 6 línea roja / 7 fallo parcial.
  • No evites el motor y ejecutes comandos de eliminación directamente. El valor del motor radica en el enlace hash, la zona de cuarentena y el registro de auditoría.

Generar informe

winmedic.ps1 report --journal <runId>        # Informe de entrega de cinco secciones
winmedic.ps1 report --set storage --out report.md

El informe tiene cinco secciones fijas: Estado actual → Lo que se encontró → Lo que se hizo → Resultado de verificación → Lo que no se hizo (y por qué). Cuando falten datos, escribe honestamente "No recopilado", no inventes.

Plantilla de informe

## Estado actual
C: 98.7 GB, disponible 16.7 GB (83%)

## Lo que se encontró
| Elemento | Tamaño | Nivel | Base |
|---|---|---|---|
| Papelera de reciclaje | 7.03 GB | 1 | Sin impacto |
| hiberfil.sys | 6.32 GB | 1 | Documentación de Microsoft: powercfg /h off |

## Lo que se hizo
R1 Vaciar papelera: 7.03 GB -> 0
R2 Deshabilitar hibernación: 6.32 GB liberados

## Resultado de verificación
C: disponible 16.7 -> 30.1 GB; suspensión S0 normal; sin pendingReboot

## Lo que no se hizo
SoftwareDistribution (el usuario pidió omitir), Windows\Installer (alto riesgo, se recomienda herramienta especializada)

Skills relacionados