@fluentcommerce/ai-skills 0.13.0 → 0.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (97) hide show
  1. package/README.md +17 -12
  2. package/bin/cli.mjs +219 -43
  3. package/content/cli/skills/fluent-bootstrap/SKILL.md +1 -1
  4. package/content/cli/skills/fluent-cli-mcp-cicd/SKILL.md +1 -1
  5. package/content/cli/skills/fluent-cli-reference/SKILL.md +1 -1
  6. package/content/cli/skills/fluent-cli-retailer/SKILL.md +1 -1
  7. package/content/cli/skills/fluent-connect/SKILL.md +58 -3
  8. package/content/cli/skills/fluent-profile/SKILL.md +35 -5
  9. package/content/cli/skills/fluent-workflow/SKILL.md +2 -1
  10. package/content/dev/agents/fluent-backend-dev.md +2 -2
  11. package/content/dev/agents/fluent-dev.md +1 -1
  12. package/content/dev/agents/fluent-frontend-dev.md +1 -1
  13. package/content/dev/skills/fluent-account-snapshot/SKILL.md +1 -1
  14. package/content/dev/skills/fluent-archive/SKILL.md +2 -1
  15. package/content/dev/skills/fluent-build/SKILL.md +2 -2
  16. package/content/dev/skills/fluent-connection-analysis/SKILL.md +2 -1
  17. package/content/dev/skills/fluent-custom-code/SKILL.md +3 -2
  18. package/content/dev/skills/fluent-data-module-scaffold/SKILL.md +7 -6
  19. package/content/dev/skills/fluent-e2e-test/SKILL.md +1 -1
  20. package/content/dev/skills/fluent-entity-flow-diagnose/SKILL.md +2 -1
  21. package/content/dev/skills/fluent-event-api/SKILL.md +3 -2
  22. package/content/dev/skills/fluent-feature-explain/SKILL.md +2 -1
  23. package/content/dev/skills/fluent-feature-plan/SKILL.md +2 -1
  24. package/content/dev/skills/fluent-feature-status/SKILL.md +1 -1
  25. package/content/dev/skills/fluent-frontend-build/SKILL.md +1 -1
  26. package/content/dev/skills/fluent-frontend-readme/SKILL.md +2 -1
  27. package/content/dev/skills/fluent-frontend-review/SKILL.md +2 -1
  28. package/content/dev/skills/fluent-goal/SKILL.md +1 -1
  29. package/content/dev/skills/fluent-implementation-map/SKILL.md +1 -1
  30. package/content/dev/skills/fluent-inventory-catalog/SKILL.md +2 -2
  31. package/content/dev/skills/fluent-job-batch/SKILL.md +6 -3
  32. package/content/dev/skills/fluent-knowledge-init/SKILL.md +1 -1
  33. package/content/dev/skills/{fluent-source-onboard → fluent-module-convert}/SKILL.md +223 -24
  34. package/content/dev/skills/fluent-module-scaffold/SKILL.md +2 -1
  35. package/content/dev/skills/fluent-module-validate/SKILL.md +8 -7
  36. package/content/dev/skills/fluent-mystique-assess/SKILL.md +22 -6
  37. package/content/dev/skills/fluent-mystique-builder/SKILL.md +33 -2
  38. package/content/dev/skills/fluent-mystique-component/SKILL.md +1 -1
  39. package/content/dev/skills/fluent-mystique-diff/SKILL.md +1 -1
  40. package/content/dev/skills/fluent-mystique-preview/SKILL.md +19 -2
  41. package/content/dev/skills/fluent-mystique-scaffold/SDK_REFERENCE.md +2 -2
  42. package/content/dev/skills/fluent-mystique-scaffold/SKILL.md +13 -2
  43. package/content/dev/skills/fluent-mystique-scaffold/TEMPLATES.md +1 -1
  44. package/content/dev/skills/fluent-mystique-sdk-reference/SKILL.md +2 -1
  45. package/content/dev/skills/fluent-pre-deploy-check/SKILL.md +3 -3
  46. package/content/dev/skills/fluent-retailer-config/SKILL.md +3 -3
  47. package/content/dev/skills/fluent-rollback/SKILL.md +1 -1
  48. package/content/dev/skills/fluent-rule-lookup/SKILL.md +2 -1
  49. package/content/dev/skills/fluent-rule-scaffold/SKILL.md +7 -6
  50. package/content/dev/skills/fluent-rule-test/SKILL.md +2 -1
  51. package/content/dev/skills/fluent-scope-plan/SKILL.md +2 -2
  52. package/content/dev/skills/fluent-session/SKILL.md +1 -1
  53. package/content/dev/skills/fluent-settings/SKILL.md +2 -2
  54. package/content/dev/skills/fluent-skill-observability/SKILL.md +1 -1
  55. package/content/dev/skills/fluent-sourcing/SKILL.md +38 -13
  56. package/content/dev/skills/fluent-system-monitoring/SKILL.md +1 -1
  57. package/content/dev/skills/fluent-test-data/SKILL.md +1 -1
  58. package/content/dev/skills/fluent-trace/SKILL.md +3 -2
  59. package/content/dev/skills/fluent-transition-api/SKILL.md +3 -2
  60. package/content/dev/skills/fluent-ui-record/SKILL.md +1 -1
  61. package/content/dev/skills/fluent-ui-test/SKILL.md +9 -8
  62. package/content/dev/skills/fluent-use-case-discover/SKILL.md +2 -2
  63. package/content/dev/skills/fluent-workflow-analyzer/SKILL.md +3 -2
  64. package/content/dev/skills/fluent-workspace-tree/SKILL.md +4 -3
  65. package/content/knowledge/index.md +3 -3
  66. package/content/knowledge/platform/domain-model.md +1 -0
  67. package/content/knowledge/platform/module-structure.md +5 -5
  68. package/content/knowledge/platform/mystique-routing.md +6 -3
  69. package/content/knowledge/platform/permissions-and-contexts.md +2 -2
  70. package/content/knowledge/platform/rule-test-patterns.md +1 -1
  71. package/content/knowledge/platform/workflow-json-structure.md +1 -1
  72. package/content/mcp-extn/skills/fluent-mcp-core/SKILL.md +2 -1
  73. package/content/mcp-extn/skills/fluent-mcp-tools/SKILL.md +3 -2
  74. package/content/rfl/skills/fluent-rfl-assess/SKILL.md +1 -1
  75. package/docs/01-first-session.md +175 -0
  76. package/docs/02-prompt-guide.md +246 -0
  77. package/docs/03-use-cases.md +1181 -0
  78. package/docs/04-onboarding-plan.md +355 -0
  79. package/docs/05-getting-started.md +262 -0
  80. package/docs/06-dev-workflow.md +1040 -0
  81. package/docs/INDEX.md +40 -0
  82. package/docs/agents-and-skills-guide.md +199 -0
  83. package/docs/capability-map.md +165 -0
  84. package/docs/chrome-devtools-mcp-reference.md +401 -0
  85. package/docs/fluent-ai-skills-reference.md +1351 -0
  86. package/docs/manifest-safety.md +79 -0
  87. package/docs/mcp-servers.md +209 -0
  88. package/docs/workflow-reference.md +167 -0
  89. package/lib/fluent-brand.css +55 -0
  90. package/metadata.json +7 -6
  91. package/package.json +17 -3
  92. package/scripts/postinstall.mjs +38 -0
  93. package/{content/dev/skills/fluent-trace/scripts/analyze-event-capture.mjs → tools/event-capture-analyzer.mjs} +3 -3
  94. package/tools/{generate-feature-dashboard.mjs → feature-dashboard.mjs} +2 -2
  95. package/tools/manifest-diff.mjs +1 -1
  96. package/{content/dev/skills/fluent-mystique-assess/validator.mjs → tools/manifest-validator.mjs} +2 -2
  97. package/tools/workflow-explainer.mjs +1021 -0
@@ -16,7 +16,7 @@ skills:
16
16
  - fluent-data-module-scaffold
17
17
  - fluent-module-validate
18
18
  - fluent-build
19
- - fluent-source-onboard
19
+ - fluent-module-convert
20
20
  - fluent-trace
21
21
  - fluent-entity-flow-diagnose
22
22
  - fluent-event-api
@@ -202,7 +202,7 @@ Execute the approved plan:
202
202
  | Scaffold data modules | `/fluent-data-module-scaffold` | Data-only modules |
203
203
  | Validate modules | `/fluent-module-validate` | Module structure checks |
204
204
  | Build modules | `/fluent-build` | Maven compile + package |
205
- | Onboard source | `/fluent-source-onboard` | Import non-standard code |
205
+ | Convert to module | `/fluent-module-convert` | Convert plugins/source to module format |
206
206
  | Manage settings | `/fluent-settings` | Settings lifecycle |
207
207
  | Configure retailer | `/fluent-retailer-config` | Environment bootstrap |
208
208
  | Trace events | `/fluent-trace` | Event forensics |
@@ -26,7 +26,7 @@ skills:
26
26
  - fluent-data-module-scaffold
27
27
  - fluent-module-validate
28
28
  - fluent-build
29
- - fluent-source-onboard
29
+ - fluent-module-convert
30
30
  - fluent-trace
31
31
  - fluent-entity-flow-diagnose
32
32
  - fluent-event-api
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: fluent-frontend-dev
3
- description: Fluent Commerce frontend development agent for Mystique UI framework. Builds, validates, scaffolds, and analyzes Mystique manifests and SDK component projects. Triggers on "build manifest", "create page", "validate UI", "scaffold component", "analyze manifest", "mystique", "frontend", "ui component".
3
+ description: Fluent Commerce frontend development agent for Mystique UI framework. Builds, validates, scaffolds, and analyzes Mystique manifests and SDK component projects. Triggers on "build manifest", "create page", "validate UI", "scaffold component", "analyze manifest", "mystique", "frontend", "ui component", "new app", "build app", "create app".
4
4
  tools: Bash, Read, Write, Edit, Glob, Grep
5
5
  model: inherit
6
6
  skills:
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: fluent-account-snapshot
3
- description: Lightweight account state snapshot retailers, workflows, modules, catalogues, settings, UI customizations. MCP-first data collection with LLM summary. Triggers on "account snapshot", "account state", "account inventory", "what's in this account", "environment summary".
3
+ description: Lightweight account state snapshot covering retailers, workflows, modules, catalogues, settings, and UI customizations with MCP-first data collection. Use for account inventory or environment summary.
4
4
  user-invocable: true
5
5
  allowed-tools: Bash, Read, Write, Edit, Glob, Grep
6
6
  argument-hint: [--profile <name>] [--retailer <ref>] [--include <sections>] [--json] [--refresh]
@@ -1,11 +1,12 @@
1
1
  ---
2
2
  name: fluent-archive
3
- description: Archive completed or abandoned features by transitioning status.json to ARCHIVED state, generating a closeout archive summary, and optionally cleaning up ephemeral reports. This is a lifecycle state-machine transition, not a session audit or change log, and it should win whenever the user wants a feature formally closed out. Triggers on "archive feature", "mark as archived", "close feature". ROUTING PRIORITY — if the prompt says "archive", "ARCHIVED", "closeout summary", "close feature", "mark as archived", or "feature done", route HERE — do NOT route to fluent-session. This skill transitions status.json and generates closeout summaries. fluent-session tracks file changes, which is completely different. Triggers also on "archive this feature", "generate closeout", "formally close". It does NOT handle session summaries (use fluent-session), feature status tables (use fluent-feature-status), or change audits.
3
+ description: Archive completed or abandoned features by transitioning status.json to ARCHIVED state and generating a closeout summary. Use when formally closing out a feature or marking it as archived.
4
4
  user-invocable: true
5
5
  allowed-tools: Bash, Read, Write, Edit, Glob, Grep
6
6
  argument-hint: <feature-slug> [--profile PROFILE] [--reason completed|abandoned|superseded] [--cleanup] [--force]
7
7
  cursor-tier: auto
8
8
  ---
9
+ <!-- routing-notes: ROUTING PRIORITY — if the prompt says "archive", "ARCHIVED", "closeout summary", "close feature", "mark as archived", or "feature done", route HERE — do NOT route to fluent-session. This skill transitions status.json and generates closeout summaries. fluent-session tracks file changes, which is completely different. Does NOT handle session summaries (use fluent-session), feature status tables (use fluent-feature-status), or change audits. -->
9
10
 
10
11
  # Feature Archival
11
12
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: fluent-build
3
- description: Build, version, and package Fluent Commerce extension modules. Handles Maven compilation, version bumping, version sync, CHANGELOG updates, git tagging, and module packaging. Use this when the user wants to compile, package, prepare, or release an artifact; do not use it for read-only deploy-readiness checks, which belong to fluent-pre-deploy-check. Triggers on "build module", "bump version", "package module", "maven build", "version status", "tag release", "version sync", "what version", "prepare release".
3
+ description: Build, version, and package Fluent Commerce extension modules with Maven compilation, version bumping, CHANGELOG updates, and git tagging. Use when compiling, packaging, or preparing a module release.
4
4
  user-invocable: true
5
5
  allowed-tools: Bash, Read, Write, Edit, Glob, Grep
6
6
  argument-hint: [build|version|package|deploy|full|status|bump|sync|tag] [--skip-tests] [--level patch|minor|major] [--dry-run]
@@ -78,7 +78,7 @@ This skill does **not** own deployment runbooks. For deployment:
78
78
 
79
79
  | Signal | Condition | Example |
80
80
  |--------|-----------|---------|
81
- | `-> READY: <path>` | Build successful, artifact produced | `-> READY: accounts/MY_PROFILE/SOURCE/backend/fc-module-my-extensions/dist/module-0.0.30.jar` |
81
+ | `-> READY: <path>` | Build successful, artifact produced | `-> READY: accounts/MY_PROFILE/SOURCE/backend/fc-module-my-extensions/dist/fluent-commerce-my-extensions-0.0.30.zip` |
82
82
  | `-> NEXT: /fluent-<skill>` | Ready for pre-deploy check | `-> NEXT: /fluent-pre-deploy-check` |
83
83
  | `-> BLOCKED: <reason>` | Build failed | `-> BLOCKED: VALIDATION_FAILED — Compilation error in CancelOrderRule.java:45` |
84
84
 
@@ -1,11 +1,12 @@
1
1
  ---
2
2
  name: fluent-connection-analysis
3
- description: Analyze workflow connection topology across multiple rulesets and workflows. Produces internal/cross-entity/cross-workflow edge maps, static-vs-dynamic runtime diffs, orphaned ruleset detection across workflow boundaries, and webhook/setting conformance inventories with Mermaid output. Use this when the question involves connection topology, cross-entity hops, cross-workflow dependencies, orphaned rulesets, runtime-vs-static drift, or mapping how work flows between rulesets/workflows. NOT for single-workflow internal structure — that stays on fluent-workflow-analyzer. ROUTING PRIORITY — if the prompt says "connection analysis", "cross-entity hops", "orphaned rulesets across workflows", "internal edges", "cross-workflow dependencies", "runtime-vs-static topology", or "connection topology", route HERE — do NOT route to fluent-workflow-analyzer. fluent-workflow-analyzer handles a SINGLE workflow's internal graph; this skill maps topology ACROSS multiple workflows and entities. Triggers on "connection analysis", "workflow connections", "map connections", "cross workflow dependencies", "cross-entity hops", "orphaned rulesets", "process flow classification", "webhook dependency map", "expected vs observed rulesets", "runtime workflow diff", "internal edges", "connection topology".
3
+ description: Analyze workflow connection topology across multiple rulesets and workflows with edge maps, runtime diffs, and orphan detection. Use for cross-entity hops, cross-workflow dependencies, or connection topology analysis.
4
4
  user-invocable: true
5
5
  allowed-tools: Bash, Read, Write, Edit, Glob, Grep
6
6
  argument-hint: <workflow-file-or-name> [--deep] [--mermaid] [--output <path>] [--validate <entity-ref> --entity-type ORDER|FULFILMENT] [--from <iso> --to <iso>]
7
7
  cursor-tier: auto
8
8
  ---
9
+ <!-- routing-notes: ROUTING PRIORITY — if the prompt says "connection analysis", "cross-entity hops", "orphaned rulesets across workflows", "internal edges", "cross-workflow dependencies", "runtime-vs-static topology", or "connection topology", route HERE — do NOT route to fluent-workflow-analyzer. fluent-workflow-analyzer handles a SINGLE workflow's internal graph; this skill maps topology ACROSS multiple workflows and entities. -->
9
10
 
10
11
  # Fluent Connection Analysis
11
12
 
@@ -1,11 +1,12 @@
1
1
  ---
2
2
  name: fluent-custom-code
3
- description: Analyze custom Fluent implementation source code under accounts/<PROFILE>/SOURCE/backend, explain behavior, and prepare safe extension plans even when repo/module layout is non-standard. ROUTING PRIORITY source-level backend questions like "which class handles X", "which rule implements Y", "explain this custom Java plugin", or "understand this backend code before we change it" belong here, not in fluent-implementation-map or fluent-feature-explain. Workflow-name or feature-name prompts like "explain ORDER::HD end-to-end" stay on fluent-feature-explain unless the user explicitly asks about a class, plugin, module, or source file. Triggers on "analyze custom code", "explain this plugin", "extend rule logic", "understand source", "custom backend code", "which class handles", "non-standard module structure".
3
+ description: Analyze custom Fluent implementation source code under accounts/PROFILE/SOURCE/backend, explain behavior, and prepare safe extension plans. Use for source-level backend questions about custom Java plugins, classes, or rule implementations.
4
4
  user-invocable: true
5
5
  allowed-tools: Bash, Read, Write, Edit, Glob, Grep
6
6
  argument-hint: <PROFILE> [--retailer <RETAILER_REF>] [--objective "<what to change>"]
7
7
  cursor-tier: manual
8
8
  ---
9
+ <!-- routing-notes: ROUTING PRIORITY — source-level backend questions like "which class handles X", "which rule implements Y", "explain this custom Java plugin" belong here, not in fluent-implementation-map or fluent-feature-explain. Workflow-name or feature-name prompts like "explain ORDER::HD end-to-end" stay on fluent-feature-explain unless the user explicitly asks about a class, plugin, module, or source file. -->
9
10
 
10
11
  # Custom Code Intelligence
11
12
 
@@ -27,7 +28,7 @@ This skill owns source discovery, code mapping, behavior explanation, and extens
27
28
 
28
29
  **Routing guardrail:** If the user is asking about source-level backend implementation inside a plugin, class, module, or repo, stay on this skill. Do NOT reroute to `/fluent-implementation-map` or `/fluent-feature-explain` unless the request is clearly about a broader feature/account architecture rather than the code itself.
29
30
 
30
- **HARD NEGATIVE — NOT rule-scaffold or source-onboard:** If the prompt says "analyze", "explain", "understand", or "what does this code do" about existing custom code, this is fluent-custom-code, NOT fluent-rule-scaffold (which creates NEW rules) and NOT fluent-source-onboard (which restructures code INTO module format).
31
+ **HARD NEGATIVE — NOT rule-scaffold or module-convert:** If the prompt says "analyze", "explain", "understand", or "what does this code do" about existing custom code, this is fluent-custom-code, NOT fluent-rule-scaffold (which creates NEW rules) and NOT fluent-module-convert (which converts/restructures code INTO module format).
31
32
 
32
33
  - Workflow structure analysis is owned by `/fluent-workflow-analyzer`.
33
34
  - Runtime failure tracing is owned by `/fluent-trace`.
@@ -1,12 +1,13 @@
1
1
  ---
2
2
  name: fluent-data-module-scaffold
3
- description: Scaffold a new Fluent Commerce data module (no Java plugins). Generates module structure with assets directories, module.json, config template, and build script. ROUTING PRIORITY over fluent-module-scaffold when the user says "no Java", "no code", "workflow-only module", "JSON-only module", "data-only module", or "no compiled plugins". Any constraint that eliminates Java compilation means data module, not extension module. ROUTING PRIORITY for data-only modules — route here instead of fluent-module-scaffold when the module has no Java plugins, only workflows/settings/resources. Triggers on "create data module", "scaffold data module", "new data module", "data module", "no Java module", "workflow only module", "module without Java", "module that only has workflow JSON".
3
+ description: Scaffold a new Fluent Commerce data module (no Java plugins) with assets directories, module.json, config template, and build script. Use for workflow-only, settings-only, or data-only modules without compiled code.
4
4
  user-invocable: true
5
5
  allowed-tools: Bash, Read, Write, Edit, Glob, Grep
6
6
  argument-hint: <module-name> [--profile <profile>]
7
7
  cursor-tier: auto
8
8
  planning-gate: mandatory
9
9
  ---
10
+ <!-- routing-notes: ROUTING PRIORITY over fluent-module-scaffold when the user says "no Java", "no code", "workflow-only module", "JSON-only module", "data-only module", or "no compiled plugins". Any constraint that eliminates Java compilation means data module, not extension module. -->
10
11
 
11
12
  # Data Module Scaffolder
12
13
 
@@ -114,9 +115,9 @@ Write the plan file, present it to the user, and wait for explicit approval ("ye
114
115
 
115
116
  | Parameter | Required | Default | Description |
116
117
  |-----------|----------|---------|-------------|
117
- | `module-name` | Yes | -- | Module identifier (e.g., `hm-infra-data`). Lowercase alphanumeric with hyphens only. Used for directory name and `module.json` name field. |
118
+ | `module-name` | Yes | -- | Module identifier (e.g., `acme-infra-data`). Lowercase alphanumeric with hyphens only. Used for directory name and `module.json` name field. |
118
119
  | `--description` | No | Auto-generated | Module description for `module.json` |
119
- | `--account-prefix` | No | Auto-detect from profile | Account/company prefix for the module name in `module.json` (e.g., `hm`, `acme`) |
120
+ | `--account-prefix` | No | Auto-detect from profile | Account/company prefix for the module name in `module.json` (e.g., `acme`, `globex`) |
120
121
  | `--profile` | No | Active profile | Fluent CLI profile for path resolution and prefix detection |
121
122
  | `--initial-version` | No | `1.0.0` | Initial version in `module.json` |
122
123
 
@@ -150,7 +151,7 @@ The account prefix appears in the `module.json` `name` field as `<prefix>/<modul
150
151
 
151
152
  2. Else check existing modules under accounts/<PROFILE>/SOURCE/backend/
152
153
  Read any module.json and extract the prefix from the "name" field
153
- e.g., "name": "hm/infra-data" --> prefix is "hm"
154
+ e.g., "name": "acme/infra-data" --> prefix is "acme"
154
155
 
155
156
  3. Else derive from PROFILE name (lowercase)
156
157
  MY_PROFILE --> myprofile
@@ -708,9 +709,9 @@ Follow these steps in order when scaffolding a new data module:
708
709
 
709
710
  4. COMPUTE derived values
710
711
  a. MODULE_TITLE = title-case of module-name with hyphens as spaces
711
- (e.g., "hm-infra-data" --> "Hm Infra Data")
712
+ (e.g., "acme-infra-data" --> "Acme Infra Data")
712
713
  b. MODULE_DESCRIPTION = description from --description or auto-generated
713
- (e.g., "Data module for Hm Infra Data")
714
+ (e.g., "Data module for Acme Infra Data")
714
715
 
715
716
  5. CREATE directory structure
716
717
  a. Create the root: accounts/<PROFILE>/SOURCE/backend/<module-name>/
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: fluent-e2e-test
3
- description: Run end-to-end test sequences for Fluent Commerce workflows. Discover environment, create entities dynamically, fire events, poll statuses, assert state transitions, and report results. Use this when the user explicitly wants a test scenario or verification run, not when they want an autonomous orchestrator to keep pursuing a broad goal across multiple skills. Triggers on "run e2e test", "test order flow", "test workflow", "e2e test", "integration test".
3
+ description: Run end-to-end test sequences for Fluent Commerce workflows by creating entities, firing events, polling statuses, and asserting state transitions. Use for explicit test scenarios or workflow verification runs.
4
4
  user-invocable: true
5
5
  allowed-tools: Bash, Read, Write, Edit, Glob, Grep
6
6
  argument-hint: [scenario-name] [--order-ref <ref>] [--entity-type ORDER|FULFILMENT]
@@ -1,12 +1,13 @@
1
1
  ---
2
2
  name: fluent-entity-flow-diagnose
3
- description: "HARD NEGATIVE FIRST — Do NOT route here for JOB/BATCH entities: \"JOB entity stuck\", \"BATCH stuck\", \"job lifecycle\", \"batch monitoring\", \"JOB/BATCH orchestration\", \"job not progressing\", \"batch not progressing\" → ALL go to fluent-job-batch, NOT here. JOB/BATCH are specialized orchestration entities this skill does not understand. Reconstruct the full lifecycle of a real Fluent Commerce entity (ORDER, FULFILMENT, ARTICLE, etc. — NOT JOB/BATCH) from its ref or id — rebuild the complete dynamic event sequence, resolve root and child workflows, and compare observed runtime behavior against the static workflow definition to produce an expected-vs-observed diff. ROUTING PRIORITY over fluent-trace when the prompt asks to \"compare runtime vs expected workflow path\", \"expected vs observed\", \"what should have happened\", or \"diagnose and compare runtime vs workflow\". Use ONLY when the user explicitly asks to reconstruct the complete lifecycle, compare runtime vs workflow definition, or perform expected-vs-observed analysis across root and sub-entities. HARD NEGATIVE for fluent-trace confusion — Do NOT route here when the prompt says \"trace why\", \"stuck\", \"root cause\", \"not progressing\", \"correlate events with rules\", \"identify root cause\", \"show live state\", or \"debug\" WITHOUT ALSO saying \"compare runtime\", \"expected vs observed\", or \"what should have happened\". Pure first-responder debugging ALWAYS goes to fluent-trace first. Triggers on \"reconstruct lifecycle\", \"compare runtime vs workflow\", \"compare runtime vs expected\", \"full entity history\", \"expected vs observed\", \"what should have happened\", \"lifecycle reconstruction\", \"diagnose and compare\"."
3
+ description: Reconstruct the full lifecycle of a Fluent Commerce entity and compare observed runtime behavior against the static workflow definition. Use when comparing expected vs observed entity flow or reconstructing complete lifecycle history.
4
4
  user-invocable: true
5
5
  read-only: true
6
6
  allowed-tools: Bash, Read, Write, Edit, Glob, Grep
7
7
  argument-hint: <entity-ref-or-id> [--entity-type <TYPE>] [--identifier-kind ref|id|auto] [--from <iso> --to <iso>] [--output <path>] [--deep]
8
8
  cursor-tier: auto
9
9
  ---
10
+ <!-- routing-notes: HARD NEGATIVE — Do NOT route here for JOB/BATCH entities (→ fluent-job-batch). ROUTING PRIORITY over fluent-trace when the prompt asks to "compare runtime vs expected", "expected vs observed", or "what should have happened". HARD NEGATIVE for fluent-trace confusion — Do NOT route here when the prompt says "trace why", "stuck", "root cause", "not progressing", "debug" WITHOUT comparison language. Pure first-responder debugging goes to fluent-trace. -->
10
11
 
11
12
  # Entity Flow Diagnose
12
13
 
@@ -1,12 +1,13 @@
1
1
  ---
2
2
  name: fluent-event-api
3
- description: "EVENT API knowledge and conceptual reference the canonical skill for understanding the Fluent Commerce event data model, the Fluent event model, event types, event categories, event statuses, orchestration routing, how events are routed to rulesets, run-once execution model, log actions vs audit actions, and event context model. This IS a valid, actionable platform skill that reads real knowledge documents and produces structured output — NEVER classify as 'none', 'direct knowledge', or 'direct knowledge lookup'. Even if the question sounds conceptual, this skill loads knowledge/platform docs and synthesizes a referenced answer. ROUTING PRIORITY — if the prompt asks about 'event model', 'the Fluent event model', 'event types', 'event categories', 'event statuses', 'how events are routed to rulesets', 'event execution model', 'log action vs audit action', 'log actions and audit actions', 'run-once', 'sourceEvents semantics', or 'deep-dive on Event API', route HERE — do NOT route to fluent-feature-explain, fluent-workflow-analyzer, or fluent-mcp-tools. Even if the prompt mentions workflows, rulesets, `event_list`, or `sourceEvents`, semantic questions about event statuses, categories, routing, audit-vs-log actions, or execution belong HERE. fluent-feature-explain is for explaining business features; fluent-workflow-analyzer is for analyzing one workflow definition; fluent-mcp-tools is for sending events and running MCP operations; this skill owns the Event API data model itself. Triggers on 'event api', 'event types', 'event categories', 'query events', 'event model', 'the fluent event model', 'event status', 'event history', 'run once', 'log action', 'audit action', 'event execution model', 'how events are routed to rulesets', 'orchestration engine routes events', 'sourceEvents'."
3
+ description: Event API knowledge and conceptual reference covering the Fluent Commerce event data model, event types, categories, statuses, orchestration routing, run-once execution, and log vs audit actions. Use for event model questions or API semantics.
4
4
  user-invocable: true
5
5
  read-only: true
6
6
  allowed-tools: Bash, Read, Write, Edit, Glob, Grep
7
7
  argument-hint: [--entity-ref <ref>] [--entity-type ORDER|FULFILMENT] [--status FAILED|SUCCESS|SCHEDULED] [--type ORCHESTRATION|ORCHESTRATION_AUDIT]
8
8
  cursor-tier: manual
9
9
  ---
10
+ <!-- routing-notes: ROUTING PRIORITY — if the prompt asks about "event model", "event types", "event categories", "event statuses", "how events are routed to rulesets", "run-once", "sourceEvents semantics", or "log action vs audit action", route HERE — do NOT route to fluent-feature-explain, fluent-workflow-analyzer, or fluent-mcp-tools. Even if the prompt mentions workflows, rulesets, event_list, or sourceEvents, semantic questions about the event data model belong HERE. fluent-mcp-tools is for sending events; this skill owns the Event API data model itself. -->
10
11
 
11
12
  # Fluent Commerce Event API
12
13
 
@@ -854,7 +855,7 @@ Fulfilment updates from Warehouse Management System:
854
855
  "rootEntityId": "12345",
855
856
  "entityType": "CONSIGNMENT",
856
857
  "entityId": "11111",
857
- "attributes": { "trackingNumber": "1Z999AA1234567890", "status": "IN_TRANSIT", "carrierRef": "UPS" }
858
+ "attributes": { "trackingNumber": "TRACK-001-XYZ", "status": "IN_TRANSIT", "carrierRef": "CARRIER_STD" }
858
859
  }
859
860
  ```
860
861
 
@@ -1,11 +1,12 @@
1
1
  ---
2
2
  name: fluent-feature-explain
3
- description: Reverse-engineer and explain an existing Fluent Commerce feature. Synthesizes workflow analysis, custom code logic, connection topology, and live runtime evidence into a comprehensive, visually rich Feature Architecture Document saved to accounts/<PROFILE>/features/<slug>/architecture.md. ROUTING PRIORITY — if the prompt names a specific existing workflow or feature such as "ORDER::HD", "FULFILMENT::CC", "Home Delivery", or asks "how does this work", "reverse-engineer this feature", or "document this flow", route HERE rather than fluent-implementation-map or fluent-feature-plan. Use this for feature/flow architecture such as "how does Home Delivery work", "explain ORDER::HD end-to-end", or "document this fulfilment flow", not for source-level plugin/class questions inside custom backend code; those belong to /fluent-custom-code. Key knowledge — domain-model.md (entity relationships), workflow-json-structure.md (status machines), sync-vs-async-patterns.md (event flows). HARD NEGATIVE — Do NOT route here for: 'event lifecycle' / 'event API' / 'event flow' / 'event payload' / 'send event' / 'event attributes' (→ fluent-event-api for event-centric questions), broad account-wide inventory or "what's been built" requests (→ fluent-implementation-map), or future-change planning requests like "can we add" / "plan this change" (→ fluent-feature-plan). Triggers on "explain feature", "how does this work", "reverse engineer", "feature architecture", "document this flow", "what does this workflow do", "ORDER::HD", "FULFILMENT::CC".
3
+ description: Reverse-engineer and explain an existing Fluent Commerce feature by synthesizing workflow analysis, custom code, connection topology, and runtime evidence into an architecture document. Use when explaining how a specific feature or workflow works.
4
4
  user-invocable: true
5
5
  allowed-tools: Bash, Read, Write, Edit, Glob, Grep
6
6
  argument-hint: <feature-name-or-workflow> [--depth shallow|full] [--include-runtime] [--output <path>]
7
7
  cursor-tier: manual
8
8
  ---
9
+ <!-- routing-notes: ROUTING PRIORITY — if the prompt names a specific existing workflow or feature such as "ORDER::HD", "FULFILMENT::CC", or asks "how does this work" or "reverse-engineer this feature", route HERE rather than fluent-implementation-map or fluent-feature-plan. HARD NEGATIVE — Do NOT route here for event-centric questions (→ fluent-event-api), broad account-wide inventory (→ fluent-implementation-map), future-change planning (→ fluent-feature-plan), or source-level plugin/class questions (→ fluent-custom-code). -->
9
10
 
10
11
  # Feature Explainer
11
12
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: fluent-feature-plan
3
- description: Produce comprehensive feature implementation plans with universal NEW/EXISTING/MODIFIED/REUSED/OOTB classification across all artifacts. Covers rules, workflows, settings, webhooks, GraphQL operations, cross-entity flows, and deployment. Triggers on "plan feature", "feature plan", "plan implementation", "design feature", "plan this feature", "what do I need to build".
3
+ description: Produce comprehensive feature implementation plans with NEW/EXISTING/MODIFIED/REUSED/OOTB classification across all artifacts including rules, workflows, and settings. Use for planning a feature implementation.
4
4
  user-invocable: true
5
5
  allowed-tools: Bash, Read, Write, Edit, Glob, Grep
6
6
  argument-hint: <feature-description> [--profile PROFILE] [--retailer RETAILER_REF]
@@ -96,6 +96,7 @@ Check for project-specific knowledge that should inform feature planning:
96
96
  - `knowledge/platform/reference-modules.md` — use for OOTB capabilities before planning new custom assets
97
97
  - `knowledge/platform/reusability-patterns.md` — use for deciding when to reuse patterns, extend them, or introduce new artifacts
98
98
  - `knowledge/platform/sync-vs-async-patterns.md` — use for event choreography, sequencing, and long-running orchestration choices
99
+ - `knowledge/platform/interaction-design-patterns.md` — use for user action patterns, module visibility, and strict action contracts (eventName, context[], modules[], attributes[])
99
100
  - `knowledge/platform/rule-development-contract.md` — **MANDATORY**: annotation contract (`@ParamString` vs `@EventAttribute`), reading patterns, enhancement protocol for Rules Inventory section
100
101
  - `knowledge/platform/create-order-reference.md` — createOrder/createReturnOrder/createFulfilment input schemas, fulfilmentChoice wiring, ORDER::MULTI patterns. Use when planning features that create or modify orders.
101
102
  4. If `accounts/<PROFILE>/memory/index.md` exists, read the top account-specific gotchas and apply them silently while planning.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: fluent-feature-status
3
- description: Dashboard view of all features and their lifecycle status. Scans accounts/<PROFILE>/features/*/status.json and presents a consolidated table with filtering, sorting, and workspace tree view. Triggers on "feature status", "show features", "what features", "feature dashboard", "where am I", "what's in progress".
3
+ description: Dashboard view of all features and their lifecycle status by scanning status.json files and presenting a consolidated table with filtering and sorting. Use for feature status overview or progress tracking.
4
4
  user-invocable: true
5
5
  allowed-tools: Bash, Read, Glob, Grep
6
6
  argument-hint: [--profile PROFILE] [--filter STATUS] [--format table|json] [--tree]
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: fluent-frontend-build
3
- description: Build, test, and validate a Mystique SDK component project. Local dev mode starts a hot-reload server on localhost:3001, wires it into the Fluent manifest, and supports live iteration. Production mode runs 7 quality gates (TypeScript, lint, tests, webpack, bundle, externals, GraphQL schema validation). Frontend equivalent of /fluent-build. Triggers on "build frontend", "build component", "yarn build", "frontend build", "sdk build", "build bundle", "test locally", "local dev", "start dev server", "run locally".
3
+ description: Build, test, and validate a Mystique SDK component project with local dev server and 7 production quality gates. Use for frontend builds, local dev mode, or SDK bundle validation.
4
4
  user-invocable: true
5
5
  allowed-tools: Bash, Read, Write, Edit, Glob, Grep
6
6
  argument-hint: [project-path] [full|build|test|lint|check]
@@ -1,12 +1,13 @@
1
1
  ---
2
2
  name: fluent-frontend-readme
3
- description: "README.md GENERATOR for SDK projects reads actual TypeScript/React source code and writes a README.md file with component registrations, build instructions, settings dependencies, and deployment guide. This skill writes documentation files, NOT manifest analysis. Does NOT audit code quality (→ fluent-frontend-review), does NOT analyze manifest JSON health (→ fluent-mystique-assess). ROUTING — This generates README.md documentation for SDK component projects. It does NOT analyze manifest complexity (use fluent-mystique-assess). Triggers on 'generate readme', 'document components', 'SDK readme', 'component documentation'. ROUTING PRIORITY — if the prompt says \"generate README\", \"write readme\", \"document component registrations\", \"SDK readme\", \"README for SDK project\", \"create documentation\", \"build instructions\", \"settings dependencies\", or \"document registrations\", route HERE — do NOT route to fluent-mystique-assess. fluent-mystique-assess reads manifest JSON for complexity scoring; this skill reads .ts/.tsx source files and writes a README.md. Triggers on \"generate readme\", \"document component\", \"frontend readme\", \"sdk readme\", \"component docs\", \"write readme\", \"create documentation\", \"README for SDK project\", \"document registrations\", \"README.md\", \"build instructions\", \"settings dependencies\", \"generate README.md for SDK project\". ROUTING PRIORITY for frontend documentation — route here instead of fluent-mystique-assess when prompt asks about generating README, docs, or documentation for a Mystique/frontend project."
3
+ description: README.md generator for SDK projects that reads TypeScript/React source code and writes documentation with component registrations, build instructions, and deployment guide. Use for generating frontend project README or SDK documentation.
4
4
  user-invocable: true
5
5
  allowed-tools: Bash, Read, Write, Edit, Glob, Grep
6
6
  argument-hint: [project-path]
7
7
  cursor-tier: auto
8
8
  planning-gate: none
9
9
  ---
10
+ <!-- routing-notes: ROUTING PRIORITY — if the prompt says "generate README", "write readme", "SDK readme", or "README for SDK project", route HERE — do NOT route to fluent-mystique-assess. fluent-mystique-assess reads manifest JSON for complexity scoring; this skill reads .ts/.tsx source files and writes a README.md. Does NOT audit code quality (→ fluent-frontend-review), does NOT analyze manifest JSON health (→ fluent-mystique-assess). -->
10
11
 
11
12
  # Frontend README Generator
12
13
 
@@ -1,12 +1,13 @@
1
1
  ---
2
2
  name: fluent-frontend-review
3
- description: "SDK SOURCE CODE quality audit reviews TypeScript/React .ts/.tsx files for strictness, React anti-patterns, SDK compliance, GraphQL schemas, test quality, and bundle size. Frontend equivalent of /fluent-custom-code. Audits SDK project source files (.ts, .tsx, package.json, webpack config) — does NOT analyze manifest JSON health (→ fluent-mystique-assess) and does NOT validate manifest schema (→ fluent-mystique-assess). ROUTING — This runs code quality review: TypeScript quality, React patterns, SDK compliance, test coverage audit. It does NOT validate manifest JSON schema (use fluent-mystique-assess). Triggers on 'code review', 'quality audit', 'review SDK code', 'frontend code patterns'. ROUTING PRIORITY — if the prompt says \"review frontend\", \"code quality audit\", \"frontend review\", \"TypeScript strictness\", \"React anti-patterns\", \"React patterns\", \"SDK compliance\", \"review source code\", \"audit SDK project\", or \"bundle size\", route HERE — do NOT route to fluent-mystique-assess. fluent-mystique-assess checks manifest JSON schema; this skill audits .ts/.tsx source files for code quality. Triggers on \"review frontend\", \"code quality\", \"frontend review\", \"review component\", \"audit sdk\", \"check quality\", \"TypeScript strictness\", \"React anti-patterns\", \"React patterns\", \"SDK compliance\", \"review source code\", \"bundle size\", \"code review\", \"quality audit\", \"review SDK code\", \"frontend code patterns\". ROUTING PRIORITY for source code quality — route here instead of fluent-mystique-assess when prompt asks about TypeScript/React code quality, code review, or source file auditing."
3
+ description: SDK source code quality audit for TypeScript/React files covering strictness, React anti-patterns, SDK compliance, GraphQL schemas, test quality, and bundle size. Use for frontend code review or SDK project audits.
4
4
  user-invocable: true
5
5
  allowed-tools: Bash, Read, Write, Edit, Glob, Grep
6
6
  argument-hint: [project-path]
7
7
  cursor-tier: manual
8
8
  planning-gate: none
9
9
  ---
10
+ <!-- routing-notes: ROUTING PRIORITY — if the prompt says "review frontend", "code quality audit", "frontend review", "TypeScript strictness", "React anti-patterns", "SDK compliance", "review source code", or "bundle size", route HERE — do NOT route to fluent-mystique-assess. fluent-mystique-assess checks manifest JSON schema; this skill audits .ts/.tsx source files for code quality. Does NOT analyze manifest JSON health (→ fluent-mystique-assess). -->
10
11
 
11
12
  # Frontend Code Review
12
13
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: fluent-goal
3
- description: "Goal-directed autonomous orchestrator. Takes any Fluent Commerce goal, decomposes into verifiable sub-goals, delegates to existing skills, verifies outcomes via MCP, self-critiques, adjusts approach, and persists until the goal is met or genuinely blocked. Triggers on 'make it work', 'keep going until', 'get this working', 'resolve end to end', 'fix until done', 'goal:', 'achieve', 'pursue goal'."
3
+ description: Goal-directed autonomous orchestrator that decomposes any Fluent Commerce goal into verifiable sub-goals, delegates to skills, and verifies outcomes via MCP. Use when pursuing an end-to-end goal autonomously.
4
4
  user-invocable: true
5
5
  allowed-tools: Bash, Read, Write, Edit, Glob, Grep
6
6
  argument-hint: "<goal in plain English>" [--autonomy guided|gated|autonomous] [--max-attempts 3] [--entity-ref <ref>]
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: fluent-implementation-map
3
- description: Reverse-engineer an entire Fluent Commerce implementation into a feature inventory with end-to-end flow diagrams, cross-feature dependency maps, customisation scoring, and gap analysis. Triggers on "implementation map", "what's been built", "analyze implementation", "reverse engineer account", "feature inventory", "end to end flows", "map this account", "what exists", "onboard to account".
3
+ description: Reverse-engineer an entire Fluent Commerce implementation into a feature inventory with flow diagrams, dependency maps, and gap analysis. Use for understanding what has been built across an account.
4
4
  user-invocable: true
5
5
  allowed-tools: Bash, Read, Write, Edit, Glob, Grep
6
6
  argument-hint: --profile PROFILE --retailer RETAILER [--depth summary|detailed] [--focus ENTITY_TYPE] [--include-ootb] [--create-stubs] [--include-runtime]
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: fluent-inventory-catalog
3
- description: "Manage Fluent Commerce virtual inventory: catalogues, VirtualPositions, VirtualSegments, inventory feeds, and control groups. Schema-gated only runs when VirtualSegment type exists. Triggers on \"inventory catalog\", \"virtual position\", \"virtual segment\", \"inventory feed\", \"control group\", \"catalogue structure\", \"virtual inventory\". ROUTING — This handles virtual inventory structure queries and management. It does NOT handle account-wide snapshots (use fluent-account-snapshot) or sourcing configuration (use fluent-sourcing)."
3
+ description: Manage Fluent Commerce virtual inventory including catalogues, VirtualPositions, VirtualSegments, inventory feeds, and control groups. Schema-gated and only runs when VirtualSegment type exists.
4
4
  user-invocable: true
5
5
  trigger-patterns:
6
6
  - "inventory catalog"
@@ -38,7 +38,7 @@ graphql_introspect({ type: "VirtualSegment" })
38
38
  - **If `VirtualSegment` type exists:** proceed.
39
39
  - **If NOT found:** STOP immediately with this message:
40
40
 
41
- > Virtual Segments not available on this account's schema version. This feature requires platform version with segment support (expected April 2026+). Run `graphql_introspect` with `type: 'VirtualSegment'` to check availability.
41
+ > Virtual Segments not available on this account's schema version. Run `graphql_introspect` with `type: 'VirtualSegment'` to check if your platform version supports segments.
42
42
 
43
43
  Do NOT fall back to non-segment inventory operations. The entire skill is gated on segment support.
44
44
 
@@ -1,12 +1,13 @@
1
1
  ---
2
2
  name: fluent-job-batch
3
- description: Diagnose and monitor JOB and BATCH orchestration entities in Fluent Commerce. The dedicated skill for JOB/BATCH workflow status tracking, stuck-job investigation, batch failure triage, and job performance monitoring. Any prompt mentioning JOB or BATCH entity types routes here — not to fluent-entity-flow-diagnose or fluent-trace. Distinct from batch data ingestion API (which is fluent-mcp-tools). ROUTING PRIORITY — Any prompt mentioning "JOB" or "BATCH" entity types MUST route here, even if the prompt also says "stuck" or "diagnose". JOB/BATCH are specialized orchestration entities with unique lifecycle patterns — fluent-entity-flow-diagnose and fluent-trace do NOT understand JOB/BATCH semantics. Triggers on "job batch", "job stuck", "batch stuck", "job lifecycle", "job status", "batch monitoring", "batch operations", "job entity", "JOB/BATCH", "why is the job stuck", "batch failure", "JOB entity is stuck", "job not progressing", "batch not progressing", "job orchestration".
3
+ description: Diagnose and monitor JOB and BATCH orchestration entities in Fluent Commerce including lifecycle tracking, stuck-job investigation, and batch failure triage. Use for any JOB or BATCH entity questions or debugging.
4
4
  user-invocable: true
5
5
  read-only: true
6
6
  allowed-tools: Bash, Read, Write, Edit, Glob, Grep
7
7
  argument-hint: [--job-id <id>] [--batch-id <id>] [--status ACTIVE|COMPLETED|FAILED]
8
8
  cursor-tier: auto
9
9
  ---
10
+ <!-- routing-notes: ROUTING PRIORITY — Any prompt mentioning "JOB" or "BATCH" entity types MUST route here, even if the prompt also says "stuck" or "diagnose". JOB/BATCH are specialized orchestration entities — fluent-entity-flow-diagnose and fluent-trace do NOT understand JOB/BATCH semantics. Distinct from batch data ingestion API (→ fluent-mcp-tools). -->
10
11
 
11
12
  # JOB/BATCH Orchestration Lifecycle
12
13
 
@@ -37,7 +38,9 @@ The batch ingestion API *creates* JOB and BATCH entities. This skill covers what
37
38
 
38
39
  ## JOB Entity Lifecycle
39
40
 
40
- JOB is one of the 10 root entity types that can have orchestration workflows.
41
+ > **Note:** JOB and BATCH lifecycle details below are inferred from runtime API evidence and implementation observation. They are not yet documented in the core platform knowledge base (`domain-model.md`). Validate against your environment's actual workflow definitions.
42
+
43
+ JOB is a root entity type that can have orchestration workflows.
41
44
 
42
45
  ### Status Flow
43
46
  ```
@@ -46,7 +49,7 @@ ACTIVE → FAILED (one or more batches failed)
46
49
  ```
47
50
 
48
51
  ### Key Behaviors
49
- - **Auto-close:** JOB entities automatically close at midnight UTC
52
+ - **Auto-close:** JOB entities automatically close at midnight UTC (observed behavior — verify via workflow definition in your environment)
50
53
  - **Workflow type:** `JOB::<subtype>` (subtype varies by implementation)
51
54
  - **Root entity:** JOB is always its own root entity in event context
52
55
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: fluent-knowledge-init
3
- description: "Interactive wizard to set up project knowledge. Asks plain-English questions, ingests existing docs, or captures progressive learnings then writes structured knowledge files. Triggers on \"knowledge init\", \"set up knowledge\", \"project knowledge\", \"teach me about your project\", \"knowledge setup\", \"onboard knowledge\"."
3
+ description: Interactive wizard to set up project knowledge by asking questions, ingesting existing docs, or capturing progressive learnings into structured knowledge files. Use for knowledge initialization or onboarding.
4
4
  user-invocable: true
5
5
  read-only: false
6
6
  allowed-tools: Bash, Read, Write, Edit, Glob, Grep