lifecycle-and-routing
Skill1 starsChanged 3 months agoMITView on GitHub
Use when the user says "lifecycle stages", "MQL definition", "lead routing", "round robin", "speed to lead", "leads are sitting untouched", "sales says the leads are bad", "SLA", "handoff", "who owns this lead". Defines stages as exit criteria, sets routing rules and SLAs with real measurement, and fixes the handoff that generates the recurring lead-quality argument. Writes workspace/reports/lifecycle.md.
In this repository25 other files it gives its agents.
- agent-guardrailsSkill
- agent-observabilitySkill
- agent-rolloutSkill
- agent-scopingSkill
- ai-governanceSkill
- artifact-evalSkill
- attribution-architectureSkill
- context-portfolioSkill
- credit-and-cost-controlSkill
- data-hygieneSkill
- data-model-and-syncSkill
- enrichment-waterfallSkill
- eval-calibrationSkill
- eval-loopSkill
- eval-spec-authoringSkill
- gtm-systems-auditSkill
- icp-scoring-engineSkill
- martech-stack-auditSkill
- ops-and-scale-osSkill
- reporting-architectureSkill
- signal-pipelineSkill
- skill-authoringSkill
- tam-and-sourcingSkill
- warehouse-and-pipesSkill
- writing-qualitySkill
The file
We split this skill into the rules it gives an agent
2 rules. About 0 are common, 2 are distinctive, and 0 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈2
Distinctive · estimate
This author's own choices. Worth a look.
0
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 14
No written stage definitions, or written ones nobody follows
- Distinctive: line 59
Every record has exactly one owner, decided by a rule, not by a scramble.
≈ “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.
Files
Lifecycle and Routing
Define stages as exits, route deterministically, and measure the SLA rather than publishing it. Most lead-quality arguments are handoff-definition arguments in disguise.
When to use
- Sales says the leads are bad and marketing says the leads are fine
- Inbound sits untouched
- No written stage definitions, or written ones nobody follows
- Territory or ownership changes
Inputs
- Reads:
workspace/data/scoring-model.md,workspace/data/object-model.md - Needs from user: current stage list, how a lead reaches a rep today, the ownership rules, and one recent example of a lead both sides disagreed about
That last example is the most useful input in the whole skill. Work the specific case rather than the abstraction.
Workflow
1. Define every stage as an exit, not an entry
The single change that fixes most lifecycle problems.
An entry definition ("an MQL is a lead that downloaded something") tells you nothing about what happens next. An exit definition names what must be true to leave, who decides, and where it goes.
STAGE: <name>
Enters when: <condition>
Exits when: <specific, checkable condition>
Who decides: <role>
Exits to: <next stage, or disqualified with a reason>
Max time in stage: <n days, then it is escalated or aged out>The max-time field prevents the silent graveyard. Without it, records accumulate in a middle stage forever and the stage becomes a place things go rather than a place things pass through.
2. Kill the undefined MQL
An MQL that only means "hit a score threshold" produces the recurring argument, because it encodes no fit judgment.
Replace it with the two-axis output from icp-scoring-engine:
High fit + high intent → route to a rep now, SLA applies
High fit + low intent → nurture, marketing keeps ownership
Low fit + high intent → inspect. Often a competitor, student, or job seeker
Low fit + low intent → suppress. No rep ever sees itThe fourth quadrant is what earns sales trust. A team that stops sending bad-fit leads gets believed about the good ones.
3. Write the routing rules to be deterministic
Every record has exactly one owner, decided by a rule, not by a scramble.
Route on: <territory | segment | round robin | named account owner>
Precedence: named account owner > territory > segment > round robin
Fallback: <named person, for anything unmatched>
Reassignment: <who can, under what condition>A named fallback owner is required. Unmatched records with no fallback go nowhere, and nobody notices because nobody owns noticing.
Precedence order matters. Named account ownership beating round robin is what stops two reps calling the same company in one week.
4. Set the SLA, then measure it
An SLA that is published but not measured is a preference.
| Segment | First-touch SLA | Why |
| High fit, high intent inbound | 15 minutes | Conversion falls off sharply beyond this |
| High fit, medium intent | Same business day | |
| Everything else routed to a rep | 48 hours |
Measure: median and 90th percentile minutes from routed to first touch
Report: weekly, by rep, visible to the team
Escalate: breaches over <n>, automatically, to the managerReport the 90th percentile alongside the median. A good median with a terrible tail means a subset of leads is being ignored entirely, and the median hides it.
5. Instrument the handoff both ways
The handoff needs a return path, or lead quality is discussed only in meetings.
Marketing → Sales: the record plus why it qualified, in a field
Sales → Marketing: accept or reject with a reason code, requiredReason codes need to be short and mandatory. Four to six options. Rejection reasons aggregated monthly are the most honest lead-quality data available, and they end the argument by replacing it with a distribution.
6. Check stage integrity
Stage integrity = records in a stage that meet its exit criteria ÷ records in that stageUnder 75% and the definitions are being ignored, which means every funnel metric built on them is wrong. Fix the definition or fix the enforcement, and pick which before publishing another conversion rate.
Output
- Writes:
workspace/reports/lifecycle.md - Uses:
templates/lifecycle-stage-definitions.md - Prints: the stage table with exits and max times, the four-quadrant routing, the routing precedence with fallback, the SLA table, the reason-code set, and the stage integrity figure
Rules & quality bar
- Every stage defined as an exit, with a decider and a max time
- No undefined MQL. Fit and intent, separately
- Bad-fit records never reach a rep. This is how trust gets built
- One owner per record, by rule, with a named fallback
- Named account ownership outranks round robin
- SLAs are measured and reported by rep, median and 90th percentile
- Rejection reason codes are mandatory and aggregated monthly
- Stage integrity under 75% invalidates the funnel metrics. Say so before reporting them
Related skills
- Requires:
icp-scoring-enginefor the two axes - Pairs with:
signal-pipelinefor trigger-driven routing - Feeds:
reporting-architecture - See also:
docs/metrics.md
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
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.

