Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

Surface Zigflow expression capabilities for tooling and MCP consumers

Abierto
#459 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
5/5
Tiempo estimado
Más de una semana
Aptitud para principiantes
35/100
Tipo de issue
Nueva funcionalidad
Claridad
Bastante claro
Estado de actividad
Tranquilo
Stack tecnológico
go
Área
tooling

Línea de trabajo

Comienza rastreando los jqFuncs, deterministicBuiltins, las opciones del compilador y el análisis de determinismo existentes para identificar las fuentes actuales de las capacidades de las expresiones. Define la representación pública compartida y su superficie de descubrimiento, y luego verifica que el tiempo de ejecución, la validación, las herramientas y la documentación generada se deriven de ella sin cambiar el comportamiento de validación.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

enhancement good first issue help wanted never-stale

Originally from https://github.com/zigflow/zigflow/issues/420#issuecomment-4589857438 by @yoricksmeets

Summary

Zigflow now performs expression parsing, compilation and determinism analysis during validation.

As part of this work, Zigflow has effectively defined its own expression environment:

  • Supported jq builtins
  • Supported Zigflow functions
  • Supported Zigflow variables
  • Deterministic functions
  • Non-deterministic functions
  • Validation rules around where expressions may be used

These capabilities are currently encoded in code (jqFuncs, deterministicBuiltins, compiler options, determinism analysis), but are not surfaced to users or tooling.

Problem

Tooling currently has no authoritative way to discover:

  • Which functions are available
  • Which variables are available
  • Which functions are deterministic
  • Which functions are only valid in specific contexts (for example Set)
  • What the effective Zigflow subset of jq looks like

This makes it harder to build:

  • Zigflow Studio
  • MCP integrations
  • AI-assisted workflow authoring
  • Editor autocomplete
  • Expression validation tooling
  • Documentation generation

Consumers must currently reverse-engineer these capabilities from source code.

Proposal

Create a public representation of the Zigflow expression environment.

Potential outputs could include:

CLI
zigflow expressions list

Example:

Functions:
  uuid          (non-deterministic)
  timestamp     (non-deterministic)
  now           (non-deterministic)
  slugify       (deterministic)

Variables:
  $input
  $data
  $context
  $output
  $env
MCP

Expose expression capabilities through a dedicated MCP tool or metadata endpoint.

Example:

{
  "functions": [
    {
      "name": "uuid",
      "deterministic": false
    }
  ],
  "variables": [
    "$input",
    "$data",
    "$context",
    "$output",
    "$env"
  ]
}
Documentation

Generate expression reference documentation from the same source of truth.

Goals

  • Single source of truth for supported expression capabilities
  • No duplication between runtime, validation and documentation
  • Enable richer tooling and autocomplete
  • Enable AI-assisted authoring to discover available functions and variables
  • Make the effective Zigflow expression language visible to users

Non-goals

  • Changing validation behaviour
  • Expanding expression capabilities
  • Replacing jq
  • Introducing a new expression language

Acceptance criteria

  • Expression capabilities are discoverable programmatically
  • Runtime and validation derive from the same capability definitions
  • Tooling can determine whether a function is deterministic
  • Tooling can determine which variables are available
  • Documentation can be generated from the same source of truth
Lenguaje dominante
Go
Estrellas
206
Forks
27
Merge medio
7 h 17 min
PR fusionados (30 d)
27

Guía de contribución

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de zigflow/zigflow

Todos los issues de zigflow/zigflow

Issues similares

Más issues de Go

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.