note-summarizer

$npx mdskill add aipoch/medical-research-skills/note-summarizer

Convert study notes into structured outlines and .docx files.

  • Transforms Word, PPT, text, and markdown inputs into hierarchical documents.
  • Requires Python 3.10+ and the note_summarizer package.
  • Executes via scripts/note_summarizer.py for reproducible workflows.
  • Delivers shareable .docx summaries with organized knowledge points.

SKILL.md

.github/skills/note-summarizerView on GitHub ↗
---
name: note-summarizer
description: Organize study notes into a structured knowledge-point outline and export to a .docx summary when you need a shareable, hierarchical document from Word/PPT/Text/Markdown inputs.
license: MIT
author: aipoch
---
> **Source**: [https://github.com/aipoch/medical-research-skills](https://github.com/aipoch/medical-research-skills)
# Note Summarizer

## When to Use

- Use this skill when you need organize study notes into a structured knowledge-point outline and export to a .docx summary when you need a shareable, hierarchical document from word/ppt/text/markdown inputs in a reproducible workflow.
- Use this skill when a others task needs a packaged method instead of ad-hoc freeform output.
- Use this skill when the user expects a concrete deliverable, validation step, or file-based result.
- Use this skill when `scripts/note_summarizer.py` is the most direct path to complete the request.
- Use this skill when you need the `note-summarizer` package behavior rather than a generic answer.

## Key Features

- Scope-focused workflow aligned to: Organize study notes into a structured knowledge-point outline and export to a .docx summary when you need a shareable, hierarchical document from Word/PPT/Text/Markdown inputs.
- Packaged executable path(s): `scripts/note_summarizer.py`.
- Structured execution path designed to keep outputs consistent and reviewable.

## Dependencies

- `Python`: `3.10+`. Repository baseline for current packaged skills.
- `Third-party packages`: `not explicitly version-pinned in this skill package`. Add pinned versions if this skill needs stricter environment control.

## Example Usage

```bash
cd "20260316/scientific-skills/Others/note-summarizer"
python -m py_compile scripts/note_summarizer.py
python scripts/note_summarizer.py --help
```

Example run plan:
1. Confirm the user input, output path, and any required config values.
2. Edit the in-file `CONFIG` block or documented parameters if the script uses fixed settings.
3. Run `python scripts/note_summarizer.py` with the validated inputs.
4. Review the generated output and return the final artifact with any assumptions called out.

## Implementation Details

- Execution model: validate the request, choose the packaged workflow, and produce a bounded deliverable.
- Input controls: confirm the source files, scope limits, output format, and acceptance criteria before running any script.
- Primary implementation surface: `scripts/note_summarizer.py`.
- Parameters to clarify first: input path, output path, scope filters, thresholds, and any domain-specific constraints.
- Output discipline: keep results reproducible, identify assumptions explicitly, and avoid undocumented side effects.

## 1. When to Use
- When you have class notes (Word/Markdown/text) and need a clean outline with key takeaways per section.
- When you need to merge notes from multiple sources (e.g., Word + PPT + Markdown) into one unified study summary.
- When you want to preserve the original heading hierarchy (H1/H2/H3) while summarizing content into bullet points.
- When you need to include images from the source materials in the corresponding sections of the exported Word document.
- When you need an offline, local-file-only summarization workflow for study materials.

## 2. Key Features
- Multi-format input support: **.docx**, **.pptx**, **.txt**, **.md**.
- Exports a **Word (.docx)** document with a structured outline (Heading 1/2/3).
- Generates **key-point bullet summaries** per section with a configurable limit.
- Optional **heading hierarchy preservation** to keep the original structure.
- Optional **image handling**: copy images into the output or skip them.
- Local-only processing (no network access) and minimal logging of user content.

## 3. Dependencies
- Python (recommended): **3.9+**
- Python packages:
  - **python-docx** (latest compatible)
  - **python-pptx** (latest compatible)
  - **Pillow** (latest compatible)

Install:
```bash
python -m pip install python-docx python-pptx pillow
```

## 4. Example Usage

### Interactive run
```bash
python scripts/note_summarizer.py
```

### Run with a JSON config (recommended)
1) Create `input.json`:
```json
{
  "inputs": ["notes.docx", "slides.pptx", "notes.md"],
  "output": "summary.docx",
  "keep_headings": true,
  "max_bullets_per_section": 6,
  "image_mode": "copy",
  "max_image_long_edge": 1600
}
```

2) Execute:
```bash
python scripts/note_summarizer.py --json input.json
```

## 5. Implementation Details

### Input schema
**Required**
- `inputs`: array of input file paths (Word/PPT/Text/Markdown)
- `output`: output `.docx` file path

**Optional**
- `keep_headings` (boolean, default: `true`): attempts to preserve heading hierarchy from source documents.
- `max_bullets_per_section` (int, default: `6`): maximum number of summary bullets generated per section.
- `image_mode` (`"copy"` | `"skip"`, default: `"copy"`): whether to copy images into the output document.
- `max_image_long_edge` (int, default: `1600`): maximum pixel size for the long edge when copying images.

### Output structure
- A Word document containing:
  - Heading levels (Heading 1/2/3) representing the outline
  - Bullet lists of key points under each section
  - Images copied into the relevant sections when `image_mode: "copy"`

### Security / compliance notes
- Processes **local files only** and does not access the network.
- Reads only user-provided paths and writes only to the specified output path.
- Avoids logging or emitting sensitive content from user files into logs.

### Basic verification
```bash
python scripts/note_summarizer.py --json examples/example.json
```

Success criteria:
- The output `.docx` exists and opens successfully.
- The heading hierarchy and per-section key points are present and correctly structured.

More from aipoch/medical-research-skills

SkillDescription
3d-molecule-ray-tracerGenerate photorealistic rendering scripts for PyMOL and UCSF ChimeraX.
abstract-summarizerTransform lengthy academic papers into concise, structured 250-word abstracts.
abstract-trimmerPrecision editing tool that reduces abstract word count through intelligent compression techniques, maintaining scientific rigor while meeting strict journal and conference requirements.
academic-abstract-refinerRefines long medical academic texts into SCI-style unstructured Chinese and English abstracts; use when you need to condense drafts/reports/summaries into bilingual abstracts and generate Summary_Report.md.
academic-cv-generatorGenerate structured academic CVs from free-form Chinese/English text and export to Word (.docx). Use this skill when you are asked to organize, generate, or optimize an academic CV (e.g., publications/projects/awards) into a consistent, formatted document with uniform-colored section headers and optional bilingual output.
academic-highlight-generatorGenerates submission-ready Elsevier/SCI Highlights from manuscript text or extracted PDF/DOCX/TXT content. Use when a user needs 3-5 concise, evidence-grounded highlight bullets for a research paper, review, meta-analysis, case report, or bioinformatics manuscript.
academic-norm-reviewDetects content similarity, verifies standardized citations and abbreviations, and flags potential academic integrity risks; use it before submission, during academic writing QA, or for compliance reviews.
academic-poster-generatorComplete workflow for generating academic research posters from PDF literature; use when you need to extract paper content from PDFs and produce a LaTeX-based poster (beamerposter/tikzposter/baposter) with mandatory figure generation and a final rendered HTML deliverable.
acronym-unpackerIntelligent medical abbreviation disambiguation tool that resolves ambiguous acronyms using clinical context, specialty-specific knowledge, and document-level semantic analysis.
active-comparator-single-soc-faers-safety-comparisonGenerates complete FAERS pharmacovigilance study designs for multi-drug or class-level safety comparison inside one predefined SOC or AE family using active comparators, disproportionality analysis, subgroup characterization, and reviewer-facing evidence control.