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 intranet-page-lifecycle-reviewgit 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/intranet-page-lifecycle-review)<a href="https://agentmods.dev/skills/pnp/sharepoint-skills/intranet-page-lifecycle-review"><img src="https://agentmods.dev/badge/skills/pnp/sharepoint-skills/intranet-page-lifecycle-review/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/intranet-page-lifecycle-review"><img src="https://agentmods.dev/badge/skills/pnp/sharepoint-skills/intranet-page-lifecycle-review.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.00097 | $0.01559 |
| Opus 5 | $0.00048 | $0.00779 |
| Sonnet 5 | $0.00019 | $0.00312 |
| Haiku 4.5 | $0.00010 | $0.00156 |
Grade A, and why
intranet-page-lifecycle-review 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 8d 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 — 107 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Intranet Page Lifecycle Review
When to use
Use this skill to audit the current SharePoint site's Site Pages library for page lifecycle findings and produce a self-contained HTML report. The review is strictly read-only with respect to pages and library items.
Trigger for requests to review, audit, or report on stale pages, drafts, never-published pages, pages with unpublished changes, or checked-out pages.
Inputs
- Current SharePoint site from live site context.
- Current date and site timezone from
context.nowor the equivalent authoritative date/time tool. - Optional user-supplied inactivity period. Default to 6 calendar months.
- Optional report name or destination. Default to
Intranet Page Lifecycle Review.htmlin the current location when suitable; otherwise save it in a location supported by the HTML output tool and return its link.
Steps
- Carry the live current-site context into every workflow. Discover the current site's lists and libraries and identify the Site Pages library from its observed title, URL, and library/template metadata. Don't assume a list ID or rebuild a library URL.
- Learn and use only the required read and output tools. Typical tools are
lists.discover,lists.getSchema,lists.getItems,files.getVersions,context.now, andoutput.htmloroutput.htmlReport. - Perform reconnaissance before creating the report:
- Read the Site Pages schema and a representative sample.
- Map the actual internal columns for page title/name, file reference or URL, Created, Author, Modified, Editor, moderation/publishing state, version, checkout state, and checkout user.
- Use
fieldTextfor Person, Lookup, and other structured field values. - Don't guess internal column names or status encodings.
- Enumerate the full Site Pages library with pagination or an adequate row limit. Include page files and exclude folders and non-page support items. Preserve the page URL returned by SharePoint rather than fabricating one.
- Read version history when needed to distinguish publication states. Determine state from observed metadata and version evidence:
- Draft status: the current page metadata explicitly identifies it as Draft.
- Never been published: version history contains no published major version. Don't infer this from age or title.
- Published with unpublished changes: version history contains at least one published major version, while the current page is a later draft/minor version or metadata explicitly reports unpublished changes.
- Published: the current version is published and has no later unpublished changes.
- If version evidence is unavailable or ambiguous, label the publishing status
Unknownand explain the limitation; don't invent a status.
- Determine checkout status from the observed checkout metadata. Report
Checked outonly when the metadata confirms it, and show the checked-out user when available. Otherwise reportNot checked outorUnknownas supported by the source. - Calculate the stale threshold as the date exactly six calendar months before the authoritative current date, respecting the site timezone. Flag pages whose Modified timestamp is strictly earlier than that threshold. State the concrete threshold date in the report.
- Include a page when it has at least one of these findings:
- Not modified within the last six months
- Draft status
- Never published
- Published with unpublished changes
- Currently checked out
- Findings can overlap. For each page, combine every applicable reason in
Finding reason; don't duplicate the page into separate rows. Compute summary totals for unique pages reviewed, unique pages with findings, and each finding category independently. - Recommend a non-destructive follow-up based on the evidence:
- Stale:
Confirm ownership and relevance; consider updating or starting the approved archival process. - Draft:
Ask the owner to review and either publish through the approved process or continue editing. - Never published:
Confirm whether the page is still needed; ask the owner to complete review or follow the approved removal process. - Unpublished changes:
Ask the editor to review the pending changes and publish through the approved process if ready. - Checked out:
Contact the checked-out user to complete or release the checkout through the approved process.Combine applicable recommendations without claiming any action was taken.
- Stale:
- Sort findings first by publishing status using a stable, documented order (
Never published,Draft,Published with unpublished changes,Published,Unknown), then by Modified date ascending so the oldest page appears first within each status. Use title as a final tie-breaker. - Split inspection and output into separate workflows when required: the first workflow reads and returns schema/sample/evidence; the second creates the report from inspected data. Perform all reads before the output write.
- Generate one self-contained HTML report with embedded CSS and no external runtime dependencies. Escape all source text before placing it in HTML. Make page URLs clickable.
- Return a concise completion message with the report link, the number of pages reviewed, the number with findings, the concrete stale threshold, and category totals.
- If a read or version-history call fails or returns incomplete data, say so in the report and completion message. Don't fabricate values or silently classify uncertain pages.
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.
- 8d ago First seen · 107 lines · 97 tokens per session scan A ddb3da048ab0
intranet-page-lifecycle-review is a skill published in the GitHub repository pnp/sharepoint-skills (118 stars, last pushed 4d ago), licensed MIT. It adds 97 tokens to every session and 1,559 once invoked, about $0.0005 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-09-03.
Other skills, from other repositories
html-ppt-obsidian-claude-gradient
OpenDesign's enterprise AI-adoption brief: local-first agents at work, the risk controls, the ROI, and the rollout plan. Built as a decision-grade AI literacy deck for leadership, IT, security.
skill-doc-delivery
Convert markdown to DOCX, PPTX, XLSX, PDF office documents — use when you need exportable deliverables.
skill-deck
Generate slide deck presentations from briefs — use when you need slides, pitch decks, or visual summaries.
speech-to-text
Transcribe audio to text using ElevenLabs Scribe v2. Use when converting audio/video to text, generating subtitles, transcribing meetings, or processing spoken content.
msgraph-files
Read OneDrive and SharePoint files via the Microsoft 365 MCP server — list folder contents, fetch item metadata, inspect versions and sharing permissions. Use when locating a document in OneDrive/SharePoint, checking who a file is shared with, or reviewing file version history.
managedcode-markitdown
Use ManagedCode.MarkItDown when a .NET application needs deterministic document-to-Markdown conversion for ingestion, indexing, summarization, or content-processing workflows. USE FOR: ManagedCode.MarkItDown integration; document ingestion flows; Office or rich-text conversion to Markdown; indexing and summarization…