This is a Next.js application using Fumadocs for generating and maintaining Meeting BaaS service documentation.
Run development server:
# Start development server
pnpm dev
# Build for production
pnpm buildOpen http://localhost:3000 with your browser to see the result.
The project includes several scripts for managing documentation updates:
The project includes an AI-powered enhancement script that uses OpenRouter (with Anthropic's Claude models) to improve automatically generated documentation:
# Enhance the most recent update file
pnpm enhance:updates --key=your_openrouter_api_key
# Process all update files
pnpm enhance:updates --key=your_openrouter_api_key --all
# Process updates for a specific service
pnpm enhance:updates --key=your_openrouter_api_key --service=api
# Process updates for a specific date
pnpm enhance:updates --key=your_openrouter_api_key --date=2023-10-15
# Use a different model
pnpm enhance:updates --key=your_openrouter_api_key --model=anthropic/claude-3-opus-20240229
# Enable verbose logging
pnpm enhance:updates --key=your_openrouter_api_key --verboseYou will need to obtain an OpenRouter API key from openrouter.ai to use this feature.
The project uses a centralized prompt system in scripts/prompts.ts to manage all AI enhancement prompts. This system:
-
Organizes prompts into categories:
codingStyle: Fumadocs components and usage examplesinstructions: Enhancement guidelines and rulestemplates: Reusable templates for headers and footersformatting: Code blocks and table formattingmetadata: Valid update types and servicesvalidation: Required fields and validation rules
-
Provides helper functions:
// Get a specific prompt const prompt = getPrompt('codingStyle', 'fumadocsComponents'); // Get all prompts for a category const allInstructions = getCategoryPrompts('instructions');
-
Includes type definitions for type safety:
type PromptCategory = 'codingStyle' | 'instructions' | 'templates' | 'formatting' | 'metadata' | 'validation';
-
Maintains consistent formatting and rules across all generated content
The prompt system ensures consistent documentation quality and makes it easy to update enhancement rules and templates.
Updates are automatically generated from git diff files in the git_greppers directory. These updates include service-specific styling with colored icons in the sidebar.
The project includes a script to automatically collect Git diffs from local repositories:
# Make the script executable
chmod +x git_greppers/local-git-setup.sh
# Run the setup script
./git_greppers/local-git-setup.shThis script will:
- Process the repositories defined in the configuration
- Generate diff files in the appropriate folders
- Clean existing git updates
- Generate new update files based on the diffs
You can also run the git grepper script directly with various options:
# Basic usage
./git_greppers/git_grepper.sh /path/to/repo [debug_level] [flags]
# Available flags:
# --no-diff Skip generating diffs (faster for large repositories)
# --only-with-pr-mr Only process commits with related PR/MR references
# --overwrite Overwrite existing files (default: skip existing files)
# --days N Number of days to look back (default: 7)
# Examples:
# Process with debug level 3 and only PR/MR commits
./git_greppers/git_grepper.sh /path/to/repo 3 --only-with-pr-mr
# Process and overwrite existing files
./git_greppers/git_grepper.sh /path/to/repo 3 --overwrite
# Skip diffs and only process PR/MR commits
./git_greppers/git_grepper.sh /path/to/repo 3 --no-diff --only-with-pr-mr
# Process commits from the last 14 days
./git_greppers/git_grepper.sh /path/to/repo 3 --days 14You need to configure your repository paths in git_greppers/config.json:
{
"repositories": {
"meeting-baas": "/path/to/meeting-baas",
"speaking-meeting-bot": "/path/to/speaking-meeting-bot",
"sdk-generator": "/path/to/sdk-generator",
"mcp-on-vercel": "/path/to/mcp-on-vercel",
"mcp-on-vercel-documentation": "/path/to/mcp-on-vercel-documentation",
"mcp-baas": "/path/to/mcp-baas"
}
}Each path should point to a valid Git repository that you want to include in the documentation updates.
jqis required for parsing the configuration file. Install it using:brew install jq
# Clean all git update files
pnpm clean:git-updates
# Generate git diff updates (non-destructive - only creates new files)
pnpm test:git-updates
# Regenerate all git diff updates (destructive - deletes and recreates all files)
pnpm regenerate:git-updates
# Update a single repository (e.g., speaking-meeting-bot)
pnpm update:speaking-bots
# Update any repository by name
pnpm update:repo $REPO
# Setup git updates - cleans and regenerates
pnpm setup:git-updatesImportant Note:
test:git-updatesonly creates new files without modifying existing onesregenerate:git-updatesdeletes all existing update files before creating new ones (will overwrite customized files)- If you've customized any update files, prefer using
test:git-updatesto preserve your changes
To remove all old generated git diff files (for a full refresh or to save disk space), run:
rm git_greppers/*-git-diffs/diffs-*.diffThis will delete all files named diffs-YYYY-MM-DD.diff in every repository's git diff directory under git_greppers/. You can also remove log files if desired:
rm git_greppers/*-git-diffs/*