Fluent Commerce Logo
Docs

Workflow and Manifest Tools in Fluent CLI

Essential knowledge

Intended Audience:

Technical User

Author:

Ben Harrison

Changed on:

17 June 2026

Overview

Fluent workflows and Mystique manifests are often large, complex JSON files that are difficult for both humans and AI assistants to work with. The Fluent CLI provides a set of commands to summarize, extract, and merge these files, enabling an efficient development workflow.

Key points

  • Large Files: Production workflows can contain hundreds of rulesets; manifests can have dozens of pages
  • Complex Structure: Nested dependencies, event chains, and component hierarchies are hard to navigate
  • AI Context Limits: LLMs struggle to parse and reason about 10,000+ line JSON files
  • Version Control: Diffing large JSON files is ineffective for code review

Why These Tools?

The CLI provides three complementary operations:
  • Summarize: Generate a high-level view of structure and dependencies
  • Extract: Pull out a focused subset for modification
  • Merge: Integrate changes back into the source
This enables a workflow where you analyze the whole, extract the part you need, modify it, and merge it back.

Workflows

Workflows define the state machine for Fluent entities (ORDER, FULFILMENT, etc.) using the Rubix orchestration engine.

Workflow Summarize

Analyze workflow structure and display ruleset dependency chains.
1# Summarize from local file
2fluent workflow summarize -w workflow.json
3
4# Load from API
5fluent workflow summarize -w "ORDER::CC" -p myprofile -r myretailer
6
7# Human-readable tree with descriptions
8fluent workflow summarize -w workflow.json --descriptions --colors
9
10# JSON output (machine-readable)
11fluent workflow summarize -w workflow.json --json
12
13# Limit tree depth
14fluent workflow summarize -w workflow.json --depth 3
Output: A hierarchical tree showing how rulesets connect through event production chains.The structure of each ruleset is as follows:
1<ref>: <type_code> <ruleset_name> (States: <trigger_states>)
2# e.g.
3[creat]: Or CREATE (States: CREATED)
  • ref: Each ruleset is assigned a reference ID (e.g., "creat", "booke") for use with `extract`.
  • type_code: A shorthand representing the entity type, e.g. "Or" for Order, "Fu" for Fulfilment
  • ruleset_name and trigger_states are as per workflow definitions
Example output:
1info: Analyzing workflow: ORDER::HD
2Workflow Summary
3================
4Name:         ORDER::HD
5Type:         ORDER
6Subtype:      HD
7Version:      1.0
8Description:  The Home Delivery Order Workflow provides end-to-end Order Lifecycle Management processing (a distributed sourcing strategy, split fulfilments, fulfilment lifecycle from any location, multiple article tracking, carrier consignments, cancellation, rejection, and escalation processes).
9Retailer ID:  1
10Total Rulesets: 70
11
12Ruleset Trees
13=============
14
15[creat-08]: Or CREATE (States: CREATED)
16└─ [check] Or CheckOrderCoordinates
17   ├─ [proce] Or ProcessOrder
18   │  [17 descendants not shown]
19   └─ [check-02] Or CheckOrderDeliveryAddress
20      [22 descendants not shown]
21
22---
23
24[creat-08]: Fu CREATE (States: CREATED)
25├─ IC UpdateInventoryQty [-> INVENTORY_CATALOGUE]
26└─ [proce-03] Fu ProcessFulfilment
27   ├─ [proce-04] Fu ProcessEscalatedFulfilment
28   │  [1 descendant not shown]
29   └─ [store] Fu StoreFulfilment
30      [13 descendants not shown]
31# ...
Use cases:
  • Understand complex workflow dependencies
  • Identify potential loops or orphaned rulesets
  • Find which rulesets produce specific events
  • Get reference IDs for extraction

Workflow Extract

Extract a subset of a workflow containing a specific ruleset and all its descendants.
1# Extract from local file
2fluent workflow extract -w workflow.json --ref creat -o create-subtree.json
3
4# Extract from API
5fluent workflow extract -w "ORDER::CC" -p myprofile -r myretailer --ref booke -o booked.json
6
7# Output to stdout (for piping)
8fluent workflow extract -w workflow.json --ref sourc
Parameters:
  • `--ref`: Reference ID from `workflow summarize` output (e.g., "creat", "booke")
  • `-o`: Output file path (optional, defaults to stdout)
Output: A partial workflow JSON containing:
  • The specified ruleset and all descendants
  • Required statuses referenced by extracted rulesets
  • Metadata in `_partial` field tracking extraction details
Use cases:
  • Focus on a specific workflow branch for analysis
  • Create smaller files for AI assistants to process
  • Extract a subtree for development, testing, or documentation
  • Isolate changes for code review

Workflow Merge

Merge a workflow fragment into a target workflow, with token replacement.
1# Merge fragment into local workflow
2fluent workflow merge fragment.json workflow.json
3
4# Merge fragment into workflow loaded from API
5fluent workflow merge fragment.json "ORDER::CC" -p myprofile -r myretailer
Parameters:
  • `<fragment>`: Path to workflow fragment file
  • `<targetworkflow>`: Path to local workflow file OR workflow name (requires profile/retailer)
Process:
  • Loads fragment and target workflow
  • Resolves template tokens (e.g., `{{RETAILER_NAME}}`)
  • Validates entityType and entitySubtype match
  • Merges rulesets, statuses, and user actions by key
  • Writes merged result to `<targetworkflow>.merged.json`
  • Uploads merged workflow to API
Merge behavior:
  • Rulesets matched by `name`
  • Statuses matched by `name`
  • User actions matched by `userActionKey`
  • Triggers matched by `trigger.key` (preferred) or `trigger.name` (legacy)
  • New items are added, existing items are replaced
Token replacement:
  • Tokens like `{{RETAILER_NAME}}`, `{{MODULE_NAME}}` are replaced using CLI config
  • Template values loaded from module config and profile settings
Use cases:
  • Install workflow fragments from modules
  • Apply customizations to base workflows
  • Merge changes from extracted and modified fragments

Manifests

Mystique manifests define the structure of Fluent web applications: navigation, pages, sections, and components.

Manifest Summarize

Analyze manifest structure and display sections, pages, and component hierarchy.
1# Summarize from local file
2fluent manifest summarize -m manifest.json
3
4# Load from API (downloads all fragments)
5fluent manifest summarize -m "mystique.order" -p myprofile
6
7# Show nested component names
8fluent manifest summarize -m manifest.json --descendants
9
10# JSON output
11fluent manifest summarize -m manifest.json --json
12
13# Specify output directory for downloaded fragments
14fluent manifest summarize -m "mystique.order" -p myprofile -o ./manifests
Output: A structured view of sections, pages, and components. When loading from API, all referenced fragments are downloaded to the output directory.Example output:
1Manifest: mystique.order
2
3Section: orders
4  Page: orders (Orders List)
5    Component: fc.datatable
6  Page: orders/:id (Order Details)
7    Component: fc.order.header
8    Component: fc.order.items
9
10Section: fulfilments
11  Page: fulfilments (Fulfilments List)
12    Component: fc.datatable
Use cases:
  • Understand manifest structure across fragments
  • Find page paths for extraction
  • Map component usage across pages
  • Audit manifest completeness

Manifest Extract

Extract a specific page from a manifest by path, wrapped in metadata envelope for later merging.
1# Extract from local file
2fluent manifest extract -m manifest.json --path "orders" -o orders-page.json
3
4# Extract from API
5fluent manifest extract -m "mystique.order" -p myprofile --path "orders/:id" -o order-details.json
6
7# Output to stdout
8fluent manifest extract -m manifest.json --path "fulfilments"
Parameters:
  • `--path`: Page path to extract (e.g., "orders", "orders/:id")
  • `-o`: Output file path (optional, defaults to stdout)
Output: A manifest extract envelope with metadata:
1{
2  "_extract": {
3    "manifestName": "mystique.order",
4    "pagePath": "orders/:id",
5    "fragmentName": "mystique.order.pages.orders",
6    "action": "REPLACE"
7  },
8  "page": {
9    "type": "page",
10    "path": "orders/:id",
11    "component": { ... }
12  }
13}
Use cases:
  • Extract a single page for focused modification
  • Create smaller files for version control
  • Isolate page changes for code review
  • Share page definitions across manifests

Manifest Merge

Merge a manifest extract back into a target manifest using action-based strategies.
1# Merge extract into local manifest
2fluent manifest merge extract.json manifest.json
3
4# Merge and write to custom output
5fluent manifest merge extract.json manifest.json -o custom-fragment.json
6
7# Merge and upload to API as setting
8fluent manifest merge extract.json "mystique.order" -p myprofile --upload
9
10# Load target from API but don't upload
11fluent manifest merge extract.json "mystique.order" -p myprofile
Parameters:
  • `<extract>`: Path to extract file (must contain `_extract` envelope)
  • `<targetmanifest>`: Path to local manifest file OR manifest name (requires profile)
  • `-o`: Output file path (default: `{fragmentName}.merged.json`)
  • `--upload`: Upload merged fragment to API as setting
Merge actions (specified in extract `_extract.action`):
  • `REPLACE`: Replace existing page at path
  • `ADD`: Add new page (error if exists)
  • `DELETE`: Remove page at path
Process:
  • Loads extract envelope and target manifest
  • Identifies which fragment contains the target page
  • Applies action (REPLACE/ADD/DELETE) to fragment
  • Writes merged fragment to output file
  • Optionally uploads fragment to API as setting
Use cases:
  • Apply extracted page modifications back to source
  • Add new pages to existing manifests
  • Remove deprecated pages
  • Deploy manifest changes to environments

Development Workflow

Recommended Pattern: Analyze → Extract → Modify → Merge → Test

For Workflows
1# 1. Analyze: Get high-level structure
2fluent workflow summarize -w ORDER::CC -p prod -r acme --descriptions
3
4# 2. Extract: Pull out the ruleset tree you need to modify
5fluent workflow extract -w ORDER::CC -p prod -r acme --ref booke -o booked.json
6
7# 3. Modify: Edit booked.json (much smaller file - easier for humans and LLMs)
8# ... make changes ...
9
10# 4. Merge: Integrate changes back
11fluent workflow merge booked.json ORDER::CC -p prod -r acme
12
13# 5. Test: Verify workflow behavior
14# Run through test scenarios in your environment
For Manifests
1# 1. Analyze: Get page structure
2fluent manifest summarize -m mystique.order -p prod
3
4# 2. Extract: Pull out the page you need to modify
5fluent manifest extract -m mystique.order -p prod --path "orders/:id" -o order-details.json
6
7# 3. Modify: Edit order-details.json
8# ... make changes ...
9
10# 4. Merge: Integrate changes back
11fluent manifest merge order-details.json mystique.order -p prod -o mystique.order.pages.orders.merged.json
12
13# 5. Upload: Deploy to environment
14fluent manifest merge order-details.json mystique.order -p prod --upload
15
16# 6. Test: Verify in application
17# Open the page in your Mystique application

Benefits for AI Assistants

When working with Claude Code or other AI assistants:
  • Summarize first: Let the AI see structure without processing the entire file
  • Extract focused subset: AI can process a 200-line extract instead of a 5,000-line file
  • Modify extracted file: AI stays within context limits while making precise changes
  • Merge with confidence: Automated merge ensures correct integration
Example prompt to Claude:
1Analyze this workflow and modify the BOOKED ruleset to add 
2a validation rule:
3
41. First, summarize the workflow to understand structure
52. Extract the BOOKED ruleset and its descendants
63. Add a validation rule to check order.totalPrice > 0
74. Prepare the modified extract for merging
Claude can now work efficiently, using the CLI tools to stay within its context window.