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>
121 lines
4.2 KiB
Markdown
121 lines
4.2 KiB
Markdown
# 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
|