[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-flutter-flutter-frontend-for-adk":3,"mdc-lxzh8e-key":35,"related-repo-flutter-flutter-frontend-for-adk":807,"related-org-flutter-flutter-frontend-for-adk":817},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":24,"repoUrl":25,"updatedAt":26,"license":27,"forks":28,"topics":29,"repo":30,"sourceUrl":33,"mdContent":34},"flutter-frontend-for-adk","build Flutter frontends for Python agents","Orchestrates the discovery, mapping, design, and implementation of a premium Flutter-based frontend for an Agent Development Kit (ADK) agent written with Python.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},"flutter","Flutter (Google)","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fflutter.png",[12,15,18,21],{"name":13,"slug":8,"type":14},"Flutter","tag",{"name":16,"slug":17,"type":14},"Mobile","mobile",{"name":19,"slug":20,"type":14},"Python","python",{"name":22,"slug":23,"type":14},"Frontend","frontend",133,"https:\u002F\u002Fgithub.com\u002Fflutter\u002Fdemos","2026-06-27T06:51:13.836068",null,100,[],{"repoUrl":25,"stars":24,"forks":28,"topics":31,"description":32},[],"This repo is for unmaintained code that supports talks, blogs, and other experiments.","https:\u002F\u002Fgithub.com\u002Fflutter\u002Fdemos\u002Ftree\u002FHEAD\u002Fflutter-frontend-for-adk","---\nname: flutter-frontend-for-adk\ndescription: >\n  Orchestrates the discovery, mapping, design, and implementation of a premium\n  Flutter-based frontend for an Agent Development Kit (ADK) agent written with Python.\nmetadata:\n  author: Antigravity\n  version: 1.0.0\n  requires:\n    bins:\n      - flutter\n      - dart\n---\n\n# Building a Flutter Frontend for an ADK Agent\n\nThis skill orchestrates the end-to-end workflow of designing, specifying, and implementing a premium Flutter-based frontend for any Agent Development Kit (ADK) agent.\n\n## Prerequisites & External References\n\nBefore starting, the developer or coding agent should locate ADK framework-level specifications using the following resources instead of restating them in this skill:\n1.  **Activate ADK Code Skill:** Ensure that `\u002Fgoogle-agents-cli-adk-code` is active in the current session. Refer to its reference file `adk-python.md` to understand the core `Event`, `EventActions`, and state management models.\n2.  **Fetch Official Docs:** Retrieve the official documentation index by calling `curl https:\u002F\u002Fadk.dev\u002Fllms.txt` and search for pages related to client serving, networking, or the Python API server.\n3.  **Inspect Local Code:** To see exact Pydantic definitions and FastAPI endpoint details directly:\n    *   Open and inspect the local server definition inside your python environment at `.venv\u002Flib\u002Fpython*\u002Fsite-packages\u002Fgoogle\u002Fadk\u002Fcli\u002Fadk_web_server.py`.\n    *   Open and inspect the event schemas at `.venv\u002Flib\u002Fpython*\u002Fsite-packages\u002Fgoogle\u002Fadk\u002Fevents\u002Fevent.py` and `event_actions.py`.\n\nFollow the phases below sequentially. **Do not skip ahead.** You must complete and record the findings of each phase before beginning the next. When creating an implementation plan, add a blocking task for the \"Review\" step in each phase that has one and wait for the user to perform a review before beginning the next phase.\n\n---\n\n## Phase 1: Workspace & Agent Discovery\nIdentify the core purpose of the agent in this repository, understand its sub-agent hierarchy, map its API endpoints, event streams, and human-in-the-loop triggers, and record this information.\n*   **Action:** Read [references\u002Fagent_discovery.md](references\u002Fagent_discovery.md) for step-by-step discovery instructions.\n*   **Deliverable:** Create the [AGENT_INTERFACE_NOTES.md](AGENT_INTERFACE_NOTES.md) file in the root of the project.\n*   **Review:** Summarize (in a paragraph or two) what you just learned for the user. Invite them to inspect `AGENT_DISCOVERY_NOTES.md`, and do not proceed to Phase 2 until they indicate that you should do so.\n\n---\n\n## Phase 2: Frontend Usage & Behavior\nDefine the high-level behavioral and functional requirements of the frontend: target platforms, screen specifications, feature details, and user experience flows.\n*   **Action:** Read [references\u002Ffrontend_usage.md](references\u002Ffrontend_usage.md) for instructions on defining app behavior.\n*   **Deliverable:** Create the [FRONTEND_USAGE_NOTES.md](FRONTEND_USAGE_NOTES.md) file in the root of the project.\n*   **Review:** Summarize (in a paragraph or two) what you just learned for the user. Invite them to inspect `FRONTEND_USAGE_NOTES.md`, and do not proceed to Phase 3 until they indicate that you should do so.\n\n---\n\n## Phase 3: Frontend Architecture\nDefine the structural patterns of the application, including core folder directory layouts, manual model serializations, and state management setups.\n*   **Action:** Read [references\u002Ffrontend_architecture.md](references\u002Ffrontend_architecture.md) for instructions on defining app architecture.\n*   **Deliverable:** Create the [FRONTEND_ARCHITECTURE_NOTES.md](FRONTEND_ARCHITECTURE_NOTES.md) file in the root of the project.\n*   **Review:** Summarize (in a paragraph or two) what you just learned for the user. Invite them to inspect `FRONTEND_ARCHITECTURE_NOTES.md`, and do not proceed to Phase 4 until they indicate that you should do so.\n\n---\n\n## Phase 4: Frontend Design & Layout\nDesign the visual structure, layout columns, styling guides, states, and micro-animations for the frontend application.\n*   **Action:** Read [references\u002Ffrontend_design.md](references\u002Ffrontend_design.md) for styling and UI blueprints.\n*   **Deliverable:** Create the [FRONTEND_DESIGN_NOTES.md](FRONTEND_DESIGN_NOTES.md) file in the root of the project.\n*   **Review:** Summarize (in a paragraph or two) what you just learned for the user. Invite them to inspect `FRONTEND_DESIGN_NOTES.md`, and do not proceed to Phase 5 until they indicate that you should do so.\n\n----\n\n## Phase 5: Scaffolding & Implementation\nCreate and program the Flutter client application within the workspace, implementing all designs and specifications.\n*   **Action:**\n    1. Read [references\u002Ffrontend_best_practices.md](references\u002Ffrontend_best_practices.md) for specific implementation patterns and best practices.\n    2. Scaffold a fresh Flutter project inside a folder named `frontend\u002F` at the root of the workspace. Do not specify an org name unless instructed. Create the app to build for only those platforms specified by the user -- if you're not sure, ask.\n    3. Add the approved packages (`provider`, `flutter_markdown`, `url_launcher`, and `http`) to `frontend\u002Fpubspec.yaml`.\n    4. Write the manual serialization models, the `AdkApiService` (implementing standard REST and SSE HTTP streamed response parsers), the `AgentProvider` state notifier, and the responsive views\u002Fwidgets following `FRONTEND_ARCHITECTURE_NOTES.md` and `FRONTEND_DESIGN_NOTES.md`.\n    5. Verify code cleanliness and correctness by running `flutter format`, `flutter analyze`, and `flutter test` inside the `frontend\u002F` directory.\n*   **Deliverable:** A fully compiled and functional Flutter application located inside the `frontend\u002F` folder.\n\n---\n\n## Phase 6: Workspace Integration & Documentation\nIntegrate the frontend into the workspace build flows, update version control settings, and document the client setup for developers.\n*   **Action:**\n    1.  **Build Configuration:** Examine the codebase to determine how a developer builds and runs the backend agent (e.g. searching for `Makefile` targets, task configurations in `pyproject.toml` like Poe\u002FTaskipy, `package.json` scripts, or custom `run.sh` \u002F `build.sh` scripts). Update these automation tools or files to provide simple commands for developers to build, test, and launch the new Flutter frontend.\n    2.  **VCS Ignore Setup:** Update the project's version control ignore configurations to make sure they account for the new project and its artifacts. The Flutter frontend should have a nested `.gitignore` file that will account for most things. If the root `.gitignore` file ignores `lib\u002F`, though, make sure to add an exclusion for Flutter's `lib` directory (`!frontend\u002Flib`).\n    3.  **Documentation Update:**\n        *   If the project has a `README.md` in the root directory, update it to reference the new frontend, detail prerequisites (such as the Flutter SDK version), and outline startup instructions.\n        *   Update the default `frontend\u002FREADME.md` file to describe the frontend client, its structure, and how to launch both the agent and the client using the build configuration tools updated in step 1.\n        *   Look for any additional pre-existing docs that might need to be updated and do so.\n*   **Deliverable:** Updated workspace integration configurations, build scripts, and documentation files.\n",{"data":36,"body":43},{"name":4,"description":6,"metadata":37},{"author":38,"version":39,"requires":40},"Antigravity","1.0.0",{"bins":41},[8,42],"dart",{"type":44,"children":45},"root",[46,55,61,68,73,187,199,203,209,214,270,273,279,284,331,334,340,345,392,395,401,406,453,456,462,467,630,633,639,644],{"type":47,"tag":48,"props":49,"children":51},"element","h1",{"id":50},"building-a-flutter-frontend-for-an-adk-agent",[52],{"type":53,"value":54},"text","Building a Flutter Frontend for an ADK Agent",{"type":47,"tag":56,"props":57,"children":58},"p",{},[59],{"type":53,"value":60},"This skill orchestrates the end-to-end workflow of designing, specifying, and implementing a premium Flutter-based frontend for any Agent Development Kit (ADK) agent.",{"type":47,"tag":62,"props":63,"children":65},"h2",{"id":64},"prerequisites-external-references",[66],{"type":53,"value":67},"Prerequisites & External References",{"type":47,"tag":56,"props":69,"children":70},{},[71],{"type":53,"value":72},"Before starting, the developer or coding agent should locate ADK framework-level specifications using the following resources instead of restating them in this skill:",{"type":47,"tag":74,"props":75,"children":76},"ol",{},[77,122,140],{"type":47,"tag":78,"props":79,"children":80},"li",{},[81,87,89,96,98,104,106,112,114,120],{"type":47,"tag":82,"props":83,"children":84},"strong",{},[85],{"type":53,"value":86},"Activate ADK Code Skill:",{"type":53,"value":88}," Ensure that ",{"type":47,"tag":90,"props":91,"children":93},"code",{"className":92},[],[94],{"type":53,"value":95},"\u002Fgoogle-agents-cli-adk-code",{"type":53,"value":97}," is active in the current session. Refer to its reference file ",{"type":47,"tag":90,"props":99,"children":101},{"className":100},[],[102],{"type":53,"value":103},"adk-python.md",{"type":53,"value":105}," to understand the core ",{"type":47,"tag":90,"props":107,"children":109},{"className":108},[],[110],{"type":53,"value":111},"Event",{"type":53,"value":113},", ",{"type":47,"tag":90,"props":115,"children":117},{"className":116},[],[118],{"type":53,"value":119},"EventActions",{"type":53,"value":121},", and state management models.",{"type":47,"tag":78,"props":123,"children":124},{},[125,130,132,138],{"type":47,"tag":82,"props":126,"children":127},{},[128],{"type":53,"value":129},"Fetch Official Docs:",{"type":53,"value":131}," Retrieve the official documentation index by calling ",{"type":47,"tag":90,"props":133,"children":135},{"className":134},[],[136],{"type":53,"value":137},"curl https:\u002F\u002Fadk.dev\u002Fllms.txt",{"type":53,"value":139}," and search for pages related to client serving, networking, or the Python API server.",{"type":47,"tag":78,"props":141,"children":142},{},[143,148,150],{"type":47,"tag":82,"props":144,"children":145},{},[146],{"type":53,"value":147},"Inspect Local Code:",{"type":53,"value":149}," To see exact Pydantic definitions and FastAPI endpoint details directly:\n",{"type":47,"tag":151,"props":152,"children":153},"ul",{},[154,167],{"type":47,"tag":78,"props":155,"children":156},{},[157,159,165],{"type":53,"value":158},"Open and inspect the local server definition inside your python environment at ",{"type":47,"tag":90,"props":160,"children":162},{"className":161},[],[163],{"type":53,"value":164},".venv\u002Flib\u002Fpython*\u002Fsite-packages\u002Fgoogle\u002Fadk\u002Fcli\u002Fadk_web_server.py",{"type":53,"value":166},".",{"type":47,"tag":78,"props":168,"children":169},{},[170,172,178,180,186],{"type":53,"value":171},"Open and inspect the event schemas at ",{"type":47,"tag":90,"props":173,"children":175},{"className":174},[],[176],{"type":53,"value":177},".venv\u002Flib\u002Fpython*\u002Fsite-packages\u002Fgoogle\u002Fadk\u002Fevents\u002Fevent.py",{"type":53,"value":179}," and ",{"type":47,"tag":90,"props":181,"children":183},{"className":182},[],[184],{"type":53,"value":185},"event_actions.py",{"type":53,"value":166},{"type":47,"tag":56,"props":188,"children":189},{},[190,192,197],{"type":53,"value":191},"Follow the phases below sequentially. ",{"type":47,"tag":82,"props":193,"children":194},{},[195],{"type":53,"value":196},"Do not skip ahead.",{"type":53,"value":198}," You must complete and record the findings of each phase before beginning the next. When creating an implementation plan, add a blocking task for the \"Review\" step in each phase that has one and wait for the user to perform a review before beginning the next phase.",{"type":47,"tag":200,"props":201,"children":202},"hr",{},[],{"type":47,"tag":62,"props":204,"children":206},{"id":205},"phase-1-workspace-agent-discovery",[207],{"type":53,"value":208},"Phase 1: Workspace & Agent Discovery",{"type":47,"tag":56,"props":210,"children":211},{},[212],{"type":53,"value":213},"Identify the core purpose of the agent in this repository, understand its sub-agent hierarchy, map its API endpoints, event streams, and human-in-the-loop triggers, and record this information.",{"type":47,"tag":151,"props":215,"children":216},{},[217,235,252],{"type":47,"tag":78,"props":218,"children":219},{},[220,225,227,233],{"type":47,"tag":82,"props":221,"children":222},{},[223],{"type":53,"value":224},"Action:",{"type":53,"value":226}," Read ",{"type":47,"tag":228,"props":229,"children":231},"a",{"href":230},"references\u002Fagent_discovery.md",[232],{"type":53,"value":230},{"type":53,"value":234}," for step-by-step discovery instructions.",{"type":47,"tag":78,"props":236,"children":237},{},[238,243,245,250],{"type":47,"tag":82,"props":239,"children":240},{},[241],{"type":53,"value":242},"Deliverable:",{"type":53,"value":244}," Create the ",{"type":47,"tag":228,"props":246,"children":248},{"href":247},"AGENT_INTERFACE_NOTES.md",[249],{"type":53,"value":247},{"type":53,"value":251}," file in the root of the project.",{"type":47,"tag":78,"props":253,"children":254},{},[255,260,262,268],{"type":47,"tag":82,"props":256,"children":257},{},[258],{"type":53,"value":259},"Review:",{"type":53,"value":261}," Summarize (in a paragraph or two) what you just learned for the user. Invite them to inspect ",{"type":47,"tag":90,"props":263,"children":265},{"className":264},[],[266],{"type":53,"value":267},"AGENT_DISCOVERY_NOTES.md",{"type":53,"value":269},", and do not proceed to Phase 2 until they indicate that you should do so.",{"type":47,"tag":200,"props":271,"children":272},{},[],{"type":47,"tag":62,"props":274,"children":276},{"id":275},"phase-2-frontend-usage-behavior",[277],{"type":53,"value":278},"Phase 2: Frontend Usage & Behavior",{"type":47,"tag":56,"props":280,"children":281},{},[282],{"type":53,"value":283},"Define the high-level behavioral and functional requirements of the frontend: target platforms, screen specifications, feature details, and user experience flows.",{"type":47,"tag":151,"props":285,"children":286},{},[287,302,316],{"type":47,"tag":78,"props":288,"children":289},{},[290,294,295,300],{"type":47,"tag":82,"props":291,"children":292},{},[293],{"type":53,"value":224},{"type":53,"value":226},{"type":47,"tag":228,"props":296,"children":298},{"href":297},"references\u002Ffrontend_usage.md",[299],{"type":53,"value":297},{"type":53,"value":301}," for instructions on defining app behavior.",{"type":47,"tag":78,"props":303,"children":304},{},[305,309,310,315],{"type":47,"tag":82,"props":306,"children":307},{},[308],{"type":53,"value":242},{"type":53,"value":244},{"type":47,"tag":228,"props":311,"children":313},{"href":312},"FRONTEND_USAGE_NOTES.md",[314],{"type":53,"value":312},{"type":53,"value":251},{"type":47,"tag":78,"props":317,"children":318},{},[319,323,324,329],{"type":47,"tag":82,"props":320,"children":321},{},[322],{"type":53,"value":259},{"type":53,"value":261},{"type":47,"tag":90,"props":325,"children":327},{"className":326},[],[328],{"type":53,"value":312},{"type":53,"value":330},", and do not proceed to Phase 3 until they indicate that you should do so.",{"type":47,"tag":200,"props":332,"children":333},{},[],{"type":47,"tag":62,"props":335,"children":337},{"id":336},"phase-3-frontend-architecture",[338],{"type":53,"value":339},"Phase 3: Frontend Architecture",{"type":47,"tag":56,"props":341,"children":342},{},[343],{"type":53,"value":344},"Define the structural patterns of the application, including core folder directory layouts, manual model serializations, and state management setups.",{"type":47,"tag":151,"props":346,"children":347},{},[348,363,377],{"type":47,"tag":78,"props":349,"children":350},{},[351,355,356,361],{"type":47,"tag":82,"props":352,"children":353},{},[354],{"type":53,"value":224},{"type":53,"value":226},{"type":47,"tag":228,"props":357,"children":359},{"href":358},"references\u002Ffrontend_architecture.md",[360],{"type":53,"value":358},{"type":53,"value":362}," for instructions on defining app architecture.",{"type":47,"tag":78,"props":364,"children":365},{},[366,370,371,376],{"type":47,"tag":82,"props":367,"children":368},{},[369],{"type":53,"value":242},{"type":53,"value":244},{"type":47,"tag":228,"props":372,"children":374},{"href":373},"FRONTEND_ARCHITECTURE_NOTES.md",[375],{"type":53,"value":373},{"type":53,"value":251},{"type":47,"tag":78,"props":378,"children":379},{},[380,384,385,390],{"type":47,"tag":82,"props":381,"children":382},{},[383],{"type":53,"value":259},{"type":53,"value":261},{"type":47,"tag":90,"props":386,"children":388},{"className":387},[],[389],{"type":53,"value":373},{"type":53,"value":391},", and do not proceed to Phase 4 until they indicate that you should do so.",{"type":47,"tag":200,"props":393,"children":394},{},[],{"type":47,"tag":62,"props":396,"children":398},{"id":397},"phase-4-frontend-design-layout",[399],{"type":53,"value":400},"Phase 4: Frontend Design & Layout",{"type":47,"tag":56,"props":402,"children":403},{},[404],{"type":53,"value":405},"Design the visual structure, layout columns, styling guides, states, and micro-animations for the frontend application.",{"type":47,"tag":151,"props":407,"children":408},{},[409,424,438],{"type":47,"tag":78,"props":410,"children":411},{},[412,416,417,422],{"type":47,"tag":82,"props":413,"children":414},{},[415],{"type":53,"value":224},{"type":53,"value":226},{"type":47,"tag":228,"props":418,"children":420},{"href":419},"references\u002Ffrontend_design.md",[421],{"type":53,"value":419},{"type":53,"value":423}," for styling and UI blueprints.",{"type":47,"tag":78,"props":425,"children":426},{},[427,431,432,437],{"type":47,"tag":82,"props":428,"children":429},{},[430],{"type":53,"value":242},{"type":53,"value":244},{"type":47,"tag":228,"props":433,"children":435},{"href":434},"FRONTEND_DESIGN_NOTES.md",[436],{"type":53,"value":434},{"type":53,"value":251},{"type":47,"tag":78,"props":439,"children":440},{},[441,445,446,451],{"type":47,"tag":82,"props":442,"children":443},{},[444],{"type":53,"value":259},{"type":53,"value":261},{"type":47,"tag":90,"props":447,"children":449},{"className":448},[],[450],{"type":53,"value":434},{"type":53,"value":452},", and do not proceed to Phase 5 until they indicate that you should do so.",{"type":47,"tag":200,"props":454,"children":455},{},[],{"type":47,"tag":62,"props":457,"children":459},{"id":458},"phase-5-scaffolding-implementation",[460],{"type":53,"value":461},"Phase 5: Scaffolding & Implementation",{"type":47,"tag":56,"props":463,"children":464},{},[465],{"type":53,"value":466},"Create and program the Flutter client application within the workspace, implementing all designs and specifications.",{"type":47,"tag":151,"props":468,"children":469},{},[470,614],{"type":47,"tag":78,"props":471,"children":472},{},[473,477],{"type":47,"tag":82,"props":474,"children":475},{},[476],{"type":53,"value":224},{"type":47,"tag":74,"props":478,"children":479},{},[480,492,505,547,580],{"type":47,"tag":78,"props":481,"children":482},{},[483,485,490],{"type":53,"value":484},"Read ",{"type":47,"tag":228,"props":486,"children":488},{"href":487},"references\u002Ffrontend_best_practices.md",[489],{"type":53,"value":487},{"type":53,"value":491}," for specific implementation patterns and best practices.",{"type":47,"tag":78,"props":493,"children":494},{},[495,497,503],{"type":53,"value":496},"Scaffold a fresh Flutter project inside a folder named ",{"type":47,"tag":90,"props":498,"children":500},{"className":499},[],[501],{"type":53,"value":502},"frontend\u002F",{"type":53,"value":504}," at the root of the workspace. Do not specify an org name unless instructed. Create the app to build for only those platforms specified by the user -- if you're not sure, ask.",{"type":47,"tag":78,"props":506,"children":507},{},[508,510,516,517,523,524,530,532,538,540,546],{"type":53,"value":509},"Add the approved packages (",{"type":47,"tag":90,"props":511,"children":513},{"className":512},[],[514],{"type":53,"value":515},"provider",{"type":53,"value":113},{"type":47,"tag":90,"props":518,"children":520},{"className":519},[],[521],{"type":53,"value":522},"flutter_markdown",{"type":53,"value":113},{"type":47,"tag":90,"props":525,"children":527},{"className":526},[],[528],{"type":53,"value":529},"url_launcher",{"type":53,"value":531},", and ",{"type":47,"tag":90,"props":533,"children":535},{"className":534},[],[536],{"type":53,"value":537},"http",{"type":53,"value":539},") to ",{"type":47,"tag":90,"props":541,"children":543},{"className":542},[],[544],{"type":53,"value":545},"frontend\u002Fpubspec.yaml",{"type":53,"value":166},{"type":47,"tag":78,"props":548,"children":549},{},[550,552,558,560,566,568,573,574,579],{"type":53,"value":551},"Write the manual serialization models, the ",{"type":47,"tag":90,"props":553,"children":555},{"className":554},[],[556],{"type":53,"value":557},"AdkApiService",{"type":53,"value":559}," (implementing standard REST and SSE HTTP streamed response parsers), the ",{"type":47,"tag":90,"props":561,"children":563},{"className":562},[],[564],{"type":53,"value":565},"AgentProvider",{"type":53,"value":567}," state notifier, and the responsive views\u002Fwidgets following ",{"type":47,"tag":90,"props":569,"children":571},{"className":570},[],[572],{"type":53,"value":373},{"type":53,"value":179},{"type":47,"tag":90,"props":575,"children":577},{"className":576},[],[578],{"type":53,"value":434},{"type":53,"value":166},{"type":47,"tag":78,"props":581,"children":582},{},[583,585,591,592,598,599,605,607,612],{"type":53,"value":584},"Verify code cleanliness and correctness by running ",{"type":47,"tag":90,"props":586,"children":588},{"className":587},[],[589],{"type":53,"value":590},"flutter format",{"type":53,"value":113},{"type":47,"tag":90,"props":593,"children":595},{"className":594},[],[596],{"type":53,"value":597},"flutter analyze",{"type":53,"value":531},{"type":47,"tag":90,"props":600,"children":602},{"className":601},[],[603],{"type":53,"value":604},"flutter test",{"type":53,"value":606}," inside the ",{"type":47,"tag":90,"props":608,"children":610},{"className":609},[],[611],{"type":53,"value":502},{"type":53,"value":613}," directory.",{"type":47,"tag":78,"props":615,"children":616},{},[617,621,623,628],{"type":47,"tag":82,"props":618,"children":619},{},[620],{"type":53,"value":242},{"type":53,"value":622}," A fully compiled and functional Flutter application located inside the ",{"type":47,"tag":90,"props":624,"children":626},{"className":625},[],[627],{"type":53,"value":502},{"type":53,"value":629}," folder.",{"type":47,"tag":200,"props":631,"children":632},{},[],{"type":47,"tag":62,"props":634,"children":636},{"id":635},"phase-6-workspace-integration-documentation",[637],{"type":53,"value":638},"Phase 6: Workspace Integration & Documentation",{"type":47,"tag":56,"props":640,"children":641},{},[642],{"type":53,"value":643},"Integrate the frontend into the workspace build flows, update version control settings, and document the client setup for developers.",{"type":47,"tag":151,"props":645,"children":646},{},[647,798],{"type":47,"tag":78,"props":648,"children":649},{},[650,654],{"type":47,"tag":82,"props":651,"children":652},{},[653],{"type":53,"value":224},{"type":47,"tag":74,"props":655,"children":656},{},[657,707,756],{"type":47,"tag":78,"props":658,"children":659},{},[660,665,667,673,675,681,683,689,691,697,699,705],{"type":47,"tag":82,"props":661,"children":662},{},[663],{"type":53,"value":664},"Build Configuration:",{"type":53,"value":666}," Examine the codebase to determine how a developer builds and runs the backend agent (e.g. searching for ",{"type":47,"tag":90,"props":668,"children":670},{"className":669},[],[671],{"type":53,"value":672},"Makefile",{"type":53,"value":674}," targets, task configurations in ",{"type":47,"tag":90,"props":676,"children":678},{"className":677},[],[679],{"type":53,"value":680},"pyproject.toml",{"type":53,"value":682}," like Poe\u002FTaskipy, ",{"type":47,"tag":90,"props":684,"children":686},{"className":685},[],[687],{"type":53,"value":688},"package.json",{"type":53,"value":690}," scripts, or custom ",{"type":47,"tag":90,"props":692,"children":694},{"className":693},[],[695],{"type":53,"value":696},"run.sh",{"type":53,"value":698}," \u002F ",{"type":47,"tag":90,"props":700,"children":702},{"className":701},[],[703],{"type":53,"value":704},"build.sh",{"type":53,"value":706}," scripts). Update these automation tools or files to provide simple commands for developers to build, test, and launch the new Flutter frontend.",{"type":47,"tag":78,"props":708,"children":709},{},[710,715,717,723,725,730,732,738,740,746,748,754],{"type":47,"tag":82,"props":711,"children":712},{},[713],{"type":53,"value":714},"VCS Ignore Setup:",{"type":53,"value":716}," Update the project's version control ignore configurations to make sure they account for the new project and its artifacts. The Flutter frontend should have a nested ",{"type":47,"tag":90,"props":718,"children":720},{"className":719},[],[721],{"type":53,"value":722},".gitignore",{"type":53,"value":724}," file that will account for most things. If the root ",{"type":47,"tag":90,"props":726,"children":728},{"className":727},[],[729],{"type":53,"value":722},{"type":53,"value":731}," file ignores ",{"type":47,"tag":90,"props":733,"children":735},{"className":734},[],[736],{"type":53,"value":737},"lib\u002F",{"type":53,"value":739},", though, make sure to add an exclusion for Flutter's ",{"type":47,"tag":90,"props":741,"children":743},{"className":742},[],[744],{"type":53,"value":745},"lib",{"type":53,"value":747}," directory (",{"type":47,"tag":90,"props":749,"children":751},{"className":750},[],[752],{"type":53,"value":753},"!frontend\u002Flib",{"type":53,"value":755},").",{"type":47,"tag":78,"props":757,"children":758},{},[759,764],{"type":47,"tag":82,"props":760,"children":761},{},[762],{"type":53,"value":763},"Documentation Update:",{"type":47,"tag":151,"props":765,"children":766},{},[767,780,793],{"type":47,"tag":78,"props":768,"children":769},{},[770,772,778],{"type":53,"value":771},"If the project has a ",{"type":47,"tag":90,"props":773,"children":775},{"className":774},[],[776],{"type":53,"value":777},"README.md",{"type":53,"value":779}," in the root directory, update it to reference the new frontend, detail prerequisites (such as the Flutter SDK version), and outline startup instructions.",{"type":47,"tag":78,"props":781,"children":782},{},[783,785,791],{"type":53,"value":784},"Update the default ",{"type":47,"tag":90,"props":786,"children":788},{"className":787},[],[789],{"type":53,"value":790},"frontend\u002FREADME.md",{"type":53,"value":792}," file to describe the frontend client, its structure, and how to launch both the agent and the client using the build configuration tools updated in step 1.",{"type":47,"tag":78,"props":794,"children":795},{},[796],{"type":53,"value":797},"Look for any additional pre-existing docs that might need to be updated and do so.",{"type":47,"tag":78,"props":799,"children":800},{},[801,805],{"type":47,"tag":82,"props":802,"children":803},{},[804],{"type":53,"value":242},{"type":53,"value":806}," Updated workspace integration configurations, build scripts, and documentation files.",{"items":808,"total":816},[809],{"slug":4,"name":4,"fn":5,"description":6,"org":810,"tags":811,"stars":24,"repoUrl":25,"updatedAt":26},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[812,813,814,815],{"name":13,"slug":8,"type":14},{"name":22,"slug":23,"type":14},{"name":16,"slug":17,"type":14},{"name":19,"slug":20,"type":14},1,{"items":818,"total":957},[819,833,844,856,867,876,888,900,912,924,938,948],{"slug":820,"name":820,"fn":821,"description":822,"org":823,"tags":824,"stars":830,"repoUrl":831,"updatedAt":832},"dart-add-unit-test","write unit tests for Dart code","Write and organize unit tests for functions, methods, and classes using `package:test`. Use when creating new logic or fixing bugs to ensure code remains correct and regression-free.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[825,827],{"name":826,"slug":42,"type":14},"Dart",{"name":828,"slug":829,"type":14},"Testing","testing",2664,"https:\u002F\u002Fgithub.com\u002Fflutter\u002Fagent-plugins","2026-07-15T05:22:40.104823",{"slug":834,"name":834,"fn":835,"description":836,"org":837,"tags":838,"stars":830,"repoUrl":831,"updatedAt":843},"dart-build-cli-app","build Dart command line applications","Entrypoint structure, exit codes, cross-platform scripts. Use when building command line utilities, scripts, or applications.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[839,842],{"name":840,"slug":841,"type":14},"CLI","cli",{"name":826,"slug":42,"type":14},"2026-07-15T05:22:18.863572",{"slug":845,"name":845,"fn":846,"description":847,"org":848,"tags":849,"stars":830,"repoUrl":831,"updatedAt":855},"dart-collect-coverage","collect Dart test coverage reports","Collect coverage using the coverage packge and create an LCOV report",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[850,851,854],{"name":826,"slug":42,"type":14},{"name":852,"slug":853,"type":14},"Reporting","reporting",{"name":828,"slug":829,"type":14},"2026-07-15T05:22:21.38636",{"slug":857,"name":857,"fn":858,"description":859,"org":860,"tags":861,"stars":830,"repoUrl":831,"updatedAt":866},"dart-fix-runtime-errors","debug and fix Dart runtime errors","Uses get_runtime_errors and lsp to fetch an active stack trace, locate the failing line, apply a fix, and verify resolution via hot_reload.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[862,863],{"name":826,"slug":42,"type":14},{"name":864,"slug":865,"type":14},"Debugging","debugging","2026-07-15T05:22:22.622501",{"slug":868,"name":868,"fn":869,"description":870,"org":871,"tags":872,"stars":830,"repoUrl":831,"updatedAt":875},"dart-generate-test-mocks","generate mock objects for Dart tests","Define and generate mock objects for external dependencies using `package:mockito` and `build_runner`. Use when unit testing classes that depend on complex external services like APIs or databases.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[873,874],{"name":826,"slug":42,"type":14},{"name":828,"slug":829,"type":14},"2026-07-15T05:22:42.607449",{"slug":877,"name":877,"fn":878,"description":879,"org":880,"tags":881,"stars":830,"repoUrl":831,"updatedAt":887},"dart-migrate-to-checks-package","migrate test matchers to checks package","Replace the usage of `expect` and similar functions from `package:matcher`\nto `package:checks` equivalents.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[882,883,886],{"name":826,"slug":42,"type":14},{"name":884,"slug":885,"type":14},"Migration","migration",{"name":828,"slug":829,"type":14},"2026-07-15T05:22:31.276564",{"slug":889,"name":889,"fn":890,"description":891,"org":892,"tags":893,"stars":830,"repoUrl":831,"updatedAt":899},"dart-resolve-package-conflicts","resolve Dart package version conflicts","Workflow for fixing package version conflicts. Use this when `pub get` fails due to incompatible package versions.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[894,895,896],{"name":826,"slug":42,"type":14},{"name":864,"slug":865,"type":14},{"name":897,"slug":898,"type":14},"Engineering","engineering","2026-07-15T05:22:30.059335",{"slug":901,"name":901,"fn":902,"description":903,"org":904,"tags":905,"stars":830,"repoUrl":831,"updatedAt":911},"dart-run-static-analysis","run static analysis and apply fixes","Execute `dart analyze` to identify warnings and errors, and use `dart fix --apply` to automatically resolve mechanical lint issues. Use during development to ensure code quality and before committing changes.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[906,909,910],{"name":907,"slug":908,"type":14},"Code Analysis","code-analysis",{"name":826,"slug":42,"type":14},{"name":864,"slug":865,"type":14},"2026-07-15T05:22:23.861119",{"slug":913,"name":913,"fn":914,"description":915,"org":916,"tags":917,"stars":830,"repoUrl":831,"updatedAt":923},"dart-setup-ffi-assets","package C\u002FC++ assets for Dart","Guides agents in compiling and packaging C\u002FC++ source code into dynamic or static libraries (Code Assets) using Dart's Native Assets hook system (via hook\u002Fbuild.dart and hook\u002Flink.dart utilizing package:hooks and package:native_toolchain_c). Use when a user asks to: 'setup native assets', 'compile C\u002FC++ source code', 'bundle dynamic libraries', 'build native C code', 'link native assets', 'implement build.dart or link.dart hooks', or 'integrate C\u002FC++ interop in Dart\u002FFlutter'. Helps agents avoid manual toolchain orchestration and configures secure hash-validated binary downloads or advanced linker tree-shaking with package:record_use mapping.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[918,919,922],{"name":826,"slug":42,"type":14},{"name":920,"slug":921,"type":14},"Deployment","deployment",{"name":897,"slug":898,"type":14},"2026-07-15T05:22:20.138636",{"slug":925,"name":925,"fn":926,"description":927,"org":928,"tags":929,"stars":830,"repoUrl":831,"updatedAt":937},"dart-skills-lint-setup","configure dart_skills_lint for Dart projects","Use this skill when you need to set up validation for AI agent skills in a Dart project for the first time.\nAdds the linter as a dev_dependency, creates a configuration file, and generates a baseline for legacy repos.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[930,931,934],{"name":826,"slug":42,"type":14},{"name":932,"slug":933,"type":14},"Plugin Development","plugin-development",{"name":935,"slug":936,"type":14},"QA","qa","2026-07-15T05:22:47.488998",{"slug":939,"name":939,"fn":940,"description":941,"org":942,"tags":943,"stars":830,"repoUrl":831,"updatedAt":947},"dart-skills-lint-validation","validate agent skills with dart_skills_lint","Use this skill when you need to validate AI agent skills with dart_skills_lint — running the linter, interpreting failures, fixing violations, and authoring custom rules.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[944,945,946],{"name":826,"slug":42,"type":14},{"name":932,"slug":933,"type":14},{"name":935,"slug":936,"type":14},"2026-07-21T05:38:34.451024",{"slug":949,"name":949,"fn":950,"description":951,"org":952,"tags":953,"stars":830,"repoUrl":831,"updatedAt":956},"dart-use-ffigen","generate FFI bindings with ffigen","Guide agents to use `package:ffigen` to automatically generate FFI bindings instead of writing them manually. Use this skill when a task involves writing new FFI bindings, extending C\u002FObjective-C\u002FSwift integrations, or replacing hand-crafted `dart:ffi` setups.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[954,955],{"name":826,"slug":42,"type":14},{"name":897,"slug":898,"type":14},"2026-07-15T05:22:17.592351",27]