Add OpenSpec proposal for converting markdown cover letters to PDF format using Swiss business letter standards. The proposal includes: - Swiss letter formatting with scrlttr2 and Swiss Norm configuration - Environment validation for Pandoc and LaTeX - Comprehensive error handling and user guidance - Support for Swiss German formatting and address window positioning This addresses step 7 "Generate PDFs" in the project workflow. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
59 lines
2.8 KiB
Markdown
59 lines
2.8 KiB
Markdown
# Implementation Tasks
|
|
|
|
## 1. Template Creation
|
|
- [ ] 1.1 Create Swiss letter LaTeX template at `src/.claude/templates/swiss-letter.tex`
|
|
- [ ] 1.2 Configure scrlttr2 with Swiss Norm (SN) settings
|
|
- [ ] 1.3 Add proper encoding (UTF-8, T1 font encoding) for German characters
|
|
- [ ] 1.4 Implement hyperlinks for email addresses
|
|
- [ ] 1.5 Add Pandoc variable placeholders for all frontmatter fields
|
|
- [ ] 1.6 Add inline comments explaining customizable sections
|
|
- [ ] 1.7 Test template with sample data to ensure proper formatting
|
|
|
|
## 2. Slash Command Implementation
|
|
- [ ] 2.1 Create command file at `src/.claude/commands/convert-cover-letter.md`
|
|
- [ ] 2.2 Implement cover letter file detection logic
|
|
- [ ] 2.3 Implement environment validation checks (Pandoc, LaTeX)
|
|
- [ ] 2.4 Add platform-specific installation instructions
|
|
- [ ] 2.5 Implement frontmatter parsing and validation
|
|
- [ ] 2.6 Build Pandoc command with correct arguments
|
|
- [ ] 2.7 Execute conversion and capture output
|
|
- [ ] 2.8 Implement error handling for common failure scenarios
|
|
- [ ] 2.9 Add success message with file path output
|
|
|
|
## 3. Error Handling & Messaging
|
|
- [ ] 3.1 Create clear error message for missing cover letter
|
|
- [ ] 3.2 Create error message for missing required frontmatter fields
|
|
- [ ] 3.3 Create installation guide for Pandoc (apt, brew, winget)
|
|
- [ ] 3.4 Create installation guide for LaTeX packages
|
|
- [ ] 3.5 Add error handling for YAML parsing failures
|
|
- [ ] 3.6 Add error handling for LaTeX compilation failures
|
|
- [ ] 3.7 Add error handling for file permission issues
|
|
- [ ] 3.8 Add timeout handling for long-running conversions
|
|
|
|
## 4. Testing
|
|
- [ ] 4.1 Test with complete frontmatter and body content
|
|
- [ ] 4.2 Test with minimal required frontmatter only
|
|
- [ ] 4.3 Test with optional enclosures list
|
|
- [ ] 4.4 Test with missing cover-letter.md file
|
|
- [ ] 4.5 Test with invalid YAML frontmatter
|
|
- [ ] 4.6 Test with missing required frontmatter fields
|
|
- [ ] 4.7 Test with special characters (ä, ö, ü, ß) in German text
|
|
- [ ] 4.8 Test environment validation when Pandoc is missing
|
|
- [ ] 4.9 Test environment validation when LaTeX is missing
|
|
- [ ] 4.10 Test error handling for file permission issues
|
|
- [ ] 4.11 Verify Swiss address window positioning with printed output
|
|
- [ ] 4.12 Verify date formatting follows Swiss convention
|
|
|
|
## 5. Documentation
|
|
- [ ] 5.1 Document required frontmatter structure
|
|
- [ ] 5.2 Document system requirements (Pandoc, LaTeX)
|
|
- [ ] 5.3 Add example cover-letter.md with complete frontmatter
|
|
- [ ] 5.4 Document troubleshooting steps for common errors
|
|
- [ ] 5.5 Add template customization guide
|
|
|
|
## 6. Integration
|
|
- [ ] 6.1 Update test directory with new command
|
|
- [ ] 6.2 Update test directory with new template
|
|
- [ ] 6.3 Ensure compatibility with existing cover letter generation
|
|
- [ ] 6.4 Verify workflow integration (step 7 in project.md)
|