Skip to content
meeting-schema-validation logo

Meeting Schema Validation

meeting-schema-validation

Use when processing meeting transcripts - validates YAML frontmatter has required fields (date, type, customer, participants) and proper naming convention

SKILL.md

Full skill instructions

Meeting Schema Validation

Purpose

Ensure all meeting transcripts maintain consistent schema for:

  • Reliable meeting synthesis
  • Accurate customer attribution
  • Proper temporal filtering
  • Searchable meeting archives

When to Use This Skill

Activate automatically when:

  • Processing new meeting transcripts
  • meeting-synthesis skill loads meeting files
  • User adds meetings to datasets/​meetings/
  • Validating meeting data integrity
  • Any workflow depends on meeting transcript structure

Required Schema

YAML Frontmatter Requirements

All meetings must begin with:

---
date: "YYYY-MM-DD"
type: "sales" | "product" | "customersuccess" | "onboarding" | "strategy" | "ops" | "marketing" | "general"
customer: "Company Name"  # Primary customer/​company
companies: ["Company A", "Company B"]  # All companies involved
participants: ["Person Name", "Another Person"]
granola_folder: "Sales" | "Product" | "CustomerSuccess" | etc.
granola_url: "https://app.granola.so/​notes/​..."
meeting_note_id: "uuid-format-string"
tags: ["2025Q3", "keyword", "topic"]
---

Required fields:

  • date: ISO format YYYY-MM-DD
  • type: One of the defined meeting types
  • customer: Primary customer/​company name
  • companies: Array of all involved companies
  • participants: Array of participant names

Optional but recommended:

  • granola_folder: Source folder (for tracking)
  • granola_url: Link to original notes
  • meeting_note_id: Unique identifier (UUID)
  • tags: Searchable keywords and quarters

File Naming Convention

Required format:

YYYY-MM-DD_{type}_{titleSlug}_{companyOrFunctionSlug}_{participantsSlug}.md

Examples:

2025-10-15_sales_discovery-call_prettyboy_jenna-mike.md
2025-10-14_product_feature-planning_internal_jay-sarah.md
2025-10-13_customersuccess_qbr_compoundstudio_alex.md

Components:

  1. YYYY-MM-DD: Meeting date (matches frontmatter date field)
  2. {type}: Meeting type (matches frontmatter type field)
  3. {titleSlug}: Kebab-case title describing meeting topic
  4. {companyOrFunctionSlug}: Company name or internal function (kebab-case)
  5. {participantsSlug}: Key participants (kebab-case, abbreviated)

Required Content Sections

All meetings must contain these sections:

## ⬇️ AI Summary
[Executive summary of key points and outcomes]

## ⬇️ Action Items
- [ ] Action item 1
- [ ] Action item 2

## ⬇️ Full Transcript
[Raw transcript or detailed notes]

## ⬇️ Links
- [Link to related resource]

Section order is standardized (aids parsing and synthesis)

Directory Structure

Meetings organized by:

datasets/​meetings/
├── Customers/
│   └── {CustomerName}/
│       └── {YYYY}/
│           └── MM-DD_{type}_{title}_{customer}_{participants}.md
└── Internal/
    └── {Function}/  # Product, CS, Sales, Marketing, Ops
        └── {YYYY}/
            └── MM-DD_{type}_{title}_{function}_{participants}.md

Examples:

datasets/​meetings/​Customers/​PrettyBoy/​2025/​10-15_sales_discovery-call_prettyboy_jenna-mike.md
datasets/​meetings/​Internal/​Product/​2025/​10-14_product_feature-planning_internal_jay-sarah.md

Validation Process

1. Load Meeting File

Read meeting from:

  • datasets/​meetings/​Customers/​{Customer}/​{YYYY}/​{filename}.md, OR
  • datasets/​meetings/​Internal/​{Function}/​{YYYY}/​{filename}.md

2. Validate YAML Frontmatter

Check required fields exist:

✓ date present and format YYYY-MM-DD?
✓ type present and valid value?
✓ customer present (non-empty string)?
✓ companies present and array?
✓ participants present and array?

Validate field formats:

  • date: Regex ^\d{4}-\d{2}-\d{2}$
  • type: Must be one of: sales, product, customersuccess, onboarding, strategy, ops, marketing, general
  • customer: Non-empty string
  • companies: Array with at least one entry
  • participants: Array with at least one entry
  • tags: Array (if present)
  • meeting_note_id: UUID format (if present)
  • granola_url: Valid URL (if present)

3. Validate File Naming

Extract components from filename:

^(\d{4}-\d{2}-\d{2})_([a-z]+)_([a-z0-9-]+)_([a-z0-9-]+)_([a-z0-9-]+)\.md$

Validate consistency:

  • Date in filename matches frontmatter date?
  • Type in filename matches frontmatter type?
  • Filename uses kebab-case throughout?
  • Filename follows YYYY-MM-DD prefix pattern?

4. Validate Content Sections

Check required sections exist:

✓ ## ⬇️ AI Summary
✓ ## ⬇️ Action Items
✓ ## ⬇️ Full Transcript
✓ ## ⬇️ Links

Validation method:

grep -q "## ⬇️ AI Summary" meeting.md
grep -q "## ⬇️ Action Items" meeting.md
grep -q "## ⬇️ Full Transcript" meeting.md
grep -q "## ⬇️ Links" meeting.md

5. Validate Directory Placement

Check file is in correct directory:

  • Customer meetings → datasets/​meetings/​Customers/​{CustomerName}/​{YYYY}/
  • Internal meetings → datasets/​meetings/​Internal/​{Function}/​{YYYY}/

Consistency checks:

  • Directory customer name matches frontmatter customer?
  • Directory year matches frontmatter date year?
  • Directory function matches meeting context (for internal meetings)?

6. Generate Report

If all pass:

# Meeting Schema Validation: PASS

**File**: 2025-10-15_sales_discovery-call_prettyboy_jenna-mike.md

✓ YAML frontmatter complete: All required fields present
✓ Field formats valid:
  - date: 2025-10-15 (valid ISO format)
  - type: sales (valid type)
  - customer: PrettyBoy (present)
  - companies: ["PrettyBoy"] (array, 1 entry)
  - participants: ["Jenna Smith", "Mike Johnson"] (array, 2 entries)
✓ Filename format valid: YYYY-MM-DD_{type}_{title}_{customer}_{participants}.md
✓ Filename consistency: Date and type match frontmatter
✓ Required sections present: AI Summary, Action Items, Full Transcript, Links
✓ Directory placement valid: Customers/​PrettyBoy/​2025/

**Status**: Meeting schema validated

If any fail:

# Meeting Schema Validation: FAIL

**File**: 2025-10-15_discovery_prettyboy.md

✗ YAML frontmatter incomplete:
  - Missing field: `participants`
  - Missing field: `companies`

✗ Filename format invalid:
  - Expected: YYYY-MM-DD_{type}_{title}_{customer}_{participants}.md
  - Actual: 2025-10-15_discovery_prettyboy.md
  - Missing: {participants} component

✗ Required sections missing:
  - Missing: ## ⬇️ Action Items

✗ Directory placement incorrect:
  - File location: datasets/​meetings/​2025-10-15_discovery_prettyboy.md
  - Expected: datasets/​meetings/​Customers/​PrettyBoy/​2025/

**Required fixes**:
1. Add missing frontmatter fields: participants, companies
2. Rename file to include all components
3. Add missing section: ## ⬇️ Action Items
4. Move file to correct directory: Customers/​PrettyBoy/​2025/

**Status**: NEEDS_FIX

7. Block or Approve

If PASS:

  • Meeting can be used in synthesis workflows
  • Schema integrity confirmed
  • Ready for processing

If FAIL:

  • Meeting blocked from synthesis
  • Workflows depending on this meeting flagged
  • Must address violations before use

Integration with Workflows

Meeting Synthesis Integration

Invoked by:

  • meeting-synthesis skill (before processing meetings)
  • product-planning workflow (validates meetings in time window)
  • cs-prep workflow (validates customer meeting collection)

Blocking behavior:

  • If schema validation fails → meeting skipped from synthesis
  • User notified of schema violations
  • Invalid meetings logged for manual review

Manual Validation

Direct usage: User can validate existing meetings:

"Validate meeting schema for datasets/​meetings/​Customers/​PrettyBoy/​2025/​10-15_sales_discovery-call_prettyboy_jenna-mike.md"

Auto-Correction

For minor issues, offer auto-correction:

Correctable issues:

  • Missing companies array: Auto-populate from customer field
  • Missing tags array: Auto-generate from date (e.g., "2025Q3") and type
  • Incorrect directory: Suggest correct path and offer to move

Non-correctable issues:

  • Missing required fields (date, type, customer, participants)
  • Invalid field formats
  • Missing required sections → These require manual fixes

Success Criteria

Meeting schema validated when:

  • All required frontmatter fields present and valid
  • Filename follows naming convention
  • Filename consistent with frontmatter
  • All required sections present
  • File in correct directory
  • Validation report shows PASS status

Common Mistakes

MistakeFix
Missing participants fieldAdd array of participant names
Invalid type valueUse one of defined types (sales, product, etc.)
Date format "10/​15/​2025"Use ISO format: "2025-10-15"
Filename missing componentsInclude all: date_type_title_customer_participants
Wrong directoryMove to Customers/​{Name}/​{YYYY}/ or Internal/​{Function}/​{YYYY}/

Related Skills

  • meeting-synthesis: Uses validated meetings for signal extraction
  • source-integrity: Complementary validation for other source types
  • product-planning: Depends on valid meeting schema

Anti-Rationalization Blocks

Common excuses that are explicitly rejected:

RationalizationReality
"Missing field is optional"Required fields are mandatory.
"Close enough" on namingFollow convention exactly.
"Will fix schema later"Fix now or skip from synthesis.
"Manual meetings don't need schema"All meetings follow schema.

More Marketing skills

copywriting logo
Marketing

copywriting

Marketing copy for homepages, landing pages, pricing pages, and other conversion-focused web pages.

53.3K 216.1K
View
flux-2-klein logo
Marketing

flux-2-klein

Fast image generation with Flux 2 Klein, optimized for sub-second iteration and multi-reference brand styling.

52 176.2K
View

Psychological principles and mental models for understanding customer behavior and influencing marketing decisions.

53.3K 153K
View

Plan searchable and shareable content that drives traffic, builds authority, and generates leads.

53.3K 150.9K
View

Build SEO-optimized pages at scale using templates, data, and proven playbook patterns.

53.3K 140.1K
View

Brainstorm and prioritize marketing strategies tailored to your SaaS stage, budget, and goals.

53.3K 137.2K
View
ai-seo logo
Marketing

ai-seo

Optimize content for discovery, citation, and visibility across AI search platforms and LLM assistants.

53.3K 136.7K
View
copy-editing logo
Marketing

copy-editing

Systematic improvement of existing marketing copy through seven focused editing passes.

53.3K 136.4K
View

Plan and optimize your website's page hierarchy, navigation, URL structure, and internal linking.

53.3K 112.8K
View
revops logo
Marketing

revops

Design and optimize systems connecting marketing, sales, and customer success into a unified revenue engine.

53.3K 104.9K
View

Applies Anthropic's official brand colors and typography to any sort of artifact that may benefit from having Anthropic's look-and-feel. Use it when brand colors or style guidelines, visual formatting, or company design standards apply.

179.7K 100.1K
View

Convert websites into professional HyperFrames videos with guided storyboarding and brand-aligned composition.

57K 93.5K
View

Sales & marketing AI tools

KreadoAI logo
Sales & marketing

KreadoAI

Revolutionize Video Creation with AI-Generated Avatars and Voices

Paid
View
Followr logo
Sales & marketing

Followr

Social media on autopilot

Paid
View
Logodiffusion logo
Sales & marketing

Logodiffusion

Design custom logos instantly with AI.

Paid
View
I
Sales & marketing

Ideogram

Text-heavy marketing and design images

Freemium
View
Prompt Silo logo
Sales & marketing

Prompt Silo

Boost Your SEO with Content and SEO Silos

Free
View
Marketing Blocks logo
Sales & marketing

Marketing Blocks

Revolutionize Your Marketing with AI-Powered MarketingBlocks!

Paid
View
Scrip AI logo
Sales & marketing

Scrip AI

10X faster & free AI content creation for 100+ use cases

Free
View
Tribescaler logo
Sales & marketing

Tribescaler

Tribescaler | Make Your Tweets Go Viral

Paid
View