Skip to content
Back to skills

2045 Conditional 005838a8

ASecurity

Here is the updated documentation for the new `Conditional` node. The **`Conditional`** node is a powerful control flow utility that evaluates a complex logical expression. Its purpose is to return the string `"TRUE"` or `"FALSE"` based on the outcome. This node is a fundamental building block for creating dynamic workflows, as its output can be used by a `ConditionalCustomWorkflow` node to decide whether or not to execute a subsequent sub-workflow. It supports: * Comparisons between **number...

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

Security analysis

A100/100

Scanned October 11, 2026

npx -y skills add tools-only/X-Skills --skill 2045-conditional_005838a8 --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of 2045 Conditional 005838a8?

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

Security grade badge for 2045 Conditional 005838a8
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/tools-only-2045-conditional-005838a8/badge)](https://www.skillsdirectory.com/skills/tools-only-2045-conditional-005838a8)

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

SKILL.md
### **Developer Guide: The Conditional Node**

Here is the updated documentation for the new `Conditional` node.

### **Logic & Control Flow: The Conditional Node**

The **`Conditional`** node is a powerful control flow utility that evaluates a complex logical expression. Its purpose
is to return the string `"TRUE"` or `"FALSE"` based on the outcome. This node is a fundamental building block for
creating dynamic workflows, as its output can be used by a `ConditionalCustomWorkflow` node to decide whether or not to
execute a subsequent sub-workflow.

It supports:

* Comparisons between **numbers or strings** (e.g., `{score} > 90`, `'{status}' == 'complete'`).
* Logical operators **`AND`** and **`OR`** to combine multiple conditions.
* **Parentheses `()`** to group expressions and control the order of evaluation.

-----

#### **How It Works**

1. **Configuration Loading:** The processor loads the node's JSON configuration and its `condition` string.
2. **Variable Substitution:** The `condition` field is processed, replacing any placeholders like `{agent1Output}` with
   their runtime values.
3. **Expression Parsing:** The system uses a standard Shunting-yard algorithm to parse the entire expression. This
   correctly handles operator precedence (**`AND`** is evaluated before **`OR`**) and nested expressions within
   parentheses.
4. **Type Inference:** During evaluation, the node intelligently parses each value.
    * A value enclosed in single or double quotes (e.g., `"Admin"`) is treated as a **string**.
    * The special words `TRUE` and `FALSE` (case-insensitive, **without quotes**) are treated as **booleans**.
    * Any other unquoted value is first attempted as a **number**. If it's not a valid number, it's treated as a *
      *string** (e.g., the resolved output of a variable).
5. **Evaluation:** The full expression is evaluated according to logical rules. Comparing a number to a string (e.g.,
   `5 > "cat"`) will safely result in `FALSE`.
6. **Output Handling:**
    * The node returns the string `"TRUE"` if the final expression evaluates to true, and `"FALSE"` otherwise.
    * If the condition is malformed or a syntax error occurs, it safely returns `"FALSE"` and logs a warning.
    * The string output is captured as a variable (e.g., `{agent2Output}`), which can be directly used to control other
      nodes.

-----

#### **Properties**

| Property           | Type    | Required | Default | Description                                                                                                     |
|:-------------------|:--------|:---------|:--------|:----------------------------------------------------------------------------------------------------------------|
| **`type`**         | String  | Yes      | N/A     | Must be `"Conditional"`.                                                                                        |
| **`title`**        | String  | No       | `""`    | A descriptive name for the node, used for logging and debugging.                                                |
| **`condition`**    | String  | Yes      | N/A     | The logical expression to evaluate (e.g., `({val} >= 100 AND '{status}' != 'ERROR') OR {is_override} == TRUE`). |
| **`returnToUser`** | Boolean | No       | `false` | This node is designed for internal logic and its output is not intended for the end-user.                       |

-----

#### **Variable Usage**

The `condition` property supports all available workflow variables. The node will automatically determine the type (
number, string, or boolean) of the resolved variable. For string literals in the condition itself, **it is best practice
to enclose them in quotes** (e.g., `"completed"`).

-----

#### **⚠️ Critical Usage Note: Comparing Booleans vs. Strings**

The node's type inference engine makes a critical distinction between a boolean `TRUE` and a string `'TRUE'`. **This is
especially important when checking the output of a previous `Conditional` node.**

The `Conditional` node outputs the raw string `TRUE` or `FALSE`. When this output (e.g., `{agent3Output}`) is used in
another condition, the parser interprets it as a **boolean**.

* **INCORRECT Comparison:** `"{agent3Output} == 'TRUE'"`

    * This will evaluate as `(boolean) True == (string) 'TRUE'`, which is **FALSE**.

* **CORRECT Comparison:** `"{agent3Output} == TRUE"`

    * This will evaluate as `(boolean) True == (boolean) True`, which is **TRUE**.

Always compare the output of a `Conditional` node against the unquoted keywords `TRUE` or `FALSE`.

-----

#### **Full Syntax Examples**

**Simple Numeric Comparison**
This example checks if a calculated score from a previous node is passing.

```json
{
  "title": "Check if score is passing",
  "type": "Conditional",
  "condition": "{agent4Output} >= 65"
}
```

**Combined Logic with `AND`**
This example checks if the string output from a task is `'complete'` and was not assigned to a user named `'guest'`.

```json
{
  "title": "Check if task is complete and not a guest task",
  "type": "Conditional",
  "condition": "{agent2Output} == 'complete' AND {agent1Output} != 'guest'"
}
```

**Complex Logic with `OR` and Parentheses**
This example demonstrates how to check for multiple valid states or an override condition. The parentheses ensure the
`OR` conditions are evaluated together before the `AND`. Note the correct comparison to the unquoted boolean `TRUE`.

```json
{
  "title": "Check for valid state or admin override",
  "type": "Conditional",
  "condition": "({agent1Output} == 'Admin') OR ({agent2Output} == 'Approved' AND {agent3Output} == TRUE)"
}
```

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.