# Implementation Tasks: Archive Applications ## Overview This document outlines the ordered list of tasks to implement the application archiving feature. Tasks are designed to deliver user-visible progress incrementally with validation at each step. ## Task Sequence ### Task 1: Create Archive Application Command File **Description:** Create the main command implementation file with complete procedural instructions for Claude Code. **Actions:** 1. Create file: `src/.claude/commands/archive-application.md` 2. Follow pattern from `write-cover-letter.md` and `write-application-email.md` 3. Include complete implementation logic in markdown format: - Command purpose and overview - Argument parsing (reason, application-name, flags) - Location detection (auto-detect vs. explicit name) - Safety checks for generated documents - Status field update logic - Directory creation - File move operation - Error handling for all scenarios - Success messaging **Validation:** - [ ] File exists and follows command pattern - [ ] All scenarios from proposal are covered - [ ] Error handling is comprehensive - [ ] Help documentation is clear **Deliverable:** `src/.claude/commands/archive-application.md` (~500-700 lines) **Dependencies:** None --- ### Task 2: Update Framework Documentation **Description:** Update `CLAUDE.md` to include archiving in the framework workflow. **Actions:** 1. Add new section "Archiving Applications" after "Application Management" section 2. Include: - When to archive applications - Command syntax and examples - Safety check explanation - Archive folder structure - Integration with workflow 3. Update "Available Commands" list with `/archive-application` 4. Add archiving to workflow examples **Validation:** - [ ] New section is clear and comprehensive - [ ] Commands list includes archive command - [ ] Examples are helpful and accurate - [ ] Integration with existing workflow is explained **Deliverable:** Updated `src/CLAUDE.md` (~40 lines added) **Dependencies:** Task 1 (understand command functionality) --- ### Task 3: Create Application Archiving Specification **Description:** Create formal OpenSpec specification for the archiving feature. **Actions:** 1. Create directory: `openspec/specs/application-archiving/` 2. Create file: `openspec/specs/application-archiving/spec.md` 3. Include requirements with scenarios for: - Application Archiving Command - Safety Warnings for Generated Documents - Status and Timestamp Tracking - Archive Folder Structure 4. Follow OpenSpec format: `## Requirements` → `### Requirement:` → `#### Scenario:` **Validation:** - [ ] All proposal behaviors are captured as requirements - [ ] Each requirement has clear scenarios - [ ] Scenarios follow WHEN/THEN/AND format - [ ] Spec validates with `openspec validate archive-applications` **Deliverable:** `openspec/specs/application-archiving/spec.md` (~150-200 lines) **Dependencies:** Task 1 (understand implementation details) --- ### Task 4: Update Application Management Specification **Description:** Update existing spec to document application lifecycle including archival. **Actions:** 1. Open: `openspec/specs/application-management/spec.md` 2. Add new requirement: "Application Lifecycle Management" 3. Include scenarios for: - Application states (Draft, Rejected, Not Interested) - Folder organization by state (pending/, rejected/, not-interested/) - Status field tracking through lifecycle **Validation:** - [ ] Lifecycle states are clearly defined - [ ] Folder organization is documented - [ ] Integration with existing requirements is clear - [ ] Spec validates with `openspec validate` **Deliverable:** Updated `openspec/specs/application-management/spec.md` (~30 lines added) **Dependencies:** Task 3 (understand new archiving spec) --- ### Task 5: Verify Template Status Field **Description:** Verify that the application template has the Status field required for archiving. **Actions:** 1. Open: `src/.claude/templates/application-template.md` 2. Verify line 12 contains: `- **Status**: Draft` 3. Verify Status field is in Metadata section 4. Document finding (no changes needed if field exists) **Validation:** - [ ] Status field exists at line 12 - [ ] Field is in correct format: `- **Status**: Draft` - [ ] Field is within Metadata section - [ ] No changes needed (field already present) **Deliverable:** Verification confirmation (no file changes) **Dependencies:** None (verification task) --- ### Task 6: Create Archive Folders (Test Setup) **Description:** Create initial archive folder structure for testing purposes. **Actions:** 1. Create directory: `src/applications/rejected/` 2. Create directory: `src/applications/not-interested/` 3. Add `.gitkeep` files to preserve empty directories in version control **Validation:** - [ ] `src/applications/rejected/` exists - [ ] `src/applications/not-interested/` exists - [ ] Both directories are tracked in git - [ ] Directories are ready for archiving operations **Deliverable:** Archive folder structure **Dependencies:** None **Note:** These folders will be created on-demand by the command, but creating them upfront ensures they're tracked in version control. --- ### Task 7: Manual Testing - Basic Archiving **Description:** Test basic archiving functionality with simple application. **Test Cases:** 1. Create test application: `/new-application "TestCo - Test Role"` 2. Navigate to application folder 3. Run: `/archive-application rejected` 4. Verify: - Application moved to `applications/rejected/` - Status field updated with timestamp - All files preserved (application.md, input/, attachments/) **Validation:** - [ ] Application successfully moved - [ ] Status field shows: `Rejected (Archived: [timestamp])` - [ ] All folders and files intact - [ ] Success message shows correct details **Deliverable:** Test results documentation **Dependencies:** Tasks 1-2 (command implementation and docs) --- ### Task 8: Manual Testing - Safety Checks **Description:** Test safety warning functionality with generated documents. **Test Cases:** 1. Create test application with cover letter and email 2. Run: `/archive-application rejected` (without --force) 3. Verify warning message appears 4. Verify archiving is blocked 5. Run: `/archive-application rejected --force` 6. Verify archiving proceeds **Validation:** - [ ] Warning appears when documents detected - [ ] Warning lists all generated documents - [ ] Archiving stops without --force - [ ] --force flag bypasses warning - [ ] Documents are preserved in archive **Deliverable:** Test results documentation **Dependencies:** Task 7 (basic functionality working) --- ### Task 9: Manual Testing - Error Handling **Description:** Test error scenarios and messages. **Test Cases:** 1. Invalid reason: `/archive-application accepted` 2. Application not found: `/archive-application rejected NonExistent` 3. Not in application folder: Run from root without parameter 4. Already archived: Try to archive same application twice **Validation:** - [ ] Invalid reason shows correct error with valid options - [ ] Not found shows available applications - [ ] Wrong location shows usage guidance - [ ] Already archived shows helpful message - [ ] All error messages are clear and actionable **Deliverable:** Test results documentation **Dependencies:** Task 7 (basic functionality working) --- ### Task 10: Manual Testing - Auto-Detection **Description:** Test automatic application detection from current directory. **Test Cases:** 1. Create test application 2. Navigate INTO application folder: `cd applications/pending/[folder]/` 3. Run: `/archive-application not-interested` (no app name) 4. Verify correct application is detected and archived **Validation:** - [ ] Auto-detection identifies correct application - [ ] Archiving proceeds without application name parameter - [ ] Success message shows detected application name - [ ] Application moved to correct archive folder **Deliverable:** Test results documentation **Dependencies:** Task 7 (basic functionality working) --- ### Task 11: OpenSpec Validation **Description:** Validate all OpenSpec specifications are correctly formatted. **Actions:** 1. Run: `openspec validate archive-applications --strict` 2. Resolve any validation errors 3. Run: `openspec validate` (validate entire project) 4. Ensure all specs pass validation **Validation:** - [ ] `openspec validate archive-applications --strict` passes - [ ] No formatting errors in proposal.md - [ ] No formatting errors in spec files - [ ] All requirements have at least one scenario **Deliverable:** Clean validation results **Dependencies:** Tasks 3-4 (all specs created) --- ### Task 12: Documentation Review **Description:** Review all documentation for clarity, completeness, and accuracy. **Actions:** 1. Review `proposal.md` for completeness 2. Review `tasks.md` for task ordering and clarity 3. Review `archive-application.md` command for user-friendliness 4. Review `CLAUDE.md` updates for integration with existing docs 5. Review spec files for requirement coverage **Validation:** - [ ] All documents are clear and well-organized - [ ] No ambiguous or confusing sections - [ ] Examples are helpful and accurate - [ ] Error messages are user-friendly - [ ] Integration with existing workflow is seamless **Deliverable:** Documentation review notes **Dependencies:** Tasks 1-4 (all documentation created) --- ### Task 13: Final Integration Check **Description:** Verify archiving integrates smoothly with existing application workflow. **Test Workflow:** 1. Create complete application: `/new-application "FinalTest - Role"` 2. Populate: `/populate-application` (with documents in input/) 3. Validate: `/validate-application` 4. Generate cover letter: `/write-cover-letter` 5. Generate email: `/write-application-email` 6. Archive: `/archive-application rejected` **Validation:** - [ ] All commands work in sequence - [ ] Safety warning appears (cover letter and email detected) - [ ] --force flag allows archiving - [ ] All generated documents preserved in archive - [ ] Workflow feels natural and intuitive **Deliverable:** End-to-end workflow validation **Dependencies:** All previous tasks (complete implementation) --- ## Task Summary | Task | Description | Priority | Est. Time | Dependencies | |------|-------------|----------|-----------|--------------| | 1 | Create archive command file | P1 | 60 min | None | | 2 | Update framework docs | P1 | 20 min | Task 1 | | 3 | Create archiving spec | P1 | 30 min | Task 1 | | 4 | Update management spec | P1 | 15 min | Task 3 | | 5 | Verify template status field | P2 | 5 min | None | | 6 | Create archive folders | P2 | 5 min | None | | 7 | Test basic archiving | P1 | 15 min | Tasks 1-2 | | 8 | Test safety checks | P1 | 15 min | Task 7 | | 9 | Test error handling | P1 | 15 min | Task 7 | | 10 | Test auto-detection | P2 | 10 min | Task 7 | | 11 | OpenSpec validation | P1 | 10 min | Tasks 3-4 | | 12 | Documentation review | P2 | 20 min | Tasks 1-4 | | 13 | Final integration check | P1 | 20 min | All tasks | **Total Estimated Time:** ~4 hours ## Parallelization Opportunities Tasks that can be done in parallel: - Tasks 1, 5, 6 (independent) - Tasks 3, 4 (both specs, can work simultaneously) - Tasks 8, 9, 10 (all testing, can run concurrently) Critical path: Task 1 → Task 2 → Task 7 → Tasks 8-10 → Task 13 ## Validation Checklist After all tasks complete, verify: - [ ] `/archive-application` command works from within application folder - [ ] `/archive-application` command works with application name parameter - [ ] Safety warnings appear when documents exist - [ ] `--force` flag bypasses warnings - [ ] Status field is updated with correct timestamp - [ ] Applications move to correct archive folder - [ ] All files and folders are preserved - [ ] Error messages are clear and helpful - [ ] OpenSpec validation passes - [ ] Documentation is complete and accurate - [ ] Integration with existing workflow is seamless ## Rollback Plan If issues arise during implementation: 1. **Command not working**: Comment out command file, revert CLAUDE.md changes 2. **Spec validation fails**: Fix spec formatting issues, re-validate 3. **File corruption**: Archive operations preserve originals, can restore from archive 4. **Integration issues**: Archive feature is additive, can be disabled without affecting other commands ## Success Criteria Implementation is complete when: 1. All tasks have passing validation 2. OpenSpec validation passes with `--strict` flag 3. All test scenarios pass 4. Documentation is clear and complete 5. Feature integrates smoothly with existing workflow 6. No breaking changes to existing functionality --- **Status:** Task list ready for implementation **Total Tasks:** 13 **Estimated Time:** ~4 hours **Priority Distribution:** 9 P1, 4 P2