Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .agents/skills/create-mcp/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -732,7 +732,7 @@ See `.claude/reference/skill-analytics-checklist.md` for detailed guidance.

## Track Usage (Silent)

Update `System/usage_log.md` to mark MCP creation as used.
Call the `mark_feature_used` tool on the `dex-analytics` MCP server with `create-mcp`. This ticks the feature's box in `System/usage_log.md`, which is what `/dex-level-up` reads to recommend features that have not been tried. It writes locally and sends nothing, so it runs whether or not analytics is enabled.

**Analytics (Silent):**

Expand Down
2 changes: 1 addition & 1 deletion .agents/skills/daily-plan/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -744,7 +744,7 @@ After generating the plan, push today's P0 and P1 focus tasks to Apple Reminders

## Step 8: Track Usage (Silent)

Update `System/usage_log.md` to mark daily planning as used.
Call the `mark_feature_used` tool on the `dex-analytics` MCP server with `daily-plan`. This ticks the feature's box in `System/usage_log.md`, which is what `/dex-level-up` reads to recommend features that have not been tried. It writes locally and sends nothing, so it runs whether or not analytics is enabled.

**Analytics (Silent):**

Expand Down
2 changes: 1 addition & 1 deletion .agents/skills/daily-review/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -396,7 +396,7 @@ At the end of the review, check if there's a relevant backlog idea to surface:

## Step 10: Track Usage (Silent)

Update `System/usage_log.md` to mark daily review as used.
Call the `mark_feature_used` tool on the `dex-analytics` MCP server with `daily-review`. This ticks the feature's box in `System/usage_log.md`, which is what `/dex-level-up` reads to recommend features that have not been tried. It writes locally and sends nothing, so it runs whether or not analytics is enabled.

**Analytics (Silent):**

Expand Down
2 changes: 1 addition & 1 deletion .agents/skills/dex-backlog/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -637,7 +637,7 @@ But you're still the decision maker. If a low-scoring idea excites you, workshop

## Track Usage (Silent)

Update `System/usage_log.md` to mark backlog review as used.
Call the `mark_feature_used` tool on the `dex-analytics` MCP server with `dex-backlog`. This ticks the feature's box in `System/usage_log.md`, which is what `/dex-level-up` reads to recommend features that have not been tried. It writes locally and sends nothing, so it runs whether or not analytics is enabled.

**Analytics (Silent):**

Expand Down
2 changes: 1 addition & 1 deletion .agents/skills/dex-improve/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -411,7 +411,7 @@ This isn't just requirements gathering—it's capability-aware design. The goal

## Track Usage (Silent)

Update `System/usage_log.md` to mark improvement workshop as used.
Call the `mark_feature_used` tool on the `dex-analytics` MCP server with `dex-improve`. This ticks the feature's box in `System/usage_log.md`, which is what `/dex-level-up` reads to recommend features that have not been tried. It writes locally and sends nothing, so it runs whether or not analytics is enabled.

**Analytics (Silent):**

Expand Down
2 changes: 1 addition & 1 deletion .agents/skills/dex-obsidian-setup/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -142,7 +142,7 @@ You can still use Dex in Cursor/terminal exactly as before. Wiki links work ever

## Track Usage (Silent)

Update `System/usage_log.md` to mark Obsidian setup as used.
Call the `mark_feature_used` tool on the `dex-analytics` MCP server with `dex-obsidian-setup`. This ticks the feature's box in `System/usage_log.md`, which is what `/dex-level-up` reads to recommend features that have not been tried. It writes locally and sends nothing, so it runs whether or not analytics is enabled.

**Analytics (Silent):**

Expand Down
2 changes: 1 addition & 1 deletion .agents/skills/dex-whats-new/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -419,7 +419,7 @@ Then proceed with first-run behavior.

## Track Usage (Silent)

Update `System/usage_log.md` to mark what's new check as used.
Call the `mark_feature_used` tool on the `dex-analytics` MCP server with `dex-whats-new`. This ticks the feature's box in `System/usage_log.md`, which is what `/dex-level-up` reads to recommend features that have not been tried. It writes locally and sends nothing, so it runs whether or not analytics is enabled.

**Analytics (Silent):**

Expand Down
2 changes: 1 addition & 1 deletion .agents/skills/getting-started/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -949,7 +949,7 @@ else:

## Track Usage (Silent)

Update `System/usage_log.md` to mark getting started as used.
Call the `mark_feature_used` tool on the `dex-analytics` MCP server with `getting-started`. This ticks the feature's box in `System/usage_log.md`, which is what `/dex-level-up` reads to recommend features that have not been tried. It writes locally and sends nothing, so it runs whether or not analytics is enabled.

**Analytics (Silent):**

Expand Down
2 changes: 1 addition & 1 deletion .agents/skills/integrate-mcp/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -379,7 +379,7 @@ The experience feels like:

## Track Usage (Silent)

Update `System/usage_log.md` to mark MCP integration as used.
Call the `mark_feature_used` tool on the `dex-analytics` MCP server with `integrate-mcp`. This ticks the feature's box in `System/usage_log.md`, which is what `/dex-level-up` reads to recommend features that have not been tried. It writes locally and sends nothing, so it runs whether or not analytics is enabled.

**Analytics (Silent):**

Expand Down
20 changes: 19 additions & 1 deletion .agents/skills/journal/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -175,7 +175,25 @@ Perfect. Your morning journal is saved. Ready to build your daily plan around th

## Track Usage (Silent)

Update `System/usage_log.md` to mark journaling as used.
This skill has two distinct modes and the usage log has a separate line for each, so
**which one you record depends on the mode you just ran**:

| Mode | Record |
|------|--------|
| `/journal on`, `/journal off` | Call the `mark_feature_used` tool on the `dex-analytics` MCP server with `Journaling setup` |
| `/journal`, `/journal morning`, `/journal evening`, `/journal week` | Call the `mark_feature_used` tool on the `dex-analytics` MCP server with `Journaling` |

Record exactly one, for the mode that actually ran. Turning journaling on is not the same as
writing an entry, and a single unconditional call would mean `Journaling setup` could never
be ticked by the only command that performs it.

Both are named by **label** rather than by `/journal`, because that command appears against
both lines and the tool refuses to guess between them; passing `/journal` returns `ambiguous`
and records nothing.

This ticks the feature's box in `System/usage_log.md`, which is what `/dex-level-up` reads to
recommend features that have not been tried. It writes locally and sends nothing, so it runs
whether or not analytics is enabled.

**Analytics (Silent):**

Expand Down
2 changes: 1 addition & 1 deletion .agents/skills/meeting-prep/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -460,7 +460,7 @@ After the meeting:

## Track Usage (Silent)

Update `System/usage_log.md` to mark meeting prep as used.
Call the `mark_feature_used` tool on the `dex-analytics` MCP server with `meeting-prep`. This ticks the feature's box in `System/usage_log.md`, which is what `/dex-level-up` reads to recommend features that have not been tried. It writes locally and sends nothing, so it runs whether or not analytics is enabled.

**Analytics (Silent):**

Expand Down
2 changes: 1 addition & 1 deletion .agents/skills/process-meetings/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -529,7 +529,7 @@ For MCP responses, follow CLAUDE.md's `feature_status` rendering convention befo

## Track Usage (Silent)

Update `System/usage_log.md` to mark meeting processing as used.
Call the `mark_feature_used` tool on the `dex-analytics` MCP server with `process-meetings`. This ticks the feature's box in `System/usage_log.md`, which is what `/dex-level-up` reads to recommend features that have not been tried. It writes locally and sends nothing, so it runs whether or not analytics is enabled.

**Analytics (Silent):**

Expand Down
2 changes: 1 addition & 1 deletion .agents/skills/product-brief/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -807,7 +807,7 @@ If any are missing, prompt user to fill gaps before finalizing.

## Track Usage (Silent)

Update `System/usage_log.md` to mark product brief as used.
Call the `mark_feature_used` tool on the `dex-analytics` MCP server with `product-brief`. This ticks the feature's box in `System/usage_log.md`, which is what `/dex-level-up` reads to recommend features that have not been tried. It writes locally and sends nothing, so it runs whether or not analytics is enabled.

**Analytics (Silent):**

Expand Down
2 changes: 1 addition & 1 deletion .agents/skills/project-health/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ For red projects:

## Track Usage (Silent)

Update `System/usage_log.md` to mark project health check as used.
Call the `mark_feature_used` tool on the `dex-analytics` MCP server with `project-health`. This ticks the feature's box in `System/usage_log.md`, which is what `/dex-level-up` reads to recommend features that have not been tried. It writes locally and sends nothing, so it runs whether or not analytics is enabled.

**Analytics (Silent):**

Expand Down
2 changes: 1 addition & 1 deletion .agents/skills/prompt-improver/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -228,7 +228,7 @@ Without the API key, the skill still works using the current LLM session.

## Track Usage (Silent)

Update `System/usage_log.md` to mark prompt improvement as used.
Call the `mark_feature_used` tool on the `dex-analytics` MCP server with `prompt-improver`. This ticks the feature's box in `System/usage_log.md`, which is what `/dex-level-up` reads to recommend features that have not been tried. It writes locally and sends nothing, so it runs whether or not analytics is enabled.

**Analytics (Silent):**

Expand Down
2 changes: 1 addition & 1 deletion .agents/skills/save-insight/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ Be specific. Include the gotcha. Make it searchable.

## Track Usage (Silent)

Update `System/usage_log.md` to mark learning capture as used.
Call the `mark_feature_used` tool on the `dex-analytics` MCP server with `save-insight`. This ticks the feature's box in `System/usage_log.md`, which is what `/dex-level-up` reads to recommend features that have not been tried. It writes locally and sends nothing, so it runs whether or not analytics is enabled.

**Analytics (Silent):**

Expand Down
2 changes: 1 addition & 1 deletion .agents/skills/triage/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -402,7 +402,7 @@ No configuration needed - triage adapts as your structure grows.

## Track Usage (Silent)

Update `System/usage_log.md` to mark inbox triage as used.
Call the `mark_feature_used` tool on the `dex-analytics` MCP server with `triage`. This ticks the feature's box in `System/usage_log.md`, which is what `/dex-level-up` reads to recommend features that have not been tried. It writes locally and sends nothing, so it runs whether or not analytics is enabled.

**Analytics (Silent):**

Expand Down
2 changes: 1 addition & 1 deletion .agents/skills/week-plan/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -421,7 +421,7 @@ Create updated `02-Week_Priorities/Week_Priorities.md`:

## Step 7: Track Usage (Silent)

Update `System/usage_log.md`.
Call the `mark_feature_used` tool on the `dex-analytics` MCP server with `week-plan`. This ticks the feature's box in `System/usage_log.md`, which is what `/dex-level-up` reads to recommend features that have not been tried. It writes locally and sends nothing, so it runs whether or not analytics is enabled.

**Analytics (Silent):**

Expand Down
2 changes: 1 addition & 1 deletion .agents/skills/week-review/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -570,7 +570,7 @@ After synthesis:

## Track Usage (Silent)

Update `System/usage_log.md` to mark weekly review as used.
Call the `mark_feature_used` tool on the `dex-analytics` MCP server with `week-review`. This ticks the feature's box in `System/usage_log.md`, which is what `/dex-level-up` reads to recommend features that have not been tried. It writes locally and sends nothing, so it runs whether or not analytics is enabled.

**Analytics (Silent):**

Expand Down
23 changes: 19 additions & 4 deletions .claude/reference/skill-analytics-checklist.md
Original file line number Diff line number Diff line change
Expand Up @@ -67,22 +67,37 @@ Add to your skill's SKILL.md (at the end of the workflow):
```markdown
## Analytics

At completion, if analytics is enabled:
At completion:

1. Fire event: `fire_event('your_skill_completed', {'items': count, 'mode': selected_mode})`
2. Mark feature used: `mark_feature_used('Your feature name')`
1. Fire event (only if analytics is enabled):
`fire_event('your_skill_completed', {'items': count, 'mode': selected_mode})`
2. Record adoption (always, analytics or not): call the `mark_feature_used` tool on the
`dex-analytics` MCP server with your skill's slash command, e.g. `daily-plan`.
```

**These two are not the same thing.** `fire_event` sends a product event and is gated on
analytics consent. `mark_feature_used` ticks a box in `System/usage_log.md`, writes nothing
anywhere else, and runs regardless of consent, because `/dex-level-up` reads that file to
recommend features the user has not tried yet.

Or for MCP tools, add to the Python handler:

```python
from analytics_helper import fire_event, mark_feature_used

# At end of tool execution
fire_event('tool_name_used', {'property': value})
mark_feature_used('Feature name')

# Identify the feature by its slash command, or by the exact label in usage_log.md
result = mark_feature_used('your-skill')
# result['status'] is one of:
# marked | already_marked | ambiguous | not_found | unavailable
```

**Check the status.** `not_found` means the feature has no line in `usage_log.md` and the
call did nothing; `ambiguous` means several lines matched and it refused to guess. Both are
returned rather than raised, so they will pass silently if nobody looks.

---

## 5. Privacy Check
Expand Down
2 changes: 1 addition & 1 deletion .claude/skills/create-mcp/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -730,7 +730,7 @@ See `.claude/reference/skill-analytics-checklist.md` for detailed guidance.

## Track Usage (Silent)

Update `System/usage_log.md` to mark MCP creation as used.
Call the `mark_feature_used` tool on the `dex-analytics` MCP server with `create-mcp`. This ticks the feature's box in `System/usage_log.md`, which is what `/dex-level-up` reads to recommend features that have not been tried. It writes locally and sends nothing, so it runs whether or not analytics is enabled.

**Analytics (Silent):**

Expand Down
2 changes: 1 addition & 1 deletion .claude/skills/create-skill/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -130,6 +130,6 @@ A good run leaves behind a skill that **fires on the user's real phrasing, route

## Track Usage (Silent)

Update `System/usage_log.md` to mark custom skill creation as used.
Call the `mark_feature_used` tool on the `dex-analytics` MCP server with `create-skill`. This ticks the feature's box in `System/usage_log.md`, which is what `/dex-level-up` reads to recommend features that have not been tried. It writes locally and sends nothing, so it runs whether or not analytics is enabled.

**Analytics (Silent):** Call `track_event` with event_name `custom_skill_created` and no properties (never include skill names). Fires only if the user opted into analytics; no action if it returns "analytics_disabled".
2 changes: 1 addition & 1 deletion .claude/skills/daily-plan/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -753,7 +753,7 @@ After generating the plan, push today's P0 and P1 focus tasks to Apple Reminders

## Step 8: Track Usage (Silent)

Update `System/usage_log.md` to mark daily planning as used.
Call the `mark_feature_used` tool on the `dex-analytics` MCP server with `daily-plan`. This ticks the feature's box in `System/usage_log.md`, which is what `/dex-level-up` reads to recommend features that have not been tried. It writes locally and sends nothing, so it runs whether or not analytics is enabled.

**Analytics (Silent):**

Expand Down
2 changes: 1 addition & 1 deletion .claude/skills/daily-review/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -394,7 +394,7 @@ At the end of the review, check if there's a relevant backlog idea to surface:

## Step 10: Track Usage (Silent)

Update `System/usage_log.md` to mark daily review as used.
Call the `mark_feature_used` tool on the `dex-analytics` MCP server with `daily-review`. This ticks the feature's box in `System/usage_log.md`, which is what `/dex-level-up` reads to recommend features that have not been tried. It writes locally and sends nothing, so it runs whether or not analytics is enabled.

**Analytics (Silent):**

Expand Down
2 changes: 1 addition & 1 deletion .claude/skills/dex-add-mcp/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ claude mcp add --scope project github --transport http https://api.githubcopilot

## Track Usage (Silent)

Update `System/usage_log.md` to mark MCP addition as used.
Call the `mark_feature_used` tool on the `dex-analytics` MCP server with `dex-add-mcp`. This ticks the feature's box in `System/usage_log.md`, which is what `/dex-level-up` reads to recommend features that have not been tried. It writes locally and sends nothing, so it runs whether or not analytics is enabled.

**Analytics (Silent):**

Expand Down
2 changes: 1 addition & 1 deletion .claude/skills/dex-backlog/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -635,7 +635,7 @@ But you're still the decision maker. If a low-scoring idea excites you, workshop

## Track Usage (Silent)

Update `System/usage_log.md` to mark backlog review as used.
Call the `mark_feature_used` tool on the `dex-analytics` MCP server with `dex-backlog`. This ticks the feature's box in `System/usage_log.md`, which is what `/dex-level-up` reads to recommend features that have not been tried. It writes locally and sends nothing, so it runs whether or not analytics is enabled.

**Analytics (Silent):**

Expand Down
2 changes: 1 addition & 1 deletion .claude/skills/dex-improve/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -409,7 +409,7 @@ This isn't just requirements gathering—it's capability-aware design. The goal

## Track Usage (Silent)

Update `System/usage_log.md` to mark improvement workshop as used.
Call the `mark_feature_used` tool on the `dex-analytics` MCP server with `dex-improve`. This ticks the feature's box in `System/usage_log.md`, which is what `/dex-level-up` reads to recommend features that have not been tried. It writes locally and sends nothing, so it runs whether or not analytics is enabled.

**Analytics (Silent):**

Expand Down
16 changes: 14 additions & 2 deletions .claude/skills/dex-level-up/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -278,7 +278,17 @@ Just say the number or feature name, and I'll guide you through it.

## Step 6: Track Adoption (Silent)

When user tries a recommended feature, silently update `System/usage_log.md` by checking the box for that feature.
When the user tries a recommended feature, record it by calling the `mark_feature_used` tool on
the `dex-analytics` MCP server with **that feature's** slash command (not this skill's). The tool
ticks the box, refuses to guess when a name is ambiguous, and returns a status: `marked`,
`already_marked`, `ambiguous`, `not_found` or `unavailable`.

**Check the status.** `not_found` means the feature has no line in the log and nothing was
recorded; `ambiguous` means several lines matched and it declined to choose. Both pass silently
if nobody looks, and this skill is the one that suffers, because it reads this log to decide what
to recommend next.

**Also record this skill's own use.** Call the `mark_feature_used` tool on the `dex-analytics` MCP server with `dex-level-up`.

**Update triggers:**
- User runs a command → Check command box
Expand All @@ -289,7 +299,9 @@ When user tries a recommended feature, silently update `System/usage_log.md` by
- **User runs role-specific skill** → Check "Used" box in Role-Specific Skills section

**Update method:**
- Simple find/replace: `- [ ] Feature` → `- [x] Feature`
- The `mark_feature_used` tool, once per feature. Do not hand-edit the file: the write goes
through a guarded lifecycle operation that validates the path, preserves the file mode and
stops a concurrent consent update losing this change.
- No announcement needed

**Role-Specific Skills Tracking:**
Expand Down
2 changes: 1 addition & 1 deletion .claude/skills/dex-obsidian-setup/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -140,7 +140,7 @@ You can still use Dex in Cursor/terminal exactly as before. Wiki links work ever

## Track Usage (Silent)

Update `System/usage_log.md` to mark Obsidian setup as used.
Call the `mark_feature_used` tool on the `dex-analytics` MCP server with `dex-obsidian-setup`. This ticks the feature's box in `System/usage_log.md`, which is what `/dex-level-up` reads to recommend features that have not been tried. It writes locally and sends nothing, so it runs whether or not analytics is enabled.

**Analytics (Silent):**

Expand Down
2 changes: 1 addition & 1 deletion .claude/skills/dex-whats-new/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -417,7 +417,7 @@ Then proceed with first-run behavior.

## Track Usage (Silent)

Update `System/usage_log.md` to mark what's new check as used.
Call the `mark_feature_used` tool on the `dex-analytics` MCP server with `dex-whats-new`. This ticks the feature's box in `System/usage_log.md`, which is what `/dex-level-up` reads to recommend features that have not been tried. It writes locally and sends nothing, so it runs whether or not analytics is enabled.

**Analytics (Silent):**

Expand Down
2 changes: 1 addition & 1 deletion .claude/skills/getting-started/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -947,7 +947,7 @@ else:

## Track Usage (Silent)

Update `System/usage_log.md` to mark getting started as used.
Call the `mark_feature_used` tool on the `dex-analytics` MCP server with `getting-started`. This ticks the feature's box in `System/usage_log.md`, which is what `/dex-level-up` reads to recommend features that have not been tried. It writes locally and sends nothing, so it runs whether or not analytics is enabled.

**Analytics (Silent):**

Expand Down
2 changes: 1 addition & 1 deletion .claude/skills/integrate-mcp/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -377,7 +377,7 @@ The experience feels like:

## Track Usage (Silent)

Update `System/usage_log.md` to mark MCP integration as used.
Call the `mark_feature_used` tool on the `dex-analytics` MCP server with `integrate-mcp`. This ticks the feature's box in `System/usage_log.md`, which is what `/dex-level-up` reads to recommend features that have not been tried. It writes locally and sends nothing, so it runs whether or not analytics is enabled.

**Analytics (Silent):**

Expand Down
Loading
Loading