One-push release workflow: auto git add all changes, pull latest, per-file commit, generate docs, push to remote with optional tag.
From android-dev-toolsnpx claudepluginhub adzcsx2/android-claude-skills --plugin android-dev-toolsThis skill uses the workspace's default tool permissions.
README.mdSearches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Searches prompts.chat for AI prompt templates by keyword or category, retrieves by ID with variable handling, and improves prompts via AI. Use for discovering or enhancing prompts.
Executes pre-written implementation plans: critically reviews, follows bite-sized steps exactly, runs verifications, tracks progress with checkpoints, uses git worktrees, stops on blockers.
中文环境要求
本技能运行在中文环境下,请遵循以下约定:
- 面向用户的回复、注释、提示信息必须使用中文
- AI 内部处理过程可以使用英文
- 所有生成的文件必须使用 UTF-8 编码
一键发布工作流:自动暂存所有变更、拉取最新代码、逐文件提交、生成更新文档、推送到远程仓库。
重要:所有 git 命令均在用户当前工作目录执行。
/android-dev-tools:push - 自动暂存所有变更,逐文件提交,生成文档,推送到远程/android-dev-tools:push 1.2.2 - 更新文档版本号到 1.2.2,提交并打 tag| Parameter | Description |
|---|---|
| No args | 自动 git add 所有变更,逐文件提交,生成文档,推送到远程 |
X.Y.Z | 额外将文档中的版本号更新为指定版本,并创建 tag |
在执行任何操作之前,验证环境是否满足要求:
# 1. 确认在 git 仓库中
git rev-parse --is-inside-work-tree
# 2. 确认 remote origin 存在
git remote get-url origin
# 3. 确认工作区有变更(已暂存或未暂存)
git status --porcelain
检查结果处理:
| 检查项 | 失败时 |
|---|---|
| 非 git 仓库 | 提示用户,退出 |
| 无 remote origin | 提示用户,退出 |
| 工作区无任何变更 | 提示用户没有需要提交的更改,退出 |
在提交之前,先拉取远程最新代码,避免推送时冲突。
执行流程:
BRANCH=$(git branch --show-current)
REMOTE=$(git remote | head -1)
git stash 保存,拉取完成后 git stash pop 恢复git pull --rebase $REMOTE $BRANCH
git stash pop 恢复工作区冲突处理策略:
直接继续下一步。
以下情况自动解决,无需用户介入:
| 冲突类型 | 解决方式 |
|---|---|
| 一方删除、另一方未修改 | 接受删除 |
| 一方修改、另一方未修改 | 接受修改方的版本 |
| 一方新增文件、另一方无操作 | 保留新增文件 |
| 仅换行/空白符差异 | git checkout --theirs 保留远程版本 |
解决后执行:
git add <resolved files>
git rebase --continue
以下情况需要用户手动处理:
| 冲突类型 | 原因 |
|---|---|
| 双方修改了同一文件的同一区域 | 无法自动判断应保留哪个版本 |
| 冲突涉及 3 个以上文件 | 影响范围大,需要人工判断 |
| 二进制文件冲突 | 无法合并内容 |
处理流程:
git add <resolved files> + git rebase --continue/android-dev-tools:push 继续剩余流程# 用户手动解决冲突后,执行:
git add <resolved files>
git rebase --continue
# 然后重新执行:
/android-dev-tools:push
从 args 中提取版本号(可选)。
如果提供了版本号,校验格式是否为 semver (X.Y.Z):
如果未提供版本号 → 跳过 Step 3,直接进入 Step 4
扫描项目中的文档文件,将版本号更新为指定版本。
重要:此步骤在 Step 4 之前执行,此步骤提交的文件不会出现在 Step 4 的文件扫描中。
需要检查并更新的文件(按优先级):
| 文件 | 更新内容 |
|---|---|
README.md | 版本号相关描述 |
README_EN.md | 英文 README 中的版本号 |
docs/PROJECT_OVERVIEW.md | 项目概览中的版本信息 |
docs/CHANGELOG.md | 在顶部插入新版本记录 |
docs/.doc-metadata.json | metadata 中的版本信息(如有) |
其他 docs/*.md | 任何包含旧版本号的文档 |
版本号检测策略:
README.md 或 docs/PROJECT_OVERVIEW.md 中查找当前版本号版本 X.Y.Z、version X.Y.Z、vX.Y.Z、版本:X.Y.Z 等带上下文的模式minSdkVersion、compileSdk、依赖库版本号等非项目版本号build.gradle、build.gradle.kts 等构建配置文件*.md 和 docs/ 目录下的文件替换后验证:
git diff 检查所有变更提交版本号变更:
git add <changed doc files>
git commit -m "chore: bump version to X.Y.Z"
自动暂存所有工作区变更,然后逐文件提交。
添加所有变更:
git add .
获取变更文件列表(基于 HEAD):
git diff HEAD --name-only
对每个文件生成独立 commit。
执行逻辑(伪代码,非直接运行的脚本):
git reset HEAD -- <file> 将文件从暂存区取出
b. git diff -- <file> 分析该文件的具体变更内容(相对于工作区)
c. 根据变更内容生成 commit message(中文)
d. git add <file> 重新暂存该文件
e. git commit -m "<message>" 提交
f. 如果 commit 失败(如 pre-commit hook 拒绝)→ 停止循环,保留当前状态,提示用户处理Commit message 生成规则:
| 变更类型 | type | 示例 |
|---|---|---|
| 新增功能/文件 | feat | feat: 新增 UserViewModel 用户状态管理 |
| Bug 修复 | fix | fix: 修复登录页面输入框焦点丢失问题 |
| 重构 | refactor | refactor: 重构网络请求拦截器结构 |
| 文档 | docs | docs: 更新 API 接口说明文档 |
| 配置/构建 | chore | chore: 更新 Gradle 依赖版本 |
| 样式/资源 | style | style: 更新登录页面布局样式 |
Commit message 要求:
读取并执行 update-docs skill 的指令来生成项目更新文档:
plugins/android-dev-tools/skills/update-docs/SKILL.md文档生成完成后,检查是否有文档变更:
git diff HEAD --name-only -- docs/
如果有变更,提交:
git add docs/
git commit -m "docs: 更新项目文档"
如果文档没有变化,跳过此提交。
推送代码:
git push $REMOTE $BRANCH
如果推送失败(远程有新提交),执行重试:
git pull --rebase $REMOTE $BRANCH
git push origin HEAD/android-dev-tools:push 重新推送创建 Tag(仅当提供了版本号时):
首先检查 tag 是否已存在:
git tag -l "X.Y.Z"
git tag "X.Y.Z"
git push origin "X.Y.Z"
Tag 命名格式:直接使用用户提供的版本号,例如 1.2.2
执行完成后,远程仓库应包含:
X.Y.Z)stylebuild.gradle、build.gradle.kts 等构建配置文件中的版本号v 前缀,例如 1.2.2