{
  "id": "recipe.group-nodes",
  "goal": "Group existing nodes while keeping group membership valid.",
  "readFirst": [
    "/llm/schema/wire-diagram.json",
    "/llm/validation.shape.json"
  ],
  "preferredPath": [
    "Use a group node when nodes need a visible parent frame.",
    "Set the group node's children array to child ids.",
    "Set each child node parent to the group id.",
    "Use MCP add_group for existing children when available.",
    "Validate for group.child-missing and group.child-parent-mismatch."
  ],
  "actionBatch": [
    {
      "type": "group.add",
      "group": {
        "id": "knowledge",
        "kind": "group",
        "title": "Knowledge retrieval"
      },
      "children": [
        "rewrite",
        "search",
        "filter"
      ]
    }
  ],
  "avoid": [
    "Do not use groups for ordinary control-flow edges.",
    "Do not list missing child ids.",
    "Do not forget parent on grouped child nodes when editing raw JSON."
  ]
}
