Skills/operations/scorecard-matrix/SKILL.md
Generates a polished, self-contained HTML heatmap scorecard — a weighted comparison matrix where entities (rows) are scored across dimensions (columns), with computed totals, rank badges, and a winner highlight. Use when asked to build a scorecard, comparison matrix, decision matrix, vendor evaluation, tool assessment, candidate scoring grid, competitive analysis, site-readiness matrix, or any weighted multi-criteria ranking. Interviews the user if entities or criteria are missing, constructs a validated JSON document, then renders it into a sandbox-safe HTML file using the component library. No external dependencies — output runs inside a SharePoint sandboxed iframe.
npx skillsauth add zrosenfield/sharepoint-ai-skills scorecard-matrixInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Generates a complete, self-contained HTML scorecard by (1) interviewing the user or parsing their data, (2) constructing and validating a JSON document, then (3) rendering that JSON into HTML using assets/scorecard-matrix-template.html. The JSON is the authoritative source of truth; the HTML is fully determined by it.
Check what the user has already provided before asking anything:
If the data or intent is not fully clear, ask these questions in a single message — not one at a time:
Confirm your understanding of the full matrix before building the JSON.
Weights must sum to exactly 1.0. Apply these rules:
w_i = raw_i / sum(raw).w_i = ratio_i / sum(ratios).w_i = 1 / N where N = number of dimensions.Always document the normalized weights in the JSON and show the user before rendering.
Default to 1–5 unless:
When prompting the user to rate cells manually, describe each anchor:
Construct the JSON object. Read references/components.md for the full schema and computation rules.
Top-level structure:
{
"report": {
"title": "CRM Platform Evaluation",
"subtitle": "Q2 2026 · Vendor Selection",
"context": "Evaluating five CRM platforms for the SMB sales team...",
"palette": "warm-paper",
"footer": "Generated May 28, 2026 · 5 vendors · 6 dimensions"
},
"scale": 5,
"dimensions": [...],
"entities": [...]
}
Computed fields (the skill must calculate these before rendering):
weighted_total per entity = sum(score_d × weight_d) for all dimensions drank per entity = 1-based position sorted by weighted_total descending; ties share the lower rank numbercolumn_avg per dimension = average score across all entities (round to 1 decimal)Run every check before rendering. Fix any failure before proceeding.
Document level:
report.palette is one of: warm-paper, deep-ink, clean-white, slatescale is 5 or 10dimensions array has 2–10 itemsentities array has 2–10 itemsweight values are decimals; they sum to 1.0 (± 0.005 tolerance for rounding)ididPer entity:
scores object has a key for every dimension idscore value is a number in range [1, scale]weighted_total has been computed and rounded to 2 decimal placesrank has been assigned (1 = best)Per dimension:
column_avg has been computedweight is a number in (0, 1]assets/scorecard-matrix-template.html.{{REPORT_TITLE}} in <title> with a concise page title.{{PALETTE_CLASS}} on <body> with palette- + the palette name..rpt-header + .sc-title-block) and replace {{HEADER}}.{{MATRIX}}. See references/components.md for the matrix structure, heatmap cell style computation, rank badge HTML, and averages row.{{RANKINGS}}.{{WEIGHTS_NOTE}}.{{FOOTER}} with the footer text.For each score cell, compute a background color based on the normalized score. Read references/design-system.md for the exact hex values per palette tier. The formula:
t = (score - 1) / (scale - 1) // normalized 0.0–1.0
tier: t < 0.35 → low (cool tint toward negative)
t ≥ 0.65 → high (warm tint toward accent)
else → mid (surface, neutral)
Emit the computed hex directly as an inline style="background:{{HEX}}" on each score cell. No JS is needed — the page is fully readable with scripts disabled.
<script src> tags. All JavaScript must be inline.testing
--- name: review-council description: Convene a council of expert AI personas to review, stress-test, and improve any document, idea, proposal, or plan. Use this skill whenever the user asks to "review," "stress-test," "get feedback on," "critique," "poke holes in," "red team," "evaluate," "council," "panel review," or "get perspectives on" any content — whether it's an uploaded Word doc, Excel spreadsheet, PowerPoint deck, PDF, or just a raw idea typed into chat. Also trigger on phrases like "w
development
Generates a polished, self-contained HTML roadmap or milestone timeline from any project data — SharePoint lists, pasted tables, or a verbal description. Use when asked to build a project roadmap, product roadmap, migration timeline, release plan, onboarding sequence, run-of-show, phase plan, or any visual schedule showing items over time. Interviews the user if data is incomplete, constructs a validated JSON document, then renders it into a single sandbox-safe HTML file. Chooses between two layouts automatically: horizontal roadmap with swimlanes (for phase-range data) or vertical milestone list (for point-in-time events). No external dependencies — output runs inside a SharePoint sandboxed iframe.
development
Generates a polished, self-contained HTML executive report or dashboard from any data source — SharePoint lists, CSV exports, or a user description. Use when asked to build an exec report, one-pager, summary page, status dashboard, project summary, business review, or any single-page visual summary of data. Interviews the user if data is incomplete, constructs a validated JSON document block by block, then renders it into a single sandbox-safe HTML file using the component library. No external dependencies — output runs inside a SharePoint sandboxed iframe.
development
Renders a polished, self-contained HTML briefing from any data source — SharePoint lists, uploaded documents, or a verbal description. Use when asked to build a competitor landscape, account brief, candidate summary, site inventory, board bio, speaker profile, partner overview, or any grid of profile cards or single-subject one-pager. Interviews the user if data is incomplete, constructs a validated JSON document, then renders it into a sandbox-safe HTML file using grid mode (2–8 subjects as responsive cards) or one-pager mode (1 subject as a rich briefing). No external dependencies — output runs inside a SharePoint sandboxed iframe.