{"_id":"@a2k-team/a2k-helper","_rev":"7-88453ca1d69f2eecc0f2b7c6550835f7","name":"@a2k-team/a2k-helper","dist-tags":{"latest":"0.1.6"},"versions":{"0.1.0":{"name":"@a2k-team/a2k-helper","version":"0.1.0","keywords":["a2k","android","kotlin-multiplatform","kmp","skill","claude-code","opencode","codex","cursor"],"license":"MIT","_id":"@a2k-team/a2k-helper@0.1.0","maintainers":[{"name":"a2k-team","email":"634386352@qq.com"}],"bin":{"a2k-helper":"dist/cli/index.js"},"dist":{"shasum":"9dd7af7bcb25593fa644f325af69b89211c5e366","tarball":"https://registry.npmjs.org/@a2k-team/a2k-helper/-/a2k-helper-0.1.0.tgz","fileCount":63,"integrity":"sha512-JG6UH0ospU+lwitxK/vAKQOZE6NqwageXETg1VAxUnsNSZiQ1HiWor8HFrjqdrlc+UDtB6dj95yWKVQjtoDyAw==","signatures":[{"sig":"MEUCIF0pHm+IzEqL2STt/u1R3MRwHaNNj69vkoPk2Q4SU8E+AiEA5SH0YrABFTa9vMVfT/L9DoLozKUkWyPZALsc2ulsu38=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":241348},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"0689310a7f69a0818dae233afa3259871dbd7d55","scripts":{"dev":"tsx src/cli/index.ts","build":"node scripts/build.js","prepack":"node scripts/build.js","prepare":"node scripts/build.js"},"_npmUser":{"name":"a2k-team","email":"634386352@qq.com"},"_npmVersion":"10.9.2","description":"A2K Migration skill installer for Claude Code, OpenCode, Codex, Cursor, and compatible AI coding tools.","directories":{},"_nodeVersion":"23.11.0","dependencies":{"chalk":"^5.6.2","figlet":"^1.11.0","fs-extra":"11.3.0","inquirer":"^14.0.0","commander":"^14.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","typescript":"^5.4.5","@types/node":"^22.0.0","@types/figlet":"^1.7.0","@types/fs-extra":"^9.0.13","@types/inquirer":"^9.0.9"},"_npmOperationalInternal":{"tmp":"tmp/a2k-helper_0.1.0_1779875394447_0.25670030142721134","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@a2k-team/a2k-helper","version":"0.1.1","keywords":["a2k","android","kotlin-multiplatform","kmp","skill","claude-code","opencode","codex","cursor"],"license":"MIT","_id":"@a2k-team/a2k-helper@0.1.1","maintainers":[{"name":"a2k-team","email":"634386352@qq.com"}],"bin":{"a2k-helper":"dist/cli/index.js"},"dist":{"shasum":"0149e98d1814ac131b862b687146a0ff85359de9","tarball":"https://registry.npmjs.org/@a2k-team/a2k-helper/-/a2k-helper-0.1.1.tgz","fileCount":63,"integrity":"sha512-fPoI9sAUETXQLsUQTqeCX3PriqRDuPMk84zN/za1mi4AjjOWpzviwJLb1quhKy7g3NQ5hcUhMUURSMtpVZAlIA==","signatures":[{"sig":"MEQCIC42Wheb8I8fWG542ZXvaMznCErPBiDg6ihxoKtvxI4aAiADd2C79jaRlHaSgMoTrmTmHe4ot3s0DwGzFN+ycFg9fQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":241339},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"fbb2d0e519cf67ba4bd5c16484b2839ead20a0df","scripts":{"dev":"tsx src/cli/index.ts","build":"node scripts/build.js","prepack":"node scripts/build.js","prepare":"node scripts/build.js"},"_npmUser":{"name":"a2k-team","email":"634386352@qq.com"},"_npmVersion":"10.9.2","description":"A2K Migration skill installer for Claude Code, OpenCode, Codex, Cursor, and compatible AI coding tools.","directories":{},"_nodeVersion":"23.11.0","dependencies":{"chalk":"^5.6.2","figlet":"^1.11.0","fs-extra":"11.3.0","inquirer":"^9.3.7","commander":"^12.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","typescript":"^5.4.5","@types/node":"^22.0.0","@types/figlet":"^1.7.0","@types/fs-extra":"^9.0.13","@types/inquirer":"^9.0.9"},"_npmOperationalInternal":{"tmp":"tmp/a2k-helper_0.1.1_1779879474166_0.9796997998771588","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@a2k-team/a2k-helper","version":"0.1.2","keywords":["a2k","android","kotlin-multiplatform","kmp","skill","claude-code","opencode","codex","cursor"],"license":"MIT","_id":"@a2k-team/a2k-helper@0.1.2","maintainers":[{"name":"a2k-team","email":"634386352@qq.com"}],"bin":{"a2k-helper":"dist/cli/index.js"},"dist":{"shasum":"01a8a71c4f8fddc4f5b824ff935ccf72e939f21e","tarball":"https://registry.npmjs.org/@a2k-team/a2k-helper/-/a2k-helper-0.1.2.tgz","fileCount":68,"integrity":"sha512-mtYIgfzHOG3TZ3ciG92WTkgBfATx+l31lpELQ1oazVzLA29SiBaxP9kH7uBO0SSmdIGmIgLHdAlWgyEbpwXuOQ==","signatures":[{"sig":"MEQCIHy5WbAbDhGMjLLDLawrbLuNVrVUgSyQQzBd7oB0y/onAiAs/hYeV7oQsjwPBwnKgCcBMD8gIUwe85QsRzjMPchQkA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":304927},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"0a0cd4cfa4a2314f27b7956fd07bf669deb15da7","scripts":{"dev":"tsx src/cli/index.ts","build":"node scripts/build.js","prepack":"node scripts/build.js","prepare":"node scripts/build.js"},"_npmUser":{"name":"a2k-team","email":"634386352@qq.com"},"_npmVersion":"10.9.2","description":"A2K Migration skill installer for Claude Code, OpenCode, Codex, Cursor, and compatible AI coding tools.","directories":{},"_nodeVersion":"23.11.0","dependencies":{"chalk":"^5.6.2","figlet":"^1.11.0","fs-extra":"11.3.0","inquirer":"^9.3.7","commander":"^12.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","typescript":"^5.4.5","@types/node":"^22.0.0","@types/figlet":"^1.7.0","@types/fs-extra":"^9.0.13","@types/inquirer":"^9.0.9"},"_npmOperationalInternal":{"tmp":"tmp/a2k-helper_0.1.2_1780123978384_0.6731405874171621","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@a2k-team/a2k-helper","version":"0.1.3","keywords":["a2k","android","kotlin-multiplatform","kmp","skill","claude-code","opencode","codex","cursor"],"license":"MIT","_id":"@a2k-team/a2k-helper@0.1.3","maintainers":[{"name":"a2k-team","email":"634386352@qq.com"}],"bin":{"a2k-helper":"dist/cli/index.js"},"dist":{"shasum":"b8029aca3465237fd1463969f4e6b7496b14d599","tarball":"https://registry.npmjs.org/@a2k-team/a2k-helper/-/a2k-helper-0.1.3.tgz","fileCount":68,"integrity":"sha512-8mCGEgNEUvj8mT3oHcoM7N5OMuMh6kYVILshwXAU+gem5P/W7b+gFuWflYuRutmshVNL3uDD+fEMnjIIpl+K2w==","signatures":[{"sig":"MEUCIQCEsWzfZIHqTgqlWl8jM1/5Kp7BzoPAemA6R9+YBB9mggIgPPqM5C/Sj6M+MZxrH2IQomsbugMJtbmDQYJVGq5K4UQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":287771},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"17a66e1d76f5a55ca181f18fb7682133d16eee6c","scripts":{"dev":"tsx src/cli/index.ts","build":"node scripts/build.js","prepack":"node scripts/build.js","prepare":"node scripts/build.js"},"_npmUser":{"name":"a2k-team","email":"634386352@qq.com"},"_npmVersion":"10.9.2","description":"A2K Migration skill installer for Claude Code, OpenCode, Codex, Cursor, and compatible AI coding tools.","directories":{},"_nodeVersion":"23.11.0","dependencies":{"chalk":"^5.6.2","figlet":"^1.11.0","fs-extra":"11.3.0","inquirer":"^9.3.7","commander":"^12.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","typescript":"^5.4.5","@types/node":"^22.0.0","@types/figlet":"^1.7.0","@types/fs-extra":"^9.0.13","@types/inquirer":"^9.0.9"},"_npmOperationalInternal":{"tmp":"tmp/a2k-helper_0.1.3_1780132432536_0.9406042680428304","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@a2k-team/a2k-helper","version":"0.1.4","keywords":["a2k","android","kotlin-multiplatform","kmp","skill","claude-code","opencode","codex","cursor"],"license":"MIT","_id":"@a2k-team/a2k-helper@0.1.4","maintainers":[{"name":"a2k-team","email":"634386352@qq.com"}],"bin":{"a2k-helper":"dist/cli/index.js"},"dist":{"shasum":"f032debc5adbc6ff0a05dafbbc466e546fd99a67","tarball":"https://registry.npmjs.org/@a2k-team/a2k-helper/-/a2k-helper-0.1.4.tgz","fileCount":69,"integrity":"sha512-UAaSZa+Nx5Gsy32uRY0xM+sv4x6ri/AVoOarjmZDviUf5PcOAkepP8J7Oce/JICBmoQfOtzHxSs0dCCkywkUYA==","signatures":[{"sig":"MEYCIQCa+Yi9Gd/leDUudnmwarV3U3gxLbVXkV7WZrc9glx/AgIhAJktVXldOEgdNxwUfJOyktKWYgy/5HjK879pKsjI0bEk","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":304095},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"87a000463bf6b60368f7f874eb1506d98d42947c","scripts":{"dev":"tsx src/cli/index.ts","build":"node scripts/build.js","prepack":"node scripts/build.js","prepare":"node scripts/build.js"},"_npmUser":{"name":"a2k-team","email":"634386352@qq.com"},"_npmVersion":"10.9.2","description":"A2K Migration skill installer for Claude Code, OpenCode, Codex, Cursor, and compatible AI coding tools.","directories":{},"_nodeVersion":"23.11.0","dependencies":{"chalk":"^5.6.2","figlet":"^1.11.0","fs-extra":"11.3.0","inquirer":"^9.3.7","commander":"^12.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","typescript":"^5.4.5","@types/node":"^22.0.0","@types/figlet":"^1.7.0","@types/fs-extra":"^9.0.13","@types/inquirer":"^9.0.9"},"_npmOperationalInternal":{"tmp":"tmp/a2k-helper_0.1.4_1780304037458_0.5309474408883659","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@a2k-team/a2k-helper","version":"0.1.5","keywords":["a2k","android","kotlin-multiplatform","kmp","skill","claude-code","opencode","codex","cursor"],"license":"MIT","_id":"@a2k-team/a2k-helper@0.1.5","maintainers":[{"name":"a2k-team","email":"634386352@qq.com"}],"bin":{"a2k-helper":"dist/cli/index.js"},"dist":{"shasum":"1c7d1ed58ce1929d5c04ff43434acdcc2109914c","tarball":"https://registry.npmjs.org/@a2k-team/a2k-helper/-/a2k-helper-0.1.5.tgz","fileCount":69,"integrity":"sha512-C7sNv2x5PGllYA84XfrTIER1CT9WtPJk6b4V6TjTuhir6mh/OXXDGVYbOJ7XHv2exWXChCARGFx8pp+UZdrwiw==","signatures":[{"sig":"MEUCIQDaiTT49s96mxZ8MDR77GWjGqV5sJ1BERstmIUzi90/rgIgBFV5ZHzWWQP5TeL8MUMHElZMQQCAv4RVQVRgTg7y+Ys=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":304093},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"86a7c4727ff5bd355a6747338519c8d892138e01","scripts":{"dev":"tsx src/cli/index.ts","build":"node scripts/build.js","prepack":"node scripts/build.js","prepare":"node scripts/build.js"},"_npmUser":{"name":"a2k-team","email":"634386352@qq.com"},"_npmVersion":"10.9.2","description":"A2K Migration skill installer for Claude Code, OpenCode, Codex, Cursor, and compatible AI coding tools.","directories":{},"_nodeVersion":"23.11.0","dependencies":{"chalk":"^5.6.2","figlet":"1.8.2","fs-extra":"11.3.0","inquirer":"^9.3.7","commander":"^12.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","typescript":"^5.4.5","@types/node":"^22.0.0","@types/figlet":"^1.7.0","@types/fs-extra":"^9.0.13","@types/inquirer":"^9.0.9"},"_npmOperationalInternal":{"tmp":"tmp/a2k-helper_0.1.5_1780306015094_0.07853286474774435","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"@a2k-team/a2k-helper","version":"0.1.6","description":"A2K Migration skill installer for Claude Code, OpenCode, Codex, Cursor, and compatible AI coding tools.","license":"MIT","type":"module","bin":{"a2k-helper":"dist/cli/index.js"},"scripts":{"build":"node scripts/build.js","dev":"tsx src/cli/index.ts","prepare":"node scripts/build.js","prepack":"node scripts/build.js"},"dependencies":{"chalk":"^5.6.2","commander":"^12.1.0","figlet":"1.8.2","fs-extra":"11.3.0","inquirer":"^9.3.7"},"devDependencies":{"@types/figlet":"^1.7.0","@types/fs-extra":"^9.0.13","@types/inquirer":"^9.0.9","@types/node":"^22.0.0","tsx":"^4.0.0","typescript":"^5.4.5"},"publishConfig":{"access":"public"},"engines":{"node":">=18.0.0"},"keywords":["a2k","android","kotlin-multiplatform","kmp","skill","claude-code","opencode","codex","cursor"],"_id":"@a2k-team/a2k-helper@0.1.6","gitHead":"6080594f5c94a1e3f2e71007a9d425d237654e3c","_nodeVersion":"23.11.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-nYs8NFhS9+vAvYJ2qvmcrbEg0GeT17xMjk4B4VxGvV7wZkHAUtXVsX7Nnm8LdsbJyHKK15LQAGkQeY45PT5FkQ==","shasum":"71856914df6ce5696bfbe7f5915a5d5d8954928b","tarball":"https://registry.npmjs.org/@a2k-team/a2k-helper/-/a2k-helper-0.1.6.tgz","fileCount":78,"unpackedSize":439537,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIArnuieiMPh9pmVmxHOeWwPSWtPZj2w47tCRSFUUBVJKAiEA8tpmfXkPY+Dodu7Seo2wHyWowz7VDtdhBwAwaGZN25c="}]},"_npmUser":{"name":"a2k-team","email":"634386352@qq.com"},"directories":{},"maintainers":[{"name":"a2k-team","email":"634386352@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/a2k-helper_0.1.6_1781679211617_0.07351025225846497"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-27T09:49:54.279Z","modified":"2026-06-17T06:53:31.878Z","0.1.0":"2026-05-27T09:49:54.598Z","0.1.1":"2026-05-27T10:57:54.325Z","0.1.2":"2026-05-30T06:52:58.516Z","0.1.3":"2026-05-30T09:13:52.676Z","0.1.4":"2026-06-01T08:53:57.595Z","0.1.5":"2026-06-01T09:26:55.233Z","0.1.6":"2026-06-17T06:53:31.768Z"},"license":"MIT","keywords":["a2k","android","kotlin-multiplatform","kmp","skill","claude-code","opencode","codex","cursor"],"description":"A2K Migration skill installer for Claude Code, OpenCode, Codex, Cursor, and compatible AI coding tools.","maintainers":[{"name":"a2k-team","email":"634386352@qq.com"}],"readme":"# A2K Helper\n\n> Android-to-Kotlin Multiplatform 迁移技能安装器 — 一键将 A2K 迁移技能配置到 OpenClaw、Claude Code、OpenCode、Codex、Cursor 等 AI 编码工具中。\n\n[![npm version](https://img.shields.io/npm/v/@a2k-team/a2k-helper.svg)](https://www.npmjs.com/package/@a2k-team/a2k-helper)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![Node.js >= 18](https://img.shields.io/badge/node-%3E%3D18-green.svg)](https://nodejs.org/)\n\n## 简介\n\nA2K Helper 是一个命令行工具，用于将 Android → Kotlin Multiplatform (KMP) 迁移相关的 AI 技能（Skills）安装到各种 AI 编码工具中。这些技能由专业团队角色组成，能够：\n\n- **分析 Legacy Android 项目** — 全面理解代码架构、UI、依赖、数据流等\n- **执行 Android → KMP 迁移** — 系统化迁移流水线，包含质量门禁和修复循环\n- **验证迁移结果** — 保真度审计、构建验证、测试执行\n\n## 安装\n\n### 全局安装（推荐）\n\n```bash\nnpm install -g @a2k-team/a2k-helper\na2k-helper\n```\n\n### 本地开发调试\n\n```bash\ncd a2k-migration\nnpm install\nnpm run build\nnpx a2k-helper\n```\n\n### Windows PowerShell\n\n```powershell\nnpm install\nnpm run build\nnpx a2k-helper\n```\n\n## 命令\n\n| 命令 | 说明 |\n| --- | --- |\n| `a2k-helper` | 打开交互式主菜单，选择安装配置、执行迁移或卸载配置 |\n| `a2k-helper init` | 与主菜单相同的交互式安装流程 |\n| `a2k-helper init --yes` | 跳过交互，自动安装到所有已检测到的工具 |\n| `a2k-helper config` | 查看配置文件路径和内容 |\n| `a2k-helper uninstall` | 进入卸载配置流程 |\n\n## 工作原理\n\n运行 `a2k-helper` 后，工具会：\n\n1. **检测** 本机是否存在支持的 AI 编码工具\n2. **选择** 让用户选择要配置的工具\n3. **安装** 将内置的 `skills/` 目录复制到目标工具的 skills 目录\n4. **卸载** 时只删除与 A2K 内置 skill 同名的目录，不影响用户其它 skills\n\n安装是**幂等的**：重复运行只会覆盖同名 A2K skill 目录。\n\n## 支持的 AI 工具\n\n| 工具 | 检测方式 | Skills 目录 |\n| --- | --- | --- |\n| OpenClaw | `~/.openclaw` 或 `openclaw` CLI | `~/.openclaw/skills` |\n| Claude Code | `~/.claude` 或 `claude` CLI | `~/.claude/skills` |\n| OpenCode | `~/.config/opencode` 或 `opencode` CLI | `~/.config/opencode/skills` |\n| Codex | `~/.codex` 或 `codex` CLI | `~/.codex/skills` |\n| Cursor | `~/.cursor` 或 `cursor` CLI | `~/.cursor/skills` |\n| Gemini | `~/.gemini` 或 `gemini` CLI | `~/.gemini/skills` |\n| JiuwenSwarm | `~/.jiuwenswarm` 或 `jiuwenswarm-acp` / `jiuwenclaw-cli` CLI | `~/.jiuwenswarm/agent/workspace/skills` |\n\n### 自定义配置路径\n\n如果某个工具使用了自定义目录，可以编辑配置文件：\n\n```bash\n~/.a2k-helper/config.json\n```\n\n然后重新运行：\n\n```bash\na2k-helper\n```\n\n## 内置 Skills\n\n### 1. android-project-analyst-team\n\n**用途**: 分析 Legacy Android 项目，用于理解、迁移规划或架构评估\n\n**角色**: 7 角色并行+顺序分析团队\n- `ui-analyst` — 屏幕清单、UI 技术映射、导航架构\n- `architecture-analyst` — 架构模式检测、模块分层、依赖边界\n- `ecosystem-analyst` — Gradle 配置、SDK 版本、依赖、DI、持久化\n- `api-analyst` — 网络 API、数据源、服务契约、认证机制\n- `resource-analyst` — 资源分析、使用位置、迁移影响\n- `dataflow-analyst` — 数据流追踪、仓库、响应式流、状态传播\n- `logic-analyst` — 业务逻辑、控制流、状态管理、生命周期行为\n\n**产出**: 完整的 SPEC 包（prd.md, design.md, verification.md, plan.md）\n\n### 2. android-to-kmp-migrator-team\n\n**用途**: 将 Legacy Android 项目迁移到 Kotlin Multiplatform\n\n**角色**: 10 角色迁移流水线\n- `workspace-state-manager` — 维护迁移工作区状态\n- `spec-reviewer` — SPEC 差异复核\n- `target-analyst` — 目标 KMP 项目分析\n- `migration-aligner` — 迁移映射对齐\n- `dependency-resolver` — 依赖解析\n- `preparation-coordinator` — 准备工作协调（主题、资源、导航、平台 API、状态模型）\n- `ui-implementer` — UI 实现\n- `logic-implementer` — 逻辑实现\n- `review-fixer` — 审查修复循环\n- `validation-gate` — 验证门禁\n- `completion-checker` — 完成度检查\n- `report-generator` — 迁移报告生成\n\n**特点**: 包含质量门禁和最多 3 轮 review/fix 循环\n\n### 3. kmp-test-validator-team\n\n**用途**: Android → KMP 迁移完成后的验证\n\n**角色**: 9 角色验证流水线\n- `workspace-state-keeper` — 工作流状态维护\n- `input-contract-validator` — 输入契约验证\n- `fidelity-auditor` — 保真度审计（UI/逻辑/数据流/控制流）\n- `validation-planner` — 验证规划\n- `build-gate-keeper` — 构建门禁\n- `test-decomposer` — 测试用例分解\n- `test-executor` — 测试执行\n- `remediator` — 修复处理\n- `report-synthesizer` — 验证报告汇总\n\n**触发条件**: 迁移报告指示 `ready_for_validation` 时使用\n\n## 项目结构\n\n```\na2k-migration/\n├── src/\n│   └── cli/\n│       ├── index.ts          # CLI 入口，命令定义\n│       ├── main.ts           # 主菜单交互\n│       ├── install.ts        # 安装逻辑\n│       ├── uninstall.ts      # 卸载逻辑\n│       ├── config.ts         # 配置查看\n│       └── config-store.ts   # 配置存储和管理\n├── scripts/\n│   └── build.js              # 构建脚本\n├── docs/\n│   ├── jiuwenswarm-migration-guide.md  # JiuwenSwarm 迁移指南\n│   └── opencode-migration-guide.md     # OpenCode 迁移指南\n├── skills/\n│   ├── kmp-migration-orchestrator/     # Android → KMP 整体编排skill\n│   ├── android-project-analyst-team/   # Android 项目分析技能\n│   ├── android-to-kmp-migrator-team/   # Android → KMP 迁移技能\n│   └── kmp-test-validator-team/        # KMP 验证技能\n├── img                       # 示例图片\n├── package.json\n├── tsconfig.json\n└── README.md\n```\n\n## 编码工具实际使用案例\n\n安装完成后，JiuwenSwarm、OpenCode、Claude Code、Codex、Cursor、Gemini 等编码 Agent 可直接识别并调用上述 Skill。\n\n用户可以先阅读下面两个端到端指南，它们会从工具安装、API Key 配置、A2K skills 安装开始，一步步发起 Android → KMP 迁移：\n\n- [使用 JiuwenSwarm 执行 Android → KMP 迁移](docs/jiuwenswarm-migration-guide.md)\n- [使用 OpenCode 执行 Android → KMP 迁移](docs/opencode-migration-guide.md)\n\n## 生成效果\n\n下面展示同一组页面在原生 Android、迁移后鸿蒙和迁移后 Android 中的效果对比。示例选择 [NewPipe](https://github.com/TeamNewPipe/NewPipe) 应用进行迁移，使用 OpenCode + Qwen3.7 Max 执行。\n\n| 页面 | Android 原工程 | 迁移后鸿蒙效果 | 迁移后 Android 效果 |\n| --- | --- | --- | --- |\n| 截图 1 | <img src=\"img/native-android-1.png\" alt=\"Android 原工程截图 1\" width=\"220\"> | <img src=\"img/migrated-ohos-1.jpg\" alt=\"迁移后鸿蒙截图 1\" width=\"220\"> | <img src=\"img/migrated-android-1.jpg\" alt=\"迁移后 Android 截图 1\" width=\"220\"> |\n| 截图 2 | <img src=\"img/native-android-2.png\" alt=\"Android 原工程截图 2\" width=\"220\"> | <img src=\"img/migrated-ohos-2.jpg\" alt=\"迁移后鸿蒙截图 2\" width=\"220\"> | <img src=\"img/migrated-android-2.jpg\" alt=\"迁移后 Android 截图 2\" width=\"220\"> |\n| 截图 3 | <img src=\"img/native-android-3.png\" alt=\"Android 原工程截图 3\" width=\"220\"> | <img src=\"img/migrated-ohos-3.jpg\" alt=\"迁移后鸿蒙截图 3\" width=\"220\"> | <img src=\"img/migrated-android-3.jpg\" alt=\"迁移后 Android 截图 3\" width=\"220\"> |\n\n## 参考链接\n\n- [OpenCode 官方文档](https://opencode.ai/docs/)\n- [OpenCode 配置文档](https://opencode.ai/docs/config)\n- [JiuwenSwarm 官方页面](https://openjiuwen.com/jiuwenswarm)\n","readmeFilename":"README.md"}