agentleFS
mangollcmangollc/claude-SDR-Manager-plugin/skills/scorecard/SKILL.md

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

  • Other versions5 projects use a version of this.

    Word for word · 0

    None found.

    Edited · 0

    None found.

    Wrote their own version · 5

    1. anthony-chaudhary/fak★ 47same name
    2. sparkline-ventures/product-eval★ 15same name
    3. link7373/agentic-bi-team★ 4same name
    4. tansuasici/claude-research-kit★ 4same name
    5. 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.

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
  1. Distinctive:

    Run every command like this:

    line 15
  2. Very specific:

    If python3 doesn't work, try python, then py -3.

    line 21
  3. Very specific:

    Never open an export file directly: Use inspect, which masks prospect details.

    line 25
  4. Distinctive:

    Refer to reps by name or as "they", in reports and in chat: Never guess anyone's gender from a name.

    line 28
  5. Very specific:

    Run status from the manager's folder.

    line 35
  6. Very specific:

    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 …

    line 37
  7. Very specific:

    Use any folder or files given as arguments.

    line 39
  8. Very specific:

    Run inspect <file> --workspace <folder> for each file.

    line 47
  9. Very specific:

    If matched_mapping has a name, the file is already understood.

    line 49
  10. Very specific:

    If not, read ${CLAUDE_PLUGIN_ROOT}/references/file-mapping-guide.md and work out a mapping.

    line 50
  11. Distinctive:

    Don't ask about names here.

    line 52
  12. Very specific:

    If history/time-off/<week>.json doesn't exist, ask about holidays and time off that week, and wait for the answer.

    line 62
  13. Distinctive:

    Do this for the selected week only, unless the manager mentions earlier weeks.

    line 68
  14. Very specific:

    Run normalize --workspace <folder> --files <file> <file> --week <week>.

    line 72
  15. Very specific:

    Run metrics --workspace <folder> --week <week>, leaving out --week to use the latest week with data.

    line 86
  16. Very specific:

    Read the file at path. Also read ${CLAUDE_PLUGIN_ROOT}/references/coaching-playbook.md, and …

    line 88
  17. Distinctive:

    Only describe what the metrics file shows.

    line 106
  18. Very specific:

    If team.pattern is set, mention it.

    line 110
  19. Very specific:

    If a rep has bounce_warning, suggest checking list quality before coaching on replies.

    line 111
  20. Distinctive:

    If a rep is Onboarding, leave their note out.

    line 112
  21. Distinctive:

    Run these in order:

    line 116
  22. Very specific:

    If check-narrative lists problems, fix each one and run it again.

    line 123
  23. Very specific:

    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.

    line 125
  24. Very specific:

    Keep it short, and use the output of metrics:

    line 129
  25. Very specific:

    Don't add other numbers, and don't reword, convert, or round focus_text.

    line 137
  26. Very specific:

    If team_pattern has a step of 2 or 3, the shared problem may be the messaging, so also suggest "Rewrite our first email."

    line 141

“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.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

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_mapping has a name, the file is already understood. Move on.
  • If not, read ${CLAUDE_PLUGIN_ROOT}/references/file-mapping-guide.md and work out a mapping. Use the header_row and signature from 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:

FieldWhat to do
files_without_mappingGo back to step 2
unknown_repsAsk whether it's a new rep, another spelling of a known rep, or someone to ignore. Update team-profile.json
unmapped_valuesAsk what the new value means, then add it to the mapping. Never guess
channel_conflictsAsk which file to use for that channel or for meetings, and leave the other out
too_many_rejectedShow 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.pattern is 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:

  1. The team's status, using status_counts
  2. Each rep's status and focus_text, copied word for word
  3. Any team pattern
  4. Where the PDF is
  5. 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."

Download now (ZIP)

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
What did you use it for? e.g. Reviewing pull requests in a Rails app

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.