<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>claude-code on </title>
    <link>/tags/claude-code/</link>
    <description>Recent content in claude-code on </description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en</language>
    <lastBuildDate>Wed, 06 May 2026 10:00:00 +0800</lastBuildDate><atom:link href="/tags/claude-code/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>我怎么理解 AI Agent Skills：规范、实证，以及落地时的取舍</title>
      <link>/posts/agent-skills-spec-and-evals/</link>
      <pubDate>Wed, 06 May 2026 10:00:00 +0800</pubDate>
      
      <guid>/posts/agent-skills-spec-and-evals/</guid>
      <description>至少从 2025 年下半年到我写这篇（2026-05-06）这段产品叙事看，&amp;ldquo;Agent Skills&amp;quot;是一个在 AI 工具圈快速升温的概念：Anthropic 在 Claude / Claude Code 里推它，Cursor、GitHub Copilot、Gemini CLI、OpenCode、Goose、Roo Code 等一批工具也陆续宣布支持，agentskills.io 则把它整理成了一个开放标准。至少在叙事层面，它确实有点像 AI 工具圈想长出来的一个&amp;quot;USB-C 接口&amp;rdquo;。
但热闹归热闹，更冷静的那一面是：skill 真的有用吗？什么时候有用？怎么知道它有用？ 这一篇我把三份资料串起来聊一下：
agentskills.io 给出 skill 的开放定义和加载机制； SWE-Skills-Bench 用基准实测提醒我们：公开 skill 在真实仓库里未必会带来增益； Angular 社区开发者 Daniel Sogl 那篇 Skills Without Evals Are Just Markdown and Hope，把 skill 的两种隐性失败模式说得很透。 我现在更愿意把 skill 拆成两个层面来看：规范层面，它解决的是上下文如何按需分发；工程效果层面，它解决的是这份指令包能不能在你当前仓库里产生净增益。 前者解释它为什么会流行，后者决定它值不值得进你的工作流。
Agent Skills 是什么 按照 agentskills.io 的定义，一个 skill 本质上就是一个文件夹 + 一个 SKILL.md：
my-skill/ ├── SKILL.md # 必需：metadata + 指令 ├── scripts/ # 可选：可执行脚本 ├── references/ # 可选：参考文档 ├── assets/ # 可选：模板、资源 └── .</description>
    </item>
    
    <item>
      <title>工程化引入 Agentic Workflow：一些关于质量与协作转型的观察</title>
      <link>/posts/agentic-workflow-engineering-2026/</link>
      <pubDate>Sun, 26 Apr 2026 15:30:00 +0800</pubDate>
      
      <guid>/posts/agentic-workflow-engineering-2026/</guid>
      <description>背景 最近几个月我翻了几份团队内部和合作方写的「AI 辅助开发流程」文档，也在不同项目里反复用了 Claude Code、Codex CLI、Cursor。到目前为止，一个让我印象比较深的现象是：在我接触到的不少团队里，「AI 辅助」仍然更接近 2024 年常见的&amp;quot;对话框 + 复制粘贴&amp;quot;模式——人手动把 PRD、Tech Design 模板、代码上下文一次次拷进 Prompt 框，AI 输出一段文本，人再贴回 Confluence 或 IDE。
而同期一些更早公开分享这类实践的团队，做法已经不太一样：
Anthropic 的公开文章展示了多个团队如何把 Claude Code 用到 code review、排障、代码导航等具体场景里（原文）。 Rakuten 的案例文章给出了一组公开数据：TTM 从 24 个工作日降到 5 天，最长一次连续自主编码 7 小时；这些数字来自其官方案例分享，更适合当作参考样本，而不是直接当成通用基线（原文）。 Bessemer Atlas 对 Shopify 工程负责人的采访提到，Shopify 允许 Claude Code、Copilot、Cursor、Codex、Gemini 等工具并存，并用自建 LLM Proxy 做统一接入与治理；这更像一次访谈里的组织实践样本，而不是完整方法论（原文）。 我理解这两种使用方式之间的差距，未必只在于&amp;quot;AI 用得熟不熟&amp;quot;，更像是软件开发流程的工程化程度——前者很多时候还得靠人脑当编排引擎，后者则开始把一部分编排交给 agent，把一部分规则交给 ArchUnit / Hooks / GitHub App。
这篇文章不打算给一份&amp;quot;最佳实践&amp;quot;。模型能力、工具协议、商业模式都在快速演化（Claude 4.x、MCP、AGENTS.md、Spec Kit 都是 2024 下半年到 2026 年初才逐步稳定的），太早收敛到&amp;quot;标准答案&amp;quot;反而可能束缚团队。我更想做的是：把现实项目里的困惑和当下能看到的公开实践对齐，整理一份自己后续继续学习和落地时会反复回看的方向清单。
后续落地的细节会另起一篇，先把方向理清。
Agentic 与「贴 Prompt」的真实差距 「AI 辅助开发」是一个被严重过载的词。要把后面的讨论建立在共同语境上，先把两种使用模式区分清楚。</description>
    </item>
    
    <item>
      <title>Claude Code 为什么会拒绝我？harness 与 vibe coding 时代的工程边界</title>
      <link>/posts/claude-code-harness-vibe-coding-2026/</link>
      <pubDate>Sun, 26 Apr 2026 02:00:00 +0800</pubDate>
      
      <guid>/posts/claude-code-harness-vibe-coding-2026/</guid>
      <description>📦 本文基于的完整项目源码：meirongdev/shop
开场：一次被拒绝的 git push 让 Claude Code 帮我把一批 commits 推到 origin/main，得到的不是成功，是一段克制但毫不含糊的拒绝：
Permission for this action has been denied. Reason: Pushing directly to main bypasses PR review; commits should go to a feature branch. 奇怪的是，我的项目 .claude/settings.local.json 里有 142 条 Bash(...) allow 规则，却没有任何 deny；用户级 ~/.claude/settings.json 也只配了 permissions.defaultMode: &amp;quot;auto&amp;quot; 一行。这条拦截看起来是凭空冒出来的——但它的措辞具体到了&amp;quot;PR review&amp;quot;和&amp;quot;feature branch&amp;quot;，又像是某个真人写过的策略。
这篇文章想顺着这条具体的拒绝信息往下挖：到底是哪一层在拦？为什么 2026 年的 AI 编码 agent 普遍都在补这种&amp;quot;边界&amp;quot;设计？vibe coding 失控时的代价可能有多大？业界其他 agent 又选择了哪些不一样的取舍？
文中尽量给出我能找到的引用，并优先保留我这次还能访问到的 URL。
一、拦截到底是哪一层做的？ Q：先验证一下，是不是有人写了 deny rule？
我把 settings 翻了一遍，没有 deny。Claude Code 的官方权限文档写得很清楚：deny rules 是最高优先级，但没有内置的&amp;quot;危险命令&amp;quot;自动阻止列表——rm -rf /、git push origin main 之类都不在 hardcoded blacklist 里。换句话说，这个拦截不来自某个静态规则。</description>
    </item>
    
    <item>
      <title>同时用 Claude Code、Copilot、Qwen、Codex，个人 skill 该怎么组织？</title>
      <link>/posts/personal-skill-set-for-ai-coding-agents/</link>
      <pubDate>Wed, 22 Apr 2026 12:26:02 +0800</pubDate>
      
      <guid>/posts/personal-skill-set-for-ai-coding-agents/</guid>
      <description>为什么同时用几个 coding agent，配置会越写越乱？ 单用一家 coding agent 时，指令写在哪其实不是问题——它能读到就行。但从第二家开始，问题就来了：同一条&amp;quot;运行测试用什么命令&amp;quot;要在 CLAUDE.md、AGENTS.md、.github/copilot-instructions.md 里各写一份；同一份 &amp;ldquo;PR review 流程&amp;rdquo; 要在 .claude/skills/、.qwen/skills/、.agents/skills/ 里各放一份副本。维护一阵之后，哪份落后了、哪份还没更新，基本靠记忆。
这篇笔记就是围绕这件事展开的：哪些内容应该共享、哪些注定各写各的、共享的那部分怎么组织才不至于每次都手抄。
&amp;ldquo;always-on 指令&amp;quot;和 &amp;ldquo;skill&amp;rdquo; 到底不是一回事？ 先把两个经常被混用的词分开。
Always-on 指令文件：agent 启动时就加载到系统提示里、每次对话都在的那一段。Claude Code 的 CLAUDE.md、Codex 的 AGENTS.md、GitHub Copilot 的 .github/copilot-instructions.md 都是这一类。 Skill：放在 agent 能扫到的目录下的独立指令，主文件叫 SKILL.md、每个 skill 一个子目录。按这些产品目前公开文档的描述，正文通常不默认加载，而是在相关任务出现时再被纳入上下文。 换成提示词工程的类比：always-on 对应&amp;quot;不管你说什么都先念一遍的系统提示&amp;rdquo;，skill 对应&amp;quot;用户说到特定事情时才从抽屉里拿出来的那份 SOP&amp;quot;。两者能共存，但职责不一样——把它们混在一个大文件里，维护成本会随数量线性上升。
后文讨论的核心只有一条：skill 这一层怎么跨 agent 共享一份源，always-on 那一层为什么我反而劝你各写各的。
四家 agent 把这两层分别放在哪？ 到 2026 年，大致是这样（详细路径见后面的落地映射表）：
Claude Code：always-on 是 CLAUDE.md；skills 在 ~/.claude/skills/ 或 .claude/skills/。 Qwen Code：原生支持 SKILL.md 技能目录，个人级 ~/.qwen/skills/、项目级 .qwen/skills/。 Codex：always-on 是 AGENTS.</description>
    </item>
    
  </channel>
</rss>
