Files
gh-hirefrank-hirefrank-mark…/commands/extract-exports.md
2025-11-29 18:45:47 +08:00

8.8 KiB

description
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!