agentleFS
ali-demirbasali-demirbas/claude-lifecycle/skills/lifecycle-map/SKILL.md

lifecycle-map

Skill2 starsChanged 4 months agoMITView on GitHub

Map tracked events to lifecycle stages (acquisition/activation/engagement/revenue/retention/winback) and derive the funnel skeleton. Use after lifecycle-connect, or when the user says "map my events", "event haritala", "funnel çıkar", "hangi stage'ler eksik".

1 other project uses a version of this.

Adopted by

Most recently taken up by

The file

We split this skill into the rules it gives an agent

3 rules. About 0 are common, 1 is distinctive, and 2 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈1

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 2

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Never silently guess a stage for an event that fails all rules (CLAUDE.md rule 7).

    line 59
  2. Very specific:

    Never map an event to winback — winback is defined by absence, not by an event.

    line 60
  3. Very specific:

    Never claim a revenue stage is covered on revenue-intent events alone.

    line 61

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Lifecycle Map — Event → Stage Mapping

Turn the event inventory from lifecycle-connect into a stage map and funnel skeleton. This is what makes journey eligibility computable.

When NOT to use this

  • No DQS or event inventory exists yet — there is nothing to map; run lifecycle-connect first.
  • The question is whether a specific automation should be kept, changed, or killed — that's lifecycle-audit (structural review) or lifecycle-results (outcome-based), not this skill.
  • The need is an audience query for an already-designed journey — that's lifecycle-audience. This skill produces the stage map and funnel skeleton, never a runnable query.

Procedure

  1. If knowledge/brands/<brand>.md has verticals set: tag every event to a vertical via event_prefix match first — mechanical name-prefix matching, done before any stage classification. This determines which industry playbook's funnel table and "Event expectations" apply to that event in step 1. An event matching no vertical's prefix falls back to the primary industry, flagged unclassified-vertical — batch it into the same question as unmappable events (step 3).
  2. First, check for a prior pass: if output/<project>/event-analysis.json exists (written when lifecycle-connect spawned event-analyst for a 50+ event inventory earlier in this same run), its Mapped/Assumed/Unmapped classification is a draft, not a discard-and-redo — confirm or override it below rather than reclassifying every event from zero. Two independent classification passes over the same event risk landing on two different stages for it — treating the first pass as the starting point removes that risk instead of hoping both agree. Absent the file (inventories under 50 events, classified inline by lifecycle-connect itself, or no prior connect run), load the mapping sources fresh, in lookup order:
    • ${CLAUDE_PLUGIN_ROOT}/knowledge/event-taxonomy/ga4-recommended-events.md (exact + alias lookup)
    • the active industry playbook's funnel table (the event's own vertical's playbook, for multi-vertical brands)
    • ${CLAUDE_PLUGIN_ROOT}/knowledge/event-taxonomy/stage-mapping-rules.md (heuristics for unknowns — apply its rules 1→5 in order)
  3. Classify every event from the inventory. Track WHICH rule classified each one.
  4. Batch unmappable events into a single question to the user (max 10, best-guess pre-filled). Continue with what is mapped; mark dependent outputs provisional.
  5. Build the funnel skeleton: order the mapped events along the industry playbook's canonical funnel (one skeleton per vertical, for multi-vertical brands); note observed drop-off between steps if T1 volumes exist — and flag, don't silently build past, any step whose volume exceeds the previous step's. An inverted funnel means a mapping error or a data-integrity problem, not real user behavior; report it as a finding rather than presenting the funnel as if the numbers were trustworthy.

Output (exactly the contract from stage-mapping-rules.md)

  1. Mapped table — event | vertical (multi-vertical brands only) | stage | source rule | 90-day volume (if known).
  2. Assumed mappings needing user confirmation (aliases + medium-confidence heuristics).
  3. Unmapped events — asked or pending, including any unclassified-vertical events.
  4. Stage coverage summary — six stages, events per stage, and the blind stages (zero events) called out explicitly. Blind stages are a first-class finding: they directly limit the journey portfolio. One summary per vertical for multi-vertical brands — a blind stage in one product line shouldn't be hidden by coverage in another.
  5. Funnel skeleton — ordered steps with events, plus a Mermaid flowchart LR of the funnel. One funnel per vertical for multi-vertical brands.

Common Pitfalls

Pitfall 1: A quiet best guess when no rule fires. Symptom: an ambiguous event like interaction or activity lands in "engagement" with no rule citation next to it. Consequence: directly violates CLAUDE.md rule 7, and every downstream artifact — funnel skeleton, journey eligibility — inherits an invented data point wearing the confidence of a real classification. Fix: track which rule classified each event as you go; anything that fails all three sources goes into the unmappable batch for the user, never a silent placement.

Pitfall 2: Winback assigned to an event instead of left as an absence. Symptom: a re_engagement_click or similar event gets mapped directly to the "winback" stage because its name matches. Consequence: contradicts this skill's own rule that winback is defined by absence (a dormancy window), not by any event — the mapping looks reasonable and breaks a rule stated two sections up. Fix: map the click event to whichever active stage it actually represents (typically a reactivation-trigger response), and leave winback defined by the dormancy threshold elsewhere in the pipeline.

Pitfall 3: An inverted funnel presented without comment. Symptom: the funnel skeleton shows a later step with more volume than the step before it, and it goes out in the report as-is. Consequence: reads as real user behavior to whoever consumes the funnel, when it is far more likely a mapping error or a tracking defect — journeys sized off it inherit a broken premise. Fix: this skill's own step 4 already requires flagging this — treat a clean-looking funnel with no inversion note as unverified, not as evidence none occurred, and check before presenting.

Never do

  • Never silently guess a stage for an event that fails all rules (CLAUDE.md rule 7).
  • Never map an event to winback — winback is defined by absence, not by an event.
  • Never claim a revenue stage is covered on revenue-intent events alone; say "intent only — no true conversion event".

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.