惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Security Archives - TechRepublic
Security Archives - TechRepublic
爱范儿
爱范儿
Recent Announcements
Recent Announcements
AI
AI
V
Visual Studio Blog
H
Heimdal Security Blog
L
LINUX DO - 最新话题
Attack and Defense Labs
Attack and Defense Labs
宝玉的分享
宝玉的分享
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
W
WeLiveSecurity
人人都是产品经理
人人都是产品经理
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
WordPress大学
WordPress大学
S
Secure Thoughts
S
Security Affairs
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
N
News and Events Feed by Topic
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
博客园 - 聂微东
博客园 - Franky
阮一峰的网络日志
阮一峰的网络日志
Schneier on Security
Schneier on Security
Hugging Face - Blog
Hugging Face - Blog
Apple Machine Learning Research
Apple Machine Learning Research
Forbes - Security
Forbes - Security
The Cloudflare Blog
博客园 - 【当耐特】
酷 壳 – CoolShell
酷 壳 – CoolShell
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
月光博客
月光博客
有赞技术团队
有赞技术团队
博客园 - 司徒正美
博客园_首页
Recent Commits to openclaw:main
Recent Commits to openclaw:main
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
NISL@THU
NISL@THU
C
Cybersecurity and Infrastructure Security Agency CISA
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
P
Proofpoint News Feed
罗磊的独立博客
V
Vulnerabilities – Threatpost
S
Securelist
N
News and Events Feed by Topic
Cloudbric
Cloudbric
P
Proofpoint News Feed
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
V2EX - 技术
V2EX - 技术
小众软件
小众软件

宝玉的分享

tsshd v0.1.9 已经发布,低延迟的 ssh - OSCHINA - 开源 × AI · 开发者生态社区 一文看懂ChatGPT、Codex、Work 的差别 从零开始玩转循环 (Getting started with loops) 为啥 Codex 还不推出类似 Codex Design 的产品? DeepSeek 的 10 万亿美元大战略 来自 Codex 官方团队的分享:如何把 Codex 用到极致 为什么我不“凭感觉编程” 创始人手册:打造 AI 原生初创公司 Forward Deployed Engineer:AI 时代的新宠岗位,到底干什么? AI 时代到底该怎么管一个工程团队 为什么资深开发者讲不清自己的专业能力 Codex 的野心,MCP 和 Skill 的下一步 裁员潮将持续,直到我们学会发掘 AI 的商业价值 机器人的终局:英伟达 Jim Fan 宣告 VLA 时代结束,WAM 登场 深度拆解:AI Agent Harness 的构造 使用 Claude Code:HTML 难以置信的奇效 Anthropic 兄妹 Dario Amodei 和 Daniela Amodei 最新对话:Claude 为什么一直限速? Boris Cherny:Claude Code 之后,写代码正在变成“管理 Agent” 大多数公司根本没有为 AI 做好准备 Demis Hassabis:AGI 还缺什么,智能体到底行不行,下一个科学突破长什么样 深度拆解 Hermes Agent 的记忆系统:它如何修正 OpenClaw 的误区 Karpathy 最新访谈:Vibe Coding 只是开始,真正重要的是 Agentic Engineering AI 的经济账根本算不通 为 Agent 设计产品 Cat Wu 面试了几百个 PM 候选人,几乎没人答对一个问题:AI 产品经理到底应该干什么? 两小时激辩:黄仁勋为什么不怕 TPU、不怕华为、不怕出口管制? 设计圈的 Claude Code 时刻来了 使用 Claude Code:会话管理与 100 万 上下文 Vibe Coding 是中年男人的钓鱼 为什么你的"AI 优先"战略可能大错特错? “多智能体协作指南:五种主流模式怎么选、怎么用?” 访谈|Codex 团队如何用自己的产品构建产品——整个 Spec 只有 10 个要点 Claude Code 省 Token 指南:慎用 1M 上下文,不开新会话或者总是开新会话都不对 编程智能体的核心组件【译】 Claude Code 源码泄漏了,但我不打算写源码分析分析文章 OpenAI 总裁 Greg Brockman:AI 自我改进、Super App 豪赌、通往 AGI 之路、算力扩张 Notion 联合创始人 Simon Last:我从去年夏天起就没写过一行代码了 飞书 CLI 开源了,为什么 AI Agent 时代,大家都在做命令行工具? 在中国 AI 生态圈摸底了两周,我学到了什么 AI 发展太快跟不上?一张四象限图帮你做减法 被美国遣返、禁止入境 5 年,他在温哥华的卧室里做出了日处理 400 万工作流的 AI 平台 构建 Claude Code 的经验:我们如何使用 Skills 智能体工程的 8 个等级 编程 Agent 如何重塑工程、产品和设计 当 AI 写了几乎所有代码,软件工程会怎样? 品牌时代 我用 AI 翻译的三个阶段:提示词时代 → 推理模型时代 → Agent 时代 多稿合并:从手动比稿到一键 Skill 陶哲轩最新演讲:AI 不是来抢数学家蛋糕的,是来把蛋糕做大的 设计流程已死:Anthropic 设计负责人 Jenny Wen 谈 AI 时代的设计变革 Greg Brockman(OpenAI 联合创始人)把“那场宫斗”讲完整了:董事会、请愿书、马斯克与控制权 被封杀当晚,OpenAI 拿到了相同条款——Amodei 首次专访揭开 Anthropic 与五角大楼冲突内幕 从写代码到管 Agent:斯坦福首门 AI 软件开发课的讲师说,大多数工程师还没准备好 Anthropic CEO Dario Amodei:海啸已在地平线上,但没人在看 驾驭工程:在「智能体优先」的世界里借力 Codex Coding Agent 有个甜蜜点,多数人直接跳过了 92.6% 开发者每月使用 AI 编码助手,但每周节省时间只有 4 小时 同样的模型,为什么 Cursor 跑不过 Claude Code? Cursor 设计负责人:只会画按钮的设计师,有麻烦了 OpenAI Codex 产品负责人:代码不再由人类编写,但我们会有更多构建者(Builder) OpenAI 应用 CTO 和 Codex 负责人:AI 正在重塑构建软件的方式 Notion CEO:不能被 Agent 用的产品没有未来 提示词救不了平庸的 AI 写作 高中辍学生靠 ChatGPT 自学成才成了 OpenAI 的研究科学家 59% 用户投票选了更便宜的那个:Sonnet 4.6 全面解读 Jeff Dean 深度访谈:一页纸备忘录促成 Gemini 的诞生,Google AI 的反击与 10,000 Token 的未来 快不等于好:Anthropic 和 OpenAI 的快速模式藏着什么 别再用提示词去 AI 味了,方向就是错的 Anthropic CEO Dario Amodei 访谈:我们正在接近指数的终点 只有 30 个工程师的 X,是怎么重新杀回 App Store 第二的 马斯克说今年编程就要死了,你信吗? OpenAI 智能体工程指南:10 条实战技巧和 3 种构建模式 我们真的变成巫师了:OpenAI API 负责人谈 AI 如何重塑软件工程 xAI 全员大会实录:递归自我改进、5000 万视频/天、月球上的质量驱动器 PC 软件为手机重做了一遍,现在轮到 Agent 了 2026 编程巨变:Anthropic 报告揭示 Agent 编程八大趋势 既然 AI 越来越聪明,那么学习提示词不是浪费时间吗? 【访谈对话】造过 Codex 的人,为什么每天用 Claude Code 深度解析:Claude Code /insights 命令的运作机制 马斯克三小时访谈实录:36 个月后,太空是训练和运行 AI 最便宜的地方 Claude Code 团队的 10 个内部技巧,但你不一定都要学
用 Claude Code 的 Hook + Skill,实现每次提交后自从 commit 提交变更
宝玉 · 2026-02-18 · via 宝玉的分享

我用 Git 管理所有写作内容,文章、素材、提纲、草稿,全在仓库里。问题是我经常忘记提交。写完一篇文章,润色完,发布了,然后就去忙别的了。过几天一看 git status,十几个文件的变更堆在那里,完全不记得哪次改了什么。Git 本来是用来追踪每一步修改的,结果变成了一个大杂烩的快照工具。

现在我用 Claude Code 跑写作流程,从素材分析到成稿发布基本都交给它。既然每次任务它都在改文件,能不能让它改完就自己提交?

两个机制配合就解决了。

Hook:任务结束时的拦截器

Claude Code 支持 Hook 机制,在特定事件(会话开始、工具调用前后、任务结束等)发生时自动执行脚本。思路和 Git Hook 类似,但挂在 Claude Code 的生命周期上。

我在项目的 .claude/settings.local.json 里配了一个 Stop Hook,每次 Claude Code 准备结束任务时触发:

"hooks": {
  "Stop": [{
    "hooks": [{
      "type": "command",
      "command": "\"$CLAUDE_PROJECT_DIR\"/.claude/hooks/auto-commit.sh"
    }]
  }]
}

脚本做的事很简单:检查工作区有没有未提交的变更(新文件、修改、删除),如果有,就阻止 Claude Code 停下来,告诉它“你还有活没干完,去提交”。

核心逻辑就这几行:

if git diff --quiet && git diff --cached --quiet && \
   [ -z "$(git ls-files --others --exclude-standard)" ]; then
  exit 0  # 没变更,正常结束
fi

# 有变更,拦住它
echo '{"decision": "block", "reason": "检测到未提交的变更,请调用 /commit 技能提交更新。"}'

还有个细节:提交本身也会触发“任务结束”,不处理就无限循环。脚本用 stop_hook_active 标志跳过二次触发。

Commit Skill:让提交有意义

Hook 只管拦截,具体怎么提交靠 Commit Skill

Skill 是 Claude Code 的技能模块,放在 .claude/skills/ 目录下,用 SKILL.md 定义工作流程。name 字段自动变成 /slash-command,手动或自动都能触发。相当于一份操作手册,告诉 Claude Code 遇到特定任务该怎么做。

我的 /commit 技能定义了这些规则:

  • 先分析变更文件的路径,判断改的是文章、技能配置还是代码
  • 按主题分组提交,不把所有东西塞进一个 commit。比如改了两篇文章,就分两次提交
  • 自动生成中文 commit message,格式固定:文章用“添加/润色/更新 + 主题”,代码用“优化/修复 + 功能”
  • 明确指定提交文件,避免 git add . 这种粗暴操作,排除临时文件和备份文件

这样 git log 里看到的是:

42257b3 添加 Amodei NYT 访谈整理文章
c4eee96 添加 Peter Steinberger OpenClaw 访谈整理文章
e2a01da 润色 Suleyman FT 专访文章

每条都说得清楚这次改了什么,不是那种“update files”或者“misc changes”的垃圾信息。

两个机制的配合:Hook 当守门员,保证没有变更被遗漏;Skill 当执行者,保证每次提交都有意义。 我再也不用惦记提交这件事了。


附录:完整配置

Hook 脚本

文件路径:.claude/hooks/auto-commit.sh

#!/bin/bash
# Stop hook: 任务完成后自动检测未提交变更并触发 commit skill

INPUT=$(cat)
STOP_HOOK_ACTIVE=$(echo "$INPUT" | jq -r '.stop_hook_active // false')

# 防止无限循环:commit 后再次触发时直接放行
if [ "$STOP_HOOK_ACTIVE" = "true" ]; then
  exit 0
fi

# 检查是否有未提交的变更
cd "$CLAUDE_PROJECT_DIR" 2>/dev/null || exit 0

# 检查工作区是否有变更(已修改、新文件等)
if git diff --quiet 2>/dev/null && git diff --cached --quiet 2>/dev/null && [ -z "$(git ls-files --others --exclude-standard 2>/dev/null)" ]; then
  # 没有变更,正常结束
  exit 0
fi

# 有未提交变更,阻止 Claude 停止,让它继续执行 commit
cat <<'EOF'
{"decision": "block", "reason": "检测到未提交的变更,请调用 /commit 技能提交更新。"}
EOF

Commit Skill

文件路径:.claude/skills/commit/SKILL.md

---
name: commit
description: 提交当前未 commit 的修改。自动分析变更内容,生成规范的 commit message,支持按目录分组提交或一次性提交所有修改。
---

# Git Commit 技能

提交当前未 commit 的修改到 git 仓库。

## 工作流程

### 步骤一:查看未提交修改

git status --short

分析变更类型:
- M - 已修改
- ?? - 新文件(未跟踪)
- D - 已删除
- R - 重命名

### 步骤二:分析变更内容

根据修改文件路径判断变更类型:

| 路径模式 | 变更类型 |
|----------|----------|
| posts/YYYY-MM-DD/[slug]/ | 文章相关 |
| .claude/skills/ | 技能配置 |
| src/ | 脚本代码 |
| .r2-upload-map/ | 资源映射(通常不单独提交) |
| 其他 | 项目配置 |

### 步骤三:决定提交策略

单一主题修改:一次性提交所有文件

多主题修改:按目录/主题分组提交

分组优先级:
1. 文章目录(每篇文章一个 commit)
2. 技能目录(每个技能一个 commit)
3. 代码变更(合并为一个 commit)
4. 配置文件(合并为一个 commit)

### 步骤四:生成 Commit Message

格式规范:
- 用中文
- 简洁描述变更内容
- 不超过 50 字

常用模板:
- 文章:添加 [文章主题简述]、润色 [文章标题]、更新 [文章标题]
- 技能:添加 [技能名] 技能、更新 [技能名] 技能
- 代码:优化 [功能描述]、修复 [问题描述]
- 配置:更新项目配置

### 步骤五:执行提交

git add <file1> <file2> ...
git commit -m "commit message"

注意:
- 避免使用 git add . 或 git add -A
- 明确指定要提交的文件
- 排除临时文件(.bak-*、.html.bak-*)

### 步骤六:确认结果

git log --oneline -3

输出最近提交记录确认成功。

## 排除规则

以下文件默认不提交:
- *.bak-* - 备份文件
- .DS_Store - macOS 系统文件
- node_modules/ - 依赖目录
- .r2-upload-map/*.json - 通常随文章一起提交,除非单独要求

Hook 配置

文件路径:.claude/settings.local.json(相关部分)

{
  "hooks": {
    "Stop": [{
      "hooks": [{
        "type": "command",
        "command": "\"$CLAUDE_PROJECT_DIR\"/.claude/hooks/auto-commit.sh"
      }]
    }]
  }
}