Strixa AI
TopicsSearchPricing
Sign inStart tracking

Signal Detail

Loading signal detail

Reading this signal card's judgment, risks, and evidence.

Strixa AI
TopicsSearchPricing
Sign inStart tracking
Back to Signal Feed
CodeTracked since May 19, 2026

Add structured object/array parameters to Goose recipe rendering

This PR adds `object` and `array` recipe parameter types and threads them through Goose’s existing build pipeline so template rendering can consume structured JSON values directly. Matching parameters are parsed from string inputs into `serde_json::Value` and rendered with a structured MiniJinja path, enabling native template access, iteration, and conditionals without changing the external `build_recipe_from_template` API surface.

RecipeParameterInputTypebuild_recipe_from_templateMiniJinjaserde_json::Value

Signal Intelligence

Confidence Level97%
Worth Continued TrackingFinal score 82% with 1 evidence item.
Primary Impact Areas
RecipeParameterInputTypebuild_recipe_from_templateMiniJinja

What Happened

  • This PR adds `object` and `array` recipe parameter types and threads them through Goose’s existing build pipeline so template rendering can consume structured JSON values directly. Matching parameters are parsed from string inputs into `serde_json::Value` and rendered with a structured MiniJinja path, enabling native template access, iteration, and conditionals without changing the external `build_recipe_from_template` API surface.
  • This PR adds `object` and `array` recipe parameter types and threads them through Goose’s existing build pipeline so template rendering can consume structured JSON values directly. Matching parameters are parsed from string inputs into `serde_json::Value` and rendered with a structured MiniJinja path, enabling native template access, iteration, and conditionals without changing the external `build_recipe_from_template` API surface.
  • 1 evidence item attached for review.

What is Different

Before

Scattered source updates, isolated context, and manual follow-up across multiple feeds.

Now

Introduced end-to-end structured parameter support by adding `object` and `array` to the parameter type enum, converting only those inputs from `HashMap<String, String>` into JSON values, and switching the renderer path to a structured MiniJinja flow for those templates.

Why Track This

Why It Matters

Recipe authors using goose-cli, goose-server, summon, or execute_commands can now implement conditional and loop-heavy templates against nested signal fields (such as arrays of findings or severity metadata) without manually flattening inputs into one-string keys, reducing template rewrites and reducing integration friction for richer automation outputs. The implementation keeps existing callers compatible while parsing `input_type: object/array` payloads into structured values under `build_recipe`; non-structured parameters still use the legacy string path, so behavior remains stable for simple recipes. Watch for increase in JSON-shape errors from producers and ensure invalid nested payloads are caught early so template failures are debuggable before deployment.

Impact

Recipe authors using goose-cli, goose-server, summon, or execute_commands can now implement conditional and loop-heavy templates against nested signal fields (such as arrays of findings or severity metadata) without manually flattening inputs into one-string keys, reducing template rewrites and reducing integration friction for richer automation outputs. The implementation keeps existing callers compatible while parsing `input_type: object/array` payloads into structured values under `build_recipe`; non-structured parameters still use the legacy string path, so behavior remains stable for simple recipes. Watch for increase in JSON-shape errors from producers and ensure invalid nested payloads are caught early so template failures are debuggable before deployment.

What To Watch Next

  • Watch whether RecipeParameterInputType becomes a repeated pattern.
  • Track follow-up changes around AI Coding Agents.
  • Compare future signals against this evidence trail.
  • Re-check risk flags: invalid_json_payloads_from_upstream_callers, error_handling_regression_for_mixed_string_and_structured_params.
Open Topic TimelineOpen Technical EventOpen Original Sourceinvalid_json_payloads_from_upstream_callers / error_handling_regression_for_mixed_string_and_structured_params / lack_of_json_aware_cli_and_editor_input_widgets

Supporting Evidence

GITHUB PULL REQUESTHigh Trust

aaif-goose/goose PR #8934: feat(recipe): support structured parameters (object/array) in recipe templates

Recipe templates now support nested and list-based inputs end-to-end via internal structured rendering while preserving existing string-only behavior when no structured parameter is present.