Skip to content
Back to skills

2040 Recursive Workflows 0659acaa

ASecurity

This document serves as a guide on how Recursive Workflows can be generated within WilmerAI. The steps and structure given are an example of a working and functional recursive workflow. Recursive workflows are not limited to this structure, can become more complex as necessary. But this guide can serve as a starting point to understanding exactly how an existing recursive flow is set up. ---- A recursive workflow pattern in this system involves a "Core" workflow that calls itself repeatedly t...

  • 9 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 11, 2026
researchnodeexpressdatabase

Security analysis

A100/100

Scanned October 11, 2026

npx -y skills add tools-only/X-Skills --skill 2040-recursive_workflows_0659acaa --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of 2040 Recursive Workflows 0659acaa?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for 2040 Recursive Workflows 0659acaa
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/tools-only-2040-recursive-workflows-0659acaa/badge)](https://www.skillsdirectory.com/skills/tools-only-2040-recursive-workflows-0659acaa)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

SKILL.md
### **A Generic Framework for Recursive Workflows**

This document serves as a guide on how Recursive Workflows can be generated within WilmerAI. The steps and structure
given are an example of a working and functional recursive workflow. Recursive workflows are not limited to this
structure, can become more complex as necessary. But this guide can serve as a starting point to understanding exactly
how an existing recursive flow is set up.

----

A recursive workflow pattern in this system involves a "Core" workflow that calls itself repeatedly to process or refine
data over multiple passes. This pattern is ideal for tasks that require breaking a complex problem into smaller,
repeatable steps, such as iterative refinement, deep analysis, or multi-step tool use.

The pattern relies on three distinct workflows:

1. **Workflow A: The Main Orchestrator**
2. **Workflow B: The Recursive Core**
3. **Workflow C: The Final Processor**

#### **Visual Flow**

```
[Start] -> [A: Orchestrator] -> [B: Recursive Core] --(loops)--> [B: Recursive Core] --(exits)--> [C: Final Processor] -> [A: Orchestrator] -> [End]
```

> Important Note: When crafting a recursive workflow, creating one that actually works is the paramount objective.
> If a user requests a workflow structure that is irreconcilable with the structure a recursive workflow should
> follow, be sure to prompt the user and discuss before continuing.
>
> Ultimately, the objective will likely be to try to achieve the *spirit* of what the user is asking, while maintaining
> the appropriate structure necessary to run the recursion.

-----

### **1. Workflow A: The Main Orchestrator**

This workflow's job is to initialize the process and handle the final result. It does not contain any looping logic
itself.

**Key Responsibilities:**

* Receives the initial input/problem statement from an external source.
* Initializes the state variables required for the loop.
* Makes the *first* call to the `Recursive Core` workflow.
* Receives the final, processed result from the recursive chain and returns it as the final output.

**Structure:**

* **Node 1: Initialize Counter**

    * **Type:** `StaticResponse`
    * **Purpose:** Sets the starting value for the iteration counter.
    * **Content:** `"0"`

* **Node 2: Initialize Accumulator**

    * **Type:** `StaticResponse`
    * **Purpose:** Creates a variable to hold the combined results from every loop.
    * **Content:** A placeholder string like `"Initial State"` or an empty string.

* **Node 3: Call the Recursive Core**

    * **Type:** `CustomWorkflow`
    * **Purpose:** To kick off the iterative process.
    * **`workflowName`:** The name of your `Recursive Core` workflow (Workflow B).
    * **`scoped_variables`:** This is critical. It passes the initial state to the loop.
      ```json
      "scoped_variables": [
        "{agent1Input}",       // The original problem/data
        "{agent1Output}",      // The initial counter (0)
        "{agent2Output}"       // The initial accumulator
      ]
      ```

* **Node 4: Return Final Result**

    * **Type:** `StaticResponse` (or similar output node)
    * **Purpose:** To return the final, synthesized output from the entire process.
    * **`returnToUser`:** `true`
    * **`content`:** `"{agent3Output}"`

-----

### **2. Workflow B: The Recursive Core**

This is the heart of the pattern. It performs one unit of work and then decides whether to call itself again or to exit
the loop.

**Key Responsibilities:**

* Receives the current state (problem, counter, accumulator).
* Checks if a stop condition has been met.
* Performs a single processing step.
* Updates the state variables (increments counter, appends to accumulator).
* Branches to either call itself again with the *new* state or calls the `Final Processor` workflow.

**Structure:**

* **Node 1: Check Max Iterations**

    * **Type:** `Conditional`
    * **Purpose:** A safety valve to prevent infinite loops. Compares the current counter against a hardcoded maximum.
    * **`condition`:** `"{agent2Input} >= 4"` (assuming counter is the second input)

* **Node 2: Perform One Unit of Work**

    * **Type:** `Standard`, `CustomWorkflow`, or any other node.
    * **Purpose:** This is where you perform the actual task for a single iteration (e.g., call an LLM to analyze data,
      search a database, refine a query). It uses `{agent1Input}` (the problem) and `{agent3Input}` (the accumulator) as
      context.

* **Node 3: Decide to Continue or Stop**

    * **Type:** `Standard` or `Conditional`
    * **Purpose:** Analyzes the result from Node 2 to make a logical decision. For example, an LLM might determine if
      the task is complete and output `CONTINUE` or `STOP`.

* **Node 4: Increment Counter**

    * **Type:** `ArithmeticProcessor`
    * **`expression`:** `"{agent2Input} + 1"`

* **Node 5: Update Accumulator**

    * **Type:** `StringConcatenator`
    * **Purpose:** Appends the result of this pass (from Node 2) to the accumulated results from previous passes.
    * **`strings`:** `["{agent3Input}", "{agent2Output}"]`
    * **`delimiter`:** `"\n\n---\n\n"` (or any other separator)

* **Node 6: Evaluate Loop Condition**

    * **Type:** `Conditional`
    * **Purpose:** Combines the stop conditions into a final boolean `TRUE`/`FALSE`.
    * **`condition`:** `"{agent1Output} == FALSE AND {agent3Output} == CONTINUE"`
        * This checks that the max iteration limit has *not* been reached AND the logical check decided to continue.

* **Node 7: The Recursive Branch**

    * **Type:** `ConditionalCustomWorkflow`
    * **`conditionalKey`:** `"{agent6Output}"` (the result of the combined check)
    * **`conditionalWorkflows`:**
        * **`"TRUE"`:** The filename of **this same workflow** (`Recursive Core`). This is the recursive call.
        * **`"FALSE"`:** The filename of the `Final Processor` workflow (Workflow C). This is the exit path.
    * **`scoped_variables`:** Passes the **updated state** to the next step.
      ```json
      "scoped_variables": [
        "{agent1Input}",       // Original problem (usually unchanged)
        "{agent4Output}",      // The NEW, incremented counter
        "{agent5Output}"       // The NEW, updated accumulator
      ]
      ```

-----

### **3. Workflow C: The Final Processor**

This workflow runs only once after the loop has finished. Its job is to perform a final cleanup, synthesis, or
formatting step.

**Key Responsibilities:**

* Receives the fully populated `accumulator` variable, which contains the results of all iterations.
* Performs a final processing step (e.g., uses an LLM to summarize all the findings into a coherent answer).
* Returns a single, clean output string.

**Structure:**

* **Node 1: Final Synthesis**
    * **Type:** `Standard`
    * **Purpose:** To process the raw, accumulated data into a final, polished response.
    * **`systemPrompt`:** Instructs an LLM on how to synthesize the input.
    * **`prompt`:** `Please synthesize the following multi-pass data into a final report:\n\n{agent1Input}` (assuming
      the accumulator is the first input).
    * **`returnToUser`:** `true` (within the context of this sub-workflow).

> Important Note on Synthesis: While the best result from synthesis is passing as much history as possible between
> the loops, it is very important to be cognizant of context windows. This is especially true for coding tasks
>
> Code is very token heavy; it's not unheard of to imagine an LLM receiving 20,000+ tokens of code with a request. For
> many local LLMs, this is bordering on the edge of too many tokens to even use; passing the history
> of re-writes and edits would immediately break most local model context windows within 2-3 iterations.
> Even proprietary AI would start to suffer degradation after a few iterations.
>
> When determining what information to pass between loops, please take care to judge how much context one could
> reasonably assume would be involved with the overall request and response, and take care not to create a
> recursive workflow that would simply error out or degrade to uselessness in only a couple of loops.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.