Se coaching analysis
Skill migos1990/presales-harness-starter/skills/se-coaching-analysis
Analyze SE call transcripts and score performance out of 100 with dimensional breakdown, coaching insights, and actionable next steps. Reads VTT/TXT transcripts or pasted text, auto-detects call type (discovery, demo, POC, competitive, executive, QBR, follow-up), and produces a structured coaching report with transcript-grounded strengths, development areas with alternative approaches, transferable learning points, and behavioral commitments. Use this skill whenever the user mentions "score my call", "coach me on this call", "analyze this transcript", "how did I do on that call", "SE coaching", "call review", "rate my demo", "call score", "coaching report", or pastes/references a call transcript and wants performance feedback. Also trigger when the user says "T3-B3-N3", "what went well", "call debrief", or wants to improve their SE skills from recorded calls.From its SKILL.md
npx -y skills add migos1990/presales-harness-starter --skill se-coaching-analysisAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
17.5 KB, as published. Nobody here has run it
Output Quality Requirements (rubric compliance, MANDATORY, overrides all guidance below)
This block overrides any conflicting instruction, template, schema, or example anywhere later in this skill. It applies to EVERY claim, bullet, JSON entry, narrative sentence, and queued fact in the output. No exceptions for "internal" artifacts, jsonl queues, or wiki updates.
- Tag every carried-forward fact inline. Any fact pulled from
_state.md,_wiki/, or_inbox/MUST carry an inline tag at the end of the claim:[CORROBORATED: N sources: <s1>, <s2>]or[UNCORROBORATED: single source: <author/file>]. This applies to narrative prose AND to every jsonl/queue entry. - The JSON
corroborationfield is NOT a substitute. Values like"single-source"or"UNCORROBORATED, flagged"do not satisfy the rubric. The inline[UNCORROBORATED: single source: <who>]tag MUST appear inside the claim string itself (e.g., in theclaim,fact, orstatementfield), in addition to any structured metadata. - Frame all
_inbox/, RFP, call-notes, and document content as claims. Write "the call notes state X", "the RFP document claims X", "<author>'s summary indicates X". NEVER write "Acme requires X", "the customer confirmed X", "Globex runs X", "the CFO signed off". Declarative form is prohibited for any non-corroborated source-derived fact. - Phase 3 queue entries are NOT exempt. Every queued fact (SOX audit dates, SaaS app counts, ticket volumes, CFO sign-off, vendor quotes, headcount, budget figures) must be both (a) claim-framed in the text field and (b) inline-tagged. Example required form:
"claim": "Notes from <author> state Acme runs ~47 SaaS apps [UNCORROBORATED: single source: <author>, <file>]". - Tag authority gaps on decision/commitment claims. Any claim about budget approval, vendor selection, architecture choice, timeline commitment, or executive sign-off sourced from procurement, ICs, inferred roles, public statements, or non-decision-makers MUST carry
[AUTHORITY GAP: not confirmed by economic/technical buyer]. "CFO sign-off" reported second-hand requires this tag unless the CFO is the direct source. - Cite or mark unverified. Every product-capability claim, competitor claim, pricing figure, and quantitative metric requires an inline source URL + date, or
[UNVERIFIED]. No exceptions for "common knowledge" vendor facts. - Compelling-event and qualification facts must be claim-framed. Write "the notes claim a hard date exists", not "the compelling event has a hard date". Do not promote single-source notes to established fact in narrative recommendations.
- Zero em-dashes (—). Use commas, periods, colons, or parentheses. This applies to every section including headings and JSON strings.
- Strip vendor-favorable framing and cheerleading. Remove phrases like "textbook capture", "strong signal", "compelling". State limits and gaps explicitly. Acknowledge what is NOT yet corroborated before recommending action.
- Sharpness over hedging. Replace filler ("flashing light", "worth noting") with the specific claim, its source, and its corroboration status.
- If a fact cannot be tagged because the source is unclear, omit it. Do not pass through untagged facts under any circumstance.
SE Call Coaching Analysis
Note: Uses state-tree placeholder paths and plugin frontmatter conventions; Obsidian vault references deferred.
Read a call transcript. Score the SE's performance out of 100. Produce a coaching report with transcript-grounded insights. Every observation cites a specific moment from the call.
Read references/scoring-rubric.md for the complete 100-point scoring model, call-type
adjustments, and coaching report template. Read references/coaching-prompt.md for the
detailed coaching analysis prompt and SBI format guidance.
State-tree placeholder: <state-tree>/ resolves to wherever the adopter has chosen for their per-company state. Plugin convention: output/<company>/. Throughout this skill, <state-tree>/ may be read as output/ for default deployments.
Source materials (call transcripts, VTT files, pasted text) are read from <state-tree>/<company>/_inbox/. Obsidian vault integration is deferred; the KB helper (helpers/knowledge-base.sh) covers the same use case today.
Inputs and resolution contract
Required input: $ARGUMENTS MUST contain a company identifier as the first positional value. If missing or empty, this skill rejects with exit code 2 and emits exactly:
ERROR: company required
per rules/source-trust-hierarchy.md Tier 1 input-validation guard. This matches the input-validation contract used by discovery, competitive, and the other Tier 1 skills.
Mode + accounts-root resolution: before running, source helpers/getMode.sh and resolve the accounts root via getAccountsRoot(), this honors $PRESALES_ACCOUNTS_ROOT (adopter's custom account root), $CLAUDE_PROJECT_DIR/output, and $PWD/output in priority order. Then call getMode <company> for the dual-mode classifier.
source "${CLAUDE_PLUGIN_ROOT:-.}/helpers/getMode.sh"
accounts_root="$(getAccountsRoot)"
mode="$(getMode "$company")"
state_tree="${accounts_root}/${company}"
In stateless mode, output is the only side effect. In stateful mode, the skill reads $state_tree/_state.md, $state_tree/_inbox/, and $state_tree/_wiki/ per the conversation contract. See rules/conversation-contract.md for the full Phase 0 / Phase 1 / Phase 2 / Phase 3 read+write loop.
How It Works
Step 1: Identify Call Type
From the transcript, classify the call as one of:
| Type | Signals in Transcript |
|---|---|
| Discovery | Questions about current state, pain, stakeholders. No product shown. |
| Demo | Screen sharing references, "let me show you", product walkthrough |
| POC/Eval | Success criteria, test results, environment setup |
| Competitive | Competitor names, comparison questions, bake-off references |
| Executive | CxO titles, business outcomes, strategic language, short call |
| QBR | Review of metrics, renewal, expansion, value realized |
| Follow-up | References to prior call, next steps, async context |
If unclear, ask. The call type determines which scoring adjustments apply.
Step 2: Identify Speakers
Parse the transcript to identify:
- SE (the person being coached)
- AE (if present)
- Customer contacts (names, titles if available)
If the transcript uses speaker labels (Speaker 1, Speaker 2), ask the user to identify which speaker is the SE.
Step 3: Score Across 7 Dimensions (100 Points)
| Dimension | Weight | What It Measures |
|---|---|---|
| Discovery Depth | 25 pts | Did SE excavate business pain before presenting? Quality of questions? Stakeholder mapping? |
| Value Alignment | 20 pts | Were capabilities tied to customer-stated pain? Proof points relevant? CotM before/after framing? |
| Listening & Interactivity | 15 pts | Talk ratio (target: SE <50% in discovery, <60% in demo). Question distribution. Monologue length. |
| Objection Handling | 15 pts | Acknowledged concern? Probed root cause? Addressed with evidence, not defensiveness? |
| Technical Credibility | 10 pts | Accurate answers? Honest about gaps? "I'll confirm" over confident wrong answers? |
| Next Step Discipline | 10 pts | Specific action + owner + date? Or vague "let's follow up"? |
| Presence & Collaboration | 5 pts | AE-SE handoffs clean? Audience-appropriate depth? Composure under pressure? |
Scoring per dimension:
- 90-100%: Exceptional, would use as a training example
- 70-89%: Strong, solid execution with minor refinements
- 50-69%: Developing, key behaviors present but inconsistent
- 30-49%: Needs coaching, significant gaps in this dimension
- 0-29%: Critical, fundamental skill not demonstrated
Step 4: Call-Type Scoring Adjustments
| Call Type | Adjust Up | Adjust Down |
|---|---|---|
| Discovery | Weight Discovery Depth to 30 pts (steal 5 from Value Alignment) | Technical Credibility less relevant |
| Demo | Value Alignment to 25 pts | Discovery Depth to 20 pts (some should be pre-done) |
| Executive | Presence & Collaboration to 10 pts | Technical Credibility to 5 pts (answer only when asked) |
| POC | Technical Credibility to 15 pts | Presence to 5 pts |
| Competitive | Objection Handling to 20 pts | -- |
| QBR | Value Alignment to 25 pts (realized value storytelling) | Discovery Depth to 15 pts |
Step 5: Produce the Coaching Report
SE CALL COACHING REPORT
═══════════════════════════════════════════════════
Call: [Type] | Date: [Date] | Duration: [Minutes]
Attendees: SE: [Name] | AE: [Name] | Customer: [Names/Titles]
Deal Stage: [If known]
OVERALL SCORE: [XX] / 100
┌─────────────────────────┬────────┬───────┐
│ Dimension │ Weight │ Score │
├─────────────────────────┼────────┼───────┤
│ Discovery Depth │ 25 │ XX │
│ Value Alignment │ 20 │ XX │
│ Listening & Interactivity│ 15 │ XX │
│ Objection Handling │ 15 │ XX │
│ Technical Credibility │ 10 │ XX │
│ Next Step Discipline │ 10 │ XX │
│ Presence & Collaboration│ 5 │ XX │
└─────────────────────────┴────────┴───────┘
KEY METRICS:
• Talk ratio: SE [X]% / Customer [X]%
• Questions asked by SE: [N] (open: [N], closed: [N])
• Longest SE monologue: ~[N] minutes
• Customer questions: [N]
• Next step: [Specific / Vague / None]
Section 1: STRENGTHS (What You Did Well)
3 specific moments from the transcript using SBI format:
[Skill Label] (Dimension: [X], Score contribution: +[N])
Situation: At [timestamp/context], when [what was happening]... Behavior: You [specific action: quote the transcript] Impact: The customer [responded/reacted: quote if possible]
Pattern to reinforce: [One-sentence transferable principle]
Section 2: DEVELOPMENT AREAS (What to Work On)
2-3 specific moments, same SBI format, with alternative approach:
[Gap Label] (Dimension: [X], Score impact: -[N])
Situation: At [timestamp/context], when [what was happening]... Behavior: You [specific action: quote the transcript] Impact: The customer [response that signals the gap]
Alternative approach: Instead of "[what you said]", try: "[Specific rewritten language the SE could have used]"
Section 3: LEARNING POINTS
2-3 transferable principles (not call-specific, applicable to future calls):
[Learning Point Title] What happened: [One sentence from this call] The principle: [Why this pattern works or doesn't: transferable to other calls] Where this applies: [Types of calls or moments where this matters most]
Section 4: NEXT-TIME ACTIONS
Maximum 3 behavioral commitments:
Action 1: [Label] On your next [call type], when [specific trigger], do [specific behavior]. How to practice: [One rehearsal suggestion]
Section 5: SELF-REFLECTION PROMPT
Before discussing this report: What moment on this call are you least satisfied with, and what would you do differently?
Scoring Rules
-
Every score must cite transcript evidence. "Discovery was weak" is not scoring. "SE asked zero questions about business impact in the first 15 minutes, jumping directly to 'let me show you our dashboard'" is scoring.
-
Binary checks first, then quality. For each dimension, first check: did the behavior occur at all? (Binary.) Then: how well was it executed? (Quality scale.)
-
Calibrate to call type. A demo with 55% SE talk time scores differently than a discovery call with 55% SE talk time. The demo might be fine; the discovery isn't.
-
Positive before constructive. Strengths section always comes first. This builds trust in the report's fairness before presenting development areas.
-
One primary focus. The "Suggested focus for next call" in the footer should name ONE dimension. Trying to fix everything at once fixes nothing.
-
Quote the transcript. Every coaching observation references specific words from the call. "You handled that objection well" is worthless. "When the CTO said 'we're concerned about vendor lock-in,' you responded with 'that's a fair concern, let me show you our open standards approach', that acknowledgment before response is what kept the conversation productive" is coaching.
What This Skill Cannot Assess (Transparency)
Flag these limitations in every report:
- Demo quality, screen share content, UI navigation, demo environment quality
- Vocal delivery, tone, pace, confidence (transcript only captures words)
- Body language, engagement signals visible on video but not in text
- Post-call execution, whether follow-up was sent, CRM updated, etc.
- Pre-call preparation quality, whether research was done beforehand
Note: "This analysis scores what was SAID on the call. Demo execution quality, vocal delivery, and post-call follow-through require separate evaluation."
Anti-Patterns (What This Skill Must NOT Do)
-
Never score without evidence. If a dimension can't be assessed from the transcript (e.g., no objections occurred, so objection handling is untestable), mark it N/A and adjust weights proportionally. Do not guess.
-
Never fabricate positive feedback. If the call was weak, say so with specificity and compassion. Inflated scores erode trust in the tool.
-
Never give more than 3 development areas. Research shows more than 3 creates defensiveness and diffuses focus. Pick the highest-impact 2-3.
-
Never use adjectives without evidence. "Good job on discovery" fails. "Asked 4 open-ended questions about business impact before presenting" passes.
-
Never score the AE. This tool coaches the SE. AE behavior may be noted as context but is not scored.
Wiki Update Loop (Phase 3)
Per rules/wiki.md "Output-to-Wiki Loop" section, after this skill saves its
output and before Phase 3 completes, scan the output for new facts and propose
wiki updates.
Account-status guard: Only run if the cached effective_status from
conversation-contract.md step 0.75 is active. For test/archived accounts
or --test flag, skip the loop entirely; write a zero-metrics line to
<state-tree>/.wiki-state/loop-metrics.jsonl and return.
Dual-mode guard: Only run if <state-tree>/<company>/_state.md exists
(stateful mode). In stateless mode, skip the loop entirely, no account context
to bind facts to.
Source provenance: This skill's primary source type is human-verbal
per the Skill-to-Source-Type Mapping table in rules/wiki.md. se-coaching-analysis
ingests call transcripts, so who is determined per-fact by the speaker label
in the transcript (e.g., "Customer CISO", "AE", "SE"). Multiple speakers on
the same call produce distinct who_key entries. independent: true per
unique external speaker; the SE being coached and other Aegis participants
map to independent: false (operator-side observers).
Fact extraction: Scan the saved output for new quantitative claims, named
entities, relationships, and corrections. Skip recommendations, hypotheticals,
and Aegis/Nimbus product facts (those belong in references, not account wiki).
Skip the SE's own performance scoring, that is coaching feedback, not account
intelligence. For each extracted fact, populate
source: {type, who, who_key, independent} and materiality: HIGH | LOW
per the Materiality Decision Rule.
Queue (silent): Append the proposed updates to
<state-tree>/.wiki-state/pending-syncs.jsonl. The Wiki Sync Scanner cron
(per rules/cron-freshness.md, optional manual setup) drains the queue, OR
the user runs /wiki-sync <company> manually. No user prompt; no Phase 2.5
exchange.
Exemption flags: --no-wiki skips this loop entirely. --wiki-review
restores interactive A/B/C review of proposed updates.
Loop metrics: Write one line to <state-tree>/.wiki-state/loop-metrics.jsonl
on every run (active OR non-active) so /self-improve can see the skill ran.