Skip to content

fix: Make V3 migration safer and easier to run#1386

Merged
hatayama merged 18 commits into
v3-betafrom
fix/improve-migration-skill
Jun 22, 2026
Merged

fix: Make V3 migration safer and easier to run#1386
hatayama merged 18 commits into
v3-betafrom
fix/improve-migration-skill

Conversation

@hatayama

@hatayama hatayama commented Jun 22, 2026

Copy link
Copy Markdown
Owner

Summary

  • Replaces generated V3 CLI invocation detector scripts with clearer skill-guided migration instructions.
  • Improves the migration window with a copyable AI prompt and fixes migration checks so already-current projects are not changed unnecessarily.

User Impact

  • Users no longer get noisy detector output for unrelated code snippets when migrating V2 uloop invocations.
  • The migration window gives users an easier prompt to copy into an AI assistant, and the check action can correctly report that no migration is needed.
  • Projects that do need migration get safer source and asmdef updates across the new V3 namespace split.

Changes

  • Removed the POSIX and PowerShell candidate detector scripts and updated the V3 migration skill reference to rely on repository search plus context inspection.
  • Added migration-window copy prompt UI and removed the unnecessary completion close button.
  • Tightened V3 source rewrites and asmdef reference requirements for Application, Domain, ToolContracts, and FirstParty screenshot APIs.
  • Added regression coverage for false positives, current namespace aliases/usings, first-party contract moves, and no-op migration checks.

Verification

  • cli/dist/darwin-arm64/uloop compile --project-path "$(git rev-parse --show-toplevel)"
  • cli/dist/darwin-arm64/uloop run-tests --project-path "$(git rev-parse --show-toplevel)" --test-mode EditMode --filter-type regex --filter-value ".*ThirdPartyToolMigration(RulesTests|FileServiceTests).*"
  • Actual migration no-op check: before=False/0; applied=0; after=False/0; appliedFiles=
  • autoreview --mode branch --base origin/v3-beta: clean

Review in cubic

hatayama added 16 commits June 22, 2026 00:02
Restrict V3 migration OUTPUT_FIELD candidates to jq selector text and PowerShell variables parsed from ConvertFrom-Json so Markdown C# snippets are not reported as uloop JSON parsing.
Remove the fragile V3 migration detector scripts and make the skill rely on repository search plus context inspection. Expand the reference so agents have the full migration map, false-positive guidance, and stale installed script cleanup coverage.
Update the migration wizard prompt copy so users can ask an AI agent to run the V3 CLI invocation migration skill, and add a clipboard button for the prompt.
Place the AI migration prompt after the skill install button so users see the copyable prompt in the requested flow, and cover the ordering with an EditMode test.
Keep the AI prompt text inside the collapsible section while leaving the copy action visible below it, and cover the UI hierarchy with an EditMode test.
Keep the Check button visible but disabled when no C# migration targets remain, so the completed state no longer offers a redundant Close action.
Keep current Application, Domain, and FirstPartyTools namespace references intact during C# migration so internal package code and tests are not rebound to ToolContracts by broad namespace replacement.
Avoid rewriting already-current ToolContracts references to fully qualified names when a ToolContracts using is available, while keeping legacy and qualified migrations resolvable.
Rewrite only moved public contract types to ToolContracts while preserving current Application, Domain, and FirstPartyTools references that still resolve valid APIs. This prevents the setup migration from rebinding already-current code and keeps completed projects as no-op migration candidates.
Carry current Domain namespace aliases through migration planning and rewrite alias-qualified moved contract types to ToolContracts. Also make the fast migration-target scanner report Domain global using asmdef repairs so the wizard does not miss reference-only fixes.
Ensure migration adds ToolContracts references when current Domain aliases and FirstPartyTools screenshot contract types are rewritten to ToolContracts, keeping sync, async, and fast target scans aligned.
When a file-local Application using participates in a migration to ToolContracts, keep the Application asmdef reference so the preserved using remains compilable without broad using-only repairs.
Only actual Domain using directives should permit bare contract type rewrites. Aliases and fully qualified Domain references now rewrite qualified names without corrupting unrelated bare identifiers.
Record Application asmdef requirements for current local Application usings so preserved Application-layer types remain compilable after legacy references are migrated away.
Record Domain asmdef requirements for current local Domain usings so Domain-layer types that stay in Domain remain compilable after migration checks.
Current FirstParty screenshot APIs can expose ToolContracts types in their public signatures, so migration now records the direct ToolContracts asmdef requirement while preserving the FirstParty call sites.
@coderabbitai

coderabbitai Bot commented Jun 22, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: b84a1e60-2b4e-43a7-965b-c4d5b33c8bca

📥 Commits

Reviewing files that changed from the base of the PR and between 0ea3bf5 and a834446.

📒 Files selected for processing (4)
  • Packages/src/Editor/Infrastructure/ThirdPartyToolMigration/ThirdPartyToolMigrationApplicationDetectionRules.cs
  • Packages/src/Editor/Infrastructure/ThirdPartyToolMigration/ThirdPartyToolMigrationDomainDetectionRules.cs
  • Packages/src/Editor/Infrastructure/ThirdPartyToolMigration/ThirdPartyToolMigrationScreenshotDetectionRules.cs
  • Packages/src/Editor/Infrastructure/ThirdPartyToolMigration/ThirdPartyToolMigrationToolContractDetectionRules.cs
🚧 Files skipped from review as they are similar to previous changes (1)
  • Packages/src/Editor/Infrastructure/ThirdPartyToolMigration/ThirdPartyToolMigrationScreenshotDetectionRules.cs

📝 Walkthrough

Walkthrough

The PR extends the V3 third-party tool migration engine to track current-domain and current-application namespace aliases per assembly directory, rewires AddRequiredCurrentAsmdefReferences to emit distinct Application/Domain/ToolContracts/FirstParty references, and introduces context-aware bare/alias-qualified identifier preservation. The wizard gains a "Copy AI Prompt" button. The CLI skill drops its detector shell script in favour of a reference markdown document. All affected tests are updated or added to match the new behavior.

Changes

V3 Migration Engine, Wizard UI, Skill Tooling, and Tests

Layer / File(s) Summary
Data model and regex catalog extensions
Packages/src/Editor/Infrastructure/ThirdPartyToolMigration/ThirdPartyToolMigrationModels.cs, Packages/src/Editor/Infrastructure/ThirdPartyToolMigration/ThirdPartyToolMigrationRuleCatalog.cs
MigrationAssemblyUsage gains AssemblyScopedCurrentDomainDirectories and AssemblyScopedCurrentDomainAliasesByDirectory properties and constructor parameters; rule catalog adds compiled regexes for current-domain (plain, alias, global-alias) and current-application using forms.
Detection helpers for current-domain and current-application usings
Packages/src/Editor/Infrastructure/ThirdPartyToolMigration/ThirdPartyToolMigrationDetectionRules.cs, ...AliasRules.cs, ...DomainDetectionRules.cs, ...ScreenshotDetectionRules.cs, ...ApiDetectionRules.cs, ...ApplicationDetectionRules.cs, ...ToolContractDetectionRules.cs
New methods detect current-domain/application using directives (both standard and global using forms), extract namespace alias names, check alias-qualified contract references, and detect current first-party screenshot contract references; helper computes combined current-domain namespace aliases from source and assembly-scoped aliases; ContainsAliasQualifiedName helper renames legacy-specific variant and is used consistently across detection rules.
ThirdPartyToolMigrationRules public facade extensions
Packages/src/Editor/Infrastructure/ThirdPartyToolMigration/ThirdPartyToolMigrationRules.cs
MigrateCSharpSourceForLegacyAssembly gains hasAssemblyScopedCurrentDomainUsing and currentDomainAssemblyAliases parameters; new internal wrappers expose ContainsCurrentDomainContractAliasReference, ContainsCurrentFirstPartyScreenshotContractApiForAssembly, ContainsCurrentDomainUsing/Alias, ContainsCurrentApplicationUsing, and GetCurrentDomainGlobalNamespaceAliases delegation helpers.
Asmdef reference selection and C#/type rewrite rule changes
Packages/src/Editor/Infrastructure/ThirdPartyToolMigration/ThirdPartyToolMigrationAsmdefRules.cs, ...CSharpRules.cs, ...TypeReplacementRules.cs
AddRequiredCurrentAsmdefReferences splits from a single aggregated condition into four independent per-reference-type branches; AddRequiredMigratedLegacyEditorReference helper added; ReplaceCurrentPublicContractNamespacesInCode becomes a no-op; application/screenshot/domain replacement rules gain current-alias parameters and conditional bare-reference preservation logic; canPreserveBareCurrentToolContractsReferences and canMigrateBareCurrentDomainContractType flags thread through the pipeline.
Screenshot capture utility reference-preservation refactor
Packages/src/Editor/Infrastructure/ThirdPartyToolMigration/ThirdPartyToolMigrationScreenshotRules.cs
Two new "preserve bare current references" flags thread through all four capture-replacement methods; direct CurrentNamespace + type construction is replaced with AppendMigratedEditorWindowCaptureUtilityReference, which conditionally chooses to preserve current qualifiers, aliases, bare references, or fully-qualify based on regex match groups and the preservation flags; IsCurrentFirstPartyToolsQualifier helper added to normalize and compare qualifiers.
Assembly usage analyzers, fast collectors, and target scanner
Packages/src/Editor/Infrastructure/ThirdPartyToolMigration/ThirdPartyToolMigrationAssemblyUsageAnalyzer.cs, ...AsyncAnalyzer.cs, ...FastAssemblyRequirementCollector.cs, ...FastSourceTargetDetector.cs, ...TargetScanner.cs, ...AssemblyScopedNameMap.cs
Sync and async analyzers introduce assemblyScopedCurrentDomainAliasesByDirectory tracking, refactor how registrar/application/domain/first-party detection populates reference-type directories (including new hasCurrentApplicationSourceTarget and first-party-screenshot booleans), and thread the domain-alias map into MigrationAssemblyUsage construction; fast collectors and scanner propagate the new inputs end-to-end.
Plan builder domain alias wiring
Packages/src/Editor/Infrastructure/ThirdPartyToolMigration/ThirdPartyToolMigrationPlanBuilder.cs
Create and CreateAsync look up currentDomainAssemblyAliases and hasAssemblyScopedCurrentDomainUsing from the new MigrationAssemblyUsage properties and pass them into MigrateCSharpSourceForLegacyAssembly.
Migration wizard UI: Copy AI Prompt button and no-targets state
Packages/src/Editor/Presentation/Setup/ThirdPartyToolMigrationWizardWindow.cs, ...WizardView.cs, ...WizardText.cs, SetupWizardWindow.uss
ThirdPartyToolMigrationWizardWindow adds GetMigrationSkillPromptText, GetMigrationSkillPromptCopyButtonText, and CopyMigrationSkillPromptToClipboard static helpers; view moves the usage foldout outside the skill content section, switches foldout text from example to prompt constant, and adds CreateMigrationSkillPromptCopyButton helper wired to clipboard copy; text gains CopyMigrationSkillPromptButtonText constant and getter. ShowNoMigrationTargetsState now disables the refresh button and hides the close button. USS adds .setup-skill-usage-copy-button margin styling.
v3-cli-invocation-migration skill: remove detector script, update docs
Packages/src/TemporarySkills~/v3-cli-invocation-migration/Skill/SKILL.md, .../references/first-party-v2-to-v3.md, cli/internal/cli/skills_test.go
detect-v3-cli-invocation-candidates.sh is deleted; SKILL.md description, workflow, editing rules, and required search passes are revised for repository-search-based discovery; first-party-v2-to-v3.md gains a Search Checklist, removed-commands table, expanded Context Rules, and third-party boolean-argument constraint; skills_test.go installs fixture switches from scripts/detect.sh to references/first-party-v2-to-v3.md and POSIX/PowerShell detector integration tests and findRepositoryRootForSkillsTest helper are removed.
ThirdPartyToolMigrationRulesTests updates
Assets/Tests/Editor/ThirdPartyToolMigrationRulesTests.cs
MigrateCSharpSourceForLegacyAssembly call sites gain domain-alias named arguments; assertions revised to expect bare or alias-qualified helpers (e.g., EditorWindowCaptureUtility.* instead of ToolContracts.EditorWindowCaptureUtility.*) while preserving qualified timeout constants; asmdef test methods renamed to reflect Application/Domain (not ToolContracts) reference targeting; new test MigrateCSharpSource_WhenCurrentToolContractsSwitcherHasLegacyTiming_PreservesBareReference added.
ThirdPartyToolMigrationFileServiceTests updates (sync and async)
Assets/Tests/Editor/ThirdPartyToolMigrationFileServiceTests.cs
File counts, import presence/absence, GUID expectations, and method names updated for manual-registration, domain-metadata, screenshot, main-thread switcher, FirstPartyTools capture, HasMigrationTargetsAsync, and PreviewMigration scenarios; new sync/async tests added for Domain/Application/FirstPartyTools local-alias and "only needs reference" cases; already-correct GUID scenarios are treated as "no migration needed" with test method renames.
ThirdPartyToolMigrationWizardWindowTests additions
Assets/Tests/Editor/ThirdPartyToolMigrationWizardWindowTests.cs
Six new NUnit tests cover AI migration skill prompt text content, copy-button label text, clipboard copy behavior with restoration, VisualElement ordering (foldout after install button, copy button outside foldout body), and the no-migration-targets UI state (Check button disabled, Close button hidden); GetVisualElementIndex helper added to locate UI elements by index.

Sequence Diagram(s)

sequenceDiagram
  participant PlanBuilder as ThirdPartyToolMigrationPlanBuilder
  participant Rules as ThirdPartyToolMigrationRules
  participant CSharpRules as ThirdPartyToolMigrationCSharpRules
  participant AsmdefRules as ThirdPartyToolMigrationAsmdefRules
  participant TypeReplacement as TypeReplacementRules

  PlanBuilder->>PlanBuilder: Lookup currentDomainAssemblyAliases from AssemblyScopedCurrentDomainAliasesByDirectory
  PlanBuilder->>PlanBuilder: Compute hasAssemblyScopedCurrentDomainUsing from AssemblyScopedCurrentDomainDirectories
  PlanBuilder->>Rules: MigrateCSharpSourceForLegacyAssembly(…, hasAssemblyScopedCurrentDomainUsing, currentDomainAssemblyAliases)
  Rules->>CSharpRules: MigrateCSharpSourceForLegacyAssembly(…, domain params)
  CSharpRules->>CSharpRules: Compute canPreserveBareCurrentToolContractsReferences, canMigrateBareCurrentDomainContractType
  CSharpRules->>TypeReplacement: ReplaceLegacyApplicationTypeNamesInCode(…, currentApplicationNamespaceAliases, canPreserveBare…)
  CSharpRules->>TypeReplacement: ReplaceCurrentDomainContractTypeNamesInCode(…, currentDomainNamespaceAliases, canMigrateBare…)
  CSharpRules->>TypeReplacement: ReplaceLegacyFirstPartyScreenshotTypeNamesInCode(…, currentFirstPartyToolsNamespaceAliases, canPreserveBare…)
  PlanBuilder->>AsmdefRules: AddRequiredCurrentAsmdefReferences(toolContractsRequired, applicationRequired, domainRequired, firstPartyRequired)
  AsmdefRules->>AsmdefRules: Branch 1: if toolContractsRequired → AddRequiredCurrentAsmdefReference ToolContracts GUID
  AsmdefRules->>AsmdefRules: Branch 2: if applicationRequired → AddRequiredCurrentAsmdefReference Application GUID
  AsmdefRules->>AsmdefRules: Branch 3: if domainRequired → AddRequiredCurrentAsmdefReference Domain GUID
  AsmdefRules->>AsmdefRules: Branch 4: if firstPartyRequired → AddRequiredCurrentAsmdefReference FirstParty GUID
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~75 minutes

Possibly related PRs

  • hatayama/unity-cli-loop#1125: Introduced the V3 third-party tool migration wizard and core pipeline that this PR directly extends with domain-alias tracking and per-reference-type asmdef selection.
  • hatayama/unity-cli-loop#1374: Updated the same V3 migration rule/detection/rewrite layer (alias/global-using, screenshot call signatures) whose test expectations are revised in this PR.
  • hatayama/unity-cli-loop#1382: Both PRs modify the ThirdPartyToolMigration wizard UI/tests (e.g., ThirdPartyToolMigrationWizardWindowTests.cs and related wizard behavior/labels) to support the V3 AI migration skill flow.
🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 1.12% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title 'fix: Make V3 migration safer and easier to run' clearly summarizes the main objective of the PR - making safety and usability improvements to V3 migration process.
Description check ✅ Passed The description comprehensively covers the changeset, including summary of changes, user impact, specific modifications, and verification steps that align with the complex refactoring throughout the codebase.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/improve-migration-skill

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🧹 Nitpick comments (1)
Packages/src/TemporarySkills~/v3-cli-invocation-migration/Skill/references/first-party-v2-to-v3.md (1)

3-14: 🧹 Nitpick | 🔵 Trivial | 💤 Low value

Excellent structure for a canonical migration reference. The Search Checklist, boolean rules, removed commands, and context rules provide clear guidance for agents and humans alike. The false-positive list (lines 109–115) is particularly strong in preventing over-migration.

Minor observation: Lines 11 and 13 each start three consecutive bullets with "Search" (flagged by static analysis). The repetition is intentional for a checklist but could be softened if readability is a priority (e.g., "Search for…", "Also look for…", "Check for…").

Also applies to: 25-26, 50-59, 101-115

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In
`@Packages/src/TemporarySkills`~/v3-cli-invocation-migration/Skill/references/first-party-v2-to-v3.md
around lines 3 - 14, The Search Checklist section contains consecutive bullet
points that repetitively start with the word "Search" (particularly visible at
lines 11-13, and also at lines 25-26, 50-59, and 101-115), which impacts
readability. To improve readability while maintaining the checklist's clarity
and intentional structure, vary the starting verbs and phrases of consecutive
bullets. Replace repeated instances of "Search" with synonymous alternatives
such as "Also look for", "Check for", "Review", "Verify", or similar action
verbs that convey the same meaning but improve the natural flow of the checklist
without losing the prescriptive guidance.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In
`@Packages/src/Editor/Infrastructure/ThirdPartyToolMigration/ThirdPartyToolMigrationCSharpRules.cs`:
- Around line 273-275: The issue is that `canUseBareCurrentFirstPartyTools` is
being passed as the bare-preservation flag in the method call, but it's true for
any `CurrentFirstPartyToolsNamespaceRegex` match (including fully-qualified
references), not just when FirstPartyTools using statements are actually in
scope. This causes incorrect bare rewrites of legacy capture calls to
`EditorWindowCaptureUtility` even without appropriate FirstPartyTools usings,
producing uncompilable code. Instead of passing
`canUseBareCurrentFirstPartyTools` as the third parameter, create a proper
FirstPartyTools using detector (parallel to the existing Domain/Application
using detectors) that specifically checks for using or global using statements,
and pass that detector result as the bare-preservation flag to ensure bare
legacy calls are only rewritten when appropriate FirstPartyTools usings are
actually in scope.

---

Nitpick comments:
In
`@Packages/src/TemporarySkills`~/v3-cli-invocation-migration/Skill/references/first-party-v2-to-v3.md:
- Around line 3-14: The Search Checklist section contains consecutive bullet
points that repetitively start with the word "Search" (particularly visible at
lines 11-13, and also at lines 25-26, 50-59, and 101-115), which impacts
readability. To improve readability while maintaining the checklist's clarity
and intentional structure, vary the starting verbs and phrases of consecutive
bullets. Replace repeated instances of "Search" with synonymous alternatives
such as "Also look for", "Check for", "Review", "Verify", or similar action
verbs that convey the same meaning but improve the natural flow of the checklist
without losing the prescriptive guidance.
🪄 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: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 995a5051-3165-4e8d-829b-b2ae9137fdee

📥 Commits

Reviewing files that changed from the base of the PR and between 3f37117 and 7d10ecc.

⛔ Files ignored due to path filters (1)
  • Packages/src/TemporarySkills~/v3-cli-invocation-migration/Skill/scripts/detect-v3-cli-invocation-candidates.ps1 is excluded by none and included by none
📒 Files selected for processing (30)
  • Assets/Tests/Editor/ThirdPartyToolMigrationFileServiceTests.cs
  • Assets/Tests/Editor/ThirdPartyToolMigrationRulesTests.cs
  • Assets/Tests/Editor/ThirdPartyToolMigrationWizardWindowTests.cs
  • Packages/src/Editor/Infrastructure/ThirdPartyToolMigration/ThirdPartyToolMigrationAliasRules.cs
  • Packages/src/Editor/Infrastructure/ThirdPartyToolMigration/ThirdPartyToolMigrationApiDetectionRules.cs
  • Packages/src/Editor/Infrastructure/ThirdPartyToolMigration/ThirdPartyToolMigrationAsmdefRules.cs
  • Packages/src/Editor/Infrastructure/ThirdPartyToolMigration/ThirdPartyToolMigrationAssemblyScopedNameMap.cs
  • Packages/src/Editor/Infrastructure/ThirdPartyToolMigration/ThirdPartyToolMigrationAssemblyUsageAnalyzer.cs
  • Packages/src/Editor/Infrastructure/ThirdPartyToolMigration/ThirdPartyToolMigrationAssemblyUsageAsyncAnalyzer.cs
  • Packages/src/Editor/Infrastructure/ThirdPartyToolMigration/ThirdPartyToolMigrationCSharpRules.cs
  • Packages/src/Editor/Infrastructure/ThirdPartyToolMigration/ThirdPartyToolMigrationDetectionRules.cs
  • Packages/src/Editor/Infrastructure/ThirdPartyToolMigration/ThirdPartyToolMigrationDomainDetectionRules.cs
  • Packages/src/Editor/Infrastructure/ThirdPartyToolMigration/ThirdPartyToolMigrationFastAssemblyRequirementCollector.cs
  • Packages/src/Editor/Infrastructure/ThirdPartyToolMigration/ThirdPartyToolMigrationFastSourceTargetDetector.cs
  • Packages/src/Editor/Infrastructure/ThirdPartyToolMigration/ThirdPartyToolMigrationModels.cs
  • Packages/src/Editor/Infrastructure/ThirdPartyToolMigration/ThirdPartyToolMigrationPlanBuilder.cs
  • Packages/src/Editor/Infrastructure/ThirdPartyToolMigration/ThirdPartyToolMigrationRuleCatalog.cs
  • Packages/src/Editor/Infrastructure/ThirdPartyToolMigration/ThirdPartyToolMigrationRules.cs
  • Packages/src/Editor/Infrastructure/ThirdPartyToolMigration/ThirdPartyToolMigrationScreenshotDetectionRules.cs
  • Packages/src/Editor/Infrastructure/ThirdPartyToolMigration/ThirdPartyToolMigrationScreenshotRules.cs
  • Packages/src/Editor/Infrastructure/ThirdPartyToolMigration/ThirdPartyToolMigrationTargetScanner.cs
  • Packages/src/Editor/Infrastructure/ThirdPartyToolMigration/ThirdPartyToolMigrationTypeReplacementRules.cs
  • Packages/src/Editor/Presentation/Setup/SetupWizardWindow.uss
  • Packages/src/Editor/Presentation/Setup/ThirdPartyToolMigrationWizardText.cs
  • Packages/src/Editor/Presentation/Setup/ThirdPartyToolMigrationWizardView.cs
  • Packages/src/Editor/Presentation/Setup/ThirdPartyToolMigrationWizardWindow.cs
  • Packages/src/TemporarySkills~/v3-cli-invocation-migration/Skill/SKILL.md
  • Packages/src/TemporarySkills~/v3-cli-invocation-migration/Skill/references/first-party-v2-to-v3.md
  • Packages/src/TemporarySkills~/v3-cli-invocation-migration/Skill/scripts/detect-v3-cli-invocation-candidates.sh
  • cli/internal/cli/skills_test.go
💤 Files with no reviewable changes (1)
  • Packages/src/TemporarySkills~/v3-cli-invocation-migration/Skill/scripts/detect-v3-cli-invocation-candidates.sh

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

2 issues found across 31 files

Reply with feedback, questions, or to request a fix.

Re-trigger cubic

Only preserve bare FirstPartyTools capture references when a using directive is actually in scope. Fully qualified namespace usage can still trigger migration, but the migrated call is now qualified so the output remains compilable.

Also reuse the existing alias-qualified matcher for current Domain contract detection instead of keeping a duplicate helper.

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

1 issue found across 4 files (changes from recent commits).

Reply with feedback, questions, or to request a fix.

Re-trigger cubic

Use a neutral helper name because the same alias-qualified type check is shared by both legacy namespace aliases and current V3 namespace aliases.
@hatayama
hatayama merged commit 03087ce into v3-beta Jun 22, 2026
9 checks passed
@hatayama
hatayama deleted the fix/improve-migration-skill branch June 22, 2026 09:38
@github-actions github-actions Bot mentioned this pull request Jun 22, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant