feat: add application validation command

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>
This commit is contained in:
2025-11-02 21:00:05 +01:00
co-authored by Claude
parent f1ba0dd98d
commit 2b13cc4e69
6 changed files with 949 additions and 5 deletions
+24 -3
View File
@@ -187,14 +187,21 @@ When helping with job applications, follow this comprehensive workflow:
- Adjust which experiences and projects to emphasize
- Fine-tune key messages and tone
### 5. Content Generation (FUTURE)
### 5. Validate Application (NEW - Quality Gate)
- Run `/validate-application` to ensure application.md is complete
- Check that required sections are filled (Organization, Job Title, Job Description)
- Verify no placeholder text remains (like `[To be filled]`)
- Get warnings if input/ folder is empty or application seems unpopulated
- **Must pass before document generation**
### 6. Content Generation (FUTURE)
- Generate CV/cover letter/email based on `application.md` strategy
- Emphasize relevant experience from `profile.md`
- Incorporate keywords from the job description naturally
- Maintain factual accuracy - use only verified information from `profile.md`
- **Note**: Document generation will be implemented in a future update
### 6. Quality Assurance
### 7. Quality Assurance
- Verify all company names, dates, and facts are correct
- Ensure consistency between all documents (CV ↔ cover letter ↔ email)
- Check that tone matches the target company culture
@@ -255,6 +262,7 @@ Adjust recommendations based on the target market if the user specifies a differ
- `/validate-profile` - Validate that `profile.md` is complete and ready for application generation
- `/new-application "Company - Job Title"` - Create a new application workspace with organized folder structure
- `/populate-application` - Analyze input documents and populate application.md with job info, research, and strategy
- `/validate-application [optional-app-name]` - Validate that application.md is complete before document generation
## Example Usage
@@ -268,7 +276,9 @@ Adjust recommendations based on the target market if the user specifies a differ
3. After application is created, guide user: "Add the job posting and any other documents to `applications/pending/[folder]/input/`"
4. When user has added documents: "Navigate to the application folder and run `/populate-application`"
5. After population completes: "Review `application.md` to see the analysis and strategy"
6. Future: Generate tailored CV, cover letter, and email based on `application.md`
6. Validation step: "Run `/validate-application` to ensure the application is complete"
7. If validation passes: Ready for document generation
8. Future: Generate tailored CV, cover letter, and email based on `application.md`
### Example 2: Quick Document Request (Legacy Flow)
@@ -283,6 +293,17 @@ Adjust recommendations based on the target market if the user specifies a differ
6. Generate tailored cover letter using only information from `profile.md`
7. Suggest: "For better organization, consider using `/new-application` next time to manage the full application process"
### Example 3: Validating an Application
**User**: "Check if my TechCorp application is ready"
**Claude Code should**:
1. If user is in application folder: Run `/validate-application` (auto-detects current location)
2. If user is elsewhere: Run `/validate-application 2025-11-02-TechCorp-Software-Engineer`
3. If validation passes (✅): "Your application is complete! Organization: TechCorp, Position: Software Engineer. Ready for document generation."
4. If validation fails (❌): Show specific issues like "Organization Name: Contains placeholder '[To be filled]'" and suggest "Please update application.md or run `/populate-application` if you have documents in input/"
5. Provide clear next steps based on validation result
## Updating the Profile
If you notice missing or outdated information during application preparation: