android-notification-derive

Derives the alerting channel for Android business events and implements the device-side notification code.

Updated Aug 10, 2026
One-click install
npx skills add https://github.com/nolte/claude-android-engineering --skill android-notification-derive-nolte
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: android-notification-derive
Source: https://github.com/nolte/claude-android-engineering/tree/main/skills/android-notification-derive
Command: npx skills add https://github.com/nolte/claude-android-engineering --skill android-notification-derive-nolte

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve? Deciding whether and how an Android app should notify users about business events is error-prone: over-notifying burns the revocable, app-wide notification permission, while under-notifying loses critical events. This Skill classifies each event on six axes, walks an ordered gate chain so the cheapest sufficient channel wins, records a justified ledger row, and writes the device-side notification code per spec. ## Core Features & Use Cases - Channel derivation: Classifies events on six axes (origination, presence, time sensitivity, actionability, consequence, continuity) and runs the ordered gate chain, recording both the matched gate and the rejected cheaper gate in project/notification-ledger.md. - Read-only audit: Scans every notify() call site, channel creation, and foreground-service start, reconciles them against the ledger, and reports severity-classified findings with file, line, and spec section. - Code application: Writes channel creation with permanent importance, NotificationCompat builds, grouping with summaries, conversation/call styles, foreground-service and Live Update contracts, plus SDK guards for canUseFullScreenIntent() and canPostPromotedNotifications(). - Use Case: When a product owner asks whether the app should notify users that an order shipped, the Skill classifies the event, matches the Await gate, records the ledger row, hands POST_NOTIFICATIONS to the permissions skill, and writes the shipping channel and notification code. ## Quick Start Ask the assistant to derive the notification channel for a business event in your Android project, for example whether the app should notify the user when their order ships.

Frequently Asked Questions about android-notification-derive

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I decide which Android notification channel an event should use?

Classify the event on six axes (origination, presence, time sensitivity, actionability, consequence of missing it, continuity), then walk the ordered gate chain and take the first matching gate. The chain runs from silence through ongoing activity, presence, conversation, interrupt, await, and ambient, so the cheapest sufficient channel wins.

How do I audit existing Android notifications for policy compliance?

Run the audit operation, which enumerates every notify() call site, channel creation, and foreground-service start, reconciles them against the notification ledger, and re-derives each posting site. Findings are reported on a Critical/Warning/Suggestion/Info severity scale with file, line, and spec section, and nothing is written.

Can I change the importance of an existing Android notification channel?

No, channel importance is immutable after creation; changing the argument on an existing channel ID does nothing. A reclassification requires creating a new channel with a new ID and recording the old channel's retirement in the notification ledger.

Why does notify() succeed but no Android notification appears?

A notification posted to a blocked channel succeeds silently; notify() does not throw. Check areNotificationsEnabled() plus the channel's getImportance() to distinguish delivered from accepted-and-discarded, and degrade to the in-app path per the ledger row.

When should an Android app use a Live Update or foreground-service notification?

Only for user-initiated, ongoing, continuously time-sensitive activities like navigation, delivery tracking, or workouts. Live Updates require POST_PROMOTED_NOTIFICATIONS, an ongoing flag, a permitted style, and forbid grouping and custom layouts; foreground-service notifications need a stop affordance and a declared service type.

What notifications should an Android app refuse to implement?

Promotional, re-engagement-driven, celebratory, greeting, and rating-request notifications are refused as out of policy, matching platform design guidance and Play policy. The refusal gate reports the rule and offers legitimate alternatives such as an in-app surface, a widget, or a backend-sent email.