mcpField
D
data-backup

data-backup

github.com/delphine-lデータ・データベース2237 回インストール24 週間前に更新
リポジトリ

data-backup について

データ、ノートブック、プレゼンテーション、複合プロジェクト向けのバックアップスキルです。日次バックアップと圧縮したマイルストーンを併用し、クリーンアップと CHANGELOG で履歴を管理します。

主な機能

  1. 01プロジェクトの種類とファイルを検出
  2. 02バックアップ前のファイル整理
  3. 03日次バックアップのローリング保存
  4. 04圧縮したマイルストーンの保存
  5. 05CHANGELOG による変更記録
  6. 06バックアップの一覧表示と復元

活用シーン

  1. 01ノートブックやデータプロジェクトのバックアップ
  2. 02大規模な変換前の版の保存
  3. 03以前のプロジェクト状態への復元
  4. 04共同作業に向けたデータ変更の記録

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/delphine-l/claude_global --skill data-backup

インストール後、Claude Code で/data-backupを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

ADVANCED_USAGE.md
FULL_PROJECT_BACKUPS.md
MANIFEST_BACKUPS.md

詳細

スキル連携によるスマートバックアップシステム

このディレクトリ内の関連ファイル:

  • MANIFEST_BACKUPS.md -- MANIFEST を活用したインテリジェントなバックアップ
  • FULL_PROJECT_BACKUPS.md -- プロジェクト全体のバックアップ、選択的な包含・除外、パスの検証
  • ADVANCED_USAGE.md -- カスタムスクリプト、複数ファイルのバックアップ、実際の使用例

このスキルを使用する場面

次の場合にこのスキルを使用します:

  • 時間の経過とともにファイルが変更されるプロジェクトで作業する場合
  • Jupyter ノートブック、データファイル(CSV/TSV)、HackMD プレゼンテーション、または複合プロジェクトを扱う場合
  • バックアップ前にインテリジェントなクリーンアップ(出力のクリア、デバッグコードの削除)が必要な場合
  • いつ何が変更されたか(データの来歴)を追跡したい場合
  • コラボレーションや公開のために、プロフェッショナルなバックアップワークフローが必要な場合
  • 他のスキルをインテリジェントに活用する、コンテキストに応じたバックアップを行いたい場合

問題点

長期にわたるデータ強化プロジェクトでは、次のようなリスクがあります:

  • 誤って上書きし、何日分もの作業を失う
  • 以前のデータ状態に戻せない
  • いつ何が変更されたかの記録がない
  • 手動バックアップによってディスク容量が不足する
  • どのバージョンが最新なのか分からなくなる

解決策:スキル連携によるスマートな2層バックアップシステム

主な機能
  1. インテリジェントな検出 - バックアップ対象のプロジェクトの種類とファイルを自動的に検出します
  2. スキル連携 - バックアップ前のクリーンアップに jupyter-notebook、hackmd などのスキルを使用します
  3. 日次バックアップ - 7日間のローリングウィンドウ(自動クリーンアップ)
  4. マイルストーンバックアップ - 永続保存、圧縮(gzip で約80%削減)
  5. CHANGELOG - すべての変更を自動的に記録します
  6. セッション連携 - Claude Code セッションの終了時にバックアップを促します
スマートな検出と連携

バックアップシステムはプロジェクトの種類を自動的に検出し、適切なクリーンアップを適用します:

Jupyter ノートブック(jupyter-notebook スキルを使用):

  • 検出対象:*.ipynb ファイル
  • バックアップ前のクリーンアップ:すべてのセル出力をクリアし、'debug' または 'remove' タグが付いたセルを削除して、ノートブックを検証します

HackMD/プレゼンテーション(hackmd スキルを使用):

  • 検出対象:slideOptions: フロントマターを含む *.md ファイル
  • バックアップ前のクリーンアップ:SVG 要素を検証し、スライド区切りを確認して、YAML フロントマターを検証します

データファイル(ネイティブ処理):

  • 検出対象:*.csv、*.tsv、*.xlsx ファイル
  • バックアップ前のクリーンアップ:ファイルの整合性を検証し、破損がないか確認します

Python プロジェクト(managing-environments スキルを使用):

  • 検出対象:requirements.txt、environment.yml、venv/、.venv/
  • バックアップ前のクリーンアップ:.pyc、__pycache__、.pytest_cache を削除し、ビルド生成物をクリーンアップします

複合プロジェクト:上記すべてを検出し、各ファイルタイプに適したクリーンアップを適用します。

ディレクトリ構成

データのみのプロジェクトの場合:

project/
├── your_data_file.csv          # Main working file
├── backup_project.sh           # Smart backup script
└── backups/
    ├── daily/                  # Rolling 7-day backups
    ├── milestones/             # Permanent compressed backups
    ├── CHANGELOG.md            # Auto-generated change log
    └── README.md               # User documentation

複合プロジェクト(ノートブック+データ)の場合:

project/
├── analysis.ipynb              # Jupyter notebooks
├── data.csv                    # Data files
├── backup_project.sh           # Smart backup script
└── backups/
    ├── daily/                  # Rolling 7-day backups
    │   └── backup_2026-01-17/
    │       ├── notebooks/      # Cleaned (no outputs)
    │       └── data/
    ├── milestones/             # Permanent compressed backups
    ├── CHANGELOG.md
    └── README.md
ストレージ効率
  • 日次バックアップ:約5.4 MB(7日 × 770 KB)
  • マイルストーンバックアップ:圧縮時に各約200 KB(gzip でサイズを80%削減)
  • 合計:プロジェクトの全履歴を10 MB未満で保存
  • 自動クリーンアップ:古い日次バックアップは7日後に削除されます

実装

/backup コマンドですぐに開始

初回 - バックアップシステムをセットアップ:

/backup

これにより、次の処理が行われます:

  • プロジェクトの種類(ノートブック、データファイル、プレゼンテーションなど)を検出します
  • スマートなクリーンアップ機能を備えた適切なバックアップスクリプトをセットアップします
  • バックアップディレクトリ構成を作成します
  • 必要に応じて自動バックアップを設定します

日常の使用 - バックアップを作成:

/backup                    # Daily backup with smart cleanup
/backup milestone "desc"   # Milestone backup
/backup list              # View all backups
/backup restore DATE      # Restore from backup
バックアップ中に行われる処理

バックアップ前のスマートなクリーンアップ:

  1. プロジェクト内のファイルタイプを検出します
  2. スキル固有のクリーンアップを適用します:
    • ノートブック:出力をクリアし、デバッグセルを削除します
    • HackMD:SVG を検証し、書式を確認します
    • Python:.pyc、__pycache__ を削除します
    • データ:整合性を検証します
  3. クリーンアップ済みファイルを整理してバックアップします
  4. バックアップ対象の内容をCHANGELOG に記録します
手動でスクリプトを使用する方法(代替手段)
./backup_project.sh                           # Daily backup
./backup_project.sh milestone "description"   # Milestone
./backup_project.sh list                      # List backups
./backup_project.sh restore 2026-01-23        # Restore
マイルストーンを作成するタイミング
  • 新しいデータソース(GenomeScope、核型、外部 API)を追加した後
  • 大規模なデータ変換やフィルタリングの前
  • 分析セクションが完了したとき
  • 提出/公開の前
  • 共同作業者と共有する前
  • 欠落したデータを復元した後

主な機能

安全機能
  1. 確認なしで上書きしません - 既存のバックアップを上書きする前に確認します
  2. 復元前に安全バックアップを作成 - 復元する前に、現在の状態のバックアップを作成します
  3. 自動クリーンアップ - 古い日次バックアップは自動的に削除されます(設定可能)
  4. 完全な監査証跡 - CHANGELOG にすべての変更が記録されます
  5. マイルストーンを保護 - 重要なバージョンは永久に保持されます(圧縮済み)
CHANGELOG の追跡

CHANGELOG.md には、以下が自動的に記録されます。

  • 各バックアップの日付
  • 種類(日次またはマイルストーン)
  • 変更内容の説明(マイルストーンの場合)
  • データに加えられた大幅な変更

CHANGELOG の例:

## 2026-01-23
- **MILESTONE**: Recovered VGP accessions (backup created)
  - Added columns: `accession_recovered`, `accession_recovered_all`
  - Recovered 5 VGP accessions from NCBI
- Daily backup created at 2026-01-23 15:00:00

## 2026-01-22
- Enriched GenomeScope data for 21 species from AWS repository
- Added column: `genomescope_path` with direct links to summary files

/backup コマンドの使用

セットアップモード(初回実行): /backup -- プロジェクトの種類を検出し、スクリプトをセットアップして、ディレクトリ構造を作成します。

日次バックアップモード: /backup -- 手早く日次バックアップを作成します。

マイルストーンモード: /backup milestone "description of changes" -- 例:/backup milestone "added heterozygosity data"

一覧表示と復元:

/backup list              # Show all available backups
/backup restore 2026-01-23 # Restore from specific date

設定: backup_project.sh を編集して、保持日数(デフォルト:7)、バックアップディレクトリの場所、またはカスタムクリーンアップルールを変更します。

データ分析におけるメリット

  • データの来歴:CHANGELOG にすべての変更が記録されます。論文の手法セクションに明確な監査証跡を残せます
  • 安心して実験:簡単にロールバックできるため、さまざまな方法を安全に試せます
  • プロフェッショナルなワークフロー:出版基準に準拠し、査読者がデータ処理の手順を確認できます
  • 共同作業に対応:チームメンバーがデータの履歴と拡充のプロセスを把握できます

/safe-exit によるセッション連携

/safe-exit を使って Claude Code セッションを終了すると、システムは自動的に以下を実行します。

  1. 現在のプロジェクトにバックアップシステムがあるか検出します
  2. システムが設定済みの場合、バックアップを促します(日次、マイルストーン、スキップ、またはキャンセル)
  3. 要求された場合、クリーンアップとバックアップを実行します
  4. Obsidian のセッション概要を作成するか確認します(obsidian スキルが利用可能な場合)
  5. セッションを適切に終了します

これにより、セッションの終了時にバックアップや作業の記録を忘れることがなくなります。

ワークフローの例

月曜日の朝
/backup                          # Daily backup with smart cleanup
# Work on notebooks and data enrichment all day
/backup milestone "added karyotype data for 50 new species"
セッションの終了時
/safe-exit
# Prompted: daily backup -> backup complete -> session summary -> exit
金曜日(あっ、間違えてしまった!)
/backup list                     # Check available backups
/backup restore 2026-01-23       # Restore from Wednesday

MANIFEST 対応バックアップ

MANIFEST ファイルがあるプロジェクトでは、必要なファイルのみを含めるインテリジェントなバックアップを使用してください。パターン全体、スクリプトのテンプレート、対象/除外ルール、/backup コマンドとの連携については、MANIFEST_BACKUPS.md を参照してください。

プロジェクト全体のバックアップ

コードとデータの両方が変更されるプロジェクトでは、選択的なプロジェクト全体のバックアップにより、不要な容量を増やさず完全な状態を保存できます。実装パターン、バックアップ戦略の比較、サイズのベンチマーク、パスの検証方法については、FULL_PROJECT_BACKUPS.md を参照してください。

高度な使用方法

カスタムバックアップスクリプトのテンプレート、複数ファイルの処理、圧縮されたマイルストーンの表示、実例については、ADVANCED_USAGE.md を参照してください。

ベストプラクティス

  1. セッション開始時に日次バックアップを作成する - 習慣にしましょう
  2. 大きな変更のたびにマイルストーンを作成する - 記憶に頼らないようにしましょう
  3. 説明的なマイルストーン名を使う - 「updates」ではなく「added genomescope」
  4. 共有する前に CHANGELOG を確認する - データの来歴が明確であることを確認しましょう
  5. 定期的にバックアップを一覧表示する - 自動クリーンアップが機能していることを確認しましょう
  6. 復元を一度試す - 復旧方法を把握していることを確認しましょう

トラブルシューティング

バックアップスクリプトが見つからない
ls -l backup_project.sh   # Check if backup system is set up
/backup                    # Set up if needed
ディスクの空き容量が少なくなっている
du -sh backups/            # Check backup sizes
# Reduce retention: edit DAYS_TO_KEEP=3 in backup_table.sh
# Manually clean old milestones if needed
CHANGELOG が大きくなりすぎている
tail -100 backups/CHANGELOG.md > backups/CHANGELOG_recent.md
mv backups/CHANGELOG.md backups/CHANGELOG_archive.md
mv backups/CHANGELOG_recent.md backups/CHANGELOG.md

概要

  • 2層システム:日次のローリング保存+永続的なマイルストーン
  • ストレージ効率に優れています:Gzip 圧縮(約80%削減)
  • 自動クリーンアップ:日次データのローリング保存期間は7日間
  • 完全な監査証跡:CHANGELOG ですべての変更を追跡
  • 安全性を最優先:確認なしで上書きすることはありません
  • グローバルインストーラー:すべてのプロジェクトで使用可能
  • プロフェッショナルなワークフロー:公開可能なデータ来歴

コメント