| name | zip-export-deliverable |
| description | Ensures codebase deliverables are properly exported as ZIP archives through a dedicated finalization step |
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/
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
unzip -l project.zip | head -20
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."""
if not os.path.exists(project_dir):
raise FileNotFoundError(f"Project directory {project_dir} not found")
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}")
zip_size = os.path.getsize(zip_name)
print(f"Created {zip_name} ({zip_size} bytes)")
return zip_name
Checklist
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