Official agent skill

Feature Analytics Instrumentation Planner

by mistralai in mistralai/mistral-vibe

Plans which analytics events and properties a new feature needs, checks them against the existing event registry, and verifies them per environment.

OfficialApache-2.0Auto-check passedData & Analytics

Install Feature Analytics Instrumentation Planner

skills CLI
$ npx skills add mistralai/mistral-vibe --skill instrument-feature-analytics -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install mistralai/mistral-vibe instrument-feature-analytics --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/mistralai/mistral-vibe.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.vibe/skills/instrument-feature-analytics .claude/skills/instrument-feature-analytics && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
instrument-feature-analytics
GitHub stars
5.1k
Token cost
~2.2k tokens
SKILL.md length
988 words
Files
1
Skills in repo
14
Repo updated
First seen
Licence
Apache-2.0

At a glance

Plans which analytics events and properties a new feature needs, checks them against the existing event registry, and verifies them per environment.

  • Works in 9 steps: Understand the feature and the metrics… → Check what already exists — reuse first,… → Naming → …
  • Deciding what to log before shipping a new feature
  • Calls uv
  • Checking whether an existing analytics event already covers a feature

What it does

This skill stands in for the data engineer a software engineer would normally have to go find before shipping telemetry for a new feature. It starts by asking what the feature is and what product and data people will want to measure about it - adoption, a funnel with drop-off points, how often a status changes, or whether a surface gets noticed - then maps those questions onto event patterns such as one event per funnel step with a shared id, paired impression and interaction events for discoverability, or one event per status transition carrying the old and new value.

Before anything is named or created, it checks what already exists in the event registry and the data lake so related features reuse existing events and properties rather than duplicating them. It can be entered either with a specific tracking question or with a new feature to instrument from scratch, walking the full set of steps in order for the latter.

It assumes events ultimately land in one shared logs table, and is meant to run through the full set of steps for a software engineer rather than being a loose checklist to skim once.

When your agent uses it

  • Deciding what to log before shipping a new feature
  • Checking whether an existing analytics event already covers a feature
  • Designing a funnel or lifecycle event schema for a new flow

Example prompts

  • “I'm adding a new onboarding step, help me track it.”
  • “What event should fire when a user discovers this feature?”
  • “Does an event already exist for subscription status changes?”

Workflow steps

9 steps, taken from the step headings in SKILL.md.

  1. Understand the feature and the metrics behind it
  2. Check what already exists — reuse first, create second
  3. Naming
  4. Standardized metadata
  5. Cover every surface
  6. PII
  7. Verify locally
  8. Verify in staging
  9. Verify in production

What it can do on your machine

Read from SKILL.md and the folder at commit 7cb9189. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • uv

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use uv, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Feature Analytics Instrumentation Planner loads about 2.2k tokens when it runs. Until then it costs about 92 tokens; SKILL.md has 988 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~92
When it runs · the whole SKILL.md, loaded when a task matches
~2.2k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from mistralai/mistral-vibe at commit 7cb9189, republished under its Apache-2.0 licence (© mistralai). 988 words, ~2,220 tokens.

Download SKILL.mdSave it as .claude/skills/instrument-feature-analytics/SKILL.md (or your agent's skills folder).
name
instrument-feature-analytics
description
Plan analytics instrumentation for a feature. Use when implementing any feature — every feature must ship with telemetry. Decides which events and properties the metrics need (funnels, adoption, status flows), checks compatibility with the existing datalake and event registry, and walks through local, staging, and production verification.
metadata.author
datascience-team
metadata.version
1.0
metadata.display-name
Instrument Feature Analytics
metadata.short-description
Plan and verify analytics instrumentation for features
metadata.default-prompt
Use $instrument-feature-analytics to plan the telemetry for a feature before writing tracking code.
user-invocable
true

Instrument a Feature for Analytics

Answer the tracking questions a software engineer would normally take to a data scientist or data engineer. When they bring one here, answer it the way a data person would, and proactively cover what they didn't think to ask.

The software engineer already knows how to emit an event technically. The hard part — and the reason they'd normally ask a data person — is deciding which events and properties matter for the metrics, and making sure they fit what already exists so the data is actually usable. Events land in mistral-data.lake_eu.logs_events.

Use the steps below as the full picture to reason from, not a rigid script: if the software engineer arrives with a specific question, answer that first, then pull in whatever other steps are relevant. If they arrive with "I'm adding feature X, help me track it", walk it in order.

Process

1. Understand the feature and the metrics behind it

Ask the software engineer a few questions before anything else:

  • What is the feature? (a new onboarding step, a way to discover a feature, a status/lifecycle change, an action users repeat…)
  • What will product and data want to measure about it? Adoption? A funnel and where people drop off? How often a status changes? Whether a surface gets noticed?

Then translate those questions into the events and properties that would answer them. Common patterns:

  • Funnel (e.g. onboarding): one event per step (started, step_completed, completed), with a property identifying the step and its order, plus a shared id to stitch the steps of one user together.
  • Discoverability: distinguish seen from acted on — an impression event when the thing is shown and an interaction event when the user engages, so you can compute a noticed→used rate.
  • Status / lifecycle updates: one event per transition carrying from_status and to_status (and what triggered it), so changes can be reconstructed over time.
  • Repeated action / engagement: one event per occurrence with enough context (what, where) to segment it.

The goal of this step is coverage: make sure every question the software engineer named maps to at least one event + the properties needed to slice it. Naming comes after.

2. Check what already exists — reuse first, create second

Before defining any new event, search for existing events that already capture the same (or similar) user action. A new event that duplicates an existing one fragments the data and makes downstream queries harder.

Check datalake-dbt on the software engineer's behalf (they never have to open that repo):

  • Read the event registry (datalake-dbt/event_registry/<service>.yml) for the software engineer's service and for neighboring services that touch the same domain. Grep broadly — the event you need may already exist under a slightly different name or in a different service's namespace.
  • If an existing event covers the action but is missing a property, extend it (add the property) rather than creating a parallel event.
  • If no existing event fits, create a new one — but reuse property names and types from related events so the new data composes with the old instead of fragmenting it.
  • Keep one stable type per property and avoid nesting deeper than two levels — these are what let the data be modeled cleanly and stay queryable over time.

Flag anything that would force an awkward downstream change or that won't age well, and propose the compatible shape instead.

3. Naming

Names are a data-consistency concern, so keep them conventional: <prefix>.<noun>.<verb>, snake_case, dot-namespaced, at least two segments — the prefix maps to the service (e.g. vibe.session_initialized, harmattan.completion.done). Reuse the wording of existing similar events rather than inventing a parallel vocabulary.

Show full SKILL.md (395 more words)Show less
4. Standardized metadata

Every event must populate the standardized metadata block (properties.metadata): call_source, call_type, session_id... Look at existing events in the registry to see which metadata fields are used for the service and carry them over.

5. Cover every surface

The same user action on web, cli, mobile, and api must emit the same event with the same properties. List the surfaces in step 1 and confirm each one emits.

6. PII

If any property carries personally identifiable data (raw user content, email, file path, names), flag it explicitly to the data team before shipping — it changes how the field must be stored and queried. Prefer sending an ID over the raw value.

7. Verify locally

Run the app with DEBUG_LEVEL=1 uv run vibe — every telemetry event is logged right before the API call. If the log line appears, the event will reach the pipeline. Use this to confirm the event fires with the expected properties before deploying.

8. Verify in staging

After deploying to the staging environment, trigger the action a few times per surface, then run the verification queries below against mistral-data.lake_eu.logs_events_staging. Confirm events fire with the right properties and values before promoting to production.

9. Verify in production

After shipping to production, repeat the same manual tests and run the queries against mistral-data.lake_eu.logs_events.

Verification queries

Run these in Metabase or via the BigQuery connector. Use logs_events_staging when verifying in staging, logs_events in production.

Volumetry + completeness of every property — fill in your event name(s):

sql
WITH events AS (
  SELECT event, properties
  FROM `mistral-data.lake_eu.logs_events`
  WHERE timestamp >= TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 24 HOUR)
    AND event IN UNNEST(['vibe.session_initialized'])   -- <- your event name(s)
),
totals AS (
  SELECT event, COUNT(*) AS total_events
  FROM events
  GROUP BY event
),
property_presence AS (
  SELECT event, key AS property, COUNT(*) AS present
  FROM events, UNNEST(JSON_KEYS(properties, 2)) AS key   -- depth 2 = includes metadata.*
  GROUP BY event, key
)
SELECT
  t.event,
  t.total_events,
  p.property,
  p.present,
  ROUND(p.present / t.total_events, 3) AS completeness   -- 1.0 = present on every event
FROM totals t
LEFT JOIN property_presence p USING (event)
ORDER BY t.event, completeness DESC;

Read it as: total_events non-zero and roughly matching your manual test count means the event reaches the lake. Every property you meant to always send should read 1.0; below that, some code path or surface isn't sending it. A property you expected but don't see at all never fired.

Distinct values of each property — this catches what completeness misses (a field always present but always the same wrong constant, an enum sending an unexpected value, an ID coming through empty). List the properties worth inspecting (categorical / enum-like ones; skip high-cardinality IDs):

sql
WITH events AS (
  SELECT properties
  FROM `mistral-data.lake_eu.logs_events`
  WHERE timestamp >= TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 24 HOUR)
    AND event IN UNNEST(['vibe.session_initialized'])   -- <- your event name(s)
)
-- one block per property you want to inspect; add/remove blocks as needed:
SELECT 'surface'      AS property, JSON_VALUE(properties, '$.surface')      AS value, COUNT(*) AS n FROM events GROUP BY value
UNION ALL
SELECT 'warm_claimed' AS property, JSON_VALUE(properties, '$.warm_claimed') AS value, COUNT(*) AS n FROM events GROUP BY value
ORDER BY property, n DESC;

Each row is a value and how often it appeared. Check the set of values is what you expect (e.g. surface shows web and cli and nothing weird) and that nothing is unexpectedly NULL or empty.

To confirm per-surface coverage from step 5, break volumetry down by surface:

sql
SELECT event, JSON_VALUE(properties, '$.surface') AS surface, COUNT(*) AS n
FROM `mistral-data.lake_eu.logs_events`
WHERE timestamp >= TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 24 HOUR)
  AND event IN UNNEST(['vibe.session_initialized'])
GROUP BY event, surface
ORDER BY n DESC;

Every surface you expected should appear with a non-zero count.

© mistralai, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .vibe/skills/instrument-feature-analytics of mistralai/mistral-vibe.

Open the folder on GitHubat commit 7cb9189

Compare with similar skills

Feature Analytics Instrumentation Planner next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Feature Analytics Instrumentation Planner compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Feature Analytics Instrumentation Planner this skillmistralai/mistral-vibe5.1k—~2.2kAutomated safety check: PassApache-2.0
Data And Funnel Analyticsmanojbajaj95/claude-gtm-plugin105—~2.9kAutomated safety check: PassMIT
Analytics Interpretationgustavscirulis/snapgrid1171 repos~4.1kAutomated safety check: PassCustom licence
Product Metrics Dashboard Designphuryn/pm-skills27k—~1.3kAutomated safety check: PassMIT
Pm Metricsserejaris/personal-corp-os229—~3kAutomated safety check: PassMIT
Product Analyticsmajiayu000/spellbook287—~2.7kAutomated safety check: PassMIT

Similar skills

  • Data And Funnel Analytics

    manojbajaj95/claude-gtm-plugin

    Analytics tracking, interpretation, funnel analysis, product metrics, and ROI measurement.

    105 GitHub stars~2.9k tokensUpdated 21 days ago
    Data & AnalyticsAuto-check passed
  • Analytics Interpretation

    gustavscirulis/snapgrid

    Interpret app metrics and make data-driven decisions. An agent skill from gustavscirulis/snapgrid.

    117 GitHub starsUsed in 1 repo~4.1k tokens
    Data & AnalyticsAuto-check passed
  • Designs a product metrics dashboard: a North Star and input metrics, a definition table with data sources, chart types and alert thresholds, and a screen layout.

    27k GitHub stars~1.3k tokensUpdated 24 days ago
    Product & Project ManagementAuto-check passed
  • Pm Metrics

    serejaris/personal-corp-os

    Делает ревью продуктовых метрик — тренды, аномалии, root causes и рекомендации к действиям.

    229 GitHub stars~3k tokensUpdated yesterday
    Data & AnalyticsAuto-check passed
  • Product Analytics

    majiayu000/spellbook

    Product analytics and growth expert. An agent skill from majiayu000/spellbook.

    287 GitHub stars~2.7k tokensUpdated yesterday
    Data & AnalyticsAuto-check passed
  • Data Analysis Standard

    mohitagw15856/pm-claude-skills

    Structure a product data analysis, metric deep-dive, funnel analysis, or cohort study.

    1.4k GitHub stars~1.7k tokensUpdated yesterday
    Data & AnalyticsAuto-check passed

More from mistralai/mistral-vibe

All 14 skills in this repo
  • Mistral Vibe Plugin Creator

    mistralai/mistral-vibe

    Official

    Shows how to build a Vibe plugin package in the Agent Plugins 1.0 format, with a plugin.json manifest and optional skills, MCP servers, hooks and other components.

    5.1k GitHub stars~3.1k tokensUpdated 2 days ago
    Auto-check passed
  • Create Vibe Feature

    mistralai/mistral-vibe

    Official

    Guides feature work in the Mistral Vibe Python CLI so each change lands in the right module and matches the project's architecture decision records.

    5.1k GitHub stars~1.2k tokensUpdated 2 days ago
    Auto-check passed
  • Vibe Worktree Manager

    mistralai/mistral-vibe

    Official

    Creates, reuses and cleans up git worktrees under a shared vibe home directory, with per-repo buckets, claim records and dirty-state checks before removal.

    5.1k GitHub stars~1.2k tokensUpdated 2 days ago
    Auto-check passed
  • Write Vibe ADR

    mistralai/mistral-vibe

    Official

    Creates or updates concise Architecture Decision Records for the Mistral Vibe CLI and registers each one in the AGENTS.md decisions table.

    5.1k GitHub stars~942 tokensUpdated 2 days ago
    Auto-check passed
  • Write Vibe Tests

    mistralai/mistral-vibe

    Official

    Guides writing or refactoring tests for the Mistral Vibe CLI agent so they check behavior through stable boundaries, like tool invocation or saved session shape, instead of internal calls.

    5.1k GitHub stars~1.2k tokensUpdated 2 days ago
    Auto-check passed
  • Mistral Vibe CLI Reference

    mistralai/mistral-vibe

    Official

    Reference for Mistral Vibe, the CLI agent it runs inside: config files, env vars, agents, skills, tools, hooks and MCP servers, so the agent can explain and troubleshoot its own setup.

    5.1k GitHub stars~14k tokensUpdated 2 days ago
    Auto-check: notes

Questions about Feature Analytics Instrumentation Planner

What does Feature Analytics Instrumentation Planner do?

Plans which analytics events and properties a new feature needs, checks them against the existing event registry, and verifies them per environment. This skill stands in for the data engineer a software engineer would normally have to go find before shipping telemetry for a new feature. It starts by asking what the feature is and what product and data people will want to measure about it - adoption, a funnel with drop-off points, how often a status changes, or whether a surface gets noticed - then maps those questions onto event patterns such as one event per funnel step with a shared id, paired impression and interaction events for discoverability, or one event per status transition carrying the old and new value.

When should I use Feature Analytics Instrumentation Planner?

Feature Analytics Instrumentation Planner fits situations like: deciding what to log before shipping a new feature; checking whether an existing analytics event already covers a feature; designing a funnel or lifecycle event schema for a new flow.

How do I install Feature Analytics Instrumentation Planner in Claude Code?

Run `npx skills add mistralai/mistral-vibe --skill instrument-feature-analytics -a claude-code`. Or copy the skill folder (.vibe/skills/instrument-feature-analytics in mistralai/mistral-vibe) into .claude/skills/instrument-feature-analytics in your project. Claude Code loads it when a task matches its description.

How do I install Feature Analytics Instrumentation Planner in Codex?

Run `npx skills add mistralai/mistral-vibe --skill instrument-feature-analytics -a codex`. Or copy the skill folder (.vibe/skills/instrument-feature-analytics in mistralai/mistral-vibe) into .agents/skills/instrument-feature-analytics in your project. Codex loads it when a task matches its description.

Can I use Feature Analytics Instrumentation Planner in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add mistralai/mistral-vibe --skill instrument-feature-analytics -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/instrument-feature-analytics, .gemini/skills/instrument-feature-analytics, .github/skills/instrument-feature-analytics and .opencode/skills/instrument-feature-analytics in your project.

What does Feature Analytics Instrumentation Planner need to run?

Going by SKILL.md and its folder, Feature Analytics Instrumentation Planner needs the command-line tools its instructions call (uv).

Does Feature Analytics Instrumentation Planner access the network?

SKILL.md contains no URLs. Its commands use uv, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Feature Analytics Instrumentation Planner safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Feature Analytics Instrumentation Planner use?

Feature Analytics Instrumentation Planner is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Feature Analytics Instrumentation Planner use?

About 2.2k tokens (SKILL.md is roughly 8.9k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Feature Analytics Instrumentation Planner?

Skills that share tags, products or a category with Feature Analytics Instrumentation Planner: Data And Funnel Analytics (manojbajaj95/claude-gtm-plugin, 105 stars), Analytics Interpretation (gustavscirulis/snapgrid, 117 stars), Product Metrics Dashboard Design (phuryn/pm-skills, 27k stars) and Pm Metrics (serejaris/personal-corp-os, 229 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Feature Analytics Instrumentation Planner?

mistralai (a GitHub organization, an official publisher) maintains it in mistralai/mistral-vibe, which has 5,085 GitHub stars. The repository holds 14 skills in this directory. The repository was last updated on October 7, 2026.

Source: mistralai/mistral-vibe on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.