OpenSpace zip-export-deliverable

Ensures codebase deliverables are properly exported as ZIP archives through a dedicated finalization step

install
source · Clone the upstream repo
git clone https://github.com/HKUDS/OpenSpace
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/HKUDS/OpenSpace "$T" && mkdir -p ~/.claude/skills && cp -r "$T/gdpval_bench/skills/zip-export-deliverable" ~/.claude/skills/hkuds-openspace-zip-export-deliverable && rm -rf "$T"
manifest: gdpval_bench/skills/zip-export-deliverable/SKILL.md
source content

ZIP Export Deliverable Finalization

Purpose

When a task requires delivering a codebase or project directory as a ZIP archive, this skill ensures the deliverable is actually created through an explicit finalization step, rather than assuming directory creation equals completion.

When to Apply

Use this skill when:

  • The task deliverable is a codebase, project, or directory structure
  • The deliverable must be exported or packaged as a ZIP file
  • You have already created the project files and directory structure

Common Pitfall

Do NOT assume that creating the project directory and files means the deliverable is complete. The ZIP archive itself must be explicitly created as a final step.

Step-by-Step Instructions

Step 1: Verify Project Structure

Before creating the ZIP, confirm all required files and directories exist:

ls -la ./project/
# or
find ./project -type f | head -20

Step 2: Create Dedicated Final Iteration

Add a final step/iteration specifically for ZIP creation. This should be a distinct action, not combined with other tasks.

Step 3: Execute ZIP Command

Run the zip command with recursive flag:

zip -r project.zip ./project

Or with a custom name:

zip -r <deliverable-name>.zip ./<project-directory>

Step 4: Verify ZIP Creation

Confirm the ZIP file was created successfully:

ls -lh project.zip
# Should show file size > 0
unzip -l project.zip | head -20
# Should list contents

Step 5: Report Completion

Explicitly confirm the ZIP deliverable has been created in your final response to the user.

Code Example

import subprocess
import os

def finalize_deliverable(project_dir="project", zip_name="project.zip"):
    """Create ZIP archive of project deliverable."""
    
    # Step 1: Verify project exists
    if not os.path.exists(project_dir):
        raise FileNotFoundError(f"Project directory {project_dir} not found")
    
    # Step 2: Create ZIP
    result = subprocess.run(
        ["zip", "-r", zip_name, f"./{project_dir}"],
        capture_output=True,
        text=True
    )
    
    if result.returncode != 0:
        raise RuntimeError(f"ZIP creation failed: {result.stderr}")
    
    # Step 3: Verify
    zip_size = os.path.getsize(zip_name)
    print(f"Created {zip_name} ({zip_size} bytes)")
    
    return zip_name

Checklist

  • All project files are created in the expected directory
  • A dedicated step is allocated for ZIP creation
  • zip -r <name>.zip ./<directory>
    command is executed
  • ZIP file existence and size are verified
  • Deliverable completion is explicitly confirmed to the user

Related Patterns

  • File creation should always include verification steps
  • Deliverables should be explicitly validated before marking tasks complete
  • Archive/export operations need their own iteration, not implicit completion