Run any Skill in Manus
with one click
with one click
Run any Skill in Manus with one click
Get Started$pwd:
$ git log --oneline --stat
stars:0
forks:0
updated:May 1, 2026 at 08:34
SKILL.md
| name | commit |
| description | 把项目当前所有变更按内容分组,一组一组地调用 /msg 生成提交消息并输出 git commit 命令,由用户逐组执行后再继续下一组。 |
每次调用 /commit 只处理一组变更:
git status 扫描当前所有未提交变更(staged + unstaged + untracked)/msg 流程(stage → 生成消息 → 写临时文件)git commit -F <tmpfile> 命令/commit 处理下一组用户工作流:/commit → 执行命令 → /commit → 执行命令 → … 直到所有组完成。
按以下顺序判断,一个文件只属于一组:
| 优先级 | 组名 | 匹配规则 |
|---|---|---|
| 1 | skills | .claude/skills/ 下的文件 |
| 2 | classes | classes/ 下的 .js 文件 |
| 3 | js | 根目录 app.js 及其他 .js 文件 |
| 4 | html | index.html 及其他 .html 文件 |
| 5 | css | style.css 及其他 .css 文件 |
| 6 | assets | screenshot/、图片、音频、字体等资源文件 |
| 7 | docs | README.md、CHANGELOG.md、TODO.md、INSTRUCTIONS.md、docs/ |
| 8 | config | *.json、.gitignore、start.sh、.claude/settings*.json |
| 9 | other | 其他所有文件 |
分组后若某组只有 1 个文件且与相邻组强相关,可合并(由 Claude 判断)。
git status --short
收集所有 M、A、D、?? 状态的文件路径。
按分组策略归类,输出如下格式:
📦 分组计划(共 N 组):
[1/N] classes(3 个文件)
- classes/Zombie.js
- classes/Plant.js
- classes/Projectile.js
[2/N] js(1 个文件)
- app.js
[3/N] docs(2 个文件)
- README.md
- CHANGELOG.md
判断"第一组":即 git status 中仍有变更的最高优先级组(已完成提交的组不再出现在 status 中)。
对该组执行 /msg 流程:
git add <该组所有文件路径>(逐个显式路径,禁止 -A/.)git diff --cached --stat 确认缓存区git diff --cached 查看具体内容git log --oneline -5 了解 commit 风格python3 -c "
import hashlib, subprocess, datetime
diff = subprocess.check_output(['git','diff','--cached'])
h = hashlib.sha256(diff).hexdigest()[:6]
ts = datetime.datetime.now().strftime('%Y%m%d_%H%M%S')
print(f'/tmp/gitmsg_{ts}_{h}.txt')
"
输出格式:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[1/N] classes — 提交消息已写入 /tmp/gitmsg_XXXXXXXX_XXXXXX.txt
<消息草稿全文>
执行:
git commit -F /tmp/gitmsg_20260501_143521_a3f8c1.txt
完成后再次运行 /commit 处理下一组 [2/N] js
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
若这是最后一组,替换为"完成后所有变更已提交"。
git add -A / git add . / git add --allgit commitgit restore --staged .)还是将缓存区内容并入当前组