SKILL DETAIL
deal-red-flags
mbfinotti/sales-skills/deal-red-flags
Reviews one deal's free-text notes - call notes, opportunity fields, CRM activity log, email threads - for qualification red flags such as single-threaded deal, no champion, no compelling event, unverified budget, no agreed next step, or fading engagement, each graded on severity and confidence with the quoted note fragment behind it. Covers B2B and B2C. Use whenever the user mentions deal risk, a stalled or slipping deal, ghosting, forecast inspection, or "is this deal real", even without the words red flag. Reviews one deal, not a pipeline export. Do NOT use for structured qualification scoring (mbfinotti/sales-skills@meddpicc-scorecard) or stakeholder mapping (mbfinotti/sales-skills@deal-champion-mapping).
Installation
npx skills add https://github.com/mbfinotti/sales-skills --skill deal-red-flags
Fichiers du skill
SKILL.md
Dernière synchronisation · 15 sept. 2026
evals/evals.json›
{
"skill_name": "deal-red-flags",
"evals": [
{
"id": 1,
"prompt": "Notes from my one and only call with Tressler Dynamics. $140K ARR routing deal, I moved it to Best Case last week and now I'm second-guessing myself. This is the whole record, nothing else exists:\n\n'Mar 3 - 45 min discovery w/ Priya Raghunathan (VP Supply Chain). Said their WMS reporting is \"genuinely painful.\" Asked sharp questions about the API. Told me she's the one driving this internally. Mentioned they're growing fast. Ended with \"let me look at the numbers and I'll come back to you.\"'\n\nIs this deal real or am I kidding myself?",
"expected_output": "A review that refuses to convert a one-call record into confirmed risks: stakeholder coverage and every engagement trend flag resolve to Unknown with one diagnostic question each, the one quotable weakness (surface-level pain) is graded with its verbatim fragment, and the chase starts at the one-question rung because a desk check on a single-call record returns only Unknowns.",
"files": [],
"expectations": [
"Grades stakeholder coverage / single-threading as Unknown rather than Red, Amber, or Watch, on the stated ground that one call's notes evidence one call",
"Never asserts that the deal is single-threaded",
"Grades every engagement trend flag (response latency, meetings shrinking or rescheduled, notes thinning) Unknown because trend flags need notes spanning multiple touches",
"Raises pain stated at surface level only, quoting the verbatim fragment \"genuinely painful\"",
"Attaches a verbatim quote from the pasted notes to every finding graded Verified or Assumed",
"Contains a Gaps section in which each entry carries exactly one diagnostic question",
"Attaches no remediation play to any Gap entry",
"States that a desk check would return only Unknowns on a single-call record and starts the chase at the one-question rung",
"Includes a Timeline section that states the record covers a single date",
"Outputs no win probability, percentage likelihood to close, or numeric deal score",
"Distinguishes in the verdict what is evidenced from what is merely absent",
"States that the review grades the notes rather than the deal, and names the thin record as itself a finding about note hygiene"
]
},
{
"id": 2,
"prompt": "I sell whole-home solar, average ticket around $34,000, deals normally close in three to six weeks. My manager wants every open deal run through a risk check. Here's the Ferreira one:\n\n'Jun 4 - site assessment, met Camila Ferreira. South-facing roof, great production numbers. She's really into it, said the last two summer electric bills were over $480 each and it \"has to stop.\" Said her husband Renato handles the money stuff but he'd be fine with whatever she decides.\nJun 11 - sent design + pricing. She replied \"wow ok, looks good, let me sit with it.\"\nJun 18 - texted her. Still talking about it.\nJun 25 - texted again, no reply.'\n\nWhat am I missing here?",
"expected_output": "A B2C-calibrated review: no single-threading flag, the co-decider graded Assumed on a relayed deference quote rather than Cleared, ability to pay Unknown, the Process group collapsed to the agreed dated next step, and the $480 figure clearing the quantified-impact flag.",
"files": [],
"expectations": [
"Raises no single-threading or multi-threading flag, and states that it does not apply in a single-stakeholder motion",
"Raises co-decider unconsulted for Renato in place of the stakeholder-coverage group's B2B flags",
"Grades the Renato deference as Assumed at most, neither Cleared nor Verified, because it is Camila's relay rather than Renato's own words",
"Quotes \"he'd be fine with whatever she decides\" as the evidence behind that grade",
"Raises ability to pay unverified and grades it Unknown, since the notes say nothing about financing, credit, or payment terms",
"Places that flag in Gaps with exactly one diagnostic question about how they plan to pay",
"Raises no procurement, legal, security, or mutual-action-plan flag",
"States that the Process group collapses in this motion to whether an agreed, dated next step exists",
"Marks no quantified impact as Cleared, citing the buyer's own $480 figure",
"Includes a Cleared section in the report",
"Treats the compelling event as personal or seasonal rather than fiscal, and raises no compelling event since no dated trigger is quoted",
"Justifies severity against a roughly $34,000 three-to-six-week transactional motion rather than a fixed severity table"
]
},
{
"id": 3,
"prompt": "Reviewing Kesterline Analytics before my forecast call. $210K, enterprise, four months in, stage Negotiation, and it's sitting on my commit.\n\n'Aug 1 - call with Damon Whitfield (Dir. Data Platform). He said \"we lose about six engineer-days a month stitching these reports together, I've got the ticket count to prove it.\"\nAug 8 - Damon says the CFO already approved the number, he heard it in their planning meeting. Says there's no need for us to meet her.\nAug 14 - security review kicked off.\nAug 21 - Damon: \"legal is queued behind security, that's just how we do it here.\"\nAug 29 - Damon confirmed procurement starts after legal signs.'\n\nGive me the risk picture.",
"expected_output": "A review that grades the unmet economic buyer Assumed on a second-hand relay and therefore reports it as Amber rather than Red despite High severity, raises the sequential paper process as its own finding, clears quantified impact on the six-engineer-days quote, and keeps severity and confidence as two visible axes.",
"files": [],
"expectations": [
"Grades economic buyer never met as Assumed rather than Verified, because the only evidence is Damon's second-hand relay of the CFO's approval",
"Quotes the fragment about the CFO already approving the number as that finding's evidence",
"Reports that finding under Amber, not Red, applying the rule that an Assumed risk at High severity is Amber",
"Reports no Assumed finding under Red anywhere in the output",
"Raises procurement, legal, or security surfaced late or sequentially as its own separate finding",
"Quotes \"legal is queued behind security\" as that finding's evidence",
"Marks no quantified impact as Cleared and cites the six-engineer-days-a-month figure",
"Keeps severity and confidence visible as two separate labels on every finding, never merged into a single number or grade",
"Outputs no numeric risk score, win probability, or MEDDPICC-style methodology score",
"Recommends a first-hand conversation with the budget owner rather than accepting the relayed approval",
"Attaches exactly one remediation play to each Red and Amber finding and names the response rung that play belongs to",
"Includes a Risk check section answering both the risk in HOW past stage criteria were cleared and the risk in the PLAN for the next ones"
]
},
{
"id": 4,
"prompt": "My manager thinks I'm being too optimistic about Brandvold Freight. $95K, B2B mid-market, ten weeks in, stage Proposal. Poke holes in it:\n\n'May 6 - call with Ines Okonkwo (Ops Director) and Terrence Blau (IT Director). Ines walked me through how they decide: she recommends, Terrence signs off on the integration, then it goes to Marguerite Tell (CFO) who owns the budget line.\nMay 15 - Marguerite joined the second call. Her words: \"we're carrying about $18K a month in detention fees, if you can cut half of that this pays for itself.\"\nMay 22 - Terrence sent me their security questionnaire unprompted and completed his own section first.\nJun 3 - their 3PL contract with Ovanti expires Nov 30 and they will not renew it. Marguerite said that on the call.\nJun 10 - Ines built the rollout plan with me, she owns 4 of the 7 steps, first one (pulling 12 months of detention data) done Jun 9.\nJun 17 - proposal sent, review call booked Jun 26.'",
"expected_output": "A review that runs the disconfirming-evidence check before recording any risk, so most catalog flags land in a populated Cleared section with their clearing quotes, and the few genuine unknowns are graded Unknown with one question each rather than manufactured into risks.",
"files": [],
"expectations": [
"Includes a Cleared section carrying at least five flags",
"Marks no compelling event Cleared and quotes the Nov 30 Ovanti contract expiry",
"Marks economic buyer never met Cleared, citing Marguerite's logged attendance and her own first-hand $18K statement",
"Marks no quantified impact Cleared with the $18K-a-month detention figure",
"Marks no mutual action plan Cleared, citing that the buyer owns 4 of 7 steps and completed the first one",
"Marks single-threaded deal Cleared on three engaged contacts across different functions, each with a logged interaction",
"Marks decision process undocumented Cleared with the recommend / sign-off / CFO sequence and the named owners",
"Grades none of the cleared flags as Red, Amber, or Watch",
"States that each flag's disconfirming evidence is checked before the flag is recorded as a risk",
"Resolves every catalog group to a state rather than reporting only the problems",
"Lists any remaining risk as Unknown with one diagnostic question rather than asserting it as confirmed",
"Routes the unanswered close-date-history question to the desk-check rung, since that answer sits in records the rep already holds"
]
},
{
"id": 5,
"prompt": "Forecast call is Thursday and Ostrander Medical is on my commit for this quarter. $180K, B2B, five-month cycle, stage Proposal. I have six open questions on it and exactly one shot at my contact before Thursday.\n\n'Jul 2 - Lenore Kaczmarek (Dir. Clinical Ops): \"we have to get this live before the accreditation audit in November.\"\nJul 16 - Lenore: \"I'll see if I can get you time with Dr. Achebe\" (CMO, controls the budget). Same line again Jul 30 and Aug 13.\nAug 20 - demo #2, Lenore plus one analyst.\nAug 27 - Lenore replies same day, she always has.\nSep 2 - proposal sent. Lenore: \"the decision meeting is Sept 18, Dr. Achebe and the exec team.\"'\n\nWhat do I chase first?",
"expected_output": "A chase-order answer that promotes the access ask to first because the deal is on commit and the next gate is the decision meeting, declares the second-data-point rung worthless with the forecast call on Thursday, refuses to bundle the six questions into one re-discovery call, and raises the failed escalations as a Red finding.",
"files": [],
"expectations": [
"Names the access ask as the first rung to chase, ahead of the desk check and the one-question rung",
"Names the deal sitting on commit, or the Sept 18 decision meeting being the next gate, as the fact that promoted the access ask",
"States that the second-data-point rung is worthless here because the forecast call lands Thursday",
"Proposes no single re-discovery call bundling the six open questions together",
"Routes any request for a full discovery question set to a discovery-question skill rather than producing one",
"Emits at most one diagnostic question per Unknown flag",
"Notes that Lenore's same-day reply cadence collapses the one-question rung's latency, promoting it above the desk check",
"Raises champion cannot reach power and quotes the recurring \"I'll see if I can get you time with Dr. Achebe\"",
"Marks no compelling event Cleared, citing the November accreditation audit as dated and buyer-owned",
"Recommends exactly one next action for the single available touch",
"Names a response rung for each Red and Amber finding",
"Lists the Gaps in chase order rather than in catalog order",
"Outputs no win probability or numeric deal score"
]
},
{
"id": 6,
"prompt": "I counted seven red flags on Vantauer Systems and I'm ready to kill it. $65K, B2B, seven months in, stage Proposal, I'm carrying 29 other deals and quarter-end is in 11 days.\n\n'Feb-Apr: every meeting with Silas Brandt (IT Manager), nobody else.\nApr 9 - Silas: \"procurement here is brutal, honestly I don't know how long it takes.\"\nApr 30 - Silas: \"our CISO Hedda flagged your data residency, she's not a fan.\" Never came up again.\nMay 14 - I asked Silas twice for an intro to his VP. Both times: \"let me see.\"\nJun 5 - Silas: \"we're doing fine with the spreadsheets honestly, this is a nice-to-have.\"\nJul 1 - close date moved Jun 30 -> Aug 31. Then Aug 31 -> Sep 30 on Aug 12.\nAug 20 - Silas replies about once every 10 days now. It was one day back in February.'\n\nShould I disqualify?",
"expected_output": "A response that refuses the flag count as a decision rule, names escalation as promoted above trade and work because all three access-blocker conditions are met, offers re-forecasting as the near-equal alternative to disqualifying that differs only in reversibility, and grades the latency change as a widening pattern.",
"files": [],
"expectations": [
"Refuses to treat the count of seven flags as a disqualification decision rule, stating that a count collapses the two axes",
"If disqualification is recommended at all, names one specific unrecoverable flag as the reason rather than the total number of flags",
"Promotes escalate it above trade it and work it for the VP-access flag",
"Names the promotion conditions as met: the blocker is access rather than information, the champion has been asked at least twice, and the stage gate lands inside the current period",
"Quotes the twice-asked VP introduction line as the evidence for that promotion",
"Offers re-forecasting the deal out of the committed period, naming the flag that moved it",
"States that re-forecasting and disqualifying cost the rep near-identical effort and differ only in reversibility",
"States that the second close-date push with no new external cause downgrades the forecast category",
"Raises blocker mentioned but never addressed for the data-residency objection, quoting \"she's not a fan\"",
"Grades response latency as a widening pattern rather than a single silence, citing the one-day to ten-day change",
"Recommends no bare concern-raising touch that tells the buyer the deal looks at risk without an ask attached",
"Uses the rep's 29 other deals as a stated constraint holding the Unknown chase to the first two rungs",
"Attaches exactly one remediation play to each Red and Amber finding"
]
},
{
"id": 7,
"prompt": "Honest answer: my CRM notes are a disaster and I know it. My manager pulled Kilbrenner Foods in a deal review and I couldn't answer half her questions. $48K, B2B, stage Discovery, maybe six weeks in. This is literally everything in the system:\n\n'Apr 8 - intro call, went well\nApr 22 - follow up, they're interested\nMay 6 - call\nMay 19 - sent pricing'\n\nI don't just want this deal fixed, I want to stop showing up to deal reviews like this.",
"expected_output": "A review that grades the record rather than the deal: record repair promoted from last to first in the chase order on the stated habit goal, nearly every flag Unknown with one question each, happy-ears language the one quotable finding, and a backfill-then-re-run recommendation.",
"files": [],
"expectations": [
"Promotes record repair from last to first in the chase order",
"Names the user's stated goal of fixing the habit as the fact that moved record repair",
"States that the review grades the notes rather than the deal",
"Reports that Unknowns dominate this record and that note hygiene, not deal quality, is the problem to fix first",
"Grades no flag Verified or Assumed without a verbatim fragment drawn from the four logged lines",
"Raises happy-ears language, quoting \"went well\" or \"they're interested\"",
"Places the stakeholder, budget, process, and urgency flags in Gaps as Unknown rather than as confirmed risks",
"Attaches exactly one diagnostic question to each Gap",
"Recommends backfilling the record with the user and re-running the review on the completed record",
"States that a rising Unknown count across reviews of the same deal signals note hygiene rather than deal quality",
"Ends with a carry-forward list of flags and their states for the next review"
]
},
{
"id": 8,
"prompt": "Pretty sure I'm getting ghosted by Mardell County Health Authority and I want confirmation before I tell my manager. Public sector, $320K, this thing has been running nine months, stage Evaluation. Recent notes:\n\n'Jul 9 - steering committee meeting, six attendees including their CIO Abasiama Etuk.\nJul 30 - Abasiama: \"our procurement calendar means nothing moves in August, everyone's out.\"\nAug 5 - emailed the committee chair. No reply.\nAug 19 - emailed again. No reply.\nSep 2 - reply from the chair: \"back now, we're re-convening the committee Sept 23, you're on the agenda.\"'\n\nConfirm it for me.",
"expected_output": "A review that tests the ghosting suspicion instead of confirming it, clears the latency flag on the quoted August-calendar explanation plus the re-engagement that followed, clears the next-step flag on Sept 23, and warns against judging a nine-month committee cycle by transactional response-speed norms.",
"files": [],
"expectations": [
"Treats the user's ghosting suspicion as a hypothesis tested against the evidence rather than a conclusion to confirm",
"Marks response latency growing as Cleared, citing the buyer's quoted explanation plus the re-engagement that followed it",
"Quotes \"our procurement calendar means nothing moves in August\" as the clearing evidence",
"States that a single silence is noise and that only a widening pattern of gaps counts as evidence",
"Warns that judging a nine-month public-sector cycle by transactional response-speed standards manufactures ghosting flags that are not real",
"Reports no ghosting or disengagement finding as Red",
"Marks no agreed next step with a date as Cleared, citing the Sept 23 re-convening with the user on the agenda",
"Weighs cadence against this segment's own norm rather than a universal one",
"Resolves the remaining catalog flags to states, with each Unknown carrying one diagnostic question",
"Justifies severity against a $320K nine-month committee-driven motion",
"Outputs no win probability or numeric score",
"States plainly in the verdict what is evidenced versus what is merely absent"
]
},
{
"id": 9,
"prompt": "Pasting the notes for Tolliver & Reach below. Two things I need: give me a score out of 10 on how qualified this deal is, and map out who the real decision makers probably are based on their titles. My guess is the CFO is the actual buyer and the ops guy is just a gatekeeper. $125K, B2B, stage Discovery.\n\n'Sep 1 - call with Bertrand Nsofor (Head of Operations). Said the current vendor's SLA misses are \"a weekly conversation now.\" Asked what our onboarding looks like.\nSep 9 - Bertrand: \"I'll need to loop in whoever owns the contract, probably Finance.\"\nSep 15 - sent case study, Bertrand: \"useful, sharing internally.\"'",
"expected_output": "A refusal to produce either the numeric qualification score or the title-inferred stakeholder map, with both requests routed to the sibling skills that own them, plus the actual note review in the report shape with evidence-graded findings.",
"files": [],
"expectations": [
"Produces no qualification score out of 10 or any equivalent overall numeric grade for the deal",
"Produces no MEDDPICC or other methodology score",
"Builds no stakeholder map and names no likely persona inferred from titles",
"Does not confirm the user's guess that the CFO is the buyer and the ops contact is a gatekeeper",
"Routes the stakeholder-map request to a stakeholder-mapping skill and the qualification-score request to a qualification-scoring skill",
"Grades economic buyer never met from the quoted \"probably Finance\" fragment rather than from title inference",
"Raises pain stated at surface level only, quoting \"a weekly conversation now\", because no cost, incident, or prior fix attempt is recorded",
"Treats \"sharing internally\" as stated intent rather than a logged act of internal advocacy",
"Delivers the review in the report shape - snapshot, timeline, graded findings, gaps, verdict - rather than as a score sheet",
"Emits exactly one diagnostic question per Unknown flag",
"Ends on one named next action and no win probability"
]
},
{
"id": 10,
"prompt": "Need a gut check on Wrenhalder Textiles before I recommit it. $88K, B2B, four months in, stage Proposal.\n\n'Jun 2 - Ottoline Sparre (Plant Manager): \"yeah we'd like to get something in place this year sometime.\"\nJun 20 - I asked about timing. \"Q4 works for us if it works for you.\"\nJul 15 - moved close date Aug 31 -> Sep 30. Reason logged: \"need a few more weeks.\"\nAug 22 - moved close date Sep 30 -> Oct 31. Reason logged: \"still need a few more weeks.\"\nSep 5 - Ottoline: \"nothing's changed on our end, still interested.\"'\n\nI want to put this back on commit for Q4.",
"expected_output": "A review that tests the timeline against the four ranked levers, finds none, raises the seller-owned timeline and the repeated pushes, refuses the commit request, and assigns re-forecasting as the response rung rather than coaching manufactured urgency.",
"files": [],
"expectations": [
"Names the four timeline levers - hard deadline, commercial terms, cost of inaction, soft deadline - and states that at least two, one of them a hard deadline or dated commercial term, are needed before a timeline counts as real",
"Reports that none of the four levers is evidenced in these notes",
"Raises timeline owned by the seller, not the buyer, quoting \"Q4 works for us if it works for you\"",
"Raises close date pushed repeatedly on the two moves with a repeating internal reason",
"States that a second push with no new external cause downgrades the forecast category",
"Does not recommend putting the deal back on commit for Q4",
"Assigns re-forecast it as the response rung for the urgency finding",
"States that re-forecasting buys forecast truth rather than deal progress",
"Recommends no manufactured urgency, invented deadline, or discount-driven deadline as the fix",
"Quotes \"nothing's changed on our end\" as evidence rather than treating continued interest as progress",
"Raises no compelling event and pairs it with probing the cost of inaction against a real date",
"Keeps severity and confidence visible as two separate axes on every finding"
]
}
],
"trigger_queries": [
{ "query": "review my deal notes for red flags", "should_trigger": true },
{ "query": "is this deal real or am I wasting my time", "should_trigger": true },
{
"query": "here are six weeks of call notes on my biggest deal, what am I missing",
"should_trigger": true
},
{ "query": "my deal keeps slipping, what's actually wrong with it", "should_trigger": true },
{ "query": "the prospect went quiet after the proposal, is this dead", "should_trigger": true },
{ "query": "forecast call is tomorrow, help me inspect this opportunity", "should_trigger": true },
{ "query": "am I being ghosted", "should_trigger": true },
{ "query": "I need to know if I should keep working this account", "should_trigger": true },
{ "query": "poke holes in this deal for me", "should_trigger": true },
{
"query": "what risks do you see in this opportunity's activity log",
"should_trigger": true
},
{ "query": "stress test my top deal before I commit it", "should_trigger": true },
{ "query": "single threaded check on this deal", "should_trigger": true },
{
"query": "everything I have on this deal is in this email thread, sanity check it",
"should_trigger": true
},
{
"query": "read these call notes and tell me what could kill this deal",
"should_trigger": true
},
{
"query": "my manager says this deal isn't real, prove her right or wrong",
"should_trigger": true
},
{ "query": "why has this opportunity stalled", "should_trigger": true },
{ "query": "the buyer stopped replying, what does that mean", "should_trigger": true },
{ "query": "is there anything in these notes that should worry me", "should_trigger": true },
{ "query": "deal inspection before the pipeline review", "should_trigger": true },
{ "query": "I think this one's slipping again, third close date push", "should_trigger": true },
{ "query": "should I keep this in commit or move it out", "should_trigger": true },
{ "query": "red flags in this opportunity", "should_trigger": true },
{ "query": "qualification risks on this account", "should_trigger": true },
{ "query": "help me figure out whether this prospect is serious", "should_trigger": true },
{
"query": "they asked for a proposal on the first call, is that a good sign",
"should_trigger": true
},
{
"query": "our champion left the company, how bad is that for this deal",
"should_trigger": true
},
{
"query": "nobody from finance has ever been on a call, does that matter",
"should_trigger": true
},
{ "query": "reviewing my notes before I forecast this one", "should_trigger": true },
{
"query": "can you look at this activity log and tell me what's missing",
"should_trigger": true
},
{
"query": "I've only ever spoken to one person at this account, is that a problem",
"should_trigger": true
},
{ "query": "what's the risk on this deal", "should_trigger": true },
{ "query": "the close date has moved twice, should I be worried", "should_trigger": true },
{
"query": "gut check on whether this opportunity is going to close",
"should_trigger": true
},
{ "query": "here's the CRM notes dump on this account, anything jump out", "should_trigger": true },
{ "query": "buyer said budget shouldn't be a problem, do I believe them", "should_trigger": true },
{ "query": "I want an honest read on this opportunity before the QBR", "should_trigger": true },
{ "query": "kickoff call went great but nothing since, thoughts", "should_trigger": true },
{ "query": "diagnose why this deal isn't moving", "should_trigger": true },
{
"query": "solar deal, customer says her husband is fine with it, anything I should check",
"should_trigger": true
},
{
"query": "high ticket coaching sale, prospect loves it but there's no date, what now",
"should_trigger": true
},
{ "query": "tell me what I can't see in these notes", "should_trigger": true },
{
"query": "we're four months in and I still haven't met the decision maker, how do I handle that",
"should_trigger": true
},
{ "query": "what should I chase first on this account", "should_trigger": true },
{
"query": "IT raised a concern two months ago and I never followed up, how much does that hurt",
"should_trigger": true
},
{ "query": "which of these gaps is worth spending one email on", "should_trigger": true },
{ "query": "should I disqualify this one", "should_trigger": true },
{ "query": "am I kidding myself about this opportunity", "should_trigger": true },
{ "query": "run a risk review on this deal's written record", "should_trigger": true },
{
"query": "our contact keeps saying she'll get us to the VP and never does",
"should_trigger": true
},
{
"query": "no mutual action plan on a six month deal, how serious is that",
"should_trigger": true
},
{ "query": "I need evidence for why this deal is at risk, not vibes", "should_trigger": true },
{
"query": "everything looks fine on paper but my gut says no, check my notes",
"should_trigger": true
},
{
"query": "review the written record on this opportunity and grade the risks",
"should_trigger": true
},
{ "query": "score this deal against MEDDPICC", "should_trigger": false },
{ "query": "run a MEDDIC scorecard on my opportunity", "should_trigger": false },
{ "query": "BANT qualify this lead for me", "should_trigger": false },
{
"query": "give me a qualification score out of 10 for this account",
"should_trigger": false
},
{ "query": "build me a power map of the buying committee", "should_trigger": false },
{
"query": "who is the economic buyer at this account based on their org chart",
"should_trigger": false
},
{ "query": "map the stakeholders on this deal and label each one", "should_trigger": false },
{ "query": "draw the deal org chart from these CRM contact roles", "should_trigger": false },
{
"query": "write me a discovery question set for a VP of Operations",
"should_trigger": false
},
{ "query": "what should I ask on my first call with this prospect", "should_trigger": false },
{ "query": "build a SPIN question ladder for a security buyer", "should_trigger": false },
{ "query": "build the ROI case for this deal", "should_trigger": false },
{ "query": "calculate the payback period for this customer", "should_trigger": false },
{ "query": "justify our price to their CFO", "should_trigger": false },
{ "query": "turn these call notes into a recap email", "should_trigger": false },
{
"query": "write the follow up email with next steps after this meeting",
"should_trigger": false
},
{ "query": "draft a mutual action plan document for this buyer", "should_trigger": false },
{ "query": "score this call transcript against our rubric", "should_trigger": false },
{
"query": "how did this rep do on the call, here's the Gong recording transcript",
"should_trigger": false
},
{ "query": "grade my discovery call", "should_trigger": false },
{
"query": "here's our pipeline export, which deals should we scrub",
"should_trigger": false
},
{ "query": "we have 4x coverage and still missed, what's wrong", "should_trigger": false },
{ "query": "how much pipeline do we need for next quarter's quota", "should_trigger": false },
{ "query": "clean up stale opportunities across the whole pipeline", "should_trigger": false },
{ "query": "build a forecast roll-up for the whole team", "should_trigger": false },
{ "query": "the buyer says we're too expensive, what do I say", "should_trigger": false },
{
"query": "write me a rebuttal for 'we already use a competitor'",
"should_trigger": false
},
{ "query": "they want 20% off, what do I trade for it", "should_trigger": false },
{ "query": "plan my concessions before the procurement call", "should_trigger": false },
{ "query": "design a 12 touch outbound cadence", "should_trigger": false },
{ "query": "why are my cold emails landing in spam", "should_trigger": false },
{ "query": "write me three subject lines for this campaign", "should_trigger": false },
{ "query": "find a personalization angle for this prospect", "should_trigger": false },
{ "query": "write a cold call opener for a CTO", "should_trigger": false },
{ "query": "define our ideal customer profile", "should_trigger": false },
{ "query": "which accounts belong in tier 1", "should_trigger": false },
{ "query": "build an account fit score from our closed won data", "should_trigger": false },
{ "query": "how much quota should an AE carry next year", "should_trigger": false },
{ "query": "design the accelerator curve for our comp plan", "should_trigger": false },
{ "query": "should we move from PLG to sales led", "should_trigger": false },
{ "query": "how many reps per manager is right", "should_trigger": false },
{ "query": "what should I ask in an AE interview", "should_trigger": false },
{ "query": "how do I break into tech sales", "should_trigger": false },
{ "query": "recommend some sales podcasts worth following", "should_trigger": false },
{
"query": "why is our forecast always wrong at the company level",
"should_trigger": false
},
{ "query": "audit our pipeline stage definitions", "should_trigger": false },
{ "query": "build a lead scoring model", "should_trigger": false },
{ "query": "which customers are at risk of churning this quarter", "should_trigger": false },
{ "query": "set up a deal desk approval workflow", "should_trigger": false },
{ "query": "what are the red flags in this job offer letter", "should_trigger": false },
{ "query": "review this commercial lease for red flags", "should_trigger": false },
{
"query": "code review this pull request and flag anything risky",
"should_trigger": false
},
{
"query": "due diligence red flags on this startup before we invest",
"should_trigger": false
}
]
}
references/example-review.md›
# Worked example
Every name, company, and detail below is fictional, written to illustrate the method.
## Table of Contents
- [Input: six weeks of messy notes, pasted by the user](#input-six-weeks-of-messy-notes-pasted-by-the-user)
- [Output: the review](#output-the-review)
- [Negative example: the evidence rule in action](#negative-example-the-evidence-rule-in-action)
## Input: six weeks of messy notes, pasted by the user
```
Deal: Halvern Logistics - routing platform - ~$80K/yr - stage: Proposal
Aiming to close end of Q3.
Apr 2 - intro call w/ Dana (Ops Director). Great energy. Their dispatch process
is "a mess" her words. She wants to move fast. Demo booked.
Apr 9 - demo. Dana + 2 of her team. Went really well, they loved the
multi-stop view. Dana said "this would save us so much time."
Apr 16 - follow-up. Dana says budget shouldn't be a problem, finance will
sign off once she recommends. Mentioned IT raised something about our API
security, she'll handle it.
Apr 24 - Dana pushed our check-in to next week, busy week on her end.
May 1 - call w/ Dana. Asked about timing - she said "hopefully this quarter,
maybe early next." Their contract with RouteMinder ends Sept 30, they have
to decide before that. Sent proposal after the call per her request.
May 13 - emailed Dana re: proposal. No reply yet.
May 20 - Dana replied, apologized, said she's presenting it internally "soon."
Moved close date from Jun 30 to Jul 31 in the system.
```
## Output: the review
```
DEAL RED-FLAG REVIEW - Halvern Logistics, reviewed May 21, notes covering Apr 2 - May 20
Snapshot : ~$80K/yr, stage Proposal, ~7-week cycle so far, B2B mid-market
Timeline : Apr 2 intro (Dana) - Apr 9 demo (Dana +2 team) - Apr 16 follow-up -
Apr 24 buyer reschedule - May 1 call, proposal sent - May 13 no
reply - May 20 reply, close date pushed Jun 30 -> Jul 31.
Record thins after May 1: two entries in three weeks.
Red
- Economic buyer never met - HIGH - "budget shouldn't be a problem, finance
will sign off once she recommends" (Apr 16). Second-hand relay; no logged
contact with any budget owner in seven weeks, at Proposal stage.
Play: draft the forwardable business-outcome note for Dana to send to the
budget owner; a meeting before the internal presentation, not after.
Response: work it. Not escalate - Dana has not been asked for this door
even once; escalation is earned after two refusals, not before the first.
Amber
- Blocker mentioned but never addressed - HIGH (Assumed) - "IT raised
something about our API security, she'll handle it" (Apr 16). Never
mentioned again; no evidence it was handled.
Play: ask Dana what IT's actual objection was, in their words, and book a
direct technical conversation this week. Response: work it.
- Happy-ears language - MED (Verified) - "Went really well, they loved the
multi-stop view"; "this would save us so much time" (Apr 9). Enthusiasm
recorded, no commitment of time, people, or data anywhere in the notes.
Play: attach a small concrete ask to the internal presentation (their
dispatch volume data for a sized value case); the response is the signal.
Response: trade it - Dana's own presentation funds the ask.
- Unprompted proposal request - MED (Verified) - "Sent proposal after the
call per her request" (May 1), before any decision process appears in the
notes. Play: trade one structured conversation about how the proposal will
be evaluated, and by whom, for the internal presentation date.
Response: trade it.
Watch
- Response latency growing - "emailed Dana re: proposal. No reply yet"
(May 13), reply after a week (May 20), against same-week replies in April.
Two data points - a pattern is forming, not formed. Confirms it: another
widening gap. Clears it: cadence back to April's norm.
- Close date pushed - one push, Jun 30 -> Jul 31 (May 20), no external
reason recorded. One push is Watch; a second without a new external cause
is Red.
Gaps (Unknown) - in chase order
- Single-threaded / stakeholder coverage - DESK CHECK - two team members
attended one demo, unnamed, never heard from again; their names are in the
rep's own calendar invite, not in the notes. Ask: "Who besides Dana is
affected by this decision, and when do we meet them?"
- Champion test unresolved - ONE QUESTION - Dana is engaged, but the notes
show no act of internal selling yet ("presenting soon" is intent, not
action). Ask: "What has Dana done for this deal in rooms we were not in?"
- Decision process undocumented - ONE QUESTION - "presenting it internally
soon" is the only process visible. Ask: "What are the steps, and the
names, between Dana's recommendation and a signed agreement?"
- No quantified impact - ONE QUESTION - "a mess" and "save us so much time"
carry no number. Ask: "What number does Dana's team put on the current
dispatch problem?"
- No mutual action plan - ACCESS ASK - no shared dated milestones; a plan
Dana co-owns costs her real capital. Ask: "Which upcoming steps does
Halvern own, by name and date?"
Cleared
- No compelling event - CLEARED - "Their contract with RouteMinder ends
Sept 30, they have to decide before that" (May 1). Dated, buyer-owned,
external. Note: the Jul 31 close date is the seller's, not tied to it.
Risk check
- Past stages: risk in HOW - the deal reached Proposal on one relationship
and a relayed budget assurance; stage criteria were felt, not evidenced.
- Next stages: risk in the PLAN - the plan is "Dana presents soon": no date,
no economic buyer, an unaddressed IT objection, no agreed process.
Verdict
Evidenced: a real compelling event (Sept 30), a real engagement risk
(economic buyer unmet, IT blocker unaddressed, enthusiasm without
commitment). Merely absent: process, plan, quantified impact, coverage -
gaps to ask about, not reasons to panic. Single next action: the economic-
buyer meeting before Dana's internal presentation - it converts the two
largest risks at once. That promotes an access ask over the cheaper desk-
check and one-question rungs; the fact that moved it is the imminent
internal presentation, after which no cheap read clears a budget veto.
Not a win-probability score.
```
## Negative example: the evidence rule in action
Wrong - a finding stated without evidence, graded as if confirmed:
```
Red - Champion cannot reach power - HIGH - Dana is clearly being blocked
from getting us to leadership.
```
Nothing in the notes says this. No fragment is quoted because none exists; "clearly" is doing the evidencing. This is the reviewer's inference presented as the buyer's reality - exactly what the review exists to catch in the rep's own notes.
Right - the same territory, graded honestly:
```
Gaps (Unknown) - Champion's reach to power - the notes never show Dana
attempting or failing to escalate; there is no evidence either way.
Ask: "Who does Dana report to, and what stops an introduction this month?"
```
And for contrast, the Apr 16 budget line shows the Assumed grade working correctly: "finance will sign off once she recommends" is quotable - so it is not Unknown - but it is a second-hand relay of someone else's authority, so it can never be graded Verified.
The three confidence states, restated:
- A finding with no quote is Unknown.
- A finding whose only quote is hearsay is at most Assumed.
- Verified is reserved for the buyer's own first-hand words.
references/red-flag-catalog.md›
# Red-flag catalog
Legend, one entry per flag:
- **Cue**: what the flag sounds like in raw notes (or what the silence looks like).
- **Why**: the damage if the risk is real.
- **Clears it**: the disconfirming evidence; if the notes quote it, the flag is Cleared, not raised.
- **Ask**: the one diagnostic question that closes the gap when the flag is Unknown.
- **Play**: the remediation attached to a Red or Amber finding.
Resolve every flag in every group to a state. Severity is judged per deal, not listed here.
This file is ordered for grading, not for chasing: every flag gets a state, in whatever order they are read. Which gaps then earn the next buyer touch, and what to do with a confirmed flag, are ranked in SKILL.md - do not read this file's order as a priority list.
Data from vendor call-corpus studies is correlational, not independently replicated. Do not extrapolate beyond its source context. All sources are cited inline.
## Table of Contents
- [Stakeholder coverage](#stakeholder-coverage)
- [Urgency](#urgency)
- [Process](#process)
- [Pain and value](#pain-and-value)
- [Engagement](#engagement)
- [Commercial](#commercial)
## Stakeholder coverage
B2C note: this whole group behaves differently in single-buyer motions - swap it for the two B2C stakeholder flags at the end of the group.
### Single-threaded deal
- Cue: every logged meeting lists the same one name; "spoke with Jordan again"; no second stakeholder ever quoted, met, or copied.
- Why: one departure, reorg, or silence ends the deal. "Single-threaded deals don't close... they vanish into the fog." (Armand Farrokh, 30MPC). The Gong x 30MPC joint analysis of 1M+ executive sales cycles reports won $50K-$250K deals typically involve at least ten stakeholders (vendor data).
- Clears it: notes quote three or more engaged contacts across different functions, each with a logged interaction.
- Ask: "Who else is affected by this decision, and when do we meet them?"
- Play: ask the champion for a named introduction to one adjacent function this week; log the resulting meeting before the next stage.
### Champion unidentified
- Cue: no contact is described as selling internally; notes only record what the seller did; "our contact" with no evidence of advocacy.
- Why: nobody argues for the deal in the rooms the seller is not in. The champion test (meddicc.com) requires power and influence, internal selling when you are absent, and a vested personal interest - a contact who likes you but fails these is a coach, not a champion.
- Clears it: a quoted act of advocacy - the contact booked the economic buyer, shared internal process detail, or defended the deal in an internal meeting the notes recount first-hand.
- Ask: "What has our contact done for this deal when we were not in the room?"
- Play: set the contact an effortful test (book the economic buyer, co-build the plan); their response reclassifies them as champion or coach.
### Champion cannot reach power
- Cue: the champion is engaged but every escalation stalls; "she'll try to get us in front of the VP" recurring across weeks.
- Why: "If they can't get you up in the organization, they're not a real champion." (30MPC).
- Clears it: a meeting with a named senior stakeholder that the champion arranged, logged with a date.
- Ask: "Who does our champion report to, and what stops an introduction this month?"
- Play: draft the forwardable note the champion can send upward; if it is never sent, re-grade the champion flag.
### Champion turnover or departure
- Cue: the advocate stops appearing in the log; a new name replies to their thread; "out of office" or role-change mentions.
- Why: deal knowledge and internal advocacy leave with them; the deal restarts silently while the forecast still counts it.
- Clears it: notes show a successor engaged and re-tested, or the original champion confirmed still in seat and active.
- Ask: "Is our champion still in the role, and who inherits this project if not?"
- Play: re-run champion recruitment with the successor now; do not carry the old champion's commitments forward as evidence.
### Economic buyer never met
- Cue: budget authority referenced only through others - "finance will sign off", "the VP is supportive" - with no logged meeting.
- Why: the person with veto power has never heard the case first-hand; late-cycle veto is the default outcome.
- Clears it: a logged meeting with the economic buyer, plus a first-hand statement from them about the problem or the money.
- Ask: "When did anyone on our side last speak directly with the person who owns this budget?"
- Play: use the champion for a referral up, framed around the business outcome, before the next stage gate.
### Blocker mentioned but never addressed
- Cue: a skeptic, rival owner, or hostile function appears once in the notes ("IT pushed back") and never again.
- Why: unaddressed opposition does not expire; it resurfaces at the decision meeting where the seller is absent.
- Clears it: a later note showing the objection engaged - a meeting with the blocker, or the champion's account of how it was resolved.
- Ask: "What happened with the person who pushed back, and who owns that relationship now?"
- Play: plan a direct or champion-led conversation with the blocker; record their actual objection in their words.
### (B2C) Co-decider unconsulted
- Cue: one person in every conversation; "she'll check with her husband"; a partner's approval assumed, never evidenced.
- Why: the absent co-decider is the real decision meeting; deals die there unheard. Identical logic to the economic-buyer flag - only the household scale differs.
- Clears it: notes quote the co-decider participating or explicitly deferring ("whatever he picks is fine with me").
- Ask: "Who else has to be comfortable with this purchase, and have they heard it from us?"
- Play: invite the co-decider to the next conversation; restate value in terms that matter to them.
### (B2C) Ability to pay unverified
- Cue: enthusiasm with no mention of financing, budget range, or payment terms; price discussed only in the seller's notes to self.
- Why: financing or credit declined at the end wastes the whole cycle; it is the B2C twin of unverified budget.
- Clears it: a quoted confirmation of budget range, financing pre-approval, or accepted payment terms.
- Ask: "How do they plan to pay, and has that path been confirmed?"
- Play: surface the price band and financing path in the next conversation, before any further scoping.
## Urgency
Applies identically to B2B and B2C; only the typical event type differs (fiscal and contractual in B2B, personal and seasonal in B2C).
### No compelling event
- Cue: interest without a date; "they love it"; no deadline, renewal, mandate, or trigger anywhere in the notes. SPICED (Winning by Design) calls this a missing Critical Event.
- Why: without an external forcing function the deal drifts indefinitely - wanting the product is not a timeline.
- Clears it: a dated, buyer-owned event quoted in the notes (contract expiry, compliance date, board mandate, a move, a season).
- Ask: "What happens on their side, and on what date, if they do nothing?"
- Play: probe cost of inaction against a real date; if none exists, re-forecast the deal honestly rather than manufacturing urgency.
### Soft or self-declared timeline
- Cue: "hoping for end of quarter", "they said Q3-ish" with nothing behind it. The four timeline levers, ranked (Jason Bay, 30MPC): hard deadline, commercial terms, cost of inaction, soft deadline - practitioner guidance is to look for at least two of the four before treating a timeline as real.
- Why: a timeline resting on one soft lever slips by default; the forecast inherits the fiction.
- Clears it: at least two levers quoted in the notes, one of them a hard deadline or dated commercial term.
- Ask: "Which of their own deadlines or costs makes this date real?"
- Play: name the levers present and absent to the buyer; anchor the close plan on the strongest one that actually exists.
### Timeline owned by the seller, not the buyer
- Cue: every date in the notes traces to the seller's quarter; buyer language is passive ("works for us if it works for you").
- Why: a date only the seller needs is a date only the seller defends.
- Clears it: the buyer stating their own date and their own reason for it, quoted.
- Ask: "In the buyer's words, why does this need to happen by this date?"
- Play: rebuild the timeline backward from the buyer's event; if no buyer event exists, treat as no compelling event.
### Close date pushed repeatedly
- Cue: the timeline shows two or more close-date moves; push reasons missing or repeating ("just need a few more weeks").
- Why: each push carries information, not just delay - a slipped deal is less likely to close than a comparable deal that never moved (Clari, vendor data).
- Clears it: a single push with a documented, external, resolved reason, and the new date holding.
- Ask: "What specifically changed between the last committed date and this one?"
- Play: attach a named condition to the new date with the buyer; a second push without a new external cause downgrades the forecast category.
## Process
In B2C and transactional motions this group collapses to the last flag only - an agreed, dated next step.
### Decision process undocumented
- Cue: no note describes how the buyer decides - who evaluates, who approves, in what order; the seller's plan is the only plan visible.
- Why: an unknown process cannot be influenced; every late surprise lives here.
- Clears it: the buyer's steps from evaluation to signature written down with named owners, quoted or clearly relayed from the buyer.
- Ask: "What are the steps, and the names, between a yes from our contact and a signed agreement?"
- Play: have the champion walk the process end to end on the next call; write it into the notes with dates.
### Procurement, legal, or security surfaced late or sequentially
- Cue: these functions appear for the first time near the close date, or the notes show them queued one after another instead of in parallel.
- Why: each late, sequential review silently adds weeks past the committed date; the deal is not late at the end - it was late when the mapping was skipped.
- Clears it: notes showing these steps identified early, with owners, running in parallel where possible.
- Ask: "Which review steps exist, who owns each, and which can start now?"
- Play: pre-map the paper process into the mutual plan this week; ask the champion which reviews can begin before the decision.
### No mutual action plan
- Cue: next steps exist only as the seller's to-do list; no shared, dated milestones the buyer co-owns.
- Why: a plan only one side owns measures intent, not commitment; buyer-completed milestones are the honest progress signal.
- Clears it: a shared plan referenced in the notes with buyer-owned items - and evidence the buyer completed at least one.
- Ask: "Which upcoming steps does the buyer own by name and date?"
- Play: co-draft a short plan (few steps, each dated and owned) with the champion; buyer completion of step one is the real test.
### No agreed next step with a date
- Cue: calls end with "we'll reconnect soon"; no calendared, purposeful next meeting anywhere in the recent notes.
- Why: momentum is the cheapest signal in the record; its absence is the earliest stall warning.
- Clears it: a specific next step with a date and purpose, agreed in the notes.
- Ask: "What is the next dated step, and what does it accomplish?"
- Play: propose a dated next step tied to the buyer's own event before ending the current thread.
## Pain and value
Applies identically to B2B and B2C; in B2C the quantified impact is household money, time, or stress rather than business metrics.
### Pain stated at surface level only
- Cue: complaints without consequences - "reporting is a mess" - with no example, duration, or prior attempt to fix it.
- Why: surface complaints do not fund purchases; a pain without a story is a symptom, and symptoms lose to the status quo.
- Clears it: a specific recent incident quoted, with what it cost and what the buyer already tried.
- Ask: "When did this last actually happen, and what did it cost?"
- Play: run a re-discovery pass on the pain (route the full question set to `mbfinotti/sales-skills@sales-discovery-questions`).
### No quantified impact
- Cue: value discussed in adjectives - "huge time-saver" - with no number, from either side, anywhere in the notes.
- Why: an unquantified case cannot be defended internally by the champion or approved by the economic buyer.
- Clears it: at least one figure in the buyer's own words tying the problem to money, time, or risk.
- Ask: "What number does the buyer put on this problem?"
- Play: build the value case with the buyer's inputs (route to `mbfinotti/sales-skills@deal-value-calc`); a number the seller supplies alone is an objection waiting.
### Happy-ears language
- Cue: the notes assert enthusiasm as progress - "they loved the demo", "very positive call" - with no commitment, date, or resource attached.
- Why: enthusiasm substitutes for commitment precisely when commitment is missing; the notes' optimism grades the rep's mood, not the deal.
- Clears it: a quoted buyer commitment of something scarce - time, people, data, a date, an introduction.
- Ask: "What has the buyer given up or scheduled that shows commitment beyond kind words?"
- Play: convert sentiment into a small concrete ask on the next call; the response is the real signal either way.
### Requirements sourced from one function only
- Cue: every requirement in the notes traces to one team or persona; no other function's needs, objections, or acceptance criteria appear.
- Why: the unheard functions surface their requirements at evaluation's end, restarting the cycle or killing the fit.
- Clears it: requirements or acceptance criteria quoted from at least two functions.
- Ask: "Which other team has to live with this decision, and what do they need from it?"
- Play: ask the champion to broker a requirements conversation with the missing function before proposal.
## Engagement
Applies identically to B2B and B2C - these are trend flags, so they need notes spanning multiple touches; on a one-call record grade them Unknown.
### Response latency growing
- Cue: reply gaps widening across the timeline - same-day replies in week one, a week of silence by week six.
- Why: the widening pattern, not any single silence, is the disengagement signal; single silences are noise.
- Clears it: cadence returning to the segment's norm, or a quoted buyer explanation with re-engagement following it.
- Ask: "What changed on their side since the pace slowed?"
- Play: change channel and content - a short note tied to their compelling event - rather than another follow-up of the same kind.
### Meetings shrinking or rescheduled
- Cue: attendance dropping across meetings; recurring reschedules by the buyer; seniority of attendees declining.
- Why: attention is allocated by priority; a deal losing attendees is losing internal priority before it loses officially.
- Clears it: a stable or growing attendee list, or a senior stakeholder joining later touches on schedule.
- Ask: "Who attended the last two meetings versus the first two, and why the change?"
- Play: rebuild the meeting's value for the missing attendees with the champion; a meeting worth attending is the fix, not more invites.
### Notes thinning across the deal's history
- Cue: early notes are rich, recent ones one-liners; weeks with no entries at all late in the cycle.
- Why: either activity stopped (deal risk) or logging stopped (hygiene risk); both corrupt every other flag's evidence.
- Clears it: consistent recent entries - or the user confirming the missing activity happened and supplying it.
- Ask: "Is the thin record missing activity, or recording missing activity?"
- Play: backfill the record with the user now, then re-run the review - grade the deal on the completed record, not the gap.
## Commercial
Applies to both motions; in B2C the incumbent is whatever the household does today, including doing nothing.
### Budget unverified or assumed
- Cue: money appears only as the rep's guess - "budget shouldn't be a problem" - or a relayed assurance the notes never attribute to a named person.
- Why: an assumed budget fails exactly once, at the end; the loss is booked after the work is done.
- Clears it: a first-hand statement from the budget owner - amount, range, or an explicit funding path - quoted in the notes.
- Ask: "Who owns this money, and what have they said about it themselves?"
- Play: trade a scoping step for a budget conversation with the owner; keep it a range, not a quote, to keep it safe to answer.
### Incumbent or status quo never discussed
- Cue: no note mentions what the buyer uses today, a rival evaluation, or why "do nothing" loses.
- Why: buyer-indecision research (Dixon and McKenna, The JOLT Effect, 2022) found 40-60% of lost deals go to no decision, not to a rival; a review that never engages the status quo has not engaged the real competitor.
- Clears it: the current solution and its cost of inaction discussed in the notes, in the buyer's words.
- Ask: "What are they doing today instead, and what does staying with it cost them?"
- Play: run a cost-of-inaction conversation anchored on their quoted pain - differentiate against staying put before differentiating against vendors.
### Unprompted request to skip to a proposal
- Cue: "just send us a proposal" early in the record, before pain, process, or stakeholders appear in the notes.
- Why: it usually signals column-fodder in someone else's process - pricing input for a decision already steered elsewhere.
- Clears it: the buyer accepting discovery or a process conversation alongside the proposal request.
- Ask: "What prompted the request now, and how will the proposal be evaluated, by whom?"
- Play: trade the proposal for one structured conversation about process and criteria; refusal is itself a graded finding.
SKILL.md›
---
name: deal-red-flags
description: Reviews one deal's free-text notes - call notes, opportunity fields, CRM activity log, email threads - for qualification red flags such as single-threaded deal, no champion, no compelling event, unverified budget, no agreed next step, or fading engagement, each graded on severity and confidence with the quoted note fragment behind it. Covers B2B and B2C. Use whenever the user mentions deal risk, a stalled or slipping deal, ghosting, forecast inspection, or "is this deal real", even without the words red flag. Reviews one deal, not a pipeline export. Do NOT use for structured qualification scoring (mbfinotti/sales-skills@meddpicc-scorecard) or stakeholder mapping (mbfinotti/sales-skills@deal-champion-mapping).
license: MIT
metadata:
author: Maya-Beth Finotti
version: "1.2.3"
---
# Deal Red Flags
Review the written record of a single deal - call notes, opportunity-record text fields, CRM activity log entries, email threads - and surface qualification red flags with the evidence behind each one. Free-text notes are lossy, so silence in the notes is not the same as a confirmed problem.
Grade every flag on two independent axes, never collapsed into a single score:
- Severity: how much damage the risk does to this deal if it is real.
- Confidence: how the notes evidence it.
A high-severity but poorly evidenced gap is escalated differently from a low-severity but certain one. The most common and most useful verdict is Unknown - the notes say nothing either way - because it converts a note gap into a question for the next call. A structured scorecard cannot produce Unknown honestly, since its input is already structured; that asymmetry is this skill's whole reason to exist.
Hard rules, not suggestions:
- Every finding graded Verified or Assumed must quote the exact fragment of the notes it came from. A finding with no quotable evidence is by definition Unknown.
- Every flag has a specific piece of disconfirming evidence that clears it. Check for it before recording a risk, so the review is not a one-way ratchet where every deal looks doomed.
## Use this, or use a sibling
Use this skill when the user has the written notes of one deal and wants its risks surfaced from the prose. Use something else when:
- The user wants a structured score against MEDDPICC criteria, criterion by criterion - `mbfinotti/sales-skills@meddpicc-scorecard`. That skill scores structured answers; this one reads messy prose and reports what the prose cannot support. This skill never outputs a methodology score.
- The user wants the stakeholder map built (who is the champion, economic buyer, blocker) - `mbfinotti/sales-skills@deal-champion-mapping`. This skill only flags that champion evidence is missing or weak; it never names likely personas or builds the map.
- The user wants a full discovery question set - `mbfinotti/sales-skills@sales-discovery-questions`. This skill emits exactly one diagnostic question per gap.
- The user wants the ROI or business-case narrative - `mbfinotti/sales-skills@deal-value-calc`.
- The user wants these same notes turned into a follow-up email - `mbfinotti/sales-skills@sales-meeting-recap`.
- The user has a pipeline export of many deals. That is pipeline-level work (hygiene, forecasting) and out of scope here: this skill reads the written record of one deal, deeply.
## Interview
Ask before reviewing - one question per message, multiple-choice where possible. Skip anything the notes already answer.
- B2B or B2C? (B2C here means considered purchases with a real sales conversation - remodeling, financial products, high-ticket coaching - not impulse retail.)
- Rough deal size and expected cycle length? (Calibrates severity: a missing mutual action plan is severe on a six-month enterprise deal, irrelevant on a two-week transactional one.)
- What stage does the seller believe the deal is in; is it on a forecast or commit list, and by what date must the answers land - the forecast call, the stage gate, or the buyer's own event? (A committed deal raises the stakes of every gap; a gap that resolves after that date is not worth chasing at any price.)
- What period do the notes cover, and are they complete? (One call's notes cannot evidence trends; see failure modes.)
- Is the goal this deal, or the habit behind it? (Saving this cycle ranks buyer-facing asks first; fixing qualification or note hygiene promotes the record work that pays across every later deal.)
- What is the effort ceiling before the next gate - how many asks the relationship can carry, and whether a manager or exec sponsor is available? (Decides which chase and response rungs are open at all.)
- Anything the user already suspects? (Becomes a hypothesis to test against the evidence - never a conclusion to confirm.)
## Intake
Accept any prose about the deal:
- Raw call notes.
- A pasted activity log.
- Opportunity-record free-text fields.
- Email or chat threads.
- Recap emails.
- Transcript excerpts.
Notes exported from any CRM or conversation-recording tool work as input - nothing in the workflow depends on which tool produced them. If your environment can read files, accept a file path or export; otherwise ask the user to paste the text.
Partial, messy, or thin notes are fine - saying what is missing is half of this skill's job. Be explicit with the user about what the review can and cannot see: it grades the notes, not the deal, so thin notes produce many Unknowns, and that is itself a finding about deal hygiene.
## Workflow
1. Run the Interview; then confirm the input covers everything the user has (a stray email thread often holds the only first-hand buyer quote).
2. Normalize the notes into a dated timeline of events: meetings held, who attended, commitments made, dates moved. Note where the record thins out - that is evidence too.
3. Extract candidate evidence: verbatim fragments that assert or disconfirm anything in the catalog. Distinguish first-hand buyer statements from the rep's own inferences and from second-hand relays - "I have it in writing from the economic buyer" outranks "my champion told me".
4. Run every group of [references/red-flag-catalog.md](references/red-flag-catalog.md) against the timeline and the evidence. Resolve every flag in every group to a state - never skip a group.
5. Check each flag's disconfirming evidence before recording a risk. A flag whose clearing evidence is quoted in the notes is Cleared, not Red.
6. Assign severity to every non-Cleared flag, calibrated to the deal size, cycle length, and motion from the Interview - not to a fixed table.
7. Separate what is evidenced from what is merely absent. Write exactly one diagnostic question per Unknown flag (the catalog supplies one per flag), then order the Gaps by the chase order below - the rep gets one next touch, not twelve.
8. Write the report in the output shape below, attaching one remediation play per Red and Amber flag from the catalog and naming the response rung that play belongs to.
9. Run the Quality gate; iterate - re-grade and rewrite - until every item passes.
10. If your harness has persistent memory, record the flags raised, their states, and their evidence, so the next review of the same deal can check which gaps closed. Otherwise end the report with a short carry-forward list for the user to keep.
## Grading rubric
Confidence states - how the notes evidence the flag:
| State | Meaning | Evidence requirement |
| -------- | ---------------------------------------------------------------------- | ---------------------------------------- |
| Cleared | The notes contain the flag's disconfirming evidence | Verbatim quote of what cleared it |
| Verified | A first-hand, quotable buyer statement evidences the risk | Verbatim quote from the notes |
| Assumed | Only the rep's inference, hearsay, or a second-hand relay evidences it | Verbatim quote of the inference or relay |
| Unknown | The notes are silent on this flag | None - silence is the finding |
Severity - High, Medium, or Low: the damage to this deal if the risk is real, judged against deal size and cycle length, not a fixed table. Grading a flag red/amber/green with a verified-versus-assumed confidence test is standard practice in deal inspection (documented across MEDDPICC-lineage sources); the state names above extend that vocabulary with Unknown for note review.
Deliberately left unranked: severity and confidence are a risk rubric, not a menu of competing options. Never order the two axes against each other, and never collapse them into one score - the rubric grades what the notes say, and the two rankings below then choose the work on top of its output. A later pass should leave the rubric alone.
Report grade - a presentation grouping only; both axes stay visible on every finding:
- Red: Verified risk, High severity.
- Amber: Verified risk at Medium/Low severity, or Assumed risk at High severity.
- Watch: Assumed risk at Medium/Low severity - name what would confirm or clear it.
- Gap: any Unknown - carries one diagnostic question, never a remediation play (there is nothing confirmed to remediate).
- Cleared: listed briefly with its clearing quote, so the next reviewer does not re-raise it.
## Chase order: which gap earns the next touch
Grading resolves every flag in every group; chasing is the separate, smaller choice. The rep has one next touch, so a gap is only worth chasing when the answer changes what they do next - a flag that cannot move the plan is not worth chasing however severe it looks. Rank the instrument, not the flag: the same gap is cheap or expensive depending on how the rep closes it.
Effort here is rep hours, buyer goodwill spent on the ask, and calendar latency before the answer lands - never a price.
- efficiency (the default order): `desk check > one question > access ask > second data point > record repair`
- value: `access ask > one question > desk check > record repair > second data point`
- effort, most to least: `record repair > access ask > second data point > one question > desk check`
| Rung | What it closes | Effort | What the answer changes |
| ----------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------- |
| Desk check - close it from records the rep already holds: calendar, sent mail, CRM field history, attendee lists | Thread coverage, close-date pushes, seller-owned timeline, latency and attendance trends, notes thinning | Near-zero; no goodwill; the answer already sits in the rep's own records | Re-grades the evidence base itself - a thin or wrong record corrupts every other finding, so this one gates the rest |
| One question in the thread - a single diagnostic question answered by email or in the already-booked call | Decision process, budget owner's own words, the blocker's actual objection, next dated step, quantified impact | An hour of prep, one ask of goodwill, days of latency | Usually flips the forecast category and names the next meeting |
| Access ask - ask the buyer to spend their own capital: an introduction, the co-decider, the missing function, a co-owned plan | Economic buyer never met, co-decider unconsulted, champion's reach to power, requirements from one function | A week or more of latency, real goodwill, and refusable | The most of any rung - the ask is both the confirmation and the remediation, and a refusal is itself a Verified finding |
| Second data point - wait for the next reply gap, push, or attendee list | Trend flags that a two-point record cannot grade at all | Near-zero hours, but a quarter of calendar latency | Little now - the answer usually lands after the forecast call it was meant to inform |
| Record repair - backfill this deal's log, then hold notes to a gradable standard | Nothing on this deal today | A standing job | Nothing for the next call; compounds across every later review of every deal |
Deleted, not demoted: a full re-discovery call closing several gaps at once. This skill emits one question per gap, and five questions in one call reads as an interrogation - it burns exactly the goodwill the access ask needs. Route a genuine full question set to `mbfinotti/sales-skills@sales-discovery-questions`.
What this order starves:
- The access ask: highest value, highest effort, so it loses every efficiency round. That is the failure mode of ratio thinking here, because unmet power is what kills late-stage deals while the cheap rungs report progress. Promote it to first whenever the deal is on commit, or the next stage gate is the decision meeting: no desk check clears a veto.
- Record repair, too. Promote it when Unknowns dominate two consecutive reviews of the same deal.
Re-rank against what you already know about this deal and this rep, and say in the report which fact moved which rung:
- A forecast call inside the week promotes the access ask and makes the second data point worthless.
- A champion who replies same-day collapses the one-question rung's latency, promoting it above the desk check.
- A rep carrying thirty deals stays on the first two rungs; a rep with three can afford an access ask on each.
- An answer of "fix the habit" in the Interview promotes record repair from last to first.
- Notes covering a single call make the desk check return nothing but Unknowns - start at the one-question rung.
## Response order: what to do with a confirmed flag
Applies only to Red and Amber. An Unknown has nothing confirmed to respond to; it goes back to the chase order above.
- efficiency (the default order): `trade it > work it > re-forecast it > escalate it > disqualify`
- value, as deals unblocked or cycle hours returned: `escalate it > trade it > work it > disqualify > re-forecast it`
- effort, most to least: `escalate it > work it > trade it > re-forecast it == disqualify`
The tie is real: re-forecasting and disqualifying both cost near-zero rep hours, zero buyer goodwill, and one internal update. They are genuinely equal in what the rep spends and differ only in reversibility, which the value axis carries - so effort alone must not pick between them.
| Rung | What it is | Effort | What it buys |
| -------------- | ----------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- |
| Trade it | Make the fix the price of the next thing the buyer already wants - the proposal, the scoping session, the pricing | An hour to structure; no new goodwill, since the buyer's own ask funds it | The flag closes inside a step that was happening anyway |
| Work it | Run the catalog play as its own touch | An hour of prep, one touch of goodwill, days of latency | One flag closed; the default when nothing is on the table to trade |
| Re-forecast it | Move the deal out of the committed period and name the flag that moved it | Near-zero hours, no buyer goodwill, some internal capital | Forecast truth, not deal progress - the honest answer to an urgency or budget flag nothing can clear |
| Escalate it | Bring a manager or exec sponsor to open a door the rep cannot | Political capital, a week of coordination, spendable roughly once per deal | Everything where the blocker is access; nothing where it is information |
| Disqualify | Return the remaining cycle's hours to the rest of the pipeline | Near-zero | The whole remaining cycle - and it is irreversible, so it is wrong on any recoverable flag |
Deleted, not demoted: raising the flag to the buyer as a concern with no ask attached. It spends goodwill and returns no evidence; every catalog play carries an ask for exactly that reason.
What this order starves:
- Escalation: it reads as expensive and political, so efficiency never picks it, and the flags it alone fixes (economic buyer never met, blocker unaddressed) are the ones that kill deals late. Promote it above trade and work when the blocker is access rather than information, the champion has been asked at least twice, and the stage gate lands inside the current period.
- Disqualifying, for the same reason. Promote it on one named unrecoverable flag, never on a flag count.
Neither order is a law. Both shift with the deal, the quarter, and who executes: a rep with an engaged exec sponsor escalates cheaply, a rep without one should not plan around it, and quarter end promotes trading and re-forecasting over anything with a week of latency in it.
## Invocation and output shape
Typical invocations:
- "Here are six weeks of notes on my top deal - what red flags am I missing?" (pasted notes follow)
- "Review this opportunity's activity log before I commit it - is this deal real?"
- "Single-threaded check: everything I have on the deal is in this email thread."
Deliver one report (worked example, including a negative example, in [references/example-review.md](references/example-review.md)):
```
DEAL RED-FLAG REVIEW - <deal>, reviewed <date>, notes covering <period>
Snapshot : size, stage, cycle age, motion (B2B/B2C) - as stated, or "not in notes"
Timeline : dated events reconstructed from the notes; where the record thins
Red : flag - severity - verbatim evidence quote - one remediation play -
its response rung, and the fact that promoted or demoted it
Amber : same shape as Red
Watch : flag - verbatim evidence quote - what would confirm or clear it
Gaps : flag - one diagnostic question - its chase rung; listed in chase
order, highest value per unit of effort first
Cleared : flag - the quote that cleared it
Risk check : the two pipeline-review questions (Armand Farrokh, 30MPC): is there
risk in HOW the deal cleared its past stage criteria, and is there
risk in the PLAN for the next ones - answered from the findings
Verdict : what is evidenced vs what is merely absent; the single next action,
which is the top of the chase order after re-ranking against the
Interview answers. Never a win-probability or methodology score.
```
## B2B and B2C
Identical in both, stated explicitly rather than left implied:
- The evidence rule: quote it, or it is Unknown.
- The two-axis grading.
- The disconfirming-evidence check.
- The whole Pain and value, Engagement, and Urgency-quality logic: happy ears, unquantified impact, seller-owned timelines, repeated pushes, and growing response latency read the same way in both motions.
Genuinely different in B2C and high-velocity transactional deals - do not just relabel the B2B list:
- Single-threading is not a flag: these deals are single-stakeholder by design. The equivalent stakeholder risks are an unconsulted co-decider (partner or spouse whose approval is assumed but never evidenced) and unverified ability to pay (financing or credit never confirmed).
- Compelling events are more often personal or seasonal (a move, a life event, a deadline the household set) than fiscal; a real dated trigger still beats "they seemed eager".
- Procurement, security, and legal review usually do not exist; the Process group collapses to one question - is there an agreed, dated next step? Cart or trial abandonment and lengthening reply gaps take over as the dominant engagement flags.
- Applying enterprise heuristics to a transactional deal is itself a false positive (see below), and the reverse holds too: judging a long-cycle enterprise deal by transactional response-speed standards manufactures ghosting flags that are not real.
## Failure modes and false positives
| Over-reaction | Fix |
| --------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- |
| Treating Unknown as Red | Unknown means the notes are silent, not that the deal is broken; it earns a question, not an escalation |
| Flagging a small transactional deal against enterprise criteria | Calibrate with the Interview; multithreading and mutual-action-plan flags switch off below the motion they fit |
| Calling a deal single-threaded when the notes cover one call | One call's notes evidence one call; state Unknown for coverage and ask who else is involved |
| Inferring champion departure from a single unanswered email | A widening pattern of gaps is evidence; one silence is not - grade Assumed at most, with the quote |
| Qualifying out on a flag count | Counts collapse the two axes and a count is not a decision rule; the response order names what does justify disqualifying |
| One-way ratchet - recording risks without checking clears | Run step 5 for every flag; a review that cannot output Cleared will always find a doomed deal |
| Reading slow, consensus-driven buying as disengagement | Some buying cultures and regulated processes are legitimately slow and quiet; weigh cadence against the segment's norm, not a universal one |
| Grading the deal instead of the notes | The verdict must distinguish "evidenced risk" from "thin record"; recommend better note hygiene when Unknowns dominate |
## Quality gate
Score the finished report against all six. Pass threshold: 6/6 - iterate until nothing fails.
1. 100% of Red and Amber findings carry a verbatim evidence quote from the notes.
2. Every catalog group resolves every one of its flags to a state - none skipped, including Cleared and Unknown.
3. No Unknown appears as Red, Amber, or Watch; every Unknown carries exactly one diagnostic question.
4. Every Red and Amber finding carries exactly one remediation play.
5. Every severity is justified against this deal's size, cycle, and motion - no fixed-table severities.
6. Gaps are listed in chase order and Red/Amber plays name a response rung, both re-ranked against the Interview answers, with the fact that moved a rung stated.
## KPIs and measurement
The review worked if, on reviewed deals over time:
- The slip rate (close dates pushed past the committed period) falls.
- A growing share of flagged deals close the flag before the next stage.
- Forecast accuracy on reviewed deals improves against unreviewed ones.
- Unknowns from one review convert to Verified or Cleared by the next.
A rising Unknown count across reviews of the same deal means note hygiene, not deal quality, is the problem to fix first.