diff --git a/.xo-config.cjs b/.xo-config.cjs
index b68eeef82eab..9dfcfc30c1c4 100644
--- a/.xo-config.cjs
+++ b/.xo-config.cjs
@@ -1,9 +1,7 @@
 module.exports = {
 	prettier: true,
 	ignores: [
-		'./showcases/nuxt-showcase/**',
-		'./packages/migration/**',
-		'./packages/foundations/**'
+		'./showcases/nuxt-showcase/**'
 	],
 	overrides: [
 		{
diff --git a/packages/foundations/assets/fonts/generate-eu-fonts.ts b/packages/foundations/assets/fonts/generate-eu-fonts.ts
index 061cc9c82a86..3ef5ab7c8812 100644
--- a/packages/foundations/assets/fonts/generate-eu-fonts.ts
+++ b/packages/foundations/assets/fonts/generate-eu-fonts.ts
@@ -1,10 +1,9 @@
 import { exec } from 'node:child_process';
 import { promisify } from 'node:util';
+import { dirname } from 'node:path';
+import { fileURLToPath } from 'node:url';
 import { glob } from 'glob';
 
-import { dirname } from 'path';
-import { fileURLToPath } from 'url';
-
 const __filename = fileURLToPath(import.meta.url);
 const __dirname = dirname(__filename).replaceAll('\\', '/');
 
@@ -14,7 +13,7 @@ const generateFonts = async () => {
 	console.log('Generating EU fonts...');
 	try {
 		await execAsync('pyftsubset --help');
-	} catch (e) {
+	} catch {
 		console.warn(
 			'You need to install pyftsubset. Check packages/foundations/assets/fonts/README.md for more information.'
 		);
diff --git a/packages/migration/src/data.ts b/packages/migration/src/data.ts
index 8020b036964e..6c1d50aba002 100644
--- a/packages/migration/src/data.ts
+++ b/packages/migration/src/data.ts
@@ -1,10 +1,10 @@
+import type { ReplaceInFileConfig } from 'replace-in-file';
 import type { ProgrammOptionsType } from './types';
 import { colorQ32024 } from './migration/color-q32024';
-import type { ReplaceInFileConfig } from 'replace-in-file';
 import { iconQ32024 } from './migration/icon-q32024';
-import { v005_v006 } from './migration/v0.0.5-v0.0.6';
-import { v006_v007 } from './migration/v0.0.6-v0.0.7';
-import { v007_v100 } from './migration/v0.0.7-v1.0.0';
+import { v005_v006 } from './migration/v0.0.5-v0.0.6.ts';
+import { v006_v007 } from './migration/v0.0.6-v0.0.7.ts';
+import { v007_v100 } from './migration/v0.0.7-v1.0.0.ts';
 
 export const migrationTypes: Record<string, ReplaceInFileConfig[]> = {
 	colorQ32024,
diff --git a/packages/migration/src/migration/index.ts b/packages/migration/src/migration/index.ts
index 7b9e5424d5fa..ba00e8177d65 100644
--- a/packages/migration/src/migration/index.ts
+++ b/packages/migration/src/migration/index.ts
@@ -1,6 +1,10 @@
+#!/usr/bin/env node
 import { globSync } from 'glob';
-import type { ReplaceInFileConfig, ReplaceResult } from 'replace-in-file';
-import { replaceInFileSync } from 'replace-in-file';
+import {
+	type ReplaceInFileConfig,
+	type ReplaceResult,
+	replaceInFileSync
+} from 'replace-in-file';
 import type { OptionsType } from '../types';
 import { migrationTypes } from '../data';
 import { AdditionalInformation } from './additional-information';
@@ -52,6 +56,7 @@ export const migrate = (
 				if (cli) {
 					console.log(result.filter((res) => res.hasChanged));
 				}
+
 				return result;
 			}
 		}
diff --git a/packages/migration/src/program.ts b/packages/migration/src/program.ts
index 52ee197f927d..68ac79c14377 100644
--- a/packages/migration/src/program.ts
+++ b/packages/migration/src/program.ts
@@ -1,3 +1,4 @@
+#!/usr/bin/env node
 import { program } from 'commander';
 import type { OptionsType, ProgrammOptionsType } from './types';
 
diff --git a/packages/migration/src/types.ts b/packages/migration/src/types.ts
index 6359021e84d1..326e7692cf8f 100644
--- a/packages/migration/src/types.ts
+++ b/packages/migration/src/types.ts
@@ -1,4 +1,5 @@
-import { v005_v006 } from './migration/v0.0.5-v0.0.6';
+#!/usr/bin/env node
+import { v005_v006 } from './migration/v0.0.5-v0.0.6.ts';
 
 export type ProgrammOptionsType = {
 	name: string;
@@ -12,6 +13,8 @@ export type ProgrammOptionsType = {
 
 export type OptionsType = {
 	src: string;
-	type: (string | 'colorQ32024' | 'iconQ32024' | 'v005_v006' | 'v006_v007')[];
+	type: Array<
+		string | 'colorQ32024' | 'iconQ32024' | 'v005_v006' | 'v006_v007'
+	>;
 	dryRun?: string | boolean;
 };
diff --git a/packages/migration/test/color-q32024/color-q32024.spec.ts b/packages/migration/test/color-q32024/color-q32024.spec.ts
index 1bbf59447ea2..4caf1f7314e2 100644
--- a/packages/migration/test/color-q32024/color-q32024.spec.ts
+++ b/packages/migration/test/color-q32024/color-q32024.spec.ts
@@ -12,8 +12,6 @@ describe('color-q32024', () => {
 
 		expect(result).not.undefined;
 
-		expect(
-			(result as ReplaceResult[]).filter((res) => res.hasChanged)
-		).toHaveLength(1);
+		expect(result!.filter((res) => res.hasChanged)).toHaveLength(1);
 	});
 });
diff --git a/packages/migration/test/icon-q32024/icon-q32024.spec.ts b/packages/migration/test/icon-q32024/icon-q32024.spec.ts
index 61e64a737016..7ad47ab274f9 100644
--- a/packages/migration/test/icon-q32024/icon-q32024.spec.ts
+++ b/packages/migration/test/icon-q32024/icon-q32024.spec.ts
@@ -12,8 +12,6 @@ describe('icon-q32024', () => {
 
 		expect(result).not.undefined;
 
-		expect(
-			(result as ReplaceResult[]).filter((res) => res.hasChanged)
-		).toHaveLength(1);
+		expect(result!.filter((res) => res.hasChanged)).toHaveLength(1);
 	});
 });
diff --git a/packages/migration/test/v0.0.5-v0.0.6/v005_v006.spec.ts b/packages/migration/test/v0.0.5-v0.0.6/v005_v006.spec.ts
index d85768603cca..ea10be3a7d3b 100644
--- a/packages/migration/test/v0.0.5-v0.0.6/v005_v006.spec.ts
+++ b/packages/migration/test/v0.0.5-v0.0.6/v005_v006.spec.ts
@@ -12,8 +12,6 @@ describe('v005_v006', () => {
 
 		expect(result).not.undefined;
 
-		expect(
-			(result as ReplaceResult[]).filter((res) => res.hasChanged)
-		).toHaveLength(1);
+		expect(result!.filter((res) => res.hasChanged)).toHaveLength(1);
 	});
 });
diff --git a/packages/migration/test/v0.0.6-v0.0.7/v006_v007.spec.ts b/packages/migration/test/v0.0.6-v0.0.7/v006_v007.spec.ts
index 61d5fa2b7586..24a8749afac5 100644
--- a/packages/migration/test/v0.0.6-v0.0.7/v006_v007.spec.ts
+++ b/packages/migration/test/v0.0.6-v0.0.7/v006_v007.spec.ts
@@ -12,8 +12,6 @@ describe('v006_v007', () => {
 
 		expect(result).not.undefined;
 
-		expect(
-			(result as ReplaceResult[]).filter((res) => res.hasChanged)
-		).toHaveLength(1);
+		expect(result!.filter((res) => res.hasChanged)).toHaveLength(1);
 	});
 });