migration
Skill17k starsChanged 4 days agoApache-2.0View on GitHub
Migrates an app, renderer, catalog or agent that uses A2UI (or a predecessor such as Flutter `genui`) to a newer SDK or protocol version. Use when a task mentions migrating, upgrading, porting or moving A2UI code between SDKs, packages or protocol versions (v0.8, v0.9, v0.9.1, v1.0), when a dependency such as `genui`, `a2ui_core`, `@a2ui/web_core`, `a2ui-core` or an A2UI Swift package needs a major bump, or when payloads or fixtures must change wire version. The skill first identifies the language, the source and the target, then routes to a case-specific guide where one exists.
31 other projects use a version of this.
Adopted by
Steady: 0 new projects took it in the last 4 weeks, none the 4 weeks before.thin data
Most recently taken up by
- sudeepgupta90/my-ai-marketplacetheir own version, first seen Nov 8, 2026
- kortix-ai/sunatheir own version, first seen Nov 8, 2026
- mjlueck-hash/cavemantheir own version, first seen Nov 8, 2026
- dhruvsaxena1998/skillstheir own version, first seen Nov 8, 2026
- MMACABRE/SKILLStheir own version, first seen Nov 8, 2026
- kortix-ai/CompanyOStheir own version, first seen Nov 8, 2026
Who's talking about a2ui-project/a2ui
- クロノITチャンネル“チャットの返事が解説動画で返ってくる仕組みを構築「OpenUI」を試してみた”YouTube · Nov 2, 2026 · 6.5k views
- Rainer Hahnekamp“A2UI: When Agents Shape theUI”YouTube · Nov 10, 2026 · 1.2k views
- iPAS陪跑師 X Stan“EP21-🔥顛覆想像!Google A2UI Express 用「點菜速記」讓 AI 秒出畫面!Token 最多少 3 倍、搭 Jev 延遲最多降 80 倍”YouTube · Nov 1, 2026 · 133 views
- Ken Explains Tech“A2UI vs AG-UI: They're not the same thing”YouTube · Nov 7, 2026 · 51 views
- RepoDrop“a2ui - free open source tool”YouTube · Nov 11, 2026 · 4 views
The biggest 5 of 55 mentions linking to the repository that our crawl found. Each line is their own headline.
See all 55
Talked about on GitHub and YouTube (55 times).
On GitHub · 50
- Oct 15, 2026ci: ignore material.dart deprecation per import — flutter/genui2 reactions · 1 comment
- Oct 15, 2026ci: don't fail beta analysis on infos — flutter/genui2 reactions · 2 comments
- Oct 6, 2026docs: update feedback and design.md links in READMEs — flutter/genui1 reaction
- Sep 25, 2026a2ui ignores v0.9.1 operations, spec template children, and event.userMessage — assistant-ui/assistant-ui1 reaction · 3 comments
- Sep 24, 2026fix(genui): give the catalog's controls a name — flutter/genui1 reaction · 3 comments
45 more on GitHub
- Sep 22, 2026fix(genui): show a literal CheckBox value — flutter/genui1 reaction · 4 comments
- Sep 20, 2026Fix genui pub.dev issue tracker link — flutter/genui1 reaction
- Sep 18, 2026feat(genui): apply a component's accessibility attributes — flutter/genui1 reaction · 8 comments
- Aug 31, 2026Enable sync validation. — flutter/genui1 reaction · 1 comment
- Aug 20, 2026Fix/email validation regex — flutter/genui1 reaction · 1 comment
- Aug 14, 2026Freeze a2ui_core and a2ui_agent in this repo. — flutter/genui1 reaction
- Aug 12, 2026Fix and stabilize TextField. — flutter/genui1 reaction · 1 comment
- Aug 11, 2026Create initial implementation for a2ui_agent. — flutter/genui1 reaction · 5 comments
- Aug 10, 2026Fix chunk newline. — flutter/genui1 reaction
- Jul 7, 2026docs(readme): replace deprecated google_generative_ai and discontinued firebase_vertexai with firebase_ai — flutter/genui1 reaction · 1 comment
- Jun 22, 2026Conformance harness in Swift + contribute renderer-side conformance cases upstream — BBC6BAE9/a2ui-swift1 reaction
- Jun 22, 2026Port to A2UI v1.0 (Release Candidate, formerly v0.10) — BBC6BAE9/a2ui-swift1 reaction
- Nov 6, 2026chore: bump the dev-tooling group with 5 updates — clivedsouza1010/rudra-js0 reactions · 1 comment
- Nov 5, 2026🎨 Generative UI Ecosystem Digest 2026-11-05 — linqinghao/agents-radar0 reactions
- Nov 4, 2026Fix remote schema caching through retrieval aliases — ajevans99/swift-json-schema0 reactions · 1 comment
- Nov 4, 2026🎨 Generative UI Ecosystem Digest 2026-11-04 — linqinghao/agents-radar0 reactions
- Nov 3, 2026🎨 Generative UI Ecosystem Digest 2026-11-03 — linqinghao/agents-radar0 reactions
- Nov 2, 2026🎨 Generative UI Ecosystem Digest 2026-11-02 — linqinghao/agents-radar0 reactions
- Nov 2, 2026🎨 生成式 UI 生态日报 2026-11-02 — linqinghao/agents-radar0 reactions
- Nov 1, 2026🎨 生成式 UI 生态日报 2026-11-01 — linqinghao/agents-radar0 reactions
- Nov 1, 2026🎨 Generative UI Ecosystem Digest 2026-11-01 — linqinghao/agents-radar0 reactions
- Oct 31, 2026🎨 Generative UI Ecosystem Digest 2026-10-31 — linqinghao/agents-radar0 reactions
- Oct 30, 2026feat(adk): stream A2UI Express with the official Python SDK — ag-ui-protocol/ag-ui0 reactions · 2 comments
- Oct 30, 2026🎨 Generative UI Ecosystem Digest 2026-10-30 — linqinghao/agents-radar0 reactions
- Oct 26, 2026docs(server): fix the stale a2ui react renderer link — mcp-use/mcp-use0 reactions · 1 comment
- Oct 26, 2026🎨 Generative UI Ecosystem Digest 2026-10-26 — linqinghao/agents-radar0 reactions
- Oct 25, 2026Link Checker Report — mcp-use/mcp-use0 reactions · 1 comment
- Oct 25, 2026🎨 Generative UI Ecosystem Digest 2026-10-25 — linqinghao/agents-radar0 reactions
- Oct 25, 2026🎨 生成式 UI 生态日报 2026-10-25 — linqinghao/agents-radar0 reactions
- Oct 24, 2026Epic: components usable over A2UI and MCP Apps — priyavijaikalyan2007/b2btheme0 reactions · 1 comment
- Oct 21, 2026[Research / UX] Contextual visual experiment and QA interface for image batches — interzettel/prehnite0 reactions
- Oct 21, 2026[Research / UX] Adaptive editorial desk for source, module and edition decisions — interzettel/kushluk0 reactions
- Oct 21, 2026[Research / UX] Agent-guided print laboratory with adaptive, directly editable controls — yigit-denktas/stipra0 reactions
- Oct 21, 2026Advertise Linux (and Windows) support — denial is inherited from genui video_player, not this catalog — omarfarouk228/genui_catalog0 reactions
- Oct 20, 2026Package table and link to repo. — sjmaple/cr-a2ui0 reactions
- Oct 20, 2026Auto-discovery: 1 verified AI agent repo (2026-10-20) — tayyabimam1/awesome-ai-agent-stack0 reactions · 4 comments
- Oct 19, 2026chore(deps): bump @a2ui/markdown-it from 0.2.0 to 0.2.1 — EOX-A/EOxElements0 reactions · 1 comment
- Oct 18, 2026Link Checker Report — mcp-use/mcp-use0 reactions
- Oct 18, 2026🎨 Generative UI Ecosystem Digest 2026-10-18 — linqinghao/agents-radar0 reactions
- Oct 18, 2026Assess and migrate ADK integration to current A2UI SDK APIs — ag-ui-protocol/ag-ui0 reactions · 1 comment
- Oct 16, 2026Add T27F research skills and validate discovery in Trinity — Trinity-S-AI-DNA/trinity0 reactions
- Oct 16, 2026MVP: benchmark generative-UI competitors and prototype T27F research workspace — Trinity-S-AI-DNA/trinitysays it tested it0 reactions · 1 comment
- Oct 16, 2026EPIC: T27F — Native generative UI and visual application engine — Trinity-S-AI-DNA/trinity0 reactions · 6 comments
- Oct 14, 2026deps: bump @a2ui/react from 0.10.2 to 0.13.0 — mozilor-technologies/RenderYes0 reactions
- Oct 13, 2026chore(deps): bump @a2ui/lit from 0.10.3 to 0.12.0 — EOX-A/EOxElements0 reactions · 3 comments
On YouTube · 5
- Nov 2, 2026チャットの返事が解説動画で返ってくる仕組みを構築「OpenUI」を試してみた — クロノITチャンネル6.5k views · 4 comments
- Nov 10, 2026A2UI: When Agents Shape theUI — Rainer Hahnekamp1.2k views · 3 comments
- Nov 1, 2026EP21-🔥顛覆想像!Google A2UI Express 用「點菜速記」讓 AI 秒出畫面!Token 最多少 3 倍、搭 Jev 延遲最多降 80 倍 — iPAS陪跑師 X Stan133 views
- Nov 7, 2026A2UI vs AG-UI: They're not the same thing — Ken Explains Tech51 views · 1 comment
- Nov 11, 2026a2ui - free open source tool — RepoDrop4 views
Used with
Projects with it also use surgical-patch, lean-build and 10 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
JuliusBrusseeSkillsurgical-patch
Fix bugs and small behavior changes at the narrowest responsible layer. Use when regression proof, preserved surrounding behavior, and task-relevant tests matter.
Also in 8 projects that use this
JuliusBrusseeSkilllean-build
Build feature work with high overbuilding risk. Use for new behavior, product slices, or integrations where repository reuse, strict scope, and an explicit stop condition matter.
Also in 6 projects that use this
Terryc21Skillsafe-refactor
Plan refactoring with blast radius analysis, dependency mapping, and rollback strategy. Triggers: "refactor", "safe refactor", "restructure", "rename type", "extract protocol".
Also in 8 projects that use this
- +9 more from JuliusBrussee
Other versions31 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 31
- JuliusBrussee/caveman★ 118ksame name
- kortix-ai/suna★ 21ksame name
- kortix-ai/CompanyOS★ 21ksame name
- go-vikunja/vikunja★ 6ksame name
- langwatch/langwatch★ 5ksame name
- gocronx-team/gocron★ 808same name
- SparkDevNetwork/Rock★ 701same name
- me2resh/apexyard★ 542same name
- DataWithBaraa/claude-code-data-engineering-skills★ 84same name
- zllovesuki/cloudflare-agent-skills★ 9same name
21 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository18 other files it gives its agents.
- AGENTS.mdAGENTS.md
- swift/AGENTS.mdAGENTS.md
- a2ui-add-eval-datapointSkill
- a2ui-auditSkill
- a2ui-doc-sync-checkSkill
- a2ui-generate-pydantic-modelsSkill
- a2ui-implement-new-sdks-for-client-languageSkill
- a2ui-issue-triageSkill
- a2ui-release-pythonSkill
- a2ui-remediate-problemSkill
- a2ui-test-quality-checkSkill
- coding-principlesSkill
- inspect-aiSkill
- natural-writingSkill
- pr-hygieneSkill
- public-documentationSkill
- update-changelogSkill
- a2uiSkill
The file
We split this skill into the rules it gives an agent
11 rules. 0 are common, 10 are distinctive, and 1 is very specific to this project.
0
Common
Most of the 28 edited versions we read keep these.
10
Distinctive
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 26
Do not start editing before all three are written down.
- Distinctive: line 32
Read the manifests in the repository, not just the file extensions:
- Distinctive: line 67
Ask, or infer from the task, whether the target is a new SDK on the same protocol version, a new protocol version on the same SDK, or both.
- Distinctive: line 83
When a row matches, read the guide in full and follow it.
- Distinctive: line 89
Use this when no case guide exists, and as the outer loop around a case guide:
- Distinctive: line 101
Payloads and prompts: Update fixtures, goldens and prompt text to the target wire version.
- Distinctive: line 104
Behavioral differences: Read the target's behavior notes (a case guide has a section for them) and check each one against the app: error …
- Distinctive: line 107
Verify: Run the analyzer or type checker, unit and widget tests, and one manual round trip against the real agent with a surface that has …
- Distinctive: line 116
When you migrate something this skill has no guide for, add one so the next migration starts from it:
- Very specific: line 119
Create references/<language>_<from>_to_<to>.md next to this file, named like references/dart_genui_to_1_0.md.
- Distinctive: line 124
Add a row to the table in Step 4.
“Common” is measured: kept by at least 6 in 10 of the 28 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
A2UI migration
This skill is a router. It identifies what is being migrated and then sends you to the guide for that case. A case is identified by three facts:
- Language / platform: Dart (Flutter), TypeScript (Lit, Angular, React, web core), Python (agent SDKs, ADK, A2A), Swift, Kotlin.
- Source: the SDK or package the code uses today and its version, and the protocol version it speaks on the wire.
- Target: the SDK the code should use afterwards, and the protocol version it should speak.
Do not start editing before all three are written down. A migration that changes the SDK and the wire version at the same time is two migrations; split it when the agent and the renderer are not released together.
Step 1: identify the language and the source SDK
Read the manifests in the repository, not just the file extensions:
| Manifest | Dependency names to look for |
pubspec.yaml, Bazel BUILD with dart_* | genui, a2ui_core, a2ui_flutter, a2ui_agent, a2ui_cli, genai_primitives |
package.json | @a2ui/web_core, @a2ui/lit, @a2ui/angular, @a2ui/react, @a2ui/markdown-it, @a2ui/agent, @a2ui/catalog-* |
pyproject.toml, requirements*.txt, uv.lock | a2ui-core, a2ui-agent-sdk, a2ui-a2a, a2ui-adk, a2ui-catalog-* |
Package.swift | A2UISwiftCore, A2UISwiftUI, BasicCatalog, BasicCatalogSwiftUI (products of this repository's Package.swift) |
build.gradle* | the legacy Kotlin agent SDK under kotlin/agent_sdk_legacy/ |
Record the exact version constraint, and read that package's CHANGELOG.md
in this repository for the release line the code is on.
Step 2: identify the wire protocol version
The SDK version does not always tell the protocol version; read the payloads the code sends or expects (fixtures, goldens, prompts, transport code):
| Evidence in payloads | Protocol |
beginRendering, surfaceUpdate, dataModelUpdate messages | v0.8 |
"version": "v0.9" with createSurface, updateComponents, updateDataModel, deleteSurface; bindings as {"path": ...} and calls as {"call": ...} | v0.9 |
"version": "v0.9.1" | v0.9.1 |
"version": "1.0"; bindings as {"@path": ...}, calls as {"@call": ...}; per-component catalogId; callRendererFunction / callAgentFunction | v1.0 |
Other signs: catalog ids (.../specification/v0_9/catalogs/basic/catalog.json
is v0.9, .../specification/v1_0/catalogs/basic/catalog.json is v1.0; the
v1.0 catalog files live under catalogs/<name>/v1/, but their ids keep the
specification/v1_0 path), the metadata keys for capabilities
(a2uiClientCapabilities is v0.9, a2uiRendererCapabilities is v1.0), and
the names of the schema directories a project validates against
(specification/v0_9/json versus specification/v1_0/json).
Step 3: fix the target
Ask, or infer from the task, whether the target is a new SDK on the same protocol version, a new protocol version on the same SDK, or both. When the task does not say, prefer the smallest step: the current SDK's latest release on the protocol version the agent already speaks. Record the target the same way as the source.
Step 4: route to a case guide
| Language | From | To | Guide |
| Dart | package:genui 0.10.x (A2UI v0.9) | a2ui_core + a2ui_flutter (+ a2ui_agent), v0.9 or v1.0 | references/dart_genui_to_1_0.md |
| any | protocol v0.8 | protocol v0.9 | specification/v0_9/docs/evolution_guide.md; Python payload converter samples/agent/adk/migrate_v08_to_v09.py; Lit renderer example in typescript/renderers/lit/README.md |
| any | protocol v0.9 | protocol v0.9.1 | specification/v0_9_1/docs/evolution_guide.md |
| any | protocol v0.9 / v0.9.1 | protocol v1.0 | specification/v1_0/docs/evolution_guide.md, then the SDK's CHANGELOG.md |
| any | an A2UI SDK release | a later release of the same SDK | that package's CHANGELOG.md (Breaking: entries first), then the generic procedure below |
When a row matches, read the guide in full and follow it. When no row matches, follow the generic procedure and then add a case (see the end of this file).
Generic procedure
Use this when no case guide exists, and as the outer loop around a case guide:
- Inventory. List every file that imports or depends on the source SDK, every fixture or golden that holds payloads, and every prompt that describes the wire format to a model. Group them by the layer they touch: transport, renderer wiring, catalogs and components, functions, tests.
- Dependencies first. Change the manifest, then make the project resolve dependencies. Do not edit source until the new packages are installed.
- One layer at a time. Migrate transport, then renderer wiring, then catalogs and components, then functions, then tests. Compile after each layer; a layer that does not compile hides errors in the next one.
- Payloads and prompts. Update fixtures, goldens and prompt text to the target wire version. Do not blanket-replace keys; the evolution guides list which positions change.
- Behavioral differences. Read the target's behavior notes (a case guide has a section for them) and check each one against the app: error handling, validation strictness, unknown ids, ordering, markdown, theming.
- Verify. Run the analyzer or type checker, unit and widget tests, and one manual round trip against the real agent with a surface that has an input and an action.
- Record. Note in the change description which case was applied, which behavioral differences needed app changes, and anything the guide did not cover.
Adding a case
When you migrate something this skill has no guide for, add one so the next migration starts from it:
- Create
references/<language>_<from>_to_<to>.mdnext to this file, named likereferences/dart_genui_to_1_0.md. - Give it the same sections as the existing guide: scope and version assumptions, dependencies, a step per layer with before/after code, checklist, API mapping, recipes, and behavior changes.
- Add a row to the table in Step 4.
- Follow
natural-writingandpr-hygienefor the text and the pull request.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

