chore: archive completed OpenSpec changes
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>
This commit is contained in:
@@ -0,0 +1,120 @@
|
||||
# Proposal: Application Validation
|
||||
|
||||
## Why
|
||||
|
||||
Currently, users can create and populate applications using `/new-application` and `/populate-application`, but there's no validation mechanism to ensure the application.md files are complete before generating professional documents (CV, cover letter, email).
|
||||
|
||||
**Problems without validation:**
|
||||
- Users might try to generate documents with placeholder text like `[To be filled]` still present
|
||||
- Incomplete job information could lead to poorly targeted applications
|
||||
- No quality gate to catch missing critical information before document generation
|
||||
- Users might forget to run `/populate-application` after adding input documents
|
||||
|
||||
**Similar to `/validate-profile`**, we need a validation command that acts as a quality gate, ensuring application.md files are ready for document generation.
|
||||
|
||||
## What
|
||||
|
||||
Add a `/validate-application` slash command that validates the completeness of application.md files.
|
||||
|
||||
### Core Functionality
|
||||
|
||||
1. **Auto-detection**: When run without parameters, detect if current directory is inside an application folder
|
||||
2. **Explicit path**: Accept optional application folder name/path as parameter
|
||||
3. **Required section validation**: Check that critical sections are filled (Organization Info, Job Info, Job Description Summary)
|
||||
4. **Placeholder detection**: Identify unfilled template placeholders like `[To be filled]`, `[...]`, bracket patterns
|
||||
5. **Population awareness**: Warn if `input/` folder is empty or application seems unpopulated
|
||||
6. **Binary pass/fail**: Clear ✅ PASSED or ❌ FAILED status (consistent with `/validate-profile`)
|
||||
7. **Actionable errors**: Show specific issues with quoted placeholder text and guidance on how to fix
|
||||
|
||||
### Optional Sections
|
||||
|
||||
These can remain incomplete without causing validation failure:
|
||||
- Match Strategy
|
||||
- Key Messages
|
||||
- Tone of Voice
|
||||
- Research Notes
|
||||
- Document Checklist
|
||||
|
||||
### User Experience
|
||||
|
||||
```bash
|
||||
# Run from inside application folder
|
||||
cd applications/pending/2025-11-02-TechCorp-Senior-Developer
|
||||
/validate-application
|
||||
|
||||
# Or provide path from anywhere
|
||||
/validate-application 2025-11-02-TechCorp-Senior-Developer
|
||||
```
|
||||
|
||||
**Success output:**
|
||||
```
|
||||
✅ Application Validation: PASSED
|
||||
|
||||
Your application is complete and ready for document generation!
|
||||
|
||||
Summary:
|
||||
- Organization: TechCorp
|
||||
- Position: Senior Developer
|
||||
- Job requirements: 12 identified
|
||||
- Match strategy: Complete
|
||||
- Input documents: 3 files analyzed
|
||||
|
||||
You can now proceed with generating tailored CV, cover letter, and application email.
|
||||
```
|
||||
|
||||
**Failure output:**
|
||||
```
|
||||
❌ Application Validation: FAILED
|
||||
|
||||
Your application has incomplete sections that need attention.
|
||||
|
||||
Issues found:
|
||||
|
||||
## Organization Information
|
||||
- [ ] Organization Name: Contains placeholder "[To be filled]"
|
||||
|
||||
## Job Description Summary
|
||||
- [ ] Responsibilities: No responsibilities documented
|
||||
- [ ] Required Skills: Contains placeholder "[List required skills]"
|
||||
|
||||
## Population Status
|
||||
⚠️ Input folder appears empty. Consider:
|
||||
1. Adding job posting and related documents to input/
|
||||
2. Running /populate-application to extract information
|
||||
|
||||
Please update application.md, then run /validate-application again.
|
||||
```
|
||||
|
||||
## Impact
|
||||
|
||||
### Benefits
|
||||
- **Quality gate**: Prevents generating documents with placeholder text
|
||||
- **User guidance**: Clear feedback on what's missing and how to fix it
|
||||
- **Workflow integration**: Natural step before document generation
|
||||
- **Consistency**: Matches `/validate-profile` pattern users already know
|
||||
- **Error prevention**: Catches incomplete applications early
|
||||
|
||||
### Changes Required
|
||||
- New slash command: `/validate-application`
|
||||
- Documentation updates in `src/CLAUDE.md`
|
||||
- No changes to existing commands or templates
|
||||
|
||||
### User Workflow Update
|
||||
```
|
||||
1. Validate profile (/validate-profile)
|
||||
2. Initialize application (/new-application)
|
||||
3. Add documents to input/ folder
|
||||
4. Populate application (/populate-application)
|
||||
5. **Validate application (/validate-application)** ← NEW
|
||||
6. Generate documents (future: CV, cover letter, email)
|
||||
```
|
||||
|
||||
## Implementation Approach
|
||||
|
||||
Follow the same pattern as `/validate-profile`:
|
||||
- Read application.md and parse sections
|
||||
- Check for bracket patterns: `\[([^\]]+)\]`
|
||||
- Validate required sections have real content
|
||||
- Check input/ folder exists and has files
|
||||
- Provide structured, actionable error messages
|
||||
- Use encouraging tone and clear next steps
|
||||
Reference in New Issue
Block a user