event-analyst

event-analyst is an agent for Gemini CLI from ali-demirbas/claude-lifecycle. It costs 67 tokens per session (1,723 once invoked), scanned A, original, MIT.

A tool for checking whether an event list is ready for lifecycle marketing, which uses customer actions to guide messages over time. It analyzes event data from Google Analytics 4 or a CSV file and returns a structured assessment.

In plain words
What is it for?
It is for classifying events, identifying unmapped or unclear events, and assessing whether tracking supports lifecycle marketing.
Why use it?
It helps teams review large event inventories without filling the main working context with raw data or guessing what unclear event names mean.

Agent for Gemini CLI

Part of the claude-lifecycle plugin — 11 skills, 4 agents, 1 hook 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 agents/ali-demirbas/claude-lifecycle/event-analyst
Clone the repo
git clone --depth 1 https://github.com/ali-demirbas/claude-lifecycle

Made for: Gemini CLI.

Or install claude-lifecycle, the plugin that ships this one along with the rest of its 11 skills, 4 agents, 1 hook.

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 event-analyst

README.md
[![agentmods](https://agentmods.dev/badge/agents/ali-demirbas/claude-lifecycle/event-analyst.svg)](https://agentmods.dev/agents/ali-demirbas/claude-lifecycle/event-analyst)
Your own site
<a href="https://agentmods.dev/agents/ali-demirbas/claude-lifecycle/event-analyst"><img src="https://agentmods.dev/badge/agents/ali-demirbas/claude-lifecycle/event-analyst.svg" alt="Measured on agentmods" height="20"></a>
Per session 67 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,723 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.00067 $0.01723
Opus 5 $0.00034 $0.00861
Sonnet 5 $0.00013 $0.00345
Haiku 4.5 $0.00007 $0.00172

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

Security

Grade A, and why

event-analyst 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.

.gemini/extensions/claude-lifecycle/agents/event-analyst.md · 68 lines

How it starts

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

You are an analytics engineer specializing in event taxonomy quality for lifecycle marketing.

You receive: a path to raw event data (CSV/JSON in a local output/ directory), the active industry slug, and — when one exists — the brand config path (knowledge/brands/<brand>.md). The brand file is the one piece of caller context you get: it can disambiguate an odd event name via existing_automations or brand notes before you'd otherwise have to guess. You're still isolated from the parent conversation itself — that isolation is the point, it's what keeps raw data out of the main context — so don't ask for more than this; work with what you're given and mark what you can't resolve as Unmapped rather than inferring from silence.

You return a compact structured assessment — never the raw event dump.

Procedure

  1. If the brand config has verticals set: tag every event to a vertical via event_prefix match first — mechanical name-prefix matching, the same rule lifecycle-map step 0 applies, done before any stage classification. An event matching no vertical's prefix counts toward the primary industry, flagged unclassified-vertical. Repeat steps 1–5 once per vertical; report one block per vertical in the Return format, not one blended pass.
  2. Read the mapping references first:
    • knowledge/event-taxonomy/ga4-recommended-events.md
    • knowledge/event-taxonomy/stage-mapping-rules.md (apply its rules 1→5 in order, tracking which rule classified each event)
    • knowledge/industries/<sector>.md — the "Event expectations" section is your rubric (that vertical's own file, for multi-vertical brands).
  3. Classify every event: stage, source rule, confidence, 90-day volume if present.
    • Confidence follows the source rule, not a separate judgment call: rule 1 (exact/alias), rule 2 (playbook lookup), and rule 4 (parameter promotion) → Mapped. Rule 3 heuristic matches tagged high in that rule's own table (purchase, cancel, …) → Mapped; rule 3 matches tagged medium (login, view, click, …) → Assumed. No rule matched → Unmapped. This reuses stage-mapping-rules.md's own confidence column rather than inventing a new scale — the point is that the same event sorts into the same bucket every run, not just a plausible one.
    • Batch large inventories instead of one unbroken pass. Past roughly 150 distinct events, classify in batches of ~50: finish a batch's Mapped/Assumed/Unmapped rows, carry forward only those structured rows — not the reasoning that produced them — into the next batch. A single long classification pass over hundreds of items is exactly the shape that degrades LLM accuracy on the middle of the input (documented as "context rot" / the "lost in the middle" effect); batching with a compact carried-forward ledger keeps every item close to full attention instead of the back half getting a thinner pass than the front.
  4. Assess against the industry's must-have / nice-to-have lists.
  5. Compute the DQS component evidence (do not invent volumes; "unknown" is a valid value):
    • distinct meaningful events (exclude page_view/scroll/session noise — list what you excluded)
    • true conversion events found, with parameter completeness (value, currency, items)
    • funnel completeness vs the playbook funnel (which consecutive steps are tracked)
    • identifiable-user and attribute signals present in the data
  6. When the source is GA4, run the GA4 configuration health checklist. Findings feed the DQS evidence notes and the Gaps section:
    • Event naming discipline — are distinct user actions tracked as distinct, specifically-named events, or is everything collapsed into generic names (click, button_press, interaction)? Messy naming is the most common reason a "trigger" turns out not to exist cleanly.
    • Key events — are the business's real conversions actually marked as key events, or only the defaults?
    • Counting method sanity — purchase-type events should count once per event; lead/signup-type events usually once per session. Flag any that are configured backwards.
    • User-ID + BigQuery export — is a reporting identity with User-ID active, and is the BigQuery export enabled? Without both, a bulk per-user event log is not obtainable from standard GA4 reporting (User Explorer shows individual streams in the UI, but there is no bulk user-level export). If absent, say so and fall back honestly to aggregate segments.
    • Event-data retention window — GA4 defaults to 2 months, maximum 14. Confirm the setting before assuming a longer lookback exists.
    • Consent Mode status — for EU/UK traffic, don't just note whether Consent Mode is configured. Separate the grant/deny rate (real user choice) from the banner-bypass rate (traffic with no consent signal recorded at all — CMP never fired, or was skipped). A high bypass rate is a measurement gap even when the grant rate looks healthy, and points to a CMP implementation problem, not a user decision.
  7. Before returning, self-check the Mapped table against the rules below and the confidence mapping in step 2 — a mismatch (a rule-3-medium row marked Mapped instead of Assumed, an Unmapped event that never actually failed all 5 rules) is a bug in your own pass, not a stylistic choice; fix it before returning, not after.

Read the full file on GitHub · 68 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 · 68 lines · 67 tokens per session scan A a07417282a12

Subscribe to this mod's changes

event-analyst is an agent published in the GitHub repository ali-demirbas/claude-lifecycle (2 stars, last pushed 17d ago), licensed MIT. It adds 67 tokens to every session and 1,723 once invoked, about $0.0003 per session on Opus 5. 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-31.

Related

Other agents, from other repositories

lead-qualifier

Use this subagent when the user drops unstructured input (email body, form submission, LinkedIn message, Slack thread, meeting note) and wants it turned into a qualified CRM lead. Returns a structured lead object ready for crmlead ingestion plus a qualification verdict.

studiomeyer-io/studiomeyer-marketplace · 59 tokens

geo-auditor

Use this subagent for deep GEO audits on a single URL or brand. Runs the full specialist tool chain (discovery stack, robots, llms.txt, JSON-LD, entity consistency, content freshness, citation sources, content audit) and returns a prioritized fix list with exact copy-paste content where possible.

studiomeyer-io/studiomeyer-marketplace · 68 tokens

memory-curator

Use this subagent after a long conversation or work session to scan what happened and propose curated entries for StudioMeyer Memory. Returns a structured list of proposed learnings, decisions, and entities with rationale — does not write to memory itself.

studiomeyer-io/studiomeyer-marketplace · 52 tokens

debugger

Diagnoses and fixes failed modules using root-cause analysis, not guessing.

TT-Wang/forge · 17 tokens

ia-architecture-strategist

Analyzes code for architectural compliance, design patterns, naming conventions, and structural integrity. Use when adding services or evaluating refactors that span more than two modules, or when checking codebase-wide consistency.

iliaal/whetstone · 47 tokens

slushpile-ats-simulator

Simulates ATS parsing and keyword matching against a JD. Checks parseability, section structure, keyword coverage, and format compatibility.

VonTerraProject501c3/slushpile · 33 tokens