SenseNova-Skills is a collection of modular skills that extend SenseNova models with office-assistant capabilities such as image generation, presentation creation, spreadsheet analysis, and research. The skills are designed for use in agent runtimes and can be combined into productivity workflows; the catalogue entries are individual skills and agents from this collection.
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 OpenSenseNova/SenseNova-Skills --skill sn-da-non-spreadsheet-analysisgit clone --depth 1 https://github.com/OpenSenseNova/SenseNova-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/opensensenova/sensenova-skills/sn-da-non-spreadsheet-analysis)<a href="https://agentmods.dev/skills/opensensenova/sensenova-skills/sn-da-non-spreadsheet-analysis"><img src="https://agentmods.dev/badge/skills/opensensenova/sensenova-skills/sn-da-non-spreadsheet-analysis/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/opensensenova/sensenova-skills/sn-da-non-spreadsheet-analysis"><img src="https://agentmods.dev/badge/skills/opensensenova/sensenova-skills/sn-da-non-spreadsheet-analysis.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.00234 | $0.01416 |
| Opus 5 | $0.00117 | $0.00708 |
| Sonnet 5 | $0.00047 | $0.00283 |
| Haiku 4.5 | $0.00023 | $0.00142 |
Grade A, and why
sn-da-non-spreadsheet-analysis scanned grade A with 1 finding 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 12d 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.
Runs shell commandslowCapability
Expected in a hook, worth knowing in a rule or an instructions file.
result = subprocess.run(cmd, capture_output=True, text=True, timeout=60) How it starts
The opening of the file, as written. The whole thing — 144 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Document Analysis Skill — Word / PDF / PPT
End-to-end workflow for Word, PDF, and PPT document parsing. Each format has specific parsing pitfalls — follow the format-specific sub-skill exactly.
Workflow
Step 0 — Identify file type and input scope
import os
input_path = "/mnt/data/..." # from user
# Detect single file vs directory (multi-file scenario)
if os.path.isdir(input_path):
all_files = [
os.path.join(input_path, f)
for f in os.listdir(input_path)
if f.lower().endswith(('.docx', '.doc', '.pdf', '.pptx', '.ppt'))
]
print(f"Found {len(all_files)} documents: {all_files}")
else:
all_files = [input_path]
# Route by extension
ext = os.path.splitext(all_files[0])[-1].lower()
print(f"File type: {ext}")
Critical rule: When
input_pathis a directory OR the user says "这些文件" / "所有文档", process every file and aggregate. Never stop at the first file.
Step 1 — Load sub-skill by format
| Extension | Sub-skill to load |
|---|---|
.docx / .doc |
capability/word-analysis/SKILL.md |
.pdf |
capability/pdf-analysis/SKILL.md |
.pptx / .ppt |
capability/ppt-analysis/SKILL.md |
read_file(path="<skills_root>/sn-da-non-spreadsheet-analysis/capability/<format>-analysis/SKILL.md")
Load only the sub-skill you need — do not load all three at once.
Step 2 — Parse and extract
Follow the sub-skill's extraction pattern. For all formats:
- Full scan: iterate all pages/slides/paragraphs — never stop early
- Table extraction: get every table, not just the first one
- Image/chart detection: if a page/slide yields no text, treat it as image-based and call
caption.py
Step 3 — Answer with verification
After extracting data, verify before answering:
# For count/statistics questions: spot-check 3-5 items
sample = result_list[:3]
print(f"Sample check: {sample}")
print(f"Total count: {len(result_list)}")
# For numeric calculations: print intermediate values
print(f"Max={max_val}, Min={min_val}, Range={max_val - min_val}")
# For unit-sensitive answers: always include the unit
print(f"Answer: {value} {unit}") # e.g., "475 千港元" not just "475"
What ships with it
3 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
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.
- 12d ago First seen · 144 lines · 234 tokens per session scan A d472d8bd3861
sn-da-non-spreadsheet-analysis is a skill published in the GitHub repository OpenSenseNova/SenseNova-Skills (5,515 stars, last pushed yesterday), licensed MIT. It adds 234 tokens to every session and 1,416 once invoked, about $0.0012 per session on Opus 5. A static security scan graded it A with 1 finding (runs shell commands). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
Comprehensive PDF manipulation toolkit for extracting text and tables, creating new PDFs, merging/splitting documents, and handling forms. When Claude needs to fill in a PDF form or programmatically process, generate, or analyze PDF documents at scale.
agent-office
A guide for creating, editing, rewriting, converting, processing, or delivering Word documents, spreadsheets, presentations, and PDF files.
market-research-reports
Generate comprehensive market research reports (50+ pages) in the style of top consulting firms (McKinsey, BCG, Gartner). Features professional LaTeX formatting, extensive visual generation with scientific-schematics and generate-image, deep integration with research-lookup for data gathering, and multi-framework…
A set of instructions for working with PDF files, which are documents designed to preserve their layout across devices.
nano-pdf
Edits PDF files using natural-language instructions via the nano-pdf CLI. Supports modifying text, changing titles, fixing typos, and updating content on specific pages. Use when the user wants to edit a PDF, modify PDF content, update PDF text, fix a typo in a PDF, change a PDF title, or rewrite part of a PDF page.
hive.pdf
Read, write, merge, split, rotate, watermark, encrypt, and OCR PDF files using Python (pypdf, pdfplumber, reportlab, pypdfium2) and command-line tools (poppler-utils, qpdf). Use when the user asks to extract text/tables/images from a PDF, create or modify a PDF, combine or split PDFs, OCR a scanned PDF…