JiamingShi-JsPhys/agent-skills

Administrador de estado para experimentos computacionales multidimensionales. Itera sobre una rejilla de parámetros durante muchas rondas, toma instantáneas de los archivos críticos declarados en cada ronda, audita cada ronda (parámetros, hashes, marcas de tiempo, estado) y permite retroceder a cualquier ronda de forma no destructiva. Útil cuando un flujo de trabajo ejecuta cientos de rondas en múltiples dimensiones de parámetros y necesita instantáneas por ronda, un registro de auditoría completo y retroceso arbitrario, por ejemplo, estudios longitudinales, barridos de parámetros o recorridos simbólicos/numéricos que invocan solvers externos (Mathematica, GAP, SymPy, scripts personalizados).

¿Qué es agent-skills?

Esta habilidad de agente, 'multi-dim-manager', está diseñada para gestionar el estado de experimentos computacionales multidimensionales de larga duración. Su función principal es orquestar la iteración sobre una rejilla de parámetros (producto cartesiano), tomando instantáneas de archivos críticos antes y después de cada ronda, manteniendo un registro de auditoría completo (incluyendo parámetros, hashes, marcas de tiempo y estado) y permitiendo retroceder a cualquier ronda anterior de forma segura y no destructiva. Es ideal para flujos de trabajo como estudios longitudinales, barridos de parámetros o recorridos simbólicos/numéricos que usan solvers externos como Mathematica, GAP o SymPy. La habilidad se ejecuta mediante scripts de Python, admite configuraciones en YAML (requiere PyYAML) o JSON (sin dependencias adicionales). El agente interactúa con el plugin de cómputo del usuario a través de un contrato simple (comando de shell con parámetros y archivos de salida), y la habilidad maneja fallos de forma granular, permitiendo continuar el experimento incluso si una ronda falla. Las limitaciones incluyen que la determinismo solo se garantiza a nivel de orquestación, no del plugin; los archivos críticos deben declararse de antemano; y la verificación de salidas doradas está planificada pero no implementada.

Compatible con~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/JiamingShi-JsPhys/agent-skills/tree/HEAD/skills/multi-dim-manager

Installed? Explore more Productividad y colaboración skills: steipete/gemini, steipete/gh-issues, steipete/skill-creator · View all 6 →

Preguntar en tu IA favorita

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

Documentación

multi-dim-manager

Una habilidad autocontenida que ordena el estado de experimentos computacionales multidimensionales de larga duración. Tu plugin de cómputo realiza las matemáticas; esta habilidad gestiona el caos circundante: iteración, instantáneas, auditoría y retroceso.

La habilidad solo orquesta. Nunca calcula un resultado por sí misma; cada número proviene de tu plugin.

Cuándo usarla

  • Un flujo de trabajo ejecuta muchas rondas sobre un espacio de parámetros (una rejilla cartesiana de dimensiones) y necesita registrar el estado de cada ronda.
  • Se requieren instantáneas por ronda de los archivos críticos declarados antes y después de cada ronda.
  • Debe existir un registro de auditoría completo (parámetros, hashes, marcas de tiempo, estado) para cada ronda.
  • El usuario debe poder retroceder a cualquier ronda pasada, de forma no destructiva.
  • Formas típicas: estudios longitudinales, barridos de parámetros o recorridos simbólicos/numéricos que invocan solvers externos (Mathematica, GAP, SymPy, scripts personalizados).

FLUJO DE TRABAJO OBLIGATORIO

Inicialización de dependencias (ejecutar la primera vez)

Antes de la primera ejecución, verifica las dependencias en tiempo de ejecución de esta habilidad:

  • Central: biblioteca estándar pura: no requiere instalación.
  • Opcional: PyYAML (solo cuando la configuración es un .yaml; las configuraciones JSON funcionan solo con la biblioteca estándar).

Si falta PyYAML y la configuración del usuario es YAML, indícaselo y pregúntale si desea pip install pyyaml; instala solo después de que lo confirme explícitamente. Nunca instales en el entorno global sin consentimiento explícito.

Sigue estos pasos en orden cada vez que el usuario solicite ejecutar, inspeccionar o recuperar un experimento multidimensional.

  1. Cargar la configuración. Lee el archivo de configuración del experimento (config.example.yaml es la plantilla). Confirma que param_space.dimensions, critical_paths y plugin.command estén presentes. Si se usa YAML, PyYAML debe estar instalado; de lo contrario, usa JSON.
  2. Expandir el espacio. Enumera el producto cartesiano de todas las dimensiones. Informa al usuario el número total de rondas antes de ejecutar.
  3. Preferir una ejecución en seco. Ejecuta python scripts/run.py dryrun --config <cfg> para que el usuario vea el plan completo (cada combinación de parámetros) sin efectos secundarios. Solo procede a la ejecución después de su confirmación.
  4. Ejecutar el barrido. Ejecuta python scripts/run.py run --config <cfg>. Para cada ronda, en orden: toma una instantánea de las rutas críticas declaradas antes, invoca el plugin, toma una instantánea después y agrega un registro de auditoría.
  5. Reaccionar correctamente a fallos. Si el plugin de una ronda sale con código distinto de cero, registra su estado (failed/error). Cuando auto_rollback está activado, recupera el estado posterior de la última ronda exitosa en el directorio de trabajo para que las rondas posteriores comiencen limpias; esta recuperación también se audita. No detengas todo el barrido por una sola combinación mala.
  6. Resumir. Después del barrido, la habilidad escribe results_summary.csv, results_summary.md, report_draft.md y run_metadata.json en el directorio de salida. Señala al usuario estos archivos.
  7. Recuperar a solicitud. Para restaurar una ronda pasada, ejecuta python scripts/run.py rollback --config <cfg> --round <N>. Por defecto restaura en un directorio NUEVO; solo agrega --force cuando el usuario quiera explícitamente sobrescribir el directorio de trabajo activo.

Restricciones estrictas

  • Nunca calcules el resultado tú mismo. Todas las matemáticas de dominio pertenecen al plugin del usuario. La habilidad solo lo invoca y registra el resultado del contrato.
  • Solo toma instantáneas de rutas críticas declaradas. Nunca se realiza una copia completa del directorio de trabajo; el contenido se almacena direccionado por hash, por lo que los archivos sin cambios no cuestan nada adicional.
  • El retroceso es no destructivo por defecto. Sin --force, el directorio de trabajo activo nunca se modifica; el estado restaurado se coloca en un nuevo directorio. Cada retroceso (manual o automático) se escribe en el registro de auditoría.
  • El determinismo es promesa del usuario. La habilidad garantiza que la orquestación sea reproducible (mismos parámetros -> mismo plan registrado, mismos hashes). No puede hacer que un plugin no determinista sea determinista; consulta Limitaciones.

Ejemplos de uso

# Imprime el plan completo de rondas sin efectos secundarios (haz esto siempre primero).
python scripts/run.py dryrun --config config.example.yaml

# Ejecuta el barrido.
python scripts/run.py run --config config.example.yaml

# Restaura una ronda pasada (en un directorio NUEVO a menos que se use --force).
python scripts/run.py rollback --config config.example.yaml --round 7

# Regenera los resúmenes, o verifica el resultado de una ronda.
python scripts/run.py summary --config config.example.yaml
python scripts/run.py verify --config config.example.yaml --round 7

Contrato del plugin

El gestor ejecuta exactamente un comando de shell por ronda:

python your_plugin.py --params {PARAMS} --out {OUT}
  • {PARAMS} - ruta a un archivo JSON con la combinación de parámetros de esta ronda.
  • {OUT} - ruta donde el plugin DEBE escribir su JSON de resultado.
  • Códigos de salida: 0 éxito, 1 fallo de aserción / comprobación fallida, 2 error o omitido.

Cualquier solver externo (Mathematica, GAP, un script Python de LMM) se envuelve para honrar este contrato: lee el archivo de parámetros y escribe un archivo de resultado. A la habilidad no le importa qué se calcula.

Manejo de fallos

  • Una ronda cuyo plugin sale con 1 se marca como failed; salida 2 es error. Ambos se mantienen en el registro de auditoría; el barrido continúa.
  • Errores de config (espacio faltante, YAML incorrecto, falta {OUT}) abortan antes de cualquier efecto secundario e imprimen un mensaje claro (código de salida 2).
  • rollback a una ronda que nunca se registró, o que no tiene instantánea posterior, falla con un error claro en lugar de corromper el estado.

Limitaciones

  • El determinismo es solo a nivel de orquestación. El gestor registra hashes y reproduce el mismo plan para los mismos parámetros, pero no puede asegurar que el plugin sea determinista. Si el plugin toca la red, usa semillas aleatorias o lee el reloj del sistema, las mismas entradas pueden dar diferentes salidas. Declara dicha no determinismo en el plugin tú mismo.
  • Las rutas críticas deben declararse de antemano. Los archivos no listados en critical_paths nunca se instantanean y, por lo tanto, no se pueden retroceder.
  • La verificación de salida dorada es v0.2. El verificador actual solo comprueba el contrato del plugin (salida 0 + archivo de resultado presente). La comparación con una salida esperada conocida está planificada pero aún no implementada.
  • Las configuraciones YAML necesitan PyYAML. Las configuraciones JSON funcionan solo con la biblioteca estándar.

Individual skills in this repo

This repo contains 3 individual skills — each has its own dedicated page.

JiamingShi-JsPhys/agent-skills

Cross-document conflict detector. Use when the user has two or more documents, datasets, or extracted fact tables and wants to find contradictions between them. Triggers on "detect conflicts", "find contradictions", "do these documents agree", "cross-check claims", "inconsistency check", or when comparing a claim across multiple sources. Runs three detection levels: entity (numeric / boolean mismatch on the same key), clause (categorical mismatch), and argument (free-text disagreement). Emits a machine-readable conflict report in JSON / CSV / Markdown.

JiamingShi-JsPhys/agent-skills

Document evolution tracker. Use when the user has a family of document versions (timestamped or sequentially named files) and wants to see how the document changed over time -- which paragraphs / lines / sentences were added, removed, or modified between consecutive versions, and how a set of named concepts (or auto-detected headings) evolved (introduced / retained / modified / dropped). Triggers on "track document changes", "version history", "what changed between drafts", "concept lineage", "document evolution". Emits a Markdown + JSON timeline.

JiamingShi-JsPhys/agent-skills

Longitudinal statistical analysis pipeline. Use when the user has panel / repeated-measures data (one or more sessions per subject, with between-subject conditions) and wants to run a reproducible analysis: descriptive stats, a manipulation check, a linear mixed model, a lagged mediator, or a sensitivity analysis over random-effects / covariance structures. Triggers on any of the phrases "LMM", "mixed model", "repeated measures", "longitudinal analysis", "mediation over time", "lagged mediator", "sensitivity analysis of RE structure". When fired, load the YAML config that lists the enabled steps, run the pipeline, and report the per-step results plus the generated CSVs.

Skills relacionados