关于 zr-github-repository
指导从 `zenon-red/nexus-template` 创建 zenon-red 仓库并按项目需求定制,涵盖仓库配置、文档、开发钩子和分支保护。
主要功能
- 01从标准模板创建仓库
- 02替换模板占位内容
- 03配置 CI 和开发钩子
- 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. 更新 Logo
模板包含占位 Logo .github/nexus-template.png。请将其替换:
- 临时: 将
nexus-template.png重命名为zr-newborn.png,作为占位图 - 最终: 创建实际的 128px PNG Logo,并保存为
.github/{repo-name}.png - 更新
README.md,使其引用正确的 Logo 文件
# 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/格式化命令 |
.husky/pre-push | 添加测试/构建命令 |
.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. 编写仓库专用 Skill
将占位文件 skills/{repo-name}/SKILL.md 替换为实际指南:
- 技术栈详情
- 项目架构
- 开发命令(构建、测试、lint)
- Agent 专用指南和注意事项
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 后,通过 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
- 禁止删除分支
- 合并前必须创建 PR
- 必须经过 CODEOWNERS 审核(来自
.github/CODEOWNERS) - 新推送会使过期审核失效
- 管理员可绕过(组织所有者通过
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 | 不受过期机器人处理的影响 |
注意: 请勿移除 task 标签——组织级问题模板会用到它。
组织级继承文件
如果以下文件不存在,则会从 zenon-red/.github/ 继承:
| 文件 | 是否继承? | 说明 |
|---|---|---|
PULL_REQUEST_TEMPLATE.md | ✅ 是 | 组织级 PR 模板 |
.github/ISSUE_TEMPLATE/* | ✅ 是 | Bug、功能、任务和文档表单 |
CONTRIBUTING.md | ✅ 是(回退方案) | 模板中包含副本;也可覆盖 |
检查清单
完成设置前,请确认:
- 从
zenon-red/nexus-template创建了仓库 - 已在
README.md中更新实际项目名称和描述 -
.github/settings.yml中的名称和描述正确 - Logo 已从
nexus-template.png重命名为zr-newborn.png(临时名称),或已替换为实际 Logo - 已更新
README.md中的 Logo 引用 - 已重命名并自定义
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标签;组织问题模板需要此标签 - 务必确认 husky 钩子具有可执行权限:
chmod +x .husky/* - 首次推送后,Probot Settings 机器人会同步标签和仓库设置