harvey-ball-scorecard-deck
Paste into Claude Code, Claude.ai, the desktop app, or the browser extension — ⌘/Ctrl+V. ✓ Copied. Switch to Claude and paste — ⌘/Ctrl+V.
Harvey Ball Scorecard Deck
You convert an RBA Harvey Ball Excel scorecard — the weighted vendor/platform comparison spreadsheet RBA uses for platform selection — into a polished, client-facing PowerPoint deck that matches the RBA design system. The deck reads the raw scores and renders an executive podium summary, a full capability matrix with Harvey-ball icons, a total-cost-of-ownership table, and auto-paginated question-level detail slides — recommendation and rankings derived automatically from the data.
This is a generation skill: it runs a Node script (scripts/generate.js) that parses the workbook with xlsx, builds the deck with pptxgenjs, and renders Harvey-ball / gradient artwork as inline PNGs with sharp. Your job is to locate the inputs, confirm the sheet, run the generator, and hand back a branded .pptx.
When this skill applies
- A
.xlsxHarvey Ball scorecard is present and the user wants a PowerPoint / deck / slides / presentation from it - Triggers: "make a PPTX from this scorecard", "turn this Excel into a deck", "create a Harvey Ball presentation", "generate slides from the Harvey Ball template"
- The evaluation is a vendor/platform selection (CMS, DXP, SaaS vs. PaaS, MVP feature prioritization)
Skip when there is no Harvey Ball scorecard, when the user wants the scorecard itself built (this skill consumes one, it doesn't author one), or when they want a generic deck unrelated to vendor scoring.
Inputs
| Input | Required | Description | Example |
|---|---|---|---|
| Scorecard path | Yes | Full path to the uploaded .xlsx |
/Downloads/CMS_Platform_Harvey_Ball.xlsx |
--sheet |
Optional | Sheet to parse (partial match OK; omit → first sheet) | "MVP Scorecard" |
--out |
Optional | Output .pptx path (default: next to the input) |
/Downloads/Harvey_Ball_Assessment.pptx |
--client |
Optional | Client name for the footer / podium framing | "Contoso Health" |
| Logo path | Optional | RBA block logo JPG (default: bundled asset) | scripts/assets/rba-logo.jpg |
Common sheet names: SaaS Scorecard, PaaS Scorecard, Existing Feature Scorecard, MVP Scorecard. See reference.md § Expected Excel layout for the exact row/column contract the parser relies on.
Workflow
Step 1 — Locate the scorecard and confirm the sheet
Resolve the .xlsx path. If the workbook has multiple sheets, confirm (or infer from --sheet) which one to parse — the parser does a case-insensitive partial match and falls back to the first sheet. If the user named a platform-selection context (e.g. "SaaS vs PaaS"), pick the matching sheet.
Step 2 — Verify the workbook shape
Before generating, sanity-check the input against the contract in reference.md:
- Vendor names live in row 1, columns D onward.
- Sections are marked by
Section N: Titlerows; questions sit in column A with priority (A/B) in column C and per-vendor scores (0–4) in columns D+. Sub Total,% of Total, andHarvey Ball Assessment:rows close each section;Vendor Score Grand Total/% of Grandclose the workbook.Section 11: Pricingrows feed the TCO slide (Set up,Licens…,Support,Other,Year 1/5/10).
If the shape is off (no vendors in row 1, no Section N: markers), fix or flag it before running — the generator will otherwise throw a descriptive error (see Troubleshooting in reference.md).
Step 3 — Ensure dependencies
The generator needs pptxgenjs, xlsx, and sharp (declared in the bundled scripts/package.json). On first run in a fresh environment, install them in the skill's scripts/ folder:
node -v # confirm Node is available
cd skills/harvey-ball-scorecard-deck/scripts && npm install
(Re-running npm install is safe; it's a no-op once cached.)
One-time: the RBA block logo is a binary asset and is not bundled. Drop the official RBA block logo into scripts/assets/rba-logo.jpg before the first run (see scripts/assets/README.md). The deck still generates without it, but the logo will be absent.
Step 4 — Run the generator
node skills/harvey-ball-scorecard-deck/scripts/generate.js \
"<EXCEL_PATH>" \
"<SHEET_NAME>" \
"<OUTPUT_PATH>/Harvey_Ball_Assessment.pptx" \
"skills/harvey-ball-scorecard-deck/scripts/assets/rba-logo.jpg"
| Positional arg | Meaning |
|---|---|
| 1 | Excel path (required) |
| 2 | Sheet name (optional; omit or "" for first sheet) |
| 3 | Output .pptx path (optional; defaults next to input) |
| 4 | Logo JPG path (optional; defaults to bundled asset) |
The script logs the sheet read, the vendors and sections found, the auto-detected recommendation, and the total page count.
Step 5 — Set the client name
The footer renders Prepared for [Client Name]. If --client was supplied, set the CLIENT_NAME constant near the top of generate.js (or instruct the user to find-and-replace [Client Name] in PowerPoint after export). Do not invent a client name — leave the placeholder if none was given.
Step 6 — Deliver and explain
MANDATORY human-in-the-loop money gate. Before finalizing or outputting any fees, prices, payment terms, rates, or total dollar figures, you MUST present the proposed monetary figures to the user and STOP to require their explicit validation and approval. Do not silently produce final monetary commitments. Present the figures and the assumptions behind them, ask the user to confirm or correct them, and wait for explicit approval before producing the final output. If the user has not approved, do not finalize or write the money figures. (Applies to the TCO / Pricing slide totals carried from the source workbook into the client-facing deck.)
Hand back the .pptx path and summarize what the deck contains: the auto-ranked top-3 podium (recommendation = highest grand total), the capability matrix, the TCO table, and N auto-grouped detail pages. Note that rankings, podium strengths, and the recommendation are derived from the data — if they look wrong, the scores in the Excel are the source of truth.
What gets generated
| Slide | Content |
|---|---|
| 1 | Executive summary — top-3 podium cards (recommended #1 + finalists), snapshot stats, Harvey-ball legend |
| 2 | Capability matrix — every section × every vendor with Harvey-ball icons and per-section win highlighting |
| 3 | Total Cost of Ownership — setup, licensing, support, Year 1 / 5 / 10 totals |
| 4–N | Question-level detail pages — auto-grouped to avoid overflow, A/B priority badges, per-section Harvey-ball subtotals |
Layout is US-Letter landscape; branding is RBA navy/aqua with Montserrat (token values in reference.md). The recommendation, top-3 finalists, and podium strengths are all auto-derived from grand totals and per-section percentages.
Output format
Deliver the generated .pptx file at the resolved output path, then the short summary from Step 6. If Node isn't available in the session, say so explicitly and provide the exact command for the user to run locally rather than silently producing nothing.
Quality bar
A deck is shippable when:
- It runs clean — the generator parses the named sheet without errors and reports the expected vendor/section counts.
- The recommendation matches the data — the #1 podium card is the highest grand total; spot-check against the Excel.
- All sections appear in the matrix and across the detail pages (no section silently dropped).
- Harvey-ball levels read correctly — fuller balls = higher scores; the legend matches the icons.
- Pricing is present when the workbook has a
Section 11: Pricingblock (or the TCO slide shows—honestly, not garbage). - The footer client name is set (or left as the
[Client Name]placeholder when none was provided — never fabricated). - Branding is intact — navy/aqua palette, Montserrat, logo, rounded podium cards.
Reference and template files
reference.md— the exact Excel layout contract, Harvey-ball scoring scale, RBA brand tokens, the slide-build approach (pptxgenjs/xlsx/sharp), and a troubleshooting table.scripts/generate.js— the bundled generator (ships with this skill).scripts/package.jsondeclares its three deps (pptxgenjs,xlsx,sharp);reference.mddocuments its CLI and internals.scripts/assets/rba-logo.jpg— binary asset you must supply. The RBA block logo is not bundled (it's an image, not text). Drop the official RBA block logo intoscripts/assets/asrba-logo.jpgbefore the first run; seescripts/assets/README.md. Brand values live inresources/rba-design-system.md.
Brand & voice
Brand tokens (navy 1D366D, accent 0D8FA9, aqua 14BADB, Montserrat) are embedded in the generator, mirrored in reference.md, and documented in resources/rba-design-system.md. For any narrative copy added around the deck, follow RBA's voice — see resources/rba-brand-voice-system-prompt.md.
Technical details
- Source
- Standalone skill
- Author
- Kassie Gibbons
- Skill name
harvey-ball-scorecard-deck- Maturity
- experimental
- Security review
- No security review
- Argument hint
<path-to-scorecard.xlsx> [--sheet "MVP Scorecard"] [--out <output-path.pptx>] [--client "Client Name"]- Allowed tools
-
ReadWriteEditGlobBash(node *)
- File
skills/harvey-ball-scorecard-deck/SKILL.md
To use this skill in Claude Code, copy SKILL.md into your local .claude/skills/harvey-ball-scorecard-deck/ directory.
Standalone skills are not exposed via claude plugin install — that path is reserved for plugin bundles.
Edit this skill on GitHub — opens GitHub's web editor. No git knowledge needed.