zr-github-repository について
`zenon-red/nexus-template` から zenon-red リポジトリを作成し、プロジェクトに合わせて調整するセットアップスキルです。リポジトリ設定、ドキュメント、開発フック、ブランチ保護を案内します。
主な機能
- 01標準テンプレートからリポジトリを作成
- 02テンプレートのプレースホルダーを置換
- 03CI と開発フックを設定
- 04ドキュメントとプロジェクトスキルを調整
- 05ブランチ保護を設定
- 06チェックリストで作業を管理
活用シーン
- 01新しい zenon-red リポジトリの開始
- 02プロジェクトに合わせたテンプレート設定
- 03技術スタック別チェックの設定
- 04初回プッシュに向けた準備
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ zenon-red/ skills --skill zr-github-repositoryインストール後、Claude Code で/zr-github-repositoryを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
assets/gitignoreassets/github/ci.ymllabeler-config.ymllabeler.ymlsettings.ymlstale-issues-prs.ymlassets/husky/commit-msgpre-commitpre-push詳細
Zenon-Red リポジトリのセットアップ
標準の zenon-red テンプレートを使用して新しいリポジトリを作成し、特定のプロジェクトに合わせてカスタマイズします。
テンプレートを使用した方法
zenon-red のすべてのリポジトリは、GitHub テンプレート zenon-red/nexus-template から作成してください。
gh repo create zenon-red/REPO_NAME --template zenon-red/nexus-template --public
その後、クローンしてカスタマイズします。
gh repo clone zenon-red/REPO_NAME
cd REPO_NAME
テンプレート作成後のカスタマイズ
テンプレートから作成した後、次の手順でカスタマイズします。
1. プレースホルダーを置き換える
すべての REPO_NAME プレースホルダーを、実際のリポジトリ名に更新します。
| ファイル | 変更内容 |
|---|---|
README.md | nexus-template をリポジトリ名に置き換え、説明を更新 |
.github/settings.yml | name: と description: を更新 |
docs/setup.md | nexus-template への参照を更新 |
skills/REPO_NAME/SKILL.md | フォルダー名を実際のリポジトリ名に変更し、内容をすべて更新 |
2. ロゴを更新する
テンプレートにはプレースホルダーのロゴ .github/nexus-template.png が含まれています。これを置き換えます。
- 一時的な対応: プレースホルダーとして
nexus-template.pngをzr-newborn.pngに名前変更します - 最終対応: 実際の 128px PNG ロゴを作成し、
.github/{repo-name}.pngとして保存します README.mdを更新し、正しいロゴファイルを参照します
# Rename placeholder first
git mv .github/nexus-template.png .github/zr-newborn.png
# Update README.md to point to zr-newborn.png temporarily
# Later, replace with actual logo:
git mv .github/zr-newborn.png .github/{repo-name}.png
3. 技術スタックを設定する
使用する技術スタックに合わせて、TODO を記入します。
| ファイル | 技術スタック固有の変更 |
|---|---|
.github/workflows/ci.yml | 使用するツールチェーン(Node、Rust、Python、Go、Deno)のコメントを解除するか、設定します |
.husky/pre-commit | lint/format コマンドを追加します |
.husky/pre-push | test/build コマンドを追加します |
.github/dependabot.yml | 使用するパッケージエコシステムのコメントを解除し、設定します |
.gitignore | 技術スタック固有のパターンを追加します |
4. CODEOWNERS を更新する(必要な場合)
デフォルトは @zenon-red/zoe です。別の所有者を指定する必要がある場合は変更します。
# .github/CODEOWNERS
* @zenon-red/team-name
5. ドキュメントを更新する
テンプレート固有のファイルを削除します。
docs/setup.md- テンプレートからセットアップする場合にのみ使用するため、カスタマイズ後に削除します
docs/ にユーザー向けドキュメントを作成します。
getting-started.md- インストールと最初の手順commands.md- CLI コマンドまたは API リファレンスarchitecture.md- 技術アーキテクチャの概要examples.md- 使用例
docs/README.md のインデックスを更新し、次の作業を行います。
setup.mdへのリンクを削除します- 新しいプロジェクト固有のドキュメントへのリンクを追加します
6. リポジトリ固有のスキルを作成する
プレースホルダーの skills/{repo-name}/SKILL.md を、実際のガイダンスに置き換えます。
- 技術スタックの詳細
- プロジェクトのアーキテクチャ
- 開発コマンド(build、test、lint)
- エージェント固有のガイドラインと注意点
7. 依存関係をインストールし、フックをセットアップする
# Install your package manager dependencies
npm install # or cargo, pip, go mod, etc.
# Initialize husky (if using Node.js)
npx husky init
8. 最初のコミット
git add .
git commit -m "chore: initial setup from nexus-template"
git push -u origin main
9. ブランチ保護を適用する
main への最初の push の後、API を使用してブランチ保護を適用します(無料プランで利用でき、有料の GitHub Team プランは不要です)。
gh api repos/zenon-red/REPO_NAME/branches/main/protection \
-X PUT \
-f "enforce_admins=false" \
-f "required_pull_request_reviews[required_approving_review_count]=0" \
-f "required_pull_request_reviews[dismiss_stale_reviews]=true" \
-f "required_pull_request_reviews[require_code_owner_reviews]=true" \
-f "restrictions=null" \
-f "allow_force_pushes=false" \
-f "allow_deletions=false"
次の設定が適用されます。
- main への強制 push を禁止します
- ブランチの削除を禁止します
- マージ前に PR を必須にします
- CODEOWNERS によるレビューを必須にします(
.github/CODEOWNERSから取得) - 新しい push があると、古いレビューを却下します
- 管理者によるバイパスを許可します(
enforce_admins=falseによる組織オーナーの上書き)
注: これは、すべての GitHub プランで利用可能なブランチ保護エンドポイントを使用します。ルールセット(/repos/.../rulesets)は使用しないでください。有料の GitHub Team プランが必要です。
目標とする構成(テンプレート適用・カスタマイズ後)
repo/
├── .github/
│ ├── {repo}.png # Logo (128px) - replace zr-newborn.png placeholder
│ ├── CODEOWNERS # Code owners (@zenon-red/zoe default)
│ ├── dependabot.yml # Dependency updates (configure for your stack)
│ ├── labeler.yml # PR label patterns
│ ├── settings.yml # Repo settings and labels
│ └── workflows/
│ ├── ci.yml # Stack-specific CI pipeline
│ ├── labeler.yml # Auto-label PRs
│ └── stale-issues-prs.yml
├── .husky/
│ ├── commit-msg # Commit message validation (optional)
│ ├── pre-commit # Pre-commit checks (lint, format)
│ └── pre-push # Pre-push checks (test, build)
├── docs/ # Documentation
│ ├── README.md # Docs index (remove setup.md link)
│ ├── getting-started.md # (create as needed)
│ └── ... # Other user docs (setup.md removed)
├── skills/
│ └── {repo-name}/
│ └── SKILL.md # Repo-specific agent guidance
├── src/ # Source code (create for your stack)
├── .gitignore # Stack-specific ignore patterns
├── CONTRIBUTING.md # Contribution guidelines (can override org)
├── LICENSE # MIT license
├── README.md # Main project README
└── {config files} # package.json, Cargo.toml, etc.
技術スタック別のフック例
pre-commit
# TypeScript/JavaScript
npm run lint:staged && npm run typecheck
# Rust
cargo fmt --check && cargo clippy
# Python
ruff check . && mypy .
# Go
go fmt ./... && go vet ./...
# Deno
deno lint && deno check
pre-push
# TypeScript/JavaScript
npm run check:push
# Rust
cargo test && cargo clippy -- -D warnings
# Python
pytest && ruff check .
# Go
go test ./... && go build ./...
# Deno
deno test && deno lint
ラベル(テンプレート内)
テンプレートの .github/settings.yml には、次のラベルが含まれています。
| ラベル | 色 | 説明 |
|---|---|---|
bug | d73a4a | 正しく動作しないもの |
feature | 0e8a16 | 新機能またはリクエスト |
task | 6f42c1 | 実装予定の作業項目 |
documentation | 0075ca | ドキュメントの改善 |
doc | 0075ca | ドキュメントの変更(PR ラベル) |
code | 1d76db | ソースコードの変更 |
dep | 0366d6 | 依存関係の更新 |
config | 5319e7 | 設定の変更 |
pinned | fbca04 | stale bot の対象外 |
注: 組織レベルの issue テンプレートで使用するため、task ラベルは削除しないでください。
組織レベルで継承されるファイル
以下のファイルは、存在しない場合に zenon-red/.github/ から継承されます。
| ファイル | 継承される? | 備考 |
|---|---|---|
PULL_REQUEST_TEMPLATE.md | ✅ はい | 組織レベルの PR テンプレート |
.github/ISSUE_TEMPLATE/* | ✅ はい | バグ、機能、タスク、ドキュメントのフォーム |
CONTRIBUTING.md | ✅ はい(フォールバック) | テンプレートにコピーが含まれています。上書きできます |
チェックリスト
セットアップを完了とする前に、以下を確認してください。
-
zenon-red/nexus-templateからリポジトリを作成した -
README.mdを実際のプロジェクト名と説明に更新した -
.github/settings.ymlに正しい名前と説明が設定されている - ロゴの名前を
nexus-template.pngからzr-newborn.png(一時)に変更した、または実際のロゴに置き換えた -
README.mdのロゴ参照を更新した -
skills/{repo}/SKILL.mdの名前を変更し、内容をカスタマイズした -
.github/dependabot.ymlをパッケージエコシステムに合わせて設定した -
.github/workflows/ci.ymlを技術スタックに合わせて設定した -
.husky/pre-commitに適切な lint/format コマンドを設定した -
.husky/pre-pushに適切な test/build コマンドを設定した -
.gitignoreにスタック固有のパターンを設定した -
docs/setup.mdを削除した(テンプレート固有) -
docs/getting-started.mdまたは相当するファイルを作成した - 依存関係をインストールし、
package.json/Cargo.tomlなどを設定した - 最初のコミットを main にプッシュした
- ブランチ保護を適用した(ルールセットではなく API 経由)
- ファイル内のすべての TODO コメントに対応した、または削除した
重要な注意事項
- 絶対にリポジトリをゼロから作成しないでください。必ず
--template zenon-red/nexus-templateを使用してください - 必ず
taskラベルを維持してください。組織の issue テンプレートで必須です - 必ず husky フックが実行可能であることを確認してください:
chmod +x .husky/* - Probot Settings ボットは、最初のプッシュ後にラベルとリポジトリ設定を同期します