Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add pnp/sharepoint-skills --skill library-cleanupgit clone --depth 1 https://github.com/pnp/sharepoint-skillsWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/pnp/sharepoint-skills/library-cleanup)<a href="https://agentmods.dev/skills/pnp/sharepoint-skills/library-cleanup"><img src="https://agentmods.dev/badge/skills/pnp/sharepoint-skills/library-cleanup/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/pnp/sharepoint-skills/library-cleanup"><img src="https://agentmods.dev/badge/skills/pnp/sharepoint-skills/library-cleanup.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00081 | $0.02929 |
| Opus 5 | $0.00041 | $0.01465 |
| Sonnet 5 | $0.00016 | $0.00586 |
| Haiku 4.5 | $0.00008 | $0.00293 |
Grade A, and why
library-cleanup scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 9d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 183 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Library Cleanup
When the user says "clean up file demo", follow these steps to organize the current document library.
Phase 1: Scan & Summarize Issues
- Identify the current document library using get_current_list_or_library.
- Get the library schema using get_list_schema.
- List all files and folders recursively using list_items with recursive=true, retrieving FileLeafRef, FileRef, FileDirRef, File_x0020_Size, FSObjType, and Modified.
- Analyze with execute_code and present a high-level summary of what's wrong. Keep it brief and scannable — no exhaustive item-by-item lists. Cover:
- Duplicate files: Same filename appearing in multiple folders (note count and examples).
- Empty or near-empty folders: Folders with 0 files, or only 1-2 files and no subfolders — they add clutter without value.
- Bad names: Vague or unhelpful folder/file names like "Stuff", "Misc", "Random", "Junk Drawer", "temp", "New Folder", "DO NOT USE", "Why Is This Here", "drafts maybe", "asdfghjkl", "doc1", "thing", "final_FINAL_v3 (2)", "Copy of Copy of...", "idk", "zzzzz", "untitled", "aaa", "test123", "file (1)", "hmm what is this", "New Document", "IMPORTANT maybe", etc.
- Excessive nesting: Folders buried 3+ levels deep that make browsing painful.
- Present this as a short, punchy summary — think executive briefing, not audit report.
- Store the "before" metrics for later use: total folders, duplicate file count, files with bad names count, empty folders count, max nesting depth. Calculate an initial Organization Score from 0–100 based on a weighted formula (penalize duplicates, bad names, empty folders, excessive depth).
Phase 2: Recommend a Clean Structure (with Visualization)
This phase combines the plan AND the visualization into one cohesive recommendation. The user should see the full picture — proposed structure, rename plan, and before/after comparison — all at once before approving.
Step A: Design the new folder structure
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 9d ago First seen · 183 lines · 81 tokens per session scan A 6b1160b7741d
library-cleanup is a skill published in the GitHub repository pnp/sharepoint-skills (110 stars, last pushed today), licensed MIT. It adds 81 tokens to every session and 2,929 once invoked, about $0.0004 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
custom-daily-brief
Builds a role-tuned morning brief as a Word document covering emails that need replies, today's calendar, Teams mentions and upcoming deadlines, using section presets from an editable config file. Use when the user asks for their daily brief, morning brief, start-of-day summary or custom briefing, or wants to change…
meeting-prep-onepager
Builds a one-page meeting prep brief and saves it as a Word document in OneDrive. Gathers the calendar invite, recent email threads with attendees, Teams messages and shared files, then distils them into purpose, attendee positions, open threads, key files, talking points and risks. Use when the user asks to prepare…
custom-daily-brief
Builds a role-tuned morning brief as a Word document covering emails that need replies, today's calendar, Teams mentions and upcoming deadlines, using section presets from an editable config file. Use when the user asks for their daily brief, morning brief, start-of-day summary or custom briefing, or wants to change…
meeting-prep-onepager
Builds a one-page meeting prep brief and saves it as a Word document in OneDrive. Gathers the calendar invite, recent email threads with attendees, Teams messages and shared files, then distils them into purpose, attendee positions, open threads, key files, talking points and risks. Use when the user asks to prepare…
inbox-triage
Sweeps the inbox, categorises every message as needs-reply-today, needs-reply-this-week, waiting-on-others, FYI or noise, creates reply drafts in the Drafts folder, and saves a dated triage report to OneDrive. Moves or archives mail only when a rule the user wrote in its rules file says so. Use when the user asks to…
obsidian-workout-export
Export workout data to an Obsidian-formatted Markdown file. Always trigger immediately when the user types "owd". Also trigger on "export workout", "obsidian workout", "save workout to obsidian", or related requests to export workout data into Obsidian. Read the current conversation first before searching prior…