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

推荐订阅源

S
SegmentFault 最新的问题
Google DeepMind News
Google DeepMind News
G
Google Developers Blog
Martin Fowler
Martin Fowler
MongoDB | Blog
MongoDB | Blog
月光博客
月光博客
Jina AI
Jina AI
宝玉的分享
宝玉的分享
人人都是产品经理
人人都是产品经理
D
DataBreaches.Net
V
V2EX
WordPress大学
WordPress大学
T
The Blog of Author Tim Ferriss
Last Week in AI
Last Week in AI
B
Blog
博客园 - 叶小钗
小众软件
小众软件
Stack Overflow Blog
Stack Overflow Blog
P
Proofpoint News Feed
A
About on SuperTechFans
J
Java Code Geeks
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Y
Y Combinator Blog
Microsoft Security Blog
Microsoft Security Blog

暗无天日

读:AI Agent 安全日志——从可见性与隐私的两难说起 - 暗无天日 AI写作的语言指纹——如何让文字不那么像机器 - 暗无天日 读:50 条 Claude Code 技巧——一个工程经理的六个月使用心得 读:AI 辅助开发为什么让 E2E 测试更有价值 - 暗无天日 读:在Emacs中使用Claude Code(Spacemacs适配版) - 暗无天日 Claude Code 背后的工程哲学——读 Agent Harness Engineering 读:Agent Harness Engineering——AI 智能体不只是模型,还有套件 - 暗无天日 browser-harness:让 AI 直接接管你的浏览器 - 暗无天日 读:Security-First CI/CD —— DevSecOps 自动化实践指南 TIL: 数字小键盘的小数点陷阱与行内算术求值 - 暗无天日 读:Immutability 不是万能药,它是一种权衡 - 暗无天日 Conducty:给 Claude Code 加上项目记忆和并行执行能力 - 暗无天日 读 — GitHub Trending 里的 Claude Code 技能包 读 — Prompt Caching 省钱指南 TIL: Emacs 中那些跟鼠标配合的冷门快捷键 - 暗无天日 读:Anvil——把 Emacs 变成 AI 的工具服务器 读:Emacs 代码折叠终极指南 - 暗无天日 读:Clojure 搭车客指南 - 暗无天日 git推送失败后恢复仓库损坏的完整记录 - 暗无天日 多智能体系统的两个有效模式——以及对 Claude Code 用户的启示 - 暗无天日 用 Org Babel 写 Literate 博文:扩展执行 + 定制导出 proced:Emacs 内置的进程查看器 - 暗无天日 从 proced 定制中学到的 Elisp 模式 读:让 Emacs proced 在 macOS 上显示 CPU 和内存 异步编程的函数着色税 - 暗无天日 链式调用的代价:JavaScript 和 Clojure 的共同教训 - 暗无天日 hyperfine:命令行基准测试工具 - 暗无天日 管道中的变量去哪了?——子 shell 作用域陷阱 - 暗无天日 开源包装器的信任陷阱:四个危险信号 - 暗无天日 程序员愿意为 AI 写文档,却不愿为同事写 - 暗无天日
读:ox-skills——用 Org-mode 管理 Claude Code 的 Skill 定义
lujun9972,Claude Code · 2026-05-31 · via 暗无天日

假设我们要写一个审查当前未提交改动的 skill。用 ox-skills 的方式,Org 文件长这样,

#+SKILL_NAME: git-review
#+SKILL_DESCRIPTION: Review current uncommitted changes and suggest improvements
#+SKILL_ALLOWED_TOOLS: Bash Read
#+SKILL_USER_INVOCABLE: true
#+SKILL_BASE_DIR: ~/.claude/skills

Review the current uncommitted changes for:

1. *Bugs*: Logic errors, edge cases, missing error handling
2. *Style*: Naming, function length, code organization
3. *Security*: Input validation, injection risks

Be constructive. Prioritize findings by severity.

* Current changes

#+begin_src sh :inject yes
git diff HEAD
#+end_src

C-c C-e s s (或者 M-x org-export-dispatchs s )导出后,ox-skills 在 ~/.claude/skills/git-review/SKILL.md 生成这样的文件,


name: git-review
description: Review current uncommitted changes and suggest improvements
allowed-tools: [Bash, Read]
user-invocable: true


Review the current uncommitted changes for:

1. **Bugs**: Logic errors, edge cases, missing error handling
2. **Style**: Naming, function length, code organization
3. **Security**: Input validation, injection risks

Be constructive. Prioritize findings by severity.


```!
git diff HEAD
```

对比源文件和产物,能看出 ox-skills 做了什么。 #+SKILL_* 关键字变成 YAML frontmatter 里的对应字段,Org 的正文变成 Markdown 正文, *Current changes* 标题变成 ## Current changes ,加了 :inject yes 的 src block 变成了带叹号的代码围栏(区别于普通的代码围栏)。

带叹号的代码围栏是关键差异。普通代码块是静态内容,带叹号的围栏会被 Claude Code / OpenCode 在调用 skill 时实际执行,把运行结果注入到上下文里。你调用 git-review skill 的时候,AI 工具先跑 git diff HEAD ,拿到当前改动,再基于这个结果做审查。手写 SKILL.md 也可以直接写带叹号的围栏,但 ox-skills 让你用 Org 语法( :inject yes )来表达,跟其他 src block 的写法一致。

*关键词对照。 * ox-skills 支持的 #+SKILL_* 关键字和对应的 YAML 字段如下,

Org 关键字 YAML 字段 类型
#+SKILL_NAME name 字符串
#+SKILL_DESCRIPTION description 字符串
#+SKILL_WHEN_TO_USE when_to_use 字符串
#+SKILL_ALLOWED_TOOLS allowed-tools 列表(空格分隔)
#+SKILL_USER_INVOCABLE user-invocable 布尔( true=/=false
#+SKILL_MODEL model 字符串
#+SKILL_EFFORT effort 字符串

上表是常用字段,完整列表(含 SKILL_ARGUMENTSSKILL_CONTEXTSKILL_AGENT 等)见 项目 README 。另外示例里的 #+SKILL_BASE_DIR 控制输出文件写到哪个目录,它不会被导出到 YAML 里。

列表类型的值用空格分隔,多个词用引号括起来。布尔类型接受 true=/=yesfalse=/=no