score-lexicon

score-lexicon is a command for coding agents from mixpanel/ai-plugins. It costs 0 tokens per session (1,239 once invoked), scanned A, original, Apache-2.0.

A command that checks how completely a Mixpanel Lexicon is documented and produces a health score from 0 to 100. A Lexicon is the catalogue of tracked events and properties used to describe product analytics data.

In plain words
What is it for?
Use it to fetch event and property metadata, audit coverage, include event-volume rankings when available, and report the resulting Lexicon health score.
Why use it?
It identifies missing or incomplete analytics metadata, which can make reports and event analysis harder to trust. It still produces a score when volume-ranking data is unavailable, with less detailed issue prioritisation.

Command

Part of the mixpanel plugin — 12 skills, 23 commands shipped together

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add commands/mixpanel/ai-plugins/score-lexicon
Clone the repo
git clone --depth 1 https://github.com/mixpanel/ai-plugins

Or install mixpanel, the plugin that ships this one along with the rest of its 12 skills, 23 commands.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for score-lexicon

README.md
[![agentmods](https://agentmods.dev/badge/commands/mixpanel/ai-plugins/score-lexicon.svg)](https://agentmods.dev/commands/mixpanel/ai-plugins/score-lexicon)
Your own site
<a href="https://agentmods.dev/commands/mixpanel/ai-plugins/score-lexicon"><img src="https://agentmods.dev/badge/commands/mixpanel/ai-plugins/score-lexicon.svg" alt="Measured on agentmods" height="20"></a>
Per session 0 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 1,239 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00000 $0.01239
Opus 5 $0.00000 $0.00620
Sonnet 5 $0.00000 $0.00248
Haiku 4.5 $0.00000 $0.00124

Measured 4d ago against content hash aeb38d2cd0cd, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

score-lexicon scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 4d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

plugins/mixpanel/skills/manage-lexicon/commands/score-lexicon.md · 148 lines

How it starts

The opening of the file, as written. The whole thing — 148 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Command — Score Lexicon

Session reads: event_list, event_details_cache, property_names, volume_rank_map Session writes: event_list, event_details_cache, property_names, property_details_cache, volume_rank_map

Audit Lexicon metadata coverage and compute a health score (0–100). Self-contained pipeline: fetch → audit → score → report. Execute silently — no phase announcements.


Phase 1 — Fetch Schema

Load the events, properties, and volume ranking the audit needs.

Ensure the required Session reads are loaded; load any that aren't.

  • Events + metadata. Load event metadata for the full project.
  • Volume ranking. Run the payload in assets/volume-ranking-query.json. Parse the response into volume_rank_map: { event_name: { volume, rank } }. If the query fails, proceed with volume_rank_map = {} — downstream degrades gracefully (the score still renders; severity scoring in review-issues skips the volume tiebreaker).
  • Properties + metadata. Load property metadata for event properties and user properties separately. Merge into property_names: { event: [...], user: [...] } and property_details_cache.

Phase 2 — Audit Event Metadata

Score every event in the working set against the four metadata fields plus hygiene.

Field Pass condition
description Non-null, non-empty
display_name Non-null AND differs from raw event name
verified true
tags Non-empty array
hygiene Zero 7-day volume → must be hidden/dropped. If not → ⚠️

Compute per-field coverage: (pass count) / (working set size) × 100.

Collect zero-metadata events (all four of description, display_name, verified, tags fail).

Read the full file on GitHub · 148 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 4d ago First seen · 148 lines · 0 tokens per session scan A aeb38d2cd0cd

Subscribe to this mod's changes

score-lexicon is a command published in the GitHub repository mixpanel/ai-plugins (15 stars, last pushed 10d ago), licensed Apache-2.0. It costs nothing until one of its globs matches a file; then it loads 1,239 tokens. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.