267 lines
8.8 KiB
Markdown
267 lines
8.8 KiB
Markdown
---
|
|
description: Automatically extract and organize AI conversation export zip files into proper directory structure
|
|
---
|
|
|
|
# Extract Exports Command
|
|
|
|
Automatically extract AI conversation export zip files (Claude and/or ChatGPT) and organize them into the proper directory structure for skills analysis.
|
|
|
|
## What This Command Does
|
|
|
|
1. **Detects export zip files** in your current directory
|
|
2. **Identifies platform type** (Claude vs ChatGPT) by examining contents
|
|
3. **Creates directory structure** if it doesn't exist
|
|
4. **Extracts and organizes files** into correct locations
|
|
5. **Validates file placement** and reports results
|
|
6. **Cleans up** temporary files and optionally removes original zips
|
|
|
|
## Expected Directory Structure After Extraction
|
|
|
|
```
|
|
your-project/
|
|
├── data-exports/
|
|
│ ├── claude/ # Claude export files
|
|
│ │ ├── conversations.json
|
|
│ │ ├── projects.json
|
|
│ │ └── users.json
|
|
│ └── chatgpt/ # ChatGPT export files
|
|
│ ├── conversations.json
|
|
│ ├── user.json
|
|
│ ├── shared_conversations.json
|
|
│ └── message_feedback.json
|
|
├── reports/ # Analysis reports (created when needed)
|
|
└── generated-skills/ # Generated skills (created when needed)
|
|
```
|
|
|
|
## How to Use
|
|
|
|
1. **Download your export zip files** from Claude and/or ChatGPT
|
|
2. **Place zip files in your current directory** (where you want the analysis to happen)
|
|
3. **Run this command**: The system will handle the rest automatically
|
|
|
|
## Supported Export Formats
|
|
|
|
### Claude Exports
|
|
Expected zip contents:
|
|
- `conversations.json` (required)
|
|
- `projects.json` (optional)
|
|
- `users.json` (optional)
|
|
|
|
### ChatGPT Exports
|
|
Expected zip contents:
|
|
- `conversations.json` (required)
|
|
- `user.json` (optional)
|
|
- `shared_conversations.json` (optional)
|
|
- `message_feedback.json` (optional)
|
|
- `shopping.json` (optional - will be ignored)
|
|
|
|
## Instructions for Execution
|
|
|
|
1. **Scan Current Directory**:
|
|
- Look for `*.zip` files in current directory
|
|
- Report found zip files to user for confirmation
|
|
|
|
2. **Create Directory Structure**:
|
|
- Create `data-exports/` directory if it doesn't exist
|
|
- Create `data-exports/claude/` subdirectory
|
|
- Create `data-exports/chatgpt/` subdirectory
|
|
- Create `reports/` and `generated-skills/` directories for future use
|
|
|
|
3. **Process Each Zip File**:
|
|
- Extract to temporary directory (`temp_extract_TIMESTAMP/`)
|
|
- Examine contents to identify platform type
|
|
- Look for key indicator files:
|
|
- Claude: `conversations.json` + `projects.json` present
|
|
- ChatGPT: `conversations.json` + `user.json` present
|
|
- Mixed/Unknown: Ask user to specify platform
|
|
|
|
4. **Platform Detection Logic**:
|
|
```
|
|
If contains "projects.json" → Claude export
|
|
Else if contains "user.json" → ChatGPT export
|
|
Else if only "conversations.json" → Ask user to specify
|
|
Else → Invalid export format
|
|
```
|
|
|
|
5. **File Organization**:
|
|
- **For Claude exports**: Move all JSON files to `data-exports/claude/`
|
|
- **For ChatGPT exports**: Move all JSON files to `data-exports/chatgpt/`
|
|
- Skip non-JSON files (README, etc.)
|
|
- Handle file conflicts by asking user preference (overwrite/skip/backup)
|
|
|
|
6. **Validation**:
|
|
- Verify required files (`conversations.json`) are present
|
|
- Check file sizes are reasonable (not empty, not suspiciously large)
|
|
- Validate JSON format of critical files
|
|
- Report any missing optional files
|
|
|
|
7. **Cleanup Options**:
|
|
- Remove temporary extraction directories
|
|
- Ask user about original zip files:
|
|
- **Keep**: Leave original zips in place
|
|
- **Archive**: Move to `archives/` subdirectory
|
|
- **Delete**: Remove original zips completely
|
|
|
|
8. **Final Report**:
|
|
- Summary of extracted files by platform
|
|
- Location of organized files
|
|
- Any warnings or issues encountered
|
|
- Next steps recommendation (run `/analyze-skills`)
|
|
|
|
## User Interaction Flow
|
|
|
|
```
|
|
Found the following zip files:
|
|
• claude_export_2024_01_20.zip (2.3 MB)
|
|
• chatgpt_export_jan_2024.zip (4.1 MB)
|
|
|
|
Proceed with extraction and organization? [Y/n]
|
|
|
|
✅ Creating directory structure...
|
|
✅ Extracting claude_export_2024_01_20.zip...
|
|
→ Detected: Claude export (found projects.json)
|
|
→ Moving files to data-exports/claude/
|
|
→ Files: conversations.json, projects.json, users.json
|
|
|
|
✅ Extracting chatgpt_export_jan_2024.zip...
|
|
→ Detected: ChatGPT export (found user.json)
|
|
→ Moving files to data-exports/chatgpt/
|
|
→ Files: conversations.json, user.json, shared_conversations.json
|
|
|
|
✅ Validation complete:
|
|
• Claude: 1,247 conversations in conversations.json
|
|
• ChatGPT: 892 conversations in conversations.json
|
|
|
|
What should I do with the original zip files?
|
|
[K]eep them / [A]rchive them / [D]elete them: A
|
|
|
|
✅ Original zips moved to archives/
|
|
|
|
🎉 Export organization complete!
|
|
|
|
Your files are now ready for analysis:
|
|
• Claude exports: data-exports/claude/
|
|
• ChatGPT exports: data-exports/chatgpt/
|
|
|
|
Next step: Run `/analyze-skills` to identify skill opportunities
|
|
```
|
|
|
|
## Error Handling
|
|
|
|
### Common Issues & Solutions
|
|
|
|
**No zip files found**:
|
|
- Check current directory for `*.zip` files
|
|
- Verify zip files are conversation exports (not other types)
|
|
- Provide guidance on downloading exports if needed
|
|
|
|
**Corrupted or invalid zip files**:
|
|
- Report which zip file has issues
|
|
- Suggest re-downloading from the platform
|
|
- Continue with other valid zip files
|
|
|
|
**Missing required files**:
|
|
- Report missing `conversations.json`
|
|
- Explain impact on analysis capability
|
|
- Suggest contacting platform support
|
|
|
|
**JSON parsing errors**:
|
|
- Report which file has JSON format issues
|
|
- Attempt to continue with other files
|
|
- Suggest platform support if file appears corrupted
|
|
|
|
**Directory permission issues**:
|
|
- Check write permissions for current directory
|
|
- Provide clear error message and resolution steps
|
|
- Suggest alternative directory if needed
|
|
|
|
**Disk space issues**:
|
|
- Check available disk space before extraction
|
|
- Estimate space needed based on zip file sizes
|
|
- Provide cleanup recommendations if space is low
|
|
|
|
## File Conflict Resolution
|
|
|
|
When files already exist in target directories:
|
|
|
|
**Conversations.json exists**:
|
|
```
|
|
Found existing conversations.json in data-exports/claude/
|
|
• Existing: 1,156 conversations (last modified: 2024-01-15)
|
|
• New: 1,247 conversations (from zip file)
|
|
|
|
Choose action:
|
|
[O]verwrite with new file
|
|
[B]ackup existing and use new
|
|
[S]kip extraction (keep existing)
|
|
[C]ompare and merge (advanced)
|
|
|
|
Your choice: B
|
|
|
|
✅ Existing file backed up as conversations_backup_2024-01-20.json
|
|
✅ New file extracted as conversations.json
|
|
```
|
|
|
|
## Integration with Other Commands
|
|
|
|
**Seamless workflow with existing commands**:
|
|
- After successful extraction → Suggest running `/analyze-skills`
|
|
- If directory structure missing → Automatically create (no need for `/skills-setup`)
|
|
- Before analysis → Check for proper file organization
|
|
|
|
**State validation**:
|
|
- Check if exports are already extracted before running
|
|
- Detect incremental updates (new exports vs existing data)
|
|
- Provide smart recommendations based on current state
|
|
|
|
## Quality Standards
|
|
|
|
**File Validation Requirements**:
|
|
- Verify JSON files are valid JSON format
|
|
- Check that conversations.json contains actual conversation data
|
|
- Validate file sizes are within reasonable ranges (not empty, not huge)
|
|
- Ensure required fields exist in JSON structure
|
|
|
|
**Security Considerations**:
|
|
- Only extract to controlled subdirectories
|
|
- Sanitize file names to prevent directory traversal
|
|
- Validate zip contents before extraction
|
|
- Limit extraction to reasonable file sizes
|
|
|
|
**User Experience Standards**:
|
|
- Clear progress indicators during extraction
|
|
- Descriptive error messages with resolution steps
|
|
- Confirmation prompts for destructive actions
|
|
- Helpful next-step recommendations
|
|
|
|
## Advanced Features
|
|
|
|
**Incremental Processing Support**:
|
|
- Detect if exports contain new conversations vs existing data
|
|
- Smart merge options for updated exports
|
|
- Preserve existing analysis logs and reports
|
|
|
|
**Batch Processing**:
|
|
- Handle multiple zip files from same platform
|
|
- Merge multiple ChatGPT exports if user has multiple accounts
|
|
- Consolidate multiple Claude exports from different time periods
|
|
|
|
**Cross-Platform Intelligence**:
|
|
- Detect potential duplicate conversations across platforms
|
|
- Flag cross-platform analysis opportunities
|
|
- Prepare data for unified analysis workflow
|
|
|
|
## Commands Integration
|
|
|
|
This command works seamlessly with:
|
|
- **`/skills-setup`**: No longer needed if this command is run first
|
|
- **`/analyze-skills`**: Ready to run immediately after extraction
|
|
- **`/skills-troubleshoot`**: Can diagnose extraction-related issues
|
|
|
|
**Recommended workflow**:
|
|
1. Download exports from Claude/ChatGPT
|
|
2. Run `/extract-exports` (this command)
|
|
3. Run `/analyze-skills` for pattern analysis
|
|
4. Implement recommended skills
|
|
|
|
Ready to automatically organize your conversation exports! |