SVG Dashboard
SCStelz/security-investigator
A skill your agent uses when asked to generate SVG data visualization dashboards from investigation data or skill reports.
Generates a polished, self-contained HTML executive report or dashboard from any data source — SharePoint lists, CSV exports, or a user description.
$ npx skills add pnp/sharepoint-skills --skill exec-report -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install pnp/sharepoint-skills exec-report --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/pnp/sharepoint-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/Skills/exec-report/exec-report .claude/skills/exec-report && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "exec-report" agent skill from https://github.com/pnp/sharepoint-skills/tree/main/Skills/exec-report/exec-report into .claude/skills/exec-report/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "exec-report", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/pnp/sharepoint-skills/tree/main/Skills/exec-report/exec-reportType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add pnp/sharepoint-skills --skill exec-report -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install pnp/sharepoint-skills exec-report --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/pnp/sharepoint-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/Skills/exec-report/exec-report .agents/skills/exec-report && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "exec-report" agent skill from https://github.com/pnp/sharepoint-skills/tree/main/Skills/exec-report/exec-report into .agents/skills/exec-report/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "exec-report", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add pnp/sharepoint-skills --skill exec-report -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install pnp/sharepoint-skills exec-report --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/pnp/sharepoint-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/Skills/exec-report/exec-report .cursor/skills/exec-report && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "exec-report" agent skill from https://github.com/pnp/sharepoint-skills/tree/main/Skills/exec-report/exec-report into .cursor/skills/exec-report/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "exec-report", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/pnp/sharepoint-skills.git --path Skills/exec-report/exec-report--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add pnp/sharepoint-skills --skill exec-report -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install pnp/sharepoint-skills exec-report --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/pnp/sharepoint-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/Skills/exec-report/exec-report .gemini/skills/exec-report && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "exec-report" agent skill from https://github.com/pnp/sharepoint-skills/tree/main/Skills/exec-report/exec-report into .gemini/skills/exec-report/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "exec-report", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install pnp/sharepoint-skills exec-reportInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add pnp/sharepoint-skills --skill exec-report -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/pnp/sharepoint-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/Skills/exec-report/exec-report .github/skills/exec-report && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "exec-report" agent skill from https://github.com/pnp/sharepoint-skills/tree/main/Skills/exec-report/exec-report into .github/skills/exec-report/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "exec-report", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add pnp/sharepoint-skills --skill exec-report -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install pnp/sharepoint-skills exec-report --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/pnp/sharepoint-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/Skills/exec-report/exec-report .opencode/skills/exec-report && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "exec-report" agent skill from https://github.com/pnp/sharepoint-skills/tree/main/Skills/exec-report/exec-report into .opencode/skills/exec-report/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "exec-report", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
exec-reportGenerates a polished, self-contained HTML executive report or dashboard from any data source — SharePoint lists, CSV exports, or a user description.
Exec Report is an agent skill from pnp/sharepoint-skills. 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 —…
Its SKILL.md is about 2k tokens, which your agent loads only when the skill is triggered. The skill folder holds 5 other files, including reference files and assets (for example `references/components.md` and `references/design-system.md`).
It sits in Documents & Office, covering Cloud office suites, OKRs and executive reporting and Design systems. It works with Microsoft SharePoint. The repository describes itself as: Skills for Copilot in SharePoint. The licence is MIT.
5 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit aa9eb14. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md.
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Exec Report loads about 2k tokens when it runs, and up to ~8.4k if it reads all its reference files. Until then it costs about 144 tokens; SKILL.md has 1,004 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from pnp/sharepoint-skills at commit aa9eb14, republished under its MIT licence (© pnp). 1,004 words, ~1,989 tokens.
.claude/skills/exec-report/SKILL.md (or your agent's skills folder). This skill also uses 3 other files; get the full folder from GitHub.Generates a complete, self-contained HTML report 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/report-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:
list_items on the relevant lists. Read all needed columns before proceeding.If the data or intent is not fully clear, ask these questions in a single message — not one at a time:
If the user's prompt already signals narrative intent (e.g., "the headline is the gap," "lead with urgency," "show the wins"), skip question 3 — you already have the answer.
Confirm your understanding before building the JSON.
The component sequence IS the story. Read references/components.md for the full component catalog, props schemas, and HTML patterns.
Always true:
hero — sets the company, label, and hero sentence.highlights — narrative "so what" belongs last.trend, one table, and one highlights per report.Narrative intent drives the block order:
| Intent | Typical sequence | Hero sentence shape |
|---|---|---|
| Achievement | hero → kpi-row → trend → bar-list → compare → status-grid → highlights | "We closed $X, up Y% from last quarter." |
| Problem | hero → status-grid → compare → table → bar-list → highlights | "We enter Q3 with X open roles and a gap in Y." |
| Status | hero → status-grid → kpi-row → compare → bar-list → highlights | "Here's where all six workstreams stand heading into Q3." |
The hero sentence signals intent to the reader. Achievement heroes lead with a number and a direction. Problem heroes lead with a situation. Status heroes lead with a scope statement.
Component selection guide:
| Data shape | Component |
|---|---|
| 2–4 headline numbers worth celebrating or tracking | kpi-row |
| Values over time (3+ periods) | trend |
| Category breakdown with relative sizes | bar-list |
| Structured numeric comparison (QoQ, YoY, plan vs. actual) | compare |
| Detailed row data (5+ items with 3+ fields) | table |
| Health or urgency status of multiple items | status-grid |
| Narrative insights: bright spots, risks, actions | highlights |
Hard rules:
kpi-row can show it larger.table for 2–4 numbers — use kpi-row.kpi-row is not mandatory — omit it when the story is problem- or urgency-forward and metrics are supporting context, not the lead.Construct the JSON object. Top-level structure:
report object (document metadata):
| Field | Required | Description |
|---|---|---|
palette | yes | warm-paper, deep-ink, clean-white, or slate |
footer_l | no | Left footer text, e.g. "Generated May 28, 2026" |
footer_r | no | Right footer text, e.g. "47 deals analyzed" |
blocks array — ordered list of content blocks. Each block: type string + props object. See references/components.md for every component's full props schema.
Run every check before rendering. Fix any failure before proceeding.
Document level:
report.palette is one of: warm-paper, deep-ink, clean-white, slateblocks array has at least one entrytype is herotype is highlightsPer block:
type is one of: hero, kpi-row, trend, bar-list, compare, table, status-grid, highlightsData integrity:
kpi-row items count is 2–4bar-list shares: largest item = 1.0, all others ≤ 1.0trend data and labels arrays have the same length (3–12)trend prior_data (if present) same length as datacompare rows have dir set to "up" or "down" on every rowtable headers count matches every row's cell counthighlights items count is 3–5assets/report-template.html.{{REPORT_TITLE}} in <title> with a concise page title (company + report label).{{PALETTE_CLASS}} on <body> with palette- + the palette name (e.g. palette-warm-paper).hero block HTML (.rpt-header + .hero) and replace {{HERO}}.{{BLOCKS}}.{{FOOTER_L}} and {{FOOTER_R}} with footer text (or empty strings).{{INLINE_SCRIPT}} content. Include:bar-list blocks are present)TREND_DATA array (if a trend block is present)If the site context specifies a folder for report output, save the file there after delivering it.
<script src> tags. All JavaScript must be inline.© pnp, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 3 other files (references, assets) in Skills/exec-report/exec-report of pnp/sharepoint-skills.
Open the folder on GitHubat commit aa9eb14
Exec Report next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Exec Report this skillpnp/sharepoint-skills | 131 | — | ~2k | Automated safety check: Pass | MIT | |
| SVG DashboardSCStelz/security-investigator | 249 | — | ~5.7k | Automated safety check: Pass | MIT | |
| Data ReportZJU-REAL/Easel | 3.2k | — | ~479 | Automated safety check: Pass | Apache-2.0 | |
| Flowai Live Dashboard Templatenexu-io/open-design | 100k | — | ~865 | Automated safety check: Pass | Apache-2.0 | |
| HTML DesignNimaChu/html-design | 101 | — | ~2.7k | Automated safety check: Pass | None | |
| Colleague DistillationZhixiangLuo/10xProductivity | 478 | — | ~2.1k | Automated safety check: Notes | MIT |
SCStelz/security-investigator
A skill your agent uses when asked to generate SVG data visualization dashboards from investigation data or skill reports.
ZJU-REAL/Easel
把 CSV、Excel 或 JSON 数据生成包含 KPI、图表和洞察的完整可视化报告页。当用户说“数据报告、CSV/Excel 转报告、做 KPI 看板、生成可视化报告页”时使用。单张图表用 chart-visualization;信息图或 GIF 动画图表用 infographic。
nexu-io/open-design
Team-management dashboard skill in the FlowAI aesthetic — three tabs (Team Members, Team Details, Activity Log), KPI stat row, member table, role distribution bar chart, online presence and activity…
NimaChu/html-design
Create, redesign, repair, validate, preview, and package lightweight standalone HTML deliverables.
ZhixiangLuo/10xProductivity
Distill a colleague into a reusable AI skill (work + persona) using tool connections — Slack, Slack AI, Jira, GHE, Bitbucket, Confluence, SharePoint, Teams, Outlook, Notion, Linear, Google Docs, and…
pnp/cli-microsoft365-mcp-server
Use CLI for Microsoft 365 to manage Microsoft 365 tenants from the terminal.
pnp/sharepoint-skills
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…
pnp/sharepoint-skills
Analyze the current SharePoint document library in read-only mode and produce a structured summary of files, folders, file types, recent activity, naming issues, and organization recommendations.
pnp/sharepoint-skills
Audits SharePoint pages, news posts, and hyperlink fields for broken or risky links and saves a self-contained HTML link-health report to the site.
pnp/sharepoint-skills
Analyze selected construction images, create missing object metadata columns, and write concise visual metadata back to SharePoint columns using explicit image-analysis, list-schema, list-update…
pnp/sharepoint-skills
Renders a polished, self-contained HTML briefing from any data source — SharePoint lists, uploaded documents, or a verbal description.
pnp/sharepoint-skills
Classifies files in a SharePoint document library by reading their content and matching them to known content types (Contracts, Invoices, Purchase Orders).
Works with
Categories
Generates a polished, self-contained HTML executive report or dashboard from any data source — SharePoint lists, CSV exports, or a user description. Exec Report is an agent skill from pnp/sharepoint-skills. Generates a polished, self-contained HTML executive report or dashboard from any data source — SharePoint lists, CSV exports, or a user description.
Exec Report fits situations like: asked to build an exec report; status dashboard; project summary; business review.
Run `npx skills add pnp/sharepoint-skills --skill exec-report -a claude-code`. Or copy the skill folder (Skills/exec-report/exec-report in pnp/sharepoint-skills) into .claude/skills/exec-report in your project. Claude Code loads it when a task matches its description.
Run `npx skills add pnp/sharepoint-skills --skill exec-report -a codex`. Or copy the skill folder (Skills/exec-report/exec-report in pnp/sharepoint-skills) into .agents/skills/exec-report in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add pnp/sharepoint-skills --skill exec-report -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/exec-report, .gemini/skills/exec-report, .github/skills/exec-report and .opencode/skills/exec-report in your project.
SKILL.md names no scripts, command-line tools or credentials: Exec Report is instructions for the agent only.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Exec Report is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2k tokens (SKILL.md is roughly 8k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 6.4k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Exec Report: SVG Dashboard (SCStelz/security-investigator, 249 stars), Data Report (ZJU-REAL/Easel, 3.2k stars), Flowai Live Dashboard Template (nexu-io/open-design, 100k stars) and HTML Design (NimaChu/html-design, 101 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
pnp (a GitHub organization) maintains it in pnp/sharepoint-skills, which has 131 GitHub stars. The repository holds 51 skills in this directory. The repository was last updated on October 6, 2026.
Source: pnp/sharepoint-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.