claude-lifecycle
Lifecycle marketing and CRM strategy as a Claude Code skill: customer journey design, behavioral segmentation, lifecycle messaging and channel copy for email, push, SMS, in-app and WhatsApp.
Journeys are a function of your data: most tools pretend otherwise. A store tracking add_to_cart → purchase can run a branched 8-step cart recovery; a startup with three tracked events cannot. claude-lifecycle is a Claude Code plugin that scores what your data actually supports first, then generates a portfolio of customer journeys (onboarding and activation, retention, churn prevention, win-back), plus rule-checked, sector-aware CRM copy for every step, sized to that reality instead of a template.

Live output from the zero-install demo: every card, color, and number on this canvas comes from the sample dataset, not a mockup.
Why this exists
Every lifecycle tool ships the same five template flows, regardless of what data backs them. Handing a startup with three tracked events the same branching journey as a mature e-commerce store produces automations that can neither trigger nor be measured. This engine makes that constraint explicit instead of hiding it:
- Data quality is scored, not assumed. A 0–100 Data Quality Score decides whether you get 3-step time-based flows or 10+ step behavioral branching.
- Journeys are a portfolio, not a listicle. Eligibility is computed per pattern from required-event signatures; what your data can't support becomes a tracking plan telling you exactly which events unlock which journeys.
- Copy is an engineered artifact. Channel files carry hard limits and banned words; sector lexicons decide vocabulary; a reviewer agent adversarially checks every message before you see it.
Questions this answers
- Which lifecycle journeys can my analytics data actually support today?
- What events do I need to start tracking before cart recovery, win-back or replenishment can work at all?
- How deep should a journey be — three time-based steps, or ten with behavioural branching?
- What belongs in a welcome, onboarding, retention, churn-prevention or win-back flow for my sector?
- How do I write CRM copy that respects each channel's character limits, banned words, consent rules and quiet hours?
- How do I measure a lifecycle journey honestly, holdout group included?
- How do I turn a journey's audience into a BigQuery query or a CDP trait?
- We are switching CRM tools — how do I describe our journeys in a way that survives the move?
How it works
Full walkthrough with design decisions: docs/architecture.md
Zero-install demo: the two HTML deliverables, rendered with sample data: journey canvas · channel copy canvas
Quickstart
# as a Claude Code plugin (marketplace or local)
/plugin install claude-lifecycle
# or clone and use as a project
git clone https://github.com/ali-demirbas/claude-lifecycle && cd claude-lifecycle && claude
# or install individual skills with the skills CLI (https://skills.sh)
npx skills add ali-demirbas/claude-lifecycle --all
Already have ab-test-playbook too? Add claude-skills once instead of each repo separately: /plugin marketplace add ali-demirbas/claude-skills.
Using Gemini CLI instead? .gemini/extensions/claude-lifecycle/ ships the same skills, rules and agents, generated from the same source files by scripts/build_gemini.py:
git clone https://github.com/ali-demirbas/claude-lifecycle.git
cd claude-lifecycle/.gemini/extensions/claude-lifecycle && gemini extensions link .
Then, inside Claude Code:
/lifecycle connect # score your data (GA4 via MCP, or point at a CSV)
/lifecycle journeys # generate the portfolio
/lifecycle copy # channel copy for the generated journeys
No data at all? "/lifecycle journeys, my sector is fintech, no data" works too: you get the sector playbook's priority journeys in their simple form, plus the tracking plan that upgrades them.
The three tiers
| Tier | You have | You get |
|---|---|---|
| T1 | GA4 connected (MCP) | Behavioral triggers, multi-branch journeys (7–12 steps where data supports it), volume-aware conflict review |
| T2 | CSV / analytics export | Behavioral triggers, limited branching (4–7 steps) |
| T3 | Just your industry | Playbook-driven starter portfolio (3–5 step flows) + a tracking plan to graduate to T1 |
What's inside
skills/ |
11 skills: lifecycle routes; connect → map → intake → journeys → copy → export, plus audit, results (the measurement loop), audience (BigQuery SQL / CDP traits from journey audiences), and qa (trigger test payloads, positive and negative) |
agents/ |
4 subagents: event-analyst, journey-architect, and the copy-writer / copy-reviewer adversarial pair |
knowledge/journey-patterns/ |
26 patterns (lead-nurture, care-alert, abandoned-cart, trial-conversion, churn-prevention, winback, channel-opt-in, gamified-rewards, …) each with a required-event signature and DQS-tied depth scaling |
knowledge/industries/ |
9 sector playbooks: funnel, event expectations, pattern priorities, timing. Add yours: it's a content PR, not code |
knowledge/lexicons/ |
Sector word choice: use/avoid tables, urgency rules, banned lists, regulated-context flag, plus locales/ language overlays (per-language voice, emotion calibration, market red lines) |
knowledge/brands/ |
Company config layer: per-brand tone, incentive policy, channels; rules inherit Company → Sector → Global, strictest compliance wins |
knowledge/channels/ |
Hard rules for email, push, SMS, in-app, WhatsApp: limits, spam lists, consent, quiet hours |
templates/ |
Mandatory output formats + journey.schema.json, the CRM-agnostic journey definition |
examples/ |
Full end-to-end outputs for each tier |
Example output (excerpt)
A T1 e-commerce run produces a portfolio like:
| # | Journey | Stage | Priority | Depth | Status |
|---|---|---|---|---|---|
| 1 | Cart recovery | Revenue | P0 | 8 steps, branched | ✅ generated |
| 2 | Browse abandonment | Revenue | P0 | 4 steps | ✅ generated |
| 3 | Post-purchase → 2nd order | Retention | P0 | 6 steps | ✅ generated |
| 4 | Winback (lapsed buyers) | Winback | P0 | 5 steps | ✅ generated |
| 5 | Replenishment | Revenue | P1 | n/a | 🔒 blocked (missing item-level items params) |
…where every ✅ is a full journey doc (trigger, audience, exit criteria, step table, KPIs + holdout, Mermaid diagram) and every 🔒 lands in the tracking plan with the event that unlocks it. See examples/ecommerce-full-ga4/.
Design principles
- One engine, data-driven sectors. No
if industry == "fintech"in skills; sector behavior lives in playbook/lexicon files, so extending the engine is a content contribution. - Deterministic where it matters. Eligibility, prioritization, and depth follow written rules (DQS rubric); the model's creativity goes into copy and sequencing, not into deciding whether a journey is possible.
- Honest by construction. No fabricated benchmarks, no fake urgency, no journeys pretending untracked events exist. The never-do lists in every skill are load-bearing.
Real-world validation
Beyond the eval suite, see docs/real-world-validation.md for what happened when someone ran this against a real product: what held up, and what gaps it surfaced that got folded back into the engine.
Contributing
New industries, patterns, and sharper channel rules are welcome; see CONTRIBUTING.md and docs/adding-an-industry.md. Run bash scripts/validate.sh before opening a PR.
No comments yet
Be the first to share your take.