/getting-started
Interactive post-onboarding tour that adapts to whatever data exists (calendar, Granola, or none). Use right after onboarding, or when the user says 'show me around', 'how do I start'. Also use proactively when the vault is < 7 days old. Not for the initial setup itself; use
$ npx -y skills add davekilleen/Dex --skill getting-started --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition โ
- You can call itInvoke it directly when you want it.
- Slash command
/getting-started
Context preview
The summary Claude sees to decide when to auto-load this skill.
Interactive post-onboarding tour that adapts to whatever data exists (calendar, Granola, or none). Use right after onboarding, or when the user says 'show me around', 'how do I start'. Also use proactively when the vault is < 7 days old. Not for the initial setup itself; use
SKILL.md
getting-started.SKILL.mdname: getting-started
description: "Interactive post-onboarding tour that adapts to whatever data exists (calendar, Granola, or none). Use right after onboarding, or when the user says 'show me around', 'how do I start'. Also use proactively when the vault is < 7 days old. Not for the initial setup itself; use `setup`."
Purpose
Transform the post-onboarding experience from "blank chat window" to guided value delivery. Adaptive based on what data sources are available (calendar, Granola, or neither).
When to Run
- Automatically suggested at session start if vault < 7 days old
- User types `/getting-started`
- After onboarding completion (Step 11)
- User says they're not sure what to do next
Entry Point
Step 1: Verify Onboarding
Call `check_onboarding_complete()` from onboarding-mcp to verify vault status.
The first-week reveal already ran during onboarding. Do not repeat the first-week statistics or present them as a new discovery, even if an older completion marker suggests analysis was deferred. `/getting-started` is now the deeper tour.
Step 2: Environment Check
Check what data sources are available:
- Calendar: Try calling calendar MCP (if fails, not available)
- Granola: Call `granola_check_available()` from granola-mcp
Based on results, route to appropriate flow.
---
Flow A: Has Calendar + Granola
**The Deeper History Flow**
Historical Data Discovery
๐ **Welcome back, [Name]!**
You have already seen this week's calendar snapshot, so I won't repeat it. Let's look at the deeper meeting history you can turn into useful context.
**Calendar:** โ
Connected
**Granola:** โ
Connected
I'll check how much Granola history is available before suggesting what to process.
Then execute: 1. Analyze Granola data extent using helper function (6 months by default) 2. If more data exists, ask if they want to see full extent 3. Present the historical summary
๐ **Your Granola history:**
**Granola data (last 6 months):**
โข [N] meetings captured
โข Going back [days_back] days (to [oldest_date])
โข [M] unique people detected ([I] internal, [E] external)
โข [K] external companies identified
**If `has_more_data` is True, ask:**
๐ก **I see there are meetings beyond 6 months.**
Want me to check how much more history you have?
This will take a few more seconds.
โ Yes - show me the full extent
โ No - 6 months is plenty
**If user says "Yes", refetch with `extended=True` and update:**
๐ **Updated - Full data extent:**
โข [N_total] meetings captured (found [N_new] older meetings)
โข Going back [total_days] days (to [oldest_date])
โข [M_total] unique people detected
โข [K_total] external companies identified
---
Here's what I can create from your Granola history:
**๐ People & Company Pages** (Recommended: All history)
โ
Builds context for relationships
โ
Low overhead - just reference pages
โ
Helps you see interaction history
**๐ Meeting Notes** (Recommended: Last 30 days)
โ
Searchable record of discussions
โ ๏ธ Medium overhead - lots of reading material
โ
Good for finding past decisions
**โ
Action Items / Todos** (Recommended: Last 7 days)
โ
Actionable recent tasks
โ ๏ธ Can be overwhelming if too many
โ ๏ธ Old todos often outdated or already done
**What would you like me to do?**
1๏ธโฃ Smart default (Recommended)
โข People/companies: All [days_back] days
โข Meeting notes: Last 30 days (~[est_30d] meetings)
โข Todos: Last 7 days (~[est_7d] meetings)
2๏ธโฃ Recent only (Conservative)
โข Everything: Last 7 days only
3๏ธโฃ Full history (Comprehensive)
โข Everything: All [days_back] days
4๏ธโฃ Custom (You choose)
โข Pick different time ranges for each type
5๏ธโฃ Just going forward
โข Start fresh from today
6๏ธโฃ Skip for now
User Chooses Processing Strategy
Use AskUserQuestion tool. If AskUserQuestion is not available, prompt in CLI with the same numbered options and capture the selection:
{
"questions": [{
"id": "granola_strategy",
"prompt": "How would you like to process your Granola data?",
"allow_multiple": false,
"options": [
{"id": "smart", "label": "1๏ธโฃ Smart default - People/companies (all) + Notes (30d) + Todos (7d)"},
{"id": "recent", "label": "2๏ธโฃ Recent only - Everything from last 7 days"},
{"id": "full", "label": "3๏ธโฃ Full history - Everything from all available data"},
{"id": "custom", "label": "4๏ธโฃ Custom - I'll choose time ranges for each type"},
{"id": "forward", "label": "5๏ธโฃ Just going forward - Start fresh from today"},
{"id": "skip", "label": "6๏ธโฃ Skip for now"}
]
}]
}Custom Mode Flow
If user selects "custom", ask for granular preferences:
{
"title": "Choose time ranges for historical data",
"questions": [
{
"id": "people_range",
"prompt": "People & Company Pages: How far back?",
"allow_multiple": false,
"options": [
{"id": "7d", "label": "Last 7 days"},
{"id": "30d", "label": "Last 30 days"},
{"id": "90d", "label": "Last 90 days"},
{"id": "all", "label": "All [days_back] days (recommended)"},
{"id": "none", "label": "Skip - don't create"}
]
},
{
"id": "notes_range",
"prompt": "Meeting Notes: How far back?",
"allow_multiple": false,
"options": [
{"id": "7d", "label": "Last 7 days"},
{"id": "30d", "label": "Last 30 days (recommended)"},
{"id": "90d", "label": "Last 90 days"},
{"id": "all", "label": "All [days_back] days"},
{"id": "none", "label": "Skip - don't create"}
]
},
{
"id": "todos_range",
"prompt": "Action Items / Todos: How far back?",
"allow_multiple": false,
"options": [
{"id": "7d", "label": "Last 7 days (recommended)"},
{"id": "30d", "label": "Last 30 days"},
{"id": "90d", "label": "Last 90 days"},
{"id": "all", "label": "All [days_back] days"}Read more
name: getting-started description: "Interactive post-onboarding tour that adapts to whatever data exists (calendar, Granola, or none). Use right after onboarding, or when the user says 'show me around', 'how do I start'. Also use proactively when the vault is < 7 days old. Not for the initial setup itself; use `setup`."
Purpose
Transform the post-onboarding experience from "blank chat window" to guided value delivery. Adaptive based on what data sources are available (calendar, Granola, or neither).
When to Run
- Automatically suggested at session start if vault < 7 days old
- User types `/getting-started`
- After onboarding completion (Step 11)
- User says they're not sure what to do next
Entry Point
Step 1: Verify Onboarding
Call `check_onboarding_complete()` from onboarding-mcp to verify vault status.
The first-week reveal already ran during onboarding. Do not repeat the first-week statistics or present them as a new discovery, even if an older completion marker suggests analysis was deferred. `/getting-started` is now the deeper tour.
Step 2: Environment Check
Check what data sources are available:
- Calendar: Try calling calendar MCP (if fails, not available)
- Granola: Call `granola_check_available()` from granola-mcp
Based on results, route to appropriate flow.
---
Flow A: Has Calendar + Granola
**The Deeper History Flow**
Historical Data Discovery
๐ **Welcome back, [Name]!** You have already seen this week's calendar snapshot, so I won't repeat it. Let's look at the deeper meeting history you can turn into useful context. **Calendar:** โ Connected **Granola:** โ Connected I'll check how much Granola history is available before suggesting what to process.
Then execute: 1. Analyze Granola data extent using helper function (6 months by default) 2. If more data exists, ask if they want to see full extent 3. Present the historical summary
๐ **Your Granola history:** **Granola data (last 6 months):** โข [N] meetings captured โข Going back [days_back] days (to [oldest_date]) โข [M] unique people detected ([I] internal, [E] external) โข [K] external companies identified
**If `has_more_data` is True, ask:**
๐ก **I see there are meetings beyond 6 months.** Want me to check how much more history you have? This will take a few more seconds. โ Yes - show me the full extent โ No - 6 months is plenty
**If user says "Yes", refetch with `extended=True` and update:**
๐ **Updated - Full data extent:** โข [N_total] meetings captured (found [N_new] older meetings) โข Going back [total_days] days (to [oldest_date]) โข [M_total] unique people detected โข [K_total] external companies identified --- Here's what I can create from your Granola history: **๐ People & Company Pages** (Recommended: All history) โ Builds context for relationships โ Low overhead - just reference pages โ Helps you see interaction history **๐ Meeting Notes** (Recommended: Last 30 days) โ Searchable record of discussions โ ๏ธ Medium overhead - lots of reading material โ Good for finding past decisions **โ Action Items / Todos** (Recommended: Last 7 days) โ Actionable recent tasks โ ๏ธ Can be overwhelming if too many โ ๏ธ Old todos often outdated or already done **What would you like me to do?** 1๏ธโฃ Smart default (Recommended) โข People/companies: All [days_back] days โข Meeting notes: Last 30 days (~[est_30d] meetings) โข Todos: Last 7 days (~[est_7d] meetings) 2๏ธโฃ Recent only (Conservative) โข Everything: Last 7 days only 3๏ธโฃ Full history (Comprehensive) โข Everything: All [days_back] days 4๏ธโฃ Custom (You choose) โข Pick different time ranges for each type 5๏ธโฃ Just going forward โข Start fresh from today 6๏ธโฃ Skip for now
User Chooses Processing Strategy
Use AskUserQuestion tool. If AskUserQuestion is not available, prompt in CLI with the same numbered options and capture the selection:
{
"questions": [{
"id": "granola_strategy",
"prompt": "How would you like to process your Granola data?",
"allow_multiple": false,
"options": [
{"id": "smart", "label": "1๏ธโฃ Smart default - People/companies (all) + Notes (30d) + Todos (7d)"},
{"id": "recent", "label": "2๏ธโฃ Recent only - Everything from last 7 days"},
{"id": "full", "label": "3๏ธโฃ Full history - Everything from all available data"},
{"id": "custom", "label": "4๏ธโฃ Custom - I'll choose time ranges for each type"},
{"id": "forward", "label": "5๏ธโฃ Just going forward - Start fresh from today"},
{"id": "skip", "label": "6๏ธโฃ Skip for now"}
]
}]
}Custom Mode Flow
If user selects "custom", ask for granular preferences:
{
"title": "Choose time ranges for historical data",
"questions": [
{
"id": "people_range",
"prompt": "People & Company Pages: How far back?",
"allow_multiple": false,
"options": [
{"id": "7d", "label": "Last 7 days"},
{"id": "30d", "label": "Last 30 days"},
{"id": "90d", "label": "Last 90 days"},
{"id": "all", "label": "All [days_back] days (recommended)"},
{"id": "none", "label": "Skip - don't create"}
]
},
{
"id": "notes_range",
"prompt": "Meeting Notes: How far back?",
"allow_multiple": false,
"options": [
{"id": "7d", "label": "Last 7 days"},
{"id": "30d", "label": "Last 30 days (recommended)"},
{"id": "90d", "label": "Last 90 days"},
{"id": "all", "label": "All [days_back] days"},
{"id": "none", "label": "Skip - don't create"}
]
},
{
"id": "todos_range",
"prompt": "Action Items / Todos: How far back?",
"allow_multiple": false,
"options": [
{"id": "7d", "label": "Last 7 days (recommended)"},
{"id": "30d", "label": "Last 30 days"},
{"id": "90d", "label": "Last 90 days"},
{"id": "all", "label": "All [days_back] days"}A personal operating system powered by Claude. Strategic work management, meeting intelligence, relationship tracking, daily planning โ all configured for your specific role. No coding required.
Repo: davekilleen/Dex
Other skills on davekilleen-dex.
- /agent-browser
Browser automation using Vercel's agent-browser CLI. Use when you need to interact with web pages, fill forms, take screenshots, or scrape data. Alternative to Playwright MCP - uses Bash commands with ref-based element selection. Triggers on "browse website", "fill form", "click
Open skill - /agent-native-architecture
Build applications where agents are first-class citizens. Use this skill when designing autonomous agents, creating MCP tools, implementing self-modifying systems, or building apps where features are outcomes achieved by agents operating in a loop.
Open skill - /andrew-kane-gem-writer
This skill should be used when writing Ruby gems following Andrew Kane's proven patterns and philosophy. It applies when creating new Ruby gems, refactoring existing gems, designing gem APIs, or when clean, minimal, production-ready Ruby library code is needed. Triggers on
Open skill - /brainstorming
This skill should be used before implementing features, building components, or making changes. It guides exploring user intent, approaches, and design decisions before planning. Triggers on "let's brainstorm", "help me think through", "what should we build", "explore
Open skill - /compound-docs
Capture solved problems as categorized documentation with YAML frontmatter for fast lookup
Open skill - /create-agent-skills
Expert guidance for creating, writing, and refining Claude Code Skills. Use when working with SKILL.md files, authoring new skills, improving existing skills, or understanding skill structure and best practices.
Open skill

