Skip to main content

detect-logical-groups

Rules for detecting and grouping MuleSoft integration artifacts into logical flow groups using flow-reference strategy. Covers flow-ref call-chain rules, fallback grouping when no sources exist, and required output fields.

Quellinformationen

Repository
Azure/logicapps-migration-agent
Letzte Quellaktivität
20. März 2026 um 17:25
Erkannte Sprache von SKILL.md
Englisch
Sterne
10
Forks
13

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
name
detect-logical-groups
description
Rules for detecting and grouping MuleSoft integration artifacts into logical flow groups using flow-reference strategy. Covers flow-ref call-chain rules, fallback grouping when no sources exist, and required output fields.
# Skill: Detecting Flow Groups > **Purpose**: Authoritative rules for how an AI agent should group discovered MuleSoft integration artifacts into logical flow groups. The agent MUST follow these rules exactly. --- ## 1. Grouping Strategy (Flow Reference Chains) - **HIGHEST PRIORITY**: If multiple flows reference the SAME sub-flow via `flow-ref` (directly or transitively), they MUST be in the SAME group — the shared sub-flow is the unifying element. - **Call-workflow edges**: The `connectionGraph` includes `call-workflow` edges when one flow calls another flow or sub-flow via `flow-ref`. Flows linked by these edges (directly or transitively) MUST be in the SAME group. Example: If Flow-A calls Sub-Flow-B and Sub-Flow-B calls Sub-Flow-C, all three belong in ONE group. - **Shared-connection edges**: The `connectionGraph` includes `shared-connection` edges when multiple flows use the same global configuration (e.g., same `http:listener-config`, same `db:config`). Flows sharing configs SHOULD be in the same group unless they are clearly independent. - Only create separate groups for flows that use DIFFERENT sub-flows with no transitive connection. - Transitively connected artifacts belong in the SAME group. - Name each group by business purpose (derived from flow names and HTTP listener paths). --- ## 2. Fallback Rules (When no HTTP listeners or schedulers exist) Do NOT return empty groups. Use this fallback order: 1. **Flow-root grouping** — one group per CONNECTED flow cluster. Follow `call-workflow` edges to find clusters. Do NOT create one group per individual flow when they reference each other. 2. **Trigger-capability grouping** — flows with sources (http:listener, scheduler, jms:listener, file:listener, vm:listener) as entry points. `receiveLocationCount` includes all triggers. 3. **Connected-component grouping** — from graph edges (`call-workflow`, `shared-connection`) and any remaining connections. Only leave artifacts in `ungroupedArtifactIds` if they are truly isolated with no meaningful edges or entry semantics. For fallback groups, set `entryPoint` to flow/trigger/internal-entry (not receive-location). --- ## 3. Required Output Fields Each group MUST have: | Field | Type | Description | | ------------- | -------- | ------------------------------------------------ | | `id` | string | Unique group ID (e.g. `flow-1-order-processing`) | | `name` | string | Human-readable name by business purpose | | `description` | string | What this flow does | | `category` | string | e.g. `message-flow`, `shared-infrastructure` | | `artifactIds` | string[] | MUST NOT be empty | | `entryPoint` | object | Entry point (type, name, messageType) | | `exitPoints` | array | Exit points (type, name, messageType) | --- ## 4. Procedure 1. Call `migration_detectFlowGroups` to get the artifact connection graph and summaries. 2. **If the connectionGraph has few or no `call-workflow` or `shared-connection` edges**, the flow-ref data may be incomplete. In that case: a. Call `migration_listArtifacts` with `category="custom-code"` to find JARs and custom Java classes. b. Read flow source files (`migration_readSourceFile`) to find `flow-ref` targets and shared config references. c. Use the discovered call chains and shared configs to merge groups that should be together. 3. Determine logical flow groups using the flow-reference chain strategy above, incorporating both graph edges AND any call chains discovered in step 2. 4. Call `migration_discovery_storeFlowGroups` with the groups array, `ungroupedArtifactIds`, and explanation. --- ## 5. What NOT to Do - Do NOT create empty `artifactIds` arrays. - Do NOT split flows linked by flow-ref chains into separate groups. - Do NOT skip source reading when the connectionGraph has missing call-chain edges — incomplete grouping causes downstream analysis failures.
Auf GitHub ansehen