Archived completed OpenSpec change after successful deployment.
The template path fix has been applied to specs and is now in production.
Change archived as: 2026-01-12-fix-coverletter-template-path
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
The /convert-cover-letter command was using a placeholder syntax
[path-to-swiss-letter.tex] which caused inconsistent template discovery.
Claude Code would sometimes skip the template or fail to find it, resulting
in cover letters using Pandoc's default template instead of Swiss Norm formatting.
This fix replaces the placeholder with an explicit relative path
(../../../src/.claude/templates/swiss-letter.tex) that reliably resolves
from the typical execution location (applications/pending/[job-folder]/)
to the project root and then to the template directory.
Changes:
- Updated src/.claude/commands/convert-cover-letter.md with explicit template path
- Enhanced specification with template path resolution requirement
- Added clarification about path resolution relative to execution location
Testing:
- Verified PDF generation with Swiss letter template from application folders
- Confirmed consistent template discovery across different working directories
- Validated Swiss Norm formatting (address window positioning, KOMA-Script)
Related: openspec/changes/fix-coverletter-template-path
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Archive all completed changes and create final specifications:
Archived changes (2025-11-03):
- add-application-email (8 requirements)
- add-application-management (9 requirements)
- add-application-validation (9 requirements)
- add-cover-letter-generation (13 requirements)
- add-cover-letter-pdf-conversion (7 requirements)
- add-profile-template (4 requirements)
- add-profile-validation (3 requirements)
Created specifications:
- applicant-profile: User profile management with validation
- application-email: Email generation for job applications
- application-management: Application workflow and folder structure
- application-validation: Application completeness checking
- cover-letter-generation: Tailored cover letter creation
- cover-letter-pdf-conversion: PDF export with Swiss formatting
All features are now fully documented in openspec/specs/ and ready for use.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Add cover letter PDF conversion with Swiss business letter standards.
Features:
- Convert markdown cover letters to PDF using Pandoc + LaTeX
- Swiss business letter formatting (scrlttr2 with Swiss Norm)
- Conditional German language support (Telefon, Anlagen labels)
- Environment validation with helpful installation instructions
- No page numbering on output documents
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Disable page numbering (pagenumber=false) to remove "Page 2" footer
- Add conditional German language support (babel with ngerman/german)
- German labels (Telefon, Anlagen) when texlive-lang-german is installed
- Graceful fallback to English labels when language package unavailable
- Update documentation to clarify language package as recommended
This addresses user feedback about English labels in German letters and unwanted page numbers on multi-page letters.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
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>
Update /write-cover-letter command to generate more natural, less
pompous cover letters. Changes:
- Add comprehensive "Natural Writing Style" principles section
- Avoid exaggerated/pompous language (no superlatives, no marketing speak)
- Use modest, factual tone instead of self-promotional language
- Include 1-2 subtle imperfections for human authenticity
- Update all examples to demonstrate natural, conversational tone
- Emphasize being specific over making generic claims
- Encourage understatement rather than overstatement
Generated cover letters will now sound like they were written by a real
person, not AI or a marketing agency.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Add /write-cover-letter slash command that generates tailored cover
letters based on application strategy (application.md) and applicant
profile (profile.md). Features:
- Auto-validates application before generation (stops if incomplete)
- Protects existing cover-letter.md (requires --force to overwrite)
- Generates 300-400 word cover letter with standard structure
- Applies tone from application.md (Formal/Balanced/Casual)
- Infers language from context (German/English)
- Uses match strategy to emphasize relevant experiences
- Incorporates company research and key messages
- Supports flags: --skip-validation, --force, --help
This is the first document generation command in the workflow.
OpenSpec: add-cover-letter-generation
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Add /validate-application slash command to ensure application.md files
are complete before document generation. Validates required sections
(Organization Info, Job Info, Job Description), detects placeholders
like [To be filled], warns if input/ folder is empty, and provides
structured pass/fail output consistent with /validate-profile.
This acts as a quality gate in the application workflow, preventing
placeholder text from appearing in generated documents.
OpenSpec: add-application-validation
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Add structured workflow for managing job applications with /new-application and /populate-application commands. Users can now organize applications in dated folders, store job documents, and have AI analyze requirements to populate strategy documents. Includes bug fix for src/ path references and safe update documentation.
OpenSpec: add-application-management
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Add profile validation mechanism to ensure completeness before application generation.
- Created /validate-profile slash command with placeholder detection
- Updated CLAUDE.md to require automatic validation before applications
- Validation checks required sections and provides clear feedback
- Allows explicit skip with warning for edge cases
- All 15 implementation tasks completed
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Add /validate-profile slash command and automatic validation before application generation.
Implementation:
- Created src/.claude/commands/validate-profile.md with validation logic
- Detects placeholder patterns like [Your name], [Company], etc.
- Checks required sections: Personal Info, Summary, Work Experience
- Allows optional sections to be empty (Projects, Certifications)
- Provides clear pass/fail feedback with actionable guidance
- Updated src/CLAUDE.md to require validation before applications
- Added Profile Validation section with validation process
- Integrated validation as step 0 in workflow
- Documented explicit skip validation option with warning
- Added /validate-profile to Available Commands
- All 15 tasks completed and validated
Implements: add-profile-validation
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Create OpenSpec proposal to add profile validation before application generation.
- Add /validate-profile slash command to check profile completeness
- Detect placeholder patterns like [Your name], [Company], etc.
- Update CLAUDE.md to require validation before applications
- Define required vs optional sections
- Allow explicit validation skip with warning
Proposal validated and ready for implementation.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Add applicant profile template framework in src/ directory.
This is the first foundational piece of the job application framework.
- Created OpenSpec proposal for profile template
- Implemented src/profile.md template with 8 sections
- Implemented src/CLAUDE.md with Claude Code instructions
- All tasks completed and validated
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Create distributable job application framework in src/ directory:
- Add src/profile.md template with 8 sections (Personal Info, Summary, Experience, Education, Skills, Projects, Certifications, Languages)
- Add src/CLAUDE.md with comprehensive instructions for Claude Code
- Include helpful comments, examples, and formatting guidelines
- Update tasks.md to mark all implementation tasks complete
Users can now copy src/ to any location and use the framework immediately.
Implements: add-profile-template
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Create OpenSpec proposal to add profile.md template and framework structure under src/ directory.
- Add src/ directory for distributable framework files
- Create profile.md template with all required sections
- Add CLAUDE.md instructions for Claude Code integration
- Ensure framework can be copied and used independently
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>