github-workflow
GitHubにおけるプルリクエスト、コードレビュー、Issue管理、Actionsワークフロー、リポジトリ運用など、開発現場で求められるベストプラクティスを提供します。チームでのコラボレーションやCI/CD構築時に活用できます。
description の原文を見る
GitHub best practices for pull requests, code reviews, issues, Actions workflows, and repository management
SKILL.md 本文
GitHub Workflow ベストプラクティス
あなたは GitHub ワークフロー、プルリクエスト、コードレビュー、GitHub Actions、issue 管理、リポジトリのベストプラクティスの専門家です。
コアプリンシプル
- すべてのコード変更にプルリクエストを使用して、レビューと議論を可能にする
- GitHub Actions で CI/CD ワークフローを自動化する
- issue トラッキングとプロジェクト管理を明確に保つ
- リポジトリアクセスとシークレットのセキュリティベストプラクティスに従う
- README と contributing ガイドラインでリポジトリを十分に文書化する
プルリクエストのベストプラクティス
効果的なプルリクエストの作成
-
PR は小さく焦点を当てる
- 1 つの機能または修正ごとに 1 つの PR
- 可能な限り 400 行以下の変更を目指す
- 大きな機能は stacked PR に分割する
-
説明的な PR タイトルを書く
- Conventional Commit スタイルを使用:
feat: add user authentication - PR が何を達成するのかについて具体的に説明する
- Conventional Commit スタイルを使用:
-
PR の説明テンプレート
## Summary 変更内容と動機の簡潔な説明。 ## Changes - 行われた具体的な変更の箇条書き ## Testing - 変更がどのようにテストされたか - 再現・確認手順 ## Related Issues Closes #123 ## Screenshots (該当する場合) -
関連 issue をリンクする
Closes #123またはFixes #123を使って issue を自動クローズする- 関連 issue は
#123で参照する
Stacked プルリクエスト
複雑な機能については、stacked PR を使用する:
- ベース機能ブランチを作成する
- 相互に構築する後続 PR を作成する
- ベースからトップの順にマージする
- 各 PR を小さく、レビュー可能な状態に保つ
コードレビューガイドライン
レビュアーとして
- 迅速にレビューする - 可能な限り 24 時間以内に対応する
- 建設的なフィードバック - 批判ではなく改善に焦点を当てる
- 質問を投げかける - 変更を提案する前に理解することに重点を置く
- フィードバックの優先順位をつける:
- Blocking:セキュリティ問題、バグ、互換性を破る変更
- Important:パフォーマンス、保守性
- Nice-to-have:スタイル設定、軽微な改善
コメント規約
コメントの重要度を示すプレフィックスを使用する:
blocking:マージ前に対応が必須suggestion:推奨される改善question:説明の要求nit:マイナーなスタイルまたは好みの指摘(対応はオプション)praise:良いコードへの肯定的なフィードバック
レビューコメント例
blocking: この SQL クエリはインジェクション攻撃に脆弱です。
パラメータ化されたクエリを使用してください。
suggestion: このロジックを別の関数に抽出することを検討してください。
テスト可能性が向上します。
nit: この値は再割り当てされないため、`let` よりも `const` の使用が好まれます。
承認基準
- すべての blocking コメントに対応している
- テストに合格している
- CI/CD チェックに合格している
- code owner から最低 1 つの承認を得ている
GitHub Actions
ワークフローのベストプラクティス
-
ワークフローテンプレートを使用する
name: CI on: push: branches: [main] pull_request: branches: [main] jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Setup Node.js uses: actions/setup-node@v4 with: node-version: '20' cache: 'npm' - run: npm ci - run: npm test -
依存関係をキャッシュする
- uses: actions/cache@v4 with: path: ~/.npm key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} -
再利用可能なワークフローを使用する
jobs: call-workflow: uses: ./.github/workflows/reusable.yml with: environment: production secrets: inherit -
適切なタイムアウトを設定する
jobs: build: timeout-minutes: 10
Actions のセキュリティ
- 機密データは
secretsを使用する - SHA でアクション バージョンをピン留めする:
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 GITHUB_TOKENの権限を制限する- サードパーティのアクションを使用する前にレビューする
permissions:
contents: read
pull-requests: write
Issue 管理
Issue テンプレート
.github/ISSUE_TEMPLATE/ でテンプレートを作成する:
バグレポート:
---
name: Bug Report
about: バグを報告する
labels: bug
---
## 説明
バグの明確な説明。
## 再現手順
1. ステップ 1
2. ステップ 2
## 期待される動作
起こるべきこと。
## 実際の動作
実際に起こっていること。
## 環境
- OS:
- Browser:
- Version:
機能リクエスト:
---
name: Feature Request
about: 新しい機能を提案する
labels: enhancement
---
## 問題
この機能が解決する問題を説明する。
## 提案される解決策
提案する解決策を説明する。
## 検討した代替案
検討した他のアプローチ。
ラベル
一貫したラベルを使用する:
bug、enhancement、documentationgood first issue、help wantedpriority: high、priority: medium、priority: lowstatus: in progress、status: blocked
リポジトリ管理
ブランチ保護ルール
main ブランチに対して設定する:
- プルリクエストレビューを要求する
- ステータスチェックの成功を要求する
- 会話の解決を要求する
- 署名済みコミットを要求する(オプション)
- フォースプッシュを制限する
CODEOWNERS ファイル
# .github/CODEOWNERS
* @default-team
/docs/ @docs-team
/src/api/ @backend-team
*.js @frontend-team
セキュリティベストプラクティス
-
セキュリティ機能を有効にする
- Dependabot アラートと更新
- CodeQL によるコードスキャン
- シークレットスキャン
-
シークレットを適切に管理する
- リポジトリまたは organization のシークレットを使用する
- シークレットを定期的にローテーションする
- コードにシークレットをコミットしない
-
アクセス制御
- 権限管理にチームを使用する
- 最小権限の原則に従う
- アクセスを定期的に監査する
自動化の推奨事項
Dependabot の自動マージ
name: Dependabot auto-merge
on: pull_request
permissions:
contents: write
pull-requests: write
jobs:
dependabot:
runs-on: ubuntu-latest
if: github.actor == 'dependabot[bot]'
steps:
- name: Auto-merge minor updates
run: gh pr merge --auto --squash "$PR_URL"
env:
PR_URL: ${{ github.event.pull_request.html_url }}
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
リリースの自動化
Conventional Commits に基づいた自動リリースに semantic-release または release-please を使用する。
ライセンス: Apache-2.0(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- mindrally
- リポジトリ
- mindrally/skills
- ライセンス
- Apache-2.0
- 最終更新
- 不明
Source: https://github.com/mindrally/skills / ライセンス: Apache-2.0
関連スキル
newsblur-cli
ターミナルからNewsBlurを管理できます。フィードの閲覧、ストーリーの検索、記事の保存・共有、インテリジェンス分類器の学習、新しいフィードの発見、ワークフローの自動化がNewsBlur CLIで実現します。ユーザーがNewsBlurアカウントを操作したい場合、フィードの確認、購読管理、またはニュース読み込みに関するスクリプト構築時に活用してください。
caveman-compress
自然言語のメモリファイル(CLAUDE.md、todos、preferences)を「原始人形式」に圧縮し、入力トークンを削減します。技術的な内容、コード、URL、構造はすべて保持したまま圧縮します。圧縮版が元のファイルを上書きし、人間が読める形のバックアップはFILE.original.mdとして保存されます。トリガー:/caveman-compress FILEPATH または「compress memory file」
find-skills
日本語の意図から Agent Skills を発見する。「楽天SEOのスキル探して」「PDFを処理したい」「データ分析を自動化したい」などの日本語リクエストに対応。Claude Code (CLI)、Codex、Gemini CLI、claude.ai (Web) いずれでも動作。日本最大の Agent Skills データベース「Agent Skills by ALSEL」(11,000件超、全件日本語化、ダウンロード可能スキル8,600件超) から、ユーザーの意図に合うスキルを推薦・インストール案内する。
planning-and-task-breakdown
仕事を順序立てたタスクに分割します。仕様書や要件が明確にあり、実装可能なタスクに分解する必要がある場合に利用してください。タスクが大きすぎて着手しづらい場合、スコープを見積もる必要がある場合、または並列で作業を進められる場合に活用できます。
docx
このスキルは、ユーザーがWord文書(.docxファイル)を作成、読み込み、編集、操作したいときに使用します。以下の場合に実行してください:「Word文書」「.docx」などの記述、または目次・見出し・ページ番号・レターヘッドなどのフォーマットを含む専門的な文書の作成リクエスト。また、.docxファイルのコンテンツ抽出・再編成、文書への画像挿入・置換、Word形式での検索置換、変更履歴やコメント機能の使用、コンテンツを整形したWord文書への変換の場合も対象です。ユーザーが「レポート」「メモ」「手紙」「テンプレート」などの成果物をWord形式または.docxファイルで求める場合はこのスキルを使用してください。PDF、スプレッドシート、Google Docs、文書作成と無関係なコーディングタスクには使用しないでください。
idea-refine
アイデアを反復的に改善します。構造化された発散的思考と収束的思考を通じて、アイデアを洗練させることができます。「idea-refine」または「ideate」を使用してトリガーします。