✨ migration intelligence#274
Conversation
📝 WalkthroughWalkthroughIntroduces a Migration Intelligence enhancement README that standardizes skills/plans/prompts formats, describes an MCP-based migration context service and IDE/CLI/container integration flows, extends hub profile bundles with Changes
Sequence Diagram(s)sequenceDiagram
participant IDE as IDE Extension (MCP client)
participant MCP as Migration Intelligence MCP
participant Hub as Hub (profile/skill storage)
participant User as End User
IDE->>MCP: get_migration_context(project)
MCP->>Hub: fetch profiles / skills / prompts
Hub-->>MCP: profiles + skills + prompts
MCP-->>IDE: migration context + recommended skills
IDE->>MCP: get_skills(filter)
MCP-->>IDE: skills list
IDE->>MCP: ask_user(prompt_id, context)
MCP->>User: present prompt / question
User-->>MCP: user response
MCP-->>IDE: user response / decision
IDE->>MCP: save_skill(skill_payload)
MCP->>Hub: persist skill into profile bundle
Hub-->>MCP: ack
MCP-->>IDE: save confirmation
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes Poem
🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
🧹 Nitpick comments (1)
enhancements/kai/migration-intelligence/README.md (1)
70-70: Capitalize “Markdown” for terminology consistency.Use the proper noun form in both places (
plain Markdown) to keep wording consistent with documentation conventions.Also applies to: 176-176
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@enhancements/kai/migration-intelligence/README.md` at line 70, Update the README text to use the proper noun "Markdown" instead of lowercase "markdown"; specifically replace occurrences of the phrase "plain markdown" (and any other lowercase "markdown" at the noted locations) with "plain Markdown" to ensure terminology consistency across the file.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@enhancements/kai/migration-intelligence/README.md`:
- Around line 296-303: The fenced code blocks in README.md that show directory
trees and ASCII diagrams (e.g., the block beginning with
".konveyor/profiles/{profileId}/", the subsequent directory-tree blocks that
include "rules/", "skills/", "prompts/" and the ASCII diagram starting with
"┌─────────────────────────────────────────────┐" and the final ".konveyor/"
diagram) are missing language identifiers; update each triple-backtick fence to
use a language (use "text") so they become ```text ... ``` to satisfy MD040 and
improve rendering. Locate the blocks by searching for the unique snippet strings
".konveyor/profiles/{profileId}/", "├── rules/", "├── skills/", "└── prompts/",
and the ASCII box header "Agent (IDE / CLI / Container)" and add "text" after
the opening backticks for each fenced block.
---
Nitpick comments:
In `@enhancements/kai/migration-intelligence/README.md`:
- Line 70: Update the README text to use the proper noun "Markdown" instead of
lowercase "markdown"; specifically replace occurrences of the phrase "plain
markdown" (and any other lowercase "markdown" at the noted locations) with
"plain Markdown" to ensure terminology consistency across the file.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: c7fe3699-e316-48ab-bd0b-c8fb83628522
📒 Files selected for processing (1)
enhancements/kai/migration-intelligence/README.md
Signed-off-by: David Zager <david.j.zager@gmail.com>
ed4c2fe to
2d352ef
Compare
There was a problem hiding this comment.
Actionable comments posted: 2
🧹 Nitpick comments (2)
enhancements/kai/migration-intelligence/README.md (2)
325-329: Consider moving the phased execution tool requirements to Open Questions.Lines 327-328 state "The specific MCP tools needed to support this workflow will be defined as the implementation matures — changes to the Migration Intelligence MCP server may be required." This creates uncertainty about whether the four tools defined in lines 262-267 are sufficient for the complete workflow.
Consider either:
- Moving this to the Open Questions section (lines 77-96) for visibility, or
- Listing potential additional tools that might be needed (e.g.,
save_plan,get_phase_status,mark_phase_complete)Based on learnings, enhancement documents may contain TODOs to be resolved during implementation, but open questions are typically tracked explicitly.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@enhancements/kai/migration-intelligence/README.md` around lines 325 - 329, The phrasing under the "Phased execution" paragraph creates uncertainty about tool sufficiency; either move the sentence about undefined MCP tools to the existing "Open Questions" section (referenced as Open Questions) for visibility, or expand the Migration Intelligence MCP tool list (the four tools defined earlier) with likely additions such as save_plan, get_phase_status, and mark_phase_complete so the document explicitly captures potential needs; update the README.md "Phased execution" paragraph accordingly to reference the Open Questions or enumerate the potential additional tools.
66-72: Clarify the migration intelligence package structure.The terminology defines the migration intelligence package as "a standalone package in the editor-extensions repo (with its own
package.json)" but doesn't specify where in the repo it lives or how it's organized. Adding a path or directory structure example would help implementers understand the intended organization.📝 Suggested addition
Consider adding an example path after Line 72:
- **Migration intelligence package**: A standalone package in the editor-extensions repo (with its own `package.json`) containing built-in prompts, skills, agent instructions (`agents.md`), and MCP configuration. This is the portable unit of migration intelligence — the extension bundles it, but any MCP-compatible agent can consume it directly. + + Example location: `packages/migration-intelligence/` in the + editor-extensions monorepo.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@enhancements/kai/migration-intelligence/README.md` around lines 66 - 72, The "Migration intelligence package" paragraph in README.md is missing a concrete repository path and directory layout; update the text describing the package to include an example path and brief folder structure (e.g., add a sample like "editor-extensions/packages/migration-intelligence/" and show key files such as package.json, prompts/, skills/, agents.md, mcp-config.json) so implementers know where to place files and what subdirectories to expect; edit the paragraph that currently defines "Migration intelligence package" to append this example path and a one-line bulletized folder listing.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@enhancements/kai/migration-intelligence/README.md`:
- Around line 413-443: Change the bare fenced code block used for the ASCII
diagram (the opening "```" that precedes the diagram block) to include a
language identifier such as "text" or "ascii" (e.g., "```text") so the diagram
block complies with markdownlint MD040; update the opening fence only (leave the
ASCII content and closing "```" unchanged).
- Around line 335-371: Update the two enhancement docs so they cross-reference
the same bundle contract: in the centralized-configuration-management doc,
extend its bundle definition to state that a profile tarball may include
additional artifact directories such as skills/ and prompts/ (and reference the
migration-intelligence enhancement), and in the migration-intelligence README
add an explicit reference to the centralized-configuration-management
enhancement and state that the extended structure remains compatible with the
existing sync pipeline (ProfileSyncClient and its syncProfiles() -> TAR download
-> extract flow will extract skills/ and prompts/ alongside rules/). Ensure both
docs mention ProfileSyncClient and syncProfiles() as the components that
preserve compatibility.
---
Nitpick comments:
In `@enhancements/kai/migration-intelligence/README.md`:
- Around line 325-329: The phrasing under the "Phased execution" paragraph
creates uncertainty about tool sufficiency; either move the sentence about
undefined MCP tools to the existing "Open Questions" section (referenced as Open
Questions) for visibility, or expand the Migration Intelligence MCP tool list
(the four tools defined earlier) with likely additions such as save_plan,
get_phase_status, and mark_phase_complete so the document explicitly captures
potential needs; update the README.md "Phased execution" paragraph accordingly
to reference the Open Questions or enumerate the potential additional tools.
- Around line 66-72: The "Migration intelligence package" paragraph in README.md
is missing a concrete repository path and directory layout; update the text
describing the package to include an example path and brief folder structure
(e.g., add a sample like "editor-extensions/packages/migration-intelligence/"
and show key files such as package.json, prompts/, skills/, agents.md,
mcp-config.json) so implementers know where to place files and what
subdirectories to expect; edit the paragraph that currently defines "Migration
intelligence package" to append this example path and a one-line bulletized
folder listing.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: 62ab7ab4-6b29-4900-ab65-2e6d9f31c3a9
📒 Files selected for processing (1)
enhancements/kai/migration-intelligence/README.md
Signed-off-by: David Zager <david.j.zager@gmail.com>
There was a problem hiding this comment.
♻️ Duplicate comments (2)
enhancements/kai/migration-intelligence/README.md (2)
341-341:⚠️ Potential issue | 🟡 MinorAdd language identifier to fenced code block.
The fenced code block at line 341 is missing a language identifier, violating markdownlint MD040.
📝 Proposed fix
-``` +```text .konveyor/profiles/{profileId}/ ├── profile.yaml ├── .hub-metadata.json🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@enhancements/kai/migration-intelligence/README.md` at line 341, The fenced code block in README.md (the triple-backtick block showing ".konveyor/profiles/{profileId}/ ... profile.yaml .hub-metadata.json") is missing a language identifier which violates markdownlint MD040; update that fenced code block (the triple-backtick opening before the tree snippet) to include a language tag such as "text" (i.e., replace "```" with "```text") so the block is explicitly identified.
417-417:⚠️ Potential issue | 🟡 MinorAdd language identifier to fenced code block.
The fenced code block at line 417 (ASCII architecture diagram) is missing a language identifier, violating markdownlint MD040.
📝 Proposed fix
-``` +```text ┌──────────────────────────────────────────────────┐ │ Agent (IDE / CLI / Container) │ │ │🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@enhancements/kai/migration-intelligence/README.md` at line 417, The fenced ASCII diagram block is missing a language identifier which triggers markdownlint MD040; update the opening fence for the ASCII architecture diagram (the ``` block containing the Agent (IDE / CLI / Container) diagram) to include a language identifier such as text (i.e., change ``` to ```text) so the fenced code block is explicitly labeled.
🧹 Nitpick comments (1)
enhancements/kai/migration-intelligence/README.md (1)
334-375: Consider adding explicit cross-reference to centralized-configuration-management enhancement.The extended profile bundle structure builds on the centralized configuration feature but doesn't explicitly reference that enhancement document. While "centralized configuration" is mentioned elsewhere (lines 133, 390), adding an explicit cross-reference here would help readers understand the baseline bundle contract and how this extension maintains compatibility.
💡 Suggested enhancement
Consider adding a reference after line 337 or in the see-also section at the top:
Skills travel in profile bundles — the same mechanism that distributes rulesets today (see [centralized-configuration-management](/enhancements/centralized-configuration-management/README.md)).Or add to the see-also section in the frontmatter:
see-also: - "/enhancements/kai/agent-driven-migration/README.md" - "/enhancements/centralized-configuration-management/README.md" - "https://github.com/konveyor/editor-extensions/issues/1243"🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@enhancements/kai/migration-intelligence/README.md` around lines 334 - 375, Add an explicit cross-reference to the centralized-configuration-management enhancement by updating the sentence "Skills travel in profile bundles — the same mechanism that distributes rulesets today" to append a parenthetical pointer to the centralized-configuration-management enhancement (e.g., "(see centralized-configuration-management)"), or alternatively add "centralized-configuration-management" to the README frontmatter see-also list; ensure this reference makes clear that the extended bundle structure remains compatible with the existing syncProfiles() download/extract pipeline.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Duplicate comments:
In `@enhancements/kai/migration-intelligence/README.md`:
- Line 341: The fenced code block in README.md (the triple-backtick block
showing ".konveyor/profiles/{profileId}/ ... profile.yaml .hub-metadata.json")
is missing a language identifier which violates markdownlint MD040; update that
fenced code block (the triple-backtick opening before the tree snippet) to
include a language tag such as "text" (i.e., replace "```" with "```text") so
the block is explicitly identified.
- Line 417: The fenced ASCII diagram block is missing a language identifier
which triggers markdownlint MD040; update the opening fence for the ASCII
architecture diagram (the ``` block containing the Agent (IDE / CLI / Container)
diagram) to include a language identifier such as text (i.e., change ``` to
```text) so the fenced code block is explicitly labeled.
---
Nitpick comments:
In `@enhancements/kai/migration-intelligence/README.md`:
- Around line 334-375: Add an explicit cross-reference to the
centralized-configuration-management enhancement by updating the sentence
"Skills travel in profile bundles — the same mechanism that distributes rulesets
today" to append a parenthetical pointer to the
centralized-configuration-management enhancement (e.g., "(see
centralized-configuration-management)"), or alternatively add
"centralized-configuration-management" to the README frontmatter see-also list;
ensure this reference makes clear that the extended bundle structure remains
compatible with the existing syncProfiles() download/extract pipeline.
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: 88b16e19-de45-4cf6-a568-ddcaa897b594
📒 Files selected for processing (1)
enhancements/kai/migration-intelligence/README.md
Adds packages/migration-intelligence/ — a standalone package containing built-in skills, prompts, and agent instructions for Konveyor-guided migrations. Implements the migration intelligence package concept from: konveyor/enhancements#274 Skills follow the Agent Skills format (agentskills.io) and are consumable by any MCP-compatible agent (Goose, OpenCode, Claude Code, Codex) without IDE-specific tooling. Three workflow skills: - create-migration-guide: interview user + explore codebase → skill file - generate-migration-plan: guide + analysis results → phased plan - execute-migration-phase: execute one phase, re-analyze, prompt user This is a markdown-only skeleton. Wiring into the extension (skill discovery, prompt loading, profile bundle extraction) follows in subsequent PRs.
shawn-hurley
left a comment
There was a problem hiding this comment.
I wonder if we need to rethink the rules and/or rulesets to not just give information about a problem but also how to solve it.
I think the idea of skills being the mechanism for this, but I am wondenering if rulesets provided the skills, then you wouldn't neccessarily need the hub integration to get the curated skills for a given migration/ruleset?
|
|
||
| ## Proposal | ||
|
|
||
| ### Skills |
There was a problem hiding this comment.
Should these skills like at the ruleset level, so that any new ruleset can create it's own skill that defines the overall migration?
There was a problem hiding this comment.
I definitely think this is something we could do but articulating what exactly that should look like was more difficult than when I originally imagined it. I think it's a success for us in this next release to move to the standard skills format and make them usable in more than the ide environment.
Maybe this should be articulated as a non-goal?
| With an approved migration plan: | ||
|
|
||
| 1. Agent executes one phase at a time, guided by prompts and skills | ||
| 2. Between phases, agent prompts user to review changes and confirm |
There was a problem hiding this comment.
Is this a simple yes or no, or can a user drive the agent to make changes/answer questions in some sort of chat interface?
There was a problem hiding this comment.
The idea in the first go round was for the initial attempt at this would be more hand holding and less power user. In my mind there would be ways to enable the input prompt and therefore make progress in other ways.
Said another way, the idea here was to explore what it could look like where all of this is done from the hub. You send the agent off to perform one phase and come back with a patch to review. Review the changes and iterate.
It wasn't really meant to say that a user could not (with the appropriate flags set) provide input of their own.
| progressive disclosure — agents load only the name and description | ||
| at discovery time, reading full instructions only when activated. | ||
|
|
||
| - **Migration plan**: A type of skill that captures high-level migration |
There was a problem hiding this comment.
I am of the opinion that a plan is something created by the agent and is specific to a workspace on user's end; whereas a migration skill is something created, tested, vetted by an expert. A skill would be a set of instructions detailing exactly how to perform a migration for a given technology, a plan is what an agent creates at the time of migration to tackle the migration in logical steps for a given application. A plan is dynamic, skill is static. The skill will have instructions on how to create that plan but the plan is not something we will publish as an artifact.
There was a problem hiding this comment.
Yeah. I had meant to distinguish between migration guides (architect approved) and the migration plans like what you describe.
I don't know though that I go so far as to say there isn't a future where the AI has an agent go off and do research, come back with questions, answer them, and get a specific migration plan for the project.
What do you think?
fabianvf
left a comment
There was a problem hiding this comment.
This feels light on the hub-specific implementation details - is hub api support for this something we'd want in 0.10, or is this something we'd do in phases with hub support coming down the line?
| what does this migration mean, what patterns should be followed, and | ||
| what organizational preferences apply. | ||
|
|
||
| - **Prompt**: A template stored in `.konveyor/prompts/` that guides |
There was a problem hiding this comment.
What is the advantage of separate prompts vs just having the skills include prompts?
| on skills? Should skills be a first-class resource in the hub or | ||
| embedded in profile bundles? | ||
|
|
||
| 3. **Archetype-skill association**: How should architects link skills to |
There was a problem hiding this comment.
If we're talking hub integration, presumably skills would also need to be linkable to applications/rulesets
| 1. **Enable migration planning**: Give agents enough context to produce | ||
| phased migration plans from analysis results. | ||
|
|
||
| 2. **Capture institutional knowledge**: Provide tools for agents and |
There was a problem hiding this comment.
This feels like a slight increase in scope to me, though it could be relevant to #279 if we wanted to expand it to be able to store hints etc that were created as part of an interactive workflow.
|
|
||
| With an approved migration plan: | ||
|
|
||
| 1. Agent executes one phase at a time, guided by prompts and skills |
There was a problem hiding this comment.
are we confident we can enforce the phasing with the pluggable backend proposed in #267 ?
|
|
||
| **Risk: Agent-generated questions used to social-engineer users** | ||
| - *Mitigation*: Questions are clearly labeled as coming from the | ||
| agent. In the IDE, users choose from predefined options, not |
There was a problem hiding this comment.
I think you referenced freeform text input above
| Skills stay in the workspace, never distributed via hub. | ||
|
|
||
| **Pros**: Simpler. No hub changes needed. | ||
| **Cons**: Every developer creates their own skills from scratch. |
There was a problem hiding this comment.
Skills could still be committed to a repository and shared that way. But it wouldn't be possible to pull generalized/cross-repository skills or easily associate new skills with a repository
|
Folding the important stuff into #267 |
Summary by CodeRabbit