Document ManagementSharePointMicrosoft 365 Copilot

Permission Report

Creates a read-only SharePoint permission and sharing access review as a self-contained HTML report, highlighting high-risk access such as Anyone links, external users, broad groups, and unique permissions.

Permission Report skill in action

Creates a read-only permission and sharing access review report for selected files/folders, a named list or library, or the whole current SharePoint site, based only on data the current user can already access.

Generates and saves a self-contained HTML report with summary totals, a color-coded access table, and flagged risks for Anyone links, external or guest users, broad tenant-wide groups, broken inheritance, and individual Full Control assignments.

Creates a read-only SharePoint permission and sharing access review report as a self-contained HTML file.

What you get

  • Access review coverage for selected files/folders, a named list or library, or the current site scope
  • A risk-focused findings summary that flags Anyone links, external/guest users, broad groups, unique permissions, and individual Full Control grants
  • A self-contained HTML report with summary cards, a color-coded access table, and a limitations section when data is partial
  • The file saved in an Access Reports folder with a clear timestamped report name
  • Strictly read-only behavior for permissions and sharing (no grants/revokes/sharing changes)

When to use

Ask Copilot:

  • "who has access" / "permission report" / "sharing report"
  • "access review" / "review permissions"
  • "check external sharing" / "audit permissions on this library"

Best when you need a fast, defensible access snapshot for audit, handover, or governance reviews without changing any permissions.

SharePoint Skill

Solution Author(s)
permission-report Sandeep P S ( GitHub | LinkedIn )

Version history

Version Date Comments
1.0 June 2026 Initial Release

Disclaimer

THIS CODE IS PROVIDED AS IS WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.

Package

Ready to install

The ZIP contains only the upload-ready inner skill folder.

2.1 KB
3148d956358bbb51ae720235ec9337b58346cc854df3db5bd45948ca51c7d1fa
Download Permission Report
View SKILL.md
---
name: permission-report
description: |-
  Create a read-only permission and sharing access review report as a self-contained HTML file saved to SharePoint.

  Use when the user says:
    - "who has access"
    - "permission report"
    - "sharing report"
    - "access review"
    - "review permissions"
    - "create a Permission Report"
---
# Permission Report

## When to use
Use this skill when the user wants a read-only review of who has access to SharePoint files, folders, libraries, lists, or a site, especially requests such as “who has access,” “permission report,” “sharing report,” “access review,” or “review permissions.”

## Inputs
Use the current SharePoint context by default. Determine the reporting scope from the user’s request and available context:
- Selected files or folders, if the user has selected items or says “these/this.”
- A named library or list, if the user names one.
- The whole current site, if no narrower scope is provided.

Only report content and permission details the current user can already see. Never invent access data.

## Steps
1. Stay strictly read-only on permissions.
   - Never grant, revoke, change, break, restore, or otherwise modify sharing or permissions.
   - Do not create sharing links or invite users.
   - Use only discovery, listing, permission-checking, and file-creation tools needed to produce the report.

2. Resolve the scope.
   - If items are selected, report on those selected files or folders.
   - If a list or library is named, resolve it from the current site and report on that list/library and representative or included items as supported by available permission tools.
   - If no narrower scope is clear, report across accessible user-created lists and libraries on the current site.
   - If a scope cannot be resolved, state that plainly in the report and do not guess.

3. Collect access information.
   For each scoped site/list/library/file/folder where available, read:
   - Who has access: users, groups, sharing principals, and links.
   - Permission level: normalize to Full Control, Edit, Read, or Other/Unknown.
   - Whether access is inherited or uniquely set.
   - Any sharing links, especially Anyone links.
   - External or guest users.
   If a tool fails or returns partial/empty permission data, record that limitation plainly; do not fill gaps from assumptions.

4. Flag risks.
   Mark rows and findings for:
   - Anyone links.
   - External or guest access.
   - Broad groups such as Everyone, Everyone except external users, All users, or similar tenant-wide groups.
   - Broken inheritance / unique permissions.
   - Individual users with Full Control.

5. Draft a single self-contained HTML report.
   - No scripts.
   - No external CSS, fonts, images, or resources.
   - Use inline CSS only.
   - Include a summary band with totals such as scoped objects reviewed, principals found, Full Control/Edit/Read counts, external/guest count, sharing link count, and flagged risk count.
   - Include a color-coded access table: red for Full Control/high risk, amber for Edit or caution, green for Read/low risk, gray for unknown. Highlight flagged rows.
   - Include a plain-English findings list explaining the main risks and safe observations.
   - Include a limitations section if permission details were unavailable or partial.

6. Save the report.
   - Save the HTML file in an `Access Reports` folder in an appropriate document library on the current site.
   - If the folder does not exist, create only that report folder and only if needed for saving the report.
   - Use a clear filename such as `Permission-Report-YYYY-MM-DD-HHMM.html`.

7. Respond to the user.
   - Provide the report link.
   - Give a short summary of the highest-risk findings.
   - Do not claim permissions were changed.

## Output format
After saving the report, respond:

```markdown
# Permission report created

[Open the report](<link>)

- Scope: <selected items, named list/library, or whole site>
- Reviewed: <count or brief description>
- Key findings: <1 concise sentence with highest-risk issues, or “No high-risk access was found in the data available.”>
```

## HTML report requirements
The saved file must be a complete HTML document:

```html
<!doctype html>
<html>
<head>
  <meta charset="utf-8">
  <title>Permission Report</title>
  <style>
    /* inline CSS only */
  </style>
</head>
<body>
  <h1>Permission Report</h1>
  <section><!-- summary band --></section>
  <section><!-- findings --></section>
  <section><!-- access table --></section>
  <section><!-- limitations, if any --></section>
</body>
</html>
```

## Constraints
- Strictly read-only for permissions and sharing.
- Never grant, revoke, share, unshare, create sharing links, or change inheritance.
- Never invent users, groups, permission levels, links, or inheritance status.
- If access data is unavailable, say so plainly in the report.
- HTML must be self-contained and must not include scripts or external resources.

References

Discuss this skill

Ask a question, share how you used it, or suggest an improvement with the community.

Open GitHub Discussions