report-analyzer — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited report-analyzer (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Analyzes large reports (PDF, PPTX) and produces a structured summary with key data and insights.
Target audience: product managers, marketers, analysts, finance professionals, C-level executives.
Detect the language from the user's message. Use that language for all output — the summary document, clarifying questions, and responses. If the user writes in Russian, respond and generate the output in Russian. If in English — in English.
A structured summary document (up to 1.5 pages) containing:
The user specifies the report file name in their message. Locate the file using this order:
input/ folder or project root)File search:
find . -iname "*.pdf" -o -iname "*.pptx" 2>/dev/nullIf the file is not found — ask the user:
"Please specify the exact file name or path to the report, or upload the file directly. Supported formats: PDF, PPTX."
If the format is not supported:
"This skill works with PDF and PPTX files. Please provide a file in one of these formats."
Ask the user the following questions before proceeding:
Question 1: "What is the analysis focus?"
Question 2: "What output file format do you prefer?"
Do not create the output file until both questions are answered.
For PDF:
import pdfplumber
with pdfplumber.open("path/to/file.pdf") as pdf:
text = ""
for page in pdf.pages:
text += page.extract_text() or ""
# Extract tables
tables = page.extract_tables()Also extract metadata:
from pypdf import PdfReader
reader = PdfReader("path/to/file.pdf")
meta = reader.metadata
pages_count = len(reader.pages)For PPTX:
python -m markitdown presentation.pptxIf text extraction fails (scanned PDF) — use OCR:
import pytesseract
from pdf2image import convert_from_path
images = convert_from_path('file.pdf')
for image in images:
text += pytesseract.image_to_string(image)Based on the extracted text, generate content according to the structure below.
Analysis rules:
How to identify insights (selection criteria):
An insight is a statement from the report that meets at least one criterion:
How to formulate an insight:
Number of insights: 5–7. If the report contains fewer significant findings — do not pad to 5 artificially.
Adaptation by focus:
Use the structure from the "Output Format" section below.
By format:
.md — write the file directly.pdf — first generate .md, then use the pdf skill if available.docx — first generate .md, then use the docx skill if availableFile naming: report-summary_REPORT-NAME_YYYY-MM-DD.extension
Example: report-summary_mckinsey-ai-trends_2026-03-18.md
Save the file in the project output folder or current working directory. Deliver the file to the user.
# Report Summary: [Report Title]
**Analysis date:** [date]
---
## Report metadata
| Parameter | Value |
|-----------|-------|
| Title | [full title] |
| Author / source | [company or author] |
| Publication date | [date or year] |
| Length | [page count] |
| Original language | [language] |
| Type | [consulting / research / analytics / market review / other] |
---
## Executive Summary
[3–5 sentences: core thesis of the report, main argument, key conclusion]
---
## Key figures and data
| Metric / indicator | Value | Context |
|--------------------|-------|---------|
| [metric 1] | [value] | [explanation] |
| [metric 2] | [value] | [explanation] |
| ... | ... | ... |
---
## Key insights
1. [insight 1]
2. [insight 2]
3. [insight 3]
4. [insight 4]
5. [insight 5]
---
## Report structure
| Section | Summary |
|---------|---------|
| [Section 1] | [1–2 sentences] |
| [Section 2] | [1–2 sentences] |
| ... | ... |pip install pdfplumber pypdf markitdown --break-system-packagesFor PPTX:
pip install "markitdown[pptx]" --break-system-packagesFor OCR (scanned PDFs):
pip install pytesseract pdf2image --break-system-packages~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.