Agent skill

Unpublished Content Report

by pnp in pnp/sharepoint-skills

Create a live HTML governance report of unpublished or draft documents and site pages that haven't been edited for a specified number of days, sorted with the stalest items first, and save it in a…

MITAuto-check passedDocuments & Office

Install Unpublished Content Report

skills CLI
$ npx skills add pnp/sharepoint-skills --skill unpublished-content-report -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install pnp/sharepoint-skills unpublished-content-report --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/pnp/sharepoint-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/Skills/unpublished-content-report/unpublished-content-report .claude/skills/unpublished-content-report && rm -rf skills-src

Use ~/.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/

Facts

Skill name
unpublished-content-report
GitHub stars
132
Token cost
~1.3k tokens
SKILL.md length
637 words
Files
1
Skills in repo
51
Repo updated
First seen
Licence
MIT

At a glance

Create a live HTML governance report of unpublished or draft documents and site pages that haven't been edited for a specified number of days, sorted with the stalest items first, and save it in a…

  • Works in 12 steps: Get the current date/time before… → Discover the site's lists and libraries,… → Verify the destination library exists.… → …
  • Tasks that involve Cloud office suites
  • SKILL.md covers When to use, Inputs, Steps and Output format
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Unpublished Content Report is an agent skill from pnp/sharepoint-skills. Create a live HTML governance report of unpublished or draft documents and site pages that haven't been edited for a specified number of days, sorted with the stalest items first, and save it in a SharePoint report library. Use when the user says: - "Create a report of unpublished documents and pages" - "Show stale draft content on this site" - "Find content not published and not edited for 14 days" - "Generate an unpublished content report" - "Save a report of old drafts in the Reports library"

Its SKILL.md is about 1.3k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Documents & Office, covering Cloud office suites. It works with Microsoft SharePoint. The repository describes itself as: Skills for Copilot in SharePoint. The licence is MIT.

When your agent uses it

  • Tasks that involve Cloud office suites

Example prompts

  • “Create a report of unpublished documents and pages”
  • “Show stale draft content on this site”
  • “Find content not published and not edited for 14 days”
  • “/unpublished-content-report”

Workflow steps

12 steps, taken from the first numbered list in SKILL.md.

  1. Get the current date/time before calculating relative ages.
  2. Discover the site's lists and libraries, including the Site Pages library. Identify user-facing document libraries and exclude system…
  3. Verify the destination library exists. If it doesn't, create it as a document library with a clear report-oriented description.
  4. Retrieve schemas before querying items. Identify these internal fields where available: FileLeafRef, FileRef, Modified, Editor…
  5. Query all files recursively with a row limit equal to the known item count, or 50,000 when unknown. Retrieve the complete dataset before…
  6. Determine publication state from SharePoint metadata rather than filenames
  7. Calculate whole days since Modified. Keep items whose age is greater than or equal to the requested threshold.
  8. Normalize each match with item name and link, type, library, publication state, version, last edited date/time, editor, and days since…
  9. Sort by days since last edit descending, then item name ascending as a stable tie-breaker.
  10. Build the HTML using Report.html and, when practical, LiveData.html so results refresh from source libraries when opened. Pass every…
  11. Include summary cards for total items, documents, and pages; a concise criteria note; and a table containing all matching items. Escape…
  12. Route generated HTML through an output data reference, then create the .html file in the destination library using that reference. Don't…

What it can do on your machine

Read from SKILL.md and the folder at commit aa9eb14. It shows what the files ask for, not the result of running them.

  • Tool permissions

    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.

  • Runs code

    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.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Unpublished Content Report loads about 1.3k tokens when it runs. Until then it costs about 135 tokens; SKILL.md has 637 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~135
When it runs · the whole SKILL.md, loaded when a task matches
~1.3k

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.

Safety

Auto-check passed

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.

SKILL.md

The full file from pnp/sharepoint-skills at commit aa9eb14, republished under its MIT licence (© pnp). 637 words, ~1,250 tokens.

Download SKILL.mdSave it as .claude/skills/unpublished-content-report/SKILL.md (or your agent's skills folder).
name
unpublished-content-report
description
Create a live HTML governance report of unpublished or draft documents and site pages that haven't been edited for a specified number of days, sorted with the stalest items first, and save it in a SharePoint report library. Use when the user says: - "Create a report of unpublished documents and pages" - "Show stale draft content on this site" - "Find content not published and not edited for 14 days" - "Generate an unpublished content report" - "Save a report of old drafts in the Reports library"

Unpublished content report

When to use

Use this skill when the user wants an HTML governance report covering SharePoint documents and site pages that aren't published and haven't been edited for a specified period. Use it for stale drafts, pending/rejected content, checked-out pages, or unpublished changes. The report must sort by days since last edit in descending order and be saved in a document library.

Inputs

  • Current SharePoint site URL and context.
  • Inactivity threshold in days. Default to 14 only when the user doesn't provide one.
  • Destination document library. Default to Reports only when the user doesn't provide one.
  • Optional report filename. Otherwise use Unpublished-content-inactive-<days>-days.html.
  • Scope is documents in user-facing document libraries plus pages in the site's Site Pages library. Exclude system, asset, style, preservation, template, report, and AgentAssets libraries unless the user includes them.

Steps

  1. Get the current date/time before calculating relative ages.
  2. Discover the site's lists and libraries, including the Site Pages library. Identify user-facing document libraries and exclude system libraries.
  3. Verify the destination library exists. If it doesn't, create it as a document library with a clear report-oriented description.
  4. Retrieve schemas before querying items. Identify these internal fields where available: FileLeafRef, FileRef, Modified, Editor, _ModerationStatus, _UIVersionString, CheckoutUser, and page fields such as Title, FirstPublishedDate, and PromotedState.
  5. Query all files recursively with a row limit equal to the known item count, or 50,000 when unknown. Retrieve the complete dataset before filtering.
  6. Determine publication state from SharePoint metadata rather than filenames:
    • In moderated libraries, treat _ModerationStatus values equivalent to Approved/Published as published. Pending, Draft, Rejected, or other non-approved values are unpublished.
    • In versioned libraries, a version ending in .0 is a published major version. A version ending in a non-zero minor number indicates draft or unpublished changes.
    • Treat checkout-only pages, never-published pages, and pages with draft changes as unpublished.
    • Don't classify an item as unpublished solely because the library doesn't use moderation or minor versions. If no reliable publication-state signal exists, omit the item and note the skipped library in the report.
  7. Calculate whole days since Modified. Keep items whose age is greater than or equal to the requested threshold.
  8. Normalize each match with item name and link, type, library, publication state, version, last edited date/time, editor, and days since last edit.
  9. Sort by days since last edit descending, then item name ascending as a stable tie-breaker.
  10. Build the HTML using Report.html and, when practical, LiveData.html so results refresh from source libraries when opened. Pass every source list identity to the live-data tool; don't hand-write REST or Graph calls.
  11. Include summary cards for total items, documents, and pages; a concise criteria note; and a table containing all matching items. Escape user-controlled values before inserting them into raw HTML.
  12. Route generated HTML through an output data reference, then create the .html file in the destination library using that reference. Don't reconstruct content from a truncated preview.
  13. Verify the file was created and return a link. If any tool fails or data is incomplete, say so plainly and don't invent results.
Show full SKILL.md (124 more words)Show less

Output format

Return a concise completion message containing:

  • A markdown link to the created HTML report.
  • The threshold and destination library.
  • A note that the report refreshes when opened if LiveData was used; otherwise state that it's a point-in-time report.
  • Any libraries skipped because publication state couldn't be determined reliably.

The HTML report must contain:

  1. Title: Unpublished content inactive for <days>+ days
  2. Site and criteria statement
  3. KPI cards: Total items, Documents, Pages
  4. Table columns: Item, Type, Library, Publication state, Version, Last edited, Edited by, Days since edit
  5. Rows sorted by Days since edit descending

Example request: Create a HTML report showing documents and pages that aren't published and haven't been edited for 30 days. Save it in Governance Reports.

© pnp, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in Skills/unpublished-content-report/unpublished-content-report of pnp/sharepoint-skills.

Open the folder on GitHubat commit aa9eb14

Compare with similar skills

Unpublished Content 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.

Unpublished Content Report compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Unpublished Content Report this skillpnp/sharepoint-skills132—~1.3kAutomated safety check: PassMIT
Colleague DistillationZhixiangLuo/10xProductivity478—~2.1kAutomated safety check: NotesMIT
Msgraphcodemie-ai/codemie-code294—~4.1kAutomated safety check: PassApache-2.0
aai-cli Microsoft 365aai-labs/agent-barn109—~1.2kAutomated safety check: PassApache-2.0
Workiqmicrosoft/work-iq1k—~15kAutomated safety check: PassCustom licence
Workiq Previewmicrosoft/work-iq1k—~3.3kAutomated safety check: PassCustom licence

Similar skills

  • Colleague Distillation

    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…

    478 GitHub stars~2.1k tokensUpdated 2 mo ago
    Documents & OfficeAuto-check: notes
  • Msgraph

    codemie-ai/codemie-code

    Work with Microsoft 365 services via the Graph API — emails, calendar events, SharePoint sites (read and write), Teams chats and channel messages, OneDrive files, OneNote notebooks, Planner task…

    294 GitHub stars~4.1k tokensUpdated yesterday
    Documents & OfficeAuto-check passed
  • aai-cli Microsoft 365

    aai-labs/agent-barn

    Guides work with Outlook, OneDrive, SharePoint, Teams, Excel, To Do and Planner through aai-cli's Microsoft Graph commands, starting from which service owns the data.

    109 GitHub stars~1.2k tokensUpdated yesterday
    Documents & OfficeAuto-check passed
  • Workiq

    microsoft/work-iq

    Official

    WorkIQ tools for Microsoft 365 workplace data and actions. An agent skill from microsoft/work-iq.

    1k GitHub stars~15k tokensUpdated 3 days ago
    Documents & OfficeAuto-check passed
  • Workiq Preview

    microsoft/work-iq

    Official

    WorkIQ tools for Microsoft 365 workplace data and actions. An agent skill from microsoft/work-iq.

    1k GitHub stars~3.3k tokensUpdated 3 days ago
    Documents & OfficeAuto-check passed
  • Hunt Ntlm Info

    sickn33/agentic-awesome-skills

    Hunt NTLM/Negotiate information disclosure on internet-reachable IIS/SharePoint/Exchange.

    47k GitHub starsUsed in 1 repo~4.7k tokens
    Documents & OfficeAuto-check passed

More from pnp/sharepoint-skills

All 51 skills in this repo
  • Scorecard Matrix

    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…

    132 GitHub stars~1.9k tokensUpdated 3 days ago
    Auto-check passed
  • Analyze Document Library

    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.

    132 GitHub stars~899 tokensUpdated 3 days ago
    Auto-check passed
  • Broken Link Auditor

    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.

    132 GitHub stars~2.5k tokensUpdated 3 days ago
    Auto-check passed
  • Custom Image Tagger

    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…

    132 GitHub stars~1.2k tokensUpdated 3 days ago
    Auto-check passed
  • Dossier

    pnp/sharepoint-skills

    Renders a polished, self-contained HTML briefing from any data source — SharePoint lists, uploaded documents, or a verbal description.

    132 GitHub stars~1.9k tokensUpdated 3 days ago
    Auto-check passed
  • Exec Report

    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.

    132 GitHub stars~2k tokensUpdated 3 days ago
    Auto-check passed

Questions about Unpublished Content Report

What does Unpublished Content Report do?

Create a live HTML governance report of unpublished or draft documents and site pages that haven't been edited for a specified number of days, sorted with the stalest items first, and save it in a…. Unpublished Content Report is an agent skill from pnp/sharepoint-skills. Create a live HTML governance report of unpublished or draft documents and site pages that haven't been edited for a specified number of days, sorted with the stalest items first, and save it in a SharePoint report library.

When should I use Unpublished Content Report?

Unpublished Content Report fits situations like: tasks that involve Cloud office suites.

How do I install Unpublished Content Report in Claude Code?

Run `npx skills add pnp/sharepoint-skills --skill unpublished-content-report -a claude-code`. Or copy the skill folder (Skills/unpublished-content-report/unpublished-content-report in pnp/sharepoint-skills) into .claude/skills/unpublished-content-report in your project. Claude Code loads it when a task matches its description.

How do I install Unpublished Content Report in Codex?

Run `npx skills add pnp/sharepoint-skills --skill unpublished-content-report -a codex`. Or copy the skill folder (Skills/unpublished-content-report/unpublished-content-report in pnp/sharepoint-skills) into .agents/skills/unpublished-content-report in your project. Codex loads it when a task matches its description.

Can I use Unpublished Content Report in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add pnp/sharepoint-skills --skill unpublished-content-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/unpublished-content-report, .gemini/skills/unpublished-content-report, .github/skills/unpublished-content-report and .opencode/skills/unpublished-content-report in your project.

What does Unpublished Content Report need to run?

SKILL.md names no scripts, command-line tools or credentials: Unpublished Content Report is instructions for the agent only.

Does Unpublished Content Report access the network?

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.

Is Unpublished Content Report safe to install?

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.

What licence does Unpublished Content Report use?

Unpublished Content Report is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Unpublished Content Report use?

About 1.3k tokens (SKILL.md is roughly 5k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Unpublished Content Report?

Skills that share tags, products or a category with Unpublished Content Report: Colleague Distillation (ZhixiangLuo/10xProductivity, 478 stars), Msgraph (codemie-ai/codemie-code, 294 stars), aai-cli Microsoft 365 (aai-labs/agent-barn, 109 stars) and Workiq (microsoft/work-iq, 1k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Unpublished Content Report?

pnp (a GitHub organization) maintains it in pnp/sharepoint-skills, which has 132 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.