sync-upstream について
このリポジトリのスキルを、上流のリリース単位で同期するための保守ワークフローです。変更内容と適応案を先に確認してメンテナーの承認を得てから編集し、独自の名称や固有コンテンツを維持します。
主な機能
- 01上流リリース単位で同期
- 02変更履歴と差分を先に確認
- 03承認後に変更を適用
- 04リポジトリ固有のスキルを保持
- 05プラグイン一覧と参照を検証
活用シーン
- 01上流リリース間のスキル変更を確認
- 02上流のスキル改名や削除に対応
- 03承認用の同期レポートを作成
- 04バージョン記録を更新してリリース
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ leandrocfe/ skills --skill sync-upstreamインストール後、Claude Code で/sync-upstreamを入力して読み込まれたか確認します。
詳細
upstream との同期
このリポジトリは、mattpocock/skills をブラジルポルトガル語向けに適応したものです。目的は逐語訳ではありません。各 skill は、元の目的、動作、フロー、意図を保ちながら、ブラジルの読者に適した表現、例、文脈で作成されています。
upstream は semver リリースでバージョン管理されており、各変更を説明する CHANGELOG.md が用意されています。同期はリリースごとに行い、ブランチを継続的に追跡することはありません。
正式な情報源
このリポジトリのルートにある UPSTREAM.md:
upstream-version:— 同期が完了した upstream の最後のタグ。- 意図的な名前変更の対応表(このプロジェクト固有のもの)。
- このリポジトリ専用の skills(削除禁止 — upstream に対応するものはありません)。
- 既知の未対応項目。
remote upstream は Matt のリポジトリを指します。存在しない場合は、次を実行します:git remote add upstream https://github.com/mattpocock/skills.git。
タグの名前空間
upstream のタグは upstream/*(例:upstream/v1.1.0)の下に置かれます。vX.Y.Z の名前空間はこのリポジトリのリリース用です。これにより、Matt の同名タグと衝突せずに同期のタグを付けられます。
remote はすでにこのように設定されています。新しい clone で設定されていない場合:
git config remote.upstream.tagOpt --no-tags
git config --add remote.upstream.fetch "+refs/tags/*:refs/tags/upstream/*"
決して git fetch upstream --tags を実行しないでください。Matt のタグがそのままの名前空間に取り込まれ、衝突が再発します。
手順
1. 差分を確認する
git fetch upstream
BASE=UPSTREAM.mdのupstream-version:の値(例:v1.1.0)。upstream/$BASEとして読み込みます。ALVO= upstream の最新タグ:git tag -l 'upstream/v*' | sort -V | tail -1。BASE == ALVO→ 対応は不要です。終了してください。
2. 変更を把握する — まず CHANGELOG、次に diff
-
upstream の
CHANGELOG.mdからBASEとALVOの間のセクションを読みます(git show upstream/$ALVO:CHANGELOG.md)。何が変わったのか**、そしてその理由**が説明されています。レポートの骨子として使い、ゼロから作り直さないでください。 -
rename の検出を有効にして、実際の diff を生成します:
git diff -M upstream/$BASE..upstream/$ALVO -- skills/ .claude-plugin/plugin.jsondocs/は意図的に対象外です。意図的な差異についてはUPSTREAM.mdを参照してください。 -
diff と
UPSTREAM.mdの名前の対応表を照合します(例:setup-matt-pocock-skillsの変更はsetup-leandrocfe-skillsに適用します)。
3. レポートと提案 — ファイルに手を加える前に
メンテナーに次の内容を提示します:
- 変更をカテゴリ別にまとめたもの(新しい skills、rename、変更、削除)。
- 各項目について、何が変わったか、なぜ重要か(CHANGELOG を引用)、今回のバージョンへの影響。
- 以下のルールに従った適応案。
- 人による判断が必要な点を明示したもの。
ここで停止し、承認を待ってください。 曖昧さがある場合、バージョン間で競合する場合、または適応方法が複数ある場合は、先に質問してから続行してください。
4. 適用 — 承認後に限る
- skill ごとに適応し、コピー&ペーストはしないでください。
UPSTREAM.mdの対応表に記載されたものを除き、upstream の rename はgit mvで反映します。.claude-plugin/plugin.jsonを更新します。skills の一覧は実際のディレクトリと一致させ、versionフィールドは同期対象のタグと一致させてください。「ARS scope guard」フックにより、エージェントはこのファイルを書き込めません。メンテナーに内容を渡して手作業で保存してもらうか、フックを無効にするよう依頼してください。- upstream の skills を連鎖して参照している、このリポジトリ専用の skills(
personal/)を確認します。rename によって、これらの参照が気づかないうちに壊れることがあります。 - 最後に検証します:plugin.json の各項目が
skills/に存在すること、frontmatter のname:がディレクトリ名と一致していること、削除済みの skill 名への参照が残っていないこと(古い名前をgrepすること)、バケットとトップレベルの README がCLAUDE.mdに従って更新されていること。
5. 同期を完了する
UPSTREAM.mdのupstream-version:をALVOに更新し、解決済みの未完了項目を削除します。- コミットします:
sync: upstream ALVO。 - upstream のバージョンに合わせて、このリポジトリのリリースタグを付けます:
git tag -a $ALVO -m "sync: upstream $ALVO"。Matt のタグはupstream/*にあるため、通常の名前空間は空いています。 git push origin $ALVOを実行する前に、メンテナーにプッシュの承認を確認します。- ワークフローによって作成された同期用の Issue があれば、クローズします。
- 任意:CHANGELOG のリリースセクションを翻訳し、このリポジトリのリリースノートとして公開します。
適応ルール
- upstream の内容を自動的にコピーしないでください。
- このプロジェクトのアイデンティティ(
UPSTREAM.mdでマッピングされた名称)を維持してください。 - ブラジルポルトガル語で記述し、定着している技術用語は英語のままにしてください。
- プロフェッショナルで洗練された文体にしてください。 スラング、口語表現、無理にくだけた言い回しは避けてください(例:「UX gostosa」「sacada」「dá pra」「maneiro」)。技術文書にふさわしい、構成が明確で読みやすいポルトガル語に訳してください。表現の効果よりも正確な用語を優先してください。原文の宣伝調の形容詞(「delightful」「beautiful」など)は、俗語ではなく、落ち着いた表現(「refinada」「bem-acabada」など)に置き換えてください。迷った場合は声に出して読み、技術マニュアルとして不自然に聞こえるなら書き直してください。
- 同じ文言を再現することではなく、スキルの動作と意図を優先してください。
- Matt の実情に強く依存する具体例は、適切であればブラジルの状況に合う例を提案してください。
- このリポジトリに既存のカスタマイズがある場合は、upstream の重要な改善と競合しない限り維持してください。競合する場合は、手順 3 のレポートでその競合を指摘してください。
UPSTREAM.mdに記載された、このリポジトリ固有のスキルは決して削除しないでください。
自動同期ではなく、慎重で根拠の明確な更新を優先してください。提案を適用する前に、それぞれの理由を説明してください。