Agent skill

Amplitude Listener Events Adoption

by PackmindHub in PackmindHub/packmind

Report organization adoption in Amplitude for the most recently added domain events in the AmplitudeEventListener.

Apache-2.0Auto-check passedDevelopment

Install Amplitude Listener Events Adoption

skills CLI
$ npx skills add PackmindHub/packmind --skill amplitude-listener-events-adoption -a claude-code

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

GitHub CLI
$ gh skill install PackmindHub/packmind amplitude-listener-events-adoption --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/PackmindHub/packmind.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/amplitude-listener-events-adoption .claude/skills/amplitude-listener-events-adoption && 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
amplitude-listener-events-adoption
GitHub stars
318
Token cost
~2.6k tokens
SKILL.md length
1,128 words
Files
1
Skills in repo
35
Repo updated
First seen
Licence
Apache-2.0

At a glance

Report organization adoption in Amplitude for the most recently added domain events in the AmplitudeEventListener.

  • Works in 4 steps: Identify the last N still-subscribed… → Query Amplitude → Aggregate and format → …
  • The user asks to audit recent amplitude listener events
  • SKILL.md covers Prerequisites, Inputs, Organizations exclusion and Events exclusion, plus 2 more sections
  • Calls git and python3

What it does

Amplitude Listener Events Adoption is an agent skill from PackmindHub/packmind. Report organization adoption in Amplitude for the most recently added domain events in the AmplitudeEventListener. Walks git history on packages/amplitude/src/application/AmplitudeEventListener.ts to find the last 15 still-subscribed events, queries the Packmind V3 [CLOUD] Amplitude project via the MCP, and produces a markdown report grouped by domain prefix (text before the first underscore). Triggers when the user asks to audit recent amplitude listener events, check which orgs use new domain events, measure…

Its SKILL.md is about 2.6k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Development, covering Git workflow. It works with Model Context Protocol. The repository describes itself as: Packmind seamlessly captures your engineering playbook and turns it into AI context, guardrails, and governance. The licence is Apache-2.0.

When your agent uses it

  • The user asks to audit recent amplitude listener events
  • Check which orgs use new domain events
  • Measure adoption of recently added events
  • Requests an amplitude report on space/playbook/standard/etc

Example prompts

  • “/amplitude-listener-events-adoption”

Requirements

  • Python 3

Workflow steps

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

  1. Identify the last N still-subscribed events
  2. Query Amplitude
  3. Aggregate and format
  4. Emit the report

What it can do on your machine

Read from SKILL.md and the folder at commit 67de8a2. 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:

    • git
    • python3

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

  • Network

    No URLs in SKILL.md. Its commands use git, 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

Amplitude Listener Events Adoption loads about 2.6k tokens when it runs. Until then it costs about 165 tokens; SKILL.md has 1,128 words of instructions outside code blocks.

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

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 PackmindHub/packmind at commit 67de8a2, republished under its Apache-2.0 licence (© PackmindHub). 1,128 words, ~2,614 tokens.

Download SKILL.mdSave it as .claude/skills/amplitude-listener-events-adoption/SKILL.md (or your agent's skills folder).
name
amplitude-listener-events-adoption
description
Report organization adoption in Amplitude for the most recently added domain events in the AmplitudeEventListener. Walks git history on `packages/amplitude/src/application/AmplitudeEventListener.ts` to find the last 15 still-subscribed events, queries the Packmind V3 [CLOUD] Amplitude project via the MCP, and produces a markdown report grouped by domain prefix (text before the first underscore). Triggers when the user asks to audit recent amplitude listener events, check which orgs use new domain events, measure adoption of recently added events, or requests an amplitude report on space/playbook/standard/etc. events.

Amplitude Listener Events Adoption

Produce a markdown adoption report for the last 15 domain events subscribed in the Amplitude listener, grouped by domain, listing organizations that triggered each event and how many times.

Prerequisites

  • The Amplitude MCP must be connected (tools prefixed mcp__amplitude__). If not, prompt the user to run /mcp.
  • Target project: Packmind V3 [CLOUD], appId = 100032310. Never query the DEV or legacy projects unless the user explicitly asks.

Inputs

ParameterDefaultDescription
N15Number of most-recently-added events to report on
rangeLast 30 DaysAmplitude date range
Excluded orgssee belowDefaults applied automatically; user may extend the list
Excluded eventssee belowDefaults applied automatically; user may extend the list

Organizations exclusion

Always exclude these internal/test organizations from the report (apply after querying Amplitude, before aggregation):

  • AI Configuration orga
  • test_package_standards
  • packmind
  • Joan's orga
  • demo-orga
  • VIncent test
  • cedric.teyton's organization
  • cedric-test
  • test-skills

Match on the exact organization grp:name value returned by Amplitude. Extend this list if the user provides additional orgs to skip.

Events exclusion

Always exclude these Amplitude event names from the report even if they are among the last N subscribed in the listener:

  • user_signed_in
  • new_organization_created
  • user_signed_up

Rationale: these three events fire once per user/organization creation and produce extreme long tails (hundreds of orgs with a single event each), drowning out the actual feature-adoption signal the report is built for.

Drop excluded events from the event-name list before building the Amplitude query (do not count them toward N — select the next most recent event to fill the quota). Extend this list if the user provides additional events to skip.

Workflow

Step 1 — Identify the last N still-subscribed events

Source file: packages/amplitude/src/application/AmplitudeEventListener.ts.

  1. Read the current file and collect the set of event class names that appear in this.subscribe(<Event>, ...) inside registerHandlers(). This is the "still-subscribed" set.

  2. For each class, also extract the corresponding Amplitude event name (the string literal passed as the 2nd argument to this.emitAmplitudeEvent(event, '<name>', ...) in the handler). This is what Amplitude stores.

  3. Walk the file's git history newest→oldest:

    bash
    git log --all --follow --format="%h|%ai|%s" -- packages/amplitude/src/application/AmplitudeEventListener.ts
  4. For each commit, extract added this.subscribe( lines:

    bash
    git show --format="" <commit> -- packages/amplitude/src/application/AmplitudeEventListener.ts \
      | grep -E "^\+ *this\.subscribe\("
  5. Walk commits in order; for every added class name that is also in the still-subscribed set, record (amplitude_event_name, class_name, commit_date, commit_sha) once (deduplicate by class — only keep the most recent addition). Stop once N unique events are collected.

  6. Discard entries for events that were later removed or renamed out of the current file (e.g. SpaceRenamedEvent → filtered because no longer in the current registerHandlers).

Multi-line this.subscribe(\n EventName,\n ...) must also be captured — widen the grep context (grep -A2) when a line ends just after this.subscribe(.

Efficient commit walk: rather than running git show once per commit interactively, batch the first ~40 commits returned by git log and loop in a single bash call:

bash
for c in $(git log --all --follow --format="%h" -- packages/amplitude/src/application/AmplitudeEventListener.ts | head -40); do
  echo "=== $c ==="
  git show --format="" $c -- packages/amplitude/src/application/AmplitudeEventListener.ts \
    | grep -E "^\+ *this\.subscribe\(" -A1
done

This surfaces all added this.subscribe( lines with commit boundaries in one tool call, which keeps token cost low and preserves the newest→oldest ordering needed for dedupe.

Step 2 — Query Amplitude

Use mcp__amplitude__query_dataset with:

  • projectId: "100032310"
  • definition:
    json
    {
      "type": "eventsSegmentation",
      "app": "100032310",
      "params": {
        "range": "Last 30 Days",
        "events": [ /* one entry per amplitude event name */
          { "event_type": "<name>", "filters": [], "group_by": [] }
        ],
        "metric": "totals",
        "countGroup": "organization",
        "groupBy": [{ "type": "group", "group_type": "organization", "value": "grp:name" }],
        "interval": 30,
        "segments": [{ "conditions": [] }]
      }
    }
  • groupByLimit: 200
  • timeSeriesLimit: 0

Critical gotcha: the CSV returned by query_dataset omits the organization name column when groupBy is set on a group property. Re-query using mcp__amplitude__query_chart with the chartEditId returned by query_dataset; that response includes the real org-name column. Always do this second call to get usable data.

If the response payload is large, rely on timeSeriesLimit: 0 (totals-only) to keep it compact.

Show full SKILL.md (571 more words)Show less
Step 3 — Aggregate and format

Parse the CSV rows from query_chart. The response contains header rows (chart name, list of events), an empty separator row, and then a data section starting with a ["Event", "name", "<interval-label-1>", "<interval-label-2>", ...] row followed by data rows.

  • Row shape with timeSeriesLimit: 0: each data row is [event_name, org_name, <interval_1_count>, <interval_2_count>, ...]. There is no trailing grand-total column in that mode — sum the interval columns yourself to get the per-org total for the window. A 30-day range typically yields two interval columns (one per calendar month touched).
  • Ignore blank or placeholder org rows: rows with org_name == "" or org_name == "(none)" represent events fired outside any organization context and must be skipped.

Aggregation is mechanical and repetitive across 10+ events — use a small inline Python script via Bash with python3 - or a heredoc to load the parsed rows, apply the exclusion list, sum intervals, sort, and slice top-10 + +K. Doing this by hand for long tails (e.g. standard_sample_selected with 60+ orgs) is error-prone and wastes tokens.

  • Group events by domain prefix = substring before the first underscore in the Amplitude event name (space_created → space, playbook_artefact_moved → playbook, change_proposal_submitted → change, etc.).
  • Inside each domain, list events in the order they appear in the source file (stable for the reader).
  • Apply the org exclusion list before totaling. If no orgs remain for an event, treat it as zero-orgs.
  • For each event:
    1. Start the line with the total number of distinct organizations that triggered it (after exclusions): - <event> (N orgs): ....
    2. Sort organizations by their event count, descending; list at most the top 10 with their counts: orgA (42), orgB (18), ....
    3. If more than 10 orgs remain, append a trailing +K token where K = remaining org count. Example: - space_created (23 orgs): orgA (9), orgB (7), ... orgJ (2) +13. Never enumerate those remaining orgs by name; the +K is a trend signal only.
  • Collapse zero-adoption events into a single summary line at the end of each domain (or at the end of the full report if the user prefers global grouping): - No adoption (0 orgs): event_a, event_b, event_c.
Step 4 — Emit the report

Write the report to amplitude-listener-events-adoption.md at the project root (overwrite if it already exists). Also display the highlights inline in the chat reply so the user can scan them without opening the file.

Skeleton:

markdown
# Amplitude adoption — last N listener events (Packmind V3 [CLOUD], <range>)

Excluded orgs: <list>. Excluded events: <list>.

## Domain: space
- space_created (23 orgs): orgA (9), orgB (7), orgC (6), orgD (5), orgE (4), orgF (3), orgG (3), orgH (2), orgI (2), orgJ (2) +13
- space_members_added (4 orgs): orgA (18), orgB (12), orgC (5), orgD (1)
- ...
- No adoption (0 orgs): space_pinned, space_unpinned

## Domain: playbook
- playbook_artefact_moved (2 orgs): orgA (40), orgC (4)

...

Source chart: [Open in Amplitude](<chartEditUrl>)

Keep the report concise — no per-month breakdown, no narrative paragraphs. The user wants a scan-friendly list.

Edge cases

  • Fewer than N events in history: report whatever is available and note the shortfall in one line.
  • Event renamed in listener but kept in Amplitude (e.g. renaming user_signup → user_signed_up): trust the current file; query only the current Amplitude event name.
  • Event subscribed in listener but never emitted in prod: it will appear as a zero-adoption event — that is the correct signal.
  • Duplicate commits touching the same subscribe line (merges, reverts): keep the most recent non-reverted addition.
  • Group property is empty or placeholder ("" or "(none)" org name row): ignore that row — the event fired outside any org context.
  • Event also tracked with an identify call (e.g. OrganizationCreatedEvent triggers identifyOrganizationGroup in addition to the tracked event): this does not affect the adoption query but explains why some org names appear populated only after the event fires once.
  • All remaining orgs are in the exclusion list: emit the event under the No adoption (0 orgs): … summary line — do not emit a misleading (N orgs) header when the real external count is zero.

© PackmindHub, 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 .agents/skills/amplitude-listener-events-adoption of PackmindHub/packmind.

Open the folder on GitHubat commit 67de8a2

Compare with similar skills

Amplitude Listener Events Adoption 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.

Amplitude Listener Events Adoption compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Amplitude Listener Events Adoption this skillPackmindHub/packmind318—~2.6kAutomated safety check: PassApache-2.0
Git Workflow And Versioningshashankswe2020-ux/whoop-mcp1653 repos~2.6kAutomated safety check: NotesMIT
Cut Releasespiculedata/saiku1.3k—~502Automated safety check: PassApache-2.0
E2b Sandboxagent-sandbox/agent-sandbox218—~2.6kAutomated safety check: PassApache-2.0
Release NotesGlitterKill/sdl-mcp490—~925Automated safety check: PassCustom licence
Git Branch Cleanupgotalab/skillport413—~2kAutomated safety check: PassMIT

Similar skills

  • Git Workflow And Versioning

    shashankswe2020-ux/whoop-mcp

    Structures git workflow practices. An agent skill from shashankswe2020-ux/whoop-mcp.

    165 GitHub starsUsed in 3 repos~2.6k tokens
    DevelopmentAuto-check: notes
  • Cut Release

    spiculedata/saiku

    Cut a Saiku release via Gitflow — version bump, release branch, PR to main, tag, back-merge, and post-release chores.

    1.3k GitHub stars~502 tokensUpdated today
    DevelopmentAuto-check passed
  • E2b Sandbox

    agent-sandbox/agent-sandbox

    Create, manage, and use E2B sandboxes — run commands, manage files, use git, persist state, and configure networking.

    218 GitHub stars~2.6k tokensUpdated 21 days ago
    DevelopmentAuto-check passed
  • Release Notes

    GlitterKill/sdl-mcp

    Generate a CHANGELOG.md entry from git history since the last tag, categorized by type (features, fixes, security, breaking changes).

    490 GitHub stars~925 tokensUpdated 19 days ago
    DevelopmentAuto-check passed
  • Git Branch Cleanup

    gotalab/skillport

    Analyzes and safely cleans up local Git branches. An agent skill from gotalab/skillport.

    413 GitHub stars~2k tokensUpdated 3 mo ago
    DevelopmentAuto-check passed
  • GitHub

    swarmclawai/swarmclaw

    GitHub operations via gh CLI: issues, PRs, CI runs, code review, API queries.

    689 GitHub stars~820 tokensUpdated 3 mo ago
    DevelopmentAuto-check passed

More from PackmindHub/packmind

All 35 skills in this repo
  • Michel CLI Demo Recorder

    PackmindHub/packmind

    Produce proof-of-execution demos of the Packmind CLI (packmind-cli) as terminal-styled images (colors and formatting preserved exactly), for embedding in a GitHub PR.

    318 GitHub stars~3.4k tokensUpdated 2 days ago
    Auto-check passed
  • Michel UI Demo Recorder

    PackmindHub/packmind

    Record polished UI demo videos and screenshots of a running web app using Playwright MCP — for client deliverables, release notes, feature walkthroughs, or bug repros.

    318 GitHub stars~6.4k tokensUpdated 2 days ago
    Auto-check passed
  • Packmind Create Skill

    PackmindHub/packmind

    Guide for creating effective skills. An agent skill from PackmindHub/packmind.

    318 GitHub stars~3.5k tokensUpdated 2 days ago
    Auto-check: notes
  • Doc Audit

    PackmindHub/packmind

    Audit Packmind end-user documentation (apps/doc/) for broken links, outdated CLI references, non-existent concepts, misleading information, and missing coverage.

    318 GitHub stars~2.4k tokensUpdated 2 days ago
    Auto-check passed
  • Feature Sprint

    PackmindHub/packmind

    Execute the implementation plan produced by /feature-spec. An agent skill from PackmindHub/packmind.

    318 GitHub stars~1.9k tokensUpdated 2 days ago
    Auto-check passed
  • Review an implemented GitHub issue the way a senior Packmind engineer would — the human-judgment checks that ESLint, the TypeScript compiler, and e2e tests cannot catch (authorization scoping…

    318 GitHub stars~2.7k tokensUpdated 2 days ago
    Auto-check passed

Categories

Questions about Amplitude Listener Events Adoption

What does Amplitude Listener Events Adoption do?

Report organization adoption in Amplitude for the most recently added domain events in the AmplitudeEventListener. Amplitude Listener Events Adoption is an agent skill from PackmindHub/packmind. Report organization adoption in Amplitude for the most recently added domain events in the AmplitudeEventListener.

When should I use Amplitude Listener Events Adoption?

Amplitude Listener Events Adoption fits situations like: the user asks to audit recent amplitude listener events; check which orgs use new domain events; measure adoption of recently added events; requests an amplitude report on space/playbook/standard/etc.

How do I install Amplitude Listener Events Adoption in Claude Code?

Run `npx skills add PackmindHub/packmind --skill amplitude-listener-events-adoption -a claude-code`. Or copy the skill folder (.agents/skills/amplitude-listener-events-adoption in PackmindHub/packmind) into .claude/skills/amplitude-listener-events-adoption in your project. Claude Code loads it when a task matches its description.

How do I install Amplitude Listener Events Adoption in Codex?

Run `npx skills add PackmindHub/packmind --skill amplitude-listener-events-adoption -a codex`. Or copy the skill folder (.agents/skills/amplitude-listener-events-adoption in PackmindHub/packmind) into .agents/skills/amplitude-listener-events-adoption in your project. Codex loads it when a task matches its description.

Can I use Amplitude Listener Events Adoption 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 PackmindHub/packmind --skill amplitude-listener-events-adoption -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/amplitude-listener-events-adoption, .gemini/skills/amplitude-listener-events-adoption, .github/skills/amplitude-listener-events-adoption and .opencode/skills/amplitude-listener-events-adoption in your project.

What does Amplitude Listener Events Adoption need to run?

Going by SKILL.md and its folder, Amplitude Listener Events Adoption needs the command-line tools its instructions call (git and python3). Our summary lists: Python 3.

Does Amplitude Listener Events Adoption access the network?

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

Is Amplitude Listener Events Adoption 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 Amplitude Listener Events Adoption use?

Amplitude Listener Events Adoption 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 Amplitude Listener Events Adoption use?

About 2.6k tokens (SKILL.md is roughly 10k 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 Amplitude Listener Events Adoption?

Skills that share tags, products or a category with Amplitude Listener Events Adoption: Git Workflow And Versioning (shashankswe2020-ux/whoop-mcp, 165 stars), Cut Release (spiculedata/saiku, 1.3k stars), E2b Sandbox (agent-sandbox/agent-sandbox, 218 stars) and Release Notes (GlitterKill/sdl-mcp, 490 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Amplitude Listener Events Adoption?

PackmindHub (a GitHub organization) maintains it in PackmindHub/packmind, which has 318 GitHub stars. The repository holds 35 skills in this directory. The repository was last updated on October 9, 2026.

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