注:使用前需要自行检查与配置环境依赖(下方已指明安装工具)!!!
Skill作用总结
该 github‑project‑publisher 是一套本地项目首次标准化发布到GitHub的工作流技能,完整覆盖从本地项目到GitHub公开仓库+Release版本发布的全流程,分为5个顺序执行阶段,每个阶段设置明确确认门控,防止误提交敏感信息、错误创建仓库、误发布Release。 主要能力:
- 补全/创建规范的
README.md,强制要求5个必备章节,保证项目文档完整性; - 扫描项目目录,排查密码token、隐私信息、本地路径、临时垃圾文件等敏感内容,仅输出报告不做git操作,规避泄露风险;
- 完成本地git仓库初始化、main分支设置、首次commit;
- 使用gh工具创建公开GitHub远程仓库,关联remote并推送main主分支,执行前需要用户确认仓库名、可见性、操作清单;
- 可选步骤:打v0.1.0标签并创建GitHub Release,发布前需要用户单独确认Release相关内容。
约束要点:必须按阶段顺序执行;涉及用户确认的步骤,无确认不能继续执行;敏感扫描阶段只报告,不做任何git操作。
github-project-publisher SKILL.md(原文)
---
name: github-project-publisher
description: 标准化的 GitHub 项目首次发布工作流,涵盖 README 完善、敏感信息排查、Git 仓库初始化、GitHub 远程仓库创建与推送、v0.1.0 Tag 与 Release 发布五个阶段,每阶段设有明确的确认门控。当用户需要将本地项目从零发布到 GitHub、要求按规范流程完成首次提交与公开推送、或提到"发布到 GitHub""初始化仓库""打 Tag 发 Release"等场景时使用。
---
# GitHub Project Publisher
将本地项目按标准化流程首次发布到 GitHub。全程分为五个阶段,必须按顺序执行;涉及用户确认的阶段,未获确认不得继续。
## 前置约定
- 工作目录:用户当前项目根目录。
- Git 与 GitHub CLI(gh)均已安装,无需检查安装状态。
- 所有命令在项目根目录下执行。
## 阶段一:完善 README.md
检查项目根目录是否存在 `README.md`。若不存在则创建;若存在则补全缺失部分。
README 必须包含以下五个章节,且内容必须与项目真实功能一致,不得虚构:
1. **项目解决什么问题** --- 说明项目背景与目标。
2. **主要功能** --- 列出核心功能点。
3. **安装方法** --- 依赖安装与环境配置步骤。
4. **使用方法** --- 基本运行/调用方式。
5. **输入输出示例** --- 至少一个可运行的示例,包含输入和预期输出。
完成后向用户简要汇报 README 已包含的章节。
## 阶段二:敏感信息排查
对整个项目进行扫描,检查是否存在以下内容:
- 密码或 Token(API Key、Secret、Access Token 等)
- 个人隐私(姓名、邮箱、手机号、身份证号等)
- 本地绝对路径(如 `/home/user/...`、`C:\Users\...`)
- 临时文件(`*.tmp`、`*.log`、`*.bak`、`__pycache__/`、`.DS_Store` 等)
- 测试垃圾文件
- 其他不应该公开的内容
**硬约束:本阶段只向用户报告检查结果,绝不执行任何 Git 操作(不 init、不 add、不 commit)。**
报告格式:逐项列出发现的问题及文件路径;若无问题,明确说明"未发现敏感信息"。发现问题时建议用户处理后再进入下一阶段。
## 阶段三:初始化 Git 仓库并首次提交
在用户确认阶段二无问题(或问题已处理)后执行:
1. 初始化 Git 仓库:`git init`
2. 将默认分支设为 `main`:`git branch -M main`
3. 添加所有文件:`git add .`
4. 首次提交:`git commit -m "Initial commit"`
提交完成后汇报提交哈希与文件数量。
## 阶段四:发布到 GitHub
**执行前必须让用户确认以下三项,未确认不得执行:**
1. **仓库名称** --- 默认使用项目目录名,用户可手动修改。
2. **可见性** --- 固定为 `Public`(公开)。
3. **即将执行的操作** --- 明确列出将创建远程仓库、添加 remote、推送 main 分支。
确认后依次执行:
1. 创建 GitHub 远程仓库(Public):
```bash
gh repo create <仓库名称> --public --source=. --remote=origin
```
2. 推送 main 分支到 origin:
```bash
git push -u origin main
```
完成后汇报仓库 URL 与推送结果。
## 阶段五:v0.1.0 Tag 与 Release
**本阶段执行前必须单独让用户确认是否执行,用户未明确同意则跳过。**
用户确认后,先检查项目是否适合发布 v0.1.0(功能基本可用、README 完整、无已知阻断性 Bug),然后准备以下内容:
1. **v0.1.0 Tag**
2. **Release 标题** --- 格式建议:`v0.1.0 - <简短描述>`
3. **简洁的发布说明** --- 概述本次发布的核心内容
4. **当前功能列表** --- 列出已实现的功能
准备好后向用户展示以上内容,获得最终确认后执行:
1. 创建并推送 Tag:
```bash
git tag -a v0.1.0 -m "Release v0.1.0"
git push origin v0.1.0
```
2. 发布 GitHub Release:
```bash
gh release create v0.1.0 --title "<Release标题>" --notes "<发布说明 + 当前功能列表>"
```
完成后汇报 Release URL。
## 门控汇总
| 阶段 | 确认要求 |
| ---- | ----------------------------------------------- |
| 一 | 无需确认,直接执行 |
| 二 | 只报告,不执行 Git;用户确认无问题后才进阶段三 |
| 三 | 阶段二通过后自动执行 |
| 四 | 必须确认仓库名称、可见性、操作清单 |
| 五 | 必须单独确认是否执行;执行前再确认 Release 内容 |
项目解决什么问题
在把本地项目首次发布到GitHub时,经常遇到这些问题:README文档缺失关键信息、项目内混入密钥/本地路径等敏感文件直接提交泄露、Git仓库初始化步骤混乱、创建GitHub仓库漏确认参数、打Tag与Release发布流程不规范,容易产生安全风险与发布失误。
本项目提供一套标准化首次发布工作流,把本地项目安全、规范地发布到GitHub,通过分阶段门控确认,规避敏感信息泄露、误推送、错误发布Release等问题。
主要功能
- 自动检查并补全项目
README.md文档,强制覆盖5个必备文档章节; - 全项目敏感信息扫描:检测Token密钥、个人隐私、本地绝对路径、临时日志缓存垃圾文件,输出问题报告,不执行Git操作;
- 本地Git仓库初始化:初始化仓库、设置main默认分支、生成项目首次提交;
- 通过GitHub CLI(gh)创建公开远程仓库,关联origin远端,推送main分支代码;
- 可选流程:创建
v0.1.0git tag,生成GitHub Release版本,填写标题与发布说明。
安装方法
环境依赖
- Git 工具,已加入系统环境变量
- GitHub CLI(gh),完成登录授权 本工作流不做依赖检查,使用前请自行确认两个工具已安装可用。
准备工作
- 将工作目录切换至你的项目根目录;
- 确认gh已经完成登录:
gh auth status。
使用方法
本工作流严格按5个阶段顺序执行,带用户确认门控:
-
阶段一:完善README.md 在项目根目录,脚本会检测是否存在
README.md,不存在则新建,补齐「项目解决什么问题、主要功能、安装方法、使用方法、输入输出示例」5个章节。 -
阶段二:敏感信息排查 扫描整个项目目录,输出所有敏感/垃圾文件的问题清单;若无问题则输出未发现敏感信息。
本阶段仅输出报告,不会执行任何git操作,需要用户确认问题处理完毕,才进入下一阶段。
-
阶段三:初始化Git仓库并首次提交 用户确认阶段二通过后自动执行:
git init
git branch -M main
git add .
git commit -m "Initial commit"
执行完成输出本次commit哈希以及提交文件数量。
-
阶段四:发布到GitHub 需要用户确认:仓库名称、仓库为Public公开、确认即将创建远程仓库+添加remote+推送main分支。 确认后执行:
gh repo create <仓库名称> --public --source=. --remote=origin
git push -u origin main
完成输出GitHub仓库访问链接。
-
阶段五:v0.1.0 Tag与Release(可选) 需要用户单独确认是否执行。 确认后,生成tag、整理Release标题、发布说明、功能列表,再次确认内容后执行:
git tag -a v0.1.0 -m "Release v0.1.0"
git push origin v0.1.0
gh release create v0.1.0 --title "<Release标题>" --notes "<发布说明 + 当前功能列表>"
执行完成输出Release访问地址。
输入输出示例
示例输入
项目目录:
demo-project,本地已有业务代码,无README,未初始化git;gh工具已登录成功。 用户确认:仓库名使用demo-project,公开仓库;同意执行v0.1.0 Release发布。
示例输出
【阶段一】已生成README.md,包含章节:项目解决什么问题、主要功能、安装方法、使用方法、输入输出示例
【阶段二】未发现敏感信息
【阶段三】git初始化完成,commit哈希:aabbccdd,本次提交文件数:12
【阶段四】已创建远程仓库,仓库地址:[https://github.com/username/demo-project](https://github.com/username/demo-project),main分支推送完成
【阶段五】已创建v0.1.0标签,Release地址:[https://github.com/username/demo-project/releases/tag/v0.1.0](https://github.com/username/demo-project/releases/tag/v0.1.0)
若阶段二扫描发现敏感文件,示例输出:
【阶段二】检测到敏感信息:
1. ./config/app.ini 包含API Key
2. ./temp/log.tmp 临时日志文件
请处理上述文件后,再继续后续流程。