package

Clean and package the project for distribution. Removes __pycache__, .venv, build artifacts, data caches, logs, IDE files, coverage reports, and sanitizes API keys in config. Produces a minimal, ready

SKILL.md

GitHub

Package

One command cleans the project for distribution: remove caches, secrets, and artifacts.


Pipeline

Dry-run → Confirm → Execute → Verify

⚠️ Activate .venv before running scripts.

  • Windows: .\.venv\Scripts\Activate.ps1
  • macOS/Linux: source .venv/bin/activate

Step 1: Dry Run

Show what will be removed without deleting anything:

python .github/skills/package/scripts/clean.py

Review the output with the user. The script lists:

  • 📁 Directories to remove (with sizes)
  • 📄 Files to remove (with sizes)
  • 🔐 Config values to sanitize (API keys → placeholders)

Step 2: Confirm with User

Before executing, summarize what will be deleted and ask the user to confirm. Offer options:

  • --keep-data — preserve data/ and logs/ (useful if user wants to keep ingested documents)
  • --no-sanitize — skip API key replacement in config/settings.yaml

Step 3: Execute

# Full clean (removes everything including data)
python .github/skills/package/scripts/clean.py --execute

# Keep data and logs
python .github/skills/package/scripts/clean.py --execute --keep-data

# Skip secret sanitization
python .github/skills/package/scripts/clean.py --execute --no-sanitize

Step 4: Verify

After cleanup, verify the workspace is clean:

# Check no __pycache__ remains
python -c "import pathlib; found=list(pathlib.Path('.').rglob('__pycache__')); print(f'{len(found)} __pycache__ dirs remaining') if found else print('Clean')"

# Check no .venv remains
python -c "import pathlib; print('.venv still exists') if pathlib.Path('.venv').exists() else print('Clean')"

# Check settings.yaml has no real API keys
python -c "
import re, pathlib
text = pathlib.Path('config/settings.yaml').read_text()
keys = re.findall(r'api_key:\s*\"([^\"]+)\"', text)
real = [k for k in keys if k not in ('YOUR_API_KEY_HERE', '')]
print(f'{len(real)} real API key(s) found') if real else print('API keys sanitized')
"

Report results to user.


What Gets Removed

Category Patterns
Python caches __pycache__/, *.pyc, *.pyo, .pytest_cache/, .mypy_cache/, .ruff_cache/
Virtual envs .venv/, venv/, env/
Build artifacts build/, dist/, *.egg-info/, .eggs/, wheels/
IDE files .idea/, .vscode/, *.swp, *.swo
Coverage htmlcov/, .coverage, coverage.xml, .tox/, .nox/
Data & logs data/, logs/, cache/ (skip with --keep-data)
Secrets .env, .env.local, secrets.yaml, test_credentials.yaml
Stale artifacts nonexistent_traces.jsonl/
Config backups settings.yaml.bak, settings.yaml.qa_backup
Test artifacts .claude/skills/test-skill/, test_data/chroma/
Skill caches .github/skills/auto-coder/.spec_hash, .claude/skills/auto-coder/.spec_hash

What Gets Sanitized (not removed)

  • config/settings.yaml: api_key → "YOUR_API_KEY_HERE", azure_endpoint → placeholder