mcpField
P
ppw:update

ppw:update

github.com/lylll9436エージェントワークフロー39075 回インストール32 週間前に更新
リポジトリ

ppw:update について

ppw:update は、ローカルの `.claude/skills/` と `references/` を Paper-Polish-Workflow-skill の GitHub リポジトリと同期するスキルです。リモートとローカルのファイルを比較し、新規・変更・未変更を報告します。

主な機能

  1. 01リモートのスキルと参照ファイルを取得
  2. 02リモートとローカルのファイルを比較
  3. 03直接更新と対話型更新に対応
  4. 04更新状況とファイル数を報告

活用シーン

  1. 01ローカルのスキルを GitHub と同期
  2. 02適用前に変更内容を確認
  3. 03参照ドキュメントを更新

インストール

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

$npx skills add https://github.com/lylll9436/paper-polish-workflow-skill --skill ppw:update

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

詳細

目的

このスキルは、ローカルの .claude/skills/ と references/ を、上流の GitHub リポジトリ Lylll9436/Paper-Polish-Workflow-skill と同期します。最新の SKILL.md ファイルとリファレンスドキュメントをダウンロードし、ローカル版と比較して、変更されたファイルを更新します。

トリガー

ユーザーが次のことを依頼したときに起動します:

  • リモートリポジトリからスキルを更新または同期する
  • スキルパッケージを更新または同期する

呼び出し例:

  • "update skills"
  • "sync skills from GitHub"
  • "スキルを更新"

モード

モードデフォルト動作
directはい取得、比較、更新、報告を行います — 途中で確認はしません
interactive更新を適用する前に差分の概要を表示します

デフォルトモード: direct

ワークフロー

ステップ 0:ワークフローのメモリを確認
  • .planning/workflow-memory.json を読み込みます。ファイルが存在しない、または空の場合は、ステップ 1 に進みます。
  • ログ内にしきい値回数以上出現した ppw:update を含む、直近 1~2 件のログエントリが認識済みパターンを形成しているか確認します。詳細なアルゴリズムについては、skill-conventions.md > Workflow Memory > Pattern Detection を参照してください。
  • パターンが見つかった場合は、AskUserQuestion を使用して推奨事項を提示します:
    • 質問:「よく使われるワークフローが検出されました:[pattern](N 回出現)。ppw:update を direct モードで実行しますか?」
    • 選択肢:「はい、続行する」/「いいえ、通常どおり続行する」
  • ユーザーが承諾した場合:モードを direct に設定し、Ask Strategy の質問をスキップします。
  • ユーザーが拒否した場合、または AskUserQuestion を利用できない場合:通常モードで続行します。
ステップ 1:事前確認
  • gh CLI が利用可能で、認証済みであることを確認します:gh auth status
  • 上流リポジトリにアクセスできることを確認します:gh api repos/Lylll9436/Paper-Polish-Workflow-skill --jq '.full_name'
  • いずれかの確認に失敗した場合は、エラーを報告して停止します。
  • ワークフローを記録: .planning/workflow-memory.json に {"skill": "ppw:update", "ts": "<ISO timestamp>"} を追加します。ファイルが存在しない場合は [] として作成します。ログの長さが 50 以上の場合は、最も古いエントリを削除します。
ステップ 2:リモートファイルインデックスを取得
  • リモートリポジトリにあるすべてのスキルディレクトリを一覧表示します:
    gh api repos/Lylll9436/Paper-Polish-Workflow-skill/contents/.claude/skills --jq '.[].name'
    
  • リモートリポジトリにあるすべてのリファレンスファイルを一覧表示します:
    gh api repos/Lylll9436/Paper-Polish-Workflow-skill/contents/references --jq '.[] | .name + " " + .type'
    
  • リファレンスのサブディレクトリ(type=dir)についても、内容を再帰的に一覧表示します。
ステップ 3:スキルを比較して更新

リモートの各スキルディレクトリについて:

  1. リモートの SKILL.md の内容を取得します:
    gh api repos/Lylll9436/Paper-Polish-Workflow-skill/contents/.claude/skills/{skill-name}/SKILL.md --jq '.content' | base64 -d
    
  2. 存在する場合は、ローカルの .claude/skills/{skill-name}/SKILL.md を読み込みます。
  3. 2 つのファイルを比較します:
    • ローカルファイルが存在しない場合 → 新規スキルとして、ディレクトリを作成してファイルを書き込みます。
    • 内容が異なる場合 → 更新済みとして、ローカルファイルを上書きします。
    • 内容が同一の場合 → 変更なしとして、スキップします。
  4. 最終レポート用に結果を記録します。

interactive モードの場合: 各更新を適用する前に変更の概要を表示し、確認を求めます。

ステップ 4:リファレンスを比較して更新

リモートの各リファレンスファイルについて:

  1. gh api を使用し、base64 デコードしてリモートファイルの内容を取得します。
  2. 存在する場合は、ローカルの references/{filename} を読み込みます。
  3. 比較し、ステップ 3 と同じ新規/更新済み/変更なしのロジックで適用します。
  4. サブディレクトリ(例:references/journals/、references/expression-patterns/)については、各ファイルを再帰的に処理します。
ステップ 5:レポートを出力

概要テーブルを提示します:

## Skills Update Report

| Skill | Status |
|-------|--------|
| polish-skill | ✓ Updated |
| de-ai-skill | - Unchanged |
| new-skill | + New |

## References Update Report

| File | Status |
|------|--------|
| expression-patterns.md | ✓ Updated |
| skill-conventions.md | - Unchanged |

**Summary:** {updated_count} updated, {new_count} new, {unchanged_count} unchanged

出力仕様

出力形式条件
更新レポートMarkdown テーブル必ず出力
ファイル数の概要テキスト必ず報告

エッジケース

状況対応
gh CLI がインストールされていない、または認証されていないエラーを報告し、gh auth login を提案
リモートリポジトリにアクセスできないネットワーク/権限エラーを報告
ローカルスキルにリモートにはない変更があるリモート版で上書きする(リモートが正)
リモートに新しいスキルがあり、ローカルに存在しないディレクトリを作成して SKILL.md を書き込む
リモートのスキルが削除されているが、ローカルには存在するローカル版を保持する(削除せず、「ローカルのみ」として報告)
リファレンスのサブディレクトリがローカルに存在しない作成する

フォールバック

シナリオフォールバック
gh api がレート制限された場合待機してから1回再試行し、その後エラーを報告します
Base64 のデコードに失敗した場合Accept: application/vnd.github.raw ヘッダーを付けて gh api を試します
単一ファイルの取得に失敗した場合そのファイルをスキップし、残りのファイルの処理を続け、概要で報告します

規約:references/skill-conventions.md

コメント