Repository navigation
feat: 加写给负责人的 Skill 选型面,并把「源码即生产」的工作方式写成制度 - #5
Merged
Merged
Conversation
负责人 2026-08-15 三项拍板:开发 worktree 放 agent-plugins-work/<分支>;生产 检出由一条手动命令更新;选型面给负责人看,不给 Agent 看。 ## 选型面是生成产物,不是手写文档 给 Agent 的那一份其实已经存在——运行端按 description 字段匹配触发,再写一份是 第二份会漂的正文。给负责人的这份今天完全不存在:想知道一个 Skill 干什么,只能 读它 3.9 KB 到 60 KB 的正文。 docs/skills-overview.md 由 scripts/skills-overview.ts 生成。手写的只有三句—— 它替你做什么、什么时候用、你怎么知道它在起作用,存在 tests/workflow-routing.json 的 skillOverview 里。版本、上次复核、失效条件、体积与预算占比全部推导,写两遍 就会漂。符合性测试重新生成一次并逐字节比对,因此它不可能漂——文档一旦能被手改 就会漂,而这正是本文要防的东西,选型面自己也得守。 它第一次生成就暴露了一件事:issue-workflow 一个占 29.5% 复杂度预算,是第二名 的近 3 倍;总量已到预算的 99.7%。这正是老板视角该看见的,也是 #26 复杂度收敛 的直接输入。 ## 源码即生产 新增第零节。2026-08-15 实测:两个运行端把 Skill 解析到工作树本身,不是版本 缓存。因此「已审源码 → 已安装内容 → 实际行为」中间那一环不存在,源码即行为。 负责人决定接受这个事实并调整工作方式,而不是造受控快照层——Claude 端可行、 Codex 端不可行,半边隔离比不隔离更难查。生产检出永远是 origin/main 的干净检出, 所有开发在 agent-plugins-work/<分支> 的 git worktree 里做,合并后用 plugin_release sync 快进并报告本次生效的行为变化。 强制层次如实写明:sync 在检出不干净时直接拒绝(第 2 层),会话启动钩子事后 提醒(第 2⁻ 层),而「开发不要在生产检出里做」本身仍是纪律(第 4 层)——git 不阻止你在任何 worktree 里编辑。 两个新门实测会失败:手改选型面报「它是生成产物,请跑 --write,不要手改」; 新增 Skill 不写三句话报「skillOverview 必须恰好覆盖全部 Skill」。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
PR #3 里那三条「按真实依赖重写」的编辑一条都没落到目标上,而且覆盖了别人的值。 原因:改写脚本按 `"<名字>": {` 找锚点,但该名字在文件更靠前的 skills 对象里就 先出现,于是三对编辑全部落到 skillLifecycle 的第一条 issue-workflow 上,逐次 覆盖。结果是 issue-workflow 的声明变成了 adaptive-problem-solving 的文字,而 resource-observability、orchestrated-collaboration、adaptive-problem-solving 三条一条没改到——PR #3 说它们「按真实依赖重写后各自实跑通过」,复核确实跑了也 确实通过,但重写没生效。 发现方式:新加的选型面第一次生成,issue-workflow 那节显示的失效条件是方法登记 面的事,与它自己毫无关系。生成产物把数据摊平给人看,一眼就露馅。 本次修复只在 skillLifecycle 区段内定位,改后断言 12 条失效条件互不相同。 同时把这条断言常驻进 CI:两个 Skill 声明出逐字相同的失效条件,几乎只有两种来源 ——复制粘贴没改,或某次批量改写覆盖了别人的值。实测负例会失败。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
落实负责人 2026-08-15 三项拍板:开发 worktree 放
agent-plugins-work/<分支>;生产检出由一条手动命令更新;选型面给负责人看,不给 Agent 看。选型面是生成产物,不是手写文档
给 Agent 的那一份其实已经存在——运行端按
description字段匹配触发,再写一份是第二份会漂的正文。给负责人的这份今天完全不存在:想知道一个 Skill 干什么,只能读它 3.9 KB 到 60 KB 的正文。docs/skills-overview.md由scripts/skills-overview.ts生成。手写的只有三句:skillOverview)pluginVersionsskillLifecycle符合性测试重新生成一次并逐字节比对,所以它不可能漂——文档一旦能被手改就会漂,而这正是
docs/lifecycle.md要防的东西,选型面自己也得守这条。它第一次生成就暴露了一件事
issue-workflow一个占 29.5%,是第二名的近 3 倍;总量已到预算的 99.7%。这正是老板视角该看见的,也是关联 agent-control#26(规则与 Skill 体系复杂度收敛)的直接输入。源码即生产(新增第零节)
2026-08-15 实测:两个运行端把 Skill 解析到工作树本身,不是版本缓存。因此「已审源码 → 已安装内容 → 实际行为」中间那一环不存在——源码即行为。
负责人决定接受这个事实并调整工作方式,而不是造受控快照层(Claude 端可行、Codex 端不可行,半边隔离比不隔离更难查):
workspace/agent-pluginsorigin/main的干净检出plugin_release sync快进它workspace/agent-plugins-work/<分支>本 PR 自己就是第一个按新规矩做的:在
agent-plugins-work/skill-overview的 worktree 里完成,生产检出全程停在干净的main。强制层次如实写明,不夸大:
sync在检出不干净或不在main时直接拒绝(第 2 层);会话启动钩子事后提醒(第 2⁻ 层);而「开发不要在生产检出里做」本身仍是纪律(第 4 层)——git 不阻止你在任何 worktree 里编辑。验证
两份符合性测试通过。两个新门实测会失败:
配套的
plugin_release sync在 agent-control 侧另开 PR。