meeting-notes-formatter

安装量: 46
排名: #15913

安装

npx skills add https://github.com/dkyazzentwatwa/chatgpt-skills --skill meeting-notes-formatter

Transform raw, unstructured meeting notes into clean, professional documents. Automatically detects sections, extracts action items, parses attendees, and exports to Markdown or PDF.

Quick Start

from scripts.notes_formatter import MeetingNotesFormatter

# Format raw notes
raw_notes = """
Project sync Jan 15
Attendees: John, Sarah, Mike

Discussed Q1 roadmap
- Feature A is priority
- Feature B pushed to Q2
Sarah to send updated timeline by Friday
Mike will review budget

Next meeting Jan 22
"""

formatter = MeetingNotesFormatter(raw_notes)
formatter.format()
formatter.save("meeting_notes.md")

# Or save as PDF
formatter.save("meeting_notes.pdf")

Features

  • Auto-Detection: Identifies title, attendees, sections, action items

  • Action Item Extraction: Pulls out tasks with owners and due dates

  • Attendee Parsing: Extracts participant list from various formats

  • Section Organization: Groups content into logical sections

  • Output Formats: Markdown, PDF

  • Templates: Structured output with consistent formatting

API Reference

Initialization

# From string
formatter = MeetingNotesFormatter(raw_notes_string)

# From file
formatter = MeetingNotesFormatter.from_file("notes.txt")

Formatting

# Auto-format (detects structure)
formatter.format()

# With manual overrides
formatter.set_title("Weekly Standup")
formatter.set_date("2024-01-15")
formatter.set_attendees(["John Smith", "Sarah Jones"])
formatter.format()

Manual Configuration

# Set meeting metadata
formatter.set_title("Project Review Meeting")
formatter.set_date("January 15, 2024")
formatter.set_time("2:00 PM - 3:00 PM")
formatter.set_location("Conference Room A")

# Set attendees
formatter.set_attendees(["John Smith", "Sarah Jones", "Mike Wilson"])

# Add sections manually
formatter.add_section("Discussion", [
    "Reviewed Q1 roadmap",
    "Discussed resource allocation",
    "Agreed on priorities"
])

# Add action items
formatter.add_action_item("Send timeline update", owner="Sarah", due="Friday")
formatter.add_action_item("Review budget proposal", owner="Mike")

Output

# Get formatted markdown
markdown = formatter.to_markdown()

# Save to file
formatter.save("notes.md")      # Markdown
formatter.save("notes.pdf")     # PDF

# Get structured data
data = formatter.to_dict()

Auto-Detection Features

Title Detection

Identifies meeting title from:

  • First line if short and descriptive

  • Lines containing "meeting", "sync", "standup", "review"

  • Date patterns at start of notes

Attendee Detection

Extracts attendees from:

  • "Attendees: John, Sarah, Mike"

  • "Present: John Smith, Sarah Jones"

  • "Participants: @john @sarah @mike"

  • Lists following attendee keywords

Action Item Detection

Identifies tasks from:

  • "ACTION: Send report"

  • "TODO: Review document"

  • "[John] to send update"

  • "Sarah will review by Friday"

  • Lines with owner/assignee patterns

Date Detection

Extracts dates from:

  • "January 15, 2024"

  • "2024-01-15"

  • "01/15/2024"

  • "Jan 15"

Output Formats

Markdown Output

# Weekly Project Sync

**Date:** January 15, 2024
**Time:** 2:00 PM - 3:00 PM
**Attendees:** John Smith, Sarah Jones, Mike Wilson

---

## Discussion

- Reviewed Q1 roadmap progress
- Feature A is on track for release
- Feature B moved to Q2 due to resource constraints

## Decisions

- Prioritize performance improvements
- Delay new feature development until Q2

## Action Items

| Task | Owner | Due Date |
|------|-------|----------|
| Send updated timeline | Sarah | Jan 19 |
| Review budget proposal | Mike | Jan 22 |
| Schedule follow-up | John | Jan 16 |

---

**Next Meeting:** January 22, 2024

PDF Output

Professional formatted PDF with:

  • Clean typography

  • Organized sections

  • Action item table

  • Header with meeting details

CLI Usage

# Format notes file
python notes_formatter.py --input raw_notes.txt --output formatted.md

# Output as PDF
python notes_formatter.py --input notes.txt --output notes.pdf

# With manual metadata
python notes_formatter.py --input notes.txt \
    --title "Weekly Standup" \
    --date "Jan 15, 2024" \
    --output standup.md

CLI Arguments

| --input | Input text file | Required

| --output | Output file path | notes.md

| --title | Meeting title override | Auto-detect

| --date | Meeting date override | Auto-detect

| --template | Output template | standard

Examples

Raw Notes Input

Team standup 1/15

john sarah mike present

Updates:
- John: finished API integration
- Sarah: working on frontend
- Mike: reviewing PRs

Blockers:
Sarah blocked on design specs
need mike to review sarah's PR

action items:
john to deploy to staging today
sarah follow up with design team
mike review PR by EOD

next standup wednesday

Formatted Output

# Team Standup

**Date:** January 15, 2024
**Attendees:** John, Sarah, Mike

---

## Updates

- **John:** Finished API integration
- **Sarah:** Working on frontend
- **Mike:** Reviewing PRs

## Blockers

- Sarah blocked on design specs
- Need Mike to review Sarah's PR

## Action Items

| Task | Owner | Due |
|------|-------|-----|
| Deploy to staging | John | Today |
| Follow up with design team | Sarah | - |
| Review PR | Mike | EOD |

---

**Next Meeting:** Wednesday

Project Review Notes

notes = """
Q4 Review - Dec 15

Present: Leadership team, Product, Engineering

Revenue exceeded targets by 12%
Customer satisfaction at 94%
Engineering delivered 15 of 18 planned features

Challenges:
- Hiring slower than expected
- Two key features delayed

2024 Planning:
Q1 focus on performance
Q2 new product launch
Need budget approval for new hires

Actions:
CEO to approve headcount by Dec 20
VP Eng to present technical roadmap
Product to finalize Q1 priorities
"""

formatter = MeetingNotesFormatter(notes)
formatter.format()
formatter.save("q4_review.pdf")

Templates

Standard (Default)

  • Title and metadata header

  • Sections with bullet points

  • Action items table

  • Next meeting footer

Minimal

  • Simple markdown

  • No tables

  • Compact format

Detailed

  • Full metadata

  • Timestamps

  • Expanded sections

  • Decision log

Dependencies

reportlab>=4.0.0
python-dateutil>=2.8.0

Limitations

  • English language only

  • Best with structured raw notes

  • May miss context in very informal notes

  • PDF styling is basic

返回排行榜