skills/self-initiated-triggers/SKILL.md
Design internal triggers for sustained user engagement. Use when building habit-forming features, improving retention without notifications, or transitioning users from external prompts to self-motivated engagement.
npx skillsauth add Chris-Maskey/opencode-config self-initiated-triggersInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Self-Initiated Triggers (Internal Triggers) are emotional states or situations that prompt users to engage with a product without any external reminder. They represent the goal state of habit formation - when users think of your product automatically in response to specific feelings or contexts.
External Triggers Internal Triggers
(Pushed to user) (Pulled by user)
| |
v v
+-------------+ +-------------+
| - Push | | - Boredom |
| notif | Journey | - Anxiety |
| - Email | -----------> | - FOMO |
| - Ads | | - Loneliness|
| - WOM | | - Curiosity |
+-------------+ +-------------+
| |
v v
Expensive Free
Interruptive Seamless
Declining effect Strengthening
Emotion/Situation Product Association
| |
v v
"I feel bored" --> "I'll check Instagram"
"I have a question" --> "I'll Google it"
"I feel anxious" --> "I'll check Slack"
"I'm waiting" --> "I'll open TikTok"
| Trigger | Emotion | Example Products | | --------------- | ----------------------------------- | ----------------------------- | | Negative | Boredom, anxiety, loneliness, FOMO | Social media, news, messaging | | Positive | Curiosity, excitement, anticipation | Learning apps, games | | Situational | Waiting, commuting, winding down | Podcasts, reading apps | | Routine | Morning, mealtime, bedtime | News, meditation, fitness |
Phase 1: External Trigger
"We sent you a notification"
|
v
Phase 2: Association Forming
Repeated: Trigger → Action → Reward
|
v
Phase 3: Internal Trigger Emerging
Emotion alone triggers action
|
v
Phase 4: Automatic Habit
No conscious thought needed
Research questions:
| User Segment | Primary Emotion | Secondary Emotion | Context | | ------------ | --------------- | ----------------- | ------------ | | [Segment 1] | [Emotion] | [Emotion] | [When/Where] | | [Segment 2] | [Emotion] | [Emotion] | [When/Where] |
External Triggers Internal Triggers
[_____________________] [_____________________]
80% 20%
Target state:
[_____________________] [_____________________]
30% 70%
| Strategy | Implementation | | ------------------------ | ------------------------------------ | | Repeated pairing | Consistent context → action → reward | | Emotional resonance | Design for target emotion | | Ritual creation | Encourage routine usage | | Social reinforcement | Others validate the behavior |
| Metric | Weak Trigger | Strong Trigger | | -------------------------------- | ------------ | -------------- | | Return frequency without prompts | Low | High | | Time to return after absence | Long | Short | | Usage without notifications | Rare | Common | | Self-reported "automatic" use | Never | Often |
## Internal Trigger Analysis
**Product:** [Name] **Date:** [Date]
### Target Internal Trigger
**Primary emotion:** [Emotion] **Trigger context:** [Situation when emotion
occurs] **Desired association:** "When I feel [emotion], I [product action]"
### Current State
| Engagement Type | % of Sessions |
| ------------------------ | ------------- |
| Push notification driven | [X%] |
| Email driven | [X%] |
| Self-initiated | [X%] |
### User Research Findings
**Interview insight 1:** "[Quote about when/why they open the product]"
**Interview insight 2:** "[Quote about emotional state]"
### Trigger Strengthening Plan
| Strategy | Action | Expected Outcome |
| ------------ | ----------------- | ---------------- |
| [Strategy 1] | [Specific action] | [Metric impact] |
| [Strategy 2] | [Specific action] | [Metric impact] |
### Success Metrics
| Metric | Current | Target | Timeframe |
| --------------------------- | ------- | ------ | --------- |
| Self-initiated sessions | [X%] | [Y%] | [Months] |
| Return without notification | [X%] | [Y%] | [Months] |
Target emotion: Boredom + need for stimulation Association built: "I have a spare moment → I'll check Twitter"
Mechanisms:
Target emotion: Anxiety about missing information Association built: "I feel out of the loop → I'll check Slack"
Mechanisms:
Target emotion: Guilt + achievement desire Association built: "I should be productive → I'll do a lesson"
Mechanisms:
| Aspect | Healthy | Unhealthy | | --------------------- | ------------------------ | ------------------------- | | Emotion exploited | Curiosity, growth desire | Anxiety, loneliness, FOMO | | User outcome | Feels better after use | Feels worse or unchanged | | Sustainability | Long-term satisfaction | Short-term with regret | | Control | User feels in control | User feels compelled |
| Method | Combined Use | | ----------------------- | ------------------------------------ | | Hooked Model | Internal triggers are the goal state | | Fogg Behavior Model | Trigger is the T in B=MAT | | Jobs-to-be-Done | Emotional jobs are internal triggers | | Loss Aversion | Fear of loss as internal trigger |
tools
Anti-patterns and mistakes to avoid as a product manager. Use when evaluating leadership behaviors, improving team dynamics, reflecting on management practices, or onboarding new product managers.
development
Review UI code for Web Interface Guidelines compliance. Use when asked to "review my UI", "check accessibility", "audit design", "review UX", or "check my site against best practices".
testing
Design effective CTAs using visual attention and gaze psychology principles. Use when designing landing pages, button hierarchies, conversion elements, or optimizing user attention flow through interfaces.
tools
Run agent-browser + Chrome inside Vercel Sandbox microVMs for browser automation from any Vercel-deployed app. Use when the user needs browser automation in a Vercel app (Next.js, SvelteKit, Nuxt, Remix, Astro, etc.), wants to run headless Chrome without binary size limits, needs persistent browser sessions across commands, or wants ephemeral isolated browser environments. Triggers include "Vercel Sandbox browser", "microVM Chrome", "agent-browser in sandbox", "browser automation on Vercel", or any task requiring Chrome in a Vercel Sandbox.