kotlin-tooling-agp9-migration
Kotlin Multiplatform(KMP)プロジェクトを Android Gradle Plugin 9.0 以降へ移行するスキルです。プラグインの置き換え(`com.android.kotlin.multiplatform.library`)、モジュール分割、DSL の移行、新しいデフォルトプロジェクト構成への対応を自動処理します。AGP のアップグレード時、KMP と AGP の非互換によるビルド失敗時、または AGP 9.0・android multiplatform plugin・KMP 移行・`com.android.kotlin.multiplatform.library` に関する作業が発生した際に活用してください。
description の原文を見る
> Migrates Kotlin Multiplatform (KMP) projects to Android Gradle Plugin 9.0+. Handles plugin replacement (com.android.kotlin.multiplatform.library), module splitting, DSL migration, and the new default project structure. Use when upgrading AGP, when build fails due to KMP+AGP incompatibility, or when the user mentions AGP 9.0, android multiplatform plugin, KMP migration, or com.android.kotlin.multiplatform.library.
SKILL.md 本文
KMP AGP 9.0 移行
Android Gradle Plugin 9.0 では、Android アプリケーションプラグインと Kotlin Multiplatform プラグインが同じモジュール内で互換性を失います。このスキルは移行をガイドします。
ステップ 0: プロジェクトの分析
変更を加える前に、プロジェクト構造を理解してください:
settings.gradle.kts(または.gradle) を読んですべてのモジュールを見つける- 各モジュールについて、その
build.gradle.ktsを読んでどのプラグインが適用されているかを確認する - プロジェクトが Gradle バージョンカタログ (
gradle/libs.versions.toml) を使用しているかを確認する。存在する場合は、AGP/Gradle/Kotlin のバージョンについて読む。存在しない場合は、build.gradle.ktsファイル (通常はルートのbuildscript {}またはplugins {}ブロック) から直接バージョンを見つける。このガイドのすべての例を適宜調整してください — バージョンカタログの例はalias(libs.plugins.xxx)を使用しますが、直接使用はid("plugin.id") version "x.y.z"を使用します gradle/wrapper/gradle-wrapper.propertiesから Gradle バージョンを読むgradle.propertiesで既存の回避策がないか確認する (android.enableLegacyVariantApi)org.jetbrains.kotlin.androidプラグインの使用を確認する — AGP 9.0 には組み込みの Kotlin が含まれ、このプラグインは削除する必要がありますorg.jetbrains.kotlin.kaptプラグインの使用を確認する — 組み込み Kotlin と互換性がなく、KSP またはcom.android.legacy-kaptに移行する必要があります- AGP 9.0 と互換性がない可能性のあるサードパーティプラグインを確認する (以下の「プラグイン互換性」セクションを参照)
Bash が利用可能な場合、このスキルのディレクトリから scripts/analyze-project.sh を実行して、構造化されたサマリーを取得します。
各モジュールを分類する
各モジュールについて、そのタイプを決定します:
| 現在のプラグイン | 移行パス |
|---|---|
kotlin.multiplatform + com.android.library | パス A — ライブラリプラグインスワップ |
kotlin.multiplatform + com.android.application | パス B — 必須 Android 分割 |
kotlin.multiplatform と 1 つのモジュール内の複数のプラットフォーム エントリポイント | パス C — 完全な再構成 (推奨) |
com.android.application または com.android.library (KMP なし) | 以下の「純粋な Android のヒント」を参照 |
スコープを決定する
- パス B は必須 です。KMP + Android アプリケーションプラグインを組み合わせるモジュール用
- パス C は推奨 されます。プロジェクトが複数のプラットフォーム (Android、Desktop、Web) のエントリポイントを含むモノリシックな
composeApp(またはそれに類するもの) モジュールを持つ場合。これは、各プラットフォームが独自のアプリモジュールを取得する新しい JetBrains デフォルトプロジェクト構造に合わせます。 - ユーザーに確認 してください。パス B のみ (最小必須) を望むか、パス C (推奨される完全な再構成) を望むか
パス A: ライブラリモジュール移行
kotlin.multiplatform + com.android.library を適用するモジュールの場合に使用します。
完全なビフォーアフターコードは references/MIGRATION-LIBRARY.md を参照してください。
概要:
- プラグインを置き換える:
com.android.library→com.android.kotlin.multiplatform.library org.jetbrains.kotlin.androidプラグインを削除 する (AGP 9.0 に組み込み Kotlin サポートがあります)- DSL を移行する: トップレベルの
android {}ブロックからkotlin { android {} }への設定を移動します:kotlin { android { namespace = "com.example.lib" compileSdk = 35 minSdk = 24 } } - ソースディレクトリ名を変更 する (モジュールが KMP レイアウトの代わりに従来の Android レイアウトを使用する場合のみ):
src/main→src/androidMainsrc/test→src/androidHostTestsrc/androidTest→src/androidDeviceTest- モジュールが既に
src/androidMain/を使用している場合、ディレクトリ名の変更は不要です
- 依存関係を移動 する。トップレベルの
dependencies {}からsourceSetsへ:kotlin { sourceSets { androidMain.dependencies { implementation("androidx.appcompat:appcompat:1.7.0") } } } - リソースを明示的に有効にする 。モジュールが Android または Compose Multiplatform リソースを使用する場合:
kotlin { android { androidResources { enable = true } } } - Java コンパイルを有効にする 。モジュールに
.javaソースファイルがある場合:kotlin { android { withJava() } } - テストを明示的に有効にする 。モジュールにユニットテストまたはインストルメントテストがある場合:
kotlin { android { withHostTest { isIncludeAndroidResources = true } withDeviceTest { instrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" } } } - Compose ツーリング依存関係を更新 する:
// 古い: debugImplementation(libs.androidx.compose.ui.tooling) // 新規: androidRuntimeClasspath(libs.androidx.compose.ui.tooling) - コンシューマー ProGuard ルールを明示的に公開 する (該当する場合):
kotlin { android { consumerProguardFiles.add(file("consumer-rules.pro")) } } - サブ依存関係バリアント (Product Flavors / Build Types) を解決する:
新しい KMP Android ライブラリプラグインはシングルバリアント アーキテクチャを強制するため、複数のバリアント (たとえば
debug/releaseビルドタイプ、またはfree/paidなどのプロダクトフレーバー) を公開する依存関係の解決方法を本来理解しません。localDependencySelectionを使用してフォールバック動作を構成します:kotlin { android { localDependencySelection { // Android ライブラリ依存関係から使用するビルドタイプを優先順位順に決定する selectBuildTypeFrom.set(listOf("debug", "release")) // 依存関係に 'tier' ディメンションがある場合は、'free' フレーバーを選択する productFlavorDimension("tier") { selectFrom.set(listOf("free")) } } } }
パス B: Android アプリケーション + 共有モジュール分割
kotlin.multiplatform + com.android.application を適用するモジュールの場合に使用します。これは AGP 9.0 互換性に必須です。
完全なガイドは references/MIGRATION-APP-SPLIT.md を参照してください。
概要:
androidAppモジュールを作成 します。独自のbuild.gradle.ktsを使用:plugins { alias(libs.plugins.androidApplication) // kotlin-android を適用しないでください — AGP 9.0 に Kotlin サポートが含まれています alias(libs.plugins.composeMultiplatform) // Compose を使用している場合 alias(libs.plugins.composeCompiler) // Compose を使用している場合 } android { namespace = "com.example.app" compileSdk = 35 defaultConfig { applicationId = "com.example.app" minSdk = 24 targetSdk = 35 versionCode = 1 versionName = "1.0" } buildFeatures { compose = true } } dependencies { implementation(projects.shared) // または共有モジュール名 implementation(libs.androidx.activity.compose) }- Android エントリポイント コードを移動 します。
src/androidMain/からandroidApp/src/main/へ:MainActivity.kt(および他の Activities/Fragments)AndroidManifest.xml(アプリレベルのマニフェストで<application>とランチャー<activity>を含む) —<activity>のandroid:nameが新しいロケーションで完全修飾クラス名を使用することを確認- Android Application クラス (存在する場合)
- アプリレベルのリソース (ランチャーアイコン、テーマなど)
settings.gradle.ktsに追加 する:include(":androidApp")- ルート
build.gradle.ktsに追加 する:apply falseを使用したプラグイン宣言 - 元のモジュールを変換 する。パス A ステップを使用してアプリケーションからライブラリへ
- 異なる名前空間を確認 する: アプリモジュールとライブラリモジュールは異なる名前空間を持つ必要があります
- 共有モジュールから削除 する:
applicationId、targetSdk、versionCode、versionName - IDE 実行設定を更新 する: モジュールを古いモジュールから
androidAppに変更
パス C: 完全な再構成 (推奨)
複数のプラットフォーム用のエントリポイントを含むモノリシック モジュール (通常は composeApp) がプロジェクトにある場合に使用します。これはオプションですが、新しい JetBrains デフォルトに合わせます。
完全なガイドは references/MIGRATION-FULL-RESTRUCTURE.md を参照してください。
ターゲット構造
project/
├── shared/ ← KMP ライブラリ (以前は composeApp)、純粋な共有コード
├── androidApp/ ← Android エントリポイントのみ
├── desktopApp/ ← Desktop エントリポイントのみ (desktop ターゲットが存在する場合)
├── webApp/ ← Wasm/JS エントリポイントのみ (web ターゲットが存在する場合)
├── iosApp/ ← iOS Xcode プロジェクト (通常は既に別々)
└── ...
ステップ
- 最初にパス B を適用 する —
androidAppを抽出 (AGP 9.0 では必須) desktopAppを抽出 する (desktop ターゲットが存在する場合):org.jetbrains.composeとapplication {}プラグインを使用してモジュールを作成main()関数をdesktopMainからdesktopApp/src/main/kotlin/に移動compose.desktop { application { ... } }設定をdesktopApp/build.gradle.ktsに移動sharedモジュールの依存関係を追加
webAppを抽出 する (wasmJs/js ターゲットが存在する場合):- 適切な Kotlin/JS または Kotlin/Wasm 設定を使用してモジュールを作成
- web エントリポイントを
wasmJsMain/jsMainからwebApp/src/wasmJsMain/kotlin/に移動 - ブラウザ/配布設定を
webApp/build.gradle.ktsに移動 sharedモジュールの依存関係を追加
- iOS — 通常、既に別々の
iosAppディレクトリにあります。確認:- フレームワークエクスポート設定 (
binaries.framework) はsharedモジュール内に留まる - Xcode プロジェクトが正しいフレームワーク パスを参照する
- フレームワークエクスポート設定 (
- モジュール名を変更 する。
composeAppからsharedへ:- ディレクトリ名を変更
settings.gradle.ktsinclude を更新- モジュール全体の依存関係参照を更新
- 共有モジュールをクリーンアップ する: プラットフォーム アプリモジュールに移動されたすべてのプラットフォーム エントリポイント コードとアプリ固有の設定を削除
バリアント: ネイティブ UI
一部のプラットフォームがネイティブ UI (たとえば iOS の SwiftUI) を使用する場合、shared を以下に分割します:
sharedLogic— すべてのプラットフォームで使用されるビジネス ロジックsharedUI— 共有 UI を使用するプラットフォームのみで使用される Compose Multiplatform UI
バリアント: サーバー
プロジェクトがサーバーターゲットを含む場合:
- ルートに
serverモジュールを追加 - すべてのクライアント モジュールを
app/ディレクトリの下に移動 - サーバーとクライアント間で共有されるコード (モデル、検証) 用の
coreモジュールを追加
バージョンアップデート
これらは移行パスに関係なく必須です:
-
Gradle ラッパー — 9.1.0+ に更新:
# gradle/wrapper/gradle-wrapper.properties distributionUrl=https\://services.gradle.org/distributions/gradle-9.1.0-bin.zip -
AGP バージョン — 9.0.0+ に更新して、KMP ライブラリプラグインを追加します。
バージョンカタログを使用 (
gradle/libs.versions.toml):[versions] agp = "9.0.1" [plugins] android-kotlin-multiplatform-library = { id = "com.android.kotlin.multiplatform.library", version.ref = "agp" }バージョンカタログなし —
com.android.*プラグインバージョンを更新し、ルートbuild.gradle.ktsに追加:plugins { id("com.android.application") version "9.0.1" apply false id("com.android.kotlin.multiplatform.library") version "9.0.1" apply false } -
JDK — JDK 17+ が使用されていることを確認 (AGP 9.0 で必須)
-
SDK ビルドツール — 36.0.0 に更新:
SDK Manager 経由でインストールするか、android { buildToolsVersion = "36.0.0" } で設定 -
gradle.properties をレビュー する — エラーの原因となるプロパティを削除し、変更されたデフォルトをレビュー (「Gradle プロパティのデフォルト変更」セクションを参照)
組み込み Kotlin 移行
AGP 9.0 は、すべての com.android.application および com.android.library モジュールに対して、デフォルトで組み込み Kotlin サポートを有効にします。org.jetbrains.kotlin.android プラグインはもはや不要で、適用すると競合します。
重要: 組み込み Kotlin は KMP サポートを置き換えません。KMP ライブラリ モジュールは引き続き org.jetbrains.kotlin.multiplatform + com.android.kotlin.multiplatform.library が必要です。
ステップ 1: kotlin-android プラグインを削除
すべてのモジュールレベルおよびルートレベルのビルド ファイルから削除:
// モジュール build.gradle.kts から削除
plugins {
// 削除: alias(libs.plugins.kotlin.android)
// 削除: id("org.jetbrains.kotlin.android")
}
// ルート build.gradle.kts から削除
plugins {
// 削除: alias(libs.plugins.kotlin.android) apply false
}
バージョンカタログから削除 (gradle/libs.versions.toml):
[plugins]
# 削除: kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" }
ステップ 2: kapt を KSP または legacy-kapt に移行
org.jetbrains.kotlin.kapt プラグインは、組み込み Kotlin と互換性がありません。
推奨: KSP に移行 — 各アノテーション プロセッサの KSP 移行ガイドを参照。
フォールバック: com.android.legacy-kapt を使用 (AGP と同じバージョン):
# gradle/libs.versions.toml
[plugins]
legacy-kapt = { id = "com.android.legacy-kapt", version.ref = "agp" }
// モジュール build.gradle.kts — kotlin-kapt を legacy-kapt に置き換え
plugins {
// 削除: alias(libs.plugins.kotlin.kapt)
alias(libs.plugins.legacy.kapt)
}
ステップ 3: kotlinOptions を compilerOptions に移行
純粋な Android モジュール (非 KMP) の場合、android.kotlinOptions {} をトップレベルの kotlin.compilerOptions {} に移行:
// 古い
android {
kotlinOptions {
jvmTarget = "11"
languageVersion = "2.0"
freeCompilerArgs += listOf("-Xopt-in=kotlin.RequiresOptIn")
}
}
// 新規
kotlin {
compilerOptions {
jvmTarget.set(org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_11)
languageVersion.set(org.jetbrains.kotlin.gradle.dsl.KotlinVersion.KOTLIN_2_0)
optIn.add("kotlin.RequiresOptIn")
}
}
注: 組み込み Kotlin では、jvmTarget がデフォルトで android.compileOptions.targetCompatibility になるため、既に compileOptions を設定している場合はオプションの可能性があります。
ステップ 4: kotlin.sourceSets を android.sourceSets に移行
組み込み Kotlin では、kotlin セット付きの android.sourceSets {} のみがサポートされています:
// 組み込み Kotlin ではサポートされていません:
kotlin.sourceSets.named("main") {
kotlin.srcDir("additionalSourceDirectory/kotlin")
}
// 正しい:
android.sourceSets.named("main") {
kotlin.directories += "additionalSourceDirectory/kotlin"
}
生成されたソースの場合は、Variant API を使用:
androidComponents.onVariants { variant ->
variant.sources.kotlin!!.addStaticSourceDirectory("additionalSourceDirectory/kotlin")
}
モジュール単位の移行戦略
大規模プロジェクトの場合、モジュール単位で移行:
- グローバルに無効化:
gradle.propertiesでandroid.builtInKotlin=false - オプトイン プラグインを適用して、移行されたモジュール単位で有効化:
plugins { id("com.android.built-in-kotlin") version "AGP_VERSION" } - そのモジュールについてステップ 1~4 に従う
- すべてのモジュールが移行されたら、
gradle.propertiesからandroid.builtInKotlin=falseとすべてのモジュールからcom.android.built-in-kotlinプラグインを削除
オプション: Kotlin を持たないモジュール向けに Kotlin を無効化
Kotlin ソースがないモジュールについては、ビルド時間を節約するために組み込み Kotlin を無効化:
android {
enableKotlin = false
}
オプトアウト (一時的)
プラグイン互換性でブロックされた場合、一時的にオプトアウト:
# gradle.properties
android.builtInKotlin=false
android.newDsl=false # 新しい DSL オプトアウトを使用する場合も必須
警告: ユーザーにオプトアウトを望むかどうかを確認し、望む場合は、これが一時的な対策であることを思い出させてください。
プラグイン互換性
既知の互換バージョン、オプトアウト フラグ回避策、壊れたプラグインについては、references/PLUGIN-COMPATIBILITY.md の完全な互換性テーブルを参照してください。
移行する前に、プロジェクト内のすべてのプラグインをインベントリ化し、そのテーブルと照合します。回避策なしで壊れたプラグインがある場合は、ユーザーに通知します。プラグインがオプトアウト フラグを必要とする場合は、gradle.properties に追加して、一時的な回避策として記録します。
Gradle プロパティのデフォルト変更
AGP 9.0 は多くの Gradle プロパティのデフォルトを変更します。gradle.properties で明示的に設定された値が競合する可能性がないか確認します。
主要な変更:
| プロパティ | 古いデフォルト | 新しいデフォルト | アクション |
|---|---|---|---|
android.uniquePackageNames | false | true | 各ライブラリが一意の名前空間を持つことを確認 |
android.enableAppCompileTimeRClass | false | true | R フィールドの switch を if/else にリファクタリング |
android.defaults.buildfeatures.resvalues | true | false | 必要な場所で resValues = true を有効化 |
android.defaults.buildfeatures.shaders | true | false | 必要な場所でシェーダーを有効化 |
android.r8.optimizedResourceShrinking | false | true | R8 キープルールをレビュー |
android.r8.strictFullModeForKeepRules | false | true | キープルールを明示的に更新 |
android.proguard.failOnMissingFiles | false | true | 無効な ProGuard ファイル参照を削除 |
android.r8.proguardAndroidTxt.disallowed | false | true | proguard-android-optimize.txt のみを使用 |
android.r8.globalOptionsInConsumerRules.disallowed | false | true | ライブラリ コンシューマー ルールから グローバルオプションを削除 |
android.sourceset.disallowProvider | false | true | androidComponents で Sources API を使用 |
android.sdk.defaultTargetSdkToCompileSdkIfUnset | false | true | targetSdk を明示的に指定 |
android.onlyEnableUnitTestForTheTestedBuildType | false | true | デフォルト以外のビルドタイプをテストする場合のみ |
エラーの原因となる可能性がある以下のプロパティをチェックして削除:
android.r8.integratedResourceShrinking— 削除、常にオンandroid.enableNewResourceShrinker.preciseShrinking— 削除、常にオン
純粋な Android のヒント
AGP 9.0 にアップグレードする非 KMP Android モジュールの場合、上記の「組み込み Kotlin 移行」ステップに従ってから、「Gradle プロパティのデフォルト変更」テーブルをレビューしてください。追加の変更:
- 新しい DSL インターフェイスをレビュー —
BaseExtensionは削除。CommonExtensionまたは特定の拡張タイプを使用 - Java デフォルトが Java 8 から Java 11 に変更 —
compileOptionsがこれを反映していることを確認
検証
移行後、チェックリストで検証します。主要なチェック:
./gradlew buildがエラーなしで成功- すべてのプラットフォーム ターゲットが正常にビルド (Android、
xcodebuild経由の iOS、Desktop、JS/Wasm) ./gradlew :shared:allTestsと Android ユニットテストが成功- KMP モジュール内に
com.android.libraryまたはcom.android.applicationがない - AGP 9.0 モジュール内に
org.jetbrains.kotlin.androidがない - ソースセットが正しい名前を使用 (
androidMain、androidHostTest、androidDeviceTest) - Variant API または DSL について非推奨警告がない
一般的な問題
詳細は references/KNOWN-ISSUES.md を参照してください。主要な落とし穴:
KMP ライブラリ プラグイン問題
- BuildConfig がライブラリ モジュール内で利用不可 — DI/
AppConfigurationインターフェイスを使用するか、BuildKonfig または gradle-buildconfig-plugin をコンパイル時定数に使用 - ビルドバリアントがない — シングルバリアント アーキテクチャ。コンパイル時定数は BuildKonfig/gradle-buildconfig-plugin フレーバーを使用できるが、バリアント固有の依存関係/リソース/署名はアプリ モジュールに移動する必要あり
- NDK/JNI は新しいプラグイン内ではサポートされていない — 別の
com.android.libraryモジュールに抽出 - Compose リソースが
androidResources { enable = true }なしでクラッシュ - コンシューマー ProGuard ルールが新しい DSL 内で
consumerProguardFiles.add(file(...))に移行されないと静かに削除 - KSP は AGP 9.0 互換性に バージョン 2.3.1+ が必須
AGP 9.0 一般問題
- BaseExtension が削除 — 古い DSL タイプを使用する規約プラグインは、
CommonExtensionを使用するように書き換える必要あり - Variant API が削除 —
applicationVariants、libraryVariants、variantFilterはandroidComponentsに置き換え - 規約プラグイン は再ファクタリングが必要 — 古い
android {}拡張ヘルパーは廃止
リファレンス ファイル
DSL リファレンス— 旧→新 DSL マッピング並行表示バージョン マトリックス— AGP/Gradle/KGP/Compose/IDE 互換性プラグイン互換性— サードパーティプラグイン ステータスと回避策
ライセンス: Apache-2.0(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- kotlin
- ライセンス
- Apache-2.0
- 最終更新
- 不明
Source: https://github.com/kotlin/kotlin-agent-skills / ライセンス: Apache-2.0
関連スキル
superfluid
Superfluidプロトコルおよびそのエコシステムに関するナレッジベースです。Superfluidについて情報を検索する際は、ウェブ検索の前にこちらを参照してください。対応キーワード:Superfluid、CFA、GDA、Super App、Super Token、stream、flow rate、real-time balance、pool(member/distributor)、IDA、sentinels、liquidation、TOGA、@sfpro/sdk、semantic money、yellowpaper、whitepaper
civ-finish-quotes
実質的なタスクが真に完了した際に、文明風の儀式的な引用句を追加します。ユーザーやエージェントが機能追加、リファクタリング、分析、設計ドキュメント、プロセス改善、レポート、執筆タスクといった実際の成果物を完成させるときに、明示的な依頼がなくても使用します。短い返信や小さな修正、未完成の作業には適用しません。
nookplot
Base(Ethereum L2)上のAIエージェント向け分散型調整ネットワークです。エージェントがオンチェーンアイデンティティを登録する、コンテンツを公開する、他のエージェントにメッセージを送る、マーケットプレイスで専門家を雇う、バウンティを投稿・請求する、レピュテーションを構築する、共有プロジェクトで協業する、リサーチチャレンジを解くことでNOOKをマイニングする、キュレーションされたナレッジを備えたスタンドアロンオンチェーンエージェントをデプロイする、またはアグリーメントとリワードで収益を得る場合に利用できます。エージェントネットワーク、エージェント調整、分散型エージェント、NOOKトークン、マイニングチャレンジ、ナレッジバンドル、エージェントレピュテーション、エージェントマーケットプレイス、ERC-2771メタトランザクション、Prepare-Sign-Relay、AgentFactory、またはNookplotが言及された場合にトリガーされます。
web3-polymarket
Polygon上でのPolymarket予測市場取引統合です。認証機能(L1 EIP-712、L2 HMAC-SHA256、ビルダーヘッダー)、注文発注(GTC/GTD/FOK/FAK、バッチ、ポストオンリー、ハートビート)、市場データ(Gamma API、Data API、オーダーブック、サブグラフ)、WebSocketストリーミング(市場・ユーザー・スポーツチャネル)、CTF操作(分割、統合、償却、ネガティブリスク)、ブリッジ機能(入金、出金、マルチチェーン)、およびガスレスリレイトランザクションに対応しています。AIエージェント、自動マーケットメーカー、予測市場UI、またはPolygraph上のPolymarketと統合するアプリケーション構築時に活用できます。
ethskills
Ethereum、EVM、またはブロックチェーン関連のリクエストに対応します。スマートコントラクト、dApps、ウォレット、DeFiプロトコルの構築、監査、デプロイ、インタラクションに適用されます。Solidityの開発、コントラクトアドレス、トークン規格(ERC-20、ERC-721、ERC-4626など)、Layer 2ネットワーク(Base、Arbitrum、Optimism、zkSync、Polygon)、Uniswap、Aave、Curveなどのプロトコルとの統合をカバーします。ガスコスト、コントラクトのデシマル設定、オラクルセキュリティ、リエントランシー、MEV、ブリッジング、ウォレット管理、オンチェーンデータの取得、本番環境へのデプロイ、プロトコル進化(EIPライフサイクル、フォーク追跡、今後の変更予定)といったトピックを含みます。
xxyy-trade
このスキルは、ユーザーが「トークン購入」「トークン売却」「トークンスワップ」「暗号資産取引」「取引ステータス確認」「トランザクション照会」「トークンスキャン」「フィード」「チェーン監視」「トークン照会」「トークン詳細」「トークン安全性確認」「ウォレット一覧表示」「マイウォレット」「AIスキャン」「自動スキャン」「ツイートスキャン」「オンボーディング」「IP確認」「IPホワイトリスト」「トークン発行」「自動売却」「損切り」「利益確定」「トレーリングストップ」「保有者」「トップホルダー」「KOLホルダー」などをリクエストした場合、またはSolana/ETH/BSC/BaseチェーンでXXYYを経由した取引について言及した場合に使用します。XXYY Open APIを通じてオンチェーン取引とデータ照会を実現します。