opensensenova avatar

Sn Da Non Spreadsheet Analysis

This is a document parsing engine for Word, PDF, and PowerPoint files that handles the messy parts: extracting tables, understanding charts through vision models, dealing with scanned PDFs, and aggregating data across multiple files. It's meant to kick in automatically when you upload a .docx or .ppt and ask for analysis, or when you use phrases like "PDF解析" or "合同分析". The workflow routes to format-specific parsers and enforces full scans (no stopping at the first table or slide), which matters when you're doing counts or multi-document comparisons. For image-heavy content like charts in slides or scanned invoices, it delegates to a caption script instead of trying OCR libraries. Solid choice if you're tired of half-parsed documents or need to pull structured data from reports and presentations at scale.

GitHub stars
4.2K
last updated
Jun 11, 2026

Install

$ npx -y skills add opensensenova/sensenova-skills --skill sn-da-non-spreadsheet-analysis --agent claude-code

Installs into .claude/skills of the current project.

Files

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_path is a directory OR the user says "这些文件" / "所有文档", process every file and aggregate. Never stop at the first file.


Step 1 — Load sub-skill by format

Sponsors

Details

Repository
github.com/opensensenova/sensenova-skills
Categories
Documentation, Automation & Workflows, Office & Documents, Video & Audio Editing
License
MIT
First seen
Jun 11, 2026

More from opensensenova/sensenova-skills

All 26
1PackmindHub avatartest-factory-patternsPackmindHub/packmindThis skill provides guidance for writing test factories in the Packmind codebase. It should be used when creating or updating factory functions in `**/test/*Fac0skills.sh installs
2reactjs avatarreact-expertreactjs/react.devThe react-expert skill enables developers and documentation contributors to research React APIs and concepts by analyzing authoritative...0skills.sh installs
3rknall avatarGitLab Stack Creatorrknall/claude-skillsCreate new GitLab stack projects from templates with proper directory structure, git configuration, validation hooks, and documentation. Use when initializing n0skills.sh installs
4samarv avataropportunity-framingsamarv/ShanonFrame customer opportunities as unmet needs, pain points, and desires rather than solutions. Use when writing opportunities for an Opportunity Solution Tree, va0skills.sh installs
5shinpr avatarmcp-local-ragshinpr/mcp-local-ragSearch, ingest, expand chunk context, or manage local documents via a local RAG MCP server (tools: query_documents, read_chunk_neighbors, ingest_file, ingest_da0skills.sh installs
6silverstein avatarminutes-ingestsilverstein/minutesExtract facts from meetings and update your knowledge base — person profiles, chronological log, and index. Use when the user asks "ingest my meetings", "update0skills.sh installs