docs: params/output semántico en 506 funciones para composabilidad

Añade campos params y output al frontmatter YAML de las 506 funciones del registry.
Cada parámetro tiene descripción semántica (qué representa, unidades, rango típico)
y cada función describe qué produce su output. Permite a agentes razonar sobre
cadenas de composición (ej: prices → log_return → sharpe_ratio) sin leer código.
This commit is contained in:
2026-04-05 18:45:16 +02:00
parent bd1bf2b5dc
commit 988e901066
506 changed files with 2964 additions and 0 deletions
+6
View File
@@ -14,6 +14,12 @@ returns: []
returns_optional: false
error_type: ""
imports: []
params:
- name: data
desc: "slice de valores de serie temporal (ej: [100, 102, 101, 103, ...])"
- name: lag
desc: "desfase en períodos (ej: 1 para correlación con el período anterior, 12 para correlación anual en datos mensuales)"
output: "coeficiente de correlación de Pearson entre data y su versión desfasada, rango [-1, 1]"
tested: false
tests: []
test_file_path: ""
+8
View File
@@ -14,6 +14,14 @@ returns: []
returns_optional: false
error_type: ""
imports: []
params:
- name: data
desc: "slice de valores reales a recortar"
- name: min
desc: "límite inferior del rango permitido"
- name: max
desc: "límite superior del rango permitido"
output: "slice con cada valor limitado al rango [min, max]"
tested: false
tests: []
test_file_path: ""
+6
View File
@@ -14,6 +14,12 @@ returns: []
returns_optional: false
error_type: ""
imports: ["math"]
params:
- name: data
desc: "slice de valores numéricos a analizar"
- name: threshold
desc: "umbral de z-score para considerar un valor outlier (ej: 2.0 para 2 desviaciones estándar)"
output: "slice de booleanos del mismo tamaño que data, true si el elemento es outlier"
tested: false
tests: []
test_file_path: ""
+10
View File
@@ -14,6 +14,16 @@ returns: []
returns_optional: false
error_type: ""
imports: ["fmt"]
params:
- name: before
desc: "slice de snapshots de entities antes (ej: resultado de query anterior)"
- name: after
desc: "slice de snapshots de entities después (ej: resultado de query actual)"
- name: key
desc: "nombre del campo clave para emparejar entities (ej: 'id', 'uuid')"
- name: ignoreFields
desc: "slice de nombres de campos a ignorar en comparación (nil usa defaults ['created_at', 'updated_at'])"
output: "mapa con 'summary', 'added', 'removed', 'modified', 'unchanged' - análisis completo de diferencias"
tested: true
tests:
- "entity añadida"
@@ -14,6 +14,12 @@ returns: []
returns_optional: false
error_type: "error_go_core"
imports: ["fmt"]
params:
- name: dsn
desc: "connection string para la BD (ej: 'user:pass@tcp(host:3306)/dbname', 'bigquery://project-id')"
- name: query
desc: "consulta SQL a ejecutar (ej: 'SELECT * FROM users WHERE status = \"active\"')"
output: "slice de mapas columna-valor (ej: [{'id': 1, 'name': 'Alice'}, {'id': 2, 'name': 'Bob'}])"
tested: false
tests: []
test_file_path: ""
+4
View File
@@ -14,6 +14,10 @@ returns: []
returns_optional: false
error_type: ""
imports: ["math", "math/cmplx"]
params:
- name: data
desc: "slice de valores de serie temporal o señal (ej: [1.0, 2.0, 3.0, ...], se aplica zero-padding si no es potencia de 2)"
output: "slice de números complejos representando amplitud y fase en dominio de frecuencia, tamaño potencia de 2"
tested: false
tests: []
test_file_path: ""
+6
View File
@@ -14,6 +14,12 @@ returns: []
returns_optional: false
error_type: ""
imports: []
params:
- name: xs
desc: "slice de elementos a agrupar (tipo genérico T)"
- name: keyFn
desc: "función que extrae la clave de agrupación de cada elemento (ej: func(u User) string { return u.Department })"
output: "mapa de clave a slice de elementos agrupados (ej: {'Sales': [user1, user2], 'Engineering': [user3]})"
tested: false
tests: []
test_file_path: ""
+6
View File
@@ -14,6 +14,12 @@ returns: []
returns_optional: false
error_type: ""
imports: ["math"]
params:
- name: data
desc: "slice de valores numéricos a distribuir en el histograma"
- name: buckets
desc: "número de buckets equiespaciados (ej: 10, 50, 100)"
output: "slice de enteros con frecuencias en cada bucket, tamaño igual a buckets"
tested: false
tests: []
test_file_path: ""
+4
View File
@@ -14,6 +14,10 @@ returns: []
returns_optional: false
error_type: ""
imports: ["math"]
params:
- name: data
desc: "slice de valores que pueden contener NaN (valores faltantes)"
output: "slice sin NaN, cada valor NaN reemplazado por el último valor válido anterior (forward-fill)"
tested: false
tests: []
test_file_path: ""
+4
View File
@@ -14,6 +14,10 @@ returns: []
returns_optional: false
error_type: "error_go_core"
imports: ["fmt"]
params:
- name: path
desc: "ruta al archivo CSV (ej: '/data/sales.csv')"
output: "slice de mapas donde cada mapa es una fila (columna -> valor), ej: [{'id': '1', 'name': 'Alice', 'sales': '100'}]"
tested: false
tests: []
test_file_path: ""
+4
View File
@@ -14,6 +14,10 @@ returns: []
returns_optional: false
error_type: "error_go_core"
imports: ["fmt"]
params:
- name: path
desc: "ruta al archivo Parquet (ej: '/data/events.parquet')"
output: "slice de mapas donde cada mapa es una fila (columna -> valor), ej: [{'user_id': 123, 'timestamp': '2026-01-01T10:00:00'}]"
tested: false
tests: []
test_file_path: ""
+8
View File
@@ -14,6 +14,14 @@ returns: []
returns_optional: false
error_type: ""
imports: []
params:
- name: s
desc: "estado actual del atractor como {X, Y, Z} (coordenadas 3D del sistema)"
- name: dt
desc: "paso temporal de integración (ej: 0.005 segundos, valores menores = más preciso)"
- name: p
desc: "parámetros del sistema Lorenz (sigma≈10, rho≈28, beta≈8/3 para el butterfly clásico)"
output: "nuevo estado después de un paso de integración Euler, coordenadas típicamente en rango [-20, 20]"
tested: false
tests: []
test_file_path: ""
+4
View File
@@ -14,6 +14,10 @@ returns: []
returns_optional: false
error_type: ""
imports: ["math"]
params:
- name: data
desc: "slice de valores numéricos a normalizar"
output: "slice escalado al rango [0, 1] donde min(data)→0 y max(data)→1"
tested: false
tests: []
test_file_path: ""
+6
View File
@@ -14,6 +14,12 @@ returns: []
returns_optional: false
error_type: ""
imports: ["math"]
params:
- name: xs
desc: "primer slice de valores (ej: precios del activo X, o variable independiente)"
- name: ys
desc: "segundo slice de valores (ej: precios del activo Y, o variable dependiente, mismo tamaño que xs)"
output: "coeficiente de correlación de Pearson en rango [-1, 1], donde 1=correlación perfecta, -1=anticorrelación, 0=sin correlación"
tested: false
tests: []
test_file_path: ""
+12
View File
@@ -14,6 +14,18 @@ returns: []
returns_optional: false
error_type: ""
imports: []
params:
- name: rows
desc: "slice de mapas columna-valor (ej: resultado de load_csv o fetch_data_frame)"
- name: index
desc: "nombre de columna que se convierte en fila (ej: 'region')"
- name: columns
desc: "nombre de columna cuyos valores únicos se convierten en nuevas columnas (ej: 'product')"
- name: values
desc: "nombre de columna con valores a agregar (ej: 'sales')"
- name: agg
desc: "función de agregación: 'sum', 'count', 'mean', 'min', 'max', 'first', 'last'"
output: "slice de mapas pivotados donde cada fila agrupa por index, con nuevas columnas por cada valor unique de columns"
tested: true
tests:
- "Pivot basico con sum"
+6
View File
@@ -14,6 +14,12 @@ returns: []
returns_optional: false
error_type: ""
imports: []
params:
- name: xs
desc: "slice de elementos a ventanar (tipo genérico T)"
- name: size
desc: "tamaño de cada ventana deslizante (ej: 10 para ventanas de 10 elementos)"
output: "slice de slices donde cada inner slice es una ventana de tamaño size, total ventanas = len(xs) - size + 1"
tested: false
tests: []
test_file_path: ""
+4
View File
@@ -14,6 +14,10 @@ returns: []
returns_optional: false
error_type: ""
imports: ["math"]
params:
- name: data
desc: "slice de valores numéricos a normalizar"
output: "slice estandarizado donde cada valor x → (x - media) / desviación_estándar, media=0 y desviación_estándar=1"
tested: false
tests: []
test_file_path: ""
+6
View File
@@ -14,6 +14,12 @@ returns: []
returns_optional: false
error_type: ""
imports: []
params:
- name: as
desc: "primer slice de valores (ej: precios)"
- name: bs
desc: "segundo slice de valores (ej: volúmenes)"
output: "slice de pares [2]float64 donde cada par es [as[i], bs[i]], longitud = min(len(as), len(bs))"
tested: false
tests: []
test_file_path: ""