What problem does it solve? Building Ionic/Capacitor apps involves subtle traps that silently break production apps: cached pages that never re-run ngOnInit, Capacitor listener callbacks that escape Angular change detection, wrong standalone import paths per Ionic major, and permission prompts that are one-shot on iOS. This Skill encodes the house conventions that prevent those bugs. ## Core Features & Use Cases - Ionic Angular UI conventions: standalone components with signals, modern form-control syntax (label/errorText on the control, not IonItem), CSS-variable theming, safe-area insets, and overlay patterns with dismissal handling. - Capacitor lifecycle and zone boundary: typed-service wrapping of every native plugin, NgZone.run() around listener callbacks, permission check-then-request cycles, and web fallbacks that degrade instead of crashing. - Navigation and lifecycle: IonRouterOutlet page caching, the four ionView hooks and which work belongs on each, NavController vs Angular Router, and tab stack modeling. - Use Case: You are adding push notifications to an Ionic 9 app. The Skill directs you to wrap the plugin in one typed service that owns the permission cycle, token-to-server lifecycle, foreground vs tap listeners, and a typed 'unavailable' web fallback. ## Quick Start Load the ionic skill before building or editing any Ionic/Capacitor app where ionic.config.json or capacitor.config.* exists.