Skip to main content

jgs-v1-cross-model

Cross-model gap analysis: compare satisfied v1 requirements against element presence in a live v2 model, and surface unsatisfied v1 requirements as traceability gaps. PRO tier (read-only on both bridges). Requires jgs-magic-sysmlv1-mcp AND jgs-magic-sysmlv2-mcp both running. Trigger: "cross-model", "migration progress", "v1 vs v2 gap", "compare v1 and v2", "which requirements are migrated", "traceability gaps between models", "what's left to migrate".

Ir a la instalación

Datos de origen

Repositorio
jgsystemsconsulting/jgs-magic-migration-pro-skills
Última actividad en el origen
12 de septiembre de 2026 a las 09:17
Idioma detectado de SKILL.md
inglés
Estrellas
0
Forks
0

Opciones de instalación

De forma predeterminada está seleccionado el prompt que primero revisa el origen. Puedes cambiar a un comando directo o descargar una copia local.

Revisa los archivos de origen

Lee SKILL.md y los archivos complementarios que muestra SkillsMP antes de decidir si quieres instalarlo.

Mostrando SKILL.md

SKILL.md
Instrucciones de origen · Vista previa de solo lectura
name
jgs-v1-cross-model
description
Cross-model gap analysis: compare satisfied v1 requirements against element presence in a live v2 model, and surface unsatisfied v1 requirements as traceability gaps. PRO tier (read-only on both bridges). Requires jgs-magic-sysmlv1-mcp AND jgs-magic-sysmlv2-mcp both running. Trigger: "cross-model", "migration progress", "v1 vs v2 gap", "compare v1 and v2", "which requirements are migrated", "traceability gaps between models", "what's left to migrate".
<!-- Copyright (c) 2026 JG Systems Consulting Ltd. All Rights Reserved. See LICENSE for terms. --> # jgs-v1-cross-model: Cross-Model Query (UC-V1-12) ## When to use Use when you want to track migration progress: confirm whether the satisfying Block of each satisfied v1 requirement exists in the v2 model, and surface unsatisfied v1 requirements as traceability gaps. ## Prerequisites - `jgs-magic-sysmlv1-mcp` and `jgs-magic-sysmlv2-mcp` both running (read-only on both bridges). ## Purpose For requirements that are **satisfied** in the v1 model, confirms whether the satisfying Block has been created in the v2 model. Useful for tracking migration progress. For **unsatisfied** v1 requirements, reports them separately as traceability gaps requiring manual triage. ## Critical design note `trace_requirement` traces **existing** satisfy/verify links only. It returns **empty** for unsatisfied requirements; there are no links to trace. Do **NOT** call `trace_requirement` on unsatisfied requirements. This skill operates on satisfied requirements (v2 equivalence check) and surfaces unsatisfied ones separately. ## Precondition check Call **both** pings before doing anything else: 1. `mcp__jgs-sysmlv1__ping`: v1 bridge liveness 2. `mcp__jgs-sysmlv2__ping`: v2 bridge liveness If **either** fails, halt immediately and emit: ``` ❌ [jgs-magic-sysmlv1-mcp | jgs-magic-sysmlv2-mcp] bridge is not reachable. Is [the v1 | v2] CATIA Magic instance running with its bridge plugin active? ``` Use the specific bridge name that failed. Do not proceed. ## Tool sequence ### Step 1: Get requirement coverage from v1 Call: `mcp__jgs-sysmlv1__check_requirement_coverage` Split the returned requirements into two groups: - **Satisfied**: requirements that have at least one satisfy link - **Unsatisfied**: requirements with no satisfy links If there are **zero satisfied requirements**, stop and report: > No satisfied v1 requirements found; there is nothing to compare against v2. If the v1 PRO pack is installed, check requirement coverage first with /jgs-v1-import-requirements; otherwise ask the user for a coverage summary or read the requirements directly over the v1 read bridge. Do not proceed further. ### Step 2: Trace satisfying elements for each satisfied requirement For each **satisfied** requirement: Call: `mcp__jgs-sysmlv1__trace_requirement(req_id)` Extract the satisfying element name(s) from the result. Each requirement may have one or more satisfying elements. ### Step 3: Look up each satisfying element name in v2 For each satisfying element name extracted in Step 2: Call: `mcp__jgs-sysmlv2__find_by_name(element_name)` Bridge cap: 200 results per call (paged with `offset`). **Match semantics:** case-sensitive exact name match against the element's simple name. Handle all three result cases: - **Any result = hit.** Mark as found in the output table. - **Multiple hits**: list all returned results with their qualified names. Do **not** silently pick the first. Render in the table cell as: `[N candidates] QualifiedName1, QualifiedName2, ...` Do not expand to multiple table rows. If result count = 200, append: `(list may be truncated: use mcp__jgs-sysmlv2__find_by_qualified_name for exact lookup)` - **Zero results = missing in v2.** Record as: `✗ Missing in v2 (verify manually: see name-match warning)` ### Step 4: Get model name headers Call `mcp__jgs-sysmlv1__get_root_package` and `mcp__jgs-sysmlv2__get_root_package` to get the model names for the output headers. Do **not** use ping for model names. ### Step 5: Produce output (two tables) See Output Format section below. ## Do not call any write tools Do not call `enable_writes`, `enable_dangerous_writes`, or any create/update/delete tool on either bridge. This skill is read-only. ## Output format ``` ## Cross-Model Migration Progress Report *v1 model: <name from mcp__jgs-sysmlv1__get_root_package>* *v2 model: <name from mcp__jgs-sysmlv2__get_root_package>* *Generated: <date>* ### Satisfied v1 requirements: v2 element check | Requirement | Satisfying v1 Block | Found in v2? | |---|---|---| | REQ-047 | DataBus | ✓ found | | REQ-088 | ThermalController | ✗ Missing in v2 (verify manually: see name-match warning) | | REQ-055 | DataBus | ✓ found (2 candidates: SensorsPackage::DataBus, ArchPackage::DataBus) | **Summary:** N of M satisfying Blocks found in v2 (name match). ### Unsatisfied v1 requirements: traceability gaps These requirements have no satisfy links in v1. They cannot be compared to v2 automatically. Manual triage required. | Requirement ID | Requirement text | |---|---| | REQ-112 | Thermal regulation within ±2°C | **Summary:** P unsatisfied requirements in v1. These are traceability gaps that require satisfy links in v1 before migration can be verified. --- > ⚠ **Name-match limitation:** This comparison joins on element name only. Elements renamed during v1→v2 migration (e.g. `ThermalMgmtSys` → `ThermalManagementSystem`) will appear as "missing in v2" even if the equivalent element exists under a different name. Verify all "missing" results manually before concluding the element is absent from v2. ``` ## Name-match warning (mandatory) **Always include the name-match warning block verbatim in the output, even if all results are found.** This is not optional. ## Error handling | Condition | Action | |---|---| | v1 ping fails | Halt: "❌ jgs-magic-sysmlv1-mcp bridge is not reachable. Is the v1 CATIA Magic instance running with its bridge plugin active?" | | v2 ping fails | Halt: "❌ jgs-magic-sysmlv2-mcp bridge is not reachable. Is the v2 CATIA Magic instance running with its bridge plugin active?" | | Zero satisfied requirements | Report message and stop (do not call trace_requirement on unsatisfied reqs) | | trace_requirement returns empty for a requirement that appeared satisfied | Flag that requirement with a note: "trace returned no links: requirement may have been reclassified; verify manually" | | find_by_name returns up to 200 results per call (paged) | Include truncation warning; advise mcp__jgs-sysmlv2__find_by_qualified_name | ## Tool reference | Tool | Purpose | |---|---| | `mcp__jgs-sysmlv1__ping` | v1 bridge liveness check | | `mcp__jgs-sysmlv2__ping` | v2 bridge liveness check | | `mcp__jgs-sysmlv1__check_requirement_coverage` | Get all requirements with satisfaction status | | `mcp__jgs-sysmlv1__trace_requirement` | Trace existing satisfy/verify links for a satisfied requirement | | `mcp__jgs-sysmlv1__get_root_package` | Get v1 model name for output header | | `mcp__jgs-sysmlv2__find_by_name` | Look up element in v2 by simple name (cap: 200) | | `mcp__jgs-sysmlv2__find_by_qualified_name` | Exact v2 lookup when find_by_name hits cap (200 results) | | `mcp__jgs-sysmlv2__get_root_package` | Get v2 model name for output header | ## Common Mistakes | Mistake | Fix | |---------|-----| | Calling `trace_requirement` on unsatisfied requirements | It traces existing satisfy/verify links only and returns empty when there are none; only call it on satisfied requirements; surface unsatisfied ones separately as gaps | | Treating a v2 `find_by_name` miss as proof the element is absent | `find_by_name` is capped at 200 and matches simple names; confirm with `find_by_qualified_name`, and flag name-mismatch risk (the mandatory name-match warning) before declaring a migration gap | | Proceeding when only one bridge answers `ping` | This skill needs BOTH v1 and v2 bridges live; halt immediately if either `ping` fails |
Ver en GitHub