Si eres un agente y estás leyendo esto
overview). Escribe hipótesis con predicciones. Escribe el resultado esperado de cada experimento por hipótesis antes de ejecutarlo. Registra las ejecuciones con archivos hasheados. Liga cada número de una afirmación a un campo de resultado. Nunca escribas «siempre/nunca/demuestra» sin k de n con k = 0 o n. Nunca des algo por descartado sin una comprobación de potencia. Informa de la situación exactamente como la indica el registro. Cuando una escritura se rechace, corrige lo que diga el mensaje. Versión corta: /llms.txt · skill completa: /SKILL.md.Instala la skill
Para Claude Code y otros hosts que cargan Agent Skills. La skill lleva el método, los rechazos y sus correcciones, y funciona a través de la CLI — sin servidor.
pip install hypgraph hypgraph skill --install # .claude/skills/hypgraph/SKILL.md in this project hypgraph skill --install --user # or under your home directory, for every project
Conéctate por MCP
pip install "hypgraph[mcp]" claude mcp add hypgraph -- hypgraph --db study.hypgraph --as claude mcp
{
"mcpServers": {
"hypgraph": {
"command": "hypgraph",
"args": ["--db", "/absolute/path/study.hypgraph", "--as", "claude", "mcp"]
}
}
}hypgraph --db study.hypgraph --as claude mcp --transport http --port 8766 # → http://127.0.0.1:8766/mcp
El servidor escribe como un único autor, fijado al arrancar. El agente no puede pasar otro nombre, no puede escribir como el instrumento (lab) ni como el operator, y sus veredictos solo cuentan si la investigación lo nombra como revisor. Los archivos para register_run deben estar dentro del directorio en el que se arrancó el servidor.
El método
overview()primero. Qué está establecido, qué está impugnado, qué está pendiente, qué ejecutar a continuación.- Hipótesis con predicciones — y rivales, enlazadas
alternative_to. - Experimentos que pueden fallar — enlaces
testscondata.expectedpor hipótesis, escritos antes de ejecutar. Añade unpower_check: siembra una respuesta conocida y demuestra que el método la encuentra. register_run— hashea el código, las entradas y las salidas, y añade el resultado con valores{name: {value} | {k, n}}.- Afirmaciones con mediciones — cada número ligado; un enlace
supportscon un motivo; un alcance. - Revisión — solo cuentan los revisores designados, nunca sobre su propio trabajo.
report()al principio de cada resumen; la interpretación debajo — y luegocheck_report(text)sobre el informe antes de entregarlo. Corrige todos los errores.
Bajo un perfil de flujo de trabajo
Una investigación fijada a scientific@2, software@2, trading@2, knowledge@2 o optimization@2 lleva el flujo de trabajo de su disciplina. Llama a stage(question): indica la etapa en la que está la pregunta — derivada del registro, nunca fijada — y cada compuerta CUMPLIDA o NO CUMPLIDA con lo que la cumpliría. Escribe la siguiente compuerta en orden (una hipótesis con predicciones; un experimento con su resultado esperado antes de la ejecución; el diff o la instancia como artefacto con su kind; la ejecución que lo uses). Un archivo corregido, un commit más nuevo, una instancia cambiada o una fuente retirada dejan desactualizada la evidencia anterior; la respuesta lo dice, y una comprobación sobre evidencia desactualizada no cuenta. Cuando la respuesta honesta es «no se puede responder», registra lo que sí encontraste y escribe una afirmación de tipo inconclusive derivada de ello — una vez comprobada, resuelve la pregunta.
Herramientas
| herramienta | qué hace |
|---|---|
overview(investigation?) | Objetivo, revisores, hipótesis vivas, afirmaciones comprobadas y cómo se sabe, trabajo impugnado / en riesgo, reservas, colas, próximos experimentos. |
find(text, type?, investigation?) | Buscar por palabras o código (H1, CL3). |
show(node, view) | summary · why (en qué se apoya) · impact (qué se rompe si está mal) · history. |
start_investigation(title, objective, reviewers) | Abrir un estudio con sus revisores. |
add(type, fields, investigation?, links?) | Pregunta, hipótesis, experimento, ejecución, resultado, afirmación, fuente, decisión. Los enlaces aceptan ids o códigos. |
link(src, rel, dst, why, data?) | Enlaces tipados; un enlace al revés se da la vuelta cuando solo se permite el inverso. |
revise · withdraw · retract_link | Correcciones como filas nuevas; no se borra nada. |
review(node, verdict, method, notes) | Un veredicto sobre la versión actual. |
check_report(text) | Revisar un informe contra el registro: números sin fuente, afirmaciones dadas por resueltas que no lo están, códigos retirados o desconocidos, nunca / sin efecto / significativamente sin nada detrás. |
refusal_log(author?) | Las sobreafirmaciones que el registro rechazó — tuyas o del equipo — y si cada una volvió en versión honesta. |
bound(k, n, exposure) | Lo que respalda un recuento: las cotas del 95 % detrás de cualquier «nunca», los ensayos necesarios, los fallos no descartados a escala. |
stage(question?) · completion() | Bajo un perfil de flujo de trabajo: la etapa de cada pregunta y el estado de cada compuerta; lo que el perfil entiende por terminado para toda la investigación. |
next_experiments · work_queue · claim_work | Qué ejecutar a continuación; qué está pendiente; tomar un nodo para que los demás vean quién trabaja en él. |
register_run(name, code_paths, input_paths, output_paths, result_summary, result_values) | Registrar un cálculo con archivos hasheados. |
report · verify · schema | Los hechos generados; la comprobación de la cadena; el vocabulario. |
Recursos: hypgraph://skill, hypgraph://schema, hypgraph://investigations, hypgraph://investigation/{inv}/report. Prompt: method.
Los rechazos son instrucciones
Cada afirmación rechazada enumera una línea por problema, terminada en un código estable. El mensaje ya ha hecho la aritmética y suele contener la frase honesta — úsala. En Python, GraphError.problems da code, message, fix y words.
| código | haz esto |
|---|---|
ABSOLUTE_UNDERPOWERED | «nunca» sobre 0 de n con muy pocos ensayos. Escribe la frase honesta que te da («ninguna ocurrencia en n ensayos (cota superior del 95 % X)»), o ejecuta los ensayos que dice que necesitas. |
ABSOLUTE_HIDES_DENOMINATOR | Pon n en el enunciado: «nunca, en 3.000 sondeos». |
ABSOLUTE_WITHOUT_COUNT · ABSOLUTE_UNRELATED_COUNT | Di lo que se observó («en k de n»); nombra el recuento por lo que cuenta. |
UNBOUND_NUMBER | Lígalo a un campo de resultado. Las diferencias, porcentajes, cocientes e intervalos calculados a partir de recuentos ligados pasan — nunca quites el número para colarlo. |
EXCLUSION_WITHOUT_POWER | «Sin efecto» necesita una búsqueda que haya demostrado encontrar un efecto sembrado (power: demonstrated). Si no, registra kind: inconclusive y di «ningún efecto detectable» — el rechazo dice qué tamaño de efecto podría haberse ocultado. |
COMPARATIVE_WITHOUT_COMPARISON | Liga ambos lados. |
SIGNIFICANCE_WITHOUT_TEST · SIGNIFICANCE_NOT_SHOWN | Liga ambos lados como k/n (el registro los contrasta) o un p-valor; si no es significativo, dilo. |
UNCORRECTED_EFFECT | El registro tiene un p corregido para este resultado y no es significativo. Di «sin corregir» en la frase, o lígalo y di «no significativo tras la corrección», o registra kind: lead. |
CAUSAL_WITHOUT_INTERVENTION | Di «está asociado con», o respáldalo con un experimento que intervino. |
Antes de escribir nunca o siempre, llama a bound(k, n, exposure): lo que respalda el recuento y cuántos fallos deja sin descartar a la escala a la que se usará la afirmación. Fija exposure en la afirmación para que su situación lleve ese número. Cuando retires o impugnes un nodo, la respuesta enumera lo que ahora se apoya en algo que cayó — avisa a sus responsables. La historia completa: la aritmética del nunca.
Cómo leer la situación
afirmación activa · comprobada (fisher:pass, v2) · 2 líneas de apoyo independientes · replicada con datos nuevos · sin replicación externa
Cítala tal cual. «Sin comprobar» no es «demostrado»; una línea notificada por un agente no es «establecido». EN RIESGO: cayó una premisa. REVISAR: cambió la base de una decisión. SIN APOYO: cayó todo el apoyo.
Para el ingeniero que lo integra
¿Ejecutas muchos agentes? Integra la biblioteca y fija la confianza tú mismo: Graph(path, policy=Policy(reviewers=…,
instrument="lab", operator="operator")). Fija el author de cada llamante de tu lado y rechaza los nombres reservados. Da a tu ejecutor de trabajos la identidad del instrumento para que sus ejecuciones cuenten como registradas en laboratorio. Pasa spend= para poner precio al trabajo de cada investigación. La guía de ingeniería tiene los patrones. La API HTTP (hypgraph.server.dispatch) y la interfaz de HypGraph (hypgraph.ui.static_dir()) encajan en cualquier framework web.
Legible por máquinas
- /llms.txt — la versión corta
- /SKILL.md — la skill para agentes
- /agents.md — esta página en Markdown
- /schema/hypgraph-1.json — tipos de nodo, campos, relaciones, veredictos
- /spec/ — los formatos del registro y del bundle
- /data/broad-street.bundle.json — un bundle de ejemplo completo