SKILL DETAIL
sales-kickoff
mbfinotti/sales-skills/sales-kickoff
Before starting any sales project, and before answering a sales request that spans more than one sales topic or names no skill at all, run this router first. It routes the task to exactly one skill in the sales-skills collection, or says plainly that none fits, and bootstraps or resumes the project's shared sales-context.md artifact, producing a short-list plus an ordered skill chain. Fires on the state of the conversation rather than the subject matter, at a sales project start, at a periodic sales check-in or recurring sales review, on a mid-project re-route, or on any broad or ambiguous sales request such as "which sales skill do I need" or "where do I start with sales". Covers both altitudes, CRO-altitude planning (motion, ICP, market sizing, segmentation, tiering, org structure, quota, coverage, comp) and execution (outbound, cold calling, discovery, objections, MEDDPICC, recaps, call review, hiring, career). Run it even when sibling skills are already in daily use elsewhere.
Installation
npx skills add https://github.com/mbfinotti/sales-skills --skill sales-kickoff
스킬 파일
SKILL.md
최근 동기화 · 2026. 9. 15.
evals/evals.json›
{
"skill_name": "sales-kickoff",
"evals": [
{
"id": 1,
"prompt": "I run sales at Harlowe Freight Systems - B2B SaaS for logistics ops teams, $22k ACV, 3 SDRs and 2 AEs. Our reply rate fell off a cliff and roughly half our seed-list test sends are landing in spam since we cut over to a new sending domain six weeks ago. On top of that our quarter closes on the 10th of next month and we're sitting at 61% of number. Nothing is written down anywhere in this repo. Tell me what to work on.",
"expected_output": "A cold-start kickoff: capped interview, a single route to cold-email-deliverability, an execution-ladder short-list with channel integrity pinned to the top by the sender-reputation symptom, deadline-driven re-ranking stated out loud, a Not now list carrying the close date, and a written sales-context.md.",
"files": [],
"expectations": [
"Routes the immediate task to exactly one skill, and that skill is cold-email-deliverability.",
"Treats the absence of sales-context.md as a cold start without asking the user whether this is a cold or a warm start.",
"Asks at most 7 interview questions, one question per message, with multiple-choice options offered.",
"Short-list contains between 5 and 8 skills.",
"No planning skill (sales-motion, sales-icp-definition, sales-market-sizing, sales-account-segmentation, sales-account-tiering, sales-org-structure, sales-quota-setting, sales-pipeline-coverage-modeling, sales-comp-design) appears anywhere in the short-list.",
"States explicitly that the sender-reputation symptom pinned channel integrity to the top rung of the short-list.",
"States explicitly that the close date promoted the deal-triage and message/call-asset classes.",
"Every short-list line names both the bottleneck it attacks and what the session costs.",
"Anything paying back over a quarter is moved to a Not now list carrying the close date as its unblocking condition, rather than being ranked last on the short-list.",
"Output contains a Route section, a Short-list section, and a Not now section.",
"Notes that the authentication/DNS records sit outside the sales team, so the deliverability fix costs an approval and a wait rather than rep hours.",
"Writes or updates sales-context.md, including one session-log line, before ending the session."
]
},
{
"id": 2,
"prompt": "Picking this back up. The project root already has sales-context.md and it reads:\n\n# Sales context\n- **Updated**: 2026-10-02 (session 6)\n- **Motion**: B2B outbound-led, mid-market; ACV ~$26k, 70-day cycle\n- **Seat / team**: me (head of sales) + 2 AEs + 1 SDR\n- **ICP / offer**: QA leads at 300-900-person medtech manufacturers; pricing floor $19k\n- **Bottleneck**: meetings book fine, deals stall right after the demo\n- **In-flight work**: champion maps on 4 stalled deals\n- **Decided**: 9-touch cadence locked, email + phone only, no social\n- **Open**: whether to add a second SDR before January\n- **Constraints**: call recording not permitted on our EU prospect calls\n- **Landing date**: 2026-12-19 (Q4 close)\n- **Horizon / effort ceiling**: compounding; a few hours every week, no headcount\n- **Stakeholders**: me -> decides; CFO -> consulted (pricing floor)\n\n## Session log\n- 2026-09-18 - build the cadence -> sales-outbound-sequence -> 9-touch plan committed\n- 2026-10-02 - map stakeholders -> deal-champion-mapping -> 4 deals single-threaded\n\nToday I want to unstick those four deals that died after the demo.",
"expected_output": "A warm-start kickoff: exactly five summary lines, only the session-goal question asked, deal triage pinned to rung 1 by the stalled-deal bottleneck, decided and blocked items removed from the short-list, and the artifact patched with one new log line.",
"files": [],
"expectations": [
"Produces a state summary of exactly 5 lines.",
"The state summary covers motion, seat and team shape, in-flight work, top open decision, and active constraint.",
"Asks only the session-goal question, and asks no question about motion, seat, bottleneck, constraints, landing date, horizon, or effort ceiling.",
"Re-ranks using the landing date and the horizon/effort ceiling read from the artifact instead of re-asking them.",
"Appends exactly one new session-log line to sales-context.md.",
"Patches only the fields that changed rather than rewriting the whole artifact.",
"Routes the immediate task to exactly one of deal-red-flags, meddpicc-scorecard, or deal-champion-mapping.",
"Pins the deal-triage class to rung 1 and cites the stalled-after-demo bottleneck as the reason.",
"Pulls negotiation-concession-planner and deal-value-calc up above their default class position.",
"sales-outbound-sequence is absent from the short-list because the cadence is a decided item, and is not parked at the bottom of it.",
"sales-call-review appears under Not now with the EU no-recording constraint as its unblocking condition, rather than on the short-list.",
"Short-list contains no planning-altitude skill."
]
},
{
"id": 3,
"prompt": "Vestrel Analytics, 60 people, B2B SaaS. I need a 30-60-90 plan and a solid set of SDR interview questions, ideally by Friday. Can you put that together?",
"expected_output": "One disambiguating question about who is asking before any route, then an employer-side route to sales-hiring made rung 1, with every pipeline class deleted from the short-list.",
"files": [],
"expectations": [
"Asks exactly one disambiguating question before routing: whether the user is hiring for this role or interviewing for it.",
"Does not route on the keywords \"30-60-90\" or \"interview questions\" alone.",
"Names mbfinotti/sales-skills@sales-hiring and mbfinotti/sales-skills@sales-career as the two candidate skills.",
"States that the deciding factor is who is asking, not the topic keywords.",
"Notes that each of the two skills self-detects a wrong audience and points across to the other.",
"On an employer-side answer, routes to exactly mbfinotti/sales-skills@sales-hiring.",
"Places that skill at rung 1 of the short-list.",
"Deletes every pipeline class from this session's short-list rather than ranking them lower.",
"States out loud that the seat answer is what removed the pipeline classes.",
"sales-radar does not appear on the short-list.",
"Every skill is referenced in owner/repo@skill form, never as a bare name.",
"Writes or updates sales-context.md with one session-log line before ending the session."
]
},
{
"id": 4,
"prompt": "Three things are hurting at Calderon Metrics. Inbound leads sit unassigned for a day and a half before anyone touches them. Our pipeline is stuffed with deals that haven't moved in 90+ days and nobody agrees what \"Stage 3\" even means. And the forecast has come in 20% under call three quarters running. Which of your sales skills handle these?",
"expected_output": "All three classified as CRM/pipeline-tactical work outside this collection, with a named recommendation to install the revops sibling repo and the specific skills inside it, and no forced route onto a sales-skills sibling.",
"files": [],
"expectations": [
"Classifies all three requests as CRM/pipeline-tactical work outside the sales-skills collection's boundary.",
"Recommends installing mbfinotti/revops-skills.",
"Names lead-routing (or lead-scoring) for the unassigned-lead problem.",
"Names sales-pipeline-hygiene or pipeline-stage-definition-audit for the stale-deal and stage-definition problem.",
"Names sales-forecast-diagnostic for the repeated forecast miss.",
"Does not route any of the three to meddpicc-scorecard, deal-red-flags, sales-account-tiering, or sales-pipeline-coverage-modeling.",
"Frames the sibling repo as a recommendation and states that sales-skills stays fully usable standalone.",
"Does not answer with a flat \"no skill fits\".",
"Explains the boundary as ownership of the decision: the sales plan is sales-skills, the systems, data and reporting that instrument it are revops-skills.",
"Distinguishes sales-pipeline-coverage-modeling (is there enough pipeline) from a hygiene sweep (is the pipeline that exists clean and current).",
"Invents no skill name that does not exist in either collection.",
"References every named skill in owner/repo@skill form."
]
},
{
"id": 5,
"prompt": "Kestrel Ops here. Board wants three things this quarter: stand up a reseller program with two or three tiers, settle who owns the account when a reseller and one of our own AEs are both working it, and launch an affiliate program paying 15% recurring to anyone who sends us signups. Where do I start?",
"expected_output": "All three classified as partner/channel and affiliate-program territory, with a named recommendation to install the partnerships sibling repo, the sales-motion boundary stated, and no force-fit onto sales-comp-design or sales-account-tiering.",
"files": [],
"expectations": [
"Classifies the request as partner, channel and program-relationship work outside the sales-skills collection's boundary.",
"Recommends installing mbfinotti/partnerships-skills.",
"Names partner-channel-program, partner-ecosystem, or partner-tiering for the reseller program design.",
"Names partner-channel-conflict or co-selling-strategy for the account-ownership overlap.",
"Names an affiliate-* skill for the affiliate program.",
"States the boundary against sales-motion: whether to run a channel motion at all is sales-motion, designing the program once that is decided is partnerships-skills.",
"Does not force-fit sales-comp-design onto the 15% recurring affiliate commission question.",
"Does not force-fit sales-account-tiering onto the reseller tier design.",
"Frames the sibling repo as a recommendation, never a dependency.",
"Does not answer with a flat \"no skill fits\".",
"References every named skill in owner/repo@skill form.",
"Invents no skill name that does not exist in either collection."
]
},
{
"id": 6,
"prompt": "Amberline Solar, residential, 22 reps across three states. I need three deliverables: voicemail scripts the reps leave when nobody picks up, a battlecard against the two installers who beat us most often, and a repeatable method for cutting our territories so the three states are carved fairly. What have you got?",
"expected_output": "Three explicit gap statements, no stretched route onto cold-call-opener, segmentation or tiering, and no invented skill.",
"files": [],
"expectations": [
"States plainly that the collection has no skill for voicemail scripts.",
"States plainly that the collection has no skill for competitive positioning or battlecard content.",
"States plainly that the collection has no skill for territory-carve methodology.",
"Does not stretch cold-call-opener onto the voicemail script request.",
"Notes that cold-call-opener stops at the first 5-30 seconds of a live call and explicitly excludes voicemail.",
"Does not stretch sales-account-segmentation or sales-account-tiering onto the territory-carve request.",
"Notes that segmentation and tiering score and rank accounts but neither draws the territory boundaries.",
"Does not stretch sales-objection-handling or deal-value-calc onto the battlecard request.",
"Neither invents a skill name nor promises that a skill exists.",
"Checks the two sibling repos (revops-skills, partnerships-skills) before declaring the gaps.",
"Presents the three gaps in a dedicated Gap section rather than scattered through prose.",
"Does not produce a short-list of unrelated skills to fill the answer out."
]
},
{
"id": 7,
"prompt": "I'm CRO at Rothwyn Cloud - 45 people, $30k ACV, sales-led. Reps came in at 105% of quota last year, which sounds fine until you notice roughly 40% of the logos they closed churned inside twelve months. Two of my AEs are now pushing for a steeper accelerator above 100%. I've got a planning cycle starting in three weeks. What do I fix first?",
"expected_output": "A planning-altitude kickoff: planning ladder only, people-and-pay promoted out of its efficiency slot because reps are hitting quota on out-of-profile accounts, re-comp before re-org, and the frame class held open while the ICP is contested.",
"files": [],
"expectations": [
"Treats the session as planning altitude and says so.",
"Builds the short-list from the planning ladder only, with no execution-altitude skill ranked inside it.",
"Promotes the people-and-pay class rather than leaving it at the bottom, citing that reps are hitting quota on out-of-profile accounts.",
"States that people-and-pay is top on value, top on effort, and the least reversible, which is exactly what a pure efficiency order starves.",
"Recommends re-comping before re-orging when both are moving.",
"Names sales-icp-definition as the frame-class skill the churn signal implicates.",
"Does not open the short-list below the frame class while the ICP is contested.",
"Attaches a compliance-cost note to the people-and-pay class (consultation on reporting lines, re-signed agreements with HR and legal) and attaches none to the other three planning classes.",
"Routes the immediate task to exactly one skill.",
"Every short-list line names both the bottleneck it attacks and what the session costs.",
"Does not blend planning and execution skills into one ranked list.",
"Expresses effort in orders of magnitude (a workshop, days, a planning cycle, a reorg) rather than currency amounts or exact hour counts."
]
},
{
"id": 8,
"prompt": "Thurlow Data. Honestly our answer to \"who do you sell to\" is \"anyone with a data team\", and it shows - about 70% of our outbound goes absolutely nowhere. I want to fix our targeting. We have 14 months of closed-won and closed-lost data, roughly 3,000 accounts sitting in the CRM, and no tiers or segments of any kind.",
"expected_output": "A single route to sales-icp-definition, an ordered planning chain through sizing, segmentation and tiering presented as dependency order, and the three-way targeting boundary stated.",
"files": [],
"expectations": [
"Routes the immediate task to exactly mbfinotti/sales-skills@sales-icp-definition.",
"Does not route the immediate task to sales-account-segmentation, sales-account-tiering, sales-market-sizing, or sales-outreach-personalization.",
"Proposes the chain sales-icp-definition then sales-market-sizing then sales-account-segmentation then sales-account-tiering.",
"States that the chain is in dependency order, not efficiency order.",
"Explains the three-way boundary: ICP answers who qualifies at all, segmentation how the qualifying accounts are scored and grouped, tiering where the cutoffs sit and what service level each group gets.",
"States that each of the three consumes the one before it and never re-derives it.",
"Notes that sizing a market before the ICP filters it produces a number nobody can act on.",
"Gives one line per chain link on what it hands to the next link.",
"Does not rank or reorder the chain links by value or effort.",
"Uses the 14 months of closed-won history as the input the ICP weighting is calibrated against.",
"Distinguishes account-level fit from contact-level lead scoring and points the latter at mbfinotti/revops-skills@lead-scoring.",
"Keeps the short-list on the planning ladder only."
]
},
{
"id": 9,
"prompt": "Pellworth Insurance Software. We're 100% inbound - demo requests from our content and a marketplace listing - with two full-cycle AEs and no SDRs. Cold calling and cold emailing are off the table, it's a company policy and it isn't changing. Demo-to-close conversion is 11% and I need that number up. What should we run?",
"expected_output": "A short-list with the channel-integrity class and the cold-outreach half of the message class deleted outright, the motion answer named as the cause, and the remaining execution ladder opened at the highest unresolved class.",
"files": [],
"expectations": [
"Deletes cold-email-deliverability from the short-list entirely rather than ranking it low.",
"Deletes sales-outreach-personalization, cold-email-subject-line-tester, and cold-call-opener from the short-list.",
"States out loud that the inbound / full-cycle AE motion answer is what removed them.",
"None of those four skills appears at the bottom of the short-list as a demoted entry.",
"Opens the short-list at the highest class the interview left unresolved.",
"Names sales-discovery-questions, deal-value-calc, or negotiation-concession-planner among the reusable-structure entries.",
"Routes the immediate task to exactly one skill.",
"Short-list contains between 5 and 8 entries, drawn from the execution ladder only.",
"Every short-list line names both the bottleneck it attacks and what the session costs.",
"Does not propose a monthly sending-setup-check routine.",
"Does not recommend a cold-outbound cadence; any sequence work is framed as inbound-lead or post-demo follow-up.",
"Does not reclassify the 11% demo-to-close problem as a planning-altitude question."
]
},
{
"id": 10,
"prompt": "Solo founder at Nyle Instruments, industrial sensors, selling it myself. I have maybe four hours total this week and that is genuinely it. No CRM, no call recording, and I am not going to build a system I then have to maintain. Deals keep dying after the first call. Just tell me the one or two things worth doing.",
"expected_output": "A two-entry short-list from the top two classes, exactly one routine (the kickoff re-invocation) shown as a dry-run with an output channel, sales-call-review moved to Not now, and no scaffolding.",
"files": [],
"expectations": [
"Cuts the short-list to exactly two entries.",
"Both short-list entries come from the channel-integrity or deal-triage classes.",
"Proposes exactly one routine.",
"The single proposed routine is the periodic re-invocation of the kickoff itself.",
"Does not propose a weekly tape-review routine.",
"Moves sales-call-review to a Not now list with a first recorded call as its stated unblocking condition.",
"States that the missing CRM and call-recording access turns deal triage into a manual pass over notes already in hand.",
"States out loud which interview answer cut the short-list to two entries.",
"Does not propose more than four routines.",
"The proposed routine names exactly one explicit output channel, and \"notify me\" is not used as the channel.",
"The routine is shown as a dry-run, with a first-run date, before anything recurring is created.",
"Does not scaffold directories, templates, or a decision log beyond what this session needs."
]
},
{
"id": 11,
"prompt": "Need a gut check on whether this one is real. Brakewell Foods, $140k, three calls so far, all with the same person - Dana, who runs supply chain ops. My notes: call 1 \"loves the product, says budget is probably there\"; call 2 \"will take it to her boss, didn't say when\"; call 3 \"asked about integrations, said let's reconnect after their busy season\". No next meeting booked. This is the biggest thing in my number this quarter so I want a straight answer.",
"expected_output": "A single route to deal-red-flags with the notes-versus-eight-elements boundary named, the deal treated as execution altitude, and no CRM dependency.",
"files": [],
"expectations": [
"Routes the immediate task to exactly mbfinotti/sales-skills@deal-red-flags.",
"Names the deciding boundary: an unstructured sweep of free-text notes quoting fragments, versus a structured pass against the eight named MEDDPICC elements.",
"Does not route the immediate task to meddpicc-scorecard.",
"Does not treat the question as planning altitude despite its framing as the biggest item in the number.",
"States that a question about one named deal is never planning altitude, however strategic it sounds.",
"Notes that deal-red-flags reads one deal's free-text notes and never a pipeline export.",
"Places the deal-triage class at rung 1 of the execution short-list.",
"Names deal-champion-mapping as the skill for \"who is the real decision maker\" and single-threading mapping, and does not conflate it with the red-flag sweep.",
"Any chain proposed is listed in dependency order with one line per link on what it hands to the next, and is not reordered by value or effort.",
"Does not require CRM access to complete the route.",
"Short-list is drawn from the execution ladder only, with no planning skill inside it.",
"Invents no skill name outside the collection's routing table."
]
},
{
"id": 12,
"prompt": "Your memory carries across sessions, right? Save everything I just told you so we don't redo this next time: we're outbound-led, $28k ACV, ICP is heads of facilities at 200-500 person manufacturers, our discount floor is $19k and I don't go under it. Priya Raman at Delworth Foods is our biggest open deal at $84k and she's the one championing us internally. My two AEs are at 71% and 103% attainment. This repo is git-tracked, by the way.",
"expected_output": "The artifact written first and the memory entry derived from it, the exclusion list stated on first write, the named contact, discount floor and attainment figures kept out of memory, an indexed single storage location, and a diff plus approval before any commit.",
"files": [],
"expectations": [
"Writes the captured answers into sales-context.md first, then derives the memory entry from the artifact.",
"Does not write the memory entry straight from the user's message.",
"States the memory exclusion list on first writing memory.",
"Excludes the named individual, Priya Raman, and her company contact detail from the memory entry.",
"Excludes the $19k discount floor from the memory entry.",
"Excludes the 71% and 103% per-rep attainment figures from the memory entry.",
"Stores memory in exactly one of three places: local to the user's environment, a team knowledge base, or a memories/ directory in the repository.",
"Creates or updates an index file listing each memory entry with a one-line hook.",
"Shows the diff and asks for approval before committing memory into the git repository.",
"States that the artifact is the source of truth and wins by default when memory and artifact diverge.",
"Gives the reason the artifact leads: memory is invisible and unreviewable to teammates, so a memory-first flow forks the project state per user.",
"Keeps the pricing floor recorded in sales-context.md even though it is excluded from memory."
]
},
{
"id": 13,
"prompt": "Corran Networks - set me up with some recurring automations for the sales side. Keep it light, I don't want to be pinged all day long. Context: we run outbound email and phone, every call is recorded through our dialer, my manager already sits down with me every Friday and goes through one of my recordings, and our forecast call is Thursday mornings at 9.",
"expected_output": "Two to four routines ranked by value per unit of standing effort, deal inspection anchored the day before Thursday's forecast call, the tape review demoted as a duplicate, the source refresh not leading, and every routine shown as a dry-run with one named output channel.",
"files": [],
"expectations": [
"Proposes between 2 and 4 routines, and never more than 4.",
"Proposes a pre-forecast deal inspection anchored the day before the Thursday forecast call, never after it.",
"That routine invokes mbfinotti/sales-skills@deal-red-flags.",
"Includes a sequence checkpoint that fires at the committed touch count rather than on a clock.",
"Includes a monthly or quarterly re-invocation of the kickoff itself.",
"Demotes or omits the weekly tape review because the manager already runs one, rather than grading the same call twice.",
"Does not lead the proposal with the quarterly source refresh.",
"If the source refresh is mentioned at all, it is named as the cheapest candidate and the last one to install.",
"Every proposed routine names exactly one explicit output channel, and \"notify me\" is rejected as a channel.",
"Every routine is shown as a dry-run with a first-run date before anything recurring is created.",
"Lists the existing routines and flags obsolete ones for deletion before adding new ones.",
"States the routine ordering out loud as value per unit of standing effort, rather than leaving it implied by list order."
]
}
],
"trigger_queries": [
{
"query": "We're spinning up a new outbound motion at Larkwell Systems next quarter - where do I start?",
"should_trigger": true
},
{ "query": "Which sales skill do I need?", "should_trigger": true },
{ "query": "Run my sales check-in.", "should_trigger": true },
{
"query": "I'm the founder at Teluma and I've never done cold outreach. What should I do first?",
"should_trigger": true
},
{
"query": "Start a new sales project for our Series A SaaS.",
"should_trigger": true
},
{
"query": "Kick off the sales work for our Q3 push.",
"should_trigger": true
},
{
"query": "help, my whole sales process is a mess and I have no idea what to fix first",
"should_trigger": true
},
{
"query": "I have four sales problems and two weeks. Triage them for me.",
"should_trigger": true
},
{
"query": "Where do I start with sales at a 12-person company?",
"should_trigger": true
},
{
"query": "Can you re-route me? The approach we picked last time isn't the right one.",
"should_trigger": true
},
{
"query": "Monthly sales review time - what's changed and what do I run next?",
"should_trigger": true
},
{
"query": "New quarter, new sales project. Set me up.",
"should_trigger": true
},
{
"query": "Give me an ordered plan of which sales work to do in what order.",
"should_trigger": true
},
{
"query": "I don't know which of these applies to me - deals stall after the demo, our emails bounce, and my SDR is brand new.",
"should_trigger": true
},
{ "query": "Onboard me to this sales collection.", "should_trigger": true },
{
"query": "what should I work on first if I want to hit number this quarter",
"should_trigger": true
},
{
"query": "I just took over as VP Sales at Nordvane. Walk me through where to begin.",
"should_trigger": true
},
{
"query": "Resume the sales project we started last month.",
"should_trigger": true
},
{
"query": "Do a periodic review of my sales setup.",
"should_trigger": true
},
{
"query": "Which of your capabilities fits \"our pipeline feels fake\"?",
"should_trigger": true
},
{
"query": "I need help selling but I'm honestly not sure what kind of help.",
"should_trigger": true
},
{
"query": "Route this for me: we need better targeting, better messaging, and a comp plan.",
"should_trigger": true
},
{ "query": "Sales check-in, please.", "should_trigger": true },
{
"query": "Start here: I'm building a sales function from zero.",
"should_trigger": true
},
{
"query": "what's the highest-leverage sales thing I can do with six hours this week",
"should_trigger": true
},
{
"query": "Pick the right approach for me - I'm an AE at a 40-person startup and my quarter is slipping.",
"should_trigger": true
},
{
"query": "We're at 30% of quota with five weeks left. What do I do, and in what order?",
"should_trigger": true
},
{
"query": "Take stock of our sales situation and tell me the next step.",
"should_trigger": true
},
{
"query": "I'm switching us from inbound-only to outbound. Where do I begin?",
"should_trigger": true
},
{
"query": "Set up a sales project for Brightmoor Logistics.",
"should_trigger": true
},
{
"query": "Give me a short-list of what's actually worth my time in sales right now.",
"should_trigger": true
},
{
"query": "Re-run the routing - my situation has changed since last session.",
"should_trigger": true
},
{
"query": "I keep bouncing between fixing our emails and fixing our discovery calls. Decide for me.",
"should_trigger": true
},
{
"query": "Which comes first: fixing deliverability or rewriting my opener?",
"should_trigger": true
},
{
"query": "Tell me which sales problems I should ignore this quarter.",
"should_trigger": true
},
{
"query": "First session on a new sales engagement - what do you need from me?",
"should_trigger": true
},
{
"query": "Help me figure out what's actually broken in how we sell.",
"should_trigger": true
},
{
"query": "I have a sales-context.md from last time. Pick up from there.",
"should_trigger": true
},
{
"query": "new project: commission-only real estate team, six agents, no process at all",
"should_trigger": true
},
{
"query": "we sell solar door to door and literally nothing is written down. where do we start",
"should_trigger": true
},
{
"query": "I want a plan for the whole sales year, not one task.",
"should_trigger": true
},
{ "query": "quarterly sales planning session - go", "should_trigger": true },
{
"query": "Can you look at everything and tell me what to do first?",
"should_trigger": true
},
{
"query": "My board wants a sales plan and I don't know what pieces it needs.",
"should_trigger": true
},
{ "query": "Take my sales mess and sequence it.", "should_trigger": true },
{
"query": "Is there anything here for someone who just got promoted to sales manager?",
"should_trigger": true
},
{
"query": "which one of these do I run, and in what order",
"should_trigger": true
},
{
"query": "I'd like a recurring cadence for reviewing my sales work - set that up too.",
"should_trigger": true
},
{
"query": "We're mid-project on the outbound build. Re-summarize and tell me what's next.",
"should_trigger": true
},
{
"query": "Do you have something for \"I don't know what I don't know\" in sales?",
"should_trigger": true
},
{
"query": "Frame the problem for me before we pick a tactic.",
"should_trigger": true
},
{
"query": "Getting started at Cavora Health - three reps, $40k ACV, no playbook.",
"should_trigger": true
},
{
"query": "Everything is on fire: no meetings, stalled deals, and a comp plan nobody trusts.",
"should_trigger": true
},
{ "query": "Assess and route.", "should_trigger": true },
{
"query": "check in on where the sales project stands",
"should_trigger": true
},
{ "query": "what should my first move be", "should_trigger": true },
{
"query": "I only have a week. What's the one sales thing worth doing?",
"should_trigger": true
},
{
"query": "Sales strategy session, start to finish. Begin wherever makes sense.",
"should_trigger": true
},
{
"query": "We just hired two SDRs and I have no idea what to set up for them.",
"should_trigger": true
},
{
"query": "Between fixing our targeting, our messaging, and our quotas - which first?",
"should_trigger": true
},
{
"query": "I want to build something that keeps paying off, not a one-off fix for this quarter.",
"should_trigger": true
},
{
"query": "How do I stay organized across sessions on this sales work?",
"should_trigger": true
},
{
"query": "Restart: the ICP changed, so half of what we planned is wrong now.",
"should_trigger": true
},
{
"query": "Give me the map of what's available and where I fit on it.",
"should_trigger": true
},
{
"query": "I run a four-person insurance agency and nothing is systematized. Help.",
"should_trigger": true
},
{
"query": "Which direction should we take this quarter - more meetings or a better close rate?",
"should_trigger": true
},
{
"query": "Bring me up to speed on our sales project and propose next steps.",
"should_trigger": true
},
{
"query": "Not sure whether my problem is the list, the message, or the call itself. Diagnose it.",
"should_trigger": true
},
{ "query": "Plan out my next three sales sessions.", "should_trigger": true },
{
"query": "set up the sales workspace for this repo",
"should_trigger": true
},
{
"query": "what's the equivalent of a kickoff meeting for the selling side here",
"should_trigger": true
},
{
"query": "I need a hiring plan and a quota model and a cadence. Order them for me.",
"should_trigger": true
},
{
"query": "Take it from the top - we've never done structured selling.",
"should_trigger": true
},
{
"query": "Recurring review: is the sales plan still the right plan?",
"should_trigger": true
},
{
"query": "Our motion changed from PLG to sales-assisted and I don't know what to redo.",
"should_trigger": true
},
{
"query": "Write me a cold call opener for a CFO at a 200-person manufacturer.",
"should_trigger": false
},
{
"query": "Score these five subject lines for my Series B outreach.",
"should_trigger": false
},
{
"query": "Our cold emails land in spam - check my SPF and DKIM setup.",
"should_trigger": false
},
{
"query": "Build an 8-touch outbound cadence mixing email and phone.",
"should_trigger": false
},
{
"query": "Draft discovery questions for a first call with a RevOps lead.",
"should_trigger": false
},
{
"query": "The prospect said \"we're happy with our current vendor\" - give me a rebuttal.",
"should_trigger": false
},
{
"query": "Score this deal against MEDDPICC for me.",
"should_trigger": false
},
{
"query": "Who's the real economic buyer in this deal? Here are my call notes.",
"should_trigger": false
},
{
"query": "Sweep these deal notes for qualification red flags.",
"should_trigger": false
},
{
"query": "Build the ROI case for a $90k renewal.",
"should_trigger": false
},
{
"query": "Plan my concessions before tomorrow's pricing call.",
"should_trigger": false
},
{
"query": "Turn these messy notes into a recap email with owned next steps.",
"should_trigger": false
},
{
"query": "Grade this call transcript against a rubric.",
"should_trigger": false
},
{
"query": "Should we go PLG or sales-led at $8k ACV?",
"should_trigger": false
},
{
"query": "Define our ICP from 18 months of closed-won data.",
"should_trigger": false
},
{
"query": "Calculate TAM and SAM for logistics software in Germany.",
"should_trigger": false
},
{
"query": "Design a fit-by-readiness segmentation model for 4,000 accounts.",
"should_trigger": false
},
{
"query": "Where should the tier cutoffs sit, and how many tiers do we need?",
"should_trigger": false
},
{
"query": "Design a pod structure with a 1:3 SDR-to-AE ratio.",
"should_trigger": false
},
{
"query": "Set quotas for eight AEs, three of them still ramping.",
"should_trigger": false
},
{
"query": "How much pipeline do we need for a $2M quarter at a 22% win rate?",
"should_trigger": false
},
{
"query": "Design an AE comp plan with accelerators above 100%.",
"should_trigger": false
},
{
"query": "Write an SDR scorecard and a structured interview loop for my team.",
"should_trigger": false
},
{
"query": "I'm interviewing for an AE role next week - prep me for the mock cold call.",
"should_trigger": false
},
{
"query": "What sales podcasts and newsletters should I be following?",
"should_trigger": false
},
{
"query": "Rank these three personalization angles for my prospect list.",
"should_trigger": false
},
{
"query": "What do I say in the first ten seconds when they pick up?",
"should_trigger": false
},
{
"query": "Fix my open rates - the subject lines are dead.",
"should_trigger": false
},
{
"query": "How many touches before I stop a sequence?",
"should_trigger": false
},
{
"query": "Is \"guarantee\" a spam trigger word inside a subject line?",
"should_trigger": false
},
{
"query": "Design lead routing rules for round-robin assignment.",
"should_trigger": false
},
{
"query": "Audit our pipeline stage definitions and exit criteria.",
"should_trigger": false
},
{
"query": "Build a lead scoring model from our form-fill and product usage data.",
"should_trigger": false
},
{
"query": "Why is our forecast always 20% off?",
"should_trigger": false
},
{ "query": "Design a partner tiering program.", "should_trigger": false },
{
"query": "Write affiliate program terms with a 20% recurring commission.",
"should_trigger": false
},
{
"query": "Plan an influencer campaign brief for a developer tool.",
"should_trigger": false
},
{
"query": "Design a refer-a-friend incentive for our consumer app.",
"should_trigger": false
},
{
"query": "Set up co-selling rules with our two biggest resellers.",
"should_trigger": false
},
{
"query": "Build a customer health score from usage and support data.",
"should_trigger": false
},
{
"query": "Run the project kickoff meeting agenda for our new website build.",
"should_trigger": false
},
{
"query": "Kick off a marketing campaign for our spring launch.",
"should_trigger": false
},
{
"query": "Starting a new engineering sprint - what ceremonies do we need?",
"should_trigger": false
},
{
"query": "Draft a client kickoff deck for an agency onboarding.",
"should_trigger": false
},
{
"query": "Run the devrel kickoff for our developer relations program.",
"should_trigger": false
},
{ "query": "Where do I start with RevOps?", "should_trigger": false },
{
"query": "Which partnerships skill do I need for our alliance work?",
"should_trigger": false
},
{
"query": "Kick off our developer platform project.",
"should_trigger": false
},
{ "query": "Run my marketing check-in.", "should_trigger": false },
{
"query": "New event project - where do I begin organizing our conference?",
"should_trigger": false
},
{
"query": "Onboarding kickoff for a new engineer joining the team next Monday.",
"should_trigger": false
},
{
"query": "Start a customer success project from scratch.",
"should_trigger": false
},
{
"query": "Which advertising skill fits my Google Ads problem?",
"should_trigger": false
},
{
"query": "Help me kick off a seed fundraising round.",
"should_trigger": false
},
{
"query": "Run the kickoff for our OKR planning cycle.",
"should_trigger": false
},
{
"query": "What's the first step in setting up our recruiting process for engineers?",
"should_trigger": false
},
{
"query": "I need a project charter template for a cross-functional initiative.",
"should_trigger": false
},
{
"query": "Start a new product discovery project.",
"should_trigger": false
},
{
"query": "Which support skill covers ticket deflection?",
"should_trigger": false
},
{
"query": "Kick off a security review of our public API.",
"should_trigger": false
},
{
"query": "Do I need a do-not-call scrub before dialing consumers in Florida?",
"should_trigger": false
},
{
"query": "Rewrite this rebuttal so it sounds natural said out loud on the phone.",
"should_trigger": false
},
{
"query": "What's our BATNA if they walk from a $60k deal?",
"should_trigger": false
},
{
"query": "How do I prove a champion is real and not just friendly?",
"should_trigger": false
},
{
"query": "Give me a do-not-ask list for discovery calls.",
"should_trigger": false
},
{
"query": "Which ramp relief schedule works for a rep starting mid-quarter?",
"should_trigger": false
},
{
"query": "Write a follow-up email after the demo with action items and owners.",
"should_trigger": false
},
{
"query": "How long should a discovery call run for a $15k deal?",
"should_trigger": false
},
{
"query": "Our sending domain got blacklisted last week - what now?",
"should_trigger": false
},
{
"query": "Build a mutual action plan for a Q4 close.",
"should_trigger": false
},
{
"query": "What's a healthy SDR-to-AE ratio once we're at 30 reps?",
"should_trigger": false
},
{
"query": "Should base/variable be 50/50 or 60/40 for enterprise AEs?",
"should_trigger": false
},
{
"query": "Model coverage by segment with seasonality indexing.",
"should_trigger": false
},
{
"query": "Which communities should a B2C insurance agent join?",
"should_trigger": false
},
{
"query": "Evaluate this AE offer - $70k base, $140k OTE. Is it competitive?",
"should_trigger": false
}
]
}
references/context-artifact.md›
# Context artifact - `sales-context.md`
One versioned file at the project root, committed with the project when it lives in git.
- Existence: the cold/warm signal.
- Content: what the warm start reads instead of re-interviewing.
Keep every field short - this file is read at every session start, so bloat taxes every session.
## Template
```markdown
# Sales context
- **Updated**: <date> (session <n>)
- **Motion**: <B2B outbound-led | B2B inbound/full-cycle AE | B2C high-ticket | mixed - one line of nuance>
- **Seat / team**: <who is selling: SDR, AE, founder…; team size and shape>
- **ICP / offer**: <who is bought by whom, price point, pricing floor - flag what is fixed vs contested>
- **Bottleneck**: <where the funnel hurts most right now, one line>
- **In-flight work**: <what is being built or fixed right now, one line per item>
- **Decided**: <closed decisions, one line each - off the table>
- **Open**: <live questions, one line each>
- **Constraints**: <quota deadlines, quarter close, sender-domain state, outreach regulation, tooling access>
- **Landing date**: <the date the result must land by, or none>
- **Horizon / effort ceiling**: <one-off or compounding asset; hours, a week, a few hours weekly, or headcount and sign-off>
- **Plan state**: <the planning decisions already made and where they live: motion, ICP, segment/tier model, org shape, quota method, comp plan - mark each settled or contested>
- **Stakeholders**: <name/role → decision role: decides | consulted | informed>
## Session log
- <date> - <session goal> → <skill(s) used> → <outcome in one line>
```
## Worked example
```markdown
# Sales context
- **Updated**: 2026-04-02 (session 5)
- **Motion**: B2B outbound-led, mid-market SaaS; ACV ~$18k, 60-day cycle
- **Seat / team**: founder selling + 1 SDR ramping; no dedicated AE yet
- **ICP / offer**: ops leads at 50-200-person logistics companies (fixed); pricing floor $12k - below only with founder sign-off
- **Bottleneck**: meetings book fine; deals stall after the demo
- **In-flight work**: outbound sequence v2 draft; champion maps on 3 stalled deals
- **Decided**: email + phone only, no social automation; one sequencer tool
- **Open**: whether to add an SMS touch for webinar-lead follow-up
- **Constraints**: sender domain warmed only 6 weeks; no call recording allowed on DE prospect calls
- **Landing date**: 2026-06-30 (Q2 close)
- **Horizon / effort ceiling**: compounding; a few hours every week, founder sign-off available, no headcount
- **Plan state**: motion settled (outbound-led); ICP settled; no formal segment/tier model, no quota method, no comp plan yet - all contested
- **Stakeholders**: founder → decides; SDR → consulted (cadence load); fractional CMO → informed
## Session log
- 2026-03-05 - pick a cold-outbound angle → sales-outreach-personalization → 3 ranked angles, hiring-surge angle chosen
- 2026-03-12 - build the cadence → sales-outbound-sequence → 8-touch plan, metric thresholds committed
- 2026-04-02 - unstick 3 stalled deals → deal-champion-mapping → all 3 single-threaded; prove-the-champion actions assigned
```
Why this works:
- Every field answers a question the next session would otherwise ask.
- The log line names goal, skill, and outcome.
- Contested items are flagged rather than smoothed over.
## Negative example - do not produce this
```markdown
# Sales context
We are an ambitious team building a world-class sales motion. We reach out
through various channels and there have been good conversations. Several deals
are in progress. Next steps: keep pushing and improve our sales process.
## Notes
- Great demo on Thursday, they seemed interested
- Lots of ideas about scripts, sequences, negotiation, hiring...
```
Why this fails:
- No field answers a concrete question (what is the motion? who decides? what is the pricing floor?), so the next session re-interviews anyway - the artifact exists but the start is still cold.
- "They seemed interested" is not evidence any deal skill can grade, and the idea dump routes nowhere.
## Update rules
- Patch changed fields; never rewrite the whole file each session.
- Refresh **Landing date** and **Horizon / effort ceiling** whenever either changes - the warm start re-ranks the short-list and the routines off those two fields instead of re-asking, so a stale value silently produces the wrong order.
- Append exactly one session-log line per session, before the session ends.
- Move an item from **Open** to **Decided** only when the stakeholder with the _decides_ role has signed off - record who.
- Keep a separate ADR-style decision log only when contested decisions genuinely accumulate; until then the Decided/Open lists are the record.
- Keep prospect and customer PII out of this file when it is committed to a shared repository - name roles and companies only as far as the team's own privacy rules allow.
references/routines.md›
# Routines - dry-run format, anchoring, cleanup
Applies only where the harness supports scheduled routines. Otherwise: one recurring calendar reminder ("Sales check-in - re-run the sales kickoff") is the whole fallback - do not simulate a scheduler.
## Dry-run format
Show every proposed routine in this shape and get approval before creating anything:
```
Routine: <name>
Runs: <trigger - anchored, see below>
Does: <one line - which skill it invokes, on what input>
Outputs to: <explicit channel - team chat, issue tracker, document, email>
First run: <date> (dry run - produces the output, creates nothing recurring yet)
```
Create the recurring version only after the user approves the dry-run output - a routine approved on its description alone still surprises on its first real output.
## Trigger anchoring
Anchor to the sales calendar, not arbitrary dates, whenever the routine's value depends on timing. Listed in the same install order as `mbfinotti/sales-skills@sales-kickoff` § 7 - highest value per unit of standing effort first:
- Deal inspection with `mbfinotti/sales-skills@deal-red-flags` → the day before the weekly forecast or pipeline call, on the deals in the current commit
- Sequence checkpoint → at the touch count committed in the cadence plan, not on a clock
- Kickoff re-invocation → monthly or quarterly, whichever matches the project's pace from the git log
- Sending-setup check → monthly, and always before a planned sequence volume increase
- Tape review of one recorded call → weekly, on the team's coaching or cadence-review day
- Source refresh via `mbfinotti/sales-skills@sales-radar` → quarterly
Prefer an event trigger over a schedule when the harness offers one, rather than on a clock that may fire against stale data.
- Deal inspection: run it when a fresh CRM export lands.
- Sequence checkpoint: run it when the sequencer reports the committed touch count reached.
## Output channels
Every routine names exactly one channel its result lands in. "Notify me" is not a channel.
Good channels:
- A named team-chat channel
- An issue in the tracker
- A section appended to a standing document
If none can be named, the routine is not ready to exist.
## Cleanup
Before adding routines, list existing ones and remove the obsolete:
1. List all scheduled routines the harness reports for this project.
2. Flag any anchored to a past quarter, a retired sequence or campaign, or a skill/process no longer in use.
3. Show the flagged list; delete only with approval.
4. Record surviving and new routines in `sales-context.md` under in-flight work, so the next warm start knows what is already running.
Stale routines from a previous quarter fire noise; noise trains the user to silence notifications, which buries the one routine that mattered.
references/skill-routing.md›
# Routing detail - sales-skills collection
Route only from the declared scopes below. Every exclusion here comes from the skill's own description, not from inference.
Nothing in this file is ranked, and nothing in it should be. Scope is a match test, not a ratio. Ranking lives in the kickoff's short-list and routine set, where several skills compete for one session (see `mbfinotti/sales-skills@sales-kickoff` § 4 and § 7).
The collection sits at two altitudes. The nine skills under Planning-altitude signals decide the frame - motion, ICP, market size, segments, tiers, topology, quota, coverage, comp.
The eighteen under Execution-altitude signals work inside whatever those decisions produced. Settle the altitude first: a wrong-altitude route is the most common misroute here, because the same vocabulary appears on both sides.
## Table of Contents
- [Execution-altitude signals](#execution-altitude-signals)
- [Planning-altitude signals](#planning-altitude-signals)
- [Boundary pairs](#boundary-pairs)
- [Ordered chains](#ordered-chains)
- [Sibling repository recommendations](#sibling-repository-recommendations)
- [Coverage gaps (v1)](#coverage-gaps-v1)
## Execution-altitude signals
The kickoff's § 3 table says when to route to each execution skill, and Boundary pairs below settles every head-to-head collision between them. What neither carries is the exclusion that is nobody's territory - the thing a skill refuses that no sibling picks up. Those are here; treat a task landing on one as a coverage gap, not a re-route.
- `sales-outreach-personalization` never invents a signal - it ranks signals the user supplies, with a confidence and recency label on each.
- `cold-email-deliverability` covers hygiene and compliance only, never spam-filter evasion of any kind.
- `cold-call-opener` stops at the first 5-30 seconds: the rest of the call (demo, close) and voicemail scripts are covered nowhere in the collection.
- `sales-discovery-questions` ships a do-not-ask list alongside the question set; it never grades a call that already happened.
- `sales-objection-handling` will call a deal dead when the objection is a real constraint rather than script around it.
- `meddpicc-scorecard` scores one described deal - never a whole pipeline, and it never touches a CRM.
- `deal-red-flags` reads one deal's free-text notes, never a pipeline export.
- `deal-value-calc` never elicits the raw figures from the buyer; it labels every number buyer-supplied, benchmark, or rep-assumed.
- `sales-call-review` grades one tape and stops - ongoing coaching plans and manager 1:1 frameworks are a coverage gap.
- `sales-hiring` excludes sourcing, job ads and applicant tracking; `sales-career` excludes job searching, auto-applying and resume file generation.
- `sales-radar` answers what to read or follow and nothing operational.
- `sales-kickoff` routes; it never performs a sibling's job itself.
## Planning-altitude signals
### `mbfinotti/sales-skills@sales-motion`
- Also here: PLG/self-serve, sales-led, hybrid, channel and developer-led motions judged on ACV, time-to-value, buyer-vs-user separation, TAM shape and procurement friction; founder-led exit, PLG-adds-sales layering, enterprise shift, channel build; ranked free-to-paid conversion levers and the gates between motions.
- Not here: running a cadence, writing copy, or working one deal inside a motion already chosen; the org chart that carries the motion (`sales-org-structure`); the pay mix it implies (`sales-comp-design`).
### `mbfinotti/sales-skills@sales-icp-definition`
- Also here: firmographic, technographic and behavioral criteria; hard disqualifiers and anti-ICP; the weighting ladder (equal, analyst-defined, regression-based); a retro-scoring pass against closed-won history; founder-led discovery when no history exists; drift checks.
- Not here: scoring or grouping accounts against the finished ICP (`sales-account-segmentation`), counting the market (`sales-market-sizing`), contact-level lead behaviour (`mbfinotti/revops-skills@lead-scoring`), one deal's fit.
### `mbfinotti/sales-skills@sales-market-sizing`
- Also here: bottom-up build from account counts and ACV, top-down scoping, triangulation between methods, source-tier selection and rigor, sanity checks, the standing model when sizing recurs; B2B and B2C.
- Not here: the ICP criteria that filter SAM (`sales-icp-definition`), organizing or ranking the accounts inside the number (`sales-account-segmentation`), TAM-to-headcount conversion (`sales-org-structure`).
### `mbfinotti/sales-skills@sales-account-segmentation`
- Also here: fit×readiness two-axis scoring and quadrant plays, firmographic and technographic layers, whitespace mapping and gap pipeline, a per-segment motion map, the calibration pass that keeps scores honest.
- Not here: deriving the ICP beneath the fit score (`sales-icp-definition`), tier cutoffs and per-tier service levels (`sales-account-tiering`), executing the territory carve (`sales-org-structure`), contact-level scoring (`mbfinotti/revops-skills@lead-scoring`).
### `mbfinotti/sales-skills@sales-account-tiering`
- Also here: how many tiers and where the cutoffs sit, tier naming, the capacity cap and coverage model per tier (pods, exec sponsorship, QBR cadence, SLA-encoded differentiation), the score-to-tier bridge, tier-health dials, re-tiering cadence.
- Not here: building the fit score itself (`sales-account-segmentation`), the ICP beneath it (`sales-icp-definition`), the org topology the caps interact with (`sales-org-structure`).
### `mbfinotti/sales-skills@sales-org-structure`
- Also here: pods vs functional split, verticals, hunter/farmer split, SDR:AE ratio, manager span of control, TAM-to-headcount math, the frontline-manager hire, staged transitions between topologies.
- Not here: recruiting humans into the seats (`sales-hiring`), the pay mechanics the topology depends on (`sales-comp-design`), the quota those seats carry (`sales-quota-setting`), the motion the topology serves (`sales-motion`).
### `mbfinotti/sales-skills@sales-quota-setting`
- Also here: top-down target vs bottom-up capacity reconciliation, ramp-adjusted effective capacity, over-assignment, ramp relief schedules, territory-potential weighting, fair-share allocation, attainment-distribution validation and re-baselining triggers.
- Not here: the comp plan paying against the quota (`sales-comp-design`), sizing the pipeline it implies (`sales-pipeline-coverage-modeling`), the account criteria feeding territory potential (`sales-account-segmentation`, `sales-account-tiering`), forecast reliability (`mbfinotti/revops-skills@sales-forecast-diagnostic`).
### `mbfinotti/sales-skills@sales-pipeline-coverage-modeling`
- Also here: raw multiplier, stage-weighted and conversion-inversion methods; segment coverage bands, seasonality indexing, the credibility adjustment, the coverage gap and its four levers with the point of no return.
- Not here: deriving the quota being covered (`sales-quota-setting`), auditing a live pipeline's hygiene or stale deals (`mbfinotti/revops-skills@sales-pipeline-hygiene`), diagnosing why a forecast misses (`mbfinotti/revops-skills@sales-forecast-diagnostic`).
### `mbfinotti/sales-skills@sales-comp-design`
- Also here: base/variable mix by role, accelerators and decelerators, thresholds and caps, draws, spiffs, crediting and split rules, plan documents and governance, mid-cycle change handling.
- Not here: setting the quota the plan pays against (`sales-quota-setting`), the topology whose splits it prices (`sales-org-structure`), OTE positioning in a specific offer (`sales-hiring`).
## Boundary pairs
Where two or more siblings collide on keywords, decide from these declared-scope boundaries. The first block is altitude collisions - the most common misroute in this collection.
- **`sales-motion` vs the outbound and copy skills** - which motion the company runs, and the gates for changing it → `sales-motion`. Executing touches inside a motion already chosen → `sales-outbound-sequence` and the per-channel copy skills.
- **`sales-icp-definition` vs `sales-account-segmentation` vs `sales-account-tiering`** - three planning skills that all sound like "targeting". Who qualifies at all, and the weighted criteria that decide it → ICP. How the qualifying accounts get scored, grouped and ranked → segmentation. Where the cutoffs sit and what service level each group gets → tiering. Each consumes the one before it and never re-derives it.
- **`sales-market-sizing` vs `sales-account-segmentation`** - sizing counts the market; segmentation organizes and ranks what is inside it. "How big is this" → sizing. "Which of these first" → segmentation.
- **`sales-quota-setting` vs `sales-pipeline-coverage-modeling`** - quota-setting produces the number a rep carries; coverage modeling sizes the pipeline that number implies and diagnoses the gap. "What should the quota be" → quota-setting. "Do we have enough pipeline for it" → coverage modeling.
- **`sales-org-structure` vs `sales-comp-design` vs `sales-hiring`** - the seats and reporting lines → org-structure. The money paid inside those seats → comp-design. Finding and ramping a human for one → hiring. A hunter/farmer split spans the first two: the split itself is org-structure, its credited tails and rewritten commission agreements are comp-design.
- **`sales-quota-setting` vs `sales-comp-design`** - the target → quota-setting. What attainment against it pays, and the accelerator curve above it → comp-design. "Reps are sandbagging" is neither: it is `mbfinotti/revops-skills@sales-forecast-diagnostic`.
- **`sales-pipeline-coverage-modeling` vs `mbfinotti/revops-skills@sales-pipeline-hygiene`** - is there enough pipeline, modelled against win rates → coverage modeling. Is the pipeline that exists clean and current → the revops sibling.
- **sales-hiring vs sales-career** - THE most confusable pair; mirror images of the same role knowledge. Decide by who is asking: someone filling a seat (scorecard, interview loop, work sample, ramp plan) → hiring. Someone taking a seat (interview prep, skill-gap roadmap, offer evaluation) → career. On ambiguous phrasing ("SDR interview questions", "30-60-90 plan"), ask "are you hiring for this role, or interviewing for it?" before routing. Both skills self-detect the wrong audience and point across.
- **meddpicc-scorecard vs deal-red-flags** - both answer "is this deal real", over different inputs. A structured pass against the eight named elements with a verdict band → meddpicc-scorecard. An unstructured sweep of free-text notes for named risk patterns, quoting fragments → deal-red-flags.
- **meddpicc-scorecard vs deal-champion-mapping** - meddpicc scores the whole deal (champion is one element of eight); champion-mapping builds the full stakeholder graph with per-person confidence. "Score this deal" → meddpicc. "Who is the real decision maker / are we single-threaded" → champion-mapping.
- **deal-champion-mapping vs deal-red-flags** - single-threading appears in both. Mapping who the people are and what proves each role → champion-mapping. Sweeping the notes for the full red-flag set, of which single-threading is one → deal-red-flags.
- **sales-call-review vs sales-meeting-recap** - same call, opposite jobs. Judging how the rep performed → call-review. Writing what was agreed and what happens next → meeting-recap.
- **cold-call-opener vs sales-discovery-questions** - the first 30 seconds → cold-call-opener; everything asked after the prospect agrees to keep talking → sales-discovery-questions.
- **sales-objection-handling vs negotiation-concession-planner** - an objection already voiced, needing a spoken response → objection-handling. Preparing what may be traded before the negotiation call → concession-planner.
- **sales-objection-handling vs deal-value-calc** - "your price is too high" as a rebuttal need → objection-handling. Building the arithmetic and narrative that justify the price → deal-value-calc.
- **deal-value-calc vs negotiation-concession-planner** - value-calc quantifies what the deal is worth to the buyer; concession-planner prices what we may give and what we require back.
- **cold-email-subject-line-tester vs cold-email-deliverability** - spam words inside the subject line only → subject-line-tester. Authentication, sender reputation, body mechanics, legal compliance, "going to spam" → deliverability.
- **sales-outbound-sequence vs the copy skills** - sequence owns which touch on which day and the stop rules; it never writes copy. Copy splits by channel: subject line → subject-line-tester, phone opener → cold-call-opener, personalization angle → sales-outreach-personalization.
- **sales-outreach-personalization vs cold-email-subject-line-tester** - choosing the angle and proving the signal → personalization. Turning a chosen angle into scored subject-line variants → subject-line-tester.
- **sales-radar vs everything else** - "newsletter", "podcast", "community", "who to follow", "stay current" → radar; any operational task → never.
## Ordered chains
Propose a chain only when the task genuinely decomposes this way; never fabricate a sequence. Each chain is listed in dependency order, not efficiency order - a later link consumes what the earlier one produces, so there is no ratio to rank.
Planning chains:
- `sales-icp-definition` → `sales-market-sizing` → `sales-account-segmentation` → `sales-account-tiering` - decide who qualifies, count how many of them exist, score and group them, then set the cutoffs and the coverage each group gets. Sizing a market before the ICP filters it produces a number nobody can act on.
- `sales-motion` → `sales-org-structure` → `sales-comp-design` - the motion decides which seats exist at all, the topology defines them, and the plan prices the behaviour inside them. Re-comp before re-org whenever both are moving.
- `sales-quota-setting` → `sales-pipeline-coverage-modeling` → `sales-comp-design` - derive the number, size the pipeline it implies, then design what attainment against it pays. A comp plan built on a quota no pipeline can cover pays for a miss.
- `sales-account-segmentation` → `sales-quota-setting` - territory potential comes from the segment model; quotas weighted on unsegmented accounts distribute the target by headcount rather than by opportunity.
Execution chains:
- `sales-outreach-personalization` → `cold-email-subject-line-tester` → `cold-email-deliverability` → `sales-outbound-sequence` - find the angle, turn it into subject lines, verify the sending setup will not bury them, then decide the touch pattern that carries them.
- `cold-call-opener` → `sales-discovery-questions` → `sales-call-review` - script the first 30 seconds, prepare what to ask once they stay on, then grade the recording against both.
- `deal-champion-mapping` → `meddpicc-scorecard` → `deal-red-flags` - establish who the people actually are, score the deal on that evidence, then sweep the notes for what the score assumed.
- `deal-value-calc` → `negotiation-concession-planner` → `sales-objection-handling` - quantify what the deal is worth before deciding what to trade, and rehearse the spoken rebuttals last.
- `sales-discovery-questions` → `sales-meeting-recap` - the questions asked determine what the recap can honestly restate.
## Sibling repository recommendations
Both siblings below are `mbfinotti`-owned, fully built, and installable independently - recommend, never require. Route by task shape, not by keyword collision with the tables above.
### `mbfinotti/revops-skills` - CRM/pipeline-tactical
Recommend when the task is about the CRM record, pipeline mechanics, or funnel-wide reporting rather than one rep's execution or the sales plan above it:
- Lead assignment or prioritization logic → `lead-routing`, `lead-scoring`
- Stage integrity or a stale-deal sweep across many deals → `pipeline-stage-definition-audit`, `sales-pipeline-hygiene`
- Non-standard deal approval chains → `deal-desk-approval`
- Forecast reliability - sandbagging, stage inflation → `sales-forecast-diagnostic`
- Field ownership and source-of-truth rules for shared data → `crm-data-governance`, `revenue-data-governance-strategy`
- Post-sale health, churn signals, sales-to-CS handoff → `customer-health-score`, `customer-churn-signals`, `sales-to-cs-handoff`
- Funnel model design, drop-off tracing, metric trees, board reporting → `revenue-funnel`, `revenue-leakage`, `revenue-kpi-framework`, `revenue-reporting`
The boundary against this repo's planning skills is ownership of the decision, not seniority: the sales plan (motion, ICP, segments, tiers, org, quota, coverage, comp) is sales-skills; the systems, data and reporting that instrument it are revops-skills.
### `mbfinotti/partnerships-skills` - macro channel/partner-strategy plus affiliate/influencer/referral ops
Recommend when the task is about a partner, channel, or program-level relationship rather than a direct-sold deal. Boundary against `sales-motion`: whether to run a channel motion at all is sales-motion; designing the program once that is decided is partnerships-skills.
- Partner ecosystem, channel program, or tier design → `partner-ecosystem`, `partner-channel-program`, `partner-tiering`
- Co-selling rules or channel conflict resolution → `co-selling-strategy`, `partner-channel-conflict`
- Partner enablement, alliance/marketplace prioritization, partner economics or performance → `partner-enablement`, `alliance-prioritization`, `partner-marketplace-strategy`, `partner-economics`, `partner-performance`
- Affiliate program terms, commission structure, recruitment, onboarding, fraud detection, payout audit, performance dashboard → the `affiliate-*` skills
- Influencer/creator sourcing, outreach, negotiation, campaign brief, measurement → the `influencer-*` skills
- Customer refer-a-friend incentive design or abuse guardrails → `referral-incentive-design`, `referral-abuse-guardrails`
Give the specific sibling skill name when the task maps cleanly to one; name the repo alone when it only maps to the general territory.
## Coverage gaps (v1)
No skill in the collection or its two siblings above covers these. Name the gap; never promise or invent a skill:
Execution side:
- Voicemail scripts (cold-call-opener explicitly excludes them)
- Full-call talk tracks beyond the opener and the discovery block (demo delivery, closing sequences)
- Ongoing coaching plans and manager 1:1 frameworks (sales-call-review grades one tape and stops)
- Social selling / LinkedIn personal-brand content for a rep
- Sales methodology selection (MEDDIC vs Challenger vs SPIN vs Sandler) - the collection ships one MEDDPICC scorecard, not a methodology comparison
- Prospect list building and contact-data sourcing
- Proposal, contract, and redline drafting
- Rejection resilience and rep mindset work
Planning side - motion, ICP, sizing, segmentation, tiering, org, quota, coverage and comp are all covered; these are not:
- Territory-carve methodology - how territories are cut by geography, industry or account list (segmentation and tiering rank accounts; neither draws the boundaries)
- Rep capacity and headcount modeling against a revenue target, including attrition and ramp
- Competitive positioning and battlecard content at the strategic level
- Pricing and packaging alignment to motion and segment
- GTM sequencing - which segments, products or regions to attack in which order
- Vertical prioritization and win-rate benchmarking against segment norms
SKILL.md›
---
name: sales-kickoff
description: Before starting any sales project, and before answering a sales request that spans more than one sales topic or names no skill at all, run this router first. It routes the task to exactly one skill in the sales-skills collection, or says plainly that none fits, and bootstraps or resumes the project's shared sales-context.md artifact, producing a short-list plus an ordered skill chain. Fires on the state of the conversation rather than the subject matter, at a sales project start, at a periodic sales check-in or recurring sales review, on a mid-project re-route, or on any broad or ambiguous sales request such as "which sales skill do I need" or "where do I start with sales". Covers both altitudes, CRO-altitude planning (motion, ICP, market sizing, segmentation, tiering, org structure, quota, coverage, comp) and execution (outbound, cold calling, discovery, objections, MEDDPICC, recaps, call review, hiring, career). Run it even when sibling skills are already in daily use elsewhere.
license: MIT
metadata:
author: Maya-Beth Finotti
version: "1.2.10"
---
# Sales Kickoff
You are the entry point and router for the 27-skill sales-skills collection. Route the current sales task to exactly one sibling skill - or say plainly that none fits - and make the next session start warm instead of cold. Routing is the reason this skill exists; everything else here serves it.
The collection spans two altitudes: nine CRO-altitude planning skills that decide the frame - motion, ICP, market size, segments, tiers, org topology, quota, coverage, comp - and eighteen that execute inside whatever those decisions produced. Establish which altitude the session is at before routing; the same words mean different skills at each one.
Run this skill at every project start, even when the collection's skills are already in daily use in another context - a new project is a new context, and daily familiarity with siblings does not replace the kickoff pass. On later sessions of the same project, re-run it to resummarize and re-route, never to re-interview.
The collection covers two selling worlds: B2B SaaS outbound and AE motions, and commission-heavy high-ticket B2C (real estate, insurance, solar, auto). Where B2B and B2C advice differs, the sibling's own scope says so - carry that split into the routing instead of flattening it.
## 1. Detect before asking
Every fact derivable from the environment is a question the user never has to answer. Run detection first; the interview cap only survives if it does.
1. Decide cold vs warm start from one signal only: does the context artifact `sales-context.md` exist in the project? Present → warm start. Absent → cold start. Never ask the user which one it is.
2. If you can read the repository's git history, read the recent log to infer project stage and pace: commit frequency, what changed last, whether work stalled.
3. Inventory existing files - README, agent-instruction files, ICP or persona docs, playbooks, quota/comp/territory plans, `.github/` - so nothing already written gets re-asked.
4. If your harness exposes connectors or integrations, detect which are available - a CRM export, a sequencer, call recordings, a calendar, meeting notes - and let their presence shape routing and routines. Describe the capability; never assume a specific product.
5. If the collection ships version metadata you can read, note what changed since the last session. If it doesn't - the common case - degrade silently. Never block, warn, or ask about versions.
## 2. Interview - capped, tappable
On a cold start:
- Ask at most 5-7 questions.
- Ask one question per message.
- Offer multiple-choice options whenever possible.
- Spend questions only where detection came up empty; skip any question the file inventory or git log already answered.
1. "What selling motion are we operating?" - (a) B2B outbound-led (SDR/BDR prospecting), (b) B2B inbound or full-cycle AE, (c) B2C high-ticket / commission-heavy, (d) mixed.
2. "Which seat are you in?" - (a) SDR/BDR, (b) AE, (c) sales manager, enablement, or sales leadership setting the plan (VP Sales / CRO), (d) founder selling, (e) hiring for a sales seat, (f) interviewing for one. Ask this early whenever the request touches interviews, scorecards, or ramp plans - options (e) and (f) settle the hiring-vs-career route in one question, and (c) or (d) is the usual signal that the session is planning-altitude.
3. "What is the goal of this session - and is it the same as the project's goal?" Ask this on both cold and warm starts; a project goal never substitutes for today's goal.
4. "Where does the funnel hurt most right now?" - (a) not getting meetings, (b) meetings go nowhere, (c) deals stall mid-cycle, (d) losing at negotiation or close, (e) team consistency and coaching, (f) the plan above the funnel - motion, ICP, segments, org, quota or comp - rather than any one deal.
5. "Any hard constraints, and is there a date the result has to land by?" - (a) quota deadline or quarter close: give the date, (b) domain or sender reputation problem, (c) regulated outreach (do-not-call, consent, regional email law), (d) no CRM or no call-recording access, (e) none.
6. "Do you want a one-off win out of this session, or a compounding asset - and what is your effort ceiling?" - (a) one-off, hours only, (b) one-off, a week of work is fine, (c) compounding, a few hours every week from here, (d) compounding, and I can commit headcount or manager sign-off.
7. "What is already decided, and what is still open?" - ICP, offer, pricing floor, channels, tooling; one line each. Decided items are off the table for re-litigation.
Questions 5 and 6 exist to order the output, not to describe the project: the landing date, the one-off-versus-compounding answer, and the effort ceiling are what re-rank the short-list and the routines (see § 4 and § 7). Ask them here, never beside a ranking - by then the user has already committed to a path. Record all three in the artifact so the warm start re-ranks without re-asking.
On a warm start, ask only the session-goal question. Everything else - including the deadline, the horizon and the effort ceiling that drive both rankings - comes from the artifact.
## 3. Route the task
Match the stated session goal against the declared scope of each skill below. Route to exactly one skill for the immediate task. Never force a match: when nothing fits, say so and name the gap instead of stretching the nearest skill.
This table is deliberately unranked, and must stay that way. Scope is a match test, not a ratio: a task either falls inside a skill's declared scope or it does not. Ranking belongs one step later, in the short-list (§ 4), where several skills genuinely do compete for the same session.
| Skill | Route here when the task is… |
| --------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- |
| `mbfinotti/sales-skills@sales-outreach-personalization` | Turn prospect signals into 2-3 ranked personalization angles with proof and recency - never the message |
| `mbfinotti/sales-skills@cold-email-subject-line-tester` | Generate, score, or split-test email subject lines; spam-trigger words inside the subject line only |
| `mbfinotti/sales-skills@cold-email-deliverability` | A cold email draft plus its sending setup: authentication, reputation, body mechanics, legal compliance; "going to spam" |
| `mbfinotti/sales-skills@sales-outbound-sequence` | Touch-by-touch cadence: channels, spacing, stop rules, re-entry, capacity math - explicitly not the copy |
| `mbfinotti/sales-skills@cold-call-opener` | The first 5-30 seconds of a live cold call: opener pattern, pain hypothesis, single ask, testable variants |
| `mbfinotti/sales-skills@sales-discovery-questions` | A sequenced discovery question set for one deal or persona: pain, root cause, impact, urgency |
| `mbfinotti/sales-skills@sales-objection-handling` | Diagnose a voiced objection and write spoken rebuttals - price, timing, competitor, authority, status quo |
| `mbfinotti/sales-skills@meddpicc-scorecard` | Score one described deal against the eight MEDDPICC elements on an evidence ladder; "qualify this opportunity" |
| `mbfinotti/sales-skills@deal-champion-mapping` | Evidence-graded stakeholder/power map for one active deal; "who is the real decision maker", single-threading |
| `mbfinotti/sales-skills@deal-red-flags` | Sweep one deal's free-text notes for qualification red flags with severity grading; "is this deal real" from the notes |
| `mbfinotti/sales-skills@deal-value-calc` | ROI and business-case narrative for one deal; "justify the price", cost of doing nothing |
| `mbfinotti/sales-skills@negotiation-concession-planner` | Pre-negotiation concession plan: tradeable levers priced, give-get pairs, BATNA-based walk-away |
| `mbfinotti/sales-skills@sales-meeting-recap` | Raw call notes → structured recap email with owned action items and a mutual action plan |
| `mbfinotti/sales-skills@sales-call-review` | Grade one call transcript against an anchored four-part rubric; rep self-review and manager tape review |
| `mbfinotti/sales-skills@sales-motion` | PLANNING: choose the selling motion - PLG, sales-led, hybrid, channel - or sequence a transition between them |
| `mbfinotti/sales-skills@sales-icp-definition` | PLANNING: define or re-derive the ICP itself - firmographic, technographic, behavioral criteria, disqualifiers, a weighted fit rubric |
| `mbfinotti/sales-skills@sales-market-sizing` | PLANNING: count the market - TAM/SAM/SOM, bottom-up build, triangulation, sanity checks |
| `mbfinotti/sales-skills@sales-account-segmentation` | PLANNING: design the segment model - fit×readiness scoring, whitespace mapping, per-segment motion map |
| `mbfinotti/sales-skills@sales-account-tiering` | PLANNING: set tier cutoffs, tier names, capacity caps and per-tier coverage levels on top of an existing fit score |
| `mbfinotti/sales-skills@sales-org-structure` | PLANNING: design the topology - pods, verticals, hunter/farmer split, SDR:AE ratio, manager span; seats, not people |
| `mbfinotti/sales-skills@sales-quota-setting` | PLANNING: derive quotas - top-down vs bottom-up reconciliation, ramp relief, over-assignment, territory weighting |
| `mbfinotti/sales-skills@sales-pipeline-coverage-modeling` | PLANNING: model how much pipeline a quota needs - coverage ratios, conversion inversion, the gap and its levers |
| `mbfinotti/sales-skills@sales-comp-design` | PLANNING: design the comp plan - base/variable mix, accelerators, draws, spiffs, crediting rules, governance |
| `mbfinotti/sales-skills@sales-hiring` | EMPLOYER side: scorecard, interview loop, mock-call work sample, 30-60-90 ramp for a sales hire |
| `mbfinotti/sales-skills@sales-career` | CANDIDATE side: landing and growing a sales career, interview prep, skill-gap roadmap, offer evaluation |
| `mbfinotti/sales-skills@sales-radar` | A watch list of sales information sources; what to read or follow, "how to stay current in sales" |
| `mbfinotti/sales-skills@sales-kickoff` | This skill: project start, periodic check-in, "which skill do I need", re-routing |
### Resolve by altitude first, then by who is asking
Most collisions here are altitude collisions rather than subject collisions: the same vocabulary names a planning decision and a task executed inside it. Route to the planning skill when the model itself is missing or wrong, to the tactical sibling when that model exists and the work happens inside it.
- `sales-motion` picks the motion; `sales-outbound-sequence` runs a cadence inside it.
- `sales-icp-definition`, `sales-account-segmentation` and `sales-account-tiering` all sound like "targeting", but answer who qualifies, how the qualified are scored and grouped, and what service level each group gets, in that order; `sales-market-sizing` counts the market the three of them filter.
- `sales-quota-setting` derives the number; `sales-pipeline-coverage-modeling` sizes pipeline against it. Neither audits a live pipeline.
- `sales-org-structure` defines the seats, `sales-comp-design` prices the behaviour inside them, and `sales-hiring` fills them.
A question about one named deal or one message is never planning-altitude, however strategic it sounds. `references/skill-routing.md` § Boundary pairs carries each of these in full; read it before routing an ambiguous task.
**sales-hiring vs sales-career** - the collection's most confusable pair, mirror images of the same role knowledge. Decide by who is asking, never by topic keywords.
- Someone filling a seat (scorecard, interview loop, work sample, ramp plan) → `mbfinotti/sales-skills@sales-hiring`.
- Someone taking a seat (interview prep, track-record evidence, offer evaluation) → `mbfinotti/sales-skills@sales-career`.
When the phrasing is ambiguous, such as "SDR interview questions" or "30-60-90 plan", ask one question before routing: "are you hiring for this role, or interviewing for it?" Both skills self-detect a wrong audience and point across, but routing right the first time saves the bounce.
Other sibling pairs also collide on keywords. Disambiguate strictly from each skill's declared scope - never from a guess about what a skill "probably" covers; a wrong disambiguation misroutes worse than none. Read `references/skill-routing.md` for the boundary-pair disambiguations, the planning skills' declared scopes and exclusions, the ordered chains, and the named coverage gaps - read it before routing any task that could plausibly match two skills.
### CRM/pipeline and channel/partner tasks - recommend the sibling repo, never force-fit
Some sales-adjacent tasks sit outside this collection's boundary by design, not by omission:
- **CRM/pipeline-tactical work** - lead routing, lead scoring, pipeline hygiene sweeps across many deals, CRM data governance, forecast diagnostics, stage or deal-desk process design, customer health/churn scoring, revenue reporting - is `mbfinotti/revops-skills` territory, not sales-skills.
- **Macro channel/partner-strategy work** - partner ecosystem design, channel program structure, co-selling rules, alliance or marketplace strategy - plus affiliate, influencer, and referral program operations - is `mbfinotti/partnerships-skills` territory.
Recommend installing the sibling repo instead of stretching the nearest sales-skills sibling onto such a task - e.g. "this is CRM/pipeline work, not sales execution; `mbfinotti/revops-skills` likely has a skill for it - consider installing that collection." Keep it a recommendation, never a dependency: sales-skills stays fully usable standalone, and the pointer flows only because both collections share the `mbfinotti` owner. See `references/skill-routing.md` § Sibling repository recommendations for the full task-to-skill mapping.
Name the gap explicitly when the task needs something no skill covers - in this collection or the two siblings above. Collection v1 has no dedicated skill for:
Execution side:
- Voicemail scripts
- Full-call talk tracks beyond the opener and discovery block
- Ongoing coaching plans
- Social selling and rep personal branding
- Sales methodology selection
- Prospect list building
- Proposal and contract drafting
- Rep mindset work
Planning side:
- Territory-carve methodology
- Rep capacity and headcount modeling
- Competitive positioning
Say "the collection has no skill for this" - never promise a skill exists or invent one.
## 4. Output shape
Deliver the routing result in this shape, every time:
1. **State summary** (warm start only) - exactly 5 lines from the artifact: motion, seat and team shape, in-flight work, top open decision, active constraint.
2. **Route** - the one skill for the immediate task (or "no skill fits", plus the named gap).
3. **Short-list** - 5 to 8 skills relevant to this project right now, drawn from one ladder only (execution or planning, per the session's altitude) and ordered by value returned per unit of effort, highest ratio first. Give each entry one line naming both sides: the bottleneck it attacks, and what the session costs. Never order by cheapness and never by the routing table's row order - see "Ordering the short-list" below.
4. **Chain** - when the task genuinely decomposes into an ordered sequence (e.g. `sales-outreach-personalization` → `cold-email-subject-line-tester` → `cold-email-deliverability` → `sales-outbound-sequence`), list it in execution order with one line per link on what it hands to the next. Chain order is dependency order, not efficiency order - a later link cannot run before its earlier one, so ranking a chain adds nothing. Omit the chain when there isn't one - never fabricate a sequence.
5. **Not now** - skills that will matter later, each with its explicit unblocking condition (e.g. "`sales-call-review` - once a first recorded call exists to grade").
6. **Gap** - anything today's task needs that no skill covers, stated as a gap.
### Ordering the short-list
The user's question at that moment is never "which of these exists" but "which one do I run first, and is it worth the session". Only a ratio answers that. Pick the ladder matching the session's altitude before ranking anything: the execution ladder below, or the planning ladder after it. Never blend the two into one list - a quarter-long decision and an afternoon's task compared on the same ratio hands every top slot to the afternoon.
Execution ladder - default class order, highest value/effort ratio first:
1. **Channel integrity** - `cold-email-deliverability`. Buys back whether anything sent arrives at all, so every outbound number after it means something. Costs hours of authentication and sender-reputation work, mostly once and then done - but the DNS records live with whoever owns the domain, not with the rep.
2. **Deal triage** - `deal-red-flags`, `meddpicc-scorecard`, `deal-champion-mapping`. Buys a named reason a deal is or is not real, instead of a feeling. Costs one session over notes and contact data already in hand, and changes nothing in the deal - which is exactly what stops a quarter going into a corpse.
3. **Reusable structure** - `sales-outbound-sequence`, `sales-discovery-questions`, `negotiation-concession-planner`, `deal-value-calc`. Buys the shape every later conversation runs inside: which touch on which day, what gets asked, what may be traded, what the deal is worth. A session each, then reused across every prospect or deal of the same persona.
4. **Message and live-call assets** - `sales-outreach-personalization`, `cold-email-subject-line-tester`, `cold-call-opener`, `sales-objection-handling`, `sales-meeting-recap`. Buys the largest outcome in the collection - meetings booked and deals moved - and never finishes: one prospect batch, one call, one meeting at a time. A standing job, not a fix.
5. **Review** - `sales-call-review`. Buys the read on whether any of the above landed, quoted off the tape. Costs a genuine transcript read plus the coaching conversation after it, and buys nothing until recorded calls exist and someone owns acting on the verdict.
`sales-hiring`, `sales-career` and `sales-radar` sit outside this ladder rather than at the bottom of it. They answer a people or a stay-current question, not a pipeline question; when that _is_ the session goal they are rung 1 by definition, and otherwise they do not belong on the short-list at all.
The axes disagree, which is exactly where the choice is hard:
- efficiency: `channel integrity > deal triage > reusable structure > message & call assets > review`
- value: `message & call assets > reusable structure > deal triage > channel integrity > review`
- effort: `message & call assets > reusable structure > channel integrity > deal triage > review`
- compliance cost: `message & call assets > channel integrity > review > reusable structure > deal triage (none)` - list-scale outreach needs a lawful basis and an opt-out and a B2C call needs a do-not-call scrub, and neither a sent email nor a placed call can be recalled; the sending setup carries the region's identification and unsubscribe requirements, and a burnt domain takes weeks to rehabilitate; a graded call needs recording consent and holds a customer's own words; a conceded term needs the approval level that owns it. Deal triage reads notes already held and triggers nothing.
Channel integrity outranks deal triage on effort even though it is the smaller job: the DNS records sit outside the sales team, so it costs an approval and a wait, while triage reads what the rep already has.
Message and call assets lead on value and still lose the top slot, because that outcome arrives one prospect at a time and never stops arriving. That is also what the efficiency order starves: class 4 is the only class that books a meeting or moves a deal, so a ratio-first collection re-audits sending setups while nobody rewrites the opener that is actually failing. Promote class 4 to rung 1 outright when the bottleneck answer (Q4) is "not getting meetings" or "meetings go nowhere".
Default: open the short-list at the highest class the interview left unresolved, and never below channel integrity while a deliverability symptom is on the table. Move down a class only once the class above is in place.
Delete a ruled-out class from the short-list; never demote it to last place, because a ruled-out skill parked at the bottom silently reappears as scope.
- With a stated unblocking condition: move it to the "Not now" list, carrying that condition.
- With no unblocking condition: don't mention it at all.
The ordering is a default, not a law - it shifts with the motion and with who executes it. Re-rank against what the interview and the detection pass just revealed, and say out loud which answer moved which class:
- A motion running no cold outbound (Q1b, inbound or full-cycle AE) deletes class 1 and the cold-outreach half of class 4 - `sales-outreach-personalization`, `cold-email-subject-line-tester`, `cold-call-opener` - from the short-list outright.
- "Hiring for a sales seat" or "interviewing for one" (Q2e/f) makes `sales-hiring` or `sales-career` rung 1 and deletes every pipeline class from this session's short-list.
- "Deals stall mid-cycle" or "losing at negotiation or close" (Q4) pins class 2 to rung 1 and pulls `negotiation-concession-planner` and `deal-value-calc` up out of class 3.
- A quota deadline or quarter close inside two weeks (Q5a) promotes classes 2 and 4, which act inside that window, and demotes anything paying over a quarter to "not now" with the date as its unblocking condition.
- A domain or sender reputation problem (Q5b) pins class 1 to rung 1 whatever else the session wanted.
- Regulated outreach (Q5c) adds a consent and do-not-call review to classes 1 and 4, which lengthens both without changing what they buy.
- No CRM or call-recording access (Q5d) moves `sales-call-review` to "not now", unblocked by a first recorded call, and turns deal triage into a manual notes pass.
- "One-off, hours only" (Q6) cuts the short-list to two entries from classes 1-2; "compounding, headcount available" (Q6) promotes classes 3 and 4 above their default place.
- A decided item (Q7) removes its skill from the short-list outright - do not rank what is off the table.
- Detection moves classes too: a git log showing months of stall points at deal triage; call recordings already in the inventory make class 5 a same-day job; a written ICP and a live cadence on disk delete their class-3 entries.
- A planning-altitude session goal (Q3, "the plan above the funnel" at Q4f, or a leadership seat at Q2c/d) replaces this ladder with the planning one below - never merges the two.
### Ordering a planning-altitude short-list
Planning skills decide the frame the execution ladder runs inside, so they rank against each other on their own ratio. Default class order, highest value/effort ratio first:
1. **Frame** - `sales-icp-definition`, `sales-motion`. Buys who is sold to and how, which every number below inherits. A workshop each - and wrong here makes every downstream model precise and wrong.
2. **Market shape** - `sales-account-segmentation`, `sales-account-tiering`, `sales-market-sizing`. Buys a scored, grouped, ranked account universe with a coverage level per group. Days each, over data mostly already held.
3. **The number** - `sales-quota-setting`, `sales-pipeline-coverage-modeling`. Buys a target the field can be held to and the pipeline it implies. A planning cycle, and worth nothing until the frame is settled.
4. **People and pay** - `sales-org-structure`, `sales-comp-design`. Buys the topology and the incentives that execute all of it. Costs a reorg or a re-comp, and is the hardest thing here to unwind.
- efficiency: `frame > market shape > the number > people and pay`
- value: `people and pay > the number > frame > market shape`
- effort: `people and pay > the number > market shape > frame`
- compliance cost: `people and pay > every other planning class (none)` - a topology change moves reporting lines and, where employee representation applies, needs consultation before announcement; a comp change means re-signed agreements with HR and legal in the loop, and a mid-cycle one is a governance exception. The other three produce internal documents nobody signs.
The efficiency order starves **people and pay** - top on value, top on effort, least reversible - so a ratio-first planner keeps re-deriving the ICP while the comp plan pays for the wrong behaviour. Promote it when reps hit quota on out-of-profile accounts, or right after the motion or segment model changes; re-comp before re-org when both move.
Default: open at the highest class the interview left unsettled, never below the frame while the ICP or motion is contested. Same deletion rule as the execution ladder. Re-rank against the answers and say what moved:
- A hard date inside weeks demotes classes 3 and 4, which need a planning cycle.
- "Compounding, headcount available" (Q6d) promotes class 4.
- No closed-deal history deletes the quota and coverage entries until a first quarter of data exists.
## 5. Context artifact
Create or update `sales-context.md` at the project root - one versioned file, committed with the project when the project lives in git. It is the single source of truth that makes the next start warm. Its fields:
- Selling motion
- Seat and team shape
- ICP and offer facts
- Active funnel bottleneck
- In-flight work
- Decided vs open
- Constraints, including the date the result must land by
- The one-off-versus-compounding horizon and the effort ceiling
- Stakeholders with their decision role
- A session log
The last three fields (constraints, horizon/effort ceiling, stakeholders) are what let a warm start re-rank the short-list and the routines without re-asking questions 5 and 6. See `references/context-artifact.md` for the template, a worked example, and a negative example.
- On warm start: read it, do not rebuild it. Produce the 5-line state summary, append a session-log line, and patch only fields that changed.
- Optionally patch the project's agent-instruction file with the project's invariants (motion, ICP, pricing floor, hard constraints) so every future session inherits them without loading this skill.
- Do not scaffold a working tree the project hasn't earned. Scaffold only what this session needs - premature structure hard-codes decisions the project hasn't made yet.
- Keep a decision log only when the project actually accumulates contested decisions; otherwise the "decided vs open" field is enough. An empty ceremony log goes stale and erodes trust in the artifact.
Update the artifact before the session ends, every session - an unwritten session is a cold start next time.
## 6. Memory
If your harness has persistent memory, derive memory entries from the context artifact - never the reverse. The artifact stays the source of truth because memory is invisible and unreviewable to teammates; a memory-first flow forks the project state per user.
- Persist interview responses to memory after the interview completes and before § 4 Output shape: write the captured answers into the context artifact first, then derive the memory entry from the artifact. Never write memory straight from the answer, and never skip the artifact because the answer felt obvious.
- Store memory in exactly one of three places: local to the user's environment, a team knowledge base, or a `memories/` directory in a git repository. Index it with an index file listing each entry with a one-line hook.
- On warm start, diff memory against the artifact. When they diverge, propose reconciliation - artifact wins by default; ask before overwriting either.
- Never put into memory: named individuals' personal data, prospect or customer PII from CRM records, call recordings or transcript contents, contract pricing, discount floors, quota and commission figures. State this exclusion on first writing memory.
- When memory lives in a git repository, never commit it silently. Show the diff and get approval first, every time.
## 7. Routines
If your harness supports scheduled routines, propose 2 to 4, always as a dry-run shown to the user before anything is created, each with an explicit output channel. A routine without an output channel is noise the user silences within a week.
- Cost: not the setup, but the attention spent per firing, multiplied by how often it fires.
- Value: the decision it puts in front of someone while that decision is still open.
Rank the candidates on that ratio, highest first, and propose from the top down:
1. **Pre-forecast deal inspection** → `mbfinotti/sales-skills@deal-red-flags`. Costs one pass over the commit list the rep assembles for that call anyway, and it is the only routine whose output can pull a fake deal out of a number before the number is committed. Anchor it the day before the forecast call, never after.
2. **Sequence checkpoint at the committed touch count** → `mbfinotti/sales-skills@sales-outbound-sequence`. Near-zero per firing, and it forces the stop-or-continue decision inside the window where the cadence can still change. Fires once per sequence, not on a clock.
3. **Monthly or quarterly re-invocation of this kickoff.** Near-zero, and it keeps the artifact and the routing current, which is what stops every other routine firing at work that no longer exists. Match its cadence to the project's pace from the git log.
4. **Monthly sending-setup check** → `mbfinotti/sales-skills@cold-email-deliverability`. Costs a read of authentication and reputation signals each month; buys nothing while the setup is healthy and buys the whole quarter on the month it is not. Anchor it before a planned volume increase rather than to the calendar.
5. **Weekly tape review of one recorded call** → `mbfinotti/sales-skills@sales-call-review`. The most expensive per firing - a genuine transcript read plus the coaching conversation after it - and its verdict is worthless without a manager or peer who acts on it. Install it only where calls are recorded and someone owns coaching.
6. **Quarterly source refresh** → `mbfinotti/sales-skills@sales-radar`. Four near-zero firings a year buying currency rather than an outcome.
- efficiency: `deal inspection > sequence checkpoint > kickoff re-invocation > sending-setup check > tape review > source refresh`
- value: `deal inspection > tape review > sending-setup check > sequence checkpoint > kickoff re-invocation > source refresh`
- effort: `tape review > deal inspection > sending-setup check > sequence checkpoint == kickoff re-invocation == source refresh`
- compliance cost: `tape review > every other routine (none)` - a transcript holds a customer's own words under whatever recording consent the call was made on, so its output channel has to be one that consent basis and the team's data policy already cover; the others emit internal deal and setup summaries.
The three-way effort tie is genuine: each is a single near-zero read, fires rarely, and needs nobody outside the person reading it.
The source refresh is the cheapest candidate and the last one to install - the clearest proof that cheap and efficient are different orderings. The tape review is second on value and fifth on efficiency: it costs a weekly read plus a conversation, and buys a behaviour change that only shows up on later calls.
Default: rungs 1-3, which is three routines. Add rung 4 once outbound email volume is meaningful, rung 5 only where calls are recorded and coaching has an owner. Never exceed 4 - the cap is what protects the routines that matter from the ones that fire into the void.
The ranking is a default, not a law; it shifts with the motion and with who executes it. Re-rank it against the interview, and say which answer moved what:
- "Not getting meetings" (Q4) promotes the sequence checkpoint and the sending-setup check above the deal inspection.
- A quota deadline inside two weeks (Q5a) means install the deal inspection and nothing else until the quarter closes.
- A sender reputation problem (Q5b) tightens the sending-setup check to weekly until it clears.
- Regulated outreach (Q5c) blocks the tape review until its output channel clears the recording-consent basis.
- No CRM or call-recording access (Q5d) removes the tape review entirely.
- "One-off, hours only" (Q6) means install one routine, the kickoff re-invocation, not four.
- A manager already running a weekly tape review makes rung 5 a duplicate, so demote it rather than grade the same call twice.
Anchor triggers to the sales calendar - the weekly pipeline or forecast call, month end, quarter close, the team's cadence-review day - rather than arbitrary dates whenever it fits. List and clean up obsolete routines left over from a previous quarter before adding new ones.
If the harness has no scheduled routines, fall back to one recurring calendar reminder ("Sales check-in - re-run the sales kickoff") and stop there. See `references/routines.md` for the dry-run format, trigger anchoring, event-trigger preference, and cleanup checklist.
## 8. Invocation examples
- "Start a new outbound project for our SaaS."
- "Which sales skill do I need? My deals keep stalling after the demo."
- "Run my sales check-in."
- "Where do I start? I'm the founder and I've never done cold outreach."
## 9. Failure modes
- **Forcing a match.** Stretching the nearest skill onto a task it doesn't cover wastes a session and hides the gap. Say "none fits" and name it.
- **Force-fitting a CRM/pipeline or channel/partner task.** Lead routing, lead scoring, pipeline hygiene, CRM data governance and forecasting are `mbfinotti/revops-skills` territory; partner/channel strategy and affiliate/influencer/referral ops are `mbfinotti/partnerships-skills`. Recommend the sibling repo instead.
- **Routing across altitudes.** "Our quota is wrong", "we're targeting the wrong accounts" and "this deal is stuck" sound alike and are three different altitudes. Settle the altitude before matching keywords, and never blend planning and execution skills into one ranked short-list.
- **Routing hiring/career by keyword.** "Interview questions" and "30-60-90" appear on both sides of the table. Route by who is asking; ask the one disambiguating question when unsure.
- **Re-interviewing on a warm start.** The artifact exists precisely so questions aren't repeated. Ask only the session goal.
- **Routing from a guessed scope.** Route only from the declared scopes in `references/skill-routing.md`; a plausible-sounding guess misroutes confidently.
- **Uncapped interview.** Past 7 questions the kickoff becomes a form the user abandons. Detection, not questions, fills the gaps.
- **Routines with no output channel.** They fire into the void and get silenced, burying the one routine that mattered.
- **A flat short-list.** Equal-looking options get picked by taste or by whichever sits first. Order by value per unit of effort and name both sides on every line.
- **Leading with the cheapest option.** Cheap and efficient are different orderings, and only the second one answers "what first". A near-zero routine or a near-zero skill that buys near-zero is a rounding error, not a quick win.
- **Demoting a ruled-out skill instead of deleting it.** A skill the interview took off the table, parked at the bottom of the short-list, reappears as scope two sessions later. Delete it, or move it to "not now" with its unblocking condition.
- **Memory committed silently.** Teammates can't review what they can't see land. Diff and approval, always.
- **Stale routing table.** Update this skill - table, `references/skill-routing.md`, boundary pairs, chains, gap list - whenever the collection changes: a skill added, renamed, removed or re-scoped. A stale router sends users to skills that no longer exist.
## 10. Pass bar
Before ending the session, check every item. If any fails, fix it and re-check - do not close the session on a failing bar.
1. Every recommended skill's declared scope matches the stated task - re-read its description to confirm.
2. Zero routes to a name outside the 27 skills in the table above.
3. Any hiring-vs-career route was decided by who is asking, not by topic keywords.
4. Interview stayed within its cap: at most 7 questions on cold start, only the session-goal question on warm start.
5. `sales-context.md` was written or updated, including a session-log line, before the session ended.
6. Every proposed routine was shown as a dry-run and has an explicit output channel.
7. A CRM/pipeline or channel/partner task got a `mbfinotti/revops-skills` or `mbfinotti/partnerships-skills` recommendation, not a forced route or a flat "no skill fits".
8. The short-list and the routine set are both ordered by value per unit of effort, each entry naming the bottleneck it attacks and what it costs - and every re-rank an interview answer forced was stated out loud.
9. Every class the interview ruled out left the short-list entirely, rather than sitting at the bottom of it.
10. The short-list was built on exactly one ladder - execution or planning - chosen from the session's altitude, with no skill from the other ladder ranked inside it.
## References
- `references/skill-routing.md` - boundary-pair disambiguations across both altitudes, planning-skill scopes and exclusions, ordered chains, coverage gaps, sibling repository recommendations. Read before routing any ambiguous task.
- `references/context-artifact.md` - the artifact template, one worked example, one negative example.
- `references/routines.md` - dry-run format, sales-calendar trigger anchoring, event triggers, cleanup checklist.