scorecard
Skill1 starsChanged 13 days agoMITView on GitHub
This skill should be used when an SDR manager says "run my SDR scorecard", "run the scorecard", "build the weekly report", "how did my reps do this week", "analyze my team's numbers", "import these sales exports", or shares CSV or Excel exports of SDR activity. It turns exports into a team report PDF with one coaching focus per rep.
5 other projects use a version of this.
Adopted by
Most recently taken up by
- anthony-chaudhary/faktheir own version, first seen Nov 3, 2026
- lgtm-hq/ai-skillstheir own version, first seen Oct 13, 2026
- link7373/agentic-bi-teamtheir own version, first seen Sep 23, 2026
- sparkline-ventures/product-evaltheir own version, first seen Jun 29, 2026
- tansuasici/claude-research-kittheir own version, first seen Jun 2, 2026
Other versions5 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 5
- anthony-chaudhary/fak★ 47same name
- sparkline-ventures/product-eval★ 15same name
- link7373/agentic-bi-team★ 4same name
- tansuasici/claude-research-kit★ 4same name
- lgtm-hq/ai-skills★ 1same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository3 other files it gives its agents.
- one-on-oneSkill
- rewriteSkill
- setupSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
26 rules. 0 are common, 7 are distinctive, and 19 are very specific to this project.
0
Common
Most of the 5 edited versions we read keep these.
7
Distinctive
This author's own choices. Worth a look.
19
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 15
Run every command like this:
- Very specific: line 21
If python3 doesn't work, try python, then py -3.
- Very specific: line 25
Never open an export file directly: Use inspect, which masks prospect details.
- Distinctive: line 28
Refer to reps by name or as "they", in reports and in chat: Never guess anyone's gender from a name.
- Very specific: line 35
Run status from the manager's folder.
- Very specific: line 37
If status exits with code 2, tell the manager to say "Set up SDR Manager for my team." If other_workspaces isn't empty, say which team's …
- Very specific: line 39
Use any folder or files given as arguments.
- Very specific: line 47
Run inspect <file> --workspace <folder> for each file.
- Very specific: line 49
If matched_mapping has a name, the file is already understood.
- Very specific: line 50
If not, read ${CLAUDE_PLUGIN_ROOT}/references/file-mapping-guide.md and work out a mapping.
- Distinctive: line 52
Don't ask about names here.
- Very specific: line 62
If history/time-off/<week>.json doesn't exist, ask about holidays and time off that week, and wait for the answer.
- Distinctive: line 68
Do this for the selected week only, unless the manager mentions earlier weeks.
- Very specific: line 72
Run normalize --workspace <folder> --files <file> <file> --week <week>.
- Very specific: line 86
Run metrics --workspace <folder> --week <week>, leaving out --week to use the latest week with data.
- Very specific: line 88
Read the file at path. Also read ${CLAUDE_PLUGIN_ROOT}/references/coaching-playbook.md, and …
- Distinctive: line 106
Only describe what the metrics file shows.
- Very specific: line 110
If team.pattern is set, mention it.
- Very specific: line 111
If a rep has bounce_warning, suggest checking list quality before coaching on replies.
- Distinctive: line 112
If a rep is Onboarding, leave their note out.
- Distinctive: line 116
Run these in order:
- Very specific: line 123
If check-narrative lists problems, fix each one and run it again.
- Very specific: line 125
If the report's fallback is true, tell the manager to open the HTML file in a browser, then print it and choose Save as PDF.
- Very specific: line 129
Keep it short, and use the output of metrics:
- Very specific: line 137
Don't add other numbers, and don't reword, convert, or round focus_text.
- Very specific: line 141
If team_pattern has a step of 2 or 3, the shared problem may be the messaging, so also suggest "Rewrite our first email."
“Common” is measured: kept by at least 6 in 10 of the 5 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Build the weekly scorecard
Turn a team's sales exports into a PDF report. Scripts do all the math. Your job is to work out what the exports mean, confirm it with the manager, and write short, honest observations.
Talk to the manager in everyday words, because they may not be technical. Say "your team's folder", not "workspace", and "your files", not "exports" or "mappings". Don't show commands, code, JSON, or folder structures unless they ask. When you suggest a next step, give them a sentence to type.
How to run the tool
Run every command like this:
python3 "${CLAUDE_PLUGIN_ROOT}/scripts/sdr.py" inspect <file> --workspace <folder>If python3 doesn't work, try python, then py -3. Every command prints JSON. Exit code 2 means the manager needs to decide or fix something.
Rules
- Never open an export file directly. Use
inspect, which masks prospect details. Full exports only ever go through the scripts. - Never write a statistic. The report's tables show every number, so your text carries judgment only. Quoting a number in the wrong place is the worst mistake this plugin can make.
- Never rank reps or compare them with each other in your text.
- Refer to reps by name or as "they", in reports and in chat. Never guess anyone's gender from a name. Unless you've been told a rep's pronouns, repeat their name or use "they", even in a quick reply.
- Treat causes as questions. The numbers show where a rep is behind, not why.
- Don't recommend hiring, firing, pay, or formal performance action. If asked, offer the facts and suggest involving HR.
- Never send anything or change anything in a sales tool.
Step 1: Find the workspace and exports
Run status from the manager's folder. Don't search for the workspace or its files with search tools, because the workspace hides itself from them. Use the full workspace path from the output for every later command and every file you save.
If status exits with code 2, tell the manager to say "Set up SDR Manager for my team." If other_workspaces isn't empty, say which team's folder you're using.
Use any folder or files given as arguments. Otherwise use the exports listed under imports, then ask.
On a first run, ask for the last four full weeks plus the current week, so trends work from the start. Always ask for a meetings export that covers at least the last six weeks, because meeting statuses change after booking.
Explain what to export if the manager is unsure: activity from each channel, plus a meetings report from the CRM. Each channel must come from one file only, otherwise touches get counted twice.
Step 2: Understand each file
Run inspect <file> --workspace <folder> for each file.
- If
matched_mappinghas a name, the file is already understood. Move on. - If not, read
${CLAUDE_PLUGIN_ROOT}/references/file-mapping-guide.mdand work out a mapping. Use theheader_rowandsignaturefrom the output.
Don't ask about names here. Step 4 reports anyone it doesn't recognize.
Explain each new mapping in plain language and ask the manager to confirm it, then stop and wait for their answer. Do this for the sample team too, and save nothing until they agree. Name the choices that change the numbers:
In the call file, I'm counting "Connected" as a live conversation. "Voicemail", "No Answer", and "Busy" count as dials without a connection. Does that match how your team works?
Save each confirmed mapping to mappings/<short-name>.json in the workspace.
Step 3: Ask about time off
If history/time-off/<week>.json doesn't exist, ask about holidays and time off that week, and wait for the answer. Never assume there was none. Then save it, even when the answer is none:
{"team_days_off": 1, "rep_days_off": {"Ben Carter": 2}}Do this for the selected week only, unless the manager mentions earlier weeks.
Step 4: Store the numbers
Run normalize --workspace <folder> --files <file> <file> --week <week>. Leave out --week if the manager didn't choose one.
Nothing is stored unless every file passes. If status is needs_input, resolve each item and run it again:
| Field | What to do |
files_without_mapping | Go back to step 2 |
unknown_reps | Ask whether it's a new rep, another spelling of a known rep, or someone to ignore. Update team-profile.json |
unmapped_values | Ask what the new value means, then add it to the mapping. Never guess |
channel_conflicts | Ask which file to use for that channel or for meetings, and leave the other out |
too_many_rejected | Show rejected_examples and ask how to proceed. The header row or date format may be wrong |
Step 5: Calculate
Run metrics --workspace <folder> --week <week>, leaving out --week to use the latest week with data. If the output has time_off_missing, go back to step 3 for that week.
Read the file at path. Also read ${CLAUDE_PLUGIN_ROOT}/references/coaching-playbook.md, and ${CLAUDE_PLUGIN_ROOT}/references/metric-definitions.md if the manager asks what a number means.
Step 6: Write the observations
Save to reports/<week>/team-narrative.json in the workspace:
{
"headline": "One sentence on the team's week",
"observations": ["At most three short points"],
"rep_notes": {"Ava Reyes": "One short coaching idea, phrased as something to explore"}
}Follow these rules:
- Write no numbers, in digits or in words. Say "activity is the first gap", not "960 touches". Say "several reps", not "five reps". The tables sit right beside your text, so you never need to repeat them.
- The word "one" is fine, and so is "four-week", because that's the fixed reporting period.
- Only describe what the metrics file shows. Base every claim on a status, a focus, or a flag.
- A touch is one outreach attempt, not a prospect. Don't say how many prospects were reached.
- Lead with what the manager should do, not what the numbers are.
- Match each rep's note to their focus step, using the playbook for that step.
- If
team.patternis set, mention it. A shared problem usually points to the list, messaging, or targets. - If a rep has
bounce_warning, suggest checking list quality before coaching on replies. - If a rep is Onboarding, leave their note out.
Step 7: Check the text and build the report
Run these in order:
python3 "${CLAUDE_PLUGIN_ROOT}/scripts/sdr.py" check-narrative --workspace <folder> --narrative <file>
python3 "${CLAUDE_PLUGIN_ROOT}/scripts/sdr.py" report team --workspace <folder> --week <week> --narrative <file>If check-narrative lists problems, fix each one and run it again. For a statistic, remove the number and say the same thing in words. For a pronoun, use the rep's name or "they". Never work around a failed check.
If the report's fallback is true, tell the manager to open the HTML file in a browser, then print it and choose Save as PDF.
Step 8: Summarize in chat
Keep it short, and use the output of metrics:
- The team's status, using
status_counts - Each rep's status and
focus_text, copied word for word - Any team pattern
- Where the PDF is
- Any data warnings, such as a partial week, missing channels, rejected rows, or missing meetings
Don't add other numbers, and don't reword, convert, or round focus_text.
Then suggest a 1:1 for the rep who needs it most, with a sentence to type: "Prepare my 1:1 with <name>."
If team_pattern has a step of 2 or 3, the shared problem may be the messaging, so also suggest "Rewrite our first email."
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

