Eliminating the AI Verification Tax with Agentic Engineering
1. Context & The "Why": Escaping the Vibe-Coding Verification Tax
Over 79% of Flutter and Dart developers now use AI coding assistants daily. Yet across production mobile teams, a painful paradox has emerged: while raw code generation is faster than ever, engineers spend hours fixing hallucinated pub.dev APIs, unbounded RenderFlex layout overflows, leaked BuildContext references across async gaps, and broken layer boundaries where database DTOs leak directly into UI widgets.
This hidden productivity drain is known as The Verification Tax. It happens when developers rely on unconstrained Vibe-Coding (prompting an LLM in a vacuum without compiler grounding or architectural contracts) instead of Agentic Engineering.
An AI coding agent is only as reliable as the tools it can invoke, the architectural constitution it must obey, and the deterministic verification loop that gates its output.
| Engineering Dimension | Unconstrained Vibe-Coding | Deterministic Agentic Engineering |
|---|---|---|
| Compiler & Runtime Awareness | Blind text prediction; guesses method signatures | Live AST & VM introspection via dart mcp-server |
| Architectural Boundaries | Imports data/network classes directly inside Widgets | Governed by a root AGENTS.md constitution |
| Context Window Hygiene | Bloated prompts that degrade model reasoning | Modular on-demand SKILL.md procedural files |
| Domain Guardrails | Manual human code review after every prompt | Custom project MCP tools built with genkit_mcp |
| Definition of Done | "It looks plausible in the chat window" | flutter analyze --fatal-infos & flutter test pass |
2. Learning Goals & What You Will Build
By the end of this hands-on codelab, you will design and verify a complete Agentic Flutter Engineering Workspace:
- Wire the Official Dart & Flutter MCP Server (
dart mcp-server): Connect your IDE or CLI coding agent to the Dart analyzer, pub package manager, live Widget Inspector, and stateful Hot Reload over the Model Context Protocol. - Engineer a Zero-Drift
AGENTS.mdConstitution: Write a concise, high-signal project constitution enforcing strict Domain/Application/Presentation separation, immutable entities, explicitResult<T>error handling, and design token invariants. - Build On-Demand Procedural Skills (
SKILL.md): Package complex, multi-step feature scaffolding rules into.agents/skills/flutter-clean-feature/SKILL.mdso agents load procedural instructions only when needed. - Implement a Governed Flutter Telemetry Feature: Build a 100% self-contained Flutter application using
flutter_blocand Dart 3 sealed classes that passes strict static analysis with zero warnings. - Build a Custom Architecture-Guard MCP Server in Dart (
genkit_mcp): Write a custom MCP server in Dart that exposes a livecheckLayerImportstool and aproject://design-tokensresource to any MCP-compatible agent. - Enforce Automated Verification Loops: Write deterministic widget tests and cross-platform pre-commit verification scripts that prevent broken agent code from ever landing in your branch.
3. Prerequisites & System Requirements
- Dart SDK:
>=3.8.0(includes the built-indart mcp-servercommand). - Flutter SDK:
>=3.29.0(stable channel recommended). - Git:
>=2.40.0for workspace state inspection. - MCP-Compatible Agent Host: Google Antigravity, Gemini CLI, Cursor, VS Code with GitHub Copilot Agent mode, or Claude Code.
Run the pre-flight verification commands below in your terminal to confirm your local SDK toolchain is ready:
1. Contexte & Pourquoi : Échapper à la Taxe de Vérification du Vibe-Coding
Plus de 79 % des développeurs Flutter et Dart utilisent aujourd'hui des assistants IA au quotidien. Pourtant, au sein des équipes mobiles en production, un paradoxe coûteux est apparu : bien que la génération brute de code soit plus rapide que jamais, les ingénieurs passent des heures à corriger des APIs pub.dev hallucinées, des erreurs de rendu RenderFlex non bornées, des fuites de BuildContext après des appels asynchrones, et des violations d'architecture où les DTOs de base de données fuient directement dans les widgets UI.
Cette perte de productivité cachée s'appelle la Taxe de Vérification (Verification Tax). Elle survient lorsque les développeurs s'appuient sur du Vibe-Coding non contraint (solliciter un LLM à l'aveugle sans ancrage dans le compilateur ni contrat architectural) au lieu de pratiquer l'Agentic Engineering.
Un agent de programmation IA n'est fiable que dans la mesure des outils qu'il peut invoquer, de la constitution architecturale à laquelle il obéit, et de la boucle de vérification déterministe qui valide son code.
| Dimension d'Ingénierie | Vibe-Coding Non Contraint | Agentic Engineering Déterministe |
|---|---|---|
| Conscience du Compilateur & VM | Prédiction textuelle à l'aveugle ; devine les signatures | Introspection AST & VM en direct via dart mcp-server |
| Frontières Architecturales | Importe les classes réseau/données directement dans les Widgets | Gouverné par une constitution racine AGENTS.md |
| Hygiène de la Fenêtre de Contexte | Prompts surchargés qui dégradent le raisonnement | Fichiers procéduraux modulaires SKILL.md chargés à la demande |
| Garde-fous Métier | Revue manuelle humaine après chaque prompt | Outils MCP personnalisés construits avec genkit_mcp |
| Définition de "Terminé" | "Le code a l'air plausible dans le chat" | flutter analyze --fatal-infos & flutter test passent à 100 % |
2. Objectifs & Ce que vous allez construire
À la fin de ce codelab pratique, vous aurez conçu et vérifié un Environnement Flutter d'Agentic Engineering complet :
- Connecter le Serveur MCP Officiel Dart & Flutter (
dart mcp-server) : Relier votre IDE ou agent CLI à l'analyseur Dart, au gestionnaire de paquets pub, au Widget Inspector en direct et au Hot Reload via le Model Context Protocol. - Concevoir une Constitution
AGENTS.mdZéro-Dérive : Rédiger une constitution de projet concise et déterministe imposant la séparation Domain/Application/Presentation, l'immuabilité des entités, la gestion d'erreurs explicite viaResult<T>et le respect des jetons de design. - Créer des Skills Procéduraux à la Demande (
SKILL.md) : Encapsuler les règles de génération de fonctionnalités dans.agents/skills/flutter-clean-feature/SKILL.mdafin que l'agent ne les charge qu'au moment opportun. - Implémenter une Feature Flutter Gouvernée : Construire une application Flutter de télémétrie 100 % autonome utilisant
flutter_blocet les classes scellées Dart 3, compilant sans aucun avertissement d'analyse statique. - Construire un Serveur MCP d'Architecture en Dart (
genkit_mcp) : Écrire un serveur MCP personnalisé en Dart exposant un outilcheckLayerImportset une ressourceproject://design-tokensà tout agent compatible MCP. - Imposer des Boucles de Vérification Automatisées : Écrire des tests de widgets déterministes et des scripts multiplateformes qui empêchent tout code défectueux d'entrer dans votre branche.
3. Prérequis & Configuration Système
- SDK Dart :
>=3.8.0(inclut nativement la commandedart mcp-server). - SDK Flutter :
>=3.29.0(canal stable recommandé). - Git :
>=2.40.0pour l'inspection de l'espace de travail. - Hôte Agent Compatible MCP : Google Antigravity, Gemini CLI, Cursor, VS Code avec GitHub Copilot Agent, ou Claude Code.
Exécutez les commandes de vérification pré-vol ci-dessous dans votre terminal pour confirmer que votre chaîne d'outils SDK est prête :
# 1. Verify Flutter & Dart SDK versions (Dart >= 3.8.0 required)
flutter --version
dart --version
# 2. Verify the built-in Dart MCP Server binary responds
dart mcp-server --help
# 3. Create a clean workspace for this codelab
flutter create --empty agentic_telemetry_demo
cd agentic_telemetry_demo
flutter pub add flutter_bloc