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
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 31<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
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# ...- 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`--ref`: Reference ID from`workflow summarize`output (e.g., "creat", "booke")`-o`: Output file path (optional, defaults to stdout)
- The specified ruleset and all descendants
- Required statuses referenced by extracted rulesets
- Metadata in
`_partial`field tracking extraction details
- 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`<fragment>`: Path to workflow fragment file`<targetworkflow>`: Path to local workflow file OR workflow name (requires profile/retailer)
- 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
- 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
- Tokens like
`{{RETAILER_NAME}}`,`{{MODULE_NAME}}`are replaced using CLI config - Template values loaded from module config and profile settings
- 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 ./manifests1Manifest: 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- 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"`--path`: Page path to extract (e.g., "orders", "orders/:id")`-o`: Output file path (optional, defaults to stdout)
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}- 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`<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
`_extract.action`):`REPLACE`: Replace existing page at path`ADD`: Add new page (error if exists)`DELETE`: Remove page at path
- 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
- 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 environmentFor 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 applicationBenefits 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
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