import zipfile
import os
zippath = '/home/ubuntu/claude_fullset_FINAL.zip'
# 追加するファイルのリスト(arcname: 実際のパス)
files_to_add = {
# 00_START
'claude_fullset/00_START/QUICK_START.md': '/home/ubuntu/claude_fullset/00_START/QUICK_START.md',
# 01_core
'claude_fullset/01_core/CLAUDE.md': '/home/ubuntu/claude_fullset/01_core/CLAUDE.md',
'claude_fullset/01_core/CONSTRAINTS.md': '/home/ubuntu/claude_fullset/01_core/CONSTRAINTS.md',
'claude_fullset/01_core/AGENTS.md': '/home/ubuntu/claude_fullset/01_core/AGENTS.md',
'claude_fullset/01_core/RULES.md': '/home/ubuntu/claude_fullset/01_core/RULES.md',
'claude_fullset/01_core/docs/progress.md': '/home/ubuntu/claude_fullset/01_core/docs/progress.md',
# 02_templates
'claude_fullset/02_templates/srs/SRS_TEMPLATE.md': '/home/ubuntu/claude_fullset/02_templates/srs/SRS_TEMPLATE.md',
'claude_fullset/02_templates/sdd/SDD_TEMPLATE.md': '/home/ubuntu/claude_fullset/02_templates/sdd/SDD_TEMPLATE.md',
'claude_fullset/02_templates/test/TEST_PLAN_TEMPLATE.md': '/home/ubuntu/claude_fullset/02_templates/test/TEST_PLAN_TEMPLATE.md',
'claude_fullset/02_templates/e2e/E2E_SCENARIOS_TEMPLATE.md': '/home/ubuntu/claude_fullset/02_templates/e2e/E2E_SCENARIOS_TEMPLATE.md',
'claude_fullset/02_templates/harness/HARNESS_TEMPLATE.md': '/home/ubuntu/claude_fullset/02_templates/harness/HARNESS_TEMPLATE.md',
# 03_prompts
'claude_fullset/03_prompts/ALL_PROMPTS.md': '/home/ubuntu/claude_fullset/03_prompts/ALL_PROMPTS.md',
'claude_fullset/03_prompts/MASTER_LAUNCH_PROMPT.md': '/home/ubuntu/substack_fullguide/MASTER_LAUNCH_PROMPT.md',
# 04_examples
'claude_fullset/04_examples/SRS_EXAMPLE_KEIBA.md': '/home/ubuntu/claude_fullset/04_examples/SRS_EXAMPLE_KEIBA.md',
'claude_fullset/04_examples/SUBSTACK_FULL_GUIDE.md': '/home/ubuntu/substack_fullguide/SUBSTACK_FULL_GUIDE.md',
# 05_guides
'claude_fullset/05_guides/FLOW_GUIDE.md': '/home/ubuntu/claude_fullset/05_guides/FLOW_GUIDE.md',
}
with zipfile.ZipFile(zippath, 'w', zipfile.ZIP_DEFLATED) as zf:
for arcname, filepath in files_to_add.items():
if os.path.exists(filepath):
zf.write(filepath, arcname)
print(f'追加: {arcname}')
else:
print(f'スキップ(ファイルなし): {filepath}')
size = os.path.getsize(zippath)
print(f'\nZIP作成完了: {zippath}')
print(f'ファイルサイズ: {size/1024:.1f} KB')
print(f'収録ファイル数: {len(files_to_add)}')
ZIP生成スクリプト: 明示ファイルリストでv2を作成
元ファイル: システム要件定義の分析と汎用化方法/make_zip_v2.py
要約
arcname→実パスの明示的辞書に基づいてclaude_fullsetのコア・テンプレート・プロンプト・例・ガイドを選んでZIP化するPythonスクリプト。存在チェックをしながら追加し、欠落ファイルはスキップ表示する。配布物の構成を厳密に制御する版。
要点
- files_to_add辞書でarcnameと実パスを明示指定
- 00_START〜05_guidesの主要ファイルを選別収録
- 存在しないファイルはスキップしてログ表示
- MASTER_LAUNCH_PROMPTやSUBSTACK_FULL_GUIDEを別ディレクトリから取り込み
- 生成後にサイズと収録数を出力