| name | scaffold-analytics-ids |
| description | Creates or extends a Flutter feature-level `*_ids.dart` file with LeanCode analytics IDs for pages and clickable elements. Use when adding a new feature, page, or tracked action. |
| argument-hint | <feature-name> [--page <page-name>] [--action <action-name>] |
Scaffold Analytics IDs
Create or extend a feature-level <feature_name>_ids.dart file.
Inputs to confirm
- Feature name in
snake_case.
- Single-page or multi-page feature.
- Page names that need IDs.
- Clickable actions that need
AnalyticsId entries.
Workflow
- Locate or create
lib/features/<feature_name>/<feature_name>_ids.dart.
- Name the class
<FeatureName>AnalyticsId.
- Add page IDs as
static const String fields first.
- Add clickable IDs below them as
AnalyticsId fields or factory methods.
- If one action exists on multiple pages, use a factory method that accepts the page ID.
Templates
Single-page feature:
class BookingAnalyticsId {
static const page = 'BookingPage';
static final confirmButton = AnalyticsId('ConfirmButton', page);
}
Multi-page feature:
class BookingAnalyticsId {
static const listPage = 'BookingListPage';
static const detailsPage = 'BookingDetailsPage';
static AnalyticsId submitButton(String page) =>
AnalyticsId('SubmitButton', page);
}
Guardrails
- Keep analytics strings only in the IDs file.
- Do not duplicate the same action as separate string literals across pages.
- Prefer stable action names like
ConfirmButton, AddButton, RetryButton.